@font-face { font-family: "Fusion Pixel"; src: url("./vendor/fusion-pixel-font/fusion-pixel-12px-proportional-zh_hans.otf.woff2") format("woff2"); font-display: swap; font-weight: 400 700; }
:root {
  color-scheme: light; --void:#fff8f1; --ink:#5c4661; --muted:#8c7891; --dim:#ad9caf;
  --pink:#ff7f9f; --pink-deep:#e95683; --peach:#ffad85; --lemon:#ffd867; --mint:#69d9b0; --sky:#76c7f2; --grape:#b49aee; --green:#43bf91; --red:#ee6d7a; --cream:#fffaf1;
  --panel:rgba(255,255,255,.88); --line:rgba(133,94,132,.15); --pixel-font:"Fusion Pixel","Microsoft YaHei UI",sans-serif; --body-font:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif; --mono:"Cascadia Mono",Consolas,monospace;
  --shadow:0 14px 36px rgba(155,102,133,.13),0 3px 0 rgba(255,255,255,.8) inset;
  --berry-filter:hue-rotate(318deg) saturate(1.28) brightness(1.08) drop-shadow(0 4px 0 rgba(100,55,83,.14));
  --mint-filter:hue-rotate(72deg) saturate(.9) brightness(1.1) drop-shadow(0 4px 0 rgba(64,119,98,.14));
  --sky-filter:hue-rotate(150deg) saturate(1.05) brightness(1.1) drop-shadow(0 4px 0 rgba(63,105,139,.14));
  --lemon-filter:sepia(.22) saturate(1.55) brightness(1.16) drop-shadow(0 4px 0 rgba(139,112,45,.14));
  --grape-filter:hue-rotate(222deg) saturate(1.12) brightness(1.06) drop-shadow(0 4px 0 rgba(92,72,132,.14));
  --cocoa-filter:sepia(.58) saturate(.76) brightness(.96) drop-shadow(0 4px 0 rgba(91,66,57,.14));
  --avatar-filter:var(--berry-filter);
}
body[data-palette="berry"]{--avatar-filter:var(--berry-filter)} body[data-palette="mint"]{--avatar-filter:var(--mint-filter)} body[data-palette="sky"]{--avatar-filter:var(--sky-filter)}
body[data-palette="lemon"]{--avatar-filter:var(--lemon-filter)} body[data-palette="grape"]{--avatar-filter:var(--grape-filter)} body[data-palette="cocoa"]{--avatar-filter:var(--cocoa-filter)}
body[data-stage="morning"]{--stage-a:#fff4df;--stage-b:#ffe4ee;--stage-c:#dff6ff;--stage-accent:#ff8aa7;--board-paper:#fffdf8;--board-grid:rgba(198,145,164,.22)}
body[data-stage="garden"]{--stage-a:#edfff4;--stage-b:#dff6ef;--stage-c:#fff0d7;--stage-accent:#59cba5;--board-paper:#fbfffa;--board-grid:rgba(91,169,143,.22)}
body[data-stage="festival"]{--stage-a:#f5edff;--stage-b:#ffe7f1;--stage-c:#e5f4ff;--stage-accent:#9d83e5;--board-paper:#fffcff;--board-grid:rgba(142,114,184,.22)}
*{box-sizing:border-box} [hidden]{display:none!important} html,body{min-height:100%;margin:0} html{background:var(--void)}
body{min-height:100svh;overflow-x:hidden;color:var(--ink);background:var(--void);font-family:var(--body-font);-webkit-tap-highlight-color:transparent} body.modal-open{overflow:hidden}
button,input{font:inherit} button{touch-action:manipulation} button:focus-visible,input:focus-visible{outline:3px solid rgba(255,127,159,.42);outline-offset:3px} ::selection{color:#6c3d59;background:#ffe0ea}
.world{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:linear-gradient(145deg,var(--stage-a),var(--stage-b) 48%,var(--stage-c));transition:background 1s ease}
.sky-wash{position:absolute;inset:0;background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.9),transparent 37%),linear-gradient(180deg,rgba(255,255,255,.22),transparent 58%)}
.sun-disc{position:absolute;top:6%;right:9%;width:116px;height:116px;border-radius:50%;background:rgba(255,238,174,.65);box-shadow:0 0 0 18px rgba(255,245,198,.2),0 0 70px rgba(255,217,109,.35)}
.cloud{position:absolute;width:140px;height:42px;border-radius:40px;background:rgba(255,255,255,.55)} .cloud i{position:absolute;bottom:0;border-radius:50%;background:inherit}
.cloud i:nth-child(1){left:17px;width:58px;height:58px}.cloud i:nth-child(2){left:58px;width:72px;height:72px}.cloud i:nth-child(3){right:7px;width:42px;height:42px}
.cloud-a{left:4%;top:13%;animation:cloud-drift 12s ease-in-out infinite alternate}.cloud-b{right:17%;top:27%;transform:scale(.65);opacity:.7;animation:cloud-drift 15s ease-in-out -4s infinite alternate-reverse}
.rainbow-ribbon{position:absolute;left:-8%;top:39%;width:42%;height:260px;border:20px solid rgba(255,157,180,.11);border-right:0;border-bottom:0;border-radius:100% 0 0 0;transform:rotate(-9deg)}
.rainbow-ribbon i{position:absolute;left:-20px;right:0;border:13px solid transparent;border-right:0;border-bottom:0;border-radius:100% 0 0 0}.rainbow-ribbon i:nth-child(1){top:15px;height:225px;border-top-color:rgba(255,218,112,.14);border-left-color:rgba(255,218,112,.14)}.rainbow-ribbon i:nth-child(2){top:35px;height:205px;border-top-color:rgba(105,217,176,.12);border-left-color:rgba(105,217,176,.12)}.rainbow-ribbon i:nth-child(3){top:55px;height:185px;border-top-color:rgba(118,199,242,.12);border-left-color:rgba(118,199,242,.12)}
.tablecloth{position:absolute;left:-5%;right:-5%;bottom:-8%;height:32%;opacity:.45;transform:perspective(500px) rotateX(50deg);transform-origin:bottom;background-color:rgba(255,255,255,.4);background-image:linear-gradient(45deg,rgba(255,150,177,.12) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,150,177,.12) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,150,177,.12) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,150,177,.12) 75%);background-size:58px 58px;background-position:0 0,0 29px,29px -29px,-29px 0}
.world-sticker{position:absolute;width:86px;height:86px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.7);border-radius:26px;background:rgba(255,255,255,.26);box-shadow:0 10px 30px rgba(132,89,120,.08)}.world-sticker img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;opacity:.65}.sticker-a{left:5%;bottom:14%;transform:rotate(-12deg)}.sticker-b{right:5%;bottom:11%;transform:rotate(13deg)}.sticker-c{right:2%;top:47%;transform:rotate(-8deg) scale(.75)}
.sparkle-field i{position:absolute;width:8px;height:8px;opacity:.45;animation:soft-twinkle 3.4s ease-in-out infinite}.sparkle-field i::before,.sparkle-field i::after{content:"";position:absolute;background:#fff;border-radius:3px}.sparkle-field i::before{left:3px;width:2px;height:8px}.sparkle-field i::after{top:3px;width:8px;height:2px}.sparkle-field i:nth-child(1){left:14%;top:26%}.sparkle-field i:nth-child(2){left:24%;top:8%;animation-delay:.8s}.sparkle-field i:nth-child(3){right:25%;top:12%;animation-delay:1.3s}.sparkle-field i:nth-child(4){right:13%;top:35%;animation-delay:2.1s}.sparkle-field i:nth-child(5){left:9%;top:58%;animation-delay:1.7s}.sparkle-field i:nth-child(6){right:27%;bottom:12%;animation-delay:.4s}
.game-shell{position:relative;z-index:2;width:min(1200px,calc(100% - 36px));min-height:100svh;margin:0 auto;padding:clamp(14px,2.2vh,24px) 0 13px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(10px,1.5vh,16px)}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 5px}.brand-lockup{display:flex;align-items:center;gap:14px;min-width:0}.brand-bolt{position:relative;width:52px;height:56px;display:grid;place-items:center;flex:0 0 auto;color:#fff;border:2px solid rgba(255,255,255,.7);border-radius:18px;background:linear-gradient(145deg,var(--pink),var(--peach));box-shadow:0 7px 0 rgba(216,100,129,.12),0 10px 25px rgba(225,112,141,.18);transform:rotate(-4deg)}.brand-bolt svg{width:27px;height:33px}.brand-bolt svg path{fill:#fffaf0}.brand-bolt::after{content:"♡";position:absolute;right:-7px;top:-9px;color:var(--pink-deep);font-size:20px;transform:rotate(12deg)}
.kicker{margin:0 0 5px;color:var(--pink-deep);font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.13em}.kicker span{color:var(--grape)}h1{display:flex;align-items:baseline;gap:13px;margin:0;color:#69455f;font-family:var(--pixel-font);font-size:clamp(34px,4.7vh,54px);line-height:.95;letter-spacing:.04em;text-shadow:0 3px 0 #fff}.title-en{color:#ab8ea9;font-family:var(--mono);font-size:10px;letter-spacing:.16em;font-weight:600}
.mission-chip{display:flex;align-items:center;gap:10px;padding:7px 11px 7px 8px;border:2px solid rgba(255,255,255,.75);border-radius:20px;color:var(--ink);background:rgba(255,255,255,.62);box-shadow:var(--shadow);cursor:pointer;text-align:left;transition:transform .16s,background .16s}.mission-chip:hover{transform:translateY(-2px);background:rgba(255,255,255,.9)}.mission-chip b,.mission-chip small{display:block}.mission-chip b{color:#78516d;font-size:12px}.mission-chip small{margin-top:3px;color:var(--muted);font-family:var(--mono);font-size:8px;letter-spacing:.06em}.mission-chip em{margin-left:5px;color:var(--pink-deep);font-size:9px;font-style:normal;white-space:nowrap}
.player-avatar,.chef-mini,.operator-sprite,.chef-sprite,.result-chef,.avatar-preview{display:block;flex:0 0 auto;aspect-ratio:1;background-image:url("./vendor/kenney-platformer/alien-sheet.png");background-repeat:no-repeat;background-size:200% 100%;background-position:0 0;image-rendering:pixelated;animation:character-cadence .72s steps(1,end) infinite;filter:var(--avatar-filter)}.chef-mini{width:42px;height:42px}
.hud{display:grid;grid-template-columns:1.2fr 1fr 1fr .9fr;gap:9px;min-width:0}.hud-card{position:relative;min-width:0;height:76px;padding:10px 14px 9px;overflow:hidden;border:2px solid rgba(255,255,255,.76);border-radius:18px;background:var(--panel);box-shadow:0 7px 20px rgba(140,93,120,.08)}.hud-card::after{content:"";position:absolute;right:-18px;bottom:-23px;width:70px;height:70px;border-radius:50%;background:var(--card-tint,rgba(255,127,159,.08))}.hud-card:nth-child(2){--card-tint:rgba(180,154,238,.11)}.hud-card:nth-child(3){--card-tint:rgba(255,216,103,.16)}.hud-card:nth-child(4){--card-tint:rgba(105,217,176,.12)}
.hud-label{position:relative;z-index:1;display:block;color:var(--muted);font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.08em}.hud-card strong{position:relative;z-index:1;display:block;margin-top:4px;color:#70536a;font-family:var(--mono);font-size:clamp(20px,2.4vh,27px);line-height:1;letter-spacing:.04em}.hud-card strong em{margin-left:3px;color:var(--dim);font-size:12px;font-style:normal}.hud-note{position:relative;z-index:1;display:block;margin-top:5px;color:var(--muted);font-size:9px;white-space:nowrap}.score-card strong{color:var(--pink-deep)}.time-card strong{color:#d7972b}.chain-card strong{color:#35a982}.chain-x{color:var(--dim);font-size:12px}.time-track{position:absolute;z-index:2;right:13px;bottom:8px;left:14px;height:4px;overflow:hidden;border-radius:5px;background:#f0e6df}.time-track i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lemon),var(--peach));transform-origin:left;transition:transform .25s linear}.time-card.is-low strong{color:var(--red);animation:low-time 1s ease-in-out infinite}.time-card.is-low .time-track i{background:var(--red)}.score-card.pulse strong{animation:number-hit .35s ease-out}
.console{min-height:0;display:grid;grid-template-columns:210px minmax(400px,570px) 210px;align-items:center;justify-content:center;gap:13px}.side-panel{position:relative;min-width:0;align-self:stretch;padding:15px 14px;overflow:hidden;border:2px solid rgba(255,255,255,.75);border-radius:23px;background:var(--panel);box-shadow:var(--shadow)}.panel-index{color:var(--pink-deep);font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.12em}
.order-head{margin-top:18px;padding-bottom:13px;border-bottom:2px dashed rgba(255,127,159,.17)}.order-head span,.order-head small{display:block;color:var(--muted);font-size:9px}.order-head strong{display:block;margin:5px 0;color:#714f67;font-family:var(--pixel-font);font-size:18px;letter-spacing:.03em}.order-head small{color:#a3879e;font-size:8px;line-height:1.5}
.recipe-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}.recipe-step{position:relative;min-width:0;padding:9px 5px 8px;text-align:center;border:2px solid rgba(172,135,161,.11);border-radius:14px;background:rgba(255,249,244,.8);transition:transform .2s,border-color .2s,background .2s}.recipe-step img{display:block;width:32px;height:32px;margin:0 auto 4px;object-fit:contain;image-rendering:pixelated}.recipe-step span{display:block;color:#86677d;font-size:10px;font-weight:700;white-space:nowrap}.recipe-step span b{margin-right:3px;color:#c1a9ba;font-family:var(--mono);font-size:7px}.recipe-step small{display:none}.recipe-step.is-active{border-color:rgba(255,127,159,.65);background:#fff0f5;transform:translateY(-2px) rotate(-1deg);box-shadow:0 5px 0 rgba(255,127,159,.08)}.recipe-step.is-active span,.recipe-step.is-active b{color:var(--pink-deep)}.recipe-step.is-done{border-color:rgba(67,191,145,.45);background:#effbf5}.recipe-step.is-done span,.recipe-step.is-done b{color:#309c77}.recipe-step.is-done::after{content:"✓";position:absolute;right:5px;top:3px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;color:#fff;background:var(--green);font:10px var(--mono)}.recipe-step.just-done{animation:recipe-stamp .55s ease-out}
.objective{margin-top:19px}.objective ol{margin:9px 0 0;padding:0;list-style:none}.objective li{display:flex;gap:8px;padding:7px 0;border-top:1px solid rgba(150,111,142,.08);color:#b09aaa;font-size:10px;line-height:1.4}.objective li b{color:#cbb9c5;font-family:var(--mono);font-size:8px}.objective li.is-active{color:#765a70}.objective li.is-active b{color:var(--pink-deep)}.ticket-strip{display:flex;align-items:center;gap:7px;margin-top:15px;padding:7px 4px;border-top:2px dashed rgba(180,154,238,.18);color:#b09aaf;font:7px var(--mono);letter-spacing:.08em}.ticket-strip b{color:#9a7cab;font-size:12px}.ticket-strip i{flex:1;height:2px;background:repeating-linear-gradient(90deg,#dbcddd 0 3px,transparent 3px 6px)}
.terminal{position:relative;width:min(100%,clamp(350px,calc(100svh - 280px),570px));min-width:0;align-self:center;justify-self:center;padding:11px;border:2px solid rgba(255,255,255,.86);border-radius:26px;background:rgba(255,255,255,.83);box-shadow:0 20px 50px rgba(133,87,116,.16),0 4px 0 rgba(222,182,198,.16)}.terminal-head,.terminal-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 6px 9px}.terminal-foot{padding:9px 6px 3px}.terminal-id{display:flex;align-items:center;gap:7px;min-width:0}.terminal-id b{color:#775c70;font-size:11px;letter-spacing:.05em}.terminal-id small{color:#b09bac;font-family:var(--mono);font-size:7px;letter-spacing:.08em}.led{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(105,217,176,.14)}.circuit-id{color:#b09bac;font-family:var(--mono);font-size:8px;white-space:nowrap}.circuit-id strong{margin-left:6px;color:var(--pink-deep);font-size:16px}.circuit-id span{margin-left:5px}
.board-bay{position:relative;z-index:2;padding:clamp(28px,4vh,42px);overflow:hidden;border:2px solid rgba(196,153,179,.13);border-radius:21px;background-color:var(--board-paper);background-image:linear-gradient(rgba(255,255,255,.52),rgba(255,255,255,.52)),linear-gradient(var(--board-grid) 1px,transparent 1px),linear-gradient(90deg,var(--board-grid) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;box-shadow:inset 0 0 0 5px rgba(255,255,255,.55);transition:background-color .6s}.board-bay::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.3),transparent 58%)}.board-halo{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:var(--stage-accent);opacity:.07;filter:blur(26px)}.bay-label{position:absolute;z-index:6;color:#b398aa;font-family:var(--mono);font-size:7px;font-weight:600;letter-spacing:.12em;pointer-events:none}.bay-label.top{top:12px;left:16px}.bay-label.bottom{right:16px;bottom:11px}.bay-label span{color:var(--stage-accent)}
.corner{position:absolute;z-index:6;width:16px;height:16px;border-color:var(--stage-accent);opacity:.55;pointer-events:none}.corner-tl{left:11px;top:11px;border-left:3px solid;border-top:3px solid;border-radius:6px 0 0}.corner-tr{right:11px;top:11px;border-right:3px solid;border-top:3px solid;border-radius:0 6px 0 0}.corner-bl{left:11px;bottom:11px;border-left:3px solid;border-bottom:3px solid;border-radius:0 0 0 6px}.corner-br{right:11px;bottom:11px;border-right:3px solid;border-bottom:3px solid;border-radius:0 0 6px}
tsunagi-board,#board{position:relative;z-index:2;display:block;width:100%!important;max-width:none!important;min-height:0;--tsp-surface:transparent;--tsp-rule:rgba(157,116,148,.14);--tsp-ink:#6f5268;--tsp-muted:#ac96a8;--tsp-accent:#ff7f9f;--tsp-good:#43bf91;--tsu-ink:#6f5268;--tsu-font:var(--pixel-font)}#board .tsp-controls,#board .tsp-chips,#board .tsp-progress,#board .tsp-messages,#board .tsp-says,#board .tsp-pad{display:none!important}#board svg{display:block;width:100%;height:auto;filter:drop-shadow(0 5px 6px rgba(120,78,109,.08));--tsu-paper:#fffdf8!important;--tsu-paper-deep:#fff7ee!important;--tsu-frame:#f3dce5!important;--tsu-grid:rgba(175,129,156,.18)!important;--tsu-ink:#6f5268!important;--tsu-coordinate:#bca7b7!important}#board .tsunagi-play,#board .tsunagi-board{background:transparent!important}#board .tsu-marble circle,#board .tsu-marble path{opacity:0!important}#board .tsu-marble{cursor:grab}#board .tsu-lines,#board .tsu-beads,#board .tsu-washes{opacity:0}
#board .tsu-marble.is-waiting{cursor:not-allowed}
#board .tsu-marble.is-active{cursor:grab}#board .tsu-line.is-complete-pop{animation:line-joy .55s ease-out}
.food-canvas,.fx-canvas,.confetti-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.food-canvas{z-index:3;image-rendering:pixelated}.fx-canvas{z-index:5;image-rendering:pixelated}.confetti-layer{z-index:7;overflow:hidden}.food-tooltip{position:absolute;z-index:7;left:0;top:0;max-width:90%;padding:6px 9px;border:2px solid rgba(255,255,255,.85);border-radius:10px;color:#79566d;background:rgba(255,248,251,.96);box-shadow:0 6px 15px rgba(110,70,98,.12);font-size:9px;white-space:nowrap;transform:translate(-50%,-100%);opacity:0;transition:opacity .12s;pointer-events:none}.food-tooltip.show{opacity:1}.power-flash{position:absolute;z-index:4;inset:0;pointer-events:none;opacity:0;background:#fff4c9}.power-flash.fire{animation:flash .38s ease-out both}
.pair-celebration{position:absolute;z-index:8;left:50%;top:18px;min-width:160px;padding:9px 18px;border:2px solid #fff;border-radius:16px;text-align:center;color:#755367;background:linear-gradient(135deg,#fff7c9,#ffe4ef);box-shadow:0 10px 24px rgba(183,98,133,.18);transform:translate(-50%,-12px) scale(.8) rotate(-3deg);opacity:0;pointer-events:none}.pair-celebration strong,.pair-celebration span{display:block}.pair-celebration strong{font-family:var(--pixel-font);font-size:15px}.pair-celebration span{margin-top:3px;color:var(--pink-deep);font:7px var(--mono);letter-spacing:.16em}.pair-celebration.show{animation:pair-pop 1.15s ease-out both}.confetti-piece{position:absolute;width:8px;height:8px;border-radius:2px;background:var(--confetti-color);animation:confetti-fly .9s cubic-bezier(.15,.65,.3,1) forwards}.confetti-piece.is-circle{border-radius:50%}
.progress-copy{display:flex;align-items:center;gap:11px;color:#987e91;font-family:var(--mono);font-size:8px}.pips{display:flex;gap:5px}.pips i{width:20px;height:5px;border-radius:5px;background:#eadfe5}.pips i.live{background:linear-gradient(90deg,var(--pink),var(--peach))}.timer-mode{color:#b29cab;font-size:8px;text-align:right}.timer-mode.running{color:#8e7588}
.operator-card{display:grid;grid-template-columns:50px 1fr auto;gap:8px;align-items:center;margin-top:15px;padding:8px;border:2px solid rgba(255,127,159,.12);border-radius:16px;background:#fff7fa}.portrait-frame{width:50px;height:50px;display:grid;place-items:center;overflow:hidden;border-radius:13px;background:linear-gradient(145deg,#ffe4ee,#fff5d8)}.operator-sprite{width:48px;height:48px;animation-duration:.95s}.operator-card b,.operator-card small{display:block}.operator-card b{color:#77566c;font-size:12px}.operator-card small{margin-top:3px;color:var(--muted);font-size:8px}.operator-card em{color:var(--pink-deep);font-size:8px;font-style:normal;writing-mode:vertical-rl}
.mascot-dock{display:flex;align-items:center;gap:8px;min-height:78px;margin-top:11px;padding:8px;border-radius:17px;background:linear-gradient(135deg,#fff4d9,#f2ebff)}.mascot-dock b,.mascot-dock small{display:block}.mascot-dock b{color:#7b637b;font-size:10px;line-height:1.45}.mascot-dock small{margin-top:4px;color:#a08b9e;font-size:8px;line-height:1.4}.stage-chef{position:relative;width:58px;height:58px;flex:0 0 auto;transform-origin:50% 100%}.chef-sprite{width:58px;height:58px;animation-duration:.85s}.stage-chef .emote{position:absolute;z-index:2;right:-4px;top:-4px;display:grid;place-items:center;width:21px;height:21px;border:2px solid #fff;border-radius:50%;color:#fff;background:var(--pink);font:12px var(--mono)}.stage-chef.is-happy{animation:chef-cheer .45s ease-in-out infinite}.stage-chef.is-happy .emote{background:var(--green);animation:emote-pop .45s ease-in-out infinite}.stage-chef.is-sad{opacity:.7}
.battery-card{display:flex;align-items:center;gap:8px;width:100%;margin-top:13px;padding:10px 8px;border:2px solid rgba(105,217,176,.22);border-radius:15px;color:var(--ink);text-align:left;cursor:pointer;background:#f2fff8;transition:transform .16s,border-color .16s}.battery-card:hover{transform:translateY(-2px);border-color:rgba(67,191,145,.5)}.battery-card:disabled{opacity:.4;cursor:default;transform:none}.battery-icon{width:31px;height:31px;display:grid;place-items:center}.battery-icon img{width:31px;height:31px;object-fit:contain;image-rendering:pixelated}.battery-copy{min-width:0;flex:1}.battery-copy b,.battery-copy small{display:block}.battery-copy b{font-size:11px}.battery-copy small{margin-top:3px;color:#8a9d91;font-family:var(--mono);font-size:7px}.battery-count{color:#35a982;font-family:var(--mono);font-size:12px}.combo-readout{margin-top:17px;color:#9b8495;font-size:9px}.combo-meter{display:flex;gap:4px;margin:8px 0 5px}.combo-meter i{width:20px;height:5px;border-radius:4px;background:#e9e2e6}.combo-meter i.live{background:var(--mint)}.combo-readout strong{color:#35a982;font-family:var(--mono);font-size:15px;font-weight:500}.operator-note{margin-top:15px;padding-top:12px;border-top:2px dashed rgba(180,154,238,.14)}.operator-note p{margin:8px 0 0;color:#9c8597;font-size:9px;line-height:1.7}.food-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:13px}.food-strip img{display:block;width:100%;aspect-ratio:1;padding:4px;border-radius:9px;background:#fff7ef;object-fit:contain;image-rendering:pixelated}
.result-panel{position:absolute;z-index:12;left:50%;top:50%;width:min(86%,410px);padding:0 24px 19px;overflow:hidden;border:3px solid #fff;border-radius:24px;text-align:left;color:var(--ink);background:linear-gradient(145deg,#fffdf8,#fff0f6);box-shadow:0 25px 60px rgba(123,71,105,.25);transform:translate(-50%,-47%) scale(.92);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s}.result-panel.ready{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.result-ticket{display:flex;justify-content:space-between;gap:10px;margin:0 -24px 15px;padding:9px 23px;border-bottom:2px dashed rgba(255,127,159,.2);color:var(--pink-deep);background:#fff1f5;font:8px var(--mono);letter-spacing:.08em}.result-ticket b{color:#8d6d82;font-family:var(--body-font);letter-spacing:0}.result-cast{display:flex;align-items:center;gap:14px}.result-chef{width:76px;height:76px;animation-duration:.55s}.result-cast h2{margin:4px 0;color:#714b64;font-family:var(--pixel-font);font-size:27px}.result-cast small{color:#a08195;font-size:9px}.result-kicker{display:block;color:var(--green);font-family:var(--mono);font-size:8px;letter-spacing:.1em}.result-scoreline{margin:11px 0 0!important;color:#8e7485;font-family:var(--body-font);font-size:13px;text-align:right}.result-scoreline span{color:var(--pink-deep);font-family:var(--mono);font-size:26px;font-weight:700}.result-rule{width:55px;height:4px;margin:11px 0 9px;border-radius:4px;background:linear-gradient(90deg,var(--pink),var(--lemon),var(--mint),var(--sky))}.result-panel>small{display:block;color:#9a8393;font-size:9px;line-height:1.6}.result-rating{display:flex;align-items:center;gap:3px;margin-top:10px}.result-rating i{color:#f5bd42;font-size:15px;font-style:normal}.result-rating span{margin-left:5px;color:#b07958;font-size:9px}.result-panel button{display:block;width:100%;margin-top:14px;padding:12px 18px;border:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--pink),#ff9b88);box-shadow:0 6px 0 rgba(210,91,123,.14);font-size:12px;font-weight:700;cursor:pointer}.result-panel button:hover{filter:brightness(1.04);transform:translateY(-1px)}.result-panel button span{margin-left:6px}.fail-panel{background:linear-gradient(145deg,#fffdf8,#fff3e9)}.fail-panel .result-kicker,.fail-panel p{color:#c27e74}.fail-cast{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.fail-stamp{padding:7px 10px;transform:rotate(-5deg);border:2px solid #efa096;border-radius:10px;color:#d47770;font-size:10px}.result-chef.is-sad{opacity:.65;filter:grayscale(.35) var(--avatar-filter)}
.dock{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:8px 5px 0}.control-hint{display:flex;align-items:center;gap:10px}.mouse-icon{position:relative;width:24px;height:30px;border:2px solid #c4a7b9;border-radius:12px}.mouse-icon::after{content:"";position:absolute;left:9px;top:4px;width:3px;height:7px;border-radius:3px;background:var(--pink)}.mouse-icon i{position:absolute;right:-8px;bottom:1px;width:8px;height:2px;background:var(--pink)}.control-hint b,.control-hint small{display:block}.control-hint b{color:#8c6e82;font-size:10px}.control-hint small{margin-top:3px;color:#b099aa;font-size:8px}.level-track{text-align:center}.level-track>span{display:block;margin-bottom:6px;color:#a4889c;font-family:var(--mono);font-size:8px;letter-spacing:.07em}.level-track>div{display:flex;gap:4px;justify-content:center}.level-track i{width:22px;height:5px;border-radius:4px;background:rgba(255,255,255,.65)}.level-track i.live{background:var(--stage-accent)}.dock-actions{display:flex;justify-content:flex-end;gap:8px}.dock-actions button{padding:7px 10px;border:2px solid rgba(255,255,255,.75);border-radius:11px;color:#977c8e;background:rgba(255,255,255,.55);font-family:var(--mono);font-size:8px;cursor:pointer}.dock-actions button:hover{color:var(--pink-deep);background:#fff}.dock-actions span{color:var(--green)}.battery-compact{display:none!important}.battery-compact b{color:#35a982}
.toast{position:fixed;z-index:40;left:50%;bottom:34px;max-width:calc(100% - 28px);padding:10px 16px;border:2px solid #fff;border-radius:14px;color:#76546b;background:rgba(255,247,251,.97);box-shadow:0 12px 30px rgba(116,67,98,.18);font-size:10px;white-space:nowrap;transform:translate(-50%,10px);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.toast.show{opacity:1;transform:translate(-50%,0)}
.profile-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(103,70,96,.24);backdrop-filter:blur(12px)}.profile-card{position:relative;width:min(590px,100%);max-height:94svh;overflow:auto;padding:28px;border:3px solid #fff;border-radius:30px;color:var(--ink);background:linear-gradient(145deg,#fffdf7,#fff0f6 60%,#eef9ff);box-shadow:0 30px 80px rgba(94,57,85,.25);text-align:center}.profile-close{position:absolute;right:15px;top:13px;width:34px;height:34px;border:0;border-radius:50%;color:#a38296;background:rgba(255,255,255,.7);font-size:22px;cursor:pointer}.profile-eyebrow{color:var(--pink-deep);font:9px var(--mono);letter-spacing:.18em}.profile-card h2{margin:8px 0 7px;color:#714c65;font-family:var(--pixel-font);font-size:28px}.profile-card>p{max-width:460px;margin:0 auto 18px;color:#9c8294;font-size:11px;line-height:1.65}.avatar-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.avatar-option{min-width:0;padding:9px 4px 8px;border:2px solid rgba(168,133,157,.12);border-radius:16px;color:#8f7084;background:rgba(255,255,255,.68);cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.avatar-option:hover{transform:translateY(-3px)}.avatar-option.is-selected{border-color:var(--pink);background:#fff0f5;box-shadow:0 5px 0 rgba(255,127,159,.1)}.avatar-option[data-palette="berry"]{--option-filter:var(--berry-filter)}.avatar-option[data-palette="mint"]{--option-filter:var(--mint-filter)}.avatar-option[data-palette="sky"]{--option-filter:var(--sky-filter)}.avatar-option[data-palette="lemon"]{--option-filter:var(--lemon-filter)}.avatar-option[data-palette="grape"]{--option-filter:var(--grape-filter)}.avatar-option[data-palette="cocoa"]{--option-filter:var(--cocoa-filter)}.avatar-preview{width:54px;height:54px;margin:0 auto 4px;filter:var(--option-filter)}.avatar-option b,.avatar-option small{display:block}.avatar-option b{font-size:11px}.avatar-option small{margin-top:3px;color:#b098aa;font:7px var(--mono)}.name-field{display:block;margin-top:18px;text-align:left}.name-field>span{display:block;margin-bottom:7px;color:#896a7e;font-size:11px;font-weight:700}.name-field input{width:100%;padding:12px 14px;border:2px solid rgba(255,127,159,.22);border-radius:14px;color:#725267;background:rgba(255,255,255,.82);font-size:15px}.name-field small{display:block;margin-top:6px;color:#b098aa;font-size:8px;text-align:right}.profile-save{width:100%;margin-top:16px;padding:13px 18px;border:0;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--pink),#ff9d86);box-shadow:0 7px 0 rgba(212,91,124,.12);font-size:13px;font-weight:700;cursor:pointer}.profile-save span{margin-left:8px}.asset-note{display:block;margin-top:13px;color:#b7a1b0;font-size:8px}
@keyframes character-cadence{0%,49%{background-position:0 0}50%,100%{background-position:100% 0}}@keyframes cloud-drift{to{transform:translateX(22px)}}@keyframes soft-twinkle{0%,100%{opacity:.22;transform:scale(.8)}50%{opacity:.65;transform:scale(1.2)}}@keyframes low-time{50%{opacity:.55}}@keyframes number-hit{45%{transform:translateY(-4px) scale(1.05)}}@keyframes flash{0%{opacity:.65}100%{opacity:0}}@keyframes pair-pop{0%{opacity:0;transform:translate(-50%,5px) scale(.7) rotate(-5deg)}18%{opacity:1;transform:translate(-50%,0) scale(1.08) rotate(2deg)}35%,75%{opacity:1;transform:translate(-50%,0) scale(1) rotate(-1deg)}100%{opacity:0;transform:translate(-50%,-12px) scale(.94)}}@keyframes confetti-fly{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}@keyframes recipe-stamp{0%{transform:scale(1)}40%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1)}}@keyframes chef-cheer{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-7px) rotate(4deg)}}@keyframes emote-pop{50%{transform:scale(1.2)}}@keyframes line-joy{40%{filter:brightness(1.4) drop-shadow(0 0 4px #fff)}}
@media(max-width:1080px){.console{grid-template-columns:175px minmax(390px,550px) 175px;gap:9px}.side-panel{padding:13px 10px}.mascot-dock{padding:6px}.mascot-dock small{display:none}.operator-card{grid-template-columns:44px 1fr auto}.portrait-frame{width:44px;height:44px}.operator-sprite{width:43px;height:43px}.battery-copy small{display:none}}
@media(max-width:900px){.game-shell{width:min(650px,calc(100% - 26px))}.console{grid-template-columns:minmax(0,1fr)}.left-panel{align-self:auto;padding:11px 13px}.left-panel>.panel-index,.objective,.ticket-strip{display:none}.order-head{display:flex;align-items:baseline;gap:9px;margin:0 0 9px;padding:0;border:0}.order-head strong{margin:0;font-size:15px}.order-head small{margin-left:auto}.recipe-rail{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.recipe-step{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:5px;padding:6px 7px;text-align:left}.recipe-step img{width:29px;height:29px;margin:0}.recipe-step small{display:block;grid-column:1/-1;color:#a990a1;font-size:7px;text-align:center;white-space:nowrap}.right-panel{display:none}.terminal{width:min(100%,clamp(340px,calc(100svh - 395px),570px));justify-self:center}.battery-compact{display:inline-block!important}.title-en{display:none}}
@media(max-width:620px){.game-shell{width:calc(100% - 18px);padding-top:9px;gap:8px}.masthead{padding:0 2px;gap:8px}.brand-lockup{gap:8px}.brand-bolt{width:38px;height:43px;border-radius:13px}.brand-bolt svg{width:20px;height:25px}.brand-bolt::after{font-size:15px}.kicker{margin-bottom:3px;font-size:6px;letter-spacing:.08em}h1{font-size:30px}.mission-chip{gap:6px;padding:5px 7px 5px 5px;border-radius:15px}.mission-chip .chef-mini{width:32px;height:32px}.mission-chip b{max-width:94px;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.mission-chip small{font-size:6px}.mission-chip em{display:none}.hud{gap:5px}.hud-card{height:61px;padding:8px 8px 7px;border-radius:14px}.hud-label{font-size:6px;letter-spacing:.02em}.hud-card strong{font-size:17px}.hud-note{display:none}.time-track{left:8px;right:8px;bottom:7px}.left-panel{padding:8px;border-radius:17px}.order-head{margin-bottom:6px}.order-head>span{display:none}.order-head strong{font-size:12px}.order-head small{font-size:7px}.recipe-rail{gap:4px}.recipe-step{display:block;padding:5px 2px;text-align:center;border-radius:10px}.recipe-step img{width:24px;height:24px;margin:0 auto 2px}.recipe-step span{font-size:8px}.recipe-step small{display:none}.recipe-step span b{font-size:6px}.terminal{width:100%;padding:7px;border-radius:20px}.terminal-head{padding:3px 4px 6px}.terminal-id b{font-size:9px}.terminal-id small{display:none}.circuit-id{font-size:6px}.circuit-id strong{font-size:13px}.board-bay{padding:27px 20px 28px;border-radius:16px}.bay-label{font-size:6px}.pair-celebration{top:12px;min-width:135px;padding:7px 12px}.pair-celebration strong{font-size:12px}.result-panel{width:min(94%,350px);padding:0 15px 14px;border-radius:19px}.result-ticket{margin-left:-15px;margin-right:-15px;padding-left:14px;padding-right:14px;font-size:6px}.result-cast{gap:9px}.result-chef{width:58px;height:58px}.result-cast h2{font-size:21px}.result-scoreline{margin-top:7px!important}.result-scoreline span{font-size:22px}.result-panel button{margin-top:11px;padding:10px 12px}.terminal-foot{padding:7px 4px 2px}.pips i{width:15px}.timer-mode{max-width:116px;font-size:6px}.dock{grid-template-columns:1fr auto;gap:7px;padding-top:0}.level-track{display:none}.control-hint small{display:none}.control-hint b{font-size:8px}.mouse-icon{width:19px;height:24px}.mouse-icon::after{left:7px}.dock-actions{gap:4px}.dock-actions button{padding:6px 7px;font-size:7px}.toast{bottom:24px;font-size:8px}.world-sticker{opacity:.35;transform:scale(.65)}.profile-modal{padding:10px}.profile-card{padding:22px 15px 18px;border-radius:23px}.profile-card h2{font-size:23px}.profile-card>p{font-size:9px}.avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.avatar-option{display:grid;grid-template-columns:45px 1fr;align-items:center;text-align:left;padding:5px}.avatar-preview{grid-row:1/3;width:44px;height:44px;margin:0}.avatar-option small{margin:0}}
@media(max-height:760px) and (min-width:901px){.game-shell{padding-top:9px;gap:8px}.brand-bolt{width:42px;height:46px}h1{font-size:40px}.hud-card{height:65px;padding-top:8px}.hud-note{margin-top:3px}.terminal{width:min(100%,clamp(350px,calc(100svh - 245px),540px))}.board-bay{padding-top:28px;padding-bottom:29px}.objective{margin-top:12px}.objective li{padding:5px 0}.ticket-strip{display:none}.mascot-dock{min-height:66px}.operator-note{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* v10: original pixel cast + data-driven recipe cards. No recoloured character art. */
.player-avatar,.chef-mini,.operator-sprite,.chef-sprite,.result-chef{
  background-image:var(--avatar-image,url("./vendor/kenney-platformer/alien-sheet.png"));
  filter:none;
}
.avatar-preview{background-image:var(--option-image,var(--avatar-image));background-position:0 0;animation:none;filter:none;transform:none}
.brand-bolt{border-radius:5px;box-shadow:4px 4px 0 rgba(216,100,129,.16)}
.brand-bolt::after{display:none}
.brand-bolt img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 rgba(137,66,89,.16))}
.mission-chip,.recipe-step,.avatar-option{border-radius:4px;border-style:solid;box-shadow:3px 3px 0 rgba(137,91,113,.09)}
.mission-chip em{padding:3px 5px;border:1px solid #efb2c1;background:#fff2f6;font-family:var(--mono);font-size:8px}
.recipe-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.recipe-step{display:block;padding:7px 3px 6px;border-width:2px;background:#fffaf5}
.recipe-step.is-active{transform:translate(-1px,-1px);box-shadow:3px 3px 0 rgba(255,127,159,.16)}
.recipe-step small{display:none}
.recipe-step.is-done::after{border-radius:2px}
.recipe-icons{display:flex;align-items:center;justify-content:center;gap:1px;height:27px;margin:0 auto 4px;white-space:nowrap}
.recipe-icons>i{flex:0 0 auto;color:#b89aaa;font:700 7px var(--mono);font-style:normal}
.recipe-icons .recipe-token{position:relative;display:block;flex:0 0 auto;width:20px;height:20px}
.recipe-icons .recipe-token>img,.recipe-icons .token-items img{display:block;width:100%;height:100%;margin:0;object-fit:contain;image-rendering:pixelated}
.recipe-icons .token-items{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.recipe-icons .token-items img{flex:1 1 0;min-width:0}
.recipe-icons .token-base+.token-items{inset:44% 0 0 38%;width:62%;height:56%;padding:1px;background:rgba(255,255,255,.82)}
.stage-chef .emote{right:-6px;top:-6px;width:23px;height:23px;border-radius:3px;border-width:2px;font-size:10px;box-shadow:2px 2px 0 rgba(137,91,113,.14)}
.battery-compact img{width:14px;height:14px;vertical-align:-3px;object-fit:contain;image-rendering:pixelated}
@media(max-width:900px){
  .recipe-rail{grid-template-columns:repeat(var(--step-count,4),minmax(0,1fr));gap:5px}
  .recipe-step{display:block;min-height:65px;padding:6px 2px;text-align:center}
  .recipe-icons{height:31px;gap:1px}
  .recipe-icons .recipe-token{width:clamp(18px,3.7vw,25px);height:clamp(18px,3.7vw,25px)}
  .recipe-icons>i{font-size:clamp(5px,1.2vw,8px)}
  .recipe-step span{font-size:9px}
}
@media(max-width:620px){
  .brand-bolt{border-radius:4px}
  .brand-bolt img{width:24px;height:24px}
  .mission-chip{border-radius:4px}
  .recipe-rail{gap:3px}
  .recipe-step{min-height:54px;padding:5px 1px;border-radius:3px}
  .recipe-icons{height:24px;margin-bottom:2px;gap:0}
  .recipe-icons .recipe-token{width:clamp(13px,3.8vw,20px);height:clamp(13px,3.8vw,20px)}
  .recipe-icons>i{font-size:5px}
  .recipe-step span{font-size:8px}
  .recipe-step span b{display:block;margin:0 0 1px;font-size:6px}
  .avatar-option,.profile-card{border-radius:5px}
}


/* v12: automatic whole-dish assembly and takeaway, never a board pair. */
.dish-assembly{position:absolute;z-index:13;inset:0;display:none;place-items:center;pointer-events:none;background:rgba(255,250,238,.76);backdrop-filter:blur(2px)}
.dish-assembly.is-playing{display:grid}
.dish-assembly>strong{position:absolute;left:50%;top:22%;width:max-content;max-width:90%;padding:7px 11px;transform:translateX(-50%);border:2px solid #f0a2b5;border-radius:3px;color:#a34e70;background:#fff8ee;box-shadow:3px 3px 0 rgba(157,85,113,.13);font:700 12px var(--pixel-font);animation:assembly-label .5s steps(4,end) both}
.assembly-dish{position:absolute;left:50%;top:50%;width:112px;height:112px;margin:-56px 0 0 -56px;filter:drop-shadow(5px 7px 0 rgba(121,75,93,.16));animation:dish-to-bag 1.65s steps(12,end) both}
.assembly-dish .recipe-token{display:block!important;width:112px!important;height:112px!important}
.assembly-dish .token-items img,.assembly-dish .recipe-token>img{image-rendering:pixelated}
.assembly-bag{position:absolute;left:calc(50% + 54px);top:calc(50% + 35px);width:72px;height:72px;opacity:0;image-rendering:pixelated;filter:drop-shadow(4px 5px 0 rgba(121,75,93,.14));animation:bag-receive 1.65s steps(8,end) both}
.result-dish-icon{display:block;flex:0 0 auto;width:54px;height:54px}
.result-dish-icon .recipe-token{display:block;width:54px;height:54px}
.result-dish-icon img{image-rendering:pixelated}
@keyframes assembly-label{0%{opacity:0;transform:translate(-50%,8px)}100%{opacity:1;transform:translate(-50%,0)}}
@keyframes dish-to-bag{0%{opacity:0;transform:scale(.35) rotate(-8deg)}22%{opacity:1;transform:scale(1.12) rotate(2deg)}38%,62%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:translate(100px,70px) scale(.22) rotate(8deg)}}
@keyframes bag-receive{0%,42%{opacity:0;transform:scale(.65)}55%,82%{opacity:1;transform:scale(1)}100%{opacity:1;transform:scale(1.08)}}
@media(max-width:620px){.dish-assembly>strong{top:18%;font-size:10px}.assembly-dish,.assembly-dish .recipe-token{width:88px;height:88px}.assembly-dish{margin:-44px 0 0 -44px}.assembly-bag{left:calc(50% + 38px);top:calc(50% + 30px);width:58px;height:58px}.result-dish-icon,.result-dish-icon .recipe-token{width:44px;height:44px}.result-cast{gap:8px}.result-cast .result-chef{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.dish-assembly.is-playing{display:grid}.assembly-dish{opacity:1;transform:none}.assembly-bag{opacity:1}}


/* v13 portrait touch targets and readable narrow-screen recipe cards. */
@media(max-width:620px){
  .dock-actions button{min-width:44px;min-height:44px;padding:8px 7px}
}
@media(max-width:380px){
  .recipe-rail[data-steps="5"],.recipe-rail[data-steps="6"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .recipe-rail[data-steps="5"] .recipe-step,.recipe-rail[data-steps="6"] .recipe-step{min-height:58px}
  .recipe-rail[data-steps="5"] .recipe-icons,.recipe-rail[data-steps="6"] .recipe-icons{height:27px;gap:1px}
  .recipe-rail[data-steps="5"] .recipe-token,.recipe-rail[data-steps="6"] .recipe-token{width:18px;height:18px}
  .recipe-rail[data-steps="5"] .recipe-icons>i,.recipe-rail[data-steps="6"] .recipe-icons>i{font-size:7px}
  .recipe-rail[data-steps="5"] .recipe-step span,.recipe-rail[data-steps="6"] .recipe-step span{font-size:9px}
}


/* v14: independent profile themes and portrait-first hierarchy. */
.gender-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 15px}
.gender-option{min-height:54px;padding:9px 12px;border:2px solid rgba(120,100,140,.16);border-radius:4px;color:var(--ink);background:rgba(255,255,255,.72);cursor:pointer;box-shadow:3px 3px 0 rgba(100,80,120,.08)}
.gender-option b,.gender-option small{display:block}.gender-option b{font-size:14px}.gender-option small{margin-top:4px;color:var(--muted);font-size:9px}
.gender-option.is-selected{border-color:var(--pink);background:#fff0f5;box-shadow:3px 3px 0 rgba(255,127,159,.14)}
.gender-option.is-selected b{color:var(--pink-deep)}
.profile-save,.result-panel button{background:linear-gradient(135deg,var(--pink),var(--peach))}
body[data-gender="male"]{--pink:#64b4dc;--pink-deep:#347fae;--peach:#70c7ae;--sky:#79bce8;--grape:#91a9df;--shadow:0 14px 36px rgba(75,132,155,.14),0 3px 0 rgba(255,255,255,.8) inset}
body[data-gender="male"][data-stage="morning"]{--stage-a:#eef9ff;--stage-b:#e2f3fb;--stage-c:#e5f7f1;--stage-accent:#64add3;--board-grid:rgba(105,157,181,.22)}
body[data-gender="male"] .profile-card{background:linear-gradient(145deg,#fffdf7,#edf7ff 60%,#eaf9f3)}
body[data-gender="male"] .gender-option.is-selected{background:#eaf7ff}
body[data-gender="male"] .avatar-option.is-selected{background:#eaf7ff}
@media(max-width:620px){
  .profile-card{padding-top:18px}
  .profile-card>p{margin-bottom:12px}
  .gender-selector{margin-bottom:11px}
  .gender-option{min-height:50px}
  .hud{grid-template-columns:1.15fr .85fr}
  .hud .best-card,.hud .chain-card{display:none}
  .hud-card{height:49px;padding:6px 8px}
  .hud-card strong{font-size:16px}
  .time-track{bottom:5px}
  .order-head strong{font-size:14px}
  .order-head small{font-size:8px}
  .recipe-step{min-height:61px}
  .recipe-step span{font-size:10px}
  .recipe-icons{height:28px}
  .recipe-rail[data-steps="4"] .recipe-token{width:18px;height:18px}
  .recipe-rail[data-steps="5"],.recipe-rail[data-steps="6"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .recipe-rail[data-steps="5"] .recipe-step,.recipe-rail[data-steps="6"] .recipe-step{min-height:64px}
  .recipe-rail[data-steps="5"] .recipe-token,.recipe-rail[data-steps="6"] .recipe-token{width:20px;height:20px}
  .recipe-rail[data-steps="5"] .recipe-icons,.recipe-rail[data-steps="6"] .recipe-icons{height:30px;gap:2px}
  .recipe-rail[data-steps="5"] .recipe-icons>i,.recipe-rail[data-steps="6"] .recipe-icons>i{font-size:7px}
}

/* v16 / M1: mobile-first information architecture and accessible UI states. */
:root{
  --ui-radius-sm:2px;--ui-radius-md:4px;--ui-radius-lg:6px;
  --ui-border:2px solid rgba(133,94,132,.18);
  --ui-shadow:3px 3px 0 rgba(100,72,105,.10);
  --ui-space-1:4px;--ui-space-2:6px;--ui-space-3:8px;--ui-space-4:12px;--ui-space-5:16px;
}
.game-shell{
  padding-top:max(clamp(14px,2.2vh,24px),env(safe-area-inset-top));
  padding-right:env(safe-area-inset-right);
  padding-bottom:max(13px,env(safe-area-inset-bottom));
  padding-left:env(safe-area-inset-left);
}
.side-panel,.terminal,.hud-card,.left-panel{border-radius:var(--ui-radius-lg)}
.board-bay,.recipe-step,.mission-chip,.brand-bolt{border-radius:var(--ui-radius-md)}
.recipe-step{box-shadow:none}
.recipe-step.is-done{box-shadow:none}
.recipe-step.is-done::after{border-radius:var(--ui-radius-sm)}
.dock-actions button,.profile-save,.result-panel button,.gender-option,.avatar-option,.setting-row{
  min-height:44px;border-radius:var(--ui-radius-sm);box-shadow:var(--ui-shadow)
}
.dock-actions button:hover,.profile-save:hover,.result-panel button:hover,.setting-row:hover{filter:brightness(1.02)}
.dock-actions button:active,.profile-save:active,.result-panel button:active,.setting-row:active{transform:translate(1px,1px);box-shadow:1px 1px 0 rgba(100,72,105,.10)}
button:disabled{cursor:not-allowed;opacity:.62;filter:none;transform:none}
button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--pink-deep);outline-offset:3px}
#board .tsp-box:focus-visible{outline:none}
#board[data-keyboard-focus="true"] .tsp-box:focus-visible{outline:3px solid var(--pink-deep);outline-offset:4px}
.profile-modal{
  padding-top:max(18px,env(safe-area-inset-top));
  padding-right:max(18px,env(safe-area-inset-right));
  padding-bottom:max(18px,env(safe-area-inset-bottom));
  padding-left:max(18px,env(safe-area-inset-left));
}
.profile-card{max-height:calc(100svh - max(36px,env(safe-area-inset-top)) - max(36px,env(safe-area-inset-bottom)));overflow-y:auto;border-radius:var(--ui-radius-lg)}
.profile-close{width:44px;height:44px;min-width:44px;min-height:44px}
.name-field input{min-height:44px}
.settings-card{width:min(100%,430px)}
.settings-card h2{margin-bottom:8px}
.settings-list{display:grid;gap:10px;margin:18px 0}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px 14px;border:var(--ui-border);color:var(--ink);background:#fffaf5;text-align:left;cursor:pointer}
.setting-row span,.setting-row b,.setting-row small{display:block}
.setting-row b{font-size:14px}.setting-row small{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.5}
.setting-row strong{flex:0 0 auto;min-width:54px;color:var(--pink-deep);font:700 12px var(--mono);text-align:right}
.setting-row[aria-pressed="true"]{border-color:rgba(67,191,145,.52);background:#effbf5}
.setting-row[aria-pressed="true"] strong{color:#278565}
.toast{bottom:max(24px,env(safe-area-inset-bottom));pointer-events:none}
body[data-motion="reduce"] *,body[data-motion="reduce"] *::before,body[data-motion="reduce"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
body[data-motion="reduce"] .dish-assembly.is-playing{display:grid}
body[data-motion="reduce"] .assembly-dish{opacity:1;transform:none}
body[data-motion="reduce"] .assembly-bag{opacity:1}

@media(min-width:901px){
  .console{align-items:start}
  .terminal{align-self:start}
}
@media(max-width:900px){
  .left-panel{padding:12px}
  .order-head{height:24px;min-height:24px;margin:0 0 8px;gap:8px;overflow:hidden}
  .order-head strong{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .order-head small{flex:0 1 58%;min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;line-height:16px}
  .recipe-rail,.recipe-rail[data-steps="4"],.recipe-rail[data-steps="5"],.recipe-rail[data-steps="6"]{
    grid-template-rows:repeat(2,58px);grid-auto-rows:58px;gap:6px;height:122px;min-height:122px;margin:0
  }
  .recipe-rail[data-steps="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recipe-rail[data-steps="5"],.recipe-rail[data-steps="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .recipe-step,.recipe-rail[data-steps="4"] .recipe-step,.recipe-rail[data-steps="5"] .recipe-step,.recipe-rail[data-steps="6"] .recipe-step{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    width:auto;height:58px;min-height:58px;padding:5px 3px;border-radius:var(--ui-radius-md);text-align:center;overflow:hidden
  }
  .recipe-icons,.recipe-rail[data-steps="4"] .recipe-icons,.recipe-rail[data-steps="5"] .recipe-icons,.recipe-rail[data-steps="6"] .recipe-icons{
    display:flex;align-items:center;justify-content:center;gap:3px;width:100%;height:28px;min-height:28px
  }
  .recipe-token,.recipe-rail[data-steps="4"] .recipe-token,.recipe-rail[data-steps="5"] .recipe-token,.recipe-rail[data-steps="6"] .recipe-token{width:23px;height:23px}
  .recipe-icons>i,.recipe-rail[data-steps="5"] .recipe-icons>i,.recipe-rail[data-steps="6"] .recipe-icons>i{font-size:8px}
  .recipe-step>span,.recipe-rail[data-steps="5"] .recipe-step span,.recipe-rail[data-steps="6"] .recipe-step span{display:block;width:100%;height:15px;overflow:hidden;color:var(--ink);font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}
  .recipe-step>span b{font-size:8px}
  .recipe-step small{display:none}
  .terminal{align-self:start}
}
@media(max-width:620px){
  .game-shell{
    width:calc(100% - 18px);gap:8px;
    padding-top:max(9px,env(safe-area-inset-top));
    padding-right:env(safe-area-inset-right);
    padding-bottom:max(10px,env(safe-area-inset-bottom));
    padding-left:env(safe-area-inset-left)
  }
  .brand-bolt{border-radius:var(--ui-radius-md)}
  h1{font-size:28px}
  .mission-chip{min-height:44px}
  .hud-card{height:49px;border-radius:var(--ui-radius-md)}
  .hud-label{font-size:8px}.hud-card strong{font-size:17px}
  .left-panel{padding:8px;border-radius:var(--ui-radius-lg)}
  .order-head strong{font-size:14px}.order-head small{font-size:8px}
  .terminal{padding:7px;border-radius:var(--ui-radius-lg)}
  .board-bay{border-radius:var(--ui-radius-md)}
  .terminal-foot{min-height:30px}
  .progress-copy{font-size:9px}.timer-mode{font-size:8px}
  .dock{grid-template-columns:minmax(0,1fr);gap:6px;padding:0 0 2px}
  .control-hint{justify-content:center;min-height:20px;text-align:center}
  .control-hint .mouse-icon{display:none}
  .control-hint b{font-size:10px;line-height:20px}
  .dock-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}
  .dock-actions button{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:44px;padding:7px 3px;font-size:10px;line-height:1.2;white-space:nowrap}
  .battery-compact img{width:16px;height:16px;vertical-align:0}
  .profile-modal{padding-top:max(10px,env(safe-area-inset-top));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left))}
  .profile-card{border-radius:var(--ui-radius-lg)}
  .avatar-option{min-height:66px;border-radius:var(--ui-radius-sm)}
  .settings-card{padding:22px 16px 18px}
}
@media(max-width:370px){
  .mission-chip b{max-width:80px}
  .mission-chip small{display:none}
  .kicker{display:none}
  .order-head small{flex-basis:52%}
  .recipe-step>span,.recipe-rail[data-steps="5"] .recipe-step span,.recipe-rail[data-steps="6"] .recipe-step span{font-size:10px}
  .dock-actions button{font-size:9px}
}

.dock-actions button{min-width:44px}


/* v17 / M2: event-led motion, one primary feedback focus. */
body.is-drawing .cloud,body.is-drawing .world-sticker,body.is-drawing .sparkle-field,body.is-drawing .player-avatar{animation-play-state:paused!important}
.recipe-step.just-done{animation:recipe-stamp-m2 .25s steps(3,end)}
.recipe-step.is-rollback{border-color:rgba(210,112,121,.55);background:#fff4f1;animation:recipe-rollback-m2 .25s steps(3,end)}
#board .tsu-line.is-complete-pop{animation:line-joy-m2 .25s steps(3,end)}
.stage-chef.is-happy{animation:chef-cheer-m2 .25s steps(2,end) 2}
.stage-chef.is-happy .emote{background:var(--green);animation:none}
.result-panel{transition:opacity .2s,transform .2s,visibility .2s;transform:translate(-50%,-47%)}
.result-panel.ready{transform:translate(-50%,-50%)}
.assembly-dish{animation:dish-to-bag-m2 .7s steps(7,end) both}
.assembly-bag{animation:bag-receive-m2 .7s steps(7,end) both}
.dish-assembly>strong{animation:assembly-label .25s steps(3,end) both}
@keyframes recipe-stamp-m2{0%{transform:scale(1)}45%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes recipe-rollback-m2{0%,100%{transform:translateX(0)}50%{transform:translateX(-2px)}}
@keyframes line-joy-m2{50%{filter:brightness(1.18)}}
@keyframes chef-cheer-m2{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes dish-to-bag-m2{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.05)}35%,62%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translate(72px,44px) scale(.35)}}
@keyframes bag-receive-m2{0%,45%{opacity:0}60%,100%{opacity:1}}

/* v18 / M3: real order goals and three-star evaluation. */
.circuit-id small{margin-left:6px;color:var(--muted);font:700 7px var(--pixel-font);white-space:nowrap}
.result-rating{flex-wrap:wrap}
.result-rating i{opacity:.2}
.result-rating i.is-earned{opacity:1}
#resultRatingLabel{flex:1 1 100%;margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.6}
@media(max-width:620px){.circuit-id small{font-size:6px;margin-left:4px}}

/* v19 / M4: readable result dialogs and local share actions. */
.result-modal{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(92,70,97,.30);backdrop-filter:blur(8px)}
.result-modal .result-panel{position:relative;left:auto;top:auto;display:none;width:min(440px,100%);max-height:calc(100svh - 32px);margin:0;padding:0 18px 16px;overflow-x:hidden;overflow-y:auto;border:2px solid #fff;border-radius:var(--ui-radius-lg);opacity:1;visibility:visible;transform:none;box-shadow:6px 6px 0 rgba(92,70,97,.16)}
.result-modal .result-panel.ready{display:block;opacity:1;visibility:visible;transform:none}
.result-modal .result-ticket{margin:0 -18px 12px;padding:9px 16px;font-size:8px}
.result-hero{display:grid;grid-template-columns:96px minmax(0,1fr) 54px;align-items:center;gap:12px}
.result-dish-icon,.result-dish-icon .recipe-token{display:block;width:96px;height:96px}
.result-hero-copy{min-width:0}
.result-hero-copy h2{margin:4px 0;color:#714b64;font-family:var(--pixel-font);font-size:25px;line-height:1.15}
.result-hero-copy small{display:block;color:var(--muted);font-size:10px;line-height:1.5}
.result-hero .result-chef{width:54px;height:54px;animation-duration:.85s}
.result-rating{justify-content:center;margin-top:10px;gap:5px}
.result-rating i{font-size:24px;line-height:1}
#resultRatingLabel{text-align:center;font-size:9px}
.result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:11px}
.result-stats>div{min-width:0;padding:8px 4px;border:2px solid rgba(133,94,132,.12);border-radius:var(--ui-radius-sm);background:rgba(255,255,255,.72);text-align:center}
.result-stats small,.result-stats strong{display:block}
.result-stats small{color:var(--muted);font-size:8px;white-space:nowrap}
.result-stats strong{margin-top:5px;color:var(--pink-deep);font:700 16px var(--mono);white-space:nowrap}
.result-chain,.result-best{display:block;margin-top:8px;color:var(--muted);font-size:9px;line-height:1.5;text-align:center}
.result-best{color:#8d6d82}
.result-actions{display:grid;grid-template-columns:1.15fr 1fr;gap:7px;margin-top:12px}
.result-modal .result-panel button{width:100%;min-height:46px;margin:0;padding:10px 8px;border:0;border-radius:var(--ui-radius-sm);font-size:11px;line-height:1.3;box-shadow:var(--ui-shadow)}
.result-modal .result-panel .result-secondary{color:var(--ink);background:#fff0f6;border:2px solid #efb2c1}
.result-modal .result-panel .result-system-share{margin-top:8px;color:var(--ink);background:#effaf5;border:2px solid #a4dac5}
.result-modal .result-panel .result-secondary:disabled{opacity:.55}
.share-status{display:block;min-height:15px;margin-top:8px;color:var(--muted);font-size:8px;line-height:1.5;text-align:center}
.fail-message{margin:12px 0 0;color:#9c6f6a;font-size:11px;line-height:1.65;text-align:center}
.result-modal .fail-panel>.result-primary{margin-top:13px;background:linear-gradient(135deg,var(--pink),var(--peach))}
@media(max-width:620px){
  .result-modal{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
  .result-modal .result-panel{width:100%;max-height:calc(100svh - 20px);padding:0 14px 14px}
  .result-modal .result-ticket{margin:0 -14px 10px;padding:8px 13px}
  .result-hero{grid-template-columns:84px minmax(0,1fr) 46px;gap:9px}
  .result-dish-icon,.result-dish-icon .recipe-token{width:84px;height:84px}
  .result-hero-copy h2{font-size:22px}
  .result-hero .result-chef{width:46px;height:46px}
  .result-stats strong{font-size:14px}
}
@media(max-width:350px){.result-hero{grid-template-columns:72px minmax(0,1fr) 42px}.result-dish-icon,.result-dish-icon .recipe-token{width:72px;height:72px}.result-hero-copy h2{font-size:19px}}
/* v20 / M5: quiet local records, achievements and confirmed reset. */
.records-panel{margin-top:12px;padding-top:12px;border-top:2px dashed rgba(133,94,132,.18)}
.records-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.records-heading b{font:700 12px var(--pixel-font);color:var(--pink-deep)}
.records-heading small{color:var(--muted);font-size:8px}
.records-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}
.records-grid>div{min-width:0;padding:8px 3px;border:2px solid rgba(133,94,132,.1);border-radius:var(--ui-radius-sm);background:rgba(255,255,255,.7);text-align:center}
.records-grid small,.records-grid strong{display:block}.records-grid small{color:var(--muted);font-size:7px}.records-grid strong{margin-top:4px;color:var(--pink-deep);font:700 13px var(--mono)}
.achievement-list{display:grid;gap:5px;margin:10px 0 0;padding:0;list-style:none}
.achievement-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--ui-radius-sm);background:rgba(133,94,132,.055);opacity:.58}
.achievement-item.is-unlocked{opacity:1;background:#fff4d9}.achievement-item .achievement-mark{font:700 17px var(--pixel-font);text-align:center}.achievement-item b,.achievement-item small{display:block}.achievement-item b{font-size:10px}.achievement-item small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35}.achievement-item em{color:var(--muted);font:normal 8px var(--mono)}
.record-order-note{margin:9px 0 0;color:var(--muted);font-size:8px;line-height:1.5}
.record-reset-button{width:100%;min-height:44px;margin-top:9px;padding:8px;border:2px solid #e3c5cc;border-radius:var(--ui-radius-sm);color:#8e6875;background:#fff8fa;font-size:9px}
.record-reset-confirm{padding:9px;border:2px solid #e6acb6;border-radius:var(--ui-radius-sm);background:#fff2f4}.record-reset-confirm p{margin:0;color:#835762;font-size:9px;line-height:1.5}.record-reset-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.record-reset-confirm button{min-height:44px;border:0;border-radius:var(--ui-radius-sm);font-size:10px}.record-reset-confirm .confirm-reset{color:#fff;background:#b9566b}.record-reset-confirm .cancel-reset{background:#eadfe3}
.unlock-note{min-height:14px;margin-top:7px;color:#9a6a22;font-size:8px;line-height:1.45;text-align:center}
@media(max-width:430px){.records-grid strong{font-size:12px}.achievement-item{padding:5px 7px}}
/* v22 / M7: two readable inputs on mobile; result remains as text. */
.recipe-input{display:inline-flex;flex:0 0 auto}.recipe-result-token{display:inline-flex;flex:0 0 auto}
@media(max-width:900px){
  .recipe-icons .recipe-result-token,.recipe-icons .recipe-result-arrow{display:none}
  .recipe-icons .recipe-input{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center}
  .recipe-icons .recipe-input .recipe-token,.recipe-rail[data-steps="4"] .recipe-icons .recipe-input .recipe-token,.recipe-rail[data-steps="5"] .recipe-icons .recipe-input .recipe-token,.recipe-rail[data-steps="6"] .recipe-icons .recipe-input .recipe-token{width:25px;height:25px}
  .recipe-icons .recipe-plus{font-size:10px;color:#9d7d8e}
  .recipe-step,.recipe-rail[data-steps="4"] .recipe-step,.recipe-rail[data-steps="5"] .recipe-step,.recipe-rail[data-steps="6"] .recipe-step{padding:3px 3px;gap:1px}
  .recipe-icons,.recipe-rail[data-steps="4"] .recipe-icons,.recipe-rail[data-steps="5"] .recipe-icons,.recipe-rail[data-steps="6"] .recipe-icons{height:27px;min-height:27px;gap:5px}
  .recipe-step>span,.recipe-rail[data-steps="5"] .recipe-step span,.recipe-rail[data-steps="6"] .recipe-step span{height:13px;font-size:10px;line-height:13px}
  .recipe-step>small{display:block;width:100%;height:10px;overflow:hidden;color:var(--muted);font-size:7px;line-height:10px;text-overflow:ellipsis;white-space:nowrap}
}
@media(max-width:900px){
  .recipe-step,.recipe-rail[data-steps="4"] .recipe-step,.recipe-rail[data-steps="5"] .recipe-step,.recipe-rail[data-steps="6"] .recipe-step{padding:2px 3px;gap:1px}
  .recipe-icons,.recipe-rail[data-steps="4"] .recipe-icons,.recipe-rail[data-steps="5"] .recipe-icons,.recipe-rail[data-steps="6"] .recipe-icons{flex:0 0 24px;height:24px;min-height:24px}
  .recipe-icons .recipe-input,.recipe-icons .recipe-input .recipe-token{width:24px;height:24px}
  .recipe-step>span,.recipe-rail[data-steps="5"] .recipe-step>span,.recipe-rail[data-steps="6"] .recipe-step>span{flex:0 0 12px;height:12px;line-height:12px}
  .recipe-step>small{flex:0 0 9px;height:9px;line-height:9px}
}
@media(max-width:900px){
  .recipe-rail[data-steps] .recipe-step .recipe-input{display:inline-flex;flex:0 0 24px;width:24px;height:24px;padding:0;overflow:visible;color:inherit;font-size:inherit;line-height:normal;text-overflow:clip;white-space:normal}
  .recipe-rail[data-steps] .recipe-step .recipe-result-token{display:none}
  .recipe-rail[data-steps] .recipe-step .recipe-result-arrow{display:none}
}
/* v25 / M9B: pre-order loadout and three-slot in-game tools. */
.active-loadout{display:grid;grid-template-columns:1.35fr repeat(2,minmax(70px,1fr));gap:7px;margin-top:7px;padding:7px;border:2px solid rgba(133,94,132,.12);border-radius:var(--ui-radius-md);background:rgba(255,255,255,.58)}
.active-loadout[hidden],.active-loadout button[hidden],.battery-card[hidden],.battery-compact[hidden]{display:none!important}
.loadout-main,.active-loadout button{min-height:48px;border:2px solid rgba(133,94,132,.15);border-radius:var(--ui-radius-sm);background:#fff;color:var(--ink)}
.loadout-main{display:flex;align-items:center;justify-content:center;gap:7px;padding:5px}.loadout-main img,.active-loadout button img{width:25px;height:25px;object-fit:contain;image-rendering:pixelated}.loadout-main span{text-align:left}.loadout-main b,.loadout-main small,.active-loadout button b,.active-loadout button small{display:block}.loadout-main small,.active-loadout button small{margin-top:3px;color:var(--muted);font-size:8px}.active-loadout button{font-size:10px}.active-loadout button:disabled{opacity:.42}.active-loadout button[aria-pressed="true"]{border-color:var(--pink);background:#fff0f6;box-shadow:0 0 0 2px rgba(255,127,159,.14)}
.loadout-card{max-width:520px}.loadout-section{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:13px}.loadout-section>b{font-size:12px}.loadout-section>small{color:var(--muted);font-size:9px}
.main-tool-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.main-tool-options button,.support-tool-options button{min-height:64px;border:2px solid #ead9e2;border-radius:var(--ui-radius-md);background:#fff;color:var(--ink)}.main-tool-options button{display:grid;grid-template-columns:42px 1fr;align-items:center;text-align:left;padding:8px}.main-tool-options img{grid-row:1/3;width:38px;height:38px;image-rendering:pixelated}.main-tool-options small,.support-tool-options small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.main-tool-options button[aria-pressed="true"],.support-tool-options button[aria-pressed="true"]{border-color:var(--pink);background:#fff0f6}.main-tool-options button:disabled{opacity:.42;background:#f2edef}.support-tool-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.support-tool-options button{padding:7px;font-size:11px}.support-tool-options img{width:20px;height:20px;vertical-align:middle;image-rendering:pixelated}.loadout-warning{min-height:18px;color:#a65c65;font-size:9px;line-height:1.5}.loadout-recommended{width:100%;min-height:44px;margin-top:8px;border:0;background:transparent;color:var(--pink-deep);font-size:10px;text-decoration:underline}
@media(max-width:620px){.active-loadout{gap:5px;padding:5px}.loadout-main,.active-loadout button{min-height:46px}.loadout-main img{width:22px;height:22px}.loadout-main b,.active-loadout button b{font-size:9px}.loadout-card h2{font-size:21px}}

/* v26 / M10: existing pixel UI, progressive tools and explicit experiment state. */
.support-tool-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.support-tool-options button[hidden]{display:none!important}
.support-tool-options button:disabled{opacity:.42;background:#f2edef}
.tsu-marble.is-clipped{filter:drop-shadow(0 0 2px rgba(104,79,99,.55))}
.tsu-marble.is-move-source{filter:drop-shadow(0 0 3px rgba(231,155,56,.8))}
body[data-game-mode="move-lab"] .terminal-foot{border-color:#e3ae5c}
body[data-game-mode="move-lab"] .terminal-foot .timer-mode::before{content:"实验 · ";color:#9b6626;font-weight:700}
@media(max-width:620px){.support-tool-options{grid-template-columns:repeat(2,minmax(0,1fr))}.support-tool-options button{min-height:58px}}


/* v28 / M12: searchable thirty-character picker. Every preview uses frame zero
   from the same manifest-driven sheet used by gameplay and the share card. */
.avatar-picker-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 7px;color:#896a7e;font-size:10px;font-weight:700}.avatar-picker-head output{color:var(--pink-deep);font:8px var(--mono)}
.avatar-search{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin:0 0 9px;color:#9c8294;font-size:9px;text-align:left}.avatar-search input{min-width:0;padding:8px 11px;border:2px solid rgba(255,127,159,.18);border-radius:10px;color:#725267;background:rgba(255,255,255,.86);font-size:11px}
.avatar-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-height:326px;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 5px 2px;scrollbar-width:thin;scrollbar-color:#e8b7c8 transparent}.avatar-option{min-height:91px;padding:7px 3px}.avatar-option.is-selected{transform:none}.avatar-preview{width:52px;height:52px}.avatar-option b{font-size:10px}.avatar-option small{font-size:6px;line-height:1.35}
@media(max-width:600px){.avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:310px;gap:7px}.avatar-option{min-height:82px}.avatar-preview{width:46px;height:46px}.avatar-option b{font-size:9px}.avatar-search{margin-bottom:7px}.profile-card{padding:22px 18px}}

/* M13: independent local music / effects mixing stays inside the settings sheet. */
.volume-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,150px) 42px;align-items:center;gap:12px;padding:12px 14px;border:var(--ui-border);color:var(--ink);background:#fffaf5;text-align:left}
.volume-row span,.volume-row b,.volume-row small{display:block}.volume-row b{font-size:13px}.volume-row small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}
.volume-row input{width:100%;min-height:44px;accent-color:var(--pink-deep);cursor:pointer}.volume-row output{color:var(--pink-deep);font:700 11px var(--mono);text-align:right}
@media(max-width:420px){.volume-row{grid-template-columns:minmax(0,1fr) 105px 36px;gap:8px;padding:10px}.volume-row small{font-size:8px}}


/* v30 / M14: readable mobile information, resilient interactions and stage atmosphere. */
.stage-banner{position:fixed;z-index:35;top:max(18px,env(safe-area-inset-top));left:50%;display:grid;min-width:min(330px,calc(100vw - 28px));padding:12px 22px;border:3px solid #fff;border-radius:4px;color:#65445f;background:linear-gradient(135deg,#fff4c9,#ffe1ee 55%,#dcf8ef);box-shadow:6px 6px 0 rgba(112,72,96,.18);text-align:center;pointer-events:none;opacity:0;transform:translate(-50%,-18px);transition:opacity .18s,transform .28s;image-rendering:pixelated}
.stage-banner.show{opacity:1;transform:translate(-50%,0)}.stage-banner span{font:700 9px var(--mono);letter-spacing:.12em}.stage-banner b{margin-top:4px;font:700 20px var(--pixel-font)}.stage-banner small{margin-top:4px;color:var(--muted);font-size:10px}
.result-goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.result-goal{min-width:0;padding:7px 4px;border:2px solid rgba(133,94,132,.12);border-radius:var(--ui-radius-sm);color:var(--muted);background:rgba(255,255,255,.62);font-size:9px;line-height:1.4;text-align:center}.result-goal.is-earned{color:#278363;border-color:rgba(67,191,145,.35);background:#effbf5}
.fail-retry-note{display:block;margin-top:8px;color:var(--muted);font-size:9px;line-height:1.5;text-align:center}.fail-actions .result-primary{background:linear-gradient(135deg,var(--pink),var(--peach))}
.record-difficulty-note{margin:5px 0 0;color:#82667a;font-size:9px;line-height:1.5}.audio-credits{margin-top:12px;padding:10px;border:2px solid rgba(133,94,132,.1);border-radius:var(--ui-radius-sm);background:#fffaf3}.audio-credits>b{color:var(--pink-deep);font-size:11px}.audio-credits p{margin:5px 0;color:var(--muted);font-size:9px;line-height:1.6}.audio-credits>div{display:flex;flex-wrap:wrap;gap:6px 12px}.audio-credits a{min-height:24px;color:#77546e;font-size:9px;text-decoration:underline;text-underline-offset:3px}
.loadout-teaching{margin:9px 0 0;padding:9px 10px;border-left:4px solid var(--stage-accent);border-radius:3px;color:#71586b;background:#fff7df;font-size:10px;line-height:1.6}.loadout-teaching[hidden]{display:none}.tutorial-tip{flex:1 1 100%;margin:3px 0 0;color:#7e6477;font-size:9px;line-height:1.4;text-align:center}.terminal-foot{flex-wrap:wrap}
#resetButton.is-armed{color:#fff;background:#b9566b;box-shadow:0 0 0 3px rgba(185,86,107,.16)}
.main-tool-options button{position:relative}.main-tool-options button::after{content:"×" attr(data-capacity);position:absolute;top:5px;right:6px;display:grid;place-items:center;min-width:25px;height:20px;padding:0 4px;border:2px solid #d7b4c4;border-radius:3px;color:#85516d;background:#fff4f8;font:700 11px var(--mono)}.main-tool-options button[aria-pressed="true"]::after{border-color:var(--pink);color:var(--pink-deep)}
.dock-actions button,.active-loadout button,.support-tool-options button{letter-spacing:0}.active-loadout button b,.support-tool-options button b{font-family:var(--pixel-font)}
@media(max-width:900px){
  .recipe-step>span,.recipe-rail[data-steps="5"] .recipe-step>span,.recipe-rail[data-steps="6"] .recipe-step>span{flex-basis:13px;height:13px;font-size:10px;line-height:13px}
  .recipe-step>small{flex-basis:11px;height:11px;font-size:9px;line-height:11px}
  .recipe-step span b{font-size:9px}.hud-label,.hud-note,#dishSubtitle,#sequenceHint,#orderTarget,.timer-mode{font-size:9px}
  .order-head strong{min-width:0;overflow-wrap:anywhere}.order-head{display:grid;grid-template-columns:minmax(0,1fr);gap:3px}.order-head #dishName{line-height:1.25}
  .bay-label{font-size:9px}.tutorial-tip{font-size:9px}.terminal-foot{row-gap:2px}
}
@media(max-width:430px){.result-goals{gap:4px}.result-goal{padding:6px 2px;font-size:9px}.stage-banner b{font-size:17px}.audio-credits a{min-height:32px}.records-grid small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.stage-banner{transition:none;transform:translate(-50%,0)}.stage-banner.show{transform:translate(-50%,0)}.time-card.is-low strong{animation:none}}
body.reduce-motion .stage-banner{transition:none;transform:translate(-50%,0)}body.reduce-motion .stage-banner.show{transform:translate(-50%,0)}


/* v31 / M15: centered pixel-icon system actions and a real first-day tutorial. */
.dock-actions{grid-column:1/-1;justify-self:center;display:grid;grid-template-columns:repeat(3,minmax(104px,138px));justify-content:center;gap:8px;width:min(100%,440px)}
.dock-actions .dock-action{display:grid;grid-template-columns:22px auto auto;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:48px;padding:8px 10px;border:2px solid rgba(255,255,255,.9);border-radius:6px;color:#816176;background:rgba(255,255,255,.78);box-shadow:3px 3px 0 rgba(133,94,132,.09);font-family:var(--pixel-font);font-size:10px;line-height:1.2;white-space:nowrap}
.dock-actions .dock-action:hover{color:var(--pink-deep);background:#fff;transform:translateY(-1px)}.dock-actions .dock-action:active{transform:translate(1px,1px);box-shadow:1px 1px 0 rgba(133,94,132,.09)}
.dock-actions .dock-action img{display:block;width:22px;height:22px;object-fit:contain;image-rendering:pixelated}.dock-actions .dock-action .dock-button-label{min-width:0}.dock-actions .dock-action .dock-state{color:var(--green);font:700 8px var(--mono)}
.dock-actions #resetButton.is-armed{color:#fff;background:#b9566b}.dock-actions #resetButton.is-armed img{filter:invert(1)}
.battery-compact{align-items:center;justify-content:center;gap:4px;min-height:32px;padding:4px 8px;border:2px solid rgba(67,191,145,.22);border-radius:5px;color:#338a6c;background:#f2fff8;font:700 9px var(--pixel-font)}.battery-compact img{width:18px;height:18px;object-fit:contain;image-rendering:pixelated}.battery-compact b{font:700 9px var(--mono)}
.tutorial-reopen{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:12px;padding:9px 11px;border:2px solid #e4cad8;border-radius:var(--ui-radius-sm);color:var(--ink);background:#fff8fc;text-align:left}.tutorial-reopen img{width:25px;height:25px;image-rendering:pixelated}.tutorial-reopen b,.tutorial-reopen small{display:block}.tutorial-reopen b{font-size:11px}.tutorial-reopen small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}
.tutorial-card{position:relative;width:min(100%,430px);padding:26px 24px 20px;text-align:center}.tutorial-step-count{position:absolute;top:20px;right:22px;color:#ad8ca2;font:700 10px var(--mono)}.tutorial-visual{display:flex;align-items:center;justify-content:center;gap:20px;min-height:112px;margin:10px 0 14px;border:3px solid #fff;border-radius:5px;background:linear-gradient(135deg,#fff2ce,#ffe7f0 52%,#e2f8ef);box-shadow:4px 4px 0 rgba(133,94,132,.09)}.tutorial-visual img{width:68px;height:68px;object-fit:contain;image-rendering:pixelated}.tutorial-visual span{color:var(--pink-deep);font:700 24px var(--mono)}
.tutorial-card h2{margin:0;color:#6e4c65;font-size:22px;line-height:1.45}.tutorial-card>p{min-height:66px;margin:12px 0 0;color:#80667a;font-size:12px;line-height:1.8}.tutorial-note{display:block;min-height:38px;margin-top:10px;color:#9a7b8f;font-size:10px;line-height:1.7}.tutorial-dots{display:flex;justify-content:center;gap:7px;margin:14px 0}.tutorial-dots i{width:22px;height:5px;background:#eadde5}.tutorial-dots i.is-current{background:var(--pink)}
.tutorial-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.tutorial-actions button{min-height:46px;border:2px solid #e2cbd7;border-radius:5px;color:#7b5c72;background:#fff;font-size:11px}.tutorial-actions .tutorial-next{border-color:#ef9fb6;color:#fff;background:linear-gradient(135deg,var(--pink),var(--peach))}.tutorial-actions button:disabled{opacity:.4}.tutorial-skip{min-height:40px;margin-top:8px;border:0;color:#8e7184;background:transparent;font-size:10px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.dock-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;max-width:430px}.dock-actions .dock-action{min-height:48px;padding:7px 4px;font-size:10px}.battery-compact{display:inline-flex!important}.terminal-foot .tutorial-tip{margin-top:2px}}
@media(max-width:370px){.dock-actions .dock-action{grid-template-columns:20px auto auto;gap:4px;font-size:9px}.dock-actions .dock-action img{width:20px;height:20px}.tutorial-card{padding:24px 16px 17px}.tutorial-visual img{width:58px;height:58px}.tutorial-card h2{font-size:19px}.tutorial-card>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.dock-actions .dock-action:hover{transform:none}}
