:root{--night:#071822;--navy:#102a43;--teal:#1e6f6b;--gold:#c5a46d;--ivory:#f7f4ec;--ink:#10242d;--muted:#62737a;--line:rgba(197,164,109,.32);--header:86px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;background:#fff;padding:.8rem 1rem}.skip-link:focus{top:1rem}.site-header{height:var(--header);position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;gap:2rem;padding:0 clamp(1rem,4vw,4.5rem);background:rgba(247,244,236,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(16,42,67,.1)}.brand{display:block;margin-right:auto}.brand img{display:block;width:clamp(190px,20vw,285px);height:auto}.site-header nav{display:flex;gap:1.6rem}.site-header nav a,.phone-link{text-decoration:none;font-size:.86rem;font-weight:700}.header-actions{display:flex;align-items:center;gap:1rem}.button{display:inline-flex;justify-content:center;align-items:center;min-height:3.35rem;padding:.8rem 1.25rem;border:1px solid var(--teal);border-radius:999px;background:var(--teal);color:#fff;text-decoration:none;font:inherit;font-weight:750;cursor:pointer;transition:.2s ease}.button:hover{background:#155b58;transform:translateY(-1px)}.button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e1ad50;outline-offset:3px}.button-small{min-height:2.7rem;padding:.6rem 1rem;font-size:.82rem}.button-ghost{background:transparent;color:var(--night);border-color:rgba(16,42,67,.35)}.hero{min-height:100svh;padding:calc(var(--header) + 7vh) 7vw 10vh;display:flex;align-items:center;position:relative;background:linear-gradient(90deg,rgba(247,244,236,.98) 0 48%,rgba(247,244,236,.35) 68%,transparent 100%)}.hero-copy{position:relative;z-index:6;width:min(690px,50vw)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.72rem;font-weight:800;color:var(--teal)}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.01;letter-spacing:-.045em;margin:.45rem 0 1.2rem}h1{font-size:clamp(3.3rem,6.8vw,7.2rem)}h1 em{color:var(--teal);font-weight:500}.lead{font-size:clamp(1rem,1.35vw,1.25rem);max-width:620px;color:#415860}.cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:2rem 0 1.1rem}.secondary-contact{font-size:.86rem;color:var(--muted)}.scroll-cue{position:absolute;z-index:6;bottom:2rem;left:7vw;display:flex;gap:.8rem;align-items:center;text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.scroll-cue i{display:block;width:4rem;height:1px;background:var(--gold)}.cinematic{position:fixed;inset:var(--header) 0 0;z-index:-1;background:var(--night);overflow:hidden}.scene-vignette{position:absolute;inset:0;background:radial-gradient(circle at 68% 45%,transparent 15%,rgba(4,15,21,.25) 62%,rgba(4,15,21,.72) 110%);pointer-events:none}.scene-index{position:absolute;right:2rem;bottom:2rem;display:flex;align-items:center;gap:.7rem;margin:0;color:#fff;font-size:.7rem;letter-spacing:.15em}.scene-index i{width:5rem;height:1px;background:rgba(255,255,255,.4)}.motion-toggle{position:absolute;right:2rem;top:1.5rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(7,24,34,.6);color:white;padding:.55rem .9rem;cursor:pointer}.prototype-badge{position:absolute;left:2rem;bottom:1.6rem;margin:0;color:rgba(255,255,255,.5);font-size:.62rem;letter-spacing:.16em}.static-scene{display:none;position:absolute;inset:0;background:radial-gradient(circle at 70% 44%,rgba(30,111,107,.65),transparent 25%),linear-gradient(135deg,#0b2230,#071822)}.static-scene span{position:absolute;display:block;border:1px solid rgba(197,164,109,.45);border-radius:50%}.static-scene span:nth-child(1){width:30vw;height:30vw;right:8vw;top:12vh}.static-scene span:nth-child(2){width:18vw;height:18vw;right:14vw;top:22vh}.static-scene span:nth-child(3){width:1px;height:52vh;right:29vw;top:14vh;background:linear-gradient(var(--gold),transparent)}.chapters{position:relative;background:transparent}.chapter{min-height:100svh;display:flex;align-items:center;padding:12vh 7vw;pointer-events:none}.chapter article{pointer-events:auto;width:min(610px,43vw);padding:clamp(1.5rem,3vw,3rem);margin-left:auto;background:rgba(247,244,236,.95);border:1px solid rgba(255,255,255,.4);box-shadow:0 28px 80px rgba(2,13,19,.26);backdrop-filter:blur(12px);opacity:.42;transform:translateY(24px);transition:opacity .45s,transform .45s}.chapter.is-active article{opacity:1;transform:none}.chapter h2{font-size:clamp(2.3rem,4vw,4.7rem)}.chapter article>p:not(.eyebrow,.note,.credential,.location){font-size:clamp(1rem,1.25vw,1.15rem);color:#425961}.chapter article>a{display:inline-block;margin-top:.8rem;color:var(--teal);font-weight:800;text-decoration:none}.wide-card{width:min(760px,52vw)!important}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.2rem;padding:0;list-style:none}.service-list li{padding:.7rem 0;border-bottom:1px solid rgba(16,42,67,.13);font-weight:650}.note,.credential,.location{padding-top:1rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}.steps{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;padding:0;list-style:none}.steps li{display:flex;gap:.8rem;padding:1rem;background:#fff}.steps b{color:var(--gold);font-family:Georgia,serif}.steps strong{display:block}.request{position:relative;z-index:5;min-height:100svh;display:grid;grid-template-columns:1fr minmax(320px,560px);gap:8vw;align-items:center;padding:calc(var(--header) + 6rem) 8vw 7rem;background:var(--ivory)}.request h2{font-size:clamp(3rem,5.5vw,6.5rem)}.large-phone{display:block;margin:2rem 0 .5rem;color:var(--teal);font:500 clamp(2rem,4vw,4rem)/1 Georgia,serif;text-decoration:none}.request form{display:grid;gap:1rem;padding:clamp(1.4rem,3vw,2.5rem);background:#fff;box-shadow:0 24px 70px rgba(16,42,67,.12)}.form-status{padding:.7rem .8rem;background:#f4ead6;color:#765b2d;font-size:.8rem}.request label{display:grid;gap:.35rem;font-size:.78rem;font-weight:800}.request input,.request select{width:100%;min-height:3rem;border:1px solid #b9c3c6;border-radius:.25rem;background:white;padding:.6rem .8rem;font:inherit}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.request small{color:var(--muted)}.emergency{position:relative;z-index:5;padding:1.4rem 8vw;background:#102a43;color:#fff;text-align:center}.emergency a{color:#efc77f;font-weight:800}footer{position:relative;z-index:5;display:flex;justify-content:space-between;gap:1rem;padding:2rem 8vw;background:#071822;color:rgba(255,255,255,.65);font-size:.75rem}.mobile-actions{display:none}
@media(max-width:900px){:root{--header:70px}.site-header{padding:0 1rem}.brand img{width:205px}.site-header nav,.header-actions .phone-link{display:none}.header-actions{margin-left:auto}.hero{min-height:100svh;padding:calc(var(--header) + 4rem) 1.25rem 7rem;background:linear-gradient(180deg,rgba(247,244,236,.97) 0 54%,rgba(247,244,236,.6) 78%,transparent)}.hero-copy{width:100%}h1{font-size:clamp(3rem,14vw,5.6rem)}.cinematic{inset:var(--header) 0 0}.motion-toggle{top:1rem;right:1rem;font-size:.72rem}.prototype-badge{left:1rem;bottom:5rem}.scene-index{right:1rem;bottom:5rem}.chapters{padding-top:40vh}.chapter{min-height:auto;padding:2rem 1rem}.chapter article,.wide-card{width:100%!important;margin:0;opacity:1;transform:none;padding:1.4rem}.chapter h2{font-size:clamp(2.1rem,10vw,3.3rem)}.service-list,.steps{grid-template-columns:1fr}.request{grid-template-columns:1fr;padding:7rem 1rem 8rem;gap:2rem}.request h2{font-size:3.3rem}.form-pair{grid-template-columns:1fr}.emergency{padding:1.4rem 1rem 6rem}footer{padding:2rem 1rem 7rem;flex-direction:column}.mobile-actions{position:fixed;z-index:40;display:grid;grid-template-columns:1fr 1.4fr;bottom:0;left:0;right:0;padding:.65rem max(.65rem,env(safe-area-inset-right)) calc(.65rem + env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left));background:rgba(7,24,34,.96);gap:.55rem}.mobile-actions a{padding:.8rem;text-align:center;text-decoration:none;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:#fff;font-size:.82rem;font-weight:800}.mobile-actions a:last-child{background:var(--teal);border-color:var(--teal)}}
.chapter[data-chapter="2"] .steps li{position:relative;overflow:hidden;isolation:isolate}.chapter[data-chapter="2"] .steps li>b,.chapter[data-chapter="2"] .steps li>span{position:relative;z-index:1}.chapter[data-chapter="2"] .steps li::after{content:"";position:absolute;z-index:0;inset:0;display:block;background:linear-gradient(90deg,rgba(197,164,109,.2),rgba(247,244,236,.05) 72%);border-left:3px solid rgba(197,164,109,.72);opacity:0;transition:opacity .08s linear}.chapter[data-chapter="2"] .steps li:nth-child(1)::after{opacity:var(--step-1,0)}.chapter[data-chapter="2"] .steps li:nth-child(2)::after{opacity:var(--step-2,0)}.chapter[data-chapter="2"] .steps li:nth-child(3)::after{opacity:var(--step-3,0)}.chapter[data-chapter="2"] .steps li:nth-child(4)::after{opacity:var(--step-4,0)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.static-scene{display:block}.chapter article{opacity:1;transform:none}}body.reduce-motion .static-scene,body.no-webgl .static-scene{display:block}

/* Stacking contract: the scene remains behind semantic content while its
   accessibility control stays operable. */
.cinematic{z-index:0;pointer-events:none}
.hero,.chapters{z-index:2}
.motion-toggle{pointer-events:auto}
.motion-toggle{position:fixed;z-index:20;top:calc(var(--header) + 1.5rem)}
@media(max-width:900px){.site-header .header-actions{display:none}.motion-toggle{top:calc(var(--header) + .7rem);right:.7rem;font-size:.68rem;padding:.42rem .65rem}.mobile-actions{transition:transform .2s ease}.mobile-actions.is-hidden{transform:translateY(120%)}}

::selection{background:var(--gold);color:var(--night)}
@media(max-width:900px){
  .motion-toggle{position:absolute;top:calc(var(--header) + .75rem)}
  .secondary-contact{display:inline-block;padding:.45rem .6rem;border-radius:.3rem;background:rgba(247,244,236,.94);color:#273f49;box-shadow:0 0 0 1px rgba(16,42,67,.08)}
  .scroll-cue{bottom:5.7rem;padding:.55rem .7rem;border-radius:999px;background:rgba(7,24,34,.88);color:#fff;backdrop-filter:blur(8px)}
  .scroll-cue i{background:var(--gold)}
}

/* Public launch candidate: telephone-first handoff until the privacy and
   retention gates permit the online request form to collect real data. */
.request-callout{display:grid;align-content:center;gap:1rem;padding:clamp(1.4rem,3vw,2.5rem);background:#fff;border-top:3px solid var(--gold);box-shadow:0 24px 70px rgba(16,42,67,.12);opacity:var(--request-reveal-opacity,1);transform:translate3d(0,var(--request-form-y,0),0);will-change:transform,opacity}
.request-callout h3{margin:0;font:500 clamp(2rem,3vw,3.4rem)/1.06 Georgia,"Times New Roman",serif;letter-spacing:-.035em}
.request-callout p{margin:0;color:#425961}
.request-callout .button{justify-self:start}
.request-callout small{display:block;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted)}
body.reduce-motion .request-callout{opacity:1!important;transform:none!important}

@media(max-width:900px){
  .request-callout{gap:.85rem;padding:1.15rem;border-radius:.85rem;box-shadow:0 20px 55px rgba(16,42,67,.11)}
  .request-callout h3{font-size:clamp(1.85rem,8vw,2.45rem)}
}

/* Chapter-aware no-WebGL/reduced-motion poster stage. */
.static-scene{overflow:hidden;background:radial-gradient(circle at 30% 46%,rgba(30,111,107,.32),transparent 30%),linear-gradient(135deg,#0c2a38,#061721 72%)}
.static-scene>div{position:absolute;opacity:0;transition:opacity .65s ease,transform .8s cubic-bezier(.2,.75,.2,1)}

.secondary-contact{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.contact-kicker{color:var(--teal);font-size:.66rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.secondary-contact a{font-weight:800;text-underline-offset:.16em}
@media(max-width:900px){
  .hero{overflow:hidden}
  .hero::before{content:"";position:absolute;z-index:1;inset:0;background-image:linear-gradient(180deg,rgba(247,244,236,.99) 0%,rgba(247,244,236,.96) 48%,rgba(247,244,236,.72) 66%,rgba(7,24,34,.16) 100%),url("assets/home-hero-mobile-imagegen-review-v1.webp");background-size:cover;background-position:center bottom;background-repeat:no-repeat}
  .secondary-contact{display:grid;grid-template-columns:auto 1fr;gap:.1rem .65rem;width:fit-content;max-width:100%;margin-top:1.15rem;padding:.85rem 0 0;border-top:1px solid rgba(16,42,67,.2);border-radius:0;background:none;color:#314a54;box-shadow:none}
  .contact-kicker{align-self:center}
  .secondary-contact a{font-size:.92rem;text-decoration:none}
  .contact-separator{display:none}
  .pricing-note{grid-column:1/-1;font-size:.74rem;color:#5d7077}
  .scroll-cue{left:1.25rem;bottom:1.35rem;gap:.65rem;padding:0;border-radius:0;background:none;color:rgba(255,255,255,.88);backdrop-filter:none;text-shadow:0 1px 8px rgba(0,0,0,.65)}
  .scroll-cue i{position:relative;width:2rem;height:2rem;border:1px solid rgba(197,164,109,.78);border-radius:50%;background:rgba(7,24,34,.35)}
  .scroll-cue i::after{content:"↓";position:absolute;inset:0;display:grid;place-items:center;color:var(--gold);font-size:.9rem;line-height:1}
}

@media(max-width:900px){
  .secondary-contact{display:none}
  .scroll-cue{left:auto;right:1.25rem;bottom:1.25rem;padding:0;text-shadow:none}
  .scroll-cue span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .scroll-cue i{width:2.35rem;height:2.35rem;background:rgba(7,24,34,.56);box-shadow:0 8px 30px rgba(0,0,0,.18)}
}

/* Keep the desktop route cue inside the first viewport even when the large
   Greek headline makes the hero taller than 100svh. */
@media(min-width:901px){
  .hero::before{content:"";position:absolute;z-index:1;inset:0;background-image:linear-gradient(90deg,rgba(247,244,236,.99) 0%,rgba(247,244,236,.94) 31%,rgba(247,244,236,.48) 50%,rgba(247,244,236,.08) 67%,rgba(7,24,34,.14) 100%),url("assets/home-hero-imagegen-review-v2.webp");background-size:cover;background-position:center center;background-repeat:no-repeat}
  .scroll-cue{top:calc(100svh - 4.25rem);bottom:auto;padding:.45rem .65rem;border:1px solid rgba(16,42,67,.12);border-radius:999px;background:rgba(247,244,236,.86);box-shadow:0 8px 28px rgba(7,24,34,.08);backdrop-filter:blur(8px)}
}

/* Responsive-development poster states. Horizontal campaign stills are
   positioned per chapter and revealed above each semantic content card. */
@media(max-width:900px){
  .chapters{padding-top:0}
  .chapter{min-height:100svh;align-items:flex-start;padding:50svh 1rem 6rem}
  .prototype-badge{display:none}
  .static-scene>div{opacity:0!important}
}
.static-scene>.scene-photo{position:absolute;inset:-2%;z-index:1;display:block;opacity:0!important;background-repeat:no-repeat;background-color:var(--night);will-change:opacity,transform;transition:opacity .58s ease,transform .8s cubic-bezier(.2,.75,.2,1)}
.static-scene>.scene-photo.is-visible{opacity:1!important}

/* Mobile motion v2: transform-only depth and route layers. The engine updates
   these variables only while the page scrolls, avoiding a permanent render
   loop and keeping the physical phone's GPU workload bounded. */
@media(max-width:900px){
  body.mobile-motion-v2 .hero::after{content:"";position:absolute;z-index:2;right:-18vw;bottom:8vh;width:72vw;aspect-ratio:1;border:1px solid rgba(197,164,109,.28);border-radius:50%;background:radial-gradient(circle,rgba(30,111,107,.11),transparent 68%);opacity:calc(.14 + var(--hero-progress,0) * .34);transform:translate3d(calc(var(--hero-progress,0) * -24px),calc(var(--hero-progress,0) * 18px),0) scale(calc(.88 + var(--hero-progress,0) * .16));pointer-events:none}
  body.mobile-motion-v2:not(.reduce-motion)[data-scene="4"] .static-scene>.scene-photo.is-visible{opacity:1!important}
  body.mobile-motion-v2 .hero::before{will-change:transform;transform:translate3d(0,calc(var(--hero-progress,0) * -18px),0) scale(calc(1.02 + var(--hero-progress,0) * .055));transform-origin:55% 72%}
  body.mobile-motion-v2 .static-scene>.scene-photo{transition:opacity .42s ease;transform-origin:50% 58%;backface-visibility:hidden}
  body.mobile-motion-v2 .chapter article{opacity:.76;transform:translate3d(0,18px,0) scale(.988);transition:opacity .36s ease,transform .42s cubic-bezier(.2,.75,.2,1)}
  body.mobile-motion-v2 .chapter.is-active article{opacity:1;transform:translate3d(0,0,0) scale(1)}
  body.mobile-motion-v2 .motion-toggle{position:fixed;display:block;top:calc(var(--header) + .65rem);right:.65rem;z-index:24;padding:.38rem .58rem;border-color:rgba(255,255,255,.55);background:rgba(7,24,34,.78);font-size:.62rem;line-height:1;backdrop-filter:blur(8px)}
  body.mobile-motion-v2 .motion-toggle.is-hidden{opacity:0;pointer-events:none}
  body.reduce-motion .hero::before,body.reduce-motion .hero::after,body.reduce-motion .static-scene>.scene-photo{transform:none!important}
  body.reduce-motion .chapter article{opacity:1;transform:none}

  /* Physical-phone readability: retain the editorial scale while fitting more
     of each medical explanation above the fixed contact actions. */
  .chapter article,.wide-card{padding:1.2rem}
  .chapter h2{font-size:clamp(2rem,8.5vw,3rem);line-height:1.035}
  .chapter article>p:not(.eyebrow,.note,.credential,.location){font-size:1rem}
  .request h2{font-size:clamp(2.75rem,12vw,3.15rem)}
}

/* Desktop editorial timing: inactive cards recede cleanly and the incoming
   card becomes active only once it is fully readable in the viewport. */
@media(min-width:901px){
  .chapter article{background:rgba(247,244,236,.96);border-color:rgba(255,255,255,.54);border-radius:.2rem;backdrop-filter:blur(14px);opacity:.12;transform:translateY(46px) scale(.988);transition:opacity .58s ease,transform .58s cubic-bezier(.2,.75,.2,1)}
  .chapter.is-active article{opacity:1;transform:none}
}

/* Desktop cinematic v2: retire the visibly synthetic low-poly scaffold while
   preserving the reversible camera feeling with photographic 2.5D motion. */
@media(min-width:901px){
  body.desktop-photo-cinematic .static-scene{display:block;background:var(--night)}
  body.desktop-photo-cinematic .static-scene>.scene-photo{
    inset:-7%;
    filter:saturate(.88) contrast(1.045) brightness(.82);
    transform-origin:50% 54%;
    transition:opacity .58s ease,transform .1s linear;
    backface-visibility:hidden;
  }
  body.desktop-photo-cinematic .static-scene::after{
    content:"";
    position:absolute;
    z-index:3;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(4,15,21,.48),rgba(4,15,21,.08) 42%,rgba(4,15,21,.2)),
      linear-gradient(180deg,rgba(4,15,21,.06),transparent 54%,rgba(4,15,21,.38));
  }
  body.desktop-photo-cinematic .scene-vignette{z-index:4;background:radial-gradient(circle at 58% 45%,transparent 18%,rgba(4,15,21,.12) 62%,rgba(4,15,21,.52) 118%)}
  body.desktop-photo-cinematic:not(.reduce-motion)[data-scene="4"] .static-scene>.scene-photo.is-visible{opacity:1!important}
  body.desktop-photo-cinematic .chapter article{opacity:.38;background:rgba(247,244,236,.92);box-shadow:0 28px 90px rgba(2,13,19,.34)}
  body.desktop-photo-cinematic .chapter.is-active article{opacity:1;background:rgba(247,244,236,.97)}
  body.desktop-photo-cinematic.reduce-motion .static-scene>.scene-photo{transform:none!important;transition-duration:.01ms}
}

/* Desktop cinematic v3: chapter-specific, scroll-linked depth cues. These
   layers move only through CSS variables updated after native scroll events;
   there is no autonomous animation loop. */
@media(min-width:901px){
  body.desktop-photo-cinematic .hero{overflow:hidden}
  body.desktop-photo-cinematic .hero::before{
    will-change:transform;
    transform:translate3d(calc(var(--hero-progress,0) * -18px),calc(var(--hero-progress,0) * -24px),0) scale(calc(1.01 + var(--hero-progress,0) * .055));
    transform-origin:60% 58%;
  }
  body.desktop-photo-cinematic.reduce-motion .hero::before{transform:none!important}
}

/* Final request handoff: keep the clinical form quiet while its copy and form
   enter with the same deterministic scroll grammar as the photographic story. */
.request{box-shadow:0 -28px 70px rgba(7,24,34,.1)}
.request>div{opacity:var(--request-reveal-opacity,1);transform:translate3d(0,var(--request-copy-y,0),0);will-change:transform,opacity}
.request form{opacity:var(--request-reveal-opacity,1);transform:translate3d(0,var(--request-form-y,0),0);will-change:transform,opacity}
.form-status:focus{outline:3px solid #e1ad50;outline-offset:3px}
.motion-toggle.is-hidden{opacity:0;pointer-events:none}
body.reduce-motion .request>div,body.reduce-motion .request form{opacity:1!important;transform:none!important}

/* Closing reprise: the final contact step stays inside the cinematic world.
   Scroll scrubs the closing frames while the copy and details settle into
   place; reduced motion returns to the conventional ivory contact section. */
body .contact-section{min-height:158svh;padding:0 8vw;background:transparent;color:#fff;isolation:isolate}
body .contact-section::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(7,24,34,.84),rgba(7,24,34,.3) 52%,rgba(7,24,34,.7));opacity:calc(.92 - var(--closing-progress,0) * .18);pointer-events:none}
body .contact-grid{position:sticky;top:calc(var(--header) + 4vh);min-height:calc(100svh - var(--header) - 8vh);display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,8vw,8rem);align-items:center}
.closing-copy{opacity:calc(.66 + var(--closing-progress,0) * .34);transform:translate3d(0,calc((1 - var(--closing-progress,0)) * 28px),0);will-change:transform,opacity}
.contact-section h2{max-width:12ch;text-wrap:balance}
.contact-section>.section-shell>div>p:not(.eyebrow){max-width:620px;color:rgba(247,244,236,.82);font-size:clamp(1rem,1.25vw,1.16rem)}
.contact-section .button-ghost{color:#fff;border-color:rgba(255,255,255,.58);background:rgba(7,24,34,.18)}
body .contact-card{background:rgba(247,244,236,.92);color:var(--ink);box-shadow:0 26px 80px rgba(2,13,19,.34);backdrop-filter:blur(18px);opacity:calc(.58 + var(--closing-progress,0) * .42);transform:translate3d(0,calc((1 - var(--closing-progress,0)) * 52px),0) scale(calc(.975 + var(--closing-progress,0) * .025));will-change:transform,opacity}
.closing-halo{position:absolute;z-index:0;left:10vw;bottom:12%;width:min(38vw,520px);aspect-ratio:1;pointer-events:none;opacity:calc(.1 + var(--closing-progress,0) * .55);transform:translate3d(calc(var(--closing-progress,0) * 42px),calc((1 - var(--closing-progress,0)) * 36px),0) scale(calc(.72 + var(--closing-progress,0) * .3));will-change:transform,opacity}
.closing-halo i{position:absolute;inset:0;border:1px solid rgba(107,216,207,.42);border-radius:50%}
.closing-halo i:nth-child(2){inset:17%;border-color:rgba(197,164,109,.5)}
.closing-halo i:nth-child(3){inset:34%;background:radial-gradient(circle,rgba(107,216,207,.2),transparent 68%);border-color:rgba(247,244,236,.28)}
body.reduce-motion .contact-section{min-height:auto;padding:clamp(7rem,11vw,10rem) 8vw;background:linear-gradient(135deg,#f7f4ec,#ece7dc);color:var(--ink)}
body.reduce-motion .contact-grid{position:static;min-height:auto}
body.reduce-motion .closing-copy,body.reduce-motion .contact-card{opacity:1;transform:none}
body.reduce-motion .closing-halo{display:none}
body.reduce-motion .contact-section>.section-shell>div>p:not(.eyebrow){color:var(--muted)}
body.reduce-motion .contact-section .button-ghost{color:var(--night);border-color:rgba(16,42,67,.35);background:transparent}

/* Localized navigation: one compact control across all language variants. */
.language-switcher{position:relative;flex:0 0 auto}
.language-switcher summary{display:grid;place-items:center;min-width:2.8rem;min-height:2.8rem;border:1px solid rgba(16,42,67,.22);border-radius:999px;background:rgba(255,255,255,.7);color:var(--ink);font-size:.72rem;font-weight:850;letter-spacing:.08em;cursor:pointer;list-style:none}
.language-switcher summary::-webkit-details-marker{display:none}
.language-switcher[open] summary{border-color:var(--teal);box-shadow:0 0 0 3px rgba(30,111,107,.12)}
.language-menu{position:absolute;top:calc(100% + .65rem);right:0;display:grid;min-width:10.5rem;padding:.5rem;background:#fff;border:1px solid rgba(16,42,67,.12);border-radius:.65rem;box-shadow:0 18px 45px rgba(7,24,34,.18)}
.language-menu a{padding:.65rem .75rem;border-radius:.4rem;text-decoration:none;font-size:.82rem;font-weight:700}
.language-menu a:hover,.language-menu a:focus-visible{background:#edf5f3}
.language-menu a[aria-current="page"]{background:var(--teal);color:#fff}

@media(max-width:900px){
  body .contact-section{min-height:150svh;padding:0 1rem}
  body .contact-grid{top:calc(var(--header) + .65rem);min-height:calc(100svh - var(--header) - 5.8rem);grid-template-columns:1fr;align-content:center;gap:1rem}
  .contact-section h2{font-size:clamp(2.55rem,11vw,3.45rem)}
  .contact-section .cta-row{margin:1.2rem 0 .6rem}
  body .contact-card{padding:1.1rem;transform:translate3d(0,calc((1 - var(--closing-progress,0)) * 28px),0) scale(calc(.985 + var(--closing-progress,0) * .015))}
  .contact-card span{margin-top:.55rem}
  .closing-halo{left:-18vw;bottom:12%;width:92vw}
  body.reduce-motion .contact-section{padding:6rem 1rem 7rem}
}

@media(max-width:900px){
  .language-switcher{margin-left:auto}
  .language-switcher summary{min-width:2.45rem;min-height:2.45rem;font-size:.65rem}
  .language-menu{position:fixed;top:calc(var(--header) - .1rem);right:.65rem;min-width:9.5rem}
}

/* Acts A/B: paid Veo masters are scrubbed by scroll over chapters 01–05.
   The existing still scene remains underneath as an instant/reduced-motion
   fallback, so a late video decode never exposes a flat colour field. */
.act-media-stage{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}
.act-media{position:absolute;inset:-1%;width:102%;height:102%;display:block;opacity:0;object-fit:cover;object-position:center;transform:scale(1.015);transition:opacity .48s ease;will-change:opacity}
.act-media-grade{position:absolute;z-index:2;inset:0;display:block;opacity:0;background:linear-gradient(90deg,rgba(7,24,34,.42),rgba(7,24,34,.04) 48%,rgba(7,24,34,.18)),linear-gradient(180deg,rgba(7,24,34,.05),rgba(7,24,34,.35));transition:opacity .48s ease}
body:not(.reduce-motion).act-a-ready[data-scene="0"] .act-a-media,
body:not(.reduce-motion).act-a-ready[data-scene="1"] .act-a-media,
body:not(.reduce-motion).act-a-ready[data-scene="2"] .act-a-media,
body:not(.reduce-motion).act-a-ready[data-scene="3"] .act-a-media,
body:not(.reduce-motion).act-a-ready[data-scene="0"] .act-media-grade,
body:not(.reduce-motion).act-a-ready[data-scene="1"] .act-media-grade,
body:not(.reduce-motion).act-a-ready[data-scene="2"] .act-media-grade,
body:not(.reduce-motion).act-a-ready[data-scene="3"] .act-media-grade{opacity:1}
body:not(.reduce-motion).closing-ready[data-scene="9"] .closing-media,
body:not(.reduce-motion).closing-ready[data-scene="9"] .act-media-grade{opacity:1}
body:not(.reduce-motion).closing-entering .closing-media,
body:not(.reduce-motion).closing-entering .act-media-grade{opacity:1;transition-duration:.18s}
.scene-vignette{z-index:5}.scene-index,.prototype-badge{z-index:7}
body.reduce-motion .act-media-stage{display:none}

@media(min-width:901px){
  body:not(.reduce-motion).act-b-ready[data-scene="4"] .act-b-media,
  body:not(.reduce-motion).act-b-ready[data-scene="5"] .act-b-media,
  body:not(.reduce-motion).act-b-ready[data-scene="4"] .act-media-grade,
  body:not(.reduce-motion).act-b-ready[data-scene="5"] .act-media-grade{opacity:1}
}

@media(max-width:900px){
  .act-media-stage{inset:0}
  .act-a-media{object-position:var(--act-a-mobile-x,55%) center}
  .closing-media{display:block;object-position:31% center}
  .act-b-media{display:block;object-position:var(--act-b-mobile-x,51%) center}
  body:not(.reduce-motion).act-b-ready[data-scene="4"] .act-b-media,
  body:not(.reduce-motion).act-b-ready[data-scene="5"] .act-b-media,
  body:not(.reduce-motion).act-b-ready[data-scene="4"] .act-media-grade,
  body:not(.reduce-motion).act-b-ready[data-scene="5"] .act-media-grade{opacity:1}
  .act-media-grade{background:linear-gradient(180deg,rgba(7,24,34,.08),rgba(7,24,34,.36))}
}

/* Film-led hero animatic v1. The browser performs the Neko-inspired
   split-to-full-screen transition; the eventual video replaces only the two
   keyframe layers and therefore does not bake layout or copy into the asset. */
.hero{
  min-height:180vh;
  padding:0;
  display:block;
  background:var(--ivory);
  overflow:visible!important;
}
.hero::before,.hero::after{display:none!important}
.hero-stage{
  position:sticky;
  top:var(--header);
  height:calc(100vh - var(--header));
  overflow:hidden;
  isolation:isolate;
  background:var(--ivory);
}
.hero-media{
  position:absolute;
  z-index:1;
  top:var(--hero-media-top,0%);
  left:var(--hero-media-left,50%);
  width:var(--hero-media-width,50%);
  height:var(--hero-media-height,100%);
  overflow:hidden;
  border-radius:var(--hero-media-radius,0);
  background:#cbb89d;
  box-shadow:0 24px 80px rgba(7,24,34,var(--hero-media-shadow,.08));
  will-change:top,left,width,height,border-radius;
}
.hero-media-frame,.hero-media-grade{
  position:absolute;
  inset:-1.5%;
  display:block;
  border:0;
  border-radius:0;
  pointer-events:none;
}
.hero-video{
  position:absolute;
  z-index:1;
  inset:-1.5%;
  width:103%;
  height:103%;
  border:0;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:scale(var(--hero-media-scale,1.025));
  pointer-events:none;
  will-change:transform;
}
body.hero-video-ready .hero-video{opacity:1}
body.hero-video-ready .hero-media-frame{opacity:0}
.hero-media-frame{
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transform:scale(var(--hero-media-scale,1.025));
  will-change:opacity,transform;
}
.hero-media-start{
  opacity:var(--hero-start-opacity,1);
  background-image:url("assets/home-hero-imagegen-review-v2.webp");
  background-position:66% center;
}
.hero-media-end{
  opacity:var(--hero-end-opacity,0);
  background-image:url("assets/hero-fullscreen-end-desktop-v1.webp");
  background-position:center;
}
.hero-media-grade{
  z-index:2;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,24,34,var(--hero-grade-left,0)) 0%,transparent 45%),
    linear-gradient(180deg,transparent 50%,rgba(7,24,34,var(--hero-grade-bottom,.08)) 100%);
}
.hero-copy{
  position:absolute;
  z-index:3;
  top:50%;
  left:7vw;
  width:min(690px,41vw);
  opacity:var(--hero-copy-opacity,1);
  transform:translate3d(var(--hero-copy-x,0),-50%,0);
  pointer-events:var(--hero-copy-events,auto);
  will-change:opacity,transform;
}
.hero-fullscreen-copy{
  position:absolute;
  z-index:4;
  left:7vw;
  bottom:8vh;
  width:min(690px,58vw);
  margin:0;
  color:#fff;
  font:500 clamp(3.1rem,6vw,6.8rem)/.96 Georgia,"Times New Roman",serif;
  letter-spacing:-.045em;
  text-shadow:0 4px 28px rgba(7,24,34,.42);
  opacity:var(--hero-full-copy-opacity,0);
  transform:translate3d(0,var(--hero-full-copy-y,24px),0);
  pointer-events:none;
  will-change:opacity,transform;
}
.hero-fullscreen-copy em{color:#b9e6df;font-weight:500}
.hero-stage>.scroll-cue{
  opacity:var(--hero-cue-opacity,1);
  color:var(--ink);
  transition:none;
}
body.reduce-motion .hero{min-height:100vh}
body.reduce-motion .hero-stage{position:relative;top:0;height:100vh}
body.reduce-motion .hero-media{top:0;left:50%;width:50%;height:100%;border-radius:0;box-shadow:none}
body.reduce-motion .hero-media-start{opacity:1}
body.reduce-motion .hero-video,
body.reduce-motion .hero-media-end,
.reduce-motion .hero-fullscreen-copy{display:none}
body.reduce-motion .hero-media-start{display:block!important;opacity:1!important}
body.reduce-motion .hero-copy{opacity:1;transform:translate3d(0,-50%,0);pointer-events:auto}

@media(max-width:900px){
  .hero-video{object-position:62% center}
  .hero{min-height:168vh}
  .hero-stage{height:calc(100vh - var(--header))}
  .hero-media{
    top:var(--hero-media-top,66%);
    left:var(--hero-media-left,5%);
    width:var(--hero-media-width,90%);
    height:var(--hero-media-height,31%);
    border-radius:var(--hero-media-radius,1.6rem);
  }
  .hero-media-start{
    background-image:url("assets/home-hero-imagegen-review-v2.webp");
    background-position:62% center;
  }
  .hero-media-end{
    background-image:url("assets/hero-fullscreen-end-desktop-v1.webp");
    background-position:62% center;
    background-position:center;
  }
  .hero-copy{
    top:4.5%;
    left:1.25rem;
    right:1.25rem;
    width:auto;
    transform:translate3d(var(--hero-copy-x,0),0,0);
  }
  .hero-copy h1{font-size:clamp(2.65rem,12.5vw,4.3rem);margin:.25rem 0 .7rem}
  .hero-copy .lead{font-size:.92rem;line-height:1.45;margin:.45rem 0}
  .hero-copy .cta-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;margin:1rem 0 0}
  .hero-copy .button{width:100%;min-height:2.85rem;padding:.65rem .65rem;text-align:center;font-size:.82rem}
  .hero-fullscreen-copy{
    left:1.25rem;
    bottom:5.2rem;
    width:calc(100% - 2.5rem);
    font-size:clamp(2.8rem,13vw,4.6rem);
  }
  .hero-stage>.scroll-cue{z-index:5}
  body.reduce-motion .hero{min-height:100vh}
  body.reduce-motion .hero-stage{height:calc(100vh - var(--header))}
  body.reduce-motion .hero-media{top:66%;left:5%;width:90%;height:31%;border-radius:1.6rem}
  body.reduce-motion .hero-copy{transform:none}
}

.form-pair>div{display:grid;gap:.35rem}
.request .consent{grid-template-columns:1.15rem 1fr;align-items:start;font-weight:600;line-height:1.45}
.request .consent input{appearance:auto;width:1.15rem;height:1.15rem;min-height:0;margin:.15rem 0 0;padding:0}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status.is-success{background:#dcefe8;color:#155b58}
.form-status.is-error{background:#f8dddd;color:#802828}
.contact-privacy-notice{border-top:1px solid var(--line);padding-top:.9rem;color:var(--muted)}
.contact-privacy-notice summary{cursor:pointer;font-weight:700;color:var(--teal)}
.contact-privacy-notice p{margin:.75rem 0 0;line-height:1.6}

@media(max-width:900px){
body:has(.request:target) .mobile-actions{transform:translateY(120%)}
  body:has(.request:target) .motion-toggle{opacity:0;pointer-events:none}
}

/* Nine-section information architecture. The first six sections retain the
   photographic cinematic stage; FAQ, request and contact become quiet,
   high-contrast conversion surfaces with the same editorial rhythm. */
.fact-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:1.5rem 0}.fact-row span{display:grid;gap:.18rem;padding:1rem;background:rgba(255,255,255,.72);border-left:3px solid var(--gold);color:var(--muted);font-size:.82rem}.fact-row b{color:var(--ink);font-size:.92rem}.surgery-list{display:flex;flex-wrap:wrap;gap:.55rem;padding:0;margin:1.4rem 0;list-style:none}.surgery-list li{padding:.58rem .8rem;border:1px solid rgba(16,42,67,.16);border-radius:999px;background:rgba(255,255,255,.72);font-size:.82rem;font-weight:750}.doctor-role{margin:-.65rem 0 1.4rem;color:var(--teal)!important;font-weight:850;letter-spacing:.04em}.faq-section,.contact-section{position:relative;z-index:5;background:var(--ivory)}.faq-section{padding:clamp(7rem,11vw,10rem) 8vw}.section-shell{width:min(1180px,100%);margin:0 auto}.faq-section .section-shell{display:grid;grid-template-columns:minmax(250px,.7fr) 1.3fr;gap:clamp(2rem,7vw,7rem);align-items:start}.section-intro{position:sticky;top:calc(var(--header) + 2.5rem)}.section-intro h2{max-width:11ch;font-size:clamp(3rem,4.2vw,4.9rem)}.contact-section h2{font-size:clamp(3rem,5.2vw,6rem)}.faq-list{border-top:1px solid rgba(16,42,67,.16)}.faq-list details{border-bottom:1px solid rgba(16,42,67,.16)}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 0;cursor:pointer;font-weight:800;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";flex:0 0 auto;color:var(--teal);font:500 1.5rem/1 Georgia,serif}.faq-list details[open] summary::after{content:"−"}.faq-list details p{max-width:720px;margin:0;padding:0 2rem 1.35rem 0;color:var(--muted)}.contact-section{padding:clamp(7rem,11vw,10rem) 8vw;background:linear-gradient(135deg,#f7f4ec,#ece7dc)}.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,8vw,8rem);align-items:center}.contact-card{display:grid;gap:.35rem;padding:clamp(1.5rem,3vw,2.6rem);background:#fff;box-shadow:0 26px 80px rgba(16,42,67,.11);font-style:normal}.contact-card span{margin-top:1rem;color:var(--teal);font-size:.68rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.contact-card span:first-child{margin-top:0}.contact-card strong{font:500 clamp(1.25rem,2vw,1.8rem)/1.25 Georgia,serif}.contact-card a{width:fit-content;color:var(--teal);font-weight:800;text-underline-offset:.18em}

@media(max-width:900px){.fact-row{grid-template-columns:1fr}.faq-section,.contact-section{padding:6rem 1rem 7rem}.faq-section .section-shell,.contact-grid{grid-template-columns:1fr}.section-intro{position:static}.section-intro h2,.contact-section h2{font-size:clamp(2.75rem,12vw,3.6rem)}.faq-list summary{font-size:.95rem}.faq-list details p{padding-right:0}.contact-card{padding:1.3rem}.surgery-list li{font-size:.76rem}}

/* Mobile editorial pass v29. Preserve the accepted desktop masters and their
   scroll timing, but give the portrait layout enough room to read without the
   fixed conversion controls covering the active card. */
@media(max-width:900px){
  :root{--header:64px}
  .site-header{padding:0 .9rem;background:rgba(247,244,236,.96)}
  .brand img{width:178px}
  .hero-stage{height:calc(100svh - var(--header))}
  .hero-copy{top:3.5%;left:1.1rem;right:1.1rem}
  .hero-copy h1{font-size:clamp(2.55rem,11.6vw,3.55rem);line-height:.98}
  .hero-copy .lead{font-size:.88rem;line-height:1.42}
  .hero-copy .button{min-height:2.75rem;padding:.58rem .82rem;font-size:.76rem}
  body.mobile-motion-v2 .motion-toggle{top:calc(var(--header) + .55rem);right:.55rem;padding:.34rem .5rem;font-size:.58rem;opacity:.88}

  .chapter{min-height:100svh;padding:38svh .72rem 6.4rem;scroll-margin-top:var(--header)}
  .chapter article,.wide-card{
    padding:1.15rem 1.12rem 1.35rem;
    border-radius:.85rem;
    background:rgba(247,244,236,.965);
    border-color:rgba(255,255,255,.7);
    box-shadow:0 22px 62px rgba(2,13,19,.28);
    overflow:hidden;
  }
  .chapter .eyebrow{margin-top:0;font-size:.62rem;letter-spacing:.145em}
  .chapter h2{font-size:clamp(1.92rem,7.8vw,2.75rem);line-height:1.025;margin:.38rem 0 .9rem}
  .chapter article>p:not(.eyebrow,.note,.credential,.location){font-size:.93rem;line-height:1.5}
  .chapter .service-list{gap:.15rem;margin:.8rem 0}
  .chapter .service-list li{padding:.58rem 0;font-size:.86rem;line-height:1.35}
  .chapter .steps{gap:.5rem;margin:.8rem 0}
  .chapter .steps li{padding:.78rem;font-size:.84rem;line-height:1.35}
  .chapter .fact-row{gap:.48rem;margin:1rem 0}
  .chapter .fact-row span{padding:.72rem;font-size:.76rem}
  .chapter .fact-row b{font-size:.84rem}
  .chapter .note,.chapter .credential,.chapter .location{padding-top:.78rem;font-size:.76rem;line-height:1.45}
  .chapter .cta-row{display:grid;grid-template-columns:1fr 1fr;gap:.48rem;margin:1.15rem 0 0}
  .chapter .cta-row .button{min-height:2.8rem;padding:.55rem .45rem;font-size:.74rem}
  .doctor-role{margin:-.35rem 0 1rem;font-size:.84rem!important}
  .scene-index{display:none}

  .mobile-actions{padding:.48rem max(.55rem,env(safe-area-inset-right)) calc(.48rem + env(safe-area-inset-bottom)) max(.55rem,env(safe-area-inset-left));gap:.45rem;background:#071822;border-top:1px solid rgba(255,255,255,.12)}
  .mobile-actions a{min-height:2.85rem;display:grid;place-items:center;padding:.58rem;font-size:.76rem}

  .faq-section{padding:4rem 1rem 6.2rem}
  .section-intro h2{font-size:clamp(2.35rem,10vw,3rem);margin-bottom:1.5rem}
  .faq-list summary{padding:1.05rem 0;font-size:.88rem;line-height:1.35}
  .faq-list details p{padding:0 0 1.05rem;font-size:.88rem;line-height:1.5}

  .request{min-height:auto;align-items:start;padding:4rem 1rem 6.5rem;gap:1.5rem}
  .request h2{font-size:clamp(2.35rem,10vw,2.9rem);line-height:1.02}
  .request>div>p:not(.eyebrow){font-size:.92rem}
  .large-phone{margin:1.35rem 0 .45rem;font-size:clamp(2rem,10vw,2.7rem)}
  .request form{gap:.85rem;padding:1.15rem;border-radius:.85rem;box-shadow:0 20px 55px rgba(16,42,67,.11)}

  body .contact-section{min-height:auto;padding:0 1rem}
  body .contact-grid{position:relative;top:auto;min-height:auto;padding:4rem 0 6.5rem;align-content:start;gap:1.35rem}
  .contact-section h2{font-size:clamp(2.4rem,10.4vw,3.15rem);line-height:1.01}
  .contact-section .cta-row{display:grid;grid-template-columns:1fr 1.18fr;gap:.5rem;margin:1.15rem 0 .35rem}
  .contact-section .button{min-height:3rem;padding:.62rem .45rem;font-size:.78rem}
  body .contact-card{padding:1.15rem;border-radius:.85rem}
  .contact-card strong{font-size:1.3rem}
  .closing-halo{display:none}
}

/* Consent-first analytics. The banner is a quiet, reversible choice layer;
   Google code is not requested until the visitor explicitly accepts. */
.footer-privacy{padding:0;border:0;background:transparent;color:rgba(255,255,255,.84);font:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.analytics-consent{position:fixed;z-index:70;left:1rem;right:1rem;bottom:1rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1rem,3vw,3rem);align-items:end;width:min(980px,calc(100% - 2rem));margin-inline:auto;padding:1.35rem 1.45rem;border:1px solid rgba(197,164,109,.42);border-radius:1rem;background:rgba(247,244,236,.98);box-shadow:0 22px 80px rgba(2,13,19,.3);color:var(--ink);backdrop-filter:blur(18px)}
.analytics-consent[hidden]{display:none}.analytics-consent .eyebrow{margin:0 0 .3rem}.analytics-consent h2{margin:0 0 .5rem;font-size:clamp(1.55rem,2.6vw,2.2rem)}.analytics-consent p:not(.eyebrow){max-width:720px;margin:0;color:var(--muted);font-size:.9rem}.consent-details{margin:.7rem 0 0;padding:0;border:0;background:transparent;color:var(--teal);font:inherit;font-size:.8rem;font-weight:800;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.consent-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.consent-actions .button{min-height:2.8rem;padding:.55rem 1rem;font-size:.78rem}.analytics-privacy{width:min(760px,calc(100% - 2rem));max-height:min(86svh,860px);padding:clamp(1.3rem,4vw,2.5rem);border:1px solid rgba(197,164,109,.45);border-radius:1rem;background:var(--ivory);color:var(--ink);box-shadow:0 28px 100px rgba(2,13,19,.48)}.analytics-privacy::backdrop{background:rgba(2,13,19,.7);backdrop-filter:blur(5px)}.privacy-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.privacy-dialog-head .eyebrow{margin:0}.privacy-close{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:1px solid rgba(16,42,67,.22);border-radius:50%;background:transparent;color:var(--ink);font:400 1.5rem/1 sans-serif;cursor:pointer}.analytics-privacy h2{font-size:clamp(2rem,5vw,3.2rem)}.analytics-privacy>p{color:var(--muted)}.analytics-privacy dl{display:grid;gap:.8rem;margin:1.5rem 0}.analytics-privacy dl>div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding-top:.8rem;border-top:1px solid rgba(16,42,67,.14)}.analytics-privacy dt{color:var(--teal);font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.analytics-privacy dd{margin:0;color:#415860;font-size:.88rem}.analytics-privacy .privacy-note{padding:.85rem;background:#ece7dc;color:#415860;font-size:.82rem}
@media(max-width:900px){.analytics-consent{bottom:4.65rem;grid-template-columns:1fr;padding:1rem}.analytics-consent h2{font-size:1.6rem}.analytics-consent p:not(.eyebrow){font-size:.82rem}.analytics-consent .consent-actions{display:grid;grid-template-columns:1fr 1.35fr}.analytics-consent .button{padding:.5rem;font-size:.72rem}.analytics-privacy{width:calc(100% - 1rem);max-height:calc(100svh - 1rem);padding:1.15rem}.analytics-privacy h2{font-size:2rem}.analytics-privacy dl>div{grid-template-columns:1fr;gap:.25rem}.analytics-privacy .consent-actions{display:grid;grid-template-columns:1fr 1.35fr}.analytics-privacy .button{padding:.5rem;font-size:.72rem}}

/* Preserve the approved brand palette when a browser requests or forces a
   dark page theme. The site currently supports only this authored scheme. */
:root{color-scheme:only light}
html{background:#f7f4ec;color:#10242d}

/* Samsung Internet can apply its own dark-page transform even when a site
   declares light-only support. Supplying an authored dark-preference branch
   keeps control with the page while intentionally preserving the same brand
   palette; this site does not offer an alternate dark visual identity. */
@media(prefers-color-scheme:dark){
  :root{color-scheme:only light;--night:#071822;--navy:#102a43;--teal:#1e6f6b;--gold:#c5a46d;--ivory:#f7f4ec;--ink:#10242d;--muted:#62737a;--line:rgba(197,164,109,.32)}
  html,body{background:#f7f4ec;color:#10242d}
}
