:root{--sky-dawn:#eaf3fb;--sky-mid:#7fb2e6;--altitude:#1b2a4a;--space:#0b1026;--paper:#fff;--paper-soft:#f2f6fb;--paper-border:#dce6f2;--ink:#10203b;--ink-dim:#5a6b85;--duck:#f5a80c;--duck-soft:#ffc24b;--coral:#e8395f;--m-get:#2f7fd4;--m-post:#1f9e6d;--m-patch:#d98b00;--m-delete:#e8395f;--font-display:"Space Grotesk", "Pretendard", system-ui, sans-serif;--font-body:"Pretendard", "Inter", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, "SFMono-Regular", monospace;--radius:18px;--shadow:0 10px 34px #0b102624, 0 2px 8px #0b102614}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--ink);background:var(--sky-mid);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}.mono{font-family:var(--font-mono);letter-spacing:.02em}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700;line-height:1.08}#stage{z-index:0;position:fixed;top:0;bottom:0;left:0;right:0}#scene-canvas{opacity:0;width:100%;height:100%;transition:opacity .9s;display:block}html.scene-ready #scene-canvas{opacity:1}#scroll-space{pointer-events:none;height:1800vh}#overlay-root{z-index:2;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#hud{z-index:3;pointer-events:none;justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:fixed;top:0;left:0;right:0}.hud__brand{background:var(--paper);border:1px solid var(--paper-border);box-shadow:var(--shadow);border-radius:999px;align-items:baseline;gap:12px;padding:8px 18px;display:flex}.hud__brand .display{color:var(--ink);font-size:1.05rem}.hud__sub{color:var(--ink-dim);font-size:.72rem}#sound-toggle{pointer-events:auto;color:var(--ink-dim);background:var(--paper);border:1px solid var(--paper-border);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;padding:10px 16px;font-size:.72rem}#sound-toggle:disabled{opacity:.55;cursor:default}#sound-toggle:not(:disabled):hover{color:var(--ink);border-color:var(--duck-soft)}#sound-toggle[aria-pressed=true]{color:var(--ink);border-color:var(--duck);box-shadow:0 0 0 3px #f5a80c38, var(--shadow)}#scroll-hint{z-index:3;color:var(--ink);background:var(--paper);border:1px solid var(--paper-border);box-shadow:var(--shadow);border-radius:999px;margin:0;padding:8px 16px;font-size:.78rem;animation:2.2s ease-in-out infinite hint-bob;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}@keyframes hint-bob{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}#loading{z-index:10;background:linear-gradient(180deg, var(--sky-dawn), var(--sky-mid));justify-content:center;align-items:center;transition:opacity .7s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}html.loading-done #loading{opacity:0;pointer-events:none}.boarding-pass{background:var(--paper);border:1px solid var(--paper-border);border-radius:var(--radius);width:min(88vw,380px);box-shadow:var(--shadow);padding:22px 24px}.boarding-pass__head{border-bottom:2px dashed var(--paper-border);justify-content:space-between;align-items:baseline;padding-bottom:12px;display:flex}.boarding-pass__brand{font-size:1.3rem}.boarding-pass__flight{color:var(--ink-dim);font-size:.72rem}.boarding-pass__route{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;font-size:.82rem;display:flex}.boarding-pass__arrow{color:var(--duck);font-weight:700}.boarding-pass__note{color:var(--ink-dim);margin:10px 0 14px;font-size:.82rem}.boarding-pass__bar{background:var(--paper-soft);border:1px solid var(--paper-border);border-radius:999px;height:8px;overflow:hidden}.boarding-pass__fill{background:linear-gradient(90deg, var(--duck-soft), var(--duck));border-radius:999px;width:0%;height:100%;transition:width .25s}.boarding-pass__pct{text-align:right;color:var(--ink-dim);margin:8px 0 0;font-size:.75rem}#fallback{z-index:4;max-width:720px;margin:0 auto;padding:96px 20px 60px;display:none;position:relative}html.no-webgl #fallback{display:block}html.no-webgl #stage,html.no-webgl #scroll-hint,html.no-webgl #loading{display:none}html.no-webgl #scroll-space{height:auto}html.no-webgl body{background:linear-gradient(180deg, var(--sky-dawn), var(--sky-mid))}.fallback-card{background:var(--paper);border:1px solid var(--paper-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 32px}.leg-tag{color:var(--ink-dim);letter-spacing:.14em;margin:0 0 8px;font-size:.72rem}@media (prefers-reduced-motion:reduce){#scroll-hint{animation:none}#scene-canvas,#loading{transition:none}}#overlay-root{pointer-events:none;z-index:5;position:fixed;top:0;bottom:0;left:0;right:0}.deck-card{background:var(--paper);border:1px solid var(--paper-border);width:min(240px,26vw);box-shadow:var(--shadow);pointer-events:auto;opacity:1;border-radius:14px;margin-top:0;padding:.9rem 1rem;transition:opacity .5s,margin-top .5s;position:absolute;top:0;left:0}.deck-card--hidden{opacity:0;pointer-events:none;margin-top:26px}.deck-card:hover{box-shadow:0 16px 44px #0b102633,0 3px 10px #0b10261a}.deck-card__role{color:var(--coral);letter-spacing:.08em;margin:0 0 .25rem;font-size:.62rem;font-weight:700}.deck-card__name{font-family:var(--font-display);color:var(--ink);margin:0 0 .25rem;font-size:1.15rem}.deck-card__line{color:var(--ink-dim);margin:0;font-size:.8rem}.deck-card__sub{color:var(--ink-dim);margin:.35rem 0 0;font-size:.72rem}.deck-card__bar{background:#e4ecf6;border-radius:999px;height:7px;margin-top:.55rem;overflow:hidden}.deck-card__bar>span{background:linear-gradient(90deg, var(--duck-soft,#ffc24b), var(--coral));border-radius:inherit;height:100%;display:block}.deck-card__links{flex-wrap:wrap;gap:.5rem;margin:.2rem 0 0;display:flex}.deck-card__links a{font-family:var(--font-mono);color:var(--ink);border:1px solid var(--paper-border);border-radius:999px;padding:.25rem .7rem;font-size:.72rem;text-decoration:none}.deck-card__links a:hover{background:var(--paper-soft)}@media (max-width:640px){.deck-card{width:min(190px,44vw);padding:.7rem .8rem}}body:not([data-act=skydive]) #scroll-hint{opacity:0;transition:opacity .4s}.station-panel{background:var(--paper);border:1px solid var(--paper-border);width:min(400px,44vw);max-height:62vh;box-shadow:var(--shadow);pointer-events:auto;opacity:0;border-radius:16px;padding:1.1rem 1.25rem;transition:opacity .25s;position:absolute;top:0;left:0;overflow-y:auto}.station-panel--wide{width:min(520px,52vw)}.station-panel__tag{color:var(--coral);letter-spacing:.1em;margin:0 0 .35rem;font-size:.66rem;font-weight:700}.station-panel__title{font-family:var(--font-display);color:var(--ink);margin:0 0 .4rem;font-size:1.35rem}.station-panel__desc{color:var(--ink-dim);margin:0 0 .8rem;font-size:.82rem}.station-panel__legs{gap:.45rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.station-panel__legs li{background:var(--paper-soft);border:1px solid var(--paper-border);border-radius:9px;padding:.5rem .7rem;font-size:.82rem}.station-panel__legs li span{color:var(--coral);margin-right:.4rem;font-size:.74rem;font-weight:700}.station-panel__legs li em{color:var(--ink-dim);margin-left:.35rem;font-size:.66rem;font-style:normal}.station-panel__legs li.is-done{border-color:color-mix(in srgb, var(--duck) 45%, var(--paper-border))}.station-panel__legs li.is-today{outline:2px solid var(--coral)}.station-panel__legs li.is-today em{color:var(--coral);font-weight:700}.station-panel__parts{gap:.4rem;margin:.3rem 0 0;padding:0;list-style:none;display:grid}.station-panel__parts li{background:var(--paper-soft);border:1px solid var(--paper-border);border-radius:9px;grid-template-columns:58px 1fr auto;align-items:center;gap:.15rem .6rem;padding:.45rem .65rem;font-size:.8rem;display:grid}.part-code{color:var(--coral);font-size:.68rem;font-weight:700}.part-frac{color:var(--ink-dim);font-size:.72rem}.part-bar{background:#e4ecf6;border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.part-bar>i{background:linear-gradient(90deg, #ffc24b, var(--coral));border-radius:inherit;height:100%;display:block}.station-panel__terminals{gap:.7rem;display:grid}.terminal-mini{background:var(--paper-soft);border:1px solid var(--paper-border);border-radius:10px;padding:.6rem .75rem}.terminal-mini__head{margin:0 0 .4rem;font-size:.86rem;font-weight:700}.terminal-mini__head span{color:var(--coral);margin-right:.3rem;font-size:.7rem}.gate-mini{align-items:center;gap:.5rem;margin:.22rem 0;font-size:.72rem;display:flex}.gate-mini__path{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.gate-mini__auth{color:var(--ink-dim);border:1px solid var(--paper-border);border-radius:4px;padding:0 .3rem;font-size:.62rem}.method-chip{text-align:center;color:#fff;border-radius:4px;flex:none;min-width:50px;padding:.08rem .3rem;font-size:.62rem;font-weight:700}.m-get{background:#2f7fd4}.m-post{background:#1f9e6d}.m-patch{background:#d98b00}.m-delete{background:#e8395f}.station-panel__ts{gap:.5rem;margin:.3rem 0 0;padding:0;list-style:none;display:grid}.station-panel__ts li{background:var(--paper-soft);border:1px dashed var(--paper-border);border-radius:10px;padding:.55rem .75rem}.ts-head{margin:0 0 .2rem;font-size:.8rem}.ts-head span{color:var(--coral);margin-right:.3rem;font-size:.68rem;font-weight:700}.ts-part{color:var(--ink-dim);font-size:.62rem}.ts-body{color:var(--ink-dim);margin:0;font-size:.74rem}@media (max-width:640px){.station-panel,.station-panel--wide{width:min(320px,88vw);max-height:52vh}}.station-panel--finale{text-align:center;width:min(340px,80vw)}.station-panel--finale .deck-card__links{justify-content:center}.station-panel__loop{letter-spacing:.4px;opacity:.55;margin:10px 0 0;font-size:11px}.fallback-stack{justify-items:stretch;gap:1rem;margin-top:1.2rem;display:grid}.fallback-stack .deck-card,.fallback-stack .station-panel{opacity:1;visibility:visible;pointer-events:auto;width:100%;max-height:none;margin-top:0;position:static;transform:none}#journey-bar{z-index:12;pointer-events:none;background:linear-gradient(90deg,#f5a80c,#e8395f);border-radius:0 3px 3px 0;width:0;height:4px;position:fixed;bottom:0;left:0}html.no-webgl #journey-bar{display:none}.station-panel__head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ts-add{color:#fff;background:var(--coral);white-space:nowrap;border-radius:999px;flex:none;margin-top:.2rem;padding:.4rem .8rem;font-size:.72rem;font-weight:700;text-decoration:none;transition:transform .12s,filter .12s}.ts-add:hover{filter:brightness(1.05);transform:translateY(-1px)}
