
:root{
  --bg:#090b12;--panel:rgba(19,22,34,.82);--panel2:rgba(28,32,48,.92);--line:rgba(255,255,255,.13);
  --text:#f7f7fb;--muted:#a8adbd;--gold:#d9ad54;--blue:#5aa8ff;--red:#ff625c;--green:#4cd37b;
  --purple:#b279ff;--shadow:0 18px 52px rgba(0,0,0,.34);--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
body.light{--bg:#F2F2F7;--panel:rgba(255,255,255,.66);--panel2:rgba(252,252,254,.92);--line:rgba(60,60,67,.22);--text:#101114;--muted:#66707d;--gold:#a5791c;--shadow:0 18px 50px rgba(20,24,40,.16)}
body.light .toggle,body.light .btn{background:rgba(255,255,255,.72);color:var(--text)}
body.light .toggle.on{background:var(--gold);color:#fff}
body.light .btn.gold{background:var(--gold);color:#fff}
body.light select,body.light input{background:rgba(255,255,255,.85)!important;color:var(--text)!important;border-color:var(--line)!important}
body.light .fchip{background:rgba(0,0,0,.05);color:var(--muted)}
body.light .fchip:hover{background:rgba(0,0,0,.1);color:var(--text)}
body.light .fchip.on{background:var(--gold);color:#fff}
body.light #facets .facet{background:rgba(0,0,0,.035)}
body.light .facet[data-hl]:hover{background:rgba(0,0,0,.06)}
body.light #taskCore{background:rgba(165,121,28,.1);border-color:rgba(165,121,28,.45)}
body.light #navToggle,body.light #legendToggle,body.light #toolsToggle,body.light #wmClose,body.light #cubeClose{background:rgba(255,255,255,.8);color:var(--text)}
body.light #gameClock{background:rgba(255,255,255,.8)}
body.light #cubeCanvas{background:radial-gradient(circle at 50% 42%,#ffffff,#dfe4ee)}
body.light #worldModal{background:rgba(240,242,248,.55)}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);font-family:var(--font);color:var(--text)}
button,input,select{font:inherit}button{cursor:pointer}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
#fallback{position:fixed;inset:0;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 35%,#20263a,#090b12 65%);z-index:1}
#fallback .fbox{max-width:680px;border:1px solid var(--line);border-radius:24px;background:var(--panel);padding:28px;box-shadow:var(--shadow)}
#fallback h1{margin:0 0 8px;font-size:28px}#fallback p{color:var(--muted);line-height:1.55}.axisFallback{height:220px;position:relative;margin:20px 0}
.axisFallback:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(#b279ff,#5aa8ff,#24cda1);border-radius:3px}
.axisFallback span{position:absolute;left:calc(50% + 18px);font-size:13px}.axisFallback .a{top:0}.axisFallback .b{top:58px}.axisFallback .c{top:112px}.axisFallback .d{bottom:0}
#topbar{position:fixed;z-index:10;left:14px;right:64px;top:calc(env(safe-area-inset-top,0px) + 12px);display:flex;align-items:flex-start;gap:10px;pointer-events:none;transition:transform .32s cubic-bezier(.3,.9,.3,1),opacity .28s ease}
#topbar.hidden{transform:translateY(-130%);opacity:0}
#topbar.hidden *{pointer-events:none!important}
#themeToggle{position:fixed;z-index:16;right:64px;top:calc(env(safe-area-inset-top,0px) + 12px);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);color:var(--text);font-size:16px;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;transition:.2s}
#navToggle{position:fixed;z-index:16;right:14px;top:calc(env(safe-area-inset-top,0px) + 12px);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);color:var(--text);font-size:17px;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;transition:.2s}
#navToggle:hover{background:rgba(255,255,255,.14)}
.brand,.controls,.status{pointer-events:auto;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);border-radius:18px;box-shadow:var(--shadow)}
.brand{padding:12px 15px;min-width:240px}.brand b{font-size:16px;letter-spacing:.01em}.brand b span{color:var(--gold)}.brand small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px}
.controls{display:flex;flex-wrap:wrap;gap:6px;padding:8px;max-width:760px}.btn,.toggle{border:1px solid var(--line);color:var(--text);background:rgba(255,255,255,.055);border-radius:999px;padding:7px 11px;font-size:11px;font-weight:650}
.btn:hover,.toggle:hover{background:rgba(255,255,255,.11)}.toggle.on{background:var(--text);color:#11131a}.btn.primary{background:linear-gradient(105deg,#397dff,#7747d7);border-color:transparent}.btn.gold{background:linear-gradient(105deg,#b77d20,#e3b85c);color:#17120a;border-color:transparent}
.agego{display:flex;align-items:center;gap:5px;padding-left:5px}.agego label{font-size:10px;color:var(--muted)}.agego input{width:55px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);border-radius:10px;padding:6px 7px}
#rightPanel{position:fixed;z-index:12;right:14px;top:92px;bottom:14px;width:min(390px,calc(100vw - 28px));border:1px solid var(--line);background:var(--panel2);backdrop-filter:blur(20px) saturate(145%);border-radius:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;transform:translateX(calc(100% + 30px));transition:transform .28s ease}
body.split #rightPanel{right:0;top:0;bottom:0;height:100vh;max-height:100vh;width:44vw;min-width:390px;border-radius:0;border-left:1px solid var(--line)}
body.split #rightPanel.open{transform:none}
.facet[data-hl]{cursor:pointer;border-radius:10px;transition:background .15s;position:relative}
.facet[data-hl]:hover{background:rgba(255,255,255,.05)}
.facet[data-hl]:active{background:rgba(217,173,84,.14)}
.facet[data-hl] h3:after{content:' ◈';color:var(--gold);opacity:.55;font-size:.85em}
#rightPanel.open{transform:none}.drawerHead{padding:16px 17px 12px;border-bottom:1px solid var(--line)}.drawerHead .chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.chip{font-size:9.5px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}
#taskCore{margin-top:9px;padding:11px 13px;border:1px solid rgba(217,173,84,.5);border-radius:14px;background:rgba(217,173,84,.1);font-size:13px;line-height:1.55}
#taskCore b{color:var(--gold)}
#taskCore .q{color:var(--muted);font-size:11px;margin-top:4px}
#facetTabs{display:flex;gap:4px;flex-wrap:wrap;margin-top:9px}
#facetTabs .fchip{font-size:9px;padding:4px 8px}
#facets .facet{border-bottom:0;margin-bottom:6px;background:rgba(255,255,255,.03);padding:12px 13px;border-radius:14px}
.drawerHead h2{font-size:21px;line-height:1.1;margin:0}.drawerHead p{margin:6px 0 0;color:var(--muted);font-size:12px}.drawerBody{padding:8px 14px 20px;overflow:auto}.facet{padding:11px 3px;border-bottom:1px solid var(--line)}.facet:last-child{border-bottom:0}.facet h3{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 4px}.facet p{font-size:13px;line-height:1.45;margin:0}.facet em{display:block;color:var(--muted);font-size:11px;margin-top:4px;font-style:normal}
.drawerActions{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px 10px;border-top:1px solid var(--line)}
.drawerForms{display:flex;flex-wrap:wrap;gap:5px;padding:0 14px 14px}
.drawerForms .flab{width:100%;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.fchip{font-size:9.5px;font-weight:650;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--muted);cursor:pointer;transition:.15s}
.fchip:hover{background:rgba(255,255,255,.12);color:var(--text)}
.fchip.on{background:var(--gold);color:#17120a;border-color:transparent}
#cultureBox{padding:0 14px 16px}
#cultureBox h3{font-size:12.5px;margin:4px 0 8px;color:var(--gold)}
.ctx{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.45}
.ctx b{flex:0 0 66px;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:2px}
.ctx span{flex:1}
.ctx.sp b{color:#8fe0a9}.ctx.sp span{color:#bfe9cd}
#closePanel{position:absolute;right:12px;top:10px;width:31px;height:31px;border:1px solid var(--line);border-radius:50%;background:rgba(0,0,0,.25);color:var(--text)}
#legend{position:fixed;z-index:9;left:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);max-width:410px;transition:transform .3s cubic-bezier(.3,.9,.3,1),opacity .26s ease;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px);border-radius:17px;padding:10px 13px;box-shadow:var(--shadow);font-size:10.5px;line-height:1.5;color:var(--muted)}#legend b{color:var(--text)}
#legend.hidden{transform:translateY(30px);opacity:0;pointer-events:none}
#legendToggle{position:fixed;z-index:16;left:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);color:var(--text);font-size:16px;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;transition:.2s}
#legendToggle:hover{background:rgba(255,255,255,.14)}
#toolsToggle{position:fixed;z-index:17;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);color:var(--gold);font-size:19px;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;transition:.2s}
#toolsToggle:hover{background:rgba(255,255,255,.14)}
#toolsPanel{position:fixed;z-index:14;left:0;right:0;bottom:0;max-height:48vh;overflow:auto;background:var(--panel2);backdrop-filter:blur(22px) saturate(150%);border-top:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:0 -14px 40px rgba(0,0,0,.5);transform:translateY(110%);transition:transform .3s cubic-bezier(.3,.9,.3,1);padding:14px 10px calc(env(safe-area-inset-bottom,0px) + 70px)}
#toolsPanel.open{transform:none}
#toolsPanel .drawerForms{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
#toolsPanel .drawerForms:first-child{border-top:0;margin-top:0}
#cubePanel{position:fixed;z-index:13;left:0;top:0;bottom:0;width:min(30vw,420px);min-width:300px;background:var(--panel2);backdrop-filter:blur(22px) saturate(150%);border-right:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(-110%);transition:transform .3s cubic-bezier(.3,.9,.3,1);padding:18px 16px;display:flex;flex-direction:column;gap:10px}
#cubePanel.open{transform:none}
#cubeTitle{font-size:15px;font-weight:800;color:var(--gold);padding-right:36px}
#cubeCanvas{width:100%;aspect-ratio:1;border-radius:18px;background:radial-gradient(circle at 50% 42%,#1a1e2e,#0b0d14);border:1px solid var(--line);touch-action:none;cursor:grab}
#cubeHint{font-size:10.5px;color:var(--muted);line-height:1.5}
#crystalScale{display:flex;gap:4px;flex-wrap:wrap;font-size:9px;color:var(--muted)}
#crystalScale span{padding:3px 7px;border-radius:999px;border:1px solid var(--line)}
#crystalScale span.on{background:var(--gold);color:#fff;border-color:transparent}
#faceList{flex:1;overflow:auto;display:flex;flex-direction:column;gap:3px}
.fcRow{display:flex;gap:8px;padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.04);cursor:pointer;font-size:11.5px;line-height:1.4;transition:.15s}
.fcRow:hover{background:rgba(255,255,255,.1)}
.fcRow.on{background:rgba(217,173,84,.18)}
.fcRow b{flex:0 0 20px;text-align:right;opacity:.8}
.fcRow i{font-style:normal;font-weight:700}
body.light .fcRow{background:rgba(0,0,0,.04)}
body.light .fcRow:hover{background:rgba(0,0,0,.08)}
#panelToggle{position:fixed;z-index:16;right:114px;top:calc(env(safe-area-inset-top,0px) + 12px);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px) saturate(140%);color:var(--text);font-size:15px;box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;transition:.2s}
#panelToggle:hover{background:rgba(255,255,255,.14)}
body.light #panelToggle{background:rgba(255,255,255,.8)}
#cubeClose{position:absolute;right:12px;top:12px;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);cursor:pointer}
@media(max-width:900px){#cubePanel{width:min(86vw,360px)}}
#journal{position:fixed;z-index:9;right:14px;bottom:14px;width:min(390px,calc(100vw - 28px));border:1px solid var(--line);background:var(--panel);border-radius:16px;box-shadow:var(--shadow);padding:10px 13px;font-size:11px;color:var(--muted);display:none}#journal.show{display:block}#journal b{color:var(--text)}
#ethModal{position:fixed;inset:0;z-index:32;display:none;place-items:center;background:rgba(5,7,12,.62);backdrop-filter:blur(6px)}
#ethModal.open{display:grid}
#ethModal .wbox{width:min(620px,calc(100vw - 28px));max-height:min(86vh,760px);overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--panel2);box-shadow:var(--shadow);padding:20px;position:relative}
#ethModal .wi{color:var(--muted);font-size:12px;line-height:1.55}
#etClose{position:absolute;right:12px;top:10px;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);cursor:pointer}
body.light #ethModal{background:rgba(240,242,248,.55)}
#trajModal{position:fixed;inset:0;z-index:31;display:none;place-items:center;background:rgba(5,7,12,.62);backdrop-filter:blur(6px)}
#trajModal.open{display:grid}
#trajModal .wbox{width:min(680px,calc(100vw - 28px));max-height:min(86vh,760px);overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--panel2);box-shadow:var(--shadow);padding:20px;position:relative}
#trajModal .wi{color:var(--muted);font-size:12px;line-height:1.55}
#tjClose{position:absolute;right:12px;top:10px;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);cursor:pointer}
.tjrow{display:flex;gap:8px;font-size:11.5px;padding:5px 2px;border-bottom:1px solid var(--line)}
.tjrow b{flex:0 0 62px;color:var(--gold)}
body.light #trajModal{background:rgba(240,242,248,.55)}
#worldModal{position:fixed;inset:0;z-index:30;display:none;place-items:center;background:rgba(5,7,12,.62);backdrop-filter:blur(6px)}
#worldModal.open{display:grid}
#worldModal .wbox{width:min(560px,calc(100vw - 28px));max-height:min(80vh,660px);overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--panel2);box-shadow:var(--shadow);padding:20px 20px 16px;position:relative}
#worldModal h2{margin:0 0 4px;font-size:22px}
#worldModal .wi{color:var(--muted);font-size:12.5px;line-height:1.55;margin-bottom:6px}
#worldModal h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--gold);margin:14px 0 5px}
#worldModal ol{margin:0;padding:0;list-style:none}
#worldModal li{position:relative;padding:6px 4px 6px 28px;font-size:12.5px;line-height:1.45;border-bottom:1px solid var(--line)}
#worldModal li:before{content:attr(data-n);position:absolute;left:0;top:7px;width:20px;font-size:10px;color:var(--muted);font-weight:750}
#worldModal li:after{content:"";position:absolute;left:0;bottom:-1px;width:20px;height:2px;background:var(--gold);opacity:.55}
#worldModal .wexit{margin-top:13px;font-size:12px;color:#8fe0a9}
#wmClose{position:absolute;right:12px;top:10px;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);cursor:pointer}
#tooltip{position:fixed;z-index:20;display:none;pointer-events:none;background:#10131d;border:1px solid var(--line);border-radius:10px;padding:6px 9px;font-size:11px;box-shadow:var(--shadow)}
#error{display:none;position:fixed;z-index:100;left:0;right:0;bottom:0;background:#a61d27;color:#fff;padding:11px 16px;font-size:13px}
@media(max-width:860px){#topbar{display:block}.brand{display:inline-block;margin-bottom:8px}.controls{max-width:100%}#rightPanel{top:174px}.brand small{max-width:280px}#legend{max-width:calc(100vw - 28px);right:14px}.hideMobile{display:none}}
@media(max-width:520px){.brand{min-width:0;width:100%}.controls{max-height:112px;overflow:auto}.btn,.toggle{font-size:10px;padding:6px 9px}#rightPanel{top:196px}.agego label{display:none}}

.map-home{position:fixed;left:14px;top:calc(env(safe-area-inset-top,0px) + 12px);z-index:17;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:10px 14px;text-decoration:none;font-size:12px;backdrop-filter:blur(16px)}
#topbar:not(.hidden){top:calc(env(safe-area-inset-top,0px) + 60px)}
.birth-zone-hint{flex:1 0 100%;max-width:720px;color:var(--muted);font-size:10px;line-height:1.45;padding:2px 5px}
