*{box-sizing:border-box;margin:0;padding:0}html,body{color:#ddd;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#000;width:100%;height:100%;font-family:Zen Old Mincho,Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif;overflow:hidden}canvas#c{cursor:none;width:100vw;height:100dvh;display:block}.hidden{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}#objective{letter-spacing:.08em;text-shadow:0 0 6px #000,0 0 2px #000;font-size:17px;transition:opacity .6s;position:absolute;top:28px;left:34px}#objective.flash{animation:1.6s flash}@keyframes flash{0%{opacity:0}30%{opacity:1;color:#fff}to{opacity:1}}#crosshair{background:#fff9;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}#prompt{letter-spacing:.1em;text-shadow:0 0 6px #000;white-space:nowrap;font-size:15px;position:absolute;top:calc(50% + 26px);left:50%;transform:translate(-50%)}#subtitle{text-align:center;letter-spacing:.06em;color:#eee;text-shadow:0 0 8px #000,0 0 3px #000,0 0 2px #000;width:min(900px,90vw);font-size:21px;line-height:1.7;position:absolute;bottom:9vh;left:50%;transform:translate(-50%)}#subtitle .who{color:#d7b36a;margin-right:.6em}#subtitle .who.ghost{color:#c05050}#hint{opacity:.85;text-shadow:0 0 6px #000;font-size:14px;position:absolute;bottom:30px;right:34px}#paper{background:#000000b8;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}#paper .close{color:#999;letter-spacing:.1em;font-size:13px}.sheet{color:#2a1d12;box-shadow:0 10px 40px #000}.book{background:radial-gradient(circle at 80% 20%,#78501e40,#0000 30%),radial-gradient(circle at 15% 85%,#5a3c144d,#0000 25%),linear-gradient(#d9ccab,#cbbb94);width:min(760px,92vw);padding:36px 42px 44px}.book h2{text-align:center;letter-spacing:.4em;margin-bottom:20px;font-size:26px;font-weight:700}.book table{border-collapse:collapse;width:100%;font-size:17px}.book th{letter-spacing:.2em;border-bottom:2px solid #5a4028;padding:6px;font-size:13px;font-weight:400}.book td{text-align:center;border-bottom:1px solid #5a402880;padding:10px 6px;font-family:Yuji Syuku,serif}.book td.date{font-size:14px}.book tr.fresh td{color:#6a0c0c}.memo{color:#3a1010;white-space:pre-wrap;background:linear-gradient(#e8e3d2,#d9d2bb);width:min(420px,88vw);padding:34px 38px;font-family:Yuji Syuku,serif;font-size:19px;line-height:1.8;transform:rotate(-1.5deg)}#cards{background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#cards p{letter-spacing:.18em;text-align:center;opacity:0;white-space:pre-line;padding:0 8vw;font-size:22px;line-height:2;transition:opacity 1.2s}#cards p.on{opacity:1}#title{cursor:pointer;background:radial-gradient(#0000 30%,#000000b3);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.title-inner{text-align:center}#title .kicker{letter-spacing:.8em;color:#b9a58a;margin-bottom:10px;font-size:14px}#title h1,#end h1{letter-spacing:.22em;color:#e8e2d8;text-shadow:0 0 20px #000000e6,3px 0 #a0141480;font-size:clamp(48px,9vw,110px);font-weight:400;animation:5s infinite jitter}@keyframes jitter{0%,92%,to{transform:none}93%{transform:translate(3px,-1px)skew(4deg)}95%{transform:translate(-2px,1px)}}#title .start{letter-spacing:.3em;margin-top:28px;font-size:18px;animation:2.4s infinite blink}@keyframes blink{50%{opacity:.3}}#title .controls{color:#aaa;justify-content:center;gap:22px;margin-top:40px;font-size:13px;list-style:none;display:flex}#title .controls b{color:#ddd;border:1px solid #666;margin-right:4px;padding:1px 6px;font-weight:400}#title .note{color:#777;letter-spacing:.2em;margin-top:18px;font-size:12px}#title .ios-tip{color:#b9a58a;letter-spacing:.08em;margin-top:10px;padding:0 16px;font-size:12px}#pause,#gameover,#end{cursor:pointer;letter-spacing:.2em;background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}#gameover{background:#000}#gameover .big{color:#b03030;font-size:30px}#end{background:#000}.small{font-size:15px}.dim{color:#777;margin-top:30px}.sheet{max-height:82vh;overflow:auto}#touch{pointer-events:auto;touch-action:none;display:none;position:absolute;inset:0}body.touch #touch{display:block}#stick-base{background:#00000026;border:2px solid #ffffff38;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;display:none;position:absolute}#stick-knob{background:#ffffff47;border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%}#stick-knob.run{background:#c846468c}.tbtn{color:#ccc;font:inherit;letter-spacing:.1em;touch-action:none;background:#00000059;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}#btn-act{width:78px;height:78px;right:calc(22px + env(safe-area-inset-right));bottom:calc(26px + env(safe-area-inset-bottom));font-size:15px}#btn-act.ready{color:#fff;border-color:#d7b36a;box-shadow:0 0 16px #d7b36a8c}#btn-light{width:58px;height:58px;right:calc(116px + env(safe-area-inset-right));bottom:calc(34px + env(safe-area-inset-bottom));font-size:12px}#btn-light.on{color:#fff;border-color:#f0e6c8}#btn-pause{width:42px;height:42px;top:calc(12px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));border-radius:8px;font-size:14px}body.touch #hint{bottom:auto;left:50%;right:auto;top:calc(12px + env(safe-area-inset-top));text-align:center;width:60vw;transform:translate(-50%)}body.touch #objective{left:calc(16px + env(safe-area-inset-left));top:calc(14px + env(safe-area-inset-top))}body.touch #prompt{top:calc(50% + 20px)}@media (width<=900px),(height<=500px){#objective{font-size:13px}#subtitle{width:62vw;font-size:15px;bottom:5vh}#prompt{font-size:13px}#hint{font-size:12px}.book{padding:16px 18px 20px}.book h2{margin-bottom:8px;font-size:17px}.book table{font-size:13px}.book th{padding:3px;font-size:10px}.book td{padding:4px 3px}.book td.date{font-size:10px}.memo{padding:16px 22px;font-size:14px;line-height:1.55}#cards p{font-size:16px}#title .kicker{font-size:11px}#title .start{margin-top:14px;font-size:15px}#title .controls{flex-wrap:wrap;gap:8px 14px;margin-top:18px;padding:0 16px;font-size:11px}#title .note{margin-top:10px}#gameover .big{font-size:20px}}
