/* The opening is intentionally a white canvas; the existing paper palette begins below it. */
html.intro-loading{overflow:hidden}
.site-loader{display:none;position:fixed;inset:0;z-index:200;background:#eee7d8;color:#283c32;align-items:center;justify-content:center;flex-direction:column;gap:20px;transition:opacity .32s ease,visibility .32s}
.intro-loading .site-loader{display:flex}.site-loader.is-leaving{display:flex;opacity:0;visibility:hidden;pointer-events:none}
.loader-record{position:relative;width:156px;height:156px;padding:11px;border:1px solid #7d806b;border-radius:50%;background:repeating-radial-gradient(circle,#313e32 0 1px,#3c493b 1px 3px);box-shadow:0 10px 35px #39452b18}
.loader-rotor{height:100%;width:100%;border-radius:50%;overflow:hidden;animation:portrait-accelerate 2.4s linear infinite;will-change:transform}
.loader-portrait{width:100%;height:100%;position:relative;border-radius:50%;overflow:hidden;border:1px solid #b5b192}
.loader-portrait img{display:block;max-width:none;width:100%;height:100%;object-fit:cover;object-position:50% 27%;filter:sepia(.7) saturate(.55) contrast(1.1)}
.loader-portrait:after{content:'';position:absolute;inset:0;background:radial-gradient(#192d2660 .65px,transparent .8px);background-size:3px 3px;mix-blend-mode:multiply;pointer-events:none}
.record-ring{position:absolute;inset:6px;border:1px solid #d9d5b14d;border-radius:50%;pointer-events:none}
.loader-brand{font:italic 38px/1 Georgia,serif;letter-spacing:-1.5px;margin-top:9px}
.site-loader>p{font:10px/1.6 Arial,sans-serif;text-transform:uppercase;letter-spacing:2px}
#skip-intro{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));border:0;border-bottom:1px solid #8a927a;padding:10px 4px;background:transparent;font-size:11px;min-height:44px;color:#516047}
@keyframes portrait-accelerate{0%{transform:rotate(0)}18%{transform:rotate(20deg)}42%{transform:rotate(160deg)}68%{transform:rotate(620deg)}100%{transform:rotate(1800deg)}}
.loader-is-fast .loader-rotor{animation:portrait-fast .20s linear infinite}
@keyframes portrait-fast{to{transform:rotate(360deg)}}
.header-shell{position:fixed;left:0;right:0;top:0;opacity:var(--nav-opacity,0);transform:translateY(var(--nav-y,-105%));pointer-events:none;transition:none}
html.intro-navigation .header-shell{pointer-events:auto}
.hero{padding-top:0;background:#fff}
/* Real content-box height is essential: padding below a viewport-tall child does
   not provide the child with a reliable sticky containing-block travel range. */
.hero-runway,.hero-flow .hero-runway{position:relative;height:calc(100svh + clamp(980px,160svh,1800px));padding:0;overflow:visible}
.hero-stage.wrap,.hero-flow .hero-stage.wrap{position:sticky;top:0;min-height:0;height:100svh;width:100%;margin:0;padding:0!important;overflow:hidden;border-radius:0;background:#fff;display:block;isolation:isolate}
.hero-table{position:absolute;inset:auto;left:50%;top:50%;width:min(1160px,calc(100% - 48px));height:min(690px,calc(100svh - 100px));aspect-ratio:auto;max-height:none;border-radius:24px;background:transparent;overflow:hidden;opacity:var(--desk-opacity,0);transform:translate3d(calc(-50% + var(--desk-x,0px)),calc(-50% + var(--desk-y,24px)),0) scale(var(--desk-scale,1));transition:none;will-change:transform}
.hero-model{opacity:0;background:transparent;--poster-color:transparent}
.has-3d .hero-model{opacity:1;transition:none}
.scene-status{display:none}
.scene-unavailable .hero-table{background:var(--paper-light);opacity:1}
.scene-unavailable .scene-status{display:block}.scene-unavailable .intro-scroll{display:none}
.intro-scroll{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);border:0;background:transparent;color:var(--ink);padding:18px;display:flex;flex-direction:column;align-items:center;gap:22px;min-width:170px;min-height:150px;opacity:var(--arrow-opacity,1);visibility:var(--arrow-visibility,visible);transition:opacity .15s ease}
.scroll-stem{width:30px;height:76px;display:block;animation:scroll-drift 2s cubic-bezier(.45,0,.55,1) infinite}
.scroll-stem svg{width:100%;height:100%;display:block}
.intro-scroll>span:last-child{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;line-height:1.7}
@keyframes scroll-drift{0%,100%{transform:translateY(-6px)}50%{transform:translateY(7px)}}
.hero-copy.wrap{position:absolute;top:var(--copy-top,60%);left:50%;right:auto;width:min(760px,calc(100% - 40px));margin:0;padding:0;border:0;border-radius:0;background:#fff;color:var(--ink);text-align:center;opacity:var(--copy-opacity,0);visibility:var(--copy-visibility,hidden);transform:translate3d(-50%,var(--copy-y,20px),0);transition:none}
.hero-copy .eyebrow{font-size:10px;margin-bottom:10px}.hero-copy h1{font-size:clamp(32px,3.4vw,44px);max-width:760px;line-height:1.1;margin:0 auto 13px}.hero-intro{max-width:580px;margin:0 auto 17px;font-size:14px;line-height:1.65}.hero-fine{margin:10px auto 0;font-size:11px;line-height:1.5}
.hero-foot{padding-bottom:24px;border-bottom:1px solid #e2e5d9}
@media(max-width:900px){.hero-table{width:calc(100% - 24px);height:min(84vw,calc(100svh - 95px));border-radius:20px}}
@media(max-width:600px){.hero-table{width:calc(100% - 20px);height:min(108vw,calc(100svh - 110px));border-radius:18px}.hero-copy.wrap{width:calc(100% - 36px)}.hero-copy h1{font-size:clamp(28px,7.7vw,34px);line-height:1.12}.hero-copy h1 br{display:block}.hero-copy .eyebrow{font-size:9px;letter-spacing:1px}.hero-intro{font-size:13px;line-height:1.65}.hero-cta{min-height:46px;padding:11px 18px}.intro-scroll>span:last-child{font-size:9px;letter-spacing:1.4px}.loader-record{width:142px;height:142px}}
@media(max-height:650px){.hero-copy h1{font-size:28px;margin-bottom:10px}.hero-copy .eyebrow{font-size:8px;letter-spacing:.8px;margin-bottom:8px}.hero-intro{font-size:12px;line-height:1.55;margin-bottom:12px}.hero-fine{font-size:10px;margin-top:8px}.hero-cta{font-size:12px;min-height:44px;padding:10px 16px}}
@media(max-height:600px) and (orientation:landscape){.hero-table{width:min(850px,calc(100% - 44px));height:calc(100svh - 55px)}.intro-scroll{min-height:130px;gap:13px}.scroll-stem{height:58px}}
.hero-split .hero-copy.wrap{left:76%;width:calc(48% - 36px);text-align:left}.hero-split .hero-copy h1{font-size:clamp(25px,3vw,32px)}
.hero-split.hero-short .hero-copy.wrap{left:71%;width:calc(58% - 36px)}.hero-split.hero-short .hero-copy h1{font-size:24px;margin-bottom:8px}.hero-split.hero-short .hero-copy .eyebrow{margin-bottom:6px}.hero-split.hero-short .hero-intro{margin-bottom:10px}.hero-split.hero-short .hero-fine{margin-top:7px}
/* No empty animation track in reduced motion or when WebGL is unavailable. */
.scene-unavailable .hero-runway,.scene-unavailable.hero-flow .hero-runway{height:auto;padding:0}
.scene-unavailable .hero-stage.wrap,.scene-unavailable.hero-flow .hero-stage.wrap{position:relative;top:auto;height:auto;min-height:0;padding:calc(var(--header) + 20px) 0 24px!important;overflow:visible;display:flex;flex-direction:column;align-items:center;gap:24px}
.scene-unavailable .hero-table{position:relative;left:auto;top:auto;height:45svh;min-height:220px;transform:none;will-change:auto}
.scene-unavailable .hero-copy.wrap{position:relative;left:auto;top:auto;width:min(760px,calc(100% - 36px));opacity:1;visibility:visible;transform:none;text-align:center}
@media(prefers-reduced-motion:reduce){.loader-rotor,.scroll-stem{animation:none!important}.hero-runway,.hero-flow .hero-runway{height:auto;padding:0}.hero-stage.wrap,.hero-flow .hero-stage.wrap{position:relative;top:auto;height:auto;min-height:0;padding:calc(var(--header) + 20px) 0 24px!important;overflow:visible;display:flex;flex-direction:column;align-items:center;gap:24px}.hero-table{position:relative;left:auto;top:auto;height:min(520px,55svh);opacity:1;transform:none;will-change:auto}.hero-copy.wrap,.hero-split .hero-copy.wrap{position:relative;left:auto;top:auto;width:min(760px,calc(100% - 36px));opacity:1;visibility:visible;transform:none;text-align:center}.intro-scroll{display:none}.header-shell{opacity:1;transform:none}}
