@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@600;700;800;900&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#292533;background:#fff8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 85% 2%,#ffe0e9,transparent 34%),#fff8f7}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #4e36b3;outline-offset:3px}.shell{max-width:1140px;margin:auto;padding:16px 24px 24px}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.brand{display:flex;align-items:center;gap:10px;font:900 1.25rem Nunito,system-ui;letter-spacing:-.04em}.brand small{display:block;font:800 .57rem 'DM Sans',sans-serif;letter-spacing:.16em;color:#e85d7f;margin-top:-4px}.brand-icon{display:grid;place-items:center;background:#ff8ba5;border:2px solid #292533;border-radius:11px;width:39px;height:39px;box-shadow:3px 3px 0 #292533;color:white;font-size:1.75rem}.game-name{font:900 .82rem 'DM Sans',sans-serif;letter-spacing:.17em;color:#9d5870}.game-frame{background:#fff;border:2px solid #292533;border-radius:23px;box-shadow:7px 7px 0 #292533;overflow:hidden}.hud{display:grid;grid-template-columns:repeat(4,1fr);background:#fffefc;border-bottom:2px solid #292533}.hud-item{padding:11px 18px;border-right:1px solid #eadfe6;display:flex;align-items:baseline;gap:8px}.hud-item:last-child{border-right:0}.hud-label{font-size:.65rem;font-weight:800;letter-spacing:.11em;color:#9b5871}.hud-item strong{font:900 1.17rem Nunito,system-ui;white-space:nowrap}.hud-item #hearts{color:#e55476;letter-spacing:.03em}.canvas-wrap{position:relative;background:#f9e2ec}canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;touch-action:manipulation}.overlay{position:absolute;inset:0;background:#29253384;display:grid;place-items:center;padding:18px}.overlay.hidden{display:none}.overlay-card{background:#fffaf8;border:3px solid #292533;border-radius:22px;box-shadow:7px 7px 0 #292533;padding:clamp(18px,3vw,34px);width:min(480px,100%);text-align:center}.pill{display:inline-block;background:#ffdd85;border:2px solid #292533;border-radius:50px;padding:6px 12px;font-weight:900;letter-spacing:.1em;font-size:.65rem}.overlay h1{font:900 clamp(1.5rem,3vw,2.45rem)/1.08 Nunito,system-ui;letter-spacing:-.05em;margin:17px 0 9px}.overlay p{font-size:.95rem;line-height:1.45;margin:0}.start-button{display:block;margin:20px auto 13px;padding:12px 25px;border:2px solid #292533;border-radius:13px;box-shadow:4px 4px 0 #292533;background:#ff8ba5;color:#292533;font-weight:900;font-size:1rem}.start-button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 #292533}.overlay .instructions{font-size:.75rem;color:#655d67}.control-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;background:#fffefc}.control-note{display:grid;gap:2px}.control-note strong{font:900 1rem Nunito}.control-note span{font-size:.8rem;color:#6f6671}.controls{display:flex;gap:10px}.controls button{border:2px solid #292533;border-radius:12px;box-shadow:3px 3px 0 #292533;background:#ffe08a;color:#292533;padding:9px 14px;min-width:96px;font-weight:900;font-size:1.1rem;white-space:nowrap}.controls button:first-child{background:#ffb5c6}.controls button span{font-size:.83rem}.controls button small{font-size:.66rem;font-weight:700}.controls button:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 #292533}.controls button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.footnote{text-align:center;color:#82717d;font-size:.77rem;margin:18px 0 0}.footnote a{color:#a64e6e;font-weight:800}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:720px){.shell{padding:10px 10px 20px}.topline{margin-bottom:10px}.game-name{font-size:.68rem}.hud{grid-template-columns:repeat(3,1fr)}.hud-item{padding:8px 10px;display:grid;gap:0}.hud-item.best{display:none}.hud-label{font-size:.58rem}.hud-item strong{font-size:1rem}.game-frame{border-radius:16px;box-shadow:4px 4px 0 #292533}.overlay{padding:8px}.overlay-card{padding:12px;border-width:2px;box-shadow:3px 3px 0 #292533}.overlay h1{font-size:1.2rem;margin:6px 0}.overlay p{font-size:.72rem;line-height:1.25}.overlay .instructions{display:none}.pill{font-size:.53rem;padding:3px 7px}.start-button{margin:9px auto 1px;padding:7px 16px;font-size:.82rem}.control-bar{padding:9px;flex-wrap:wrap}.control-note{flex:1;min-width:130px}.control-note span{font-size:.72rem}.controls{margin-left:auto}.controls button{min-width:76px;padding:7px;font-size:.9rem}.controls button span{font-size:.72rem}.controls button small{display:none}}
@media(max-width:480px){.overlay-card{width:min(95%,315px)}.canvas-wrap{min-height:0}.control-note{width:100%}.controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.controls button{padding:10px}.hud-item strong{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.buddy-picker{display:flex;align-items:center;gap:12px;padding:8px 15px;background:#fff7ed;border-bottom:2px solid #292533}.portrait{display:grid;place-items:center;width:50px;height:50px;flex:none;border:2px solid #292533;border-radius:12px;overflow:hidden;font-size:1.6rem}.portrait img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.buddy-choice{display:grid;gap:3px;min-width:175px}.buddy-choice label,.collect-brief span{font-size:.65rem;font-weight:900;letter-spacing:.1em;color:#9b5871}.buddy-choice select{max-width:250px;width:100%;border:2px solid #292533;border-radius:8px;background:#fff;padding:5px 8px;color:#292533;font:800 .9rem 'DM Sans',sans-serif}.buddy-choice select:focus-visible{outline:3px solid #4e36b3;outline-offset:2px}.buddy-choice select:disabled{opacity:.65}.collect-brief{display:grid;gap:2px;border-left:1px solid #eadfe6;padding-left:15px}.collect-brief strong{font:900 .95rem Nunito,system-ui}.cue{display:flex;align-items:baseline;gap:12px;padding:10px 16px;background:#fff7df;border-top:2px solid #292533;min-height:48px}.cue.noise{background:#f0e9ff}.cue-kind{font-size:.63rem;font-weight:900;letter-spacing:.1em;color:#805061;white-space:nowrap}.cue strong{font:900 .98rem Nunito,system-ui;white-space:nowrap}.cue>span:last-child{font-size:.81rem;color:#5e5660}.control-bar{border-top:1px solid #eadfe6}
@media(max-width:720px){.buddy-picker{padding:6px 9px;gap:8px}.portrait{width:42px;height:42px}.buddy-choice{min-width:0;flex:1}.buddy-choice select{font-size:.8rem}.collect-brief{padding-left:8px;min-width:90px}.collect-brief strong{font-size:.78rem}.cue{padding:7px 9px;gap:6px;flex-wrap:wrap;min-height:48px}.cue-kind{font-size:.55rem}.cue strong{font-size:.8rem}.cue>span:last-child{font-size:.7rem;flex-basis:100%}}
@media(max-width:380px){.collect-brief{min-width:76px}.collect-brief strong{font-size:.7rem}.buddy-choice label{font-size:.54rem}}
.ability-brief{display:grid;gap:1px;margin-left:auto;border-left:1px solid #eadfe6;padding-left:15px}.ability-brief span{font-size:.65rem;font-weight:900;letter-spacing:.1em;color:#9b5871}.ability-brief strong{font:900 .9rem Nunito,system-ui}.ability-brief small{font-size:.72rem;color:#655d67}
@media(max-width:720px){.buddy-picker{flex-wrap:wrap}.ability-brief{flex-basis:100%;margin-left:50px;border-left:0;padding-left:0;display:flex;align-items:baseline;gap:7px}.ability-brief span{font-size:.55rem}.ability-brief strong{font-size:.75rem}.ability-brief small{font-size:.66rem}}
.special-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 16px;background:#e9f6f5;border-bottom:2px solid #292533}.special-strip>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px}.special-strip span{font-size:.63rem;letter-spacing:.08em;color:#476876;font-weight:900}.special-strip strong{font:900 .94rem Nunito,system-ui}.special-strip small{font-size:.73rem;color:#536471}.charge{display:flex;align-items:center;gap:4px;white-space:nowrap}.charge i{display:block;width:17px;height:17px;background:#fff;border:2px solid #292533;border-radius:50%}.charge.ready i{background:#6ed8b8}.charge.spent i{background:#a5acb2}.charge b{font:900 .7rem Nunito,system-ui;margin-left:4px}.cue.power{background:#ddf7ec}.controls button:last-child{background:#b7edda;min-width:124px}.controls button:last-child:not(:disabled){animation:button-glow 1.25s ease-in-out infinite alternate}@keyframes button-glow{to{box-shadow:3px 3px 0 #292533,0 0 0 5px #b7edda88}}
@media(max-width:720px){.special-strip{padding:6px 9px}.special-strip small{flex-basis:100%;font-size:.65rem}.controls{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-left:0}.controls button,.controls button:last-child{min-width:0;padding:8px 4px}.controls button span{display:block;font-size:.65rem}.controls button small{display:block;font-size:.55rem}}
@media(max-width:480px){.special-strip{align-items:flex-start}.special-strip>div:first-child{gap:3px}.special-strip span{font-size:.53rem}.special-strip strong{font-size:.8rem}.charge i{width:13px;height:13px}.controls button{font-size:.85rem}.controls button span{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){.controls button:last-child:not(:disabled){animation:none}}
.shot-brief{display:grid;gap:1px;margin-left:auto;border-left:1px solid #9cb9b6;padding-left:14px;white-space:nowrap}.shot-brief span{font-size:.62rem}.shot-brief strong{font:900 .86rem Nunito,system-ui}.shot-brief b{font-size:.68rem;color:#476876}.controls button:nth-child(2){background:#c9dcfa}.controls button:nth-child(3){background:#ffe08a}
@media(max-width:720px){.special-strip{flex-wrap:wrap}.shot-brief{margin-left:0;padding-left:7px}.special-strip>div:first-child{flex:1;min-width:160px}.controls{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:480px){.shot-brief{flex-basis:100%;margin-left:0;border-left:0;border-top:1px solid #9cb9b6;padding:4px 0 0;display:flex;gap:9px;align-items:baseline}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
.action-prompt{position:absolute;z-index:1;top:13px;right:13px;width:min(260px,43%);padding:10px 12px;background:#fffaf4e8;border:3px solid #292533;border-radius:15px;box-shadow:4px 4px 0 #292533;pointer-events:none;display:none;gap:3px}.action-prompt.visible{display:grid}.action-prompt strong{font:900 clamp(1rem,2.4vw,1.55rem)/1 Nunito,system-ui;letter-spacing:-.02em}.action-prompt span{font-size:.72rem;line-height:1.16;font-weight:800;color:#665a63}.action-prompt.ready{background:#ffe48e;box-shadow:4px 4px 0 #292533,0 0 0 5px #ffe48e8c}.power-prompt{top:96px;border-color:#822f66;box-shadow:4px 4px 0 #822f66}.power-prompt.ready{background:#f9c2dc;box-shadow:4px 4px 0 #822f66,0 0 0 5px #f9c2dc88}.power-prompt strong{color:#5b1c49}
@media(max-width:720px){.action-prompt{top:6px;right:6px;width:46%;padding:5px 7px;border-width:2px;border-radius:8px;box-shadow:2px 2px 0 #292533}.action-prompt strong{font-size:clamp(.64rem,3vw,.95rem)}.action-prompt span{font-size:.58rem;line-height:1.05}.power-prompt{top:62px;box-shadow:2px 2px 0 #822f66}}
@media(max-width:480px){.action-prompt{width:49%}.action-prompt span{font-size:.52rem}.power-prompt{top:52px}}
.play-legend{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:2px solid #292533}.play-legend>div{display:flex;align-items:center;gap:9px;padding:9px 15px}.play-legend>div+div{border-left:2px solid #292533}.legend-good{background:#fff1b9}.legend-bad{background:#e2cff8}.legend-symbol{flex:none;display:grid;place-items:center;width:31px;height:31px;border:2px solid #292533;border-radius:50%;background:#fff;font:900 1.15rem Nunito,system-ui}.legend-good .legend-symbol{color:#a76400}.legend-bad .legend-symbol{color:#7043a6}.play-legend strong{font:900 .95rem Nunito,system-ui;white-space:nowrap}.play-legend div>span:last-child{font-size:.75rem;font-weight:700;line-height:1.2}
@media(max-width:720px){.play-legend>div{padding:6px 8px;gap:5px;flex-wrap:wrap}.legend-symbol{width:23px;height:23px;font-size:.85rem}.play-legend strong{font-size:.73rem}.play-legend div>span:last-child{flex-basis:100%;font-size:.65rem}}
@media(max-width:380px){.play-legend strong{font-size:.65rem}.play-legend div>span:last-child{font-size:.59rem}}
@media(max-width:720px){.play-legend strong{white-space:normal;line-height:1.05}}
