:root{color-scheme:dark;--bg:#171a19;--surface:#202422;--ink:#eeeae1;--muted:#9da59c;--gold:#c7ab78;--line:#394039;--progress:0;--rise:0px;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-width:320px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e7c58e;outline-offset:5px}a{color:inherit;text-decoration:none}button{transition:background .2s,color .2s,transform .2s}button:not(:disabled):active{transform:translateY(1px)}.app-shell{max-width:1440px;margin:auto;padding:0 64px}.topbar{height:87px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:13px;letter-spacing:2px;font-size:13px;font-weight:700;white-space:nowrap}.brand-icon{font-size:34px;color:var(--gold);line-height:1}.brand-divider{height:18px;width:1px;background:var(--line);margin:0 5px}.edition{font-size:9px;font-weight:400;color:var(--muted);letter-spacing:1.7px}.header-tools{display:flex;gap:22px}.quiet-button{background:none;border:none;color:#b9bfb6;font-size:12px;padding:9px 0}.quiet-button:hover{color:var(--gold)}#fullscreenButton span{font-size:20px;vertical-align:middle;margin-right:7px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding:45px 0 34px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0;color:var(--gold);line-height:1.7}.intro .eyebrow{display:flex;align-items:center;gap:10px}.intro .eyebrow span{width:5px;height:5px;background:var(--gold);border-radius:50%}h1{font-size:clamp(42px,5vw,64px);line-height:1.04;letter-spacing:-2.9px;margin:18px 0 0;font-weight:400}h1 em{font-style:normal;color:var(--gold)}.intro-copy{font-size:15px;line-height:1.85;max-width:335px;color:#b9bfb5;margin:0 0 6px}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:28px}.elevator{background:#222721;border:1px solid #464a3e;border-radius:4px;overflow:hidden}.elevator-header{display:flex;align-items:center;justify-content:space-between;height:69px;padding:0 28px;border-bottom:1px solid #47483c;background:linear-gradient(105deg,#303328,#262b25)}.tower-label,.destination-label{font-size:9px;letter-spacing:1.8px;color:#aaad96}.destination-label b{font-weight:400;color:var(--gold);margin-left:5px}.floor-display{display:flex;align-items:center;gap:13px;background:#111914;border:1px solid #465044;border-radius:3px;padding:5px 23px;color:#dab477;font-family:Arial,sans-serif;font-variant-numeric:tabular-nums;box-shadow:inset 0 2px 8px #0008;text-shadow:0 0 15px #d9ac5840;font-size:31px;min-width:118px;justify-content:center}.floor-display #direction{font-size:25px}.elevator-frame{padding:12px 17px 0;background:linear-gradient(90deg,#3c3d30,#252a22 2%,#6c6346 3%,#353a2d 5%,#353a2d 95%,#6c6346 97%,#252a22 98%,#3c3d30)}.cabin{position:relative;height:340px;overflow:hidden;background:linear-gradient(#879187,#666f63 65%,#333f34);isolation:isolate}.skyline{position:absolute;inset:35px 0 -200px;transform:translateY(var(--rise));opacity:.7}.building{position:absolute;bottom:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 18px,#b8b39825 19px,#b8b39825 21px),repeating-linear-gradient(90deg,#364337 0,#364337 15px,#a9b69d30 16px,#a9b69d30 19px);box-shadow:inset -15px 0 25px #1a251c50}.b1{left:-3%;width:16%;height:72%}.b2{left:14%;width:12%;height:86%;clip-path:polygon(0 5%,40% 5%,40% 0,60% 0,60% 5%,100% 5%,100% 100%,0 100%)}.b3{left:30%;width:21%;height:64%}.b4{left:56%;width:12%;height:100%;clip-path:polygon(0 15%,42% 5%,45% 0,55% 0,58% 5%,100% 15%,100% 100%,0 100%)}.b5{left:70%;width:17%;height:67%}.b6{left:90%;width:16%;height:88%}.b7{left:38%;width:11%;height:81%}.window-grid{position:absolute;inset:0;background:linear-gradient(90deg,transparent 32.9%,#252f2670 33%,#252f2670 33.8%,transparent 33.9%,transparent 66.1%,#252f2670 66.2%,#252f2670 67%,transparent 67.1%);border-top:10px solid #1c271c30}.cabin-shade{position:absolute;inset:0;background:linear-gradient(#0b171c40,#0f1c17c9);box-shadow:inset 0 0 65px #0b16177a}.timer-area{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding-top:50px;text-align:center;z-index:4;pointer-events:none}.ride-status{font-size:9px;letter-spacing:2.4px;color:#e4e3cc;margin:0 10px 11px;opacity:.85}.countdown{display:flex;flex-direction:column;align-items:center}.countdown>span:first-child{font-size:100px;line-height:1.03;letter-spacing:-6px;font-variant-numeric:tabular-nums;font-weight:400;text-shadow:0 2px 25px #14251a80}.seconds-label{font-size:9px;letter-spacing:4px;color:#c7cabc;margin:8px 0 0 5px}.stage-label{font-size:13px;color:#dbdcca;margin-top:16px}.tip-space{position:absolute;left:20px;right:20px;bottom:24px;height:51px;display:flex;align-items:center;justify-content:center;z-index:5;pointer-events:none}.floating-tip{max-width:90%;text-align:center;font-size:13px;line-height:1.5;background:#142019e8;border:1px solid #8a997b50;border-radius:4px;padding:11px 19px;opacity:0;color:#eae7d9}.floating-tip.visible{animation:float-tip var(--tip-time,8s) both}@keyframes float-tip{0%{opacity:0;transform:translateY(12px)}10%,75%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}.door{position:absolute;top:0;bottom:0;width:50%;z-index:3;background:repeating-linear-gradient(90deg,#00000003 0px,#ffffff02 1px,#00000003 3px),linear-gradient(100deg,#50574c,#697161 35%,#4d564a 62%,#6a705f);transition:transform 1.2s cubic-bezier(.65,0,.35,1);border:1px solid #3b4536;box-shadow:0 0 30px #10221550}.door-left{left:0;transform:translateX(-101%)}.door-right{right:0;transform:translateX(101%)}.door span{position:absolute;top:70%;height:5px;left:0;right:0;background:linear-gradient(#343d2f,#c0bca0aa,#3d4839);box-shadow:0 2px 5px #0005}.elevator[data-state=closing] .door,.elevator[data-state=running] .door,.elevator[data-state=paused] .door{transform:translateX(0)}.elevator[data-state=closing] .timer-area{opacity:.5}.elevator[data-state=running] .timer-area,.elevator[data-state=paused] .timer-area{background:radial-gradient(ellipse,#17281f70,transparent 70%)}.elevator[data-state=paused] .floating-tip{animation-play-state:paused}.elevator[data-state=arrived] .timer-area{opacity:0}.ride-progress{height:3px;background:#323d30}.ride-progress>div{height:100%;width:0;background:var(--gold)}.elevator-footer{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#252c23;font-size:8px;letter-spacing:1.5px;color:#b4baa5}.live-indicator{display:flex;align-items:center;gap:6px}.live-indicator:before{content:'';width:4px;height:4px;border-radius:50%;background:#8b9681}.elevator[data-state=running] .live-indicator:before{background:var(--gold);box-shadow:0 0 8px var(--gold)}.ride-controls{display:flex;gap:10px;align-items:center;margin-top:17px}.gold-button{background:var(--gold);color:#22271f;border:1px solid var(--gold);border-radius:3px;padding:14px 20px;font-size:12px;font-weight:700;display:flex;gap:25px;align-items:center;justify-content:space-between}.gold-button:hover{background:#dec394}.gold-button span{font-size:18px;line-height:12px}.start-button{min-width:184px}.outline-button{background:transparent;border:1px solid #4a5147;border-radius:3px;padding:14px 18px;font-size:12px}.outline-button:hover:not(:disabled){border-color:var(--gold)}.reset-button{background:none;border:0;color:#a6ad9e;font-size:20px;padding:8px}.reset-button span{font-size:11px;margin-left:4px}.sound-controls{margin-left:auto;display:flex;align-items:center;gap:10px}.music-button{white-space:nowrap;background:none;border:0;color:#aab29f;font-size:11px;padding:10px 0}.music-button span{font-size:20px;vertical-align:middle;margin-right:5px}input[type=range]{width:58px;height:3px;accent-color:var(--gold);cursor:pointer}.keyboard-note{font-size:9px;color:#7f897c;display:flex;align-items:center;gap:8px;margin:15px 0 0}.keyboard-note span{margin:0 4px}kbd{font:8px Arial;border:1px solid #414a3c;padding:3px 4px;border-radius:2px;color:#9ca692}.control-panel{background:linear-gradient(135deg,#262b25,#20251f);border:1px solid #434a3d;border-radius:4px;padding:23px 23px 14px;align-self:start}.panel-heading h2{font-size:24px;letter-spacing:-.8px;font-weight:400;margin:8px 0}.panel-heading>p:last-child{font-size:11px;color:#a6b09d;margin:0}.presets{display:flex;gap:5px;margin-top:20px}.presets button{background:#1d231c;border:1px solid #424c3b;flex:1;border-radius:3px;font-size:11px;padding:8px 0;color:#aab49f}.presets button.selected{background:#c7ab7821;border-color:#b69e70;color:#ddc297}.panel-hint{font-size:10px;color:#89977e;margin:15px 0 11px}.floor-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.floor-button{position:relative;height:30px;background:linear-gradient(#343b2d,#293322);border:1px solid #505743;border-radius:4px;box-shadow:inset 0 1px #78836325,0 2px 2px #101b1330;font-size:12px;color:#b7c0a6;font-variant-numeric:tabular-nums}.floor-button:hover:not(:disabled){border-color:#b2a277;color:#eed1a0;background:#39432e}.floor-button.selected{border-color:#d4b67e;color:#f4dba9;background:linear-gradient(#58513a,#3e412a);box-shadow:0 0 13px #cfaf6430,inset 0 1px #f0d1a030}.floor-button.selected:after{content:'';width:3px;height:3px;position:absolute;top:5px;right:5px;border-radius:50%;background:#f0d095}.floor-button.passed{color:#dfbf85;border-color:#8b8056}.floor-button:disabled{opacity:1;cursor:default}.floor-button:disabled:not(.selected):not(.passed){opacity:.55}.selected-trip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #404936;border-bottom:1px solid #404936;padding:15px 0;margin-top:16px}.small-label{display:block;font-size:8px;letter-spacing:1.3px;color:#919d85}.selected-trip strong{display:block;font-size:17px;font-weight:400;margin-top:5px;color:#e8dfc7}.trip-arrow{font-size:29px;color:var(--gold)}.tips-toggle{display:flex;position:relative;justify-content:space-between;align-items:center;margin-top:15px;cursor:pointer}.tips-toggle strong{display:block;font-size:11px;font-weight:400;color:#c6ccbb}.tips-toggle small{display:block;font-size:9px;margin-top:5px;color:#8c9a81}.tips-toggle input{position:absolute;right:0;opacity:0;width:35px;height:22px;cursor:pointer}.switch{height:18px;width:31px;border-radius:12px;background:#515b45;border:1px solid #697452;pointer-events:none}.switch:before{content:'';display:block;width:12px;height:12px;background:#b5c29e;border-radius:50%;margin:2px;transition:transform .2s}.tips-toggle input:checked+.switch{background:#9c865a;border-color:#c7ab78}.tips-toggle input:checked+.switch:before{transform:translateX(12px);background:#f3e1bb}.tips-toggle input:focus-visible+.switch{outline:2px solid var(--gold);outline-offset:4px}.pace-note{text-align:center;font-size:8px;color:#88967b;margin:14px 0 0}.pitch-guide{margin:30px 0 0}.guide-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.guide-heading>p:last-child{font-size:11px;color:#949f8c;margin:0}.stage-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stage-card{padding:19px 21px 20px;border:1px solid #3b4435;background:#1d231c;border-radius:3px;transition:background .3s,border-color .3s}.stage-card.active{border-color:#b09b69;background:#292e22}.card-top{display:flex;align-items:center;justify-content:space-between}.act{font-size:11px;color:var(--gold);letter-spacing:1px}.time-range{font-size:8px;letter-spacing:1.5px;color:#8c997e}.stage-card h3{font-size:19px;font-weight:400;letter-spacing:-.5px;margin:16px 0 9px}.stage-card p{font-size:11px;line-height:1.8;color:#9ca78f;margin:0;max-width:280px}.page-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #333d2d;margin-top:30px;padding:20px 0 23px;color:#73806a;font-size:9px}.page-footer>span:first-child{font-size:8px;letter-spacing:1.7px}.arrival{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#15241ddb;backdrop-filter:blur(5px);animation:arrive .7s both}.arrival[hidden]{display:none}.arrival-icon{font-size:30px;color:var(--gold);margin-bottom:6px}.arrival h2{font-size:31px;line-height:1.12;letter-spacing:-1px;font-weight:400;margin:11px 0}.arrival>p:not(.eyebrow){font-size:12px;line-height:1.6;color:#b8c2ad;margin:0 0 17px}.arrival .gold-button{padding:11px 16px;font-size:11px}@keyframes arrive{from{opacity:0}to{opacity:1}}dialog{max-width:470px;padding:40px;background:#232b20;color:var(--ink);border:1px solid #8d805a;border-radius:5px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#071109bb;backdrop-filter:blur(5px)}dialog h2{font-size:35px;font-weight:400;letter-spacing:-1px;line-height:1.1;margin:18px 0}dialog>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#b3beaa}.dialog-close{position:absolute;right:15px;top:10px;font-size:28px;background:none;border:0;color:var(--gold)}dialog .help-small{font-size:10px!important;color:#859679!important;border-top:1px solid #435039;padding-top:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1500px){.app-shell{padding:0 80px}.intro{padding-top:50px}.cabin{height:380px}.timer-area{padding-top:64px}.floor-button{height:34px}.panel-heading h2{font-size:27px}}@media(max-width:1050px){.app-shell{padding:0 30px}.edition,.brand-divider{display:none}.practice-layout{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.control-panel{padding:20px}.ride-controls{flex-wrap:wrap}.sound-controls{margin-left:0}.tower-label,.destination-label{letter-spacing:1px;font-size:8px}.elevator-header{padding:0 18px}.intro-copy{max-width:280px;font-size:13px}}@media(max-width:750px){.app-shell{padding:0 22px}.topbar{height:72px}.brand{font-size:11px;letter-spacing:1.5px;gap:8px}.header-tools{gap:13px}#helpButton{font-size:10px}#fullscreenButton{font-size:0}#fullscreenButton span{font-size:23px;margin:0}.intro{padding:30px 0 24px;display:block}.intro h1{font-size:47px}.intro-copy{max-width:430px;margin:20px 0 0;line-height:1.7}.practice-layout{grid-template-columns:minmax(0,1fr)}.control-panel{margin-top:6px}.floor-buttons{grid-template-columns:repeat(8,1fr)}.floor-button{height:34px}.cabin{height:330px}.stage-cards{grid-template-columns:1fr;gap:10px}.stage-card{padding:16px 19px;display:grid;grid-template-columns:90px 1fr;column-gap:18px}.card-top{grid-row:1/3;flex-direction:column;align-items:start;justify-content:center;gap:13px}.stage-card h3{font-size:17px;margin:0 0 5px}.stage-card p{max-width:100%;font-size:11px}.guide-heading{align-items:start;gap:15px}.guide-heading>p:last-child{font-size:10px;text-align:right}.page-footer{font-size:8px;line-height:1.6}.page-footer>span:last-child{max-width:140px;text-align:right}.ride-controls{gap:8px}.start-button{min-width:167px}.sound-controls{margin-left:auto}.reset-button span{display:none}.keyboard-note{display:none}.pitch-guide{margin-top:25px}}@media(max-width:420px){.app-shell{padding:0 15px}.elevator-header{padding:0 12px}.tower-label{max-width:66px;line-height:1.6}.floor-display{min-width:100px;font-size:27px;padding:5px 17px}.destination-label{max-width:67px;line-height:1.6;text-align:right}.ride-controls{gap:6px}.gold-button{padding:13px 15px}.outline-button{padding:13px 15px}.sound-controls{width:100%;justify-content:flex-end}.floor-buttons{grid-template-columns:repeat(5,1fr)}.floating-tip{font-size:12px;max-width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.floating-tip.visible{animation:none;opacity:1;transform:none}.arrival{animation:none}}
