:root{color-scheme:dark;--night: #0f1412;--room: #1b1712;--ivory: #f3efe4;--ivory-shade: #d9d2bf;--tile-back: #2e7d5b;--ink: #f2efe7;--ink-dim: #b9c2bc;--lamp: #e8b45a;--ok: #5fc48a;--panel: rgba(16, 22, 19, .95);--line: rgba(242, 239, 231, .14);--gutter-l: max(16px, env(safe-area-inset-left, 0px));--gutter-r: max(16px, env(safe-area-inset-right, 0px));--font-display: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-body: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--night);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6;padding:max(10px,env(safe-area-inset-top,0px)) var(--gutter-r) max(16px,env(safe-area-inset-bottom,0px)) var(--gutter-l)}[hidden]{display:none!important}a{color:var(--lamp)}.wrap{max-width:980px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.bar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}.bar h1{font-family:var(--font-display);font-weight:800;font-size:1.25rem;margin:0;letter-spacing:.04em}.bar .meta{color:var(--ink-dim);font-size:.85rem;font-variant-numeric:tabular-nums}.game{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}@media (min-width: 820px){.game{grid-template-columns:minmax(0,430px) minmax(0,1fr)}}.stage{position:relative;width:100%;max-width:430px;aspect-ratio:9 / 16;margin:0 auto;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse 70% 45% at 50% 46%,#3a2e1f 0%,var(--room) 55%,#0a0c0b 100%);box-shadow:0 20px 60px #00000080}@media (max-width: 819px){.stage{width:auto;max-width:none;border-radius:0;box-shadow:none;margin-left:calc(-1 * var(--gutter-l));margin-right:calc(-1 * var(--gutter-r))}}.stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:manipulation;cursor:pointer}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-dim);font-size:.9rem;text-align:center;padding:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:10px max(12px,env(safe-area-inset-right,0px)) 10px max(12px,env(safe-area-inset-left,0px));pointer-events:none}.hud .left{display:grid;gap:6px;justify-items:start}.hud .round{font-family:var(--font-display);font-weight:800;font-size:1.05rem;text-shadow:0 1px 3px #000}.hud .oya{font-size:.78rem;font-weight:700;color:#10130f;background:var(--lamp);border-radius:999px;padding:1px 10px}.hud .junme{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--lamp);line-height:1;text-shadow:0 2px 6px #000}.hud .junme small{font-size:.8rem;color:var(--ink);margin-left:2px}.dora-box{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;background:#0a0d0bc7;border:1px solid var(--lamp);border-radius:10px;box-shadow:0 0 14px #e8b45a59}.dora-box .tile{width:30px;flex:none}.dora-box .lbl{font-size:.7rem;color:var(--ink-dim);line-height:1.2}.dora-box .val{font-family:var(--font-display);font-weight:800;color:var(--lamp);font-size:1.05rem;line-height:1.2}.tile{position:relative;display:block;aspect-ratio:3 / 4;border-radius:12%/9%;background:linear-gradient(180deg,#fffdf6,var(--ivory) 55%,var(--ivory-shade));box-shadow:0 0 0 .5px #00000040,0 2px 0 var(--tile-back),0 3px 4px #00000073}.tile img{position:absolute;top:9%;right:11%;bottom:9%;left:11%;width:78%;height:82%;object-fit:contain}.okbar{position:absolute;left:0;right:0;bottom:max(2.5%,env(safe-area-inset-bottom,0px));display:flex;justify-content:center;align-items:center;gap:10px}.ok{font:inherit;font-weight:700;font-size:1.05rem;letter-spacing:.2em;color:#10130f;background:var(--lamp);border:0;border-radius:999px;padding:10px 44px;cursor:pointer;box-shadow:0 6px 18px #00000080}.ok:disabled{background:#e8b45a59;color:#10130f99;cursor:not-allowed}.hint{font-size:.8rem;color:var(--ink);text-shadow:0 1px 3px #000}.ok:focus-visible,.close:focus-visible,.btn:focus-visible,.hand button:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}.hand:focus-within{position:absolute;left:8px;right:8px;bottom:calc(max(2.5%,env(safe-area-inset-bottom,0px)) + 56px);z-index:2;width:auto;height:auto;margin:0;clip:auto;overflow:visible;white-space:normal;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.hand button{font:inherit;font-size:.8rem;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:6px;padding:2px 8px;cursor:pointer}.hand button[aria-pressed=true]{background:var(--lamp);color:#10130f}.answers h2:focus{outline:none}.answers{position:absolute;top:0;right:0;bottom:0;width:88%;background:var(--panel);border-left:1px solid var(--line);padding:14px 14px 18px;overflow-y:auto;transform:translate(105%);transition:transform .26s ease;display:grid;align-content:start;gap:12px}.answers.open{transform:translate(0)}@media (prefers-reduced-motion: reduce){.answers{transition:none}}.answers header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.answers h2{font-family:var(--font-display);font-size:1.1rem;margin:0}.answers .total{color:var(--ink-dim);font-size:.8rem;font-variant-numeric:tabular-nums}.close{font:inherit;font-size:.8rem;color:var(--ink-dim);background:transparent;border:1px solid var(--line);border-radius:6px;padding:2px 10px;cursor:pointer}.verdict{font-family:var(--font-display);font-weight:800;font-size:1.25rem}.verdict.good{color:var(--ok)}.verdict.bad{color:var(--lamp)}.rank{list-style:none;margin:0;padding:0;display:grid;gap:8px}.rank li{display:grid;grid-template-columns:1.6em 30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:#ffffff0a}.rank li.correct{box-shadow:inset 0 0 0 1px #5fc48a8c}.rank li.mine{background:#e8b45a1a}.rank .pos{font-family:var(--font-display);font-weight:800;color:var(--ink-dim);text-align:center;font-variant-numeric:tabular-nums}.rank .tile{width:30px}.rank .body{display:grid;gap:3px;min-width:0}.rank .line1{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;font-size:.85rem}.rank .name{font-weight:700}.rank .tag{font-size:.7rem;padding:0 6px;border-radius:4px}.rank .tag.ok{background:#5fc48a33;color:var(--ok)}.rank .tag.me{background:#e8b45a33;color:var(--lamp)}.rank .acc{font-size:.72rem;color:var(--ink-dim)}.rank .barwrap{height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}.rank .bar-fill{height:100%;background:var(--lamp);border-radius:3px}.rank li.correct .bar-fill{background:var(--ok)}.rank .num{text-align:right;font-variant-numeric:tabular-nums;font-size:.85rem;line-height:1.25}.rank .num b{display:block;font-size:1rem}.explain{font-size:.85rem;background:#ffffff0a;border-radius:8px;padding:10px 12px;display:grid;gap:4px}.explain .who{font-size:.7rem;color:var(--ink-dim)}.progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.progress>div{background:#ffffff0a;border-radius:8px;padding:8px 10px}.progress .k{font-size:.7rem;color:var(--ink-dim)}.progress .v{font-family:var(--font-display);font-weight:800;font-size:1.1rem}.progress .meter{height:4px;background:#ffffff14;border-radius:2px;margin-block:4px;overflow:hidden}.progress .meter i{display:block;height:100%;background:var(--ok)}.share{display:flex;gap:8px;flex-wrap:wrap}.btn{font:inherit;font-size:.85rem;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer;text-decoration:none;display:inline-block}.install{display:grid;gap:6px;justify-items:start;background:#e8b45a14;border:1px solid rgba(232,180,90,.35);border-radius:8px;padding:8px 10px}.install p{margin:0;font-size:.8rem}.practice{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:6px}.practice p{margin:0;font-size:.8rem;color:var(--ink-dim)}.notice{position:absolute;left:12px;right:12px;bottom:18%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.85rem;text-align:center}.notes{display:grid;gap:10px;font-size:.9rem;color:var(--ink-dim);min-width:0}.notes h2{font-family:var(--font-display);color:var(--ink);font-size:1.05rem;margin:0}.notes .cond{color:var(--ink);background:#ffffff0a;border-radius:8px;padding:10px 12px}.notes ul{margin:0;padding-left:1.2em;display:grid;gap:4px}.notes .fine{font-size:.78rem;margin:0}.links{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem}.doc{max-width:720px;margin:0 auto;display:grid;gap:10px}.doc h1{font-family:var(--font-display);font-size:1.4rem;margin:8px 0}.doc h2{font-family:var(--font-display);font-size:1.1rem;margin:12px 0 0}.doc p,.doc li{color:var(--ink-dim)}.doc table{border-collapse:collapse;width:100%;font-size:.85rem}.doc th,.doc td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.table-scroll{overflow-x:auto}
