:root{--ink:#050b12;--white:#f1f4f5;--muted:#a6b6c4;--cyan:#38c2ff;--accent:#38c2ff;font-family:Arial,Helvetica,sans-serif;color:var(--white);background:var(--ink);color-scheme:dark}*{box-sizing:border-box}html{scrollbar-color:#2f7da4 #07101b}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}button:disabled{cursor:default}#scroll-track{height:330vh;height:330svh}#experience{position:sticky;top:0;height:100vh;height:100svh;min-height:480px;overflow:hidden;isolation:isolate;background:#050b12}#stage{position:absolute;inset:0;overflow:hidden;perspective:1400px;perspective-origin:50% 50%;touch-action:pan-y}#camera-rig{position:absolute;width:1920px;height:1080px;left:50%;top:50%;margin-left:-960px;margin-top:-540px;transform-origin:center;transform-style:preserve-3d;will-change:transform}#world{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}.plane{position:absolute;transform-style:preserve-3d;backface-visibility:hidden}#garage{left:-55px;top:-31px;width:2030px;height:1142px;object-fit:fill;transform:translateZ(-80px);pointer-events:none}.figure{padding:0;border:0;background:none;transform-origin:50% 100%;will-change:transform,filter;outline-offset:8px}.figure canvas{width:100%;height:100%;display:block;pointer-events:none}.figure:hover{cursor:pointer}.figure:focus-visible{outline:1px dashed #3cc9ff80}.floor-shadow{position:absolute;width:270px;height:30px;background:radial-gradient(ellipse,#0009,transparent 70%);border-radius:50%;pointer-events:none;transform:translateZ(1px)}#floor-shadow-clint{left:455px;top:1000px}#floor-shadow-elsa{left:1005px;top:1005px}.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#020913f2 0%,#020913b0 19%,#02091336 38%,transparent 57%),linear-gradient(0deg,#030a14e8 0%,transparent 23%,transparent 80%,#02081388 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.garage-header{position:absolute;left:5vw;right:5vw;top:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:4}.wordmark{font-family:'Arial Black',Arial,sans-serif;letter-spacing:-2.8px;font-weight:950;font-style:italic;font-size:31px;color:white;text-decoration:none}.wordmark span{font:8px monospace;letter-spacing:0;vertical-align:top;margin-left:6px}.garage-header p{font:9px 'Courier New',monospace;letter-spacing:2px;color:#c4d3df}.garage-header p span{padding:0 15px;color:#39c4ff}.outline-button{font-size:10px;background:#06101c55;border:1px solid #a4d6f12c;padding:11px 15px;backdrop-filter:blur(10px)}.outline-button span{margin-left:14px;color:var(--cyan)}.identity{position:absolute;left:6vw;top:29%;width:32vw;max-width:475px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:12px;font:9px 'Courier New',monospace;letter-spacing:2.2px;color:#b4cfdf}.eyebrow i{width:22px;height:2px;background:var(--accent)}.title-wrap{position:relative}.garage-title{font-family:'Arial Black',Arial,sans-serif;font-size:clamp(34px,4vw,66px);font-weight:950;line-height:.97;letter-spacing:-2.6px;margin:25px 0 20px;transition:opacity .16s,transform .16s}body[data-selected=clint] .garage-title{font-size:clamp(54px,5.8vw,90px)}body[data-selected=elsa] .garage-title{font-size:clamp(68px,7.8vw,124px)}#number{font:10px 'Courier New',monospace;color:var(--accent);letter-spacing:3px;display:block;min-height:12px}#bio{font-size:12px;line-height:1.9;max-width:240px;color:#d2d9df;margin:15px 0 20px;text-shadow:0 2px 12px #000}.blue-rule{height:2px;width:35px;background:var(--accent);margin:22px 0}.gesture{font:8px 'Courier New',monospace;letter-spacing:1.8px;color:#9fb7c9}.gesture span{font-size:16px;color:var(--accent);padding-left:10px}.scene-tag{position:absolute;right:5vw;top:110px;display:flex;align-items:center;gap:8px;font:8px 'Courier New',monospace;letter-spacing:2px;color:#d7e1e7;text-shadow:0 2px 10px #000}.live-dot{width:4px;height:4px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.characters{position:absolute;left:6vw;bottom:95px;display:flex;gap:12px}.characters button{display:flex;align-items:center;gap:14px;width:180px;text-align:left;padding:16px 15px;border:1px solid #7aa1ba40;border-bottom:2px solid #5679916b;background:#06111ed9;backdrop-filter:blur(14px);transition:background .2s,border-color .2s,transform .2s}.characters button[aria-pressed=true]{background:#0c2234eb;border-bottom-color:var(--accent);transform:translateY(-3px)}.mini-number{font:11px 'Courier New',monospace;color:#6ba8cc}.character-name{font-size:13px;font-weight:750;letter-spacing:1.4px}.character-name small{display:block;font:7px 'Courier New',monospace;letter-spacing:1.3px;color:#9eb4c5;margin-top:7px}.arrow{margin-left:auto;color:#68b5db;font-size:14px}.utility{position:absolute;right:5vw;bottom:110px;display:flex;align-items:center;gap:22px}.utility button,.street-motion{display:flex;gap:7px;align-items:center;font-size:9px;background:none;border:0;padding:7px 0;color:#bdcdd8;text-shadow:0 2px 8px #000}.utility button:hover,.street-motion:hover{color:white}.utility span{white-space:nowrap}.garage-footer{position:absolute;bottom:0;left:0;right:0;height:61px;border-top:1px solid #b7dbef1d;display:flex;align-items:center;gap:40px;padding:0 5vw;font:8px 'Courier New',monospace;letter-spacing:1.7px;background:#030b13a8;color:#9cafbd;backdrop-filter:blur(10px)}.garage-footer i{font-style:normal;color:#41b7ed;padding:0 9px}.garage-footer>span{white-space:nowrap}.progress{height:1px;background:#879da72b;flex:1;position:relative}.progress span{position:absolute;left:0;top:0;height:1px;width:0%;background:var(--accent)}#loader{position:absolute;inset:0;z-index:10;background:#050c15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;font:10px 'Courier New',monospace;letter-spacing:3px;transition:opacity .55s}#loader i{height:1px;width:80px;background:linear-gradient(90deg,transparent,#38c2ff,transparent);animation:loadpulse 1s infinite alternate}#loader.done{opacity:0;pointer-events:none}@keyframes loadpulse{to{transform:scaleX(.3);opacity:.2}}dialog{padding:0;border:1px solid #577c943d;max-width:94vw;width:1200px;max-height:92svh;background:#06101a;color:white}dialog::backdrop{background:#010710e8;backdrop-filter:blur(8px)}.dialog-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;font:9px 'Courier New',monospace;letter-spacing:1.4px}.dialog-bar button{border:0;background:none;font-size:26px;line-height:1}dialog img{display:block;width:100%;max-height:75svh;object-fit:contain}.dialog-links{display:flex;gap:24px;padding:16px 20px}.dialog-links button,.dialog-links a{font-size:10px;background:none;border:0;color:#b5d2e3;text-decoration:none;padding:0}.dialog-links a{margin-left:auto}.no-js{position:fixed;top:45%;left:20%;z-index:20;background:#07131e;padding:30px}
@media(max-width:760px){.garage-header{left:6vw;right:6vw;top:22px}.wordmark{font-size:25px;letter-spacing:-2px}.garage-header p{display:none}.outline-button{font-size:9px;padding:10px 12px}.identity{left:6vw;top:115px;width:90vw;max-width:none}.eyebrow{font-size:7px;letter-spacing:1.7px}.eyebrow i{width:15px}.garage-title,body[data-selected=clint] .garage-title,body[data-selected=elsa] .garage-title{font-size:42px;line-height:.98;letter-spacing:-1.8px;margin:17px 0 10px}.garage-title br{display:none}body[data-selected=clint] .garage-title br:after{content:' '}.identity #number{position:static;font-size:9px;min-height:10px;margin-top:8px}#bio{font-size:10px;line-height:1.6;margin:12px 0;max-width:230px}.blue-rule{display:none}.gesture{font-size:7px;margin-top:12px}.scene-tag{top:81px;right:6vw;font-size:6px;letter-spacing:1.3px}.characters{left:6vw;right:6vw;bottom:92px;gap:10px}.characters button{width:50%;padding:13px 11px;gap:11px}.character-name{font-size:11px}.character-name small{font-size:6px}.mini-number{font-size:10px}.utility{right:6vw;left:6vw;bottom:53px;justify-content:space-between;gap:10px}.utility button,.street-motion{font-size:8px}.garage-footer{height:42px;gap:14px;font-size:6px;letter-spacing:1px;padding:0 6vw}.garage-footer i{padding:0 4px}.shade{background:linear-gradient(0deg,#030a14f5 0%,#030a1490 15%,transparent 35%,transparent 58%,#030a14d9 85%,#030a14ef 100%)}.dialog-links{gap:16px;flex-wrap:wrap}.dialog-links a{margin-left:0;font-size:9px}.dialog-bar{font-size:7px}.dialog-links button{font-size:9px}}
@media(max-height:650px) and (min-width:761px){.identity{top:24%}.garage-title{font-size:40px;margin:18px 0 12px}body[data-selected=clint] .garage-title{font-size:60px}body[data-selected=elsa] .garage-title{font-size:80px}.blue-rule{margin:15px 0}.characters{bottom:75px}.characters button{padding:12px}.utility{bottom:90px}#bio{margin:10px 0;font-size:11px}.scene-tag{top:90px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.characters button{transition:none}#loader i{animation:none}}

/* Six-character scene */
#scroll-track{height:760vh;height:760svh}
#figures{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.figure{pointer-events:auto;transition:filter .45s,opacity .45s}
#garage{left:-200px;top:-112px;width:2320px;height:1305px;transform:translateZ(-80px)}
.identity{top:28%;width:30vw}
body[data-selected=team] .garage-title{font-size:clamp(32px,3.8vw,64px)}
body[data-selected]:not([data-selected=team]) .garage-title{font-size:clamp(56px,6.5vw,108px)}
.characters{left:6vw;right:6vw;bottom:76px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.characters button{width:auto;min-width:0;padding:18px 12px;gap:10px}
.character-name{font-size:clamp(10px,1vw,14px);letter-spacing:1.2px}
.utility{top:76px;bottom:auto;right:5vw;gap:24px}
.scene-tag{top:118px}
.garage-footer{height:45px}
@media(max-width:1000px) and (min-width:761px){.characters button{padding:17px 9px;gap:6px}.characters .arrow{display:none}.identity{left:5vw}body[data-selected=clint] .garage-title{font-size:62px}}
@media(max-width:760px){
 #scroll-track{height:690svh}
 .identity{left:6vw;top:115px;width:88vw}
 .garage-title,body[data-selected=team] .garage-title,body[data-selected=clint] .garage-title,body[data-selected]:not([data-selected=team]) .garage-title{font-size:40px;letter-spacing:-1.6px;margin-top:13px}
 body[data-selected=team] .garage-title{font-size:34px}
 body[data-selected=team] .garage-title br{display:none}
 #bio{font-size:10px;margin:8px 0}.gesture{font-size:6px;margin-top:9px}
 .characters{bottom:72px;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .characters button{padding:12px 8px;gap:7px;min-height:43px}
 .character-name{font-size:10px;letter-spacing:.6px}.characters .arrow{display:none}.mini-number{font-size:9px}
 .utility{top:auto;bottom:42px;left:6vw;right:6vw;justify-content:space-between}
 .scene-tag{top:81px;font-size:6px}
 .garage-footer{height:32px;font-size:6px}
 .shade{background:linear-gradient(0deg,#030a14f5 0%,#030a1480 21%,transparent 39%,transparent 61%,#030a14b0 87%,#030a14e0 100%)}
}

body[data-selected=team] .shade{background:linear-gradient(90deg,#02091390 0%,#02091355 20%,transparent 48%),linear-gradient(0deg,#030a14e8 0%,transparent 25%,transparent 80%,#02081388 100%)}
@media(max-width:760px){body[data-selected=team] .shade{background:linear-gradient(0deg,#030a14f0 0%,#030a1460 22%,transparent 45%,#030a1488 85%,#030a14bb 100%)}}
@media(min-width:761px){.utility{top:auto;bottom:49px}.scene-tag{top:auto;bottom:59px;left:6vw;right:auto}}

#garage{transform-origin:50% 80%}

/* Persistent original team mark. The entire cast has equal treatment at rest. */
.team-brand{position:absolute;z-index:3;left:5vw;top:clamp(90px,16svh,170px);width:clamp(170px,21vw,310px);padding:0;border:0;background:none;filter:drop-shadow(0 4px 14px #01081388)}
.team-brand img{display:block;width:100%;height:auto}
.identity{left:5vw;top:calc(clamp(90px,16svh,170px) + clamp(113px,14vw,207px) + 24px)}
body[data-selected=team] .identity{width:20vw}
body[data-selected=team] .title-wrap{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body[data-selected=team] #bio{margin-top:16px}
body[data-selected=team] .figure{filter:none!important;opacity:1;transition:none}
body[data-selected=team] #garage{filter:brightness(.68) saturate(.66) blur(1px)!important}
body[data-selected=team] .shade{background:linear-gradient(0deg,#030a14e8 0%,transparent 25%,transparent 80%,#02081388 100%)}
.characters button:hover{border-color:#9cc5db88}
.characters button[aria-pressed=true]:hover{border-bottom-color:var(--accent)}
@media(max-width:760px){
 .team-brand{left:6vw;top:83px;width:126px}
 .identity,body[data-selected=team] .identity{left:6vw;top:185px;width:88vw}
 body[data-selected=team] .shade{background:linear-gradient(0deg,#030a14f0 0%,#030a1460 22%,transparent 45%,#030a1488 85%,#030a14bb 100%)}
}
@media(max-height:650px) and (min-width:761px){
 .team-brand{top:85px;width:160px}
 .identity{top:210px}
 body[data-selected]:not([data-selected=team]) .garage-title{font-size:52px;margin:18px 0 12px}
}

/* A quieter distant garage, shared cast grading, and grounded contact shadows. */
#garage{transition:filter .55s}
.figure canvas{filter:saturate(.88) contrast(1.025) drop-shadow(0 5px 8px #01071188)}
#contact-shadows{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.contact-shadow{background:radial-gradient(ellipse,#01050be6 0%,#01050b77 35%,transparent 72%);pointer-events:none}
#experience,#stage{touch-action:pinch-zoom}
@media(prefers-reduced-motion:reduce){#garage,.figure{transition:none}}

/* Compact the team introduction so narrow screens give the cast more room. */
@media(max-width:760px){
 body[data-selected=team] .identity{left:calc(6vw + 144px);top:132px;width:calc(88vw - 144px)}
 body[data-selected=team] .identity .eyebrow{font-size:6px;letter-spacing:1.1px;gap:7px}
 body[data-selected=team] .identity .eyebrow i{width:12px;flex-shrink:0}
 body[data-selected=team] #bio{margin:12px 0;font-size:10px}
 body[data-selected=team] .gesture{font-size:6px;letter-spacing:.6px;line-height:1.7}
 body[data-selected=team] .gesture span{padding-left:4px}
}
/* Phone portraits reserve a text column beneath the team mark. */
@media(max-width:760px){
 body[data-selected]:not([data-selected=team]) .identity{left:6vw;top:181px;width:34vw;max-width:200px}
 body[data-selected]:not([data-selected=team]) .garage-title{font-size:clamp(23px,7vw,40px);line-height:1;letter-spacing:-1px;margin:12px 0 9px}
 body[data-selected]:not([data-selected=team]) .eyebrow{font-size:7px;letter-spacing:.6px;gap:6px;white-space:nowrap}
 body[data-selected]:not([data-selected=team]) .eyebrow i{width:10px;flex-shrink:0}
 body[data-selected]:not([data-selected=team]) #bio{font-size:12px;line-height:1.6;margin:13px 0;max-width:100%;text-wrap:pretty}
 body[data-selected]:not([data-selected=team]) .gesture{font-size:8px;letter-spacing:.65px;line-height:1.7;margin-top:15px;max-width:100%}
 body[data-selected]:not([data-selected=team]) .gesture span{padding-left:3px;font-size:13px;white-space:nowrap}
 body[data-selected]:not([data-selected=team]) .identity{text-shadow:0 2px 10px #010813}
 body[data-selected]:not([data-selected=team]) .shade{background:linear-gradient(90deg,#020913a6 0%,#02091377 30%,transparent 56%),linear-gradient(0deg,#030a14f5 0%,#030a1480 21%,transparent 39%,transparent 76%,#030a14c0 100%)}
}
@media(max-width:380px){
 body[data-selected]:not([data-selected=team]) .garage-title{font-size:24px;letter-spacing:-.9px}
 body[data-selected]:not([data-selected=team]) .eyebrow{font-size:6px;letter-spacing:.4px}
}
@media(max-width:760px) and (max-height:620px){
 body[data-selected]:not([data-selected=team]) .team-brand{top:77px;width:112px}
 body[data-selected]:not([data-selected=team]) .identity{top:161px}
 body[data-selected]:not([data-selected=team]) .garage-title{margin:9px 0 6px}
 body[data-selected]:not([data-selected=team]) #bio{margin:9px 0;line-height:1.45}
 body[data-selected]:not([data-selected=team]) .gesture{margin-top:9px}
}

/* Drawn HUD controls avoid platform-dependent emoji arrow tiles. */
.tech-icon{display:block;width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:square;stroke-linejoin:miter;color:var(--cyan);filter:drop-shadow(0 0 4px #38c2ff30);pointer-events:none}
#team,.street-wide{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-color:#38c2ff55;background:linear-gradient(120deg,#091c2bc9,#07111ecc);font:9px 'Courier New',monospace;text-transform:uppercase;letter-spacing:1.1px;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
#team:hover,#team:focus-visible,.street-wide:hover,.street-wide:focus-visible{background:#102b3ee8;border-color:#79ddff;box-shadow:inset 0 0 0 1px #79ddff}
#reference{gap:8px;font-family:'Courier New',monospace;text-transform:uppercase;letter-spacing:1px}
#reference .tech-icon{width:15px;height:15px;flex-basis:15px}
.dialog-links a{display:inline-flex;align-items:center;gap:8px}
.dialog-links .tech-icon{width:13px;height:13px;flex-basis:13px}
.characters .tech-icon{width:13px;height:13px;flex-basis:13px}
@media(max-width:760px){#team,.street-wide{font-size:8px;gap:8px;padding:10px 12px}#team .tech-icon,.street-wide .tech-icon{width:16px;height:16px;flex-basis:16px}}

/* Integration with the global navigation, preserving the existing scene. */
.garage-header{top:calc(var(--site-nav-height) + 16px)}
.garage-title{font-family:'Arial Black',Arial,sans-serif;font-weight:950}
#experience,#stage{touch-action:pan-y pinch-zoom}
.characters button{min-height:44px}
#characters{scroll-margin-top:var(--site-nav-height)}
@media(max-width:760px){.garage-header{top:calc(var(--site-nav-height) + 15px);justify-content:flex-end}.garage-header p{display:none}}

/* Shared view control decoration, identical in both sections. */
#team,.street-wide{position:relative;clip-path:none}

/* Keep pause available to assistive technology and keyboard focus without a floating control. */
#motion:not(:focus-visible),.street-motion:not(:focus-visible){clip-path:inset(50%);pointer-events:none}
