/* The signature film: native scroll, short transitions and stable text. */
.home { --scene-ink:#eae6dd; --scene-soft:#adada3; }
.home [hidden] { display:none!important; }
.home .hero { padding-bottom:116px; }
.home .hero-copy { max-width:650px; }
.home .hero h1 { font-size:clamp(64px,6.4vw,100px); line-height:1.03; letter-spacing:-.015em; }
.home .hero h1 .line { overflow:visible; }
.home .hero h1 .line span { animation:signatureEnter 1.2s var(--ease) both; }
.home .hero-description { font-size:14px; max-width:35em; }
.home .hero-visual { transform:translate3d(0,var(--portrait-shift,0px),0); }
.home .hero-portrait { animation:none; clip-path:none; }
.home .hero-portrait video { animation:none; }
.home .scroll-cue { font-size:9px; letter-spacing:.12em; }
.home .scene-section { position:relative; isolation:isolate; scroll-margin-top:40px; }
.scene-section .eyebrow { font-size:10px; line-height:1.65; letter-spacing:.13em; }
.scene-section h2 { font-size:clamp(48px,5.15vw,78px); line-height:1.08; letter-spacing:-.014em; }
.scene-section h2 em { color:var(--gold); font-weight:400; }
.scene-section .scene-lead { font-size:15px; line-height:1.8; max-width:33em; margin-top:26px; }
.focus-scene { padding:100px 0 130px; background:#171914; border-top:1px solid var(--line); }
.focus-layout { display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr); align-items:center; gap:clamp(42px,7vw,112px); }
.focus-layout>*,.precision-layout>* { min-width:0; }
.focus-visual { position:relative; max-width:460px; width:100%; margin:0 auto; }
.focus-portrait { position:relative; overflow:hidden; aspect-ratio:3/4; background:#25251f; }
.focus-portrait>img { width:100%; height:100%; object-fit:cover; object-position:center 12%; transition:transform 1.3s var(--ease),filter 1s; transform:scale(1.025); }
.focus-visual[data-zone=skin] .focus-portrait>img { transform:scale(1.065); }
.focus-visual[data-zone=balance] .focus-portrait>img { transform:scale(1); }
.focus-shade { position:absolute; inset:0; background:linear-gradient(transparent 60%,#0c100cab); pointer-events:none; }
.focus-reticle { position:absolute; width:var(--focus-size); aspect-ratio:1; left:var(--focus-x); top:var(--focus-y); transform:translate(-50%,-50%); transition:width .9s var(--ease),left .9s var(--ease),top .9s var(--ease); border:1px solid #cdb48b35; border-radius:50%; box-shadow:0 0 0 16px #cdb48b08; pointer-events:none; }
.focus-reticle i { position:absolute; width:14px; height:14px; border:1px solid var(--gold); }
.focus-reticle i:nth-child(1) { top:-5px; left:-5px; border-width:1px 0 0 1px; }
.focus-reticle i:nth-child(2) { top:-5px; right:-5px; border-width:1px 1px 0 0; }
.focus-reticle i:nth-child(3) { bottom:-5px; left:-5px; border-width:0 0 1px 1px; }
.focus-reticle i:nth-child(4) { bottom:-5px; right:-5px; border-width:0 1px 1px 0; }
.scene-frame-number { position:absolute; top:18px; left:18px; color:#f3eee2; font:9px/1.5 var(--sans); letter-spacing:.15em; }
.focus-visual-note { position:absolute; bottom:25px; left:26px; right:20px; font:italic 25px/1.25 var(--serif); color:var(--ink); }
.focus-tabs { display:flex; gap:5px; margin-top:32px; border-bottom:1px solid var(--line); }
.focus-tabs button { font-size:12px; line-height:1.4; color:#a4a69b; padding:15px 13px; border:0; border-bottom:2px solid transparent; background:none; min-height:48px; }
.focus-tabs button:hover { color:var(--ink); }
.focus-tabs [aria-selected=true] { color:var(--gold); border-color:var(--gold); }
.focus-panels { min-height:245px; }
.focus-panel { padding-top:28px; }
.focus-panel h3 { font-size:31px; line-height:1.18; margin-bottom:14px; }
.focus-panel>p { font-size:13px; line-height:1.8; max-width:36em; }
.focus-panel:not([hidden]) { animation:signatureEnter .55s var(--ease) both; }
.focus-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:18px; }
.focus-actions button { background:none; border:0; border-bottom:1px solid var(--line); }
.focus-actions a { font-size:11px; color:var(--gold); padding:12px 0; }
.scene-fineprint { font-size:10px; line-height:1.7; margin-top:15px; }
.precision-scene { background:#e7e2d7; color:#282d24; overflow:hidden; padding:130px 0; }
.precision-scene p { color:#60665a; }
.precision-scene .eyebrow,.precision-scene h2 em { color:#83704e; }
.precision-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:clamp(48px,8vw,130px); align-items:center; }
.precision-visual { position:relative; width:min(100%,410px); justify-self:end; padding-right:16px; }
.precision-film { aspect-ratio:9/14; overflow:hidden; position:relative; background:#b8b1a7; box-shadow:0 30px 70px #282d241f; }
.precision-film video { width:100%; height:100%; object-fit:cover; object-position:50% 100%; }
.precision-film:after { content:""; position:absolute; inset:60% 0 0; pointer-events:none; background:linear-gradient(transparent,#20241e85); }
.precision-caption { margin-top:22px; font:italic 32px/1.3 var(--serif); color:#282d24!important; }
.precision-caption span { display:block; font:8px/1.6 var(--sans); letter-spacing:.17em; margin-top:6px; }
.precision-seal { position:absolute; left:-51px; bottom:89px; width:104px; height:104px; background:#e7e2d7; border-radius:50%; padding:6px; }
.precision-seal svg { width:100%; height:100%; stroke:#8b7652; stroke-width:1; }
.precision-seal svg path { stroke-dasharray:600; stroke-dashoffset:600; transition:stroke-dashoffset 2.2s ease; }
.precision-visual.is-visible .precision-seal svg path { stroke-dashoffset:0; }
.precision-orbit { position:absolute; width:min(76vw,1100px); aspect-ratio:1; top:-15%; right:-10%; border:1px solid #a8997b40; border-radius:50%; z-index:-1; }
.precision-steps { list-style:none; margin:30px 0 20px; padding:0; max-width:470px; }
.precision-steps li { display:flex; gap:23px; align-items:flex-start; padding:19px 0; border-top:1px solid #b9b29f77; }
.precision-steps li>span { font-size:10px; padding-top:5px; color:#83704e; }
.precision-steps h3 { font-size:28px; line-height:1.1; margin-bottom:5px; }
.precision-steps p { font-size:12px; line-height:1.7; }
.precision-copy .text-link { border-color:#b9b29f; font-size:12px; }
.film-quote { padding-block:90px; }
.home .services .service-row p,.home .section-heading>p { font-size:13px; }
.experience-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:55px 38px; }
.experience-gallery .gallery-item:nth-child(even) { padding-top:65px; }
.experience-gallery .gallery-visual { aspect-ratio:4/4.6; background:#22251d; }
.experience-gallery .gallery-visual video,.experience-gallery .gallery-visual img { object-fit:contain; }
.experience-gallery .gallery-video-label { font-size:34px; background:radial-gradient(ellipse at 48% 15%,#9f977247,transparent 60%),linear-gradient(145deg,#2a2e23,#12150f); }
.experience-gallery .gallery-video-label:before { content:""; position:absolute; inset:16%; border:1px solid #cdb48b35; border-radius:50%; transform:rotate(-25deg) scaleX(.8); }
.gallery-visual.media-ready .gallery-video-label { opacity:0; pointer-events:none; }
.experience-gallery .gallery-caption { font-size:13px; line-height:1.6; }
.experience-gallery .gallery-caption>span>small { font-size:9px; }
.gallery-more { display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:52px; }
.gallery-more p { font-size:11px; }
.chapter-dock { position:fixed; z-index:45; bottom:20px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:24px; padding:11px 13px 11px 23px; border:1px solid #cdb48b4d; border-radius:60px; background:#171c16eb; backdrop-filter:blur(18px); box-shadow:0 10px 40px #0004; max-width:calc(100% - 32px); }
.chapter-links { display:flex; gap:18px; align-items:center; }
.chapter-links a { display:flex; align-items:center; gap:7px; min-height:36px; }
.chapter-links span { width:5px; height:5px; border-radius:50%; background:#7c7f72; transition:background .3s,transform .3s; }
.chapter-links b { color:#aaae9f; font:11px/1.4 var(--sans); white-space:nowrap; }
.chapter-links a[aria-current=location] span { background:var(--gold); transform:scale(1.5); }
.chapter-links a[aria-current=location] b { color:var(--ink); }
.motion-switch { border:0; border-left:1px solid var(--line); padding:8px 0 8px 17px; min-height:40px; background:none; color:#c0c2b4; font-size:11px; white-space:nowrap; }
.chapter-book { background:var(--ink); color:#1b2119; border:0; border-radius:40px; padding:13px 20px; font-size:10px; white-space:nowrap; }
.home .footer { padding-bottom:120px; }
.js-motion .home .reveal { transition:opacity .9s var(--ease),transform .9s var(--ease); }
.motion-paused *, .motion-paused *:before,.motion-paused *:after { animation:none!important; transition:none!important; }
.motion-paused .hero-visual,.motion-paused .reveal { transform:none!important; opacity:1!important; }
.motion-paused .precision-seal svg path { stroke-dashoffset:0; }
.motion-paused { scroll-behavior:auto!important; }
@keyframes signatureEnter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:1100px) {
  .focus-layout,.precision-layout { gap:45px; }
  .scene-section h2 { font-size:58px; }
  .chapter-links b { display:none; }
  .chapter-links a { min-width:28px; min-height:40px; justify-content:center; }
  .focus-tabs button { font-size:11px; padding-inline:10px; }
}
@media (max-width:760px) {
  .home .hero h1 { font-size:clamp(50px,13.8vw,82px); }
  .home .hero-description { font-size:13px; }
  .home .hero { padding-bottom:76px; }
  .home .hero-visual { transform:none!important; margin:0 auto; }
  .focus-scene,.precision-scene { padding:72px 0; }
  .focus-layout,.precision-layout { grid-template-columns:minmax(0,1fr); gap:38px; }
  .focus-copy { grid-row:1; }
  .focus-visual { max-width:390px; }
  .focus-portrait { aspect-ratio:4/5; }
  .scene-section h2 { font-size:clamp(44px,10.3vw,65px); }
  .scene-section .scene-lead { font-size:13px; line-height:1.75; margin-top:22px; }
  .focus-tabs { margin-top:24px; }
  .focus-tabs button { font-size:12px; padding:14px 12px; flex:1; }
  .focus-panel h3 { font-size:29px; }
  .focus-panels { min-height:224px; }
  .focus-panel>p { font-size:13px; }
  .focus-visual-note { font-size:24px; }
  .precision-visual { justify-self:center; width:min(84%,370px); padding-right:0; }
  .precision-seal { left:-27px; width:86px; height:86px; }
  .precision-steps p { font-size:12px; }
  .precision-orbit { width:110vw; top:45%; right:-35%; }
  .film-quote { padding-block:66px; }
  .experience-gallery { gap:36px; grid-template-columns:minmax(0,1fr); }
  .experience-gallery .gallery-item:nth-child(even) { padding-top:0; }
  .experience-gallery .gallery-visual { aspect-ratio:4/5; }
  .experience-gallery .gallery-caption { font-size:12px; }
  .chapter-dock { bottom:max(10px,env(safe-area-inset-bottom)); gap:12px; padding:8px 9px 8px 16px; max-width:calc(100% - 20px); }
  .chapter-links { gap:0; }
  .motion-switch { font-size:10px; padding-left:10px; max-width:75px; white-space:normal; text-align:left; }
  .chapter-book { padding:13px 15px; font-size:10px; }
  .home .footer { padding-bottom:106px; }
}
@media (max-width:390px) {
  .home .hero h1 { font-size:clamp(45px,13.8vw,54px); }
  .focus-tabs button { font-size:11px; padding-inline:7px; }
  .focus-actions { gap:5px 14px; }
  .focus-actions .text-link { font-size:11px; gap:10px; }
  .chapter-links { gap:0; }
  .chapter-links a { min-width:24px; }
  .chapter-dock { gap:6px; padding:6px 8px; }
  .motion-switch { max-width:64px; padding-left:8px; }
  .chapter-book { padding-inline:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .home .hero-visual,.focus-portrait>img { transform:none!important; }
  .precision-seal svg path { stroke-dashoffset:0; }
  .home .reveal { opacity:1; transform:none; }
}
@media print { .chapter-dock { display:none!important; } }
