:root{--bg:#eeede9;--ink:#181918;--muted:#73736d;--line:#cfcfc6;--accent:#b74929}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 "DM Sans",Arial,sans-serif}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
header{height:84px;position:absolute;top:0;width:100%;z-index:10;display:flex;align-items:center;padding:0 4%;gap:35px}
.brand{display:flex;align-items:center;justify-content:center;width:100px;height:68px;flex-shrink:0}
.brand img{display:block;width:100px;height:100px;transform:translateY(5px)}

.header-note{font-size:8px;line-height:1.4;letter-spacing:1px}
nav{margin-left:auto;display:flex;gap:30px;font-size:10px}
nav a:hover{color:var(--accent)}
.skip{position:fixed;left:10px;top:0;transform:translateY(-110%);background:white;padding:12px;z-index:50}
.skip:focus{transform:none}
#journey{height:760vh;position:relative}
.stage{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#faf9f5 0%,#eeede9 65%)}
.title-block{position:absolute;top:14%;width:100%;text-align:center;z-index:1;will-change:opacity,transform}
.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:600}
.title-block .eyebrow{margin:0 0 18px}
h1{font-family:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;line-height:.86;margin:0;font-weight:800;letter-spacing:-.018em}
h1 span{display:block;font-size:7.3vw}
h1 strong{display:block;font-size:17.1vw;font-weight:800;margin-top:6px}
#viewport{position:absolute;inset:0;z-index:2;touch-action:pan-y}
#viewport canvas{display:block;width:100%;height:100%;pointer-events:none}
#viewport.inspect{touch-action:none;cursor:grab}
#viewport.inspect canvas{pointer-events:auto}
#viewport.inspect:active{cursor:grabbing}
.intro-caption{position:absolute;left:4%;bottom:15%;z-index:3;pointer-events:none}
.intro-caption p{font-size:20px;line-height:1.2;letter-spacing:-.5px;margin:15px 0}
#part-card{position:absolute;right:5%;top:37%;width:245px;z-index:4;opacity:0;transform:translateY(15px);pointer-events:none;transition:opacity .3s,transform .3s}
#part-card.visible{opacity:1;transform:none}
#part-card h2{font-size:33px;font-weight:500;line-height:1.07;letter-spacing:-1px;margin:17px 0}
#part-card p{font-size:12px;color:#66675f;line-height:1.65}
.stage-bottom{position:absolute;bottom:26px;left:4%;right:4%;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px}
#phase-label{font-size:8px;letter-spacing:1.2px}
#phase-label small{display:block;font-size:8px;color:#777b6f;margin-top:3px}
.view-controls{display:flex;gap:5px;background:#f8f8f0b5;padding:5px;border:1px solid #d8dbd1;border-radius:30px;backdrop-filter:blur(12px)}
.view-controls button{border:0;background:transparent;color:#4e5448;padding:10px 14px;font-size:9px;border-radius:20px}
.view-controls button:hover,.view-controls button[aria-pressed=true]{background:#20251e;color:white}
.progress-track{position:absolute;bottom:0;height:3px;left:0;width:100%;background:#dddcd5;z-index:5}
#progress-bar{height:100%;width:0;background:var(--accent)}
#loading{position:absolute;z-index:6;top:58%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;background:#f6f6efdf;padding:16px 22px;border-radius:30px;font-size:11px}
.loader{width:15px;height:15px;border:1px solid #9c9d91;border-top-color:var(--accent);border-radius:50%;animation:loading 1s linear infinite}
@keyframes loading{to{transform:rotate(360deg)}}
#fallback{position:absolute;z-index:8;top:50%;left:25%;width:50%;padding:25px;background:var(--bg);border:1px solid var(--line)}
#fallback h2{font-size:35px}
#fallback a{border-bottom:1px solid}
h2{font-weight:500;font-size:clamp(36px,4.5vw,68px);line-height:1.05;letter-spacing:-2px;margin:0}
h2 span{color:#919389}
footer{border-top:1px solid var(--line);padding:30px 5%;display:flex;align-items:center;gap:30px}
footer p{font-size:11px}
footer small{font-size:9px;color:#818477}
footer>a:last-child{margin-left:auto;font-size:10px}
@media (min-width:1600px){#part-card{right:8%;width:285px}
#part-card h2{font-size:40px}}
@media (max-width:1000px){#part-card{right:4%;width:210px}
#part-card h2{font-size:27px}
.intro-caption p{font-size:17px}
.view-controls button{padding:10px}}
@media (max-width:650px){header{height:70px;padding:0 6%}
.header-note{display:none}
nav{gap:18px;font-size:9px}
nav a:first-child{display:none}
#journey{height:700vh}
.stage{min-height:640px}
.title-block{top:16%}
.title-block .eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:14px}
h1 span{font-size:7.7vw}
h1 strong{font-size:18vw}
.intro-caption{bottom:17%;left:6%}
.intro-caption p{font-size:15px;margin:8px 0}
.stage-bottom{left:6%;right:6%;bottom:22px;flex-wrap:wrap;gap:12px}
#phase-label,#phase-label small{font-size:7px}
.view-controls{order:3;width:100%;justify-content:center}
.view-controls button{font-size:9px;flex:1;padding:10px 7px}
#part-card{top:auto;bottom:20%;left:6%;right:6%;width:auto;max-width:330px;background:#eeede9e8;padding:14px 18px;border-left:2px solid var(--accent);backdrop-filter:blur(10px)}
#part-card .eyebrow{font-size:7px}
#part-card h2{font-size:24px;margin:8px 0}
#part-card p{font-size:10px;line-height:1.5;margin:8px 0}
footer{gap:15px;flex-wrap:wrap}
footer p{max-width:250px;font-size:10px}
footer>a:last-child{margin-left:0}
#fallback{left:8%;width:84%;top:42%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.loader{animation:none}
*{transition:none!important}}
#part-card.visible{pointer-events:auto}
.intro-caption{max-width:200px}
@media (max-width:650px){.intro-caption{bottom:18%;max-width:145px}
.intro-caption p{font-size:12px}
#part-card{bottom:18%;max-width:290px}
#part-card p{font-size:9px}}
.title-block{top:9%}
.title-block .eyebrow{margin-bottom:10px}
h1 span{font-size:min(6.5vw,8vh)}
h1 strong{font-size:min(14.6vw,18vh)}
@media (max-width:650px){.title-block{top:10%}
.title-block .eyebrow{margin-bottom:10px}
h1 span{font-size:7.7vw}
h1 strong{font-size:18vw}}
