:root{font-family:Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;color:#e5f2f5;background:#050b16;font-synthesis:none;--accent:#70e5ed;--muted:#90a5b6;--panel:#0b1625;--line:#284153;--gold:#e7bf83}*{box-sizing:border-box}html,body,#game,#scene,#ui{width:100%;height:100%;margin:0;overflow:hidden}#game{position:relative}#scene{position:absolute;top:0;right:0;bottom:0;left:0}canvas{display:block;width:100%;height:100%;outline:none}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}button{font:inherit;color:inherit;border:1px solid var(--line);background:#102232d9;padding:12px 19px;cursor:pointer;transition:border-color .16s,background .16s,color .16s;pointer-events:auto;border-radius:3px;letter-spacing:.06em;touch-action:manipulation}button:hover,button:focus-visible{border-color:var(--accent);background:#1b3848;outline:none}button:active{transform:translateY(1px);background:#295367}button:disabled{opacity:.3;cursor:default}button span{pointer-events:none}button.primary{background:#c5f2ee;color:#102b38;border-color:#c5f2ee;font-weight:600}button.primary:hover{background:#e5ffff}button.selected{border-color:var(--accent);color:var(--accent)}button.hidden,.hidden{display:none!important}kbd{font:11px Segoe UI,sans-serif;display:inline-block;padding:3px 6px;border:1px solid #5c7c8b70;border-radius:3px;color:#c5e3e8;background:#0a1724b0;letter-spacing:.02em}h1,h2,h3,p{margin:0}h2{font-weight:500;letter-spacing:.12em}h3{font-size:14px;font-weight:500;letter-spacing:.1em}small{font-size:11px}.eyebrow{font-size:10px;letter-spacing:.23em;color:var(--accent);line-height:1.8;font-weight:600}.muted{color:var(--muted)}.hud{position:absolute;top:max(25px,env(safe-area-inset-top));left:30px;right:30px;display:flex;justify-content:space-between;align-items:flex-start}.location{border-left:2px solid var(--accent);padding-left:14px;text-shadow:0 2px 8px #000}.location h2{font-size:22px;margin:6px 0}.location>span:last-child{font-size:9px;letter-spacing:.18em;color:var(--muted)}.hud nav{display:flex;gap:9px}.hud nav button{padding:10px 14px;font-size:12px;background:#0a1828bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hud nav kbd{margin-left:6px;font-size:9px}.channels{display:flex;gap:20px;align-items:center;padding:10px 22px;background:#0a1526a0;border:1px solid #1e354960;border-radius:30px}.channels>span{font-size:22px;color:#526778;transition:color .5s;text-shadow:0 0 15px transparent}.channels small{font-size:9px;vertical-align:middle;margin-left:2px}.channels .on{color:var(--accent);text-shadow:0 0 20px var(--accent)}#footer{position:absolute;bottom:21px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#8da3b2;letter-spacing:.06em}#footer kbd{margin:0 2px}#save-state{font-size:9px;letter-spacing:.16em;color:#7295a2}#save-state:before{content:"·";color:#7ed9c0;margin-right:6px}#prompt{position:absolute;bottom:67px;left:50%;transform:translate(-50%);white-space:nowrap}#prompt button{display:flex;gap:13px;align-items:center;font-size:13px;background:#091b2aef;border-color:#679aab90;box-shadow:0 8px 40px #0007;padding:11px 20px}#prompt kbd{font-size:13px;background:#c5edea;color:#183442;border:none;padding:5px 9px}#prompt b{color:var(--accent);font-size:21px;font-weight:400;margin-left:10px}#toast{position:absolute;top:116px;left:50%;transform:translate(-50%,-8px);max-width:min(600px,85vw);text-align:center;font-size:13px;line-height:1.8;padding:12px 22px;background:#0c1d2ce8;border-top:1px solid #77bbca90;opacity:0;transition:opacity .35s,transform .35s;box-shadow:0 8px 30px #0003}#toast.visible{opacity:1;transform:translate(-50%)}#veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse,#b1fffa,#224556 60%,#070f1b);opacity:0;pointer-events:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#030a14b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;overflow-y:auto;padding:24px}.overlay.title{justify-content:flex-start;background:linear-gradient(90deg,#050d19fa 0%,#050d19e8 29%,#050d1950 65%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.title-content{padding:0 0 30px 5vw;max-width:650px}.title-content .eyebrow{font-size:10px}.eyebrow i{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:12px;box-shadow:0 0 15px #73f4f4}.title-content h1{font-size:clamp(48px,5.8vw,86px);font-weight:500;letter-spacing:.14em;margin:20px 0 12px;color:#edf8f6;line-height:1.2}.title-en{font-size:11px;letter-spacing:.43em;color:#9ec6d0}.title-copy{font-size:16px;line-height:2.1;letter-spacing:.13em;color:#9ab5c2;margin:32px 0}.title-buttons{display:grid;grid-template-columns:170px 150px;gap:10px}.title-buttons .primary{grid-column:1/-1;text-align:left;padding:16px 22px}.title-buttons .primary span{float:right;font-size:20px}.title-buttons button:not(.primary){font-size:12px}.title-note{margin-top:23px;font-size:10px;letter-spacing:.15em;color:#668795}.title-bottom{position:absolute;bottom:26px;left:6.9vw;right:34px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;color:#75949e}.panel{position:relative;background:linear-gradient(135deg,#142737fa,#0a1523fc);border:1px solid #385c6a90;max-width:660px;width:100%;padding:40px;max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 25px 100px #0008;scrollbar-width:thin;scrollbar-color:#375264 #0c1a26}.panel:before{content:"";position:absolute;top:0;left:0;width:60px;height:2px;background:var(--accent)}.panel.compact{max-width:420px}.panel h2{font-size:26px;margin:10px 0 22px}.panel>p{font-size:13px;line-height:1.9;margin:14px 0 24px}.panel .close{position:absolute;top:14px;right:16px;padding:5px 8px;border:none;background:transparent;color:#91aebc;font-size:10px}.menu-buttons{display:flex;flex-direction:column;gap:9px}.menu-buttons button{font-size:12px;padding:12px}.controls-list{margin:0 0 24px}.controls-list dt{font-size:12px;color:var(--accent);margin-top:17px;letter-spacing:.08em}.controls-list dd{font-size:12px;line-height:1.8;color:#a0b6c4;margin:6px 0}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.setting-row button{font-size:11px;min-width:92px}.topology{display:flex;align-items:center;justify-content:center;gap:20px;margin:25px 0}.space-node{display:flex;flex-direction:column;gap:8px;text-align:center;padding:20px 16px;border:1px solid #3b4e62;border-radius:3px;min-width:140px;background:#091624}.space-node.current{border-color:var(--accent);box-shadow:0 0 30px #70e5ed0b}.space-node b{font-size:32px;font-weight:300;color:var(--accent)}.space-node:nth-child(3) b{color:var(--gold)}.space-node span{font-size:12px}.space-node small{font-size:9px;color:var(--muted)}.arrows{display:flex;flex-direction:column;gap:14px;font-size:10px;white-space:nowrap;color:#a0bdc7}.connections{font-size:11px;color:#9ed8dc;line-height:2;min-height:12px;padding-left:12px;border-left:1px solid #46636c;margin:15px 0 25px}.archive h3 small{color:var(--muted);margin-left:6px}.fact-list{max-height:180px;overflow-y:auto;margin:15px 0 25px;padding-right:6px}.fact-list p{font-size:12px;line-height:1.9;color:#b3c9d3;margin-bottom:8px}.archive-bottom{display:flex;gap:10px}.archive-bottom button{font-size:11px}.hint-copy{font-size:16px!important;color:#bdd6df;min-height:80px}.panel article{padding:18px 0;border-bottom:1px solid var(--line)}.panel article small{color:var(--accent)}.panel article h3{margin:8px 0 15px}.panel article p{font-size:12px;line-height:1.9;margin:8px 0}.overlay.ending{background:linear-gradient(0deg,#050c18ef,transparent 100%);-webkit-backdrop-filter:none;backdrop-filter:none;align-items:flex-end;justify-content:flex-start;padding:50px 6vw}.ending-content{max-width:420px}.ending-content h2{font-size:32px;letter-spacing:.14em;margin:13px 0 15px}.ending-content>p{font-size:17px;line-height:1.9;color:#b4ced7;letter-spacing:.1em}.ending-line{height:1px;background:#40606b;width:70px;margin:24px 0}.ending-actions{display:flex;gap:10px}.ending-actions button{font-size:11px}.ending-content>small{display:block;letter-spacing:.2em;color:#597787;margin-top:24px}.dpad,.touch-actions{position:absolute;bottom:55px}.dpad{left:18px;display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,40px);gap:4px}.dpad button{padding:0;font-size:20px;background:#0c2538d0;border-color:#63859450;touch-action:none;-webkit-user-select:none;user-select:none}.dpad [data-dir=up]{grid-column:2}.dpad [data-dir=left]{grid-column:1;grid-row:2}.dpad [data-dir=down]{grid-column:2;grid-row:2}.dpad [data-dir=right]{grid-column:3;grid-row:2}.touch-actions{right:20px;display:flex;align-items:flex-end;gap:8px}.touch-actions button{width:42px;height:42px;padding:0;border-radius:50%;font-size:13px;background:#10283be0}.touch-actions .touch-e{width:58px;height:58px;border-color:var(--accent);color:var(--accent);font-size:20px}#touch{display:none}@media(pointer:coarse),(max-width:750px){#touch{display:block}#footer>span:first-child{display:none}#footer{justify-content:center;bottom:12px}#prompt{bottom:154px}#prompt button{font-size:11px;padding:9px 13px;gap:9px}#prompt kbd{font-size:11px}.hud{left:18px;right:18px;top:18px}.location{padding-left:10px}.location h2{font-size:18px}.location .eyebrow{font-size:8px}.location>span:last-child{font-size:7px}.hud nav button{padding:9px;font-size:10px}.hud nav kbd,.desktop-word{display:none}.channels{display:none}#toast{top:100px;font-size:11px;max-width:90vw;width:max-content}.title-content{padding-left:3vw}.title-content h1{font-size:48px}.title-copy{font-size:14px;margin:25px 0}.title-en,.title-content .eyebrow{font-size:8px}.title-buttons{grid-template-columns:145px 130px}.title-bottom{left:8vw;font-size:8px}.panel{padding:32px 24px}.panel h2{font-size:23px}.topology{gap:12px}.space-node{min-width:100px;padding:16px 9px}.arrows{font-size:8px}.overlay.ending{padding:35px 24px}.ending-content h2{font-size:27px}.ending-content>p{font-size:15px}}@media(max-height:550px){.title-content{padding-bottom:0}.title-content h1{font-size:48px;margin-top:10px}.title-copy{margin:15px 0;font-size:13px}.title-note{margin-top:12px}.title-bottom{bottom:12px}.title-buttons .primary{padding:10px 18px}.title-buttons button{padding:9px}.title-content .eyebrow{font-size:8px}.overlay.ending{padding:22px 5vw}.ending-content h2{font-size:25px}.ending-content>p{font-size:13px}.ending-line{margin:14px 0}.ending-content>small{margin-top:12px}#prompt{bottom:45px}.dpad,.touch-actions{bottom:22px}.hud{top:14px}.location h2{font-size:17px}#toast{top:85px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.title-content{min-width:0;width:min(100%,590px);margin-block:auto}.title-buttons{width:min(100%,330px);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.archive-bottom{flex-wrap:wrap}.cycle-mark{width:53px;height:53px;margin-bottom:23px;opacity:.85}.title-content .cycle-mark{display:block}@media(max-width:750px){.cycle-mark{width:43px;height:43px;margin-bottom:20px}.hud nav button{min-height:40px;min-width:40px}.dpad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px)}}@media(max-height:650px){.title-content .cycle-mark{display:none}}@media(max-width:360px){.title-content h1{font-size:clamp(30px,11vw,42px)}.title-en{letter-spacing:.2em}.title-buttons{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.title-buttons button{padding:10px 7px}.location h2{font-size:15px}.location>span:last-child{display:none}.hud{gap:8px}.hud nav{gap:5px}.hud nav button{padding:7px;min-width:36px}.dpad{left:12px;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,40px);gap:3px}.touch-actions{right:12px;gap:5px}.touch-actions button{width:36px;height:40px}.touch-actions .touch-e{width:48px;height:48px}.space-node{min-width:0;flex:1;padding:12px 4px}.space-node span{font-size:10px}.topology{gap:6px}.arrows{font-size:7px}.panel{padding:30px 16px}.panel h2{font-size:20px}#prompt button{max-width:94vw;white-space:normal}#prompt{width:max-content;max-width:94vw}.title-bottom{display:none}}@media(max-height:400px){.title-bottom,.title-content .eyebrow,.title-note{display:none}.ending-content>.eyebrow,.ending-content>small{display:none}.ending-content h2{font-size:22px;margin:0 0 10px}.ending-content>p{font-size:12px}.ending-line{margin:12px 0}.overlay.ending{padding:15px 5vw}}
