:root{--bg:#07131a;--ink:#e9f1ee;--muted:#9fb3ad;--line:rgba(255,255,255,.14);--accent:#5fd3b4;--gold:#f2c46b;--panel:rgba(10,28,36,.92)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:8px 12px;z-index:10}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:12px 20px;border-bottom:1px solid var(--line)}
.brand{font-weight:800;letter-spacing:.12em;color:var(--ink);text-decoration:none;font-size:1.2rem}
.title{display:flex;flex-direction:column;margin-right:auto}
.title span{color:var(--muted);font-size:.85rem}
.links{display:flex;gap:16px}
.links a{color:var(--ink);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.links a:hover,.links a:focus-visible{text-decoration:underline}
button{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:8px;padding:6px 10px;min-height:36px;cursor:pointer}
button[aria-pressed="true"]{background:rgba(95,211,180,.18);border-color:var(--accent)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.lang{display:flex;gap:6px}
.stage{display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:72vh}
#canvas-wrap{position:relative;min-height:72vh}
#sphere{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}
.hud{position:absolute;left:12px;right:12px;top:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;pointer-events:none}
.hud>*{pointer-events:auto}
.hud input,.hud select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-height:36px}
.hud input{min-width:220px}
.levels{display:flex;gap:4px}
.status{position:absolute;left:12px;bottom:8px;margin:0;color:var(--muted);font-size:.85rem;background:rgba(7,19,26,.7);padding:4px 8px;border-radius:6px}
.nogl{position:absolute;inset:auto 12px 50% 12px;text-align:center;color:var(--ink)}
.panel{border-left:1px solid var(--line);padding:18px;overflow:auto;max-height:84vh;background:rgba(255,255,255,.02)}
.panel h2{margin:.2em 0 .2em;font-size:1.3rem;line-height:1.25}
.panel .meta{color:var(--muted);font-size:.85rem;margin:0 0 10px}
.panel .tags span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:1px 8px;margin:0 4px 4px 0;font-size:.78rem;color:var(--muted)}
.panel h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:18px 0 6px}
.panel ul{list-style:none;margin:0;padding:0}
.panel li{margin:3px 0}
.panel li button{border:0;padding:2px 0;min-height:0;text-align:left;color:var(--accent);background:none}
.panel li .rel{color:var(--muted);font-size:.85rem}
.panel .hint{color:var(--muted)}
.legend,.textview,.about{max-width:1180px;margin:0 auto;padding:28px 20px;border-top:1px solid var(--line)}
.legend ul{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0}
.legend li{display:flex;align-items:center;gap:8px;font-size:.9rem}
.legend i{width:12px;height:12px;border-radius:50%;display:inline-block}
.textview h3{margin:22px 0 6px;font-size:1rem}
.textview h4{margin:12px 0 4px;font-size:.9rem;color:var(--muted);font-weight:600}
.textview ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 10px}
.textview li button{border:0;padding:2px 0;min-height:0;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line)}
.textview li button:hover{color:var(--accent)}
.foot{max-width:1180px;margin:0 auto;padding:20px;color:var(--muted);font-size:.85rem;border-top:1px solid var(--line)}
@media (max-width:900px){.stage{grid-template-columns:1fr}#canvas-wrap{min-height:62vh}.panel{border-left:0;border-top:1px solid var(--line);max-height:none}.hud input{min-width:0;flex:1}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
