:root{--paper:#e9e9e3;--orange:#fa693a;--muted:#b1b6b5;--line:#ffffff27;--bg:#101315;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--paper);font-family:'Manrope',Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--orange);outline-offset:5px}button:hover{color:var(--orange)}[hidden]{display:none!important}::selection{background:var(--orange);color:#15181a}.skip{position:fixed;top:-90px;z-index:100;background:white;color:black;padding:15px}.skip:focus{top:0}header{position:fixed;inset:0 0 auto;height:90px;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;border-bottom:1px solid var(--line);background:linear-gradient(#101315db,#10131542);backdrop-filter:blur(8px)}.logo{font:600 27px 'Space Grotesk',Arial;letter-spacing:-1.4px;display:flex;align-items:center;gap:9px}.logo svg{width:29px;height:30px;fill:var(--orange)}.logo sup{font:9px Arial;align-self:flex-start;margin:5px 0 0 -5px}nav{display:flex;gap:29px;font-size:11px;color:#ced0cc}.request-link{padding:13px 19px;border:1px solid #84908b;font-size:11px}.request-link span{padding-left:30px;color:var(--orange);font-size:20px}.journey{position:relative;isolation:isolate}.render-stage{height:100svh;position:sticky;top:0;margin-bottom:-100svh;overflow:hidden;background:#101315}.render-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#101315f0 0,#101315c9 30%,#10131555 44%,transparent 61%),linear-gradient(0deg,#0a0d0e9c,transparent 20%,transparent 90%,#0a0d0e59)}#world{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}#world:active{cursor:grabbing}.stage-top,.stage-bottom{position:absolute;left:4.5%;right:4.5%;display:flex;justify-content:space-between;z-index:3;pointer-events:none;font:8px var(--mono);letter-spacing:1.5px;color:#b8c2bd}.stage-top{top:125px}.stage-bottom{bottom:28px;align-items:center;font-size:8px;color:#9eaca8}.stage-bottom button{pointer-events:auto;color:#b8c2bd;font-size:15px}.stage-bottom button span{font:9px var(--mono);margin-left:10px}.progress{position:absolute;bottom:0;left:0;right:0;height:2px;z-index:4;background:#ffffff0a}.progress i{height:100%;display:block;background:var(--orange);width:0}.chapter{position:relative;height:110svh;min-height:770px;display:flex;align-items:center;padding:0 4.5%;pointer-events:none}.chapter .copy{pointer-events:auto;max-width:560px;margin-top:25px;transition:opacity .3s}.eyebrow{font:9px var(--mono);letter-spacing:1.7px;color:#a0aba7;display:flex;gap:9px;align-items:center}.eyebrow i{width:5px;height:5px;display:inline-block;background:var(--orange)}h1{font-weight:500;font-size:clamp(64px,6.3vw,100px);line-height:1.05;letter-spacing:-5px;margin:28px 0}em{font-style:normal;color:var(--orange)}h2{font-weight:500;font-size:clamp(60px,5.6vw,87px);line-height:1.08;letter-spacing:-4px;margin:25px 0}.description{font-size:14px;color:#bbc4c0;line-height:1.9;margin:25px 0 29px}.main-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;background:var(--orange);padding:19px 23px;min-height:60px;color:#101718;font-size:12px;font-weight:700}.main-cta:hover{background:#ff825b;color:#101718}.main-cta span{font-size:23px;line-height:1}.micro{font-size:9px;color:#8d9c97;margin:18px 0;line-height:1.8}.scroll-invite{position:absolute;bottom:15svh;left:4.5%;display:flex;gap:35px;align-items:center;font-size:10px;pointer-events:auto}.scroll-invite span{font-size:23px}.model-number{position:absolute;bottom:17svh;right:4.5%;font:500 64px 'Space Grotesk';line-height:1;color:#e9e9e321}.model-number span{display:block;font:7px var(--mono);letter-spacing:1px;color:#b1bdb58c;margin-top:12px}.controls{display:flex;gap:0;border:1px solid #899a914f;background:#18202180;width:max-content;max-width:100%;padding:5px;backdrop-filter:blur(12px);margin-top:25px}.controls button{padding:12px 15px;font-size:10px;color:#c5cec7;min-height:40px}.controls button[aria-pressed=true]{background:#e7eae3;color:#1c2522}.controls button:hover{background:#f1f5e71a}.subcontrols{display:flex;gap:23px;margin-top:19px;font:9px var(--mono);color:#a1aaa5}.subcontrols button{border-bottom:1px solid #ffffff2b;padding:4px 0}.range-control,.layer-tools{width:335px;margin-top:24px;font-size:11px}.range-control input,.layer-tools input{width:100%;accent-color:var(--orange);margin:17px 0 0}.layer-tools label{display:block;color:#c6cec9}.layer-tools output{float:right;font:10px var(--mono);color:var(--orange)}.layer-tools .controls{width:100%;justify-content:space-between;margin-top:14px}.print-readout{margin-top:38px;max-width:330px}.print-readout>span{font:8px var(--mono);letter-spacing:1px;color:#9aa99f}.print-readout strong{display:block;font-size:68px;letter-spacing:-3px;font-weight:400}.print-readout strong small{font-size:21px;color:var(--orange);margin-left:7px}.print-track{height:2px;background:#d6e8d92b;margin:12px 0}.print-track i{display:block;height:100%;width:0;background:var(--orange)}.print-readout>p{display:flex;justify-content:space-between;align-items:center;color:#8a9e94;font:8px var(--mono)}.print-readout button{font:8px var(--mono);color:#c3cfc8}.request-section{position:relative;z-index:5;background:#e4e5dc;color:#1b2420;padding:75px 4.5% 45px}.request-section .eyebrow{color:#798679}.request-section>div{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}.request-section h2{font-size:74px;margin:25px 0 45px}.request-copy{max-width:430px}.request-copy p{font-size:15px;line-height:1.9;color:#697664}.request-copy small{display:block;font-size:10px;margin-top:15px;color:#8e9787}.order-path{display:flex;padding:35px 0 0;list-style:none;border-top:1px solid #929f8752;gap:60px;font-size:11px}.order-path b{font:10px var(--mono);color:#8a987e;margin-right:20px}footer{display:flex;justify-content:space-between;align-items:center;padding:33px 4.5%;background:#e4e5dc;color:#333f33;border-top:1px solid #929f8752}footer span,footer button,footer>a:last-child{font-size:10px;color:#7d8b75}footer .logo{font-size:24px}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5;background:#101315;transition:opacity .6s}.loading-mark{font:60px 'Space Grotesk';color:var(--orange)}#loading p{font:10px var(--mono);color:#aebfb4}.loaded #loading{opacity:0;pointer-events:none}#world-fallback{position:absolute;top:35%;right:5%;width:45%;background:#202a24;padding:50px;z-index:6}#world-fallback button{border-bottom:1px solid var(--orange);padding:10px 0}dialog{width:min(570px,calc(100% - 26px));background:#e5e7dd;color:#263129;border:0;max-height:92svh;padding:38px}dialog::backdrop{background:#07100edb;backdrop-filter:blur(10px)}dialog h2{font-size:39px;letter-spacing:-2px}dialog>p{font-size:12px;line-height:1.8;color:#74816e}dialog .eyebrow{color:#697c60}.close{position:absolute;right:12px;top:8px;width:40px;height:40px;font-size:28px}dialog label{display:block;font-size:11px;margin-top:23px}dialog input,dialog textarea,dialog select{display:block;width:100%;margin-top:10px;background:#f1f2e9;border:1px solid #a9b69e;padding:12px;color:#2c392c;font-size:12px}dialog input[type=file]{font-size:10px}dialog .main-cta{width:100%;margin-top:24px}#quote-status,#file-message{font-size:9px;line-height:1.7;color:#7a876e}body.modal-open{overflow:hidden}
@media(max-width:1050px){nav{gap:20px}h1{font-size:69px}h2{font-size:65px}.chapter .copy{max-width:450px}.description{font-size:12px}.request-link span{padding-left:15px}.request-section h2{font-size:61px}}
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){header{height:75px;padding:0 22px}.logo{font-size:23px}.logo svg{width:24px;height:26px}nav{display:none}.request-link{font-size:9px;padding:11px 12px}.request-link span{font-size:16px;padding-left:12px}.render-stage{height:100svh;min-height:720px;margin-bottom:-100svh}.render-stage:after{background:linear-gradient(180deg,#10131500 45%,transparent 70%,#101315d6)}#world{top:28%;height:70%;width:100%}.stage-top{top:91px;left:24px;right:24px;font-size:6px;letter-spacing:1px}.stage-top>span:last-child{display:none}.stage-bottom{bottom:15px;left:24px;right:24px;font-size:6px;letter-spacing:.5px}.stage-bottom #object-caption{max-width:220px;line-height:1.7}.stage-bottom button span{display:none}.chapter{height:110svh;min-height:792px;padding:112px 24px 0;align-items:flex-start}.chapter .copy{max-width:100%;margin:0;width:100%;pointer-events:none}.chapter .copy button,.chapter .copy input{pointer-events:auto}.eyebrow{font-size:7px;letter-spacing:1px}h1{font-size:47px;letter-spacing:-2.8px;margin:20px 0 14px;line-height:1.08}h2{font-size:43px;letter-spacing:-2.4px;margin:18px 0 13px;line-height:1.08}.description{font-size:10px;line-height:1.7;margin:13px 0 18px}.main-cta{font-size:10px;padding:13px 16px;min-height:46px;gap:32px}.main-cta span{font-size:19px}.micro{display:none}.scroll-invite,.model-number{display:none}.controls{margin-top:14px;padding:3px}.controls button{font-size:9px;padding:9px 11px;min-height:35px}.subcontrols{margin-top:10px;gap:21px;font-size:8px}.layer-tools{margin-top:17px;width:295px;font-size:9px}.layer-tools input{margin-top:10px}.layer-tools .controls{margin-top:6px}.range-control{font-size:9px;margin-top:10px;width:290px}.range-control input{margin-top:7px}.print-readout{margin-top:15px;width:210px}.print-readout>span{font-size:6px}.print-readout strong{font-size:39px;letter-spacing:-1.5px}.print-readout strong small{font-size:15px}.print-track{margin:5px 0}.print-readout>p,.print-readout button{font-size:6px}.request-section{padding:42px 24px 30px}.request-section>div{display:block}.request-section h2{font-size:49px;margin:23px 0 26px}.request-copy p{font-size:12px}.request-copy small{font-size:9px}.order-path{display:block;padding-top:20px;margin-top:32px}.order-path li{padding:12px 0;font-size:10px}.order-path b{margin-right:20px}footer{padding:25px 24px;flex-wrap:wrap;gap:25px}footer>span{display:none}footer button{font-size:8px}footer .logo{font-size:21px}footer>a:last-child{display:none}dialog{padding:30px 23px}dialog h2{font-size:33px}#world-fallback{top:53%;left:24px;right:24px;width:auto;padding:23px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Legibility and usable targets at both display sizes. */
nav,.request-link{font-size:13px}.controls button{font-size:12px;min-height:44px}.controls button[aria-pressed=true]:hover{background:#e7eae3;color:#1c2522}.subcontrols{font-size:11px}.micro{font-size:11px}.description{font-size:16px}.main-cta{font-size:14px}.stage-top,.stage-bottom{font-size:9px}
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){.request-link{font-size:10px}.description{font-size:12px}.main-cta{font-size:12px}.controls button{font-size:11px;min-height:44px}.subcontrols{font-size:10px}.stage-top,.stage-bottom{font-size:6px}.micro{display:none}.chapter .copy{max-width:100%}h1{font-size:45px}}

@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){body[data-chapter="1"] #world,body[data-chapter="2"] #world,body[data-chapter="3"] #world,body[data-chapter="4"] #world{top:42%;height:57%}.print-readout{margin-top:14px}.print-readout strong{font-size:34px}.print-readout>p,.print-readout button{font-size:8px}}

@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){body:not([data-chapter="0"]) .stage-top{display:none}}

/* A real render is visible before the interactive asset has finished decoding. */
#scene-poster{position:absolute;inset:0;pointer-events:none;transition:opacity .25s}#scene-poster img{width:100%;height:100%;object-fit:cover}#world{opacity:0}.car-ready #world{opacity:1}.car-ready #scene-poster{opacity:0;visibility:hidden}
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){#scene-poster{top:28%;height:70%}.render-stage:after{background:linear-gradient(180deg,#101315 0%,#101315 44%,#101315e8 48%,#10131500 61%,#10131500 91%,#101315 100%)}}

/* Keep the actual first-frame preview visible during asset decoding. */
#loading{inset:auto 4.5% 66px auto;align-items:flex-end;background:transparent;pointer-events:none}.loading-mark{display:none}#loading p{font-size:9px}

@media(min-width:701px){
 #construction .copy{max-width:350px}#construction h2{font-size:68px}
 #layers .copy{margin-left:auto;max-width:440px}#layers h2{font-size:72px}
 body[data-chapter="2"] .render-stage:after{background:linear-gradient(270deg,#101315ef 0,#101315a8 24%,#10131522 43%,transparent 57%)}
 #objects{align-items:flex-start;padding-top:140px}#objects .copy{max-width:100%;width:100%;margin:0;display:grid;grid-template-columns:1.2fr 1fr;column-gap:50px;align-items:start}
 #objects .eyebrow{grid-column:1/-1}#objects h2{font-size:52px;margin:12px 0;line-height:1.1}#objects h2 br{display:none}#objects h2 br:after{content:' '}
 #objects .description{font-size:12px;line-height:1.7;margin:10px 0}#objects .controls{grid-column:2;margin:0}#objects .micro{grid-column:2}
 body[data-chapter="4"] .render-stage:after{background:linear-gradient(180deg,#101315e8 0,#101315b0 24%,transparent 42%,transparent 88%,#101315b0 100%)}
}

@media(min-width:701px){body[data-chapter="4"] .stage-top{display:none}#objects h2{font-size:58px;letter-spacing:-3px;max-width:650px}body[data-chapter="3"] .render-stage:after{background:linear-gradient(90deg,#101315fa 0,#101315eb 27%,#10131570 43%,transparent 60%)}}

/* Macro becomes an observation view with a compact control panel. */
@media(min-width:701px){
 body.printer-macro[data-chapter="3"] #printing{align-items:flex-end;padding-bottom:135px}
 body.printer-macro #printing .copy{background:#101719f5;border:1px solid #b5cac52b;padding:22px;width:340px;margin:0}
 body.printer-macro #printing h2,body.printer-macro #printing .description,body.printer-macro #printing .micro{display:none}
 body.printer-macro #printing .eyebrow{font-size:8px;margin:0}
 body.printer-macro #printing .controls{margin-top:17px}
 body.printer-macro #printing .controls button{font-size:10px;padding:9px}
 body.printer-macro #printing .print-readout{margin-top:18px}
 body.printer-macro #printing .print-readout strong{font-size:38px}
 body.printer-macro[data-chapter="3"] .render-stage:after{background:linear-gradient(0deg,#101315c0,transparent 25%,transparent 85%,#10131580)}
 #objects .copy{grid-template-columns:1.2fr 1fr;column-gap:50px}
 #objects .micro{margin:10px 0 0;font-size:10px}
 #objects .description{margin-top:0;line-height:1.45}
}

/* The archive gives the selected object a full studio portrait. */
@media(min-width:701px){
 #objects{align-items:center;padding-top:0}#objects .copy{display:block;width:430px;max-width:430px;margin-top:25px}
 #objects h2{font-size:82px;line-height:1.03;letter-spacing:-4px;margin:25px 0;max-width:430px}
 #objects .description{font-size:15px;line-height:1.8;margin:26px 0}
 #objects .controls{margin-top:30px}#objects .micro{margin-top:18px}
 body[data-chapter="4"] .render-stage:after{background:linear-gradient(90deg,#101315ed 0,#101315c9 30%,#10131533 47%,transparent 62%)}
}

.render-stage:after{opacity:var(--scene-copy,1);transition:opacity .1s linear}
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){body[data-chapter="4"] .render-stage:after{background:linear-gradient(180deg,#101315 0%,#101315 39%,transparent 45%,transparent 94%,#101315 100%)}}

@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){#scene-poster{top:0;height:100%}}
/* Mobile observation uses the whole viewport; the camera reserves room for copy. */
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){
 body #world,body[data-chapter] #world{top:0;height:100%;width:100%}
 body.printer-macro[data-chapter="3"] #printing{padding-top:98px}
 body.printer-macro #printing .copy{background:#101719f7;border:1px solid #b5cac52b;padding:13px 15px;pointer-events:auto}
 body.printer-macro #printing h2,body.printer-macro #printing .description,body.printer-macro #printing .micro,body.printer-macro #printing .eyebrow,body.printer-macro #printing .print-readout>span{display:none}
 body.printer-macro #printing .controls{display:flex;width:100%;margin:0;gap:2px}
 body.printer-macro #printing .controls button{flex:1;padding:8px 5px;font-size:10px;min-height:44px}
 body.printer-macro #printing .print-readout{width:100%;margin:9px 0 0;max-width:none;display:grid;grid-template-columns:58px 1fr;gap:0 12px;align-items:center}
 body.printer-macro #printing .print-readout strong{font-size:26px;grid-row:1/3;line-height:1}
 body.printer-macro #printing .print-readout strong small{font-size:12px;margin-left:3px}
 body.printer-macro #printing .print-track{margin:0}
 body.printer-macro #printing .print-readout>p{margin:7px 0 0;font-size:8px}
 body.printer-macro[data-chapter="3"] .render-stage:after{background:linear-gradient(180deg,#101315 0%,#101315c0 12%,transparent 30%,transparent 94%,#101315 100%)}
}

/* Scroll owns visibility; CSS lag must not leave text over a moving object. */
.chapter .copy{transition:none}
@media (max-width:700px), (min-width:701px) and (max-width:1100px) and (orientation:portrait){
 .chapter .copy{position:fixed;top:94px;left:24px;right:24px;width:auto;max-width:none;margin:0;z-index:5}
 body.printer-macro #printing .copy{top:98px;left:24px;right:24px;width:auto}
}

/* Safe first paint exists before any asset or renderer initialization. */
.chapter:not(.hero) .copy{opacity:0;pointer-events:none}
