@font-face{font-family:Harmony;src:url('assets/harmony-regular.ttf')}@font-face{font-family:Harmony;src:url('assets/harmony-bold.ttf');font-weight:700}
:root{--blue:#002fa7;--ink:#17191b;--line:#dadbdc;--paper:#f5f5f2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:white;color:var(--ink);font:16px/1.55 Harmony,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #507bea;outline-offset:5px}header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 4vw;background:#fff;position:relative;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:20px}.brand img{object-fit:contain}.brand span{font-size:9px;letter-spacing:1.6px;max-width:100px}nav{display:flex;gap:32px;align-items:center;font-size:13px}.nav-contact{border-bottom:1px solid var(--blue);padding:12px 0}.nav-contact span{color:var(--blue);margin-left:28px}#motion{border:0;background:none;color:#666;font-size:11px}.skip{position:fixed;top:-100px;background:white;padding:20px;z-index:100}.skip:focus{top:0}.intro{padding:52px 5vw 56px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0 0 25px}.dot{display:inline-block;background:var(--blue);width:7px;height:7px;border-radius:50%;margin-right:9px}.intro-row{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}h1{font-size:clamp(50px,6.5vw,104px);font-weight:400;line-height:1.01;letter-spacing:-.06em;margin:0}em{font-style:normal;color:var(--blue)}.intro-aside{padding-bottom:6px;font-size:14px}.intro-aside p{color:#606468;margin:0 0 25px}.intro-aside a{font-size:12px;display:flex;gap:48px}.intro-aside a span{color:var(--blue)}#journey{height:850vh;position:relative}.stage{height:100svh;position:sticky;top:0;background:#25292b;overflow:hidden;color:white}.scene-image{position:absolute;width:100%;height:100%;object-fit:cover;opacity:0;will-change:transform,opacity;transform-origin:38% 60%}.scene-image:first-child{opacity:1}.shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 55%),linear-gradient(90deg,rgba(0,0,0,.25),transparent 75%);pointer-events:none}.stage-top{position:absolute;top:35px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.scene-caption{position:absolute;left:5vw;bottom:140px;max-width:600px}.scene-caption .eyebrow{margin-bottom:18px}h2{font-size:clamp(40px,5vw,76px);font-weight:400;letter-spacing:-.05em;line-height:1.06;margin:0}.scene-caption h2{font-size:clamp(54px,6.7vw,110px);letter-spacing:-.055em;line-height:1.01}.scene-caption>p:not(.eyebrow){font-size:15px;max-width:380px;line-height:1.6}.white-link{border:0;border-bottom:1px solid #ffffff80;background:transparent;color:white;padding:13px 0;min-width:240px;display:flex;justify-content:space-between;gap:35px;font-size:13px}.stage-bottom{position:absolute;bottom:39px;left:5vw;right:5vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.scroll-cue{font-size:9px;letter-spacing:1.6px}.scroll-cue span{display:inline-block;margin-left:15px;animation:down 1.6s infinite}.image-note{font-size:9px;color:#ddd}#chapters{display:flex;gap:8px}#chapters button{border:0;background:transparent;color:#aaa;min-width:34px;padding:12px 4px;font-size:11px;border-top:1px solid #ffffff40}#chapters button[aria-current=true]{color:white;border-top:2px solid white}.progress{position:absolute;bottom:0;height:3px;left:0;right:0;background:#ffffff20}.progress i{display:block;height:100%;width:0;background:#4169ff}.section{padding:105px 6vw;scroll-margin-top:10px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:25px;margin-bottom:60px}.section-heading .eyebrow{grid-column:1/-1}.section-heading>p:last-child{align-self:end;justify-self:end;color:#606468;font-size:14px}.application-row{display:grid;grid-template-columns:50px 1.1fr 1fr 48px;align-items:center;gap:25px;padding:24px 0;border-top:1px solid var(--line);width:100%;text-align:left;background:none;color:inherit;border-bottom:0;border-left:0;border-right:0;transition:transform .25s,color .25s}.application-row:hover{transform:translateX(8px);color:var(--blue)}.application-row>span:first-child{font-size:11px;color:#73777c}.application-row strong{font-size:clamp(20px,2.2vw,32px);font-weight:400;letter-spacing:-.025em}.application-row p{font-size:13px;color:#686c70}.application-row .arrow{font-size:25px;justify-self:end}.principles{background:var(--paper)}.principles h2{max-width:900px}.principle-intro{margin:40px 0 65px 38%;max-width:620px}.principle-intro p{font-size:20px;line-height:1.6}.text-link{font-size:12px;border-bottom:1px solid #aaa;padding-bottom:10px}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.principle-grid article{border-top:1px solid #bfc1c3;padding-top:20px}.principle-grid span{font-size:11px;color:var(--blue)}.principle-grid h3{font-size:23px;font-weight:400;letter-spacing:-.03em;margin:30px 0 15px}.principle-grid p{font-size:14px;color:#63676a}.faq h2{margin-bottom:50px}.faq details{margin-left:38%;border-top:1px solid var(--line);padding:22px 0}.faq summary{cursor:pointer;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::after{content:'+';color:var(--blue)}.faq details[open] summary::after{content:'−'}.faq details p{font-size:14px;color:#63676a;max-width:650px}.contact{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:9vw}.contact>div>p:not(.eyebrow){color:#63676a;margin:28px 0}.contact-links{margin-top:40px}.contact-links a{display:block;border-top:1px solid var(--line);padding:18px 0;font-size:16px}.contact-links span{float:right;color:var(--blue)}.contact-links small{display:block;font-size:11px;color:#666;margin-top:3px}label{display:block;font-size:11px;letter-spacing:.2px;margin-bottom:25px}input,select,textarea{display:block;width:100%;padding:12px 0;border:0;border-bottom:1px solid #aaa;background:transparent;border-radius:0;color:#232323;resize:vertical;font-size:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.submit{display:flex;width:100%;justify-content:space-between;background:var(--blue);color:white;border:0;padding:18px 22px;font-size:13px}.form-note{font-size:11px;color:#666}.contact form{padding-top:5px}footer{padding:45px 6vw;display:flex;gap:25px;justify-content:space-between;align-items:center;flex-wrap:wrap}footer>span{font-size:25px;font-weight:700}footer small{font-size:9px;letter-spacing:1px}footer p,footer a{font-size:12px}footer>span small{display:block}.preview-note{width:100%;color:#777;border-top:1px solid var(--line);padding-top:20px}dialog{border:0;padding:60px;max-width:650px;width:calc(100% - 32px);max-height:85svh;color:var(--ink)}dialog::backdrop{background:#111a;backdrop-filter:blur(6px)}dialog h2{font-size:42px}dialog h3{font-size:16px;margin-top:32px}dialog p,dialog li{font-size:14px;color:#606468}dialog li{margin:12px 0}dialog .submit{margin:28px 0 20px}dialog>a{font-size:12px}.dialog-note{border-top:1px solid var(--line);padding-top:20px}#close-dialog{position:absolute;right:20px;top:14px;font-size:28px;background:none;border:0}.reduce-motion *{animation:none!important;scroll-behavior:auto!important}.reduce-motion .scene-image{transform:none!important}@keyframes down{50%{transform:translateY(5px)}}
@media(max-width:800px){header{height:80px;padding:10px 5vw}.brand img{width:65px;height:52px}.brand span,nav>a:not(.nav-contact){display:none}nav{gap:10px}nav .nav-contact{font-size:11px}.nav-contact span{margin-left:10px}#motion{font-size:9px;max-width:55px}.intro{padding:35px 6vw 40px}.intro .eyebrow{font-size:8px;letter-spacing:1px}.intro-row{display:block}.intro-aside{margin-top:28px;display:flex;justify-content:space-between;gap:20px;font-size:12px}.intro-aside p{margin:0}.intro-aside a{font-size:10px;gap:10px;align-items:center}.scene-caption{bottom:145px;left:6vw;right:6vw}.scene-caption h2{font-size:58px}.scene-caption>p:not(.eyebrow){font-size:13px;max-width:300px}.stage-bottom{bottom:27px;left:6vw;right:6vw;flex-wrap:wrap;gap:12px}.scroll-cue{display:none}.image-note{width:100%;font-size:8px}.scene-image{object-position:55% center}.stage-top{top:25px;font-size:8px}.section{padding:65px 6vw}.section-heading{display:block;margin-bottom:35px}.section-heading>p:last-child{margin-top:25px}.application-row{grid-template-columns:25px 1fr 25px;gap:12px;padding:22px 0}.application-row p{display:none}.application-row strong{font-size:22px}.principle-intro{margin:30px 0 45px}.principle-intro p{font-size:17px}.principle-grid{grid-template-columns:1fr;gap:25px}.principle-grid h3{margin-top:15px}.faq details{margin-left:0}.contact{grid-template-columns:1fr;gap:40px}dialog{padding:42px 25px}dialog h2{font-size:32px}.form-row{gap:15px}footer p{display:none}#journey{height:650vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important}.scene-image{transform:none!important}}

/* Motion upgrade: GPU photographic projection, staged captions, editorial reveals. */
#motion-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.gpu-ready #motion-canvas{opacity:1}.gpu-ready #scene-images{visibility:hidden}.gpu-ready.motion-off #motion-canvas,.reduce-motion #motion-canvas{opacity:0}.gpu-ready.motion-off #scene-images,.reduce-motion .gpu-ready #scene-images{visibility:visible}.scene-caption{will-change:transform,opacity}.stage-top:before{content:'';position:absolute;right:0;top:29px;width:100px;height:1px;background:#ffffff40}.stage-top:after{content:'';position:absolute;right:0;top:29px;width:calc(var(--scene-progress,0%) / 100 * 100);max-width:100px;height:1px;background:white}#chapters button{position:relative;transition:color .25s,transform .25s;width:34px}#chapters button::after{content:"";position:absolute;top:-2px;left:0;width:100%;height:2px;background:white;transform:scaleX(0);transform-origin:left;transition:transform .3s}#chapters button[aria-current=true]::after{transform:scaleX(1)}#chapters button:hover{transform:translateY(-5px)}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform .8s cubic-bezier(.16,1,.3,1)}.reveal.revealed{opacity:1;transform:translateY(0)}.principle-grid article:nth-child(2){transition-delay:.13s}.principle-grid article:nth-child(3){transition-delay:.26s}.reduce-motion .reveal{opacity:1;transform:none;transition:none}.scene-caption h2{animation:title-in .75s cubic-bezier(.16,1,.3,1)}@keyframes title-in{from{opacity:0;transform:translateY(35px);clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Three real Harmony weights; no synthetic light or bold. */
@font-face{font-family:Harmony;src:url('assets/harmony-light.ttf');font-weight:300;font-display:swap}
body{font-synthesis:none}h1,h2,.scene-caption h2{font-weight:300}h1 em,h2 strong{font-weight:700}h1{letter-spacing:-.055em}h2 strong{letter-spacing:-.055em}nav,.white-link,.submit,.text-link{font-weight:700}.application-row strong{font-weight:400}.application-row:hover strong{color:var(--blue)}.principle-grid h3{font-weight:700;font-size:22px}.scene-caption>p:not(.eyebrow){font-weight:400}.stage-top:after{width:100px;transform-origin:right;transform:scaleX(var(--scene-progress,0))}

#chapters button[aria-current=true]{border-top:1px solid #ffffff40}.application-row.revealed:hover{transform:translateX(8px)}

/* Application titles: smaller light lead-in, larger bold focal phrase. */
.scene-caption h2{font-size:clamp(36px,4.4vw,72px);line-height:1.18;letter-spacing:-.045em}
.scene-caption h2 strong{display:inline-block;font-size:1.5em;line-height:1.02;letter-spacing:-.055em;margin-top:.08em}
@media(max-width:800px){.scene-caption h2{font-size:clamp(27px,8.7vw,40px)}.scene-caption h2 strong{font-size:1.5em}}
#duct-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.reduce-motion #duct-video{display:none}
/* User-requested CRT texture: video only, below copy, no flashing or extra media. */
#application-scanlines{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 4px)}
.reduce-motion #application-scanlines{display:none}
@media(max-width:800px){#application-scanlines{background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 4px)}}

#lining-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.reduce-motion #lining-video{display:none}

.application-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.reduce-motion .application-video{display:none}

/* Keep the shared texture over every video and below the copy. */
.stage>video{z-index:1}.stage>.shade,.stage>.stage-top,.stage>.scene-caption,.stage>.stage-bottom,.stage>.progress{z-index:3}

/* Application journey: keep the section label separate from the moving caption. */
.stage-top{top:32px;min-height:20px;align-items:center}
.scene-caption{top:max(100px,calc(50% - 210px));bottom:auto;max-height:calc(100% - 220px)}
.scene-caption .eyebrow{line-height:1.5;margin:0 0 20px}
@media(max-height:700px) and (min-width:801px){.scene-caption{top:115px}.scene-caption h2{font-size:clamp(30px,4vw,56px)}.scene-caption h2 strong{font-size:1.35em}.scene-caption>p:not(.eyebrow){margin:12px 0;font-size:13px}.scene-caption .white-link{padding:9px 0}}
@media(max-width:800px){.stage-top{top:24px}.scene-caption{top:100px;max-height:calc(100% - 195px)}.scene-caption .eyebrow{font-size:10px;margin-bottom:18px}.scene-caption h2{font-size:clamp(27px,8vw,40px)}}
