:root{--ink: #0a0b10;--bone: #f2eee3;--slate: #5a6478;--slate-2: #98a1b8;--signal: #ff4d00;--phosphor: #7cffb2;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--mono: "IBM Plex Mono", ui-monospace, monospace;--serif: "Fraunces", Georgia, serif}*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--serif);font-weight:300;-webkit-font-smoothing:antialiased}::selection{background:#ff4d0059}.shell{min-height:100dvh;max-width:1240px;margin:0 auto;padding:22px 40px 18px;display:flex;flex-direction:column}.stage-sub{position:absolute;left:14px;top:26px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--slate-2);opacity:.55;pointer-events:none;z-index:3}.stage-ctl{position:absolute;top:10px;right:12px;display:flex;gap:6px;z-index:4}.stage-ctl .snd{background:#0a0b1099;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.stage-head{display:contents}.snd{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--slate-2);background:transparent;border:1px solid rgba(90,100,120,.45);border-radius:999px;padding:4px 11px;cursor:pointer;transition:color .1s ease,border-color .1s ease,transform 80ms var(--ease-out)}@media(hover:hover)and (pointer:fine){.snd:hover{color:var(--bone);border-color:#f2eee380}}.snd:active{transform:scale(.96)}.snd.on{color:var(--phosphor);border-color:#7cffb280}.hero{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,470px);gap:56px;align-items:center;min-height:0}.stage{position:relative;width:min(68vh,640px);max-width:100%;aspect-ratio:1;margin:0 auto}.globe{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.dial-caption{position:absolute;inset:0;pointer-events:none;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;transition:opacity .32s ease}@media(min-width:961px){.globe[data-zoomed]~.dial-caption{opacity:0}}.dial-caption .dial-you,.dial-caption .dial-far{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis;transition:opacity .4s ease}.dial-caption .dial-you{top:max(44px,7%);left:14px;transform:none;color:#f2eee3bf}.dial-far{bottom:2%;color:var(--signal)}.stage.boring .dial-far{opacity:0}.idle-hints{position:absolute;bottom:-4%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}.earth-hint{margin:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--signal);opacity:0;animation:hint-in .6s ease-out .5s forwards}@keyframes hint-in{to{opacity:.85}}.drag-hint{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-2);background:none;border:0;padding:6px;cursor:pointer;pointer-events:auto;animation:hint-breathe 3.2s ease-in-out infinite}@keyframes hint-breathe{50%{opacity:.45}}.panel{width:100%;position:relative;z-index:2}.intro h1{font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:300;line-height:1.14;margin:0 0 18px;letter-spacing:-.01em}.lede{font-size:1.05rem;line-height:1.55;color:#f2eee3b8;margin:0 0 28px;max-width:46ch}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.btn{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--bone);background:transparent;border:1px solid rgba(242,238,227,.28);padding:12px 18px;cursor:pointer;border-radius:2px;transition:transform 80ms var(--ease-out),background-color .1s ease,border-color .1s ease,color .1s ease}@media(hover:hover)and (pointer:fine){.btn:hover{border-color:var(--bone);transform:translateY(-1px)}}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--signal);border-color:var(--signal);color:#14060a}@media(hover:hover)and (pointer:fine){.btn.primary:hover{background:#ff5c14;border-color:#ff5c14}}.btn.ghost{border-color:transparent;color:var(--slate-2)}@media(hover:hover)and (pointer:fine){.btn.ghost:hover{color:var(--bone)}}button:focus-visible,input:focus-visible,.globe:focus-visible,.dial:focus-visible{outline:2px solid var(--phosphor);outline-offset:3px;border-radius:2px}.play-btn:focus-visible,.icon-btn:focus-visible{border-radius:50%}.search{position:relative;flex:1;min-width:200px;max-width:280px}.search input{width:100%;font-family:var(--mono);font-size:13px;color:var(--bone);background:transparent;border:0;border-bottom:1px solid rgba(242,238,227,.28);padding:12px 2px;caret-color:var(--signal)}.search input::placeholder{color:var(--slate-2)}.search input:focus{border-bottom-color:var(--bone)}.search input:focus:not(:focus-visible){outline:none}.place-list{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:#10131c;border:1px solid rgba(242,238,227,.14);border-radius:3px;z-index:10;box-shadow:0 18px 40px #0000008c}.place-list button{display:block;width:100%;text-align:left;font-family:var(--mono);font-size:12px;color:var(--bone);background:none;border:0;padding:9px 10px;cursor:pointer;border-radius:2px}@media(hover:hover)and (pointer:fine){.place-list button:hover{background:#f2eee314}}.place-list button:focus-visible{background:#f2eee314}.quick{margin-top:20px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--slate-2);line-height:2.1}.quick-sep{margin:0 9px;color:#5a6478b3}.place-link{font:inherit;color:#f2eee3d9;background:none;border:0;border-bottom:1px solid rgba(242,238,227,.3);padding:0 0 1px;cursor:pointer;transition:color .1s ease,border-color .1s ease}@media(hover:hover)and (pointer:fine){.place-link:hover{color:var(--signal);border-bottom-color:var(--signal)}}.place-link:active{color:var(--signal);border-bottom-color:var(--signal)}.note{font-family:var(--mono);font-size:11.5px;color:var(--slate-2);line-height:1.6;margin:10px 0 0}.scope-note{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#98a1b8d9;margin:4px 0 2px;text-align:right}.note.dim{opacity:.7}.tuning .log{list-style:none;margin:24px 0 0;padding:0;font-family:var(--mono);font-size:13px;color:var(--slate-2)}.tuning .log li{padding:5px 0;animation:log-in .26s var(--ease-out) backwards}@keyframes log-in{0%{opacity:0;transform:translateY(6px)}}.tuning .log li.cur{color:var(--bone)}.tuning .log li.cur:after{content:" ▍";color:var(--signal);animation:blink .9s steps(2) infinite}@keyframes blink{50%{opacity:0}}.card{animation:card-in .22s var(--ease-out) backwards}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}}.onair{font-family:var(--mono);font-size:11px;letter-spacing:.28em;color:var(--slate-2);display:flex;align-items:center;gap:9px}.onair .dot{width:7px;height:7px;border-radius:50%;background:var(--slate)}.onair .dot.on{background:var(--phosphor);box-shadow:0 0 12px #7cffb2b3;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.dial-plate{border:1px solid rgba(242,238,227,.16);border-bottom:none;padding:7px 10px 6px;background:#f2eee306;margin-top:10px}.station-name{position:relative;font-family:var(--mono);font-size:clamp(.95rem,1.6vw,1.2rem);font-weight:500;letter-spacing:.04em;line-height:1.3;margin:0;min-height:2.6em}.dial-wrap .dial{margin-top:0}.stn-new,.stn-old{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stn-new{animation:name-in .16s ease-out backwards}.stn-old{position:absolute;inset:0 auto auto 0;width:100%;pointer-events:none;animation:name-out .16s ease-in forwards}@keyframes name-in{0%{opacity:0}}@keyframes name-out{to{opacity:0}}.station-meta,.distance{font-family:var(--mono);font-size:12px;color:#f2eee3ad;margin:4px 0;line-height:1.7}.distance{color:var(--bone);font-size:13px;margin-top:10px}.bore-line{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--signal);opacity:.8;margin:6px 0 0}.scope{display:block;width:100%;height:44px;margin-top:16px}.dial{width:100%;margin-top:10px;outline-offset:4px}.dial-canvas{display:block;width:100%;height:58px;cursor:ew-resize;touch-action:none}.there{font-family:var(--mono);font-size:11.5px;color:var(--slate-2);margin:12px 0 0;line-height:1.6}.there b{color:var(--bone);font-weight:400}.controls{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px;align-items:center}.play-btn{width:56px;height:56px;flex:none;border-radius:50%;border:1.5px solid var(--signal);background:transparent;color:var(--signal);display:grid;place-items:center;cursor:pointer;transition:background .14s ease,color .14s ease,transform .12s var(--ease-out),border-color .14s ease}@media(hover:hover)and (pointer:fine){.play-btn:hover:not(:disabled){background:#ff4d001f;transform:scale(1.06)}}.play-btn:active:not(:disabled){transform:scale(.94)}.play-btn:disabled{opacity:.45;cursor:default}.play-btn.on{background:#ff4d0024;border-color:#ff7a28e6}.icon-btn{width:42px;height:42px;flex:none;border-radius:50%;border:1px solid rgba(242,238,227,.16);background:none;color:var(--slate-2);display:grid;place-items:center;cursor:pointer;transition:color .12s ease,border-color .12s ease}@media(hover:hover)and (pointer:fine){.icon-btn:hover{color:var(--bone);border-color:#f2eee380}}.icon-btn:active{color:var(--bone);border-color:#f2eee399;transform:scale(.94)}.link-btn{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--slate-2);background:none;border:0;border-bottom:1px solid rgba(90,100,120,.5);padding:2px 0;cursor:pointer;transition:color .12s ease,border-color .12s ease}@media(hover:hover)and (pointer:fine){.link-btn:hover{color:var(--bone);border-bottom-color:var(--bone)}}.link-btn:active{color:var(--bone);border-bottom-color:var(--bone)}.failed h2{font-size:1.8rem;font-weight:300;font-style:italic;margin:20px 0 10px}.foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;border-top:1px solid rgba(242,238,227,.12);padding-top:14px;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--slate-2)}.stage-tag{position:absolute;top:10px;left:14px;z-index:4;font-family:var(--mono);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:#f2eee380;pointer-events:none}.sources summary{cursor:pointer;list-style:none;letter-spacing:.14em;text-transform:uppercase}.sources summary:before{content:"· "}.sources summary::-webkit-details-marker{display:none}.sources[open] p{margin:6px 0 0;line-height:1.6}@media(hover:hover)and (pointer:fine){.sources summary:hover{color:var(--bone)}}.sources summary:active{color:var(--bone)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:960px){.shell{padding:12px 18px 26px}.stage-sub{display:none}.hero{grid-template-columns:1fr;gap:8px;align-content:start}.stage{width:min(78vw,300px);height:auto;aspect-ratio:auto;display:flex;flex-direction:column;transition:width .32s var(--ease-in-out)}.stage-head{display:flex;justify-content:space-between;align-items:center;order:-3;padding:0 2px 5px}.stage-ctl,.stage-tag{position:static}.stage .globe{width:100%;height:236px;flex:none;transition:height .32s var(--ease-in-out)}.stage.boring{width:min(86vw,340px)}.stage.boring .globe{height:256px}.stage.on{width:min(78vw,300px)}.stage.on .globe{height:236px}.station-name{font-size:clamp(1.35rem,6.4vw,1.9rem);min-height:2.3em}.anti-coord{display:none}.dial-caption{position:static;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0 2px;text-align:center}.dial-caption .dial-you,.dial-caption .dial-far{position:static;transform:none;max-width:100%;white-space:normal;overflow:visible;text-overflow:unset}.dial-far{order:-1}.stage.boring .dial-far{visibility:hidden}.idle-hints{position:static;padding-bottom:4px}.place-link{padding:10px 0 9px}.snd{min-height:44px;padding:10px 16px}.bore-line{display:none}.scope-note{font-size:12px;text-transform:none;letter-spacing:.02em;color:#f2eee3cc;text-align:left}.intro h1{font-size:clamp(1.6rem,7vw,2.1rem)}.lede{font-size:1rem;margin-bottom:22px}.actions{flex-direction:column;align-items:stretch}.search{max-width:none}.card{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.controls{position:fixed;bottom:0;left:0;right:0;z-index:30;flex-wrap:nowrap;gap:8px;background:linear-gradient(#0a0b1000,#0a0b10eb 34%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(242,238,227,.12);padding:14px 16px calc(12px + env(safe-area-inset-bottom));margin:0}.controls .play-btn{width:52px;height:52px}.controls .icon-btn{width:46px;height:46px}.controls .link-btn{min-height:46px;display:inline-flex;align-items:center;border-bottom-color:transparent}.controls .copy-note{position:absolute;bottom:calc(100% + 6px);left:16px;margin-left:0;white-space:normal}.ph-tuned .card{display:flex;flex-direction:column}.ph-tuned .card>.dial-lesson-slot{order:3}.ph-tuned .card>.dial-wrap{order:4}.ph-tuned .card>.scope{order:5}.ph-tuned .card>.scope-note{order:6}.ph-tuned .card>.station-meta{order:7}.ph-tuned .card>.distance{order:8}.ph-tuned .card>.bore-line{order:9}.ph-tuned .card>.note{order:10}.ph-tuned .card>.there{order:11}.ph-tuned .foot{display:none}}.guide{position:fixed;inset:0;z-index:40;pointer-events:none}.guide-ring{position:fixed;border:1px dashed rgba(255,77,0,.75);border-radius:8px;box-shadow:0 0 0 5px #ff4d0012;animation:guide-pulse 2.6s ease-in-out infinite;transition:left .32s var(--ease-out),top .32s var(--ease-out),width .32s var(--ease-out),height .32s var(--ease-out)}@keyframes guide-pulse{50%{box-shadow:0 0 0 9px #ff4d0021}}.guide-tip{position:fixed;pointer-events:auto;background:#11141d;border:1px solid rgba(242,238,227,.18);border-left:2px solid var(--signal);border-radius:4px;padding:11px 14px 12px;box-shadow:0 18px 44px #0000008c;animation:tip-in .34s var(--ease-out) backwards;transition:left .32s var(--ease-out),top .32s var(--ease-out)}@keyframes tip-in{0%{opacity:0;transform:translateY(7px)}}.guide-step{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--signal);margin-bottom:5px}.guide-tip p{margin:0;font-family:var(--mono);font-size:11.5px;line-height:1.6;letter-spacing:.02em;color:#f2eee3eb}.guide-skip{margin-top:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-2);background:none;border:0;padding:2px 0;cursor:pointer;position:relative}.guide-skip:after{content:"";position:absolute;inset:-14px -12px}.guide-arc{position:fixed;width:100%;height:100%;pointer-events:none;z-index:30}.guide-arc-path,.guide-arc-chev{fill:none;stroke:#ff4d00d9;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;animation:guide-pulse 2.6s ease-in-out infinite}@media(hover:hover)and (pointer:fine){.guide-skip:hover{color:var(--bone)}}.guide-skip:active{color:var(--bone)}.guide-skip-floating{position:fixed;bottom:18px;right:18px;pointer-events:auto;border:1px solid rgba(242,238,227,.2);border-radius:999px;padding:8px 14px;background:#0a0b10cc}.guide-mini{position:fixed;transform:translate(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#f2eee3d1;background:#0a0b10c7;border:1px solid rgba(242,238,227,.2);border-radius:999px;padding:7px 13px;pointer-events:none;animation:tip-in .42s var(--ease-out) backwards}.dial-lesson-slot{min-height:0}.guide-intro-slot{display:none}.guide-intro-slot:not(:empty){display:block;margin:2px 0 10px}@media(max-width:720px){.guide-intro-slot{display:block;min-height:0;margin:0;transition:min-height .3s var(--ease-out),margin .3s var(--ease-out)}.guide-intro-slot.reserved{min-height:46px;margin:2px 0 10px}}.dial-lesson-slot.held{min-height:46px;margin:-2px 0 8px}.guide.fading,.guide-row.fading{opacity:0;transition:opacity .2s ease}.dial-lesson-slot:not(:empty){margin:-2px 0 8px}.guide-row{display:flex;align-items:center;gap:10px;border-left:2px solid var(--signal);background:#11141d99;padding:7px 10px;animation:tip-in .34s var(--ease-out) backwards}.guide-row p{margin:0;flex:1;font-family:var(--mono);font-size:10.5px;line-height:1.5;letter-spacing:.03em;color:#f2eee3d9}@media(max-width:960px){.guide-row p{font-size:12px}}.guide-row .guide-skip{margin-top:0;flex:none}.guide-row-dot{width:5px;height:5px;flex:none;border-radius:50%;background:var(--signal);animation:guide-pulse 2.6s ease-in-out infinite}.icon-btn.bad{color:var(--signal);border-color:#ff4d00b3;animation:tip-in .2s var(--ease-out)}.copy-note{font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--signal);align-self:center;margin-left:4px;animation:tip-in .2s var(--ease-out);white-space:nowrap}@media(prefers-reduced-motion:reduce){.onair .dot.on,.tuning .log li.cur:after,.drag-hint,.guide-ring,.guide-arc-path,.guide-arc-chev,.guide-tip,.guide-row-dot{animation:none}.guide-row,.guide-mini,.guide-tip,.copy-note,.icon-btn.bad,.tuning .log li,.card,.station-name,.stn-new,.stn-old,.earth-hint{animation-duration:1ms}.btn,.snd,.play-btn,.icon-btn,.link-btn,.place-link,.stage,.stage .globe,.guide-ring,.guide-tip,.guide-intro-slot,.guide.fading,.guide-row.fading{transition:none}}
