:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;--yellow:#ffdc00;--green:#007a35}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;overscroll-behavior:none}body{min-height:100dvh;display:grid;place-items:center;background:#007631 url("assets/totem-background.jpg") center/cover fixed;color:white;overflow:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#003e2520,#00381b55);z-index:-1}.shell{width:min(100vw,calc(100dvh * 9 / 16),1080px);height:min(177.777778vw,100dvh,1920px);padding:4cqw;position:relative;container-type:inline-size;display:grid;grid-template-rows:14cqw 9cqw auto 24cqw 7cqw;align-content:space-between;gap:1.5cqw;background:linear-gradient(180deg,#006d1e0a,#003b2340);isolation:isolate}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:.3cqw solid #ffeb70;outline-offset:.4cqw}button:hover{filter:brightness(1.1)}.page-header{display:flex;align-items:center;gap:3cqw;min-height:0}.brand-logo{width:25cqw;height:13cqw;background:white;border-radius:1.8cqw;padding:1cqw 1.7cqw;box-shadow:0 .6cqw 2cqw #00331722;flex:none}.brand-logo img{width:100%;height:100%;object-fit:contain}.heading-copy{flex:1}.eyebrow{color:#ffe766;font-weight:800;font-size:1.25cqw;letter-spacing:.17cqw;margin:0 0 1cqw}.page-header h1{font-size:4.7cqw;line-height:.98;letter-spacing:-.15cqw;margin:0;font-weight:800}.page-header h1 em{font-style:normal;color:#ffdf00}.text-button{width:5.5cqw;height:5.5cqw;flex:none;border:1px solid #b3e6b566;border-radius:50%;color:#fff;background:#005a2c75;font-size:3.2cqw}.game-hud{display:grid;grid-template-columns:1.15fr 1.15fr 1fr .8fr;align-items:center;background:linear-gradient(115deg,#00572de8,#003d25ed);border:1px solid #aae77d55;border-radius:1.4cqw;box-shadow:0 .5cqw 2cqw #00351b22;min-height:0}.hud-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65cqw;border-right:1px solid #ffffff22;min-width:0}.hud-stat:last-child{border:0}.hud-label{font-size:1.4cqw;letter-spacing:.12cqw;text-transform:uppercase;color:#cae9d4;font-weight:700}.hud-stat strong{font-size:3.2cqw;line-height:1;letter-spacing:.1cqw;color:#ffdf00;font-weight:800;font-variant-numeric:tabular-nums}.hud-lives{height:3.2cqw;display:flex;align-items:center;gap:.6cqw}.hud-lives svg{width:2.9cqw;height:2.9cqw;fill:#ffdf00;stroke:#ffdf00;stroke-width:.6}.hud-lives .life-lost{fill:none;opacity:.25}.game-frame{position:relative;width:100%;aspect-ratio:28/31;min-height:0;border-radius:1.5cqw;box-shadow:0 1.6cqw 4cqw #002e2870,0 0 0 .3cqw #f8dc0066;overflow:hidden;background:#005a3955}.board-stage{position:absolute;inset:0}.game-frame canvas{display:block;width:100%;height:100%;outline:0;touch-action:none;image-rendering:pixelated}.overlay{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:#002c1c39;backdrop-filter:blur(1px)}.overlay[hidden]{display:none}.menu-card{width:72%;padding:3.5cqw;text-align:center;background:linear-gradient(150deg,#006832f7,#003b23fc);border:.18cqw solid #e6df5c;border-radius:2cqw;box-shadow:0 1.5cqw 5cqw #001f1466}.menu-sun{width:6.5cqw;height:6.5cqw;margin-bottom:1cqw}.menu-card .eyebrow{font-size:1.2cqw;letter-spacing:.2cqw}.menu-card h2{font-size:5.7cqw;line-height:1.02;letter-spacing:-.2cqw;margin:1.6cqw 0}.menu-card p:not(.eyebrow){font-size:2cqw;line-height:1.6;color:#daedda;margin:2cqw 0 3cqw}.primary-button{display:block;width:100%;padding:1.9cqw 1.4cqw;border:0;border-bottom:.5cqw solid #b29600;border-radius:1cqw;color:#07351c;background:#ffdc00;font-size:2.4cqw;font-weight:800}.primary-button:active{transform:translateY(.2cqw)}.menu-hint{font-size:1.5cqw;line-height:1.4;color:#a9d1b0;margin-top:1.7cqw}.toast{position:absolute;left:50%;bottom:3%;transform:translate(-50%,1cqw);max-width:90%;z-index:4;background:#004523ef;border:1px solid #ffdc0088;color:#ffe87c;border-radius:1cqw;padding:1.3cqw 2cqw;white-space:nowrap;opacity:0;transition:opacity .18s,transform .18s;font-size:1.8cqw;font-weight:700;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}.power-badge{position:absolute;left:50%;bottom:1%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:.7cqw;padding:.8cqw 1.1cqw;background:#004523ee;border:1px solid #ffdc00aa;border-radius:1cqw;font-size:1.7cqw;white-space:nowrap}.power-badge[hidden]{display:none}.power-badge img{width:4cqw;height:2.8cqw;object-fit:contain}.power-badge strong{color:#ffdc00}.power-track{width:7cqw;height:.55cqw;background:#002e1b;border-radius:1cqw}.power-track i{display:block;background:#ffdc00;height:100%;border-radius:1cqw}.control-bar{display:flex;align-items:center;justify-content:space-between;gap:3cqw;padding:0 2cqw}.gesture-hint{width:24cqw;text-align:left}.gesture-mark{font-size:5cqw;line-height:1;color:#ffdf00}.gesture-hint p{font-size:1.9cqw;line-height:1.2;margin:.5cqw 0 .8cqw;font-weight:700}.gesture-hint small{font-size:1.3cqw;line-height:1.4;display:block;color:#d4e9d5}.touch-controls{display:grid;grid-template-columns:repeat(3,7.3cqw);grid-template-rows:repeat(2,7.3cqw);gap:.8cqw;user-select:none}.touch-controls button:first-child{grid-column:2}.touch-controls button:nth-child(2){grid-column:1;grid-row:2}.touch-controls button:nth-child(3){grid-column:2;grid-row:2}.touch-controls button:nth-child(4){grid-column:3;grid-row:2}.touch-controls button{color:#ffe233;font-size:4cqw;background:linear-gradient(145deg,#167b3c,#045f32);border:1px solid #a3d67d77;border-bottom:.45cqw solid #014329;border-radius:1.2cqw;box-shadow:0 .7cqw 1.2cqw #00351b22}.touch-controls button:active{background:#359d40;transform:translateY(.3cqw)}.actions{display:grid;grid-template-columns:repeat(2,6.1cqw);gap:1cqw}.icon-button{width:6.1cqw;height:6.1cqw;color:#d9eddb;font-size:3.4cqw;background:#00522fa6;border:1px solid #95c67b66;border-radius:1cqw}.icon-button[aria-pressed="true"]{color:#ffe33e;border-color:#ffdc0099}.pickup-legend{display:flex;justify-content:center;align-items:center;gap:3cqw;border-top:1px solid #e3f3a72e;padding-top:1.5cqw}.pickup-legend span{display:flex;align-items:center;gap:.8cqw;font-size:1.7cqw;color:white}.pickup-legend img{width:4.2cqw;height:4.5cqw;object-fit:contain}.pickup-legend small{font-size:1.25cqw;color:#c8e5ca}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}dialog{width:min(680px,88vw);max-height:90dvh;overflow:auto;padding:32px;border:1px solid #d5dc51;border-radius:18px;color:white;background:#04562c;box-shadow:0 30px 90px #002315aa}dialog::backdrop{background:#001c13d9;backdrop-filter:blur(4px)}dialog .eyebrow{font-size:11px;letter-spacing:2px}dialog h2{font-size:32px;margin:12px 0 18px}dialog p,dialog li{font-size:16px;line-height:1.6;color:#d8ead8}dialog strong{color:#ffe66f}dialog li{margin-bottom:12px}dialog ul{padding-left:22px}.close-help{position:absolute;right:14px;top:8px;font-size:32px;background:transparent;color:white;border:0}.shortcut-note{font-size:13px!important;border-top:1px solid #ffffff22;padding-top:14px}dialog .primary-button{font-size:18px;padding:15px;border-radius:9px;border-bottom-width:4px}.shell:fullscreen{width:min(100vw,calc(100dvh * 9 / 16));height:min(177.777778vw,100dvh);max-width:none;max-height:none;background:#007631 url("assets/totem-background.jpg") center/cover}.shell::backdrop{background:#004f2b}@media(prefers-reduced-motion:reduce){.toast{transition:none}}
:root{--stage-width:min(100vw,calc(100dvh * 9 / 16),1080px)}.shell{--unit:calc(var(--stage-width) / 100);width:var(--stage-width);padding:calc(var(--unit) * 4);grid-template-rows:calc(var(--unit) * 14) calc(var(--unit) * 9) auto calc(var(--unit) * 24) calc(var(--unit) * 7);gap:calc(var(--unit) * 1.5)}.shell:fullscreen{--stage-width:min(100vw,calc(100dvh * 9 / 16));width:var(--stage-width)}

.ranking-button{align-self:stretch;background:none;color:inherit;border:0;border-right:1px solid #ffffff22}
.ranking-button .hud-label{text-decoration:underline;text-underline-offset:.2em}
#ranking-list{padding-left:1.8em}
#ranking-list li{margin-bottom:.35em}
#ranking-name-form{margin:1em 0}
#ranking-name-form label{display:block}
#ranking-name{display:block;width:100%;margin:.45em 0;padding:.6em;font:inherit}

#ranking-result{margin-top:1cqw;padding:.6cqw 1cqw;background:none;border:0;color:#fff;font-size:1.7cqw;text-decoration:underline}
