@font-face{font-family:Founders;src:url('../../shared/fonts/FoundersGrotesk-Medium.otf')}@font-face{font-family:DIN;src:url('../../shared/fonts/DINPro-Regular.otf')}@font-face{font-family:DIN;src:url('../../shared/fonts/DINPro-Medium.otf');font-weight:500}
:root{color-scheme:dark;--teal:#008DA2;--muted:#7A8A9A;--body:#C8D0D8;--line:rgba(255,255,255,.15)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#000;color:#fff;overflow:hidden}body{font:16px DIN,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}button:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:6px}[hidden]{display:none!important}
#experience{position:relative;isolation:isolate;width:100%;height:100svh;min-height:520px;overflow:hidden}#experience:after{content:'';position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .6s;z-index:50}#experience.fade:after{opacity:1}
#stage{position:absolute;inset:0;z-index:-2;touch-action:none}#stage canvas{display:block;width:100%;height:100%;cursor:grab}#stage canvas:active{cursor:grabbing}
.ambient{pointer-events:none;position:absolute;inset:0;z-index:-3;background:#000}
.edge-vignette{position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.5),transparent 26%,transparent 74%,rgba(0,0,0,.4)),linear-gradient(0deg,rgba(0,0,0,.86),transparent 22%,transparent 70%,rgba(0,0,0,.72))}
header{position:absolute;left:3.4%;right:3.4%;top:34px;display:flex;align-items:center;justify-content:space-between;z-index:10;gap:20px}.brand{display:inline-flex;align-items:center;padding:5px 0}.brand img{width:178px;display:block}
.study-no{font-size:12px;letter-spacing:2px;font-weight:500;color:#b0b9bc}
.tools{display:flex;gap:12px;align-items:center}.tool{color:#98a4a8;border:1px solid var(--line);border-radius:24px;height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;font-size:13px;transition:.25s;background:rgba(0,0,0,.35);backdrop-filter:blur(10px)}.tool.wide{padding:0 18px 0 14px}.tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}#play svg{fill:currentColor;stroke:none}.tool:hover{color:#fff}.tool.active{color:#fff;border-color:#387d87;background:rgba(0,141,162,.16)}
.editorial{position:absolute;left:5.3%;top:118px;width:44%;pointer-events:none;z-index:5}h1{font-family:Founders,sans-serif;font-weight:500;line-height:.86;letter-spacing:-2px;font-size:clamp(50px,5vw,84px);margin:0 0 16px}h1 span{color:var(--teal)}
.line{font-size:19px;line-height:1.45;color:var(--body);margin:0;opacity:0;transform:translateY(6px);transition:opacity .7s,transform .7s;max-width:420px}.line.show{opacity:1;transform:none}
.counter{position:absolute;right:5.3%;top:112px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none;z-index:5}.counter strong{font:500 clamp(64px,6vw,100px)/.82 Founders,sans-serif;letter-spacing:-2.5px;font-variant-numeric:tabular-nums;margin-top:14px}.counter strong.tick{animation:tick .55s cubic-bezier(.2,.8,.2,1)}.counter small{font-size:11px;letter-spacing:2.2px;color:#d3dadd;font-weight:500;margin-top:6px}.counter em{font-style:normal;font-size:10px;letter-spacing:1.6px;color:var(--muted)}
@keyframes tick{0%{transform:translateY(-10px);color:#7fd8e6}100%{transform:none}}
.caption{font-size:11px;letter-spacing:2px;color:#8fa0aa;pointer-events:none}
.tray-label{position:absolute;transform:translate(0,-140%);font-size:10px;letter-spacing:2.4px;color:#6f8089;pointer-events:none;z-index:4;padding-left:14px}.tray-label:before{content:'';position:absolute;left:0;top:50%;width:8px;height:1px;background:#6f8089}
footer{position:absolute;bottom:30px;left:3.4%;right:3.4%;border-top:1px solid var(--line);padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:10}
.hint{font-size:12px;color:#8a999f;display:flex;align-items:center;gap:12px;min-width:250px}.hint svg{fill:none;stroke:#88999f;stroke-width:1;display:block;width:20px}.hint i{font-style:normal;margin:0 6px;color:#46565c}
.parameter{width:min(520px,44%)}.parameter>div:first-child{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.5px}.parameter output{color:#b6c7cc;font-size:12px;letter-spacing:0;font-variant-numeric:tabular-nums}
.parameter input{--v:0%;display:block;appearance:none;width:100%;height:44px;background:transparent;margin:4px 0 0;border:0;cursor:pointer}
.parameter input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--teal) var(--v),#344047 var(--v))}.parameter input::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(0,141,162,.22);margin-top:-5px}
.parameter input::-moz-range-track{height:2px;background:linear-gradient(to right,var(--teal) var(--v),#344047 var(--v))}.parameter input::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#fff}
.ends{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.2px;color:#738187;margin-top:-6px}.note{font-size:10px;letter-spacing:1.6px;color:#5f6f78;min-width:250px;text-align:right}
#loading{position:absolute;inset:0;background:#000;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:35px;transition:opacity .8s;pointer-events:none}#loading img{width:240px}#loading span{font-size:12px;letter-spacing:2px;color:#83949d}#loading>div{width:110px;height:2px;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:loading 1.3s infinite}body.ready #loading{opacity:0}@keyframes loading{50%{opacity:.25;transform:scaleX(.5)}}
#error{position:absolute;inset:0;background:#071015;z-index:120;padding:20% 10%;text-align:center}#error p{color:#9faeb4}
@media(max-width:1000px){.brand img{width:150px}.study-no{display:none}.editorial{width:52%}h1{font-size:54px}.line{font-size:16px}.hint{min-width:0}.note{display:none}.counter strong{font-size:64px}}
@media(max-width:700px){#experience{min-height:640px}header{left:5%;right:5%;top:18px}.brand img{width:132px}.tool span{display:none}.tool.wide{padding:0 12px}.editorial{left:5%;top:84px;width:90%}h1{font-size:44px;letter-spacing:-1.2px;margin-bottom:10px}.line{font-size:15px;max-width:260px}
 .counter{left:5%;right:auto;top:196px;align-items:flex-start;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:14px;row-gap:0}.counter .caption{grid-column:1/-1;font-size:9px;margin-bottom:6px}.counter strong{font-size:52px;grid-row:2/4;margin:0}.counter small{font-size:9px;grid-column:2;margin-top:6px}.counter em{font-size:8px;grid-column:2}.tray-label{font-size:8px}
 footer{bottom:16px;left:5%;right:5%;padding-top:12px;display:grid;grid-template-columns:1fr;gap:6px}.parameter{width:100%}.hint{font-size:10px}.hint svg{width:15px}.edge-vignette{background:linear-gradient(0deg,rgba(0,0,0,.92),transparent 26%,transparent 60%,rgba(0,0,0,.85) 100%)}#stage{top:0;bottom:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Production viewport: controls stay outside the model canvas. */
#experience{height:100%;min-height:0}#stage{top:165px;bottom:126px}header{top:14px}.editorial{top:74px;width:65%}h1{font-size:44px;line-height:.9;margin-bottom:9px}.line{font-size:16px}.counter{top:96px}.counter strong{font-size:60px}.study-no{display:none}.tools{gap:8px}.brand img{width:142px}.note{display:none}.parameter{width:50%}footer{bottom:16px;padding-top:10px}.hint{min-width:0}.counter small{font-size:9px;letter-spacing:1px}
.experience-embedded .brand{display:none}.experience-embedded header{justify-content:flex-end}.experience-embedded .editorial{top:24px}.experience-embedded #stage{top:140px}.experience-embedded .counter{top:84px}
#about-dialog{max-width:520px;width:calc(100% - 32px);max-height:calc(100% - 32px);overflow:auto;border:1px solid #344047;background:#080d10;color:#fff;border-radius:16px;padding:26px;line-height:1.55}#about-dialog::backdrop{background:#000b}#about-dialog h2{font-family:Founders,sans-serif;font-weight:500;font-size:32px;line-height:1.05;margin:0 0 16px}#about-dialog p{color:#c8d0d8}#about-dialog button{margin-left:auto}
@media(max-width:700px){header{left:4%;right:4%;top:12px}.brand{display:none}.tools{margin-left:auto;gap:6px}.editorial,.experience-embedded .editorial{left:4%;top:65px;width:92%}h1{font-size:34px;line-height:.9}.line{font-size:14px;margin-top:8px;max-width:none}.counter,.experience-embedded .counter{left:4%;right:4%;top:180px;display:flex;flex-direction:row;align-items:baseline;gap:8px}.counter .caption{display:none}.counter strong{font-size:38px}.counter small{font-size:8px}.counter em{font-size:8px;margin-left:auto}#stage,.experience-embedded #stage{top:219px;bottom:110px}footer{left:4%;right:4%;bottom:12px}.parameter{width:100%}.hint{font-size:10px}.tray-label{display:none}}
@media(max-height:580px){header{top:8px}.editorial,.experience-embedded .editorial{top:12px;width:55%}h1{font-size:29px}.line{font-size:12px}.counter,.experience-embedded .counter{top:74px;left:4%;right:4%;display:flex;flex-direction:row;align-items:baseline;gap:8px}.counter .caption{display:none}.counter strong{font-size:32px;margin:0}.counter small{font-size:8px}.counter em{font-size:8px}.brand{display:none}#stage,.experience-embedded #stage{top:108px;bottom:91px}footer{bottom:8px;padding-top:6px}.hint{display:none}.parameter{width:100%}.parameter input{margin:0}.tray-label{display:none}.tools{gap:4px}.tool{min-width:44px;padding:0 10px}.tool span{display:none}}

@media(max-height:580px){.editorial .line{display:none}.counter,.experience-embedded .counter{top:77px}.counter strong{font-size:26px}.counter small,.counter em{font-size:8px}#stage,.experience-embedded #stage{top:111px;bottom:85px}}
#stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#000,transparent 10%,transparent 90%,#000)}

.zoom-controls{display:flex;align-items:center;gap:6px}.zoom-controls .tool{width:44px;padding:0}.tool:disabled{opacity:.4;cursor:default}.tool:disabled:hover{color:#98a4a8}
@media(max-width:700px){.tools,.zoom-controls{gap:4px}.tools .tool{width:44px;padding:0}}

@media(max-height:580px){.experience-embedded .editorial{display:none}.experience-embedded .counter{top:20px;right:55%;flex-wrap:wrap}.experience-embedded #stage{top:63px}}
@media(max-width:700px) and (max-height:580px){.experience-embedded .counter{top:66px;right:4%;flex-wrap:nowrap}.experience-embedded #stage{top:106px}}
