:root{--night: #1c2a3a;--ink: #241c16;--washi: #f4ecdc;--washi-dim: #e3d8c2;--shu: #c8361f;--lamp: #ffc46b;--muted: #6d6152;--display: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--body: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden;background:var(--night);color:var(--washi);font-family:var(--body);-webkit-tap-highlight-color:transparent}#world{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#world.shake{animation:shake .18s linear 2}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}#top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 10px) max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));pointer-events:none}.shrine{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:#141c269e;font-family:var(--display);font-weight:800;letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mark{color:var(--shu)}.pill{pointer-events:auto;border:1px solid rgba(244,236,220,.25);background:#141c269e;color:var(--washi);font:700 13px var(--body);padding:8px 14px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#guide{position:fixed;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 58px);width:min(92vw,460px);margin:0;padding:12px 16px;border-radius:4px;background:var(--washi);color:var(--ink);font-size:15px;line-height:1.6;font-weight:500;box-shadow:0 6px 18px #0000004d;border-left:4px solid var(--shu);pointer-events:none;text-wrap:pretty;white-space:pre-line}#guide:empty{display:none}#guide.flash{animation:flash .5s ease}@keyframes flash{0%{background:#fff7e0}to{background:var(--washi)}}#controls{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);margin:0;text-align:center;font-size:12px;color:#f4ecdcbf;letter-spacing:.06em;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6)}#dock{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);display:flex;gap:8px;padding:8px;border-radius:18px;background:#141c26b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:calc(100vw - 24px);overflow-x:auto}#dock:empty{display:none}#dock button{flex:0 0 auto;min-width:56px;height:56px;padding:0 9px;border:0;border-radius:12px;background:var(--washi);color:var(--ink);font:700 14px var(--body);letter-spacing:.02em}#dock button:active{transform:translateY(1px);background:var(--washi-dim)}#dock button:focus-visible,.sheet button:focus-visible,.pill:focus-visible{outline:3px solid var(--lamp);outline-offset:2px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px));background:#0c121a8c}.card{width:min(100%,400px);background:var(--washi);color:var(--ink);border-radius:6px;padding:26px 22px 22px;box-shadow:0 20px 50px #00000073;border-top:6px solid var(--shu)}.eyebrow{margin:0 0 6px;font-size:12px;letter-spacing:.2em;color:var(--muted)}h1{margin:0 0 14px;font:800 30px/1.2 var(--display);letter-spacing:.06em;text-wrap:balance}.lead{margin:0 0 14px;font-size:16px;line-height:1.75;white-space:pre-line}.note{margin:0 0 18px;font-size:12px;line-height:1.6;color:var(--muted)}.primary,.ghost{width:100%;height:52px;border-radius:10px;font:700 16px var(--body);letter-spacing:.06em}.primary{border:0;background:var(--shu);color:#fff}.ghost{border:1.5px solid var(--ink);background:transparent;color:var(--ink)}.row{display:grid;gap:10px}.slip{text-align:center;border-top-color:var(--ink)}.rank{margin:6px 0 12px;font:800 64px/1 var(--display);color:var(--shu);writing-mode:vertical-rl;display:inline-block;letter-spacing:.12em}.score{margin:0 0 8px;display:flex;align-items:baseline;gap:10px;font-family:var(--display)}.score strong{font-size:52px;font-weight:800;color:var(--shu);font-variant-numeric:tabular-nums}.noticeTitle{margin:0 0 6px;font-weight:700;font-size:14px}#noticeList{margin:0 0 14px;padding-left:1.2em;font-size:14px;line-height:1.7}@media (prefers-reduced-motion: reduce){#world.shake,#guide.flash{animation:none}}
