:root{--ink:#f5f3ef;--ink-dim:#c9c4bb;--panel:#141418b8;--danger:#ff3b3b;--good:#46c46b;--accent:#ffb020;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#1c1c1f;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#game{touch-action:none;position:fixed;inset:0}#game canvas{display:block}.label{letter-spacing:.08em;color:var(--ink-dim);font-size:clamp(10px,1.4vw,13px);font-weight:700;display:block}#hud{top:calc(10px + var(--safe-t));left:calc(14px + var(--safe-l));right:calc(14px + var(--safe-r));pointer-events:none;align-items:flex-start;gap:16px;display:flex;position:absolute}.sanity,.stats{background:var(--panel);border-radius:10px;padding:6px 12px}.sanity{grid-template-columns:auto auto;align-items:center;gap:2px 8px;display:grid}.sanity .label{grid-column:1/-1}.sanity .bar{background:#00000073;border:2px solid #ffffffd9;border-radius:9px;width:clamp(130px,24vw,280px);height:clamp(12px,2vw,18px);overflow:hidden}.sanity .fill{background:var(--good);width:100%;height:100%;transition:width .12s linear,background .2s}.sanity .fill.low{background:var(--accent)}.sanity .fill.critical{background:var(--danger)}.sanity .value{font-variant-numeric:tabular-nums;font-weight:800}.stats{text-align:right;gap:clamp(12px,3vw,28px);margin-left:auto;display:flex}.stats .value{font-variant-numeric:tabular-nums;font-size:clamp(18px,3.2vw,30px);font-weight:800}.icon-btn{pointer-events:auto;background:var(--panel);width:clamp(40px,6vw,52px);height:clamp(40px,6vw,52px);color:var(--ink);cursor:pointer;border:2px solid #ffffffd9;border-radius:10px;font-size:16px}#boss-warning{top:calc(18% + var(--safe-t));border:3px solid var(--danger);text-align:center;pointer-events:none;background:#3c0000bf;border-radius:10px;padding:8px 28px;animation:.35s ease-in-out infinite alternate pulse;position:absolute;left:50%;transform:translate(-50%)}#boss-warning .title{letter-spacing:.06em;color:#ffd6d6;font-size:clamp(16px,3vw,26px);font-weight:900}#boss-warning .action{color:#fff;font-size:clamp(22px,4.6vw,40px);font-weight:900}@keyframes pulse{0%{opacity:.75}to{opacity:1}}#feedback{pointer-events:none;position:absolute;top:45%;left:18%}.float{white-space:nowrap;background:var(--panel);border-radius:8px;padding:2px 10px;font-size:clamp(14px,2.6vw,22px);font-weight:900;animation:.9s ease-out forwards rise;position:absolute}.float.bad{color:#ff6b6b}.float.good{color:#7dff9e}@keyframes rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-60px)}}#damage-flash{pointer-events:none;opacity:0;transition:opacity .25s ease-out;position:absolute;inset:0;box-shadow:inset 0 0 120px 30px #ff00008c}#damage-flash.on{opacity:1;transition:none}.screen{text-align:center;background:#0f0f12a8;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex;position:absolute;inset:0}.screen h1{letter-spacing:.02em;margin:0;font-size:clamp(32px,7vw,64px);font-weight:900}.screen h2{margin:0;font-size:clamp(26px,5vw,44px);font-weight:900}.screen .sub,.screen .hint{color:var(--ink-dim);margin:0;font-size:13px}.controls{margin:4px 0;padding:0;font-size:clamp(12px,2vw,16px);line-height:1.7;list-style:none}.controls b{min-width:54px;display:inline-block}.swatch{vertical-align:-1px;border-radius:2px;width:12px;height:12px;margin:0 6px 0 10px;display:inline-block}.swatch.low{background:#e5484d}.swatch.high{background:#8e4ec6}.swatch.item{background:#46c46b;border-radius:50%}.primary{background:var(--accent);color:#1c1c1f;letter-spacing:.04em;cursor:pointer;border:0;border-radius:12px;min-width:220px;padding:14px 28px;font-size:clamp(18px,3vw,24px);font-weight:900}.primary:focus-visible{outline-offset:3px;outline:3px solid #fff}.cause{color:#ffd0d0;margin:0;font-size:clamp(15px,2.6vw,20px)}.result{font-variant-numeric:tabular-nums;align-items:flex-end;gap:28px;margin:6px 0 8px;font-size:20px;font-weight:700;display:flex}.result .big{color:var(--accent);font-size:clamp(34px,7vw,56px);font-weight:900}#debug{left:calc(8px + var(--safe-l));color:#9f9;pointer-events:none;white-space:pre;background:#0000008c;padding:4px 8px;font:11px/1.4 ui-monospace,Consolas,monospace;position:absolute;bottom:8px}.actions{flex-direction:column;align-items:center;gap:10px;display:flex}.actions.small{flex-direction:row;gap:16px}.secondary{min-width:220px;color:var(--ink);letter-spacing:.04em;cursor:pointer;background:0 0;border:2px solid #ffffffd9;border-radius:12px;padding:10px 24px;font-size:clamp(15px,2.4vw,19px);font-weight:800}.link{color:var(--ink-dim);cursor:pointer;background:0 0;border:0;padding:6px 10px;font-size:15px;text-decoration:underline}.secondary:focus-visible,.link:focus-visible{outline-offset:3px;outline:3px solid #fff}#setup-form{flex-direction:column;align-items:center;gap:8px;display:flex}.characters{border:0;gap:10px;margin:0;padding:0;display:flex}.characters legend{text-align:center;width:100%;margin-bottom:6px}.characters input{opacity:0;pointer-events:none;position:absolute}.character{background:var(--panel);cursor:pointer;border:3px solid #ffffff59;border-radius:12px;width:clamp(92px,16vw,130px);padding:26px 8px 10px;font-weight:800;position:relative}.character:before{content:"";border-radius:3px;width:12px;height:12px;margin-left:-6px;position:absolute;top:8px;left:50%}.character.male:before{background:#2f7bf5}.character.female:before{background:#26b5d9}.character.unspecified:before{background:#f2b134}.characters input:checked+.character{border-color:var(--accent);background:#ffb0202e}.characters input:focus-visible+.character{outline-offset:2px;outline:3px solid #fff}#name-input{width:min(320px,70vw);color:var(--ink);text-align:center;-webkit-user-select:text;user-select:text;background:#00000059;border:2px solid #ffffffd9;border-radius:10px;padding:10px 12px;font-size:18px}.error{color:#ffb4b4;margin:0;font-weight:700}.share-fallback{width:min(420px,80vw);color:var(--ink);resize:none;-webkit-user-select:text;user-select:text;background:#0006;border:1px solid #fff6;border-radius:8px;padding:6px 8px;font:13px/1.4 system-ui,sans-serif}@media (height<=460px){.screen{gap:6px;padding:8px 16px}.screen h1{font-size:clamp(26px,6vw,44px)}.screen h2{font-size:clamp(20px,4vw,30px)}.controls{margin:0;font-size:13px;line-height:1.4}.screen .actions:not(.small){flex-direction:row}.primary{min-width:180px;padding:10px 22px;font-size:18px}.secondary{min-width:140px;padding:8px 18px}}.world-best{top:calc(18px + var(--safe-t));right:calc(18px + var(--safe-r));text-align:left;background:#121216e0;border:2px solid #ffffff24;border-radius:18px;align-items:center;gap:14px;padding:14px 24px 14px 16px;line-height:1.2;display:flex;position:absolute;box-shadow:0 10px 30px #00000059}.wb-trophy{width:clamp(52px,7vw,96px);color:var(--accent);flex:none}.wb-body{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.wb-label{letter-spacing:.08em;color:var(--accent);font-size:clamp(12px,1.4vw,17px);font-weight:900}.wb-score{color:var(--accent);font-variant-numeric:tabular-nums;font-size:clamp(30px,4.2vw,54px);font-weight:900;line-height:1.05}.wb-name{text-overflow:ellipsis;white-space:nowrap;max-width:11em;font-size:clamp(15px,1.8vw,22px);font-weight:800;overflow:hidden}.wb-row{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:clamp(13px,1.65vw,20px);font-weight:700;display:flex}.wb-row svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.2em;height:1.2em}.wb-note{color:var(--ink-dim);font-size:13px}.wb-name:empty,.wb-note:empty{display:none}.wb-row:has(>span:empty){display:none}@media (height<=460px){.world-best{top:calc(8px + var(--safe-t));right:calc(10px + var(--safe-r));border-radius:14px;gap:8px;padding:8px 14px 8px 10px}.wb-trophy{width:34px}.wb-score{font-size:24px}.wb-name{max-width:8em;font-size:14px}.wb-row{gap:6px;font-size:12px}}@media (height<=460px) and (width<=720px){.wb-trophy{display:none}}.new-record{color:var(--accent);margin:0;font-size:clamp(18px,3.4vw,28px);font-weight:900;animation:.4s ease-in-out infinite alternate pulse}
