:root{--bg: #1b1420;--bg-2: #251a2b;--ink: #ffecd6;--ink-dim: rgba(255, 236, 214, .62);--amber: #f0a94c;--green: #8fbf7f;--line: rgba(255, 236, 214, .14);--card: rgba(255, 236, 214, .06);--radius: 16px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:ui-rounded,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app{height:100%}.shell{position:relative;height:100%;background:radial-gradient(120% 70% at 50% -10%,#3a2536 0%,transparent 60%),radial-gradient(90% 50% at 50% 110%,#2a1c30 0%,transparent 70%),var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen[hidden]{display:none}.home{align-items:center;justify-content:center;gap:26px;padding:24px}.home-top{text-align:center}.logo-cv{width:220px;height:150px;max-width:60vw}.home-title{margin:4px 0 2px;font-size:clamp(34px,9vw,52px);letter-spacing:.02em;font-weight:800}.home-sub{margin:0;color:var(--ink-dim);font-size:15px;max-width:30ch;text-wrap:balance}.cards{display:flex;flex-direction:column;gap:12px;width:min(420px,100%)}.card{display:flex;align-items:center;gap:14px;padding:15px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .12s ease,background .12s ease}.card:active{transform:scale(.985)}.card:hover{background:#ffecd61a}.card-ic{font-size:26px;line-height:1}.card-txt{display:flex;flex-direction:column;flex:1;min-width:0}.card-txt strong{font-size:17px}.card-sub{color:var(--ink-dim);font-size:13px}.card-arrow{color:var(--ink-dim);font-size:22px}.card-play{border-color:#f0a94c66}.home-mute{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px}.topbar{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}.topbar .title{display:flex;flex-direction:column;flex:1;min-width:0}.topbar .title strong{font-size:16px}.topbar .title span{color:var(--ink-dim);font-size:12px}.topbar-spacer{width:38px}.rgt{display:flex;gap:4px}.iconbtn{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:var(--card);color:inherit;font-size:17px;cursor:pointer}.iconbtn:active{transform:scale(.94)}.map{overflow:hidden}.worlds{overflow-y:auto;padding:14px 14px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.world{margin-bottom:22px}.world h2{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-dim)}.lvgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:9px}.lv{aspect-ratio:1;border:1px solid var(--line);border-radius:13px;background:var(--card);color:inherit;font:700 17px/1 inherit;cursor:pointer;font-variant-numeric:tabular-nums}.lv.done{border-color:#8fbf7f8c;background:#8fbf7f24;color:var(--green)}.lv.lock{opacity:.4;cursor:default;font-size:14px}.lv:not(.lock):active{transform:scale(.94)}.play{overflow:hidden}#board{flex:1 1 auto;width:100%;min-height:0;display:block;touch-action:none}.tray{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:56px;padding:8px 12px;border-top:1px solid var(--line)}.chip{min-width:46px;height:46px;padding:0 12px;border:2px solid transparent;border-radius:50%;background:#ffecd61f;color:var(--ink);font:700 18px/1 inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .1s ease,border-color .1s ease}.chip.on{border-color:var(--amber);transform:translateY(-4px) scale(1.06)}.chip:active{transform:scale(.94)}.tray-empty{color:var(--ink-dim);font-size:13px}.hint{flex:0 0 auto;margin:0;padding:6px 14px calc(10px + env(safe-area-inset-bottom));text-align:center;color:var(--ink-dim);font-size:13px;min-height:20px}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0c080e9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20}.sheet[hidden]{display:none}.sheet-card{position:relative;width:min(420px,100%);max-height:80vh;overflow-y:auto;padding:24px 22px 20px;border:1px solid var(--line);border-radius:20px;background:var(--bg-2);text-align:center}.sheet-card h2{margin:0 0 8px;font-size:24px}.sheet-sub{margin:0 0 14px;color:var(--ink-dim);font-size:14px}.sheet-p{margin:0 0 12px;text-align:left;font-size:14.5px;line-height:1.55;color:#ffecd6d9}.sheet-p.muted{color:var(--ink-dim);font-size:13px}.sheet-btns{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:6px}.sheet-x{position:absolute;top:10px;right:12px;width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:var(--ink-dim);font-size:15px;cursor:pointer}.btn{padding:11px 18px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:inherit;font:600 15px/1 inherit;cursor:pointer}.btn.primary{background:var(--amber);border-color:var(--amber);color:#20161f}.btn:active{transform:scale(.97)}.toast{position:absolute;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);padding:10px 16px;border-radius:12px;background:#140d16f0;border:1px solid var(--line);font-size:13.5px;z-index:30;pointer-events:none}.toast[hidden]{display:none}@media(min-width:700px){.home{gap:34px}.home-title{font-size:60px}.home-sub{font-size:17px}.cards{width:min(560px,100%)}.card{padding:19px 20px}.card-txt strong{font-size:19px}.lvgrid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:12px}}@media(min-width:860px){.lvgrid{grid-template-columns:repeat(12,1fr)}.worlds{padding:20px 28px calc(30px + env(safe-area-inset-bottom))}.chip{min-width:56px;height:56px;font-size:21px}.tray{min-height:68px;gap:11px}.hint{font-size:15px}.topbar{padding:11px 16px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
