:root{--paper: #F7F6EF;--ink: #1F1C15;--muted: #686456;--line: #E3E0D2;--red: #D3241B;--gold: #C9A24A;--f-body: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--f-display: "LXGW WenKai TC", "Kaiti TC", "STKaiti", serif;--f-mono: "DM Mono", ui-monospace, Menlo, monospace;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:#f4ecdd;color:var(--ink);font:400 16px/1.6 var(--f-body)}#stage{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;opacity:0;transition:opacity .8s}body.ready #stage{opacity:1}.top{position:fixed;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));pointer-events:none}.top>*{pointer-events:auto}.brand img{display:block;width:40px;height:40px;filter:drop-shadow(0 2px 6px rgba(80,60,30,.25))}.title{border:0;background:none;padding:0;cursor:pointer;text-align:left;color:var(--ink);font:700 24px/1.1 var(--f-display);letter-spacing:.06em;text-shadow:0 1px 0 rgba(255,255,255,.8)}.title small{display:block;font:500 10px/1.4 var(--f-mono);letter-spacing:.2em;color:var(--muted)}.chip{margin-left:auto;border:1px solid rgba(201,162,74,.6);background:#fffcf4d9;backdrop-filter:blur(8px);border-radius:999px;padding:8px 14px;font:500 14px var(--f-body);color:var(--ink);cursor:pointer}.chip:hover{background:#fff}#info{position:fixed;z-index:2;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:min(380px,calc(100% - 32px));background:#fffcf4e6;backdrop-filter:blur(12px);border:1px solid rgba(201,162,74,.45);border-radius:18px;padding:16px 18px;box-shadow:0 12px 32px #5a461e2e;opacity:0;transform:translateY(10px);transition:opacity .5s .3s,transform .5s .3s}body.ready #info{opacity:1;transform:none}#info .kicker{font:500 11px var(--f-mono);letter-spacing:.14em;color:#b5302a}#info h2{margin:2px 0 0;font:700 26px/1.25 var(--f-display)}#info .saint{color:var(--muted);font-size:14px}#info .saint:empty{display:none}#info .desc{margin:6px 0 8px;font-size:15px}#info .hw{margin:-2px 0 8px;font-size:13px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags:empty{display:none}.tags span{font:500 11px/1 var(--f-mono);padding:5px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#fff}.row{display:flex;gap:10px;align-items:center;margin-top:12px}.nav{flex:0 0 auto;width:48px;height:48px;border-radius:14px;border:1px solid rgba(201,162,74,.6);background:#fff;font:400 28px/1 var(--f-display);color:var(--ink);cursor:pointer}.nav:disabled{opacity:.35;cursor:default}.play,.soon{flex:1;height:48px;display:grid;place-items:center;border-radius:14px;font:700 17px var(--f-body);letter-spacing:.14em;text-decoration:none}.play{background:var(--red);color:#fff;box-shadow:0 4px #9c1a13}.play:active{transform:translateY(2px);box-shadow:0 2px #9c1a13}.soon{background:#efe8da;color:var(--muted)}.row #play[hidden]+#soon[hidden]{display:block!important;flex:1;visibility:hidden}:focus-visible{outline:3px solid #E08A1E;outline-offset:2px}dialog#list{width:min(520px,calc(100% - 32px));max-height:calc(100% - 64px);border:0;border-radius:20px;padding:20px;background:#fffcf4;color:var(--ink);box-shadow:0 20px 60px #3c280a4d}dialog#list::backdrop{background:#3c2d1459;backdrop-filter:blur(3px)}dialog h2{margin:0 0 12px;font:700 24px var(--f-display)}.close{position:absolute;top:10px;right:10px;margin:0}.close button{width:40px;height:40px;border-radius:50%;border:0;background:#f1eadb;font-size:22px;cursor:pointer}ul.games{list-style:none;margin:0;padding:0;display:grid;gap:10px}ul.games a{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;border:1px solid var(--line);background:#fff;color:inherit;text-decoration:none}ul.games a:hover{border-color:var(--gold)}ul.games img{width:56px;height:70px;object-fit:cover;border-radius:8px;flex:0 0 auto}ul.games span{flex:1;min-width:0}ul.games b{display:block;font:700 18px var(--f-display)}ul.games small{color:var(--muted)}ul.games em{font-style:normal;font-weight:700;font-size:13px;color:#fff;background:var(--red);padding:6px 10px;border-radius:10px}ul.games em.off{background:#efe8da;color:var(--muted)}.fallback{display:none;padding:80px 16px 32px;max-width:560px;margin:0 auto}.fallback h1{font:700 32px var(--f-display);margin:0 0 8px}body.no3d{overflow:auto}body.no3d .fallback{display:block}body.no3d #info,body.no3d #stage,body.no3d #openList{display:none}@media(max-width:759px){#info{left:12px;right:12px;width:auto;bottom:max(12px,env(safe-area-inset-bottom));padding:14px 16px}#info h2{font-size:23px}#info .desc{font-size:14px;margin:4px 0 6px}}@media(prefers-reduced-motion:reduce){#stage,#info{transition:none}}
