/* Faithful presentation of the supplied artwork. All image windows use the
   unchanged PNGs; no color filters, fabricated portraits or replacement diagrams. */
:root { --serif: 'Times New Roman', Times, serif; --sans: 'Avenir Next', Avenir, 'Century Gothic', sans-serif; }
h1,h2,h3,h4 { font-weight:700; letter-spacing:-.035em; }
.visually-hidden { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important; }
.reference-crop { position:relative;overflow:hidden;width:100%; }
.reference-crop img { position:absolute;max-width:none;height:auto;display:block; }
.homepage main { background:#000; }
.homepage::before { display:none; }
.journey { height:295vh; }
.journey-stage { height:100svh;min-height:0;background:#000; }
.entrance-scene,.quote-scene { inset:var(--header) 0 0; }
.original-entrance { position:absolute;width:100%;aspect-ratio:1586/920;overflow:hidden;top:50%;transform:translateY(-50%) scale(var(--entrance-scale,1));transform-origin:50% 85%; }
.original-entrance img { position:absolute;top:-7.8261%;width:100%;height:auto;max-width:none; }
.quote-scene { background:#000; }
.original-stairs { position:absolute;inset:0;background-image:url('/assets/site/reference-stairs.png');background-size:100% auto;background-position:center center;background-repeat:no-repeat;transform:scale(var(--stairs-scale,1)) translateY(var(--stairs-y,0px));transform-origin:50% 85%;mask-image:linear-gradient(90deg,#000 26%,transparent 34% 68%,#000 76%); }
.quote-scene::before { content:'';position:absolute;width:100%;aspect-ratio:1585/992;top:50%;transform:translateY(-50%) scale(var(--stairs-scale,1)) translateY(var(--stairs-y,0px));background:url('/assets/site/reference-stairs.png') center/100% 100% no-repeat;clip-path:inset(67% 0 0);mask-image:linear-gradient(transparent 66%,#000 73%);transform-origin:50% 85%; }
.quote-scene blockquote { font-family:var(--serif);font-size:clamp(30px,3.6vw,58px);font-weight:400;line-height:1.28;padding:0 20px 8vh;max-width:1050px; }
.reception { position:relative;z-index:2;display:block;width:100%;padding:50px 0 70px;min-height:0;background:#000;margin-top:-12vh; }
.reception-inner { width:min(1400px,100%);margin:auto;display:grid;grid-template-columns:52% 48%;align-items:end;position:relative;opacity:var(--arrival-opacity,1);transform:translateY(var(--arrival-y,0px)) scale(var(--arrival-scale,1));transform-origin:50% 75%; }
.reception-copy { padding-left:10%;padding-right:0;position:relative;z-index:2; }
.reception-copy h2 { font-size:clamp(40px,5.2vw,78px);line-height:.98;margin-bottom:26px; }
.reception-copy>p:not(.fine-print) { font-family:var(--sans);font-size:clamp(16px,1.6vw,23px);line-height:1.35;margin-bottom:26px;max-width:610px; }
.reception-copy .button { margin-top:0;padding:16px 23px;min-height:68px;border-radius:24px;font-size:clamp(17px,1.65vw,24px);background:linear-gradient(145deg,#8b010165,#8b010130); }
.reception-copy .button:is(:hover, :focus-visible, :active) { background-color:var(--brand); }
.reception-copy .fine-print { font-size:11px;max-width:500px;line-height:1.5; }
.donna-original { width:115%;margin:0 0 55px -15%; }
.donna-original .reference-crop { mask-image:linear-gradient(90deg,transparent,#000 2%); }
.section-heading h2 { font-size:clamp(35px,4.5vw,66px);line-height:1.05; }
.section-heading>p:last-child { font-family:var(--sans);font-size:clamp(16px,1.65vw,25px);line-height:1.35;margin-top:14px; }
.section { padding-block:65px; }
.analysis { width:min(1280px,calc(100% - 48px)); }
.analysis .section-heading { margin-bottom:18px; }
.laptop.original-laptop { max-width:1190px;padding:0;perspective:1600px; }
.original-laptop-lid { width:78.6973%;margin-inline:auto;transform-origin:50% 100%;transform:rotateX(var(--lid-angle,0deg)); }
.original-laptop-base { width:100%;margin-top:-1px; }
.original-pdca { width:min(730px,82vw);margin:32px auto 0; }
.original-pdca>.reference-crop { aspect-ratio:1!important; }
.original-pdca>.reference-crop>img { height:135.1021%; }
.phase-track { padding-inline:max(32px,calc((100vw - 900px)/2)); }
.phase-card { width:min(900px,78vw);border:1px solid #b5a4a4;border-radius:23px;padding:43px 56px;background:radial-gradient(ellipse at 0 0,#8b0101b0,transparent 43%),radial-gradient(ellipse at 100% 100%,#8b010190,transparent 27%),#050303;box-shadow:inset 0 0 7px #ffffff20; }
.phase-card-main { grid-template-columns:minmax(0,1fr) 235px;min-height:220px;gap:24px; }
.phase-card h3 { font-family:var(--serif);font-size:clamp(35px,4.1vw,65px);line-height:1.03;margin-bottom:22px; }
.phase-card .eyebrow { color:var(--brand);font-family:var(--sans);font-size:17px;letter-spacing:.15em; }
.phase-card-main p:last-child { font-family:var(--sans);font-size:clamp(18px,2vw,28px);line-height:1.35;max-width:550px; }
.phase-original-art { width:100%;mix-blend-mode:screen;mask-image:radial-gradient(ellipse,#000 46%,transparent 72%); }
.phase-result { margin-top:25px;padding-top:14px; }
.phase-result>span { font-size:12px;font-family:var(--sans);letter-spacing:.2em; }
.phase-result p { font-family:var(--sans);font-size:clamp(16px,1.7vw,23px);line-height:1.3; }
.phase-nav { gap:29px;margin-top:4px;margin-bottom:30px; }
.phase-nav button { font-family:var(--sans);font-size:clamp(14px,1.6vw,22px);padding-block:5px; }
.phase-nav button+button::before { content:'·';color:#777;position:relative;left:-14px; }
.phase-controls { margin-top:22px; }
.care { width:min(1100px,calc(100% - 44px)); }
.care .section-heading>.eyebrow { font-family:var(--serif);font-size:30px;font-weight:700;margin-bottom:2px; }
.care .section-heading h2 { font-size:clamp(32px,4.4vw,61px); }
.care .section-heading { margin-bottom:16px; }
.care-scroll { width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:var(--brand) #111;padding-bottom:12px; }
.care-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:710px; }
.care-card { padding:26px 16px 34px;border:1px solid var(--brand);border-radius:15px; }
.care-card h3 { font-size:clamp(25px,2.6vw,37px);margin-bottom:19px; }
.price { flex-wrap:nowrap;gap:4px; }
.price strong { font-size:clamp(29px,3.25vw,47px);font-weight:700; }
.price small,.price>span { font-size:12px; }
.care-time { border:0;min-height:107px;padding-top:24px;position:relative;font-family:var(--sans);font-size:14px; }
.care-time::before { content:'';display:block;width:34px;height:2px;background:var(--brand);position:absolute;top:8px;left:calc(50% - 17px); }
.care-card li { font-family:var(--sans);font-size:14px;line-height:1.45;margin-bottom:24px; }
.care-card ul { margin-top:8px; }
.billing legend,.billing label span { font-family:var(--sans);font-size:13px; }
.billing-description { margin-bottom:22px; }
.closing { padding-top:80px;padding-bottom:85px; }
.closing h2 { font-size:clamp(38px,5vw,72px); }
.closing>p:not(.eyebrow) { font-family:var(--sans);font-size:20px; }
@media(max-width:1000px) {
 .reception-inner { grid-template-columns:53% 47%; }
 .reception-copy { padding-left:7%; }
 .reception-copy h2 { font-size:clamp(36px,5.5vw,55px); }
 .reception-copy>p:not(.fine-print) { font-size:17px;line-height:1.35; }
 .donna-original { width:114%;margin-left:-14%;margin-bottom:70px; }
 .phase-track { padding-inline:11vw; }
 .phase-card { padding:30px;width:78vw; }
 .phase-card-main { grid-template-columns:minmax(0,1fr) 145px;min-height:190px; }
 .phase-card h3 { font-size:42px; }
 .phase-card-main p:last-child { font-size:20px; }
 .phase-card .eyebrow { font-size:13px; }
 .phase-result p { font-size:17px; }
 .care-card h3 { font-size:26px; }
 .price strong { font-size:31px; }
 .care-card li { font-size:12px; }
 .care-time { font-size:12px;min-height:103px; }
 .care .section-heading>p:last-child { font-size:19px; }
}
@media(max-width:700px) {
 .journey { height:235vh; }
 .entrance-scene,.quote-scene { inset:var(--header) 0 0; }
 .original-entrance { width:100%;top:43%; }
 .quote-scene blockquote { font-size:clamp(26px,5vw,36px);padding-bottom:7vh; }
 .original-stairs { background-size:auto 100%; }
 .quote-scene::before { width:150%;left:-25%; }
 .reception { margin-top:-6vh;padding:45px 0 55px; }
 .reception-inner { display:flex;flex-direction:column; }
 .reception-copy { width:100%;padding:0 26px;margin:0;max-width:540px; }
 .reception-copy h2 { font-size:45px; }
 .reception-copy>p:not(.fine-print) { font-size:17px; }
 .donna-original { width:100%;max-width:540px;margin:20px 0 0; }
 .reception-copy .button { width:100%;font-size:18px; }
 .analysis { width:calc(100% - 24px); }
 .analysis .section-heading { padding-inline:12px; }
 .original-laptop-lid { width:100%;transform:none; }
 .original-laptop-base { display:none; }
 .analysis .section-heading>p { font-size:16px; }
 .original-pdca { width:100%; }
 .pdca.shell { width:calc(100% - 20px); }
 .pdca .section-heading { padding-inline:15px; }
 .phase-track { padding-inline:7vw; }
 .phase-card { width:86vw;padding:26px 23px;min-height:395px; }
 .phase-card-main { grid-template-columns:1fr;min-height:245px; }
 .phase-original-art { position:absolute;width:75px;right:0;top:0;opacity:.8; }
 .phase-card .eyebrow { font-size:12px;padding-right:70px; }
 .phase-card h3 { font-size:36px;max-width:250px;padding-top:10px; }
 .phase-card-main p:last-child { font-size:19px; }
 .phase-result p { font-size:16px; }
 .phase-nav { gap:19px; }
 .phase-nav button { font-size:13px; }
 .phase-nav button+button::before { display:none; }
 .care { width:calc(100% - 28px); }
 .care-grid { grid-template-columns:repeat(4,180px);min-width:744px; }
 .care-card { padding:23px 12px 30px; }
 .care-card h3 { font-size:25px; }
 .price strong { font-size:29px; }
 .care-card li { font-size:13px; }
 .care-time { font-size:12px; }
 .care .section-heading h2 { font-size:34px; }
 .closing>p:not(.eyebrow) { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
 .journey { height:auto; }
 .journey-stage { height:auto; }
 .entrance-scene,.quote-scene { inset:auto;height:75svh;min-height:390px; }
 .original-entrance { transform:translateY(-50%)!important; }
 .original-stairs { transform:none!important; }
 .quote-scene::before { transform:translateY(-50%)!important; }
 .reception { margin-top:0; }
 .reception-inner { opacity:1!important;transform:none!important; }
 .original-laptop-lid { transform:none!important; }
}

/* Exclude the baked navigation from the staircase artwork as well. */
.original-stairs { inset:auto;top:50%;width:100%;aspect-ratio:1585/920;overflow:hidden;background:none;transform:translateY(-50%) scale(var(--stairs-scale,1)) translateY(var(--stairs-y,0px)); }
.original-stairs img { position:absolute;width:100%;height:auto;top:-7.8261%; }
@media(prefers-reduced-motion:reduce) { .original-stairs { transform:translateY(-50%)!important; } }

/* One uninterrupted room; only the camera target and subject distance change. */
.journey { height:800svh; }
.original-entrance { transform-origin:50% var(--camera-target,74%);will-change:transform; }
.original-entrance img:not(.entrance-emblem) { mask-image:linear-gradient(90deg,#000 28%,transparent 33% 67%,#000 72%),linear-gradient(transparent 69%,#000 72%); }
.original-entrance .entrance-emblem { transform:translateY(var(--emblem-y,0px));mask-image:linear-gradient(90deg,transparent 29%,#000 34% 66%,transparent 71%),linear-gradient(transparent 7%,#000 12% 64%,transparent 71%);mask-composite:intersect;will-change:transform; }
.quote-scene { background:transparent;z-index:3; }
.quote-scene::before { content:none; }
.quote-scene blockquote { position:relative;z-index:1;font-size:clamp(40px,5.1vw,78px);padding-bottom:10vh;max-width:1280px;transform-origin:50% 70%;will-change:transform,opacity; }
.journey-stage>.reception { position:absolute;inset:var(--header) 0 0;margin:0;padding:24px 0;display:flex;align-items:center;min-height:0;background:#000;opacity:var(--arrival-opacity,0);will-change:opacity;z-index:2; }
.journey-stage .reception-inner { opacity:var(--desk-opacity,0);transform:scale(var(--arrival-scale,.82));transform-origin:50% var(--arrival-origin,100%);will-change:transform,opacity; }
.journey-stage .reception-copy { opacity:var(--reception-copy,0); }
.journey-stage .reception-copy h2 { font-size:clamp(36px,4.5vw,68px); }
.journey-stage .reception-copy>p:not(.fine-print) { font-size:clamp(15px,1.4vw,21px);margin-bottom:20px; }
.journey-stage .donna-original { margin-bottom:30px; }
@media(max-width:700px) {
 .journey { height:780svh; }
 .quote-scene blockquote { font-size:clamp(28px,6vw,40px); }
 .journey-stage>.reception { align-items:flex-start;overflow-y:auto; }
 .journey-stage .reception-copy h2 { font-size:34px; }
 .journey-stage .reception-copy>p:not(.fine-print) { font-size:14px;margin-bottom:12px; }
 .journey-stage .donna-original { max-width:340px;margin:12px auto 0; }
}
@media(prefers-reduced-motion:reduce) {
 .journey { height:auto; }
 .journey-stage>.reception { position:relative;inset:auto;opacity:1!important;transform:none!important;filter:none!important;padding:45px 0; }
 .journey-stage .reception-copy { opacity:1; }
 .quote-scene blockquote { transform:none!important;opacity:1!important; }
 .original-entrance .entrance-emblem { transform:none; }
}
/* Mobile camera keeps the same transitions; overflowing reception content pans
   with document scroll rather than capturing touch in a nested scroll area. */
@media(max-width:700px) and (prefers-reduced-motion:no-preference) {
 .journey { height:800svh; }
 .journey-stage { position:sticky;top:0;height:100svh;min-height:0;overflow:hidden; }
 .original-entrance { top:50%;width:100%; }
 .quote-scene blockquote { font-size:clamp(28px,7vw,36px);padding-inline:18px; }
 .journey-stage>.reception { display:block;overflow:visible;align-items:initial;padding:8px 0 24px;filter:none; }
 .journey-stage .reception-inner { display:flex;flex-direction:column;transform:translateY(var(--mobile-reception-pan,0px)) scale(var(--arrival-scale,.82));will-change:transform,opacity; }
 .journey-stage .donna-original { order:-1;width:78%;max-width:280px;margin:0 auto 18px; }
 .journey-stage .reception-copy { width:100%;padding:0 22px; }
 .journey-stage .reception-copy h2 { font-size:32px;line-height:1.02;margin-bottom:18px; }
 .journey-stage .reception-copy>p:not(.fine-print) { font-size:15px;line-height:1.45;margin-bottom:14px; }
 .journey-stage .reception-copy .button { min-height:60px;padding:12px;font-size:16px; }
}
/* Keep the notebook hinge and scroll-driven DMAIC on phones as well. */
@media(max-width:700px) and (prefers-reduced-motion:no-preference) {
 .laptop.original-laptop { perspective:900px; }
 .original-laptop-lid { width:78.6973%;transform:rotateX(var(--lid-angle,0deg));transform-origin:50% 100%;will-change:transform; }
 .original-laptop-base { display:block; }
 .dmaic { height:460svh; }
 .dmaic-stage { position:sticky;top:var(--header);height:calc(100svh - var(--header));min-height:0;padding:14px 0;justify-content:center; }
 .phase-viewport { flex-shrink:0;scroll-snap-type:none;touch-action:pan-y; }
 .dmaic .section-heading { margin-bottom:12px; }
 .dmaic h2 { font-size:32px; }
 .phase-nav { margin-bottom:12px; }
 .phase-controls { margin-top:10px; }
}
@media(max-width:700px) and (max-height:740px) and (prefers-reduced-motion:no-preference) {
 .dmaic h2 { font-size:27px; }
 .dmaic .section-heading { margin-bottom:6px; }
 .phase-nav { margin-bottom:6px; }
 .phase-card { min-height:300px;padding:20px; }
 .phase-card-main { min-height:180px; }
 .phase-card h3 { font-size:30px;margin-bottom:14px; }
 .phase-card-main p:last-child { font-size:16px; }
 .phase-result { min-height:60px;margin-top:14px;padding-top:10px; }
 .phase-result p { font-size:14px; }
}

/* The black floor stays full-frame; the room approaches around the desk baseline. */
@media(min-width:701px) {
 .journey-stage>.reception { padding-bottom:clamp(60px,9svh,110px); }
 .journey-stage .reception-inner { width:min(1400px,100%,calc((100svh - var(--header) - 140px)*2.15)); }
}
.booking-page { background:#000;padding-top:var(--header);min-height:100svh;display:flex;flex-direction:column; }
.booking-toolbar { flex:none;padding:12px 20px;background:#000; }
.booking-toolbar .button { min-height:42px;padding:10px 18px; }
.booking-page .meetergo-iframe { width:100%;background:#000; }
.booking-page iframe { display:block;border:0;width:100%;background:#000;color-scheme:light; }
/* Prevent a flex-shrunken viewport from cutting off the desktop cards. */
@media(min-width:701px) and (prefers-reduced-motion:no-preference) {
 .dmaic-stage { min-height:0; }
 .phase-viewport { flex-shrink:0; }
}
@media(min-width:701px) and (min-height:601px) and (max-height:900px) and (prefers-reduced-motion:no-preference) {
 .dmaic { height:370svh; }
 .dmaic-stage { position:sticky;top:var(--header);height:calc(100svh - var(--header));min-height:0;padding:12px 0; }
 .dmaic .section-heading { margin-bottom:8px; }
 .dmaic h2 { font-size:clamp(28px,4svh,38px); }
 .phase-nav { margin-bottom:10px; }
 .phase-nav button { font-size:16px; }
 .phase-card { padding:20px 32px; }
 .phase-card-main { min-height:145px;grid-template-columns:minmax(0,1fr) 150px; }
 .phase-card h3 { font-size:36px;margin-bottom:12px; }
 .phase-card .eyebrow { font-size:13px;margin-bottom:8px; }
 .phase-card-main p:last-child { font-size:18px; }
 .phase-result { min-height:0;margin-top:12px;padding-top:10px; }
 .phase-result p { font-size:16px; }
 .phase-controls { margin-top:8px; }
}
@media(min-width:701px) and (max-height:600px) {
 .dmaic { height:auto; }
 .dmaic-stage { position:relative;top:0;height:auto;min-height:0;padding:30px 0; }
}
@media(prefers-reduced-motion:reduce) { .journey-stage .reception-inner { opacity:1;transform:none; } }
