:root{--cabin-bg:#f4f5f7;--frame-outer:#e4e6ea;--frame-shadow:#c4c7ce;--frame-inset:#a8adb6;--text:#3a3d44;--text-secondary:#6e737c;--cabin-warmth:transparent;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:IBM Plex Mono,ui-monospace,monospace}*,:before,:after{box-sizing:border-box}html,body{background:var(--cabin-bg);min-height:100%;margin:0}body{min-height:100dvh}#app{background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--cabin-warmth) 40%, transparent), transparent 55%), var(--cabin-bg);flex-direction:column;justify-content:center;align-items:center;gap:clamp(1.25rem,3vw,2rem);min-height:100dvh;padding:clamp(1.25rem,4vw,2.5rem) clamp(1rem,3vw,2rem) 2rem;transition:background .8s;display:flex}.stage{flex-direction:column;align-items:stretch;gap:1.35rem;width:min(100%,420px);display:flex}@media (width>=720px){.stage{width:min(100%,460px)}}@media (width>=1100px){.stage{width:min(100%,520px)}}.window-frame{--cabin-warmth:transparent;aspect-ratio:.72;filter:drop-shadow(0 18px 28px #464e5f1f);width:100%;position:relative}.window-outer{background:linear-gradient(145deg, color-mix(in srgb, var(--cabin-warmth) 55%, var(--frame-outer)), var(--frame-outer));border-radius:48%/36%;padding:clamp(14px,3.2vw,20px);transition:background 1.2s;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff8c,inset 0 -2px 4px #5f647329,0 0 0 1px #a8adb659}.window-inner{background:var(--frame-inset);width:100%;height:100%;box-shadow:inset 0 0 0 1px var(--frame-shadow), inset 0 3px 10px #373c4b42, inset 0 -1px 0 #ffffff47;border-radius:46%/34%;padding:clamp(7px,1.6vw,10px);position:relative;overflow:hidden}.window-glass{background:#080d24;border-radius:44%/32%;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 24px #14120e40}.sky-canvas{width:100%;height:100%;display:block}.glass-sheen{pointer-events:none;mix-blend-mode:soft-light;opacity:.85;background:linear-gradient(125deg,#ffffff2e 0%,#ffffff0a 22%,#0000 42%),radial-gradient(120% 80% at 20% 12%,#ffffff1f,#0000 40%);border-radius:44%/32%;position:absolute;inset:clamp(7px,1.6vw,10px);box-shadow:inset 0 0 30px #ffffff08}.window-shade{--shade:0;touch-action:none;cursor:ns-resize;z-index:2;border-radius:44%/32%;outline:none;position:absolute;inset:clamp(7px,1.6vw,10px);overflow:hidden}.shade-panel{height:calc(var(--shade) * 100%);background:linear-gradient(#d8dde4 0%,#cfd5dd 18%,#c5ccd6 55%,#bec5d0 100%);position:absolute;top:0;left:0;right:0;box-shadow:inset 0 -1px #ffffff59,inset 0 2px 6px #ffffff40,0 4px 10px #2830402e}.shade-panel:before{content:"";pointer-events:none;background:repeating-linear-gradient(#ffffff24 0 1px,#0000 1px 5px),repeating-linear-gradient(#46505f1a 0 1px,#0000 1px 15px),repeating-linear-gradient(#0000 0 7px,#ffffff0d 7px 8px,#0000 8px 15px);position:absolute;inset:0}.shade-panel:after{content:"";opacity:.45;mix-blend-mode:multiply;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.55 0 0 0 0 0.58 0 0 0 0 0.62 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:140px 140px;position:absolute;inset:0}.shade-handle{left:0;right:0;top:calc(var(--shade) * 100%);pointer-events:auto;justify-content:center;align-items:center;height:28px;margin-top:-2px;display:flex;position:absolute}.shade-grip{background:color-mix(in srgb, var(--frame-inset) 70%, #8b929e);border-radius:3px;width:42px;height:5px;box-shadow:0 1px #ffffff73,inset 0 1px 1px #28304033}.window-shade.is-animating .shade-panel,.window-shade.is-animating .shade-handle{transition:height .35s cubic-bezier(.22,.61,.36,1),top .35s cubic-bezier(.22,.61,.36,1)}.window-shade.is-dragging{cursor:grabbing}.window-shade:focus-visible .shade-grip{outline:1px solid var(--text-secondary);outline-offset:4px}@media (pointer:coarse){.shade-handle{height:36px}.shade-grip{width:52px;height:6px}}.controls{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:.85rem;display:flex}.time-readout{letter-spacing:.12em;color:var(--text);font-size:.8rem;transition:transform .2s,letter-spacing .2s}.time-readout.is-scrubbing{letter-spacing:.16em;transform:scale(1.08)}.scrubber{cursor:ew-resize;touch-action:none;outline:none;width:100%;padding:.35rem 0 .15rem}.scrubber-track{background:color-mix(in srgb, var(--text-secondary) 35%, transparent);border-radius:1px;height:2px;position:relative}.scrubber-fill{background:color-mix(in srgb, var(--text) 55%, transparent);border-radius:1px;width:0%;position:absolute;inset:0 auto 0 0}.scrubber-thumb{background:var(--text);opacity:.75;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;margin-left:-4.5px;transition:transform .15s,opacity .15s;position:absolute;top:50%;left:0%}.scrubber:hover .scrubber-thumb,.scrubber.is-dragging .scrubber-thumb{opacity:1;transform:scale(1.15)}.scrubber-marks{letter-spacing:.06em;color:var(--text-secondary);opacity:.75;justify-content:space-between;margin-top:.45rem;font-size:.55rem;display:flex}.transport,.speeds{justify-content:center;align-items:center;gap:1.1rem;display:flex}.speeds{flex-wrap:wrap;gap:.85rem}.text-btn{appearance:none;color:var(--text-secondary);font:inherit;letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:.35rem .15rem;font-size:.72rem;transition:color .18s,opacity .18s}.text-btn:hover{color:var(--text);opacity:.85}.play-btn{min-width:2rem;font-size:.68rem}.play-btn:hover{opacity:.65}.speed-btn.is-active{color:var(--text);text-underline-offset:.35em;text-decoration:underline;text-decoration-thickness:1px}@media (width<=480px){.stage{width:min(100%,320px)}.transport,.speeds{gap:.75rem}.text-btn{padding:.45rem .2rem;font-size:.68rem}}@media (prefers-reduced-motion:reduce){.time-readout,.scrubber-thumb,.window-outer,#app,.window-shade.is-animating .shade-panel,.window-shade.is-animating .shade-handle{transition:none}}
