@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;600;700&display=swap";body{font-family:Manrope,Segoe UI,sans-serif;margin:0;min-width:320px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}:root{--zinc-50: #fafafa;--zinc-100: #f4f4f5;--zinc-200: #e4e4e7;--zinc-300: #d4d4d8;--zinc-400: #a1a1aa;--zinc-500: #71717a;--zinc-600: #52525b;--zinc-700: #3f3f46;--zinc-800: #27272a;--zinc-900: #18181b;--zinc-950: #09090b;--overlay-bg: rgba(9, 9, 11, .72);--overlay-border: rgba(161, 161, 170, .15);--text-primary: var(--zinc-100);--text-muted: var(--zinc-400)}*{box-sizing:border-box}#root{height:100vh;overflow:hidden}.app-shell{height:100vh;position:relative;width:100vw}.globe-panel{height:100%;overflow:hidden;position:absolute;inset:0;background:var(--zinc-950)}.globe-panel canvas{display:block}.brand-overlay{align-items:flex-start;animation:fade-in .8s ease both;display:flex;flex-direction:column;gap:.1rem;left:1.5rem;pointer-events:none;position:absolute;top:1.5rem;z-index:10}.brand-overlay h1{color:var(--zinc-50);font-family:Fraunces,serif;font-size:clamp(1.3rem,2.5vw,1.8rem);font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0;text-shadow:0 2px 12px rgba(0,0,0,.6)}.brand-descriptor{animation:fade-in 1.1s ease both;color:#f4f4f5bf;font-size:.74rem;font-weight:500;letter-spacing:.01em;line-height:1.35;margin:0;margin-top:.28rem;max-width:min(46ch,calc(100vw - 3rem));pointer-events:auto;text-shadow:0 1px 10px rgba(0,0,0,.6)}.brand-descriptor a{color:#f4f4f5bf;text-decoration:underline}.brand-descriptor a:hover{color:var(--zinc-100)}.bottom-controls{align-items:center;animation:fade-up .6s ease both;bottom:2rem;display:flex;flex-direction:column;gap:.75rem;left:50%;pointer-events:none;position:absolute;transform:translate(-50%);z-index:12}.bottom-controls>*{pointer-events:auto}.now-playing{align-items:center;animation:np-in .6s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09090b8c;border-radius:12px;display:flex;flex-direction:column;gap:.15rem;padding:.6rem 1rem;text-align:center}@keyframes np-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.np-title{color:var(--zinc-200);font-size:.82rem;font-weight:600;margin:0;max-width:280px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 6px rgba(0,0,0,.7);white-space:nowrap}.np-link{color:var(--zinc-500);font-size:.62rem;text-decoration:underline;text-shadow:0 1px 4px rgba(0,0,0,.6)}.np-link:hover{color:var(--zinc-300)}.np-meta{color:var(--zinc-500);font-size:.68rem;font-variant-numeric:tabular-nums;margin:0;text-shadow:0 1px 4px rgba(0,0,0,.6)}.np-text{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09090b8c;border-radius:10px;color:var(--zinc-400);font-size:.78rem;margin:0;padding:.45rem .85rem;text-align:center}.now-playing .spinner{animation:spin 1.1s linear infinite;border:2px solid var(--zinc-700);border-radius:50%;border-top-color:var(--zinc-300);flex-shrink:0;height:14px;width:14px}.listen-btn{align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--zinc-700);border:1px solid var(--zinc-600);border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:0;height:48px;justify-content:center;transition:background .15s,transform .1s;width:48px}.listen-btn:hover{background:var(--zinc-600);transform:scale(1.06)}.listen-btn:active{transform:scale(.96)}.listen-btn svg{display:block}@keyframes spin{to{transform:rotate(360deg)}}.controls-row{align-items:center;display:flex;flex-wrap:nowrap;gap:.5rem;justify-content:center;max-width:calc(100vw - 1rem);width:max-content}.speed-toggle{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09090b80;border:1px solid var(--overlay-border);border-radius:99px;display:flex;gap:2px;padding:3px}.speed-btn{background:transparent;border:none;border-radius:99px;color:var(--zinc-500);cursor:pointer;font-size:.65rem;font-weight:600;padding:.25rem .55rem;transition:color .15s,background .15s}.speed-btn:hover{color:var(--zinc-300)}.speed-btn.active{background:var(--zinc-700);color:var(--zinc-100)}.ambient-error{color:#fca5a5;font-size:.64rem;margin:-.35rem 0 0;max-width:42ch;text-align:center}.ambient-credit{color:var(--zinc-500);font-size:.62rem;margin:-.35rem 0 0;text-align:center}.ambient-credit a{color:var(--zinc-500);text-decoration:underline}.ambient-credit a:hover{color:var(--zinc-200)}.crosshair{animation:crosshair-in .8s ease both;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:10}@keyframes crosshair-in{0%{opacity:0;scale:1.3}to{opacity:1;scale:1}}.crosshair-ring{border:2px solid rgba(244,244,245,.7);border-radius:50%;height:64px;width:64px}.crosshair-dot{background:var(--zinc-50);border-radius:50%;height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:5px}.pin-chip{align-items:center;display:inline-flex;pointer-events:auto;position:absolute;right:1.5rem;top:1.5rem;z-index:10}.chip-btn{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--overlay-bg);border:1px solid var(--overlay-border);border-radius:999px;color:var(--zinc-300);cursor:pointer;font-size:.76rem;font-weight:700;padding:.38rem .9rem;transition:background .15s}.chip-btn:hover{background:#09090be6;color:var(--zinc-50)}.error-line{color:#ff8080;font-size:.78rem;margin:.4rem 0 0}.state-card{align-items:center;background:#09090b99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:20px;color:var(--text-primary);display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute;text-align:center;z-index:5}.state-card h2{font-family:Fraunces,serif;font-size:1.4rem;margin:0}.state-card p{color:var(--text-muted);font-size:.88rem;margin:.4rem 0 0;max-width:28ch}@keyframes fade-up{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:540px){.bottom-controls{bottom:1.5rem}.listen-btn{height:44px;width:44px}.controls-row{gap:.35rem;max-width:calc(100vw - .5rem)}.speed-btn{font-size:.62rem;padding:.23rem .5rem}.brand-overlay h1{font-size:1.2rem}.brand-descriptor{font-size:.68rem;max-width:calc(100vw - 3rem)}.np-title{max-width:220px;font-size:.76rem}.np-meta{font-size:.64rem}}
