:root{--ink:#2b3a4a;--ink-soft:#5b6b7d;--glass:#ffffff8c}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#cfe8ff;margin:0;font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}body{background:radial-gradient(120% 90% at 50% 8%,#fdfbf3 0%,#e6f2ff 38%,#cfe1f7 68%,#b8cdea 100%);transition:background .9s}body.night{background:radial-gradient(120% 90% at 50% 8%,#22305c 0%,#141c3a 42%,#0b1026 74%,#070a18 100%)}#scene{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.hud{top:max(22px, env(safe-area-inset-top));left:max(24px, env(safe-area-inset-left));pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed}.hud h1{letter-spacing:.14em;color:var(--ink);margin:0;font-size:clamp(20px,2.4vw,30px);font-weight:700;transition:color .9s}.hud .sub{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin:6px 0 0;font-size:clamp(10px,1vw,12px);transition:color .9s}body.night .hud h1{color:#e8eeff}body.night .hud .sub{color:#93a4c8}.btn{top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));background:var(--glass);-webkit-backdrop-filter:blur(10px);color:var(--ink);font:inherit;letter-spacing:.06em;cursor:pointer;border:1px solid #2b3a4a29;border-radius:999px;padding:9px 16px;font-size:13px;transition:transform .16s,background .3s,color .3s,border-color .3s;position:fixed}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn:focus-visible{outline-offset:3px;outline:2px solid #4aa3c7}body.night .btn{color:#dce6ff;background:#1e28468c;border-color:#c8dcff2e}.hint{left:50%;bottom:max(22px, env(safe-area-inset-bottom));background:var(--glass);-webkit-backdrop-filter:blur(10px);letter-spacing:.08em;color:var(--ink-soft);white-space:nowrap;pointer-events:none;border-radius:999px;margin:0;padding:8px 18px;font-size:12px;transition:opacity .6s,background .9s,color .9s;position:fixed;transform:translate(-50%)}.hint.fade{opacity:0}body.night .hint{color:#93a4c8;background:#1e284680}.loading{z-index:10;background:#f4f8fd;place-content:center;justify-items:center;gap:14px;transition:opacity .7s,visibility .7s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.loading.done{opacity:0;visibility:hidden}.loading p{letter-spacing:.2em;color:#6d7d90;margin:0;font-size:13px}.loading #pct{letter-spacing:.16em;color:#93a3b6;font-variant-numeric:tabular-nums;font-size:11px}.loading .ring{border:2px solid #4aa3c740;border-top-color:#4aa3c7;border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading .bar{background:#4aa3c729;border-radius:999px;width:180px;height:3px;overflow:hidden}.loading .bar span{background:linear-gradient(90deg,#7fb069,#4aa3c7);border-radius:999px;width:0%;height:100%;transition:width .22s;display:block}@media (max-width:560px){.hint{padding:7px 14px;font-size:11px}.btn{padding:8px 13px;font-size:12px}}
