html,body{overflow:hidden}.sim{background:var(--void);width:100vw;height:100dvh;position:relative;overflow:hidden}.sim-canvas{touch-action:none;outline:0;width:100%;height:100%;display:block}.sim-hud{z-index:2;pointer-events:none;color:var(--ink);font-family:var(--font-mono);letter-spacing:.06em;flex-direction:column;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;display:flex;position:absolute;bottom:1.5rem;left:50%;translate:-50%}.fps{z-index:2;color:#fff;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.06em;pointer-events:none;font-weight:700;position:absolute;top:1rem;left:1rem}.momentum-trial{z-index:2;color:#f4f2f8b8;width:min(15rem,100vw - 2rem);font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;pointer-events:none;background:#08070bb8;border:.0625rem solid #a78bfa57;padding:.75rem;font-weight:700;transition:border-color .22s,box-shadow .22s;position:absolute;top:1rem;right:1rem;box-shadow:inset 0 0 1.5rem #7c3aed12}.momentum-trial-heading,.momentum-trial-stats{justify-content:space-between;align-items:center;gap:1rem;display:flex}.momentum-trial-heading>span{color:var(--ink)}.momentum-trial-heading small{color:#a78bfaad;font:inherit;flex:none}.momentum-trial-meter{background:#140e1dd6;border:.0625rem solid #a78bfa4d;height:.375rem;margin-block:.625rem;display:block;position:relative;overflow:hidden}.momentum-trial-fill{--momentum-fill:0%;width:var(--momentum-fill);background:linear-gradient(90deg, #6d28d9, var(--violet-light));transition:width 80ms linear;position:absolute;inset:0 auto 0 0;box-shadow:0 0 .65rem #a78bfa99}.momentum-trial-meter b{z-index:1;top:0;bottom:0;left:var(--milestone);background:#08070bb8;width:.0625rem;position:absolute}.momentum-trial-stats{color:#f4f2f88f}.momentum-trial.is-complete{border-color:var(--violet-light);box-shadow:inset 0 0 1.75rem #7c3aed33,0 0 1.25rem #7c3aed38}.momentum-trial.is-complete .momentum-trial-heading>span,.momentum-trial.is-complete .momentum-trial-stats>span:first-child{color:var(--violet-light)}.sim-complete-exit{color:var(--ink);pointer-events:auto;border-top:.0625rem solid #a78bfa47;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;padding-top:.75rem;transition:color .16s;display:none}.momentum-trial.is-complete .sim-complete-exit{display:flex}.sim-complete-exit:is(:hover,:focus-visible){color:var(--violet-light)}.momentum-achieved{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.momentum-achieved:before{content:"";opacity:0;background:radial-gradient(circle,#7c3aed1f,#0000 62%);position:absolute;inset:0}.momentum-achieved span{opacity:0;background:linear-gradient(90deg, transparent, var(--violet-light), transparent);width:120vmax;height:.0625rem;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:-9deg;box-shadow:0 0 1.25rem #7c3aed94}.sim.is-momentum-achieved .momentum-achieved:before{animation:.9s ease-out both momentum-achieved-veil}.sim.is-momentum-achieved .momentum-achieved span{animation:.9s cubic-bezier(.16,.75,.2,1) both momentum-achieved-line}@keyframes momentum-achieved-veil{0%,to{opacity:0}36%{opacity:1}}@keyframes momentum-achieved-line{0%{opacity:0;scale:0 1}32%{opacity:.92;scale:1}to{opacity:0;scale:1 8}}.speed strong{color:var(--ink);font:inherit}.dash-meter{justify-items:center;gap:.5rem;width:6rem;display:grid}.dash-indicators{grid-template-columns:repeat(2,.75rem);gap:1rem;display:grid}.dash-charge{aspect-ratio:1;opacity:.22;background:0 0;border:.0625rem solid #e8e1ffc2;transition:opacity .16s,background .16s;display:block;position:relative;rotate:45deg}.dash-charge.is-ready{opacity:1;background:#fff;animation:2.4s ease-in-out infinite dash-ready}.dash-rail{background:#08070b94;border:.0625rem solid #a78bfa85;width:100%;height:.5rem;padding:.0625rem;display:block;position:relative;overflow:hidden;box-shadow:0 0 .75rem #7c3aed24}.dash-rail-fill{--dash-fill:100%;width:var(--dash-fill);background:linear-gradient(90deg, var(--violet), var(--violet-light));height:100%;transition:width 80ms linear;display:block;box-shadow:0 0 .6rem #a78bfab8}@keyframes dash-ready{0%,to{scale:.8;box-shadow:0 0 .35rem #c4b5fd85}50%{scale:1;box-shadow:0 0 .75rem #c4b5fde6}}.crosshair{z-index:2;aspect-ratio:1;pointer-events:none;opacity:0;background:#f4f2f8cc;border-radius:50%;width:.1875rem;transition:opacity .16s;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 0 .4rem #08070bd9}.activation{z-index:4;pointer-events:none;visibility:hidden;position:absolute;inset:0;overflow:hidden}.route-arrival{z-index:6;visibility:hidden;pointer-events:none;background:#21132f;position:absolute;inset:0;overflow:hidden}.route-arrival-grid{opacity:0;background-image:linear-gradient(#a78bfa47 .0625rem,#0000 .0625rem),linear-gradient(90deg,#a78bfa47 .0625rem,#0000 .0625rem);background-size:2rem 2rem;position:absolute;inset:-18%;transform:perspective(42rem)rotateX(58deg)scale(1.28);mask-image:radial-gradient(circle,#000 0 34%,#0000 76%)}.route-arrival-line{opacity:0;transform-origin:50%;background:linear-gradient(90deg,#0000,#c4b5fd 28% 72%,#0000);width:150vmax;height:.0625rem;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 0 1.25rem #a78bfa94}.route-arrival-line-a{rotate:-13deg}.route-arrival-line-b{rotate:21deg}.route-arrival-core{aspect-ratio:1;opacity:0;border:.0625rem solid #e8e1ffd1;width:4rem;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:45deg;box-shadow:0 0 2rem #a78bfae0,inset 0 0 1.5rem #7c3aed6b}.route-arrival-copy{color:#eee9f7;opacity:0;text-align:center;text-transform:uppercase;width:min(30rem,100vw - 2rem);font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.16em;white-space:normal;font-weight:700;position:absolute;top:50%;left:50%;translate:-50% 3.5rem}.lab-arriving .route-arrival{visibility:visible;pointer-events:auto;animation:.85s ease-out both route-arrival-cover}.lab-arriving .route-arrival-grid{animation:.78s ease-out 40ms both route-arrival-grid}.lab-arriving .route-arrival-line-a{animation:.68s ease-out both route-arrival-line}.lab-arriving .route-arrival-line-b{animation:.62s ease-out 80ms both route-arrival-line}.lab-arriving .route-arrival-core{animation:.72s ease-out 40ms both route-arrival-core}.lab-arriving .route-arrival-copy{animation:.7s ease-out 90ms both route-arrival-copy}@keyframes route-arrival-cover{0%{background-color:#21132f}18%{background-color:#180f25}68%{background-color:#08070be0}to{background-color:#08070b00}}@keyframes route-arrival-grid{0%{opacity:0;filter:brightness(2.4);scale:1.45}32%{opacity:.7}to{opacity:0;filter:brightness();scale:1}}@keyframes route-arrival-line{0%{opacity:.58;scale:1 48}48%{opacity:.78;scale:1}to{opacity:0;scale:.18 1}}@keyframes route-arrival-core{0%{opacity:1;scale:.06}42%{opacity:1;scale:1}to{opacity:0;scale:1.8}}@keyframes route-arrival-copy{0%,22%{opacity:0;letter-spacing:.3em}46%{opacity:1;letter-spacing:.16em}to{opacity:0;translate:-50% 2.5rem}}.activation:before{content:"";opacity:0;background:radial-gradient(circle,#0000 28%,#7c3aed29 66%,#a78bfa57 100%),linear-gradient(90deg,#7c3aed24,#0000 16% 84%,#7c3aed24);position:absolute;inset:0}.activation-grid{opacity:0;background-image:linear-gradient(#a78bfa38 .0625rem,#0000 .0625rem),linear-gradient(90deg,#a78bfa38 .0625rem,#0000 .0625rem);background-size:2rem 2rem;position:absolute;inset:-15%;transform:perspective(42rem)rotateX(58deg)scale(1.2);mask-image:radial-gradient(circle,#000 0 32%,#0000 74%)}.activation-line{opacity:0;transform-origin:50%;background:linear-gradient(90deg, transparent 7%, var(--violet-light) 48% 52%, transparent 93%);width:145vmax;height:.0625rem;position:absolute;top:50%;left:50%;box-shadow:0 0 .75rem #7c3aedcc}.activation-line-a{rotate:-14deg}.activation-line-b{rotate:19deg}.activation-line-c{rotate:-38deg}.activation-core{aspect-ratio:1;border:.0625rem solid var(--violet-light);opacity:0;width:3.5rem;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:45deg;box-shadow:0 0 1.5rem #7c3aedbf,inset 0 0 1rem #a78bfa52}.is-activating .activation{visibility:visible}.is-activating .activation:before{animation:1.05s ease-out both activation-bloom}.is-activating .activation-grid{animation:.9s ease-out 80ms both activation-grid}.is-activating .activation-line-a{animation:.76s cubic-bezier(.2,.7,.2,1) 80ms both activation-line}.is-activating .activation-line-b{animation:.76s cubic-bezier(.2,.7,.2,1) .15s both activation-line}.is-activating .activation-line-c{animation:.7s cubic-bezier(.2,.7,.2,1) .23s both activation-line}.is-activating .activation-core{animation:.82s cubic-bezier(.2,.8,.2,1) both activation-core}@keyframes activation-core{0%{opacity:0;scale:1.8}18%{opacity:1;scale:1}62%{opacity:1;scale:.28}78%{opacity:1;scale:.12}to{opacity:0;scale:0}}@keyframes activation-line{0%{opacity:0;scale:0 1}20%{opacity:.9;scale:.1 1}72%{opacity:.72;scale:1}to{opacity:0;scale:1}}@keyframes activation-grid{0%{opacity:0;filter:brightness(2)}28%{opacity:.62}62%{opacity:.32}to{opacity:0;filter:brightness()}}@keyframes activation-bloom{0%{opacity:0}24%{opacity:1}58%{opacity:.7}to{opacity:0}}.is-locked .crosshair,.is-mobile-active .crosshair{opacity:1}.pointer-prompt{z-index:3;width:min(24rem,100vw - 2rem);color:var(--muted);text-align:left;text-transform:uppercase;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.14em;cursor:pointer;appearance:none;touch-action:manipulation;backdrop-filter:blur(.875rem);clip-path:polygon(0 0,calc(100% - 1.5rem) 0,100% 1.5rem,100% 100%,0 100%);background:#0a080ebd;border:.0625rem solid #a78bfa5c;border-radius:0;gap:.375rem;padding:1rem 1.25rem;font-weight:700;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.prompt-title{color:var(--ink);font-family:Roboto Condensed Variable,sans-serif;font-size:var(--text-body);letter-spacing:.08em}.prompt-action{color:var(--muted)}.prompt-mobile,.mobile-controls{display:none}.prompt-controls{color:#f4f2f8a8;letter-spacing:.08em;border-top:.0625rem solid #a78bfa3d;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem 1.25rem;margin-top:.625rem;padding-top:.75rem;display:grid}.prompt-controls>span{white-space:nowrap;grid-template-columns:clamp(4.5rem,24vw,5.75rem) minmax(0,1fr);align-items:baseline;gap:.625rem;display:grid}.prompt-controls>.prompt-mobile{display:none}.prompt-controls kbd{color:var(--violet-light);font:inherit;letter-spacing:inherit}.pointer-prompt[hidden]{display:none}.sim-exit{z-index:4;color:var(--ink);text-transform:uppercase;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;backdrop-filter:blur(.75rem);background:#0a080ed1;border:.0625rem solid #a78bfa66;align-items:center;gap:.8rem;padding:.75rem 1rem;font-weight:700;transition:border-color .16s,color .16s,translate .16s;display:inline-flex;position:absolute;top:calc(50% + 10.5rem);left:50%;translate:-50%}.pointer-prompt[hidden]~.sim-exit{display:none}.sim-exit:is(:hover,:focus-visible){border-color:var(--violet-light);color:var(--violet-light);translate:-50% -.15rem}.pointer-prompt:hover,.pointer-prompt:focus-visible{border-color:var(--violet-light);color:var(--ink)}@media (any-pointer:coarse){.sim-hud{bottom:6.75rem;left:50%;translate:-50%}.prompt-desktop{display:none!important}.prompt-mobile{display:block}.prompt-controls>.prompt-mobile{display:grid}.prompt-controls>span{white-space:normal}.pointer-prompt[hidden]~.sim-exit,.sim-exit{display:inline-flex;top:1rem;left:1rem;translate:0}.sim-exit:is(:hover,:focus-visible){translate:0 -.15rem}.mobile-controls{z-index:3;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s,visibility .18s;display:block;position:absolute;inset:0}.is-mobile-active .mobile-controls{visibility:visible;opacity:1}.mobile-move{pointer-events:auto;grid-template-rows:repeat(2,2.75rem);grid-template-columns:repeat(3,2.75rem);gap:.25rem;display:grid;position:absolute;bottom:1rem;left:1rem}.mobile-up{grid-area:1/2}.mobile-left{grid-area:2/1}.mobile-down{grid-area:2/2}.mobile-right{grid-area:2/3}.mobile-control{aspect-ratio:1;color:#fff;text-transform:uppercase;width:2.75rem;font-family:var(--font-mono);letter-spacing:.08em;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(.75rem);background:#08070bd1;border:.0625rem solid #a78bfa8f;border-radius:0;place-items:center;padding:0;font-size:1rem;font-weight:700;transition:scale .1s,border-color .14s,color .14s,background .14s,box-shadow .14s;display:grid;box-shadow:0 0 .9rem #7c3aed1f}.control-arrow{width:.875rem;height:.875rem;display:block;position:relative}.control-arrow:before,.control-arrow:after{content:"";transform-origin:100%;background:currentColor;width:.75rem;height:.125rem;position:absolute;top:calc(50% - .0625rem);right:0;box-shadow:0 0 .35rem #7c3aed6b}.control-arrow:before{rotate:40deg}.control-arrow:after{rotate:-40deg}.mobile-up .control-arrow{rotate:-90deg}.mobile-left .control-arrow{rotate:180deg}.mobile-down .control-arrow{rotate:90deg}.mobile-jump{pointer-events:auto;width:5.5rem;font-size:var(--text-small);border-radius:50%;position:absolute;bottom:1rem;right:1rem}@media (hover:hover){.mobile-control:hover{border-color:var(--violet-light);background:#120c1beb;box-shadow:0 0 1.25rem #7c3aed3d}}.mobile-control:active,.mobile-control.is-pressed{border-color:var(--violet-light);color:#fff;background:#201231f0;scale:.92;box-shadow:inset 0 0 1rem #7c3aed3d,0 0 1.25rem #7c3aed57}}@media (any-pointer:coarse) and (orientation:landscape){.sim-hud{bottom:1rem}}@media (prefers-reduced-motion:reduce){.is-activating .activation:before{animation-duration:.12s}.activation-grid,.activation-line,.activation-core,.route-arrival-grid,.route-arrival-line,.route-arrival-core,.route-arrival-copy{display:none}.lab-arriving .route-arrival{background:#08070b;animation:none}.dash-charge.is-ready{animation:none}}
