*{box-sizing:border-box}html{color-scheme:dark;background:#100c17}body{margin:0;min-height:100svh;min-height:100dvh;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 30%,#342041,#100b16 70%);font-family:system-ui,sans-serif;color:#fff1d3;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ffe8a2;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}#cabinet{position:relative;width:min(100vw,56.206vh);width:min(100vw,calc((100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * .56206));height:min(177.917vw,100vh);height:min(177.917vw,100dvh);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));aspect-ratio:480/854;overflow:hidden;isolation:isolate;background:#23142e url('/carnival/assets/background.webp') center/100% 100%;box-shadow:0 0 100px #000b;container-type:inline-size}#game,#game canvas{position:absolute;inset:0;width:100%!important;height:100%!important;touch-action:none}#game canvas{display:block}.marquee{position:absolute;top:1.2%;left:12%;width:76%;text-align:center;pointer-events:none;color:#ffcf87;text-shadow:0 2px 2px #160a06,0 0 18px #e97f3140}.marquee>span{font:700 2.7cqw Georgia,serif;letter-spacing:.32em}.marquee h1{font:900 6.4cqw/.95 Georgia,serif;font-variant:small-caps;letter-spacing:-.03em;margin:1.2cqw 0}.lights{font-size:2cqw;color:#ffa849;letter-spacing:.25em}.toolbar{position:absolute;top:8.7%;left:3.5%;right:3.5%;display:flex;justify-content:space-between;z-index:11}.toolbar>div{display:flex;gap:1.4cqw}.toolbar button,.toolbar a{border:1px solid #8b5936;background:linear-gradient(#382035,#211423);box-shadow:inset 0 1px #bd87534d,0 3px 5px #0007;border-radius:9px;min-width:36px;min-height:36px;width:8.7cqw;height:8.7cqw;text-decoration:none;display:grid;place-items:center;font-size:5cqw;color:#f7d598}.toolbar #language{font-size:3cqw;font-weight:800}.toolbar #sound[aria-pressed=false]{opacity:.55}.hud{position:absolute;top:14.8%;left:9%;right:9%;display:grid;grid-template-columns:1fr .85fr 1fr;gap:2cqw;pointer-events:none}.hud>div{border:1px solid #a57546;border-radius:7px;background:linear-gradient(115deg,#35212aed,#1b1423f2);text-align:center;padding:1.3cqw 0;box-shadow:0 3px 8px #0007,inset 0 0 0 2px #e1aa5d16}.hud small{display:block;font-size:2.4cqw;letter-spacing:.13em;color:#d9c1a1}.hud strong{display:block;font:700 6cqw/1.1 Georgia,serif;color:#ffe1a5}.hud strong span{font:400 3cqw system-ui;color:#aa937f}.hud .timer strong{color:#fff2d6}.timer.urgent strong{color:#ff8c71}.status{position:absolute;top:22.4%;left:10%;right:10%;display:flex;justify-content:space-between;align-items:center;pointer-events:none;text-shadow:0 2px 4px #000;font-size:3cqw;font-weight:800}#hearts{color:#ffa17b;letter-spacing:.17em;font-size:4cqw}#combo{color:#ffe4a4}.counter{position:absolute;bottom:0;height:13.5%;width:100%;pointer-events:none;background:linear-gradient(0deg,#180e16 0%,#251526bb 28%,transparent 80%)}.counter p{position:absolute;bottom:1.5%;width:100%;text-align:center;font:700 2.4cqw Georgia,serif;letter-spacing:.12em;color:#edc895}#gun{position:absolute;bottom:19%;left:38%;width:24%;height:100%;background:url('/carnival/assets/blaster.webp') center bottom/contain no-repeat;transform-origin:50% 100%;transition:transform .08s}#gun.shot{transform:translateY(5px) scale(.96)}#level-toast{position:absolute;top:26%;width:100%;text-align:center;font:800 5cqw Georgia;color:#ffe4aa;text-shadow:0 2px 8px #000;pointer-events:none;opacity:0;transition:opacity .3s}#level-toast.show{opacity:1}#flash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px #fa3a3a;opacity:0;transition:opacity .18s}#flash.hit{opacity:.9}.overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:linear-gradient(#100b1730,#120919ba);padding:23% 6% 5%;backdrop-filter:blur(2px)}.overlay[hidden]{display:none}.card{width:100%;max-height:100%;overflow:auto;text-align:center;border:1px solid #b98750;border-radius:16px;padding:5cqw;background:linear-gradient(145deg,#332030f5,#160f22fa);box-shadow:0 14px 45px #0009,inset 0 0 0 4px #f2c26e0a}.eyebrow{font-size:2.3cqw;letter-spacing:.22em;font-weight:700;color:#e7b66e}.card h2{font:700 7.2cqw/1.08 Georgia,serif;margin:2cqw 0;color:#ffe6b8}.card p{font-size:3cqw;line-height:1.5;color:#d9cadc;margin:2cqw 0 3cqw}.rule{padding:1.6cqw 0 2.7cqw;border-top:1px solid #d2a36224}.portraits{height:15cqw;display:flex;justify-content:center;gap:1cqw}.portraits img{width:17%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 6px #0006)}.friendly .portraits img{width:22%}.rule strong{display:block;font-size:2.8cqw;letter-spacing:.1em;color:#ffbf8f}.friendly strong{color:#b6efd5}.rule small{display:block;font-size:2.6cqw;line-height:1.5;color:#c9b9d0;margin-top:1cqw}.primary{display:block;width:100%;border:1px solid #ffe6a7;border-radius:9px;background:linear-gradient(#ffd183,#d78b40);color:#321b20;font-weight:900;letter-spacing:.08em;font-size:3.8cqw;padding:3cqw;min-height:44px;box-shadow:0 4px 0 #6b3d32,0 5px 25px #ffb94a22}.primary:hover{filter:brightness(1.09)}.secondary{display:block;width:100%;border:1px solid #7d5b76;background:#352439;border-radius:9px;font-size:3.3cqw;padding:2.8cqw;margin-top:3cqw;min-height:44px}.secondary[hidden]{display:none}.card .hint{font-size:2.5cqw;margin-top:4cqw}.card a{color:#d6bba0;font-size:2.8cqw;display:inline-block;padding:2cqw;min-height:30px}.card .best{color:#e8bd79;font-size:2.8cqw}.result-score{font:700 15cqw Georgia;color:#ffdb91;margin:3cqw}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:2cqw;margin-bottom:3cqw}.result-grid div{padding:2.4cqw;background:#ffffff06;border:1px solid #d2a36224;border-radius:8px}.result-grid strong{display:block;font-size:5cqw;color:#ffdc9b}.result-grid small{font-size:2.5cqw;color:#cdbdd1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(prefers-reduced-motion:reduce){*{transition:none!important}.overlay{backdrop-filter:none}}@media(max-height:470px) and (orientation:landscape){body{overflow:auto}#cabinet{min-width:260px;min-height:463px}}
/* Readable controls even on compact phones. */
.toolbar button,.toolbar a{min-width:40px;min-height:40px}.hud{top:16%}.hud small{font-size:max(10px,2.4cqw)}.status{top:24%}.card p{font-size:max(12px,3cqw)}.rule small{font-size:max(11px,2.6cqw)}.rule strong{font-size:max(11px,2.8cqw)}.card .hint{font-size:max(10px,2.5cqw)}.card .best,.card a{font-size:max(11px,2.8cqw)}.eyebrow{font-size:max(9px,2.3cqw)}

.toolbar #music[aria-pressed=false]{opacity:.5}.toolbar #sound{font-size:3.2cqw}.toolbar>div{gap:1cqw}

.mode-label{display:block;font-size:12px;margin:10px 0}.mode-label select{margin-left:8px;padding:9px;border:1px solid #ac8151;border-radius:6px;background:#281b30;color:#ffe2a9;max-width:85%}#ranking{font-size:12px;padding:8px;min-height:36px}#ranking-panel{max-height:180px;overflow:auto;text-align:left;font-size:12px}.ranking-row{padding:8px 0;border-bottom:1px solid #88664455}#rank-status{color:#ffcf8d;font-size:12px}#mode-select[hidden]{display:none}.card{scrollbar-width:thin}
