:root{--font:ui-monospace,'Hiragino Kaku Gothic ProN',monospace;--display:ui-monospace,'Hiragino Kaku Gothic ProN',monospace;--outer:#141e49;--paper:#202d59;--ink:#dbf7fb;--muted:#93bdd4;--line:#719eb277;--accent:#ffe086;--accent-ink:#273d58;--button:#2c456c;--radius:0px;--tile:#7db7d2;--board:#447b9b;--grid-line:#bfeafa44;--title-color:#e4feff;--title-tracking:-2px;--title-shadow:3px 3px 0 #344484;--cover-border:3px solid #65869e;--cover-radius:0;--button-shadow:4px 4px 0 #0e1b37;--backdrop:radial-gradient(#d0faff99 1px,transparent 2px),linear-gradient(140deg,transparent 30%,#469b9466 40%,transparent 48%);--backsize:41px 47px,auto;--danger:#ffc09f;--scrim:#0b163ce0}.title-block h1{text-transform:uppercase;font-size:clamp(35px,10vw,53px);letter-spacing:-3px;line-height:1.05}.hero{image-rendering:pixelated}.cover-shade{background:linear-gradient(180deg,#172344bb,transparent 60%)}.board{border:4px solid #c3eefa;box-shadow:4px 4px 0 #0f2841}.dialog{border-radius:0;border:4px solid #729bb0;box-shadow:7px 7px 0 #09162e}.stats{border:2px solid #719bb1;background:#192b4b}.wordmark{font-size:19px;letter-spacing:-1px}.tools button{font-size:11px}.home-links button{font-size:11px}
/* Arrival stays on the board before the result; stars and praise remain with reduced motion. */
.actors .creature{animation:none}
.goal-arrived .creature{transform-box:fill-box;transform-origin:center;animation:goal-cheer .55s ease-out both}
.celebration-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20;contain:strict}
.confetti{position:absolute;left:0;top:0;will-change:transform;pointer-events:none}
.star-confetti{clip-path:polygon(50% 0,62% 34%,100% 38%,71% 62%,82% 100%,50% 79%,18% 100%,29% 62%,0 38%,38% 34%)}
.victory-art{height:174px;position:relative;isolation:isolate;overflow:hidden;margin:-14px -6px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid var(--ink)}
.victory-rays{position:absolute;inset:-100%;z-index:-1;background:repeating-conic-gradient(from 10deg,#ffffff45 0 12deg,transparent 12deg 28deg);animation:victory-rays 16s linear infinite}
.victory-kicker{font-size:12px;letter-spacing:2px;font-weight:900;z-index:1}
.victory-friends{width:180px;height:97px;z-index:1}
.victory-creatures{width:100%;height:100%;overflow:visible}
.victory-stars{font-size:24px;line-height:1;letter-spacing:12px;margin-left:12px;color:#ffdf48;text-shadow:2px 2px 0 #362440,-1px -1px 0 #362440;animation:stars-pop .55s cubic-bezier(.18,.8,.3,1.35) both}
.victory-stars b{font-size:34px}
.result{animation:result-pop .4s cubic-bezier(.17,.8,.32,1.12) both}
.result .victory-praise{font-size:12px;font-weight:700}
.result h2{font-size:25px}
.comic-victory{background:#ff80bf;color:#331b47;box-shadow:4px 4px 0 #352042;transform:rotate(-2deg)}
.comic-victory .victory-kicker{background:#ffeb5a;border:2px solid #352042;padding:2px 13px;transform:rotate(-4deg);font-size:15px}
.victory-bounce{transform-box:fill-box;transform-origin:center bottom;animation:slime-cheer .8s ease-in-out 3}
.victory-bounce.second{animation-delay:.15s}
.pixel-victory{background:linear-gradient(#344280,#3c898a);border:3px solid #acf7ed;box-shadow:4px 4px 0 #10273d;image-rendering:pixelated}
.pixel-victory .victory-rays{background:repeating-conic-gradient(#a6ffff15 0 12deg,transparent 12deg 30deg)}
.pixel-victory .victory-kicker{color:#fff1b1;letter-spacing:1px;font-size:12px}
.penguin-cheer{animation:penguin-cheer .6s steps(3,end) 4;transform-origin:center bottom}
@keyframes goal-cheer{0%,100%{scale:1}35%{scale:1.15 .86}65%{scale:.94 1.16}}
@keyframes result-pop{from{opacity:0;translate:0 18px;scale:.92}to{opacity:1;translate:0 0;scale:1}}
@keyframes stars-pop{from{opacity:0;scale:.4}to{opacity:1;scale:1}}
@keyframes slime-cheer{0%,100%{scale:1;translate:0 0}25%{scale:1.12 .88;translate:0 0}60%{scale:.93 1.08;translate:0 -8px}}
@keyframes penguin-cheer{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -8px;rotate:3deg}}
@keyframes victory-rays{to{rotate:360deg}}
@media(max-height:610px){.victory-art{height:133px;margin-bottom:11px}.victory-friends{width:140px;height:70px}.victory-stars{font-size:19px}.victory-stars b{font-size:27px}.result h2{font-size:22px}.result .victory-praise{font-size:11px}.victory-kicker{font-size:10px}.comic-victory .victory-kicker{font-size:12px}}

/* Move ratings and clear replay navigation, in the same pixel-art palette. */
.stage-select{background:#315b7b;color:#e2fcff;border:2px solid #8fd6e4;box-shadow:3px 3px 0 #0e203a;font-weight:800;min-height:44px;padding:9px 12px}
.home-stage-select{display:block;width:100%;margin-top:10px;font-size:15px}
.home .home-links{justify-content:center;margin-top:5px}
.pause-stage-select{display:block;width:100%;margin:12px 0}
.rank-guide{min-width:146px;padding:7px 8px;background:#172b47;border:1px solid #688da5;color:#d7f1f2}
.rank-guide>small{display:block;font-size:9px;color:#add8df;letter-spacing:1px;margin-bottom:4px}
.rank-guide>div{display:grid;grid-template-columns:34px 1fr auto;gap:6px;align-items:center;font-size:10px;line-height:1.7}
.rank-guide b{font-size:10px;font-weight:500;font-variant-numeric:tabular-nums}
.rank-stars{display:inline-flex;gap:1px;font-size:12px;line-height:1}
.rank-stars .earned,.victory-stars .earned{color:#ffe086}
.rank-stars .unearned,.victory-stars .unearned{color:#86acba;text-shadow:none}
.victory-stars{display:flex;justify-content:center;gap:11px;letter-spacing:0;margin-left:0;font-size:28px}
.victory-stars>span:nth-child(2){font-size:34px}
.result .victory-art{height:139px;margin-bottom:10px}
.result .victory-friends{width:145px;height:78px}
.result .eyebrow{margin:5px 0;font-size:9px}
.result .rank-title{font-size:27px;letter-spacing:3px;margin:4px 0 6px;color:#ffe086}
.result .victory-praise{font-size:11px;margin:5px 0 10px;line-height:1.5}
.result-record{display:grid;grid-template-columns:1fr 1fr;background:#182b49;border-block:1px solid #668da0;padding:7px 0}
.result-record>div+div{border-left:1px solid #668da0}
.result-record small{display:block;color:#add8df;font-size:9px;letter-spacing:1px}
.result-record strong{font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums}
.result-record em{font-size:11px;font-style:normal;font-weight:400;margin-left:3px}
.result .next-rank-goal{font-size:11px;color:#e7dfb0;line-height:1.5;margin:8px 0 11px}
.result-actions{display:grid;gap:9px}
.result-actions button{width:100%;font-size:14px;min-height:44px;padding:9px 10px}
.result .dialog-links{margin-top:8px;justify-content:space-between}
.result .dialog-links button{padding:5px 3px;min-height:32px;font-size:11px}
.level-tile{min-height:89px;gap:5px;padding:8px 4px}
.level-tile .stage-number{font-size:21px}
.level-tile .rank-stars,.level-tile .rank-stars span{font-size:16px}
.level-tile small{font-size:10px;letter-spacing:0}
.level-tile.solved{border:2px solid #87caca;background:#233f59}
.stage-select-note{color:#add8df;font-size:11px!important}
@media(max-height:610px){
 .home-stage-select{margin-top:8px;font-size:14px;min-height:42px;padding:8px 10px}
 .home .home-links{margin-top:3px}
 .rank-guide{padding:4px 7px;min-width:144px}
 .rank-guide>small{font-size:8px;margin-bottom:1px}
 .rank-guide>div{font-size:9px;line-height:1.6;gap:5px}
 .result.dialog{padding:23px 18px 15px}
 .result .victory-art{height:104px;margin-bottom:7px}
 .result .victory-friends{height:56px;width:115px}
 .result .victory-stars{font-size:21px;gap:10px}
 .result .victory-stars>span:nth-child(2){font-size:27px}
 .result .rank-title{font-size:24px;margin:3px 0}
 .result .victory-praise{font-size:10px;margin:4px 0 7px}
 .result-record{padding:5px 0}
 .result-record strong{font-size:21px}
 .result .next-rank-goal{font-size:10px;margin:7px 0 9px}
 .result-actions{gap:8px}
 .result-actions button{font-size:13px;min-height:42px;padding:8px}
 .result .dialog-links{margin-top:7px}
}
