:root{color:#e9f7ef;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#081114;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,textarea{font:inherit}button{cursor:pointer}#app{min-height:100svh}.game-shell{background:linear-gradient(#20ffa10d 1px,#0000 1px) 0 0/34px 34px,linear-gradient(90deg,#20ffa10d 1px,#0000 1px) 0 0/34px 34px,radial-gradient(circle at 72% 18%,#ffce5429,#0000 32%),#081114;grid-template-columns:minmax(360px,.92fr) minmax(480px,1.08fr);min-height:100svh;display:grid}.control-panel{background:#0c191ceb;border-right:1px solid #84f6b738;flex-direction:column;gap:24px;min-width:0;padding:32px;display:flex}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.eyebrow,.card-label,.mission-kicker,.level-count,.editor-topline,.machine-header{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.eyebrow,.card-label{color:#76f3b2;text-transform:uppercase;margin:0;font-size:12px}h1,h2,h3,p{margin:0}h1{color:#f6fff8;font-size:42px;line-height:1.06}h2{color:#fff3bb;font-size:28px;line-height:1.18}h3{color:#f6fff8;font-size:20px}.level-count{color:#ffce54;background:#ffce541a;border:1px solid #ffce5473;border-radius:6px;flex:none;padding:8px 12px}.guide-button{color:#dffbea;background:#84f6b714;border:1px solid #84f6b761;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 11px;font-size:14px;font-weight:800;display:inline-flex}.guide-button:hover{color:#76f3b2;border-color:#76f3b2c7}.mission{gap:16px;display:grid}.mission-brief{gap:10px;display:grid}.mission-kicker{color:#ff9f6e}.mission-brief>p:not(.mission-kicker){color:#c5d8d0;max-width:62ch}.syntax-row{flex-wrap:wrap;gap:8px;display:flex}.syntax-chip,.level-dot{color:#dffbea;background:#84f6b714;border:1px solid #84f6b75c;border-radius:6px}.syntax-chip{padding:7px 10px}.syntax-chip.active,.level-dot.active{color:#081114;background:#ffce54;border-color:#ffce54}.syntax-card{background:#051012b8;border:1px solid #84f6b74d;border-radius:8px;gap:14px;padding:18px;transition:border-color .18s,box-shadow .18s,background .18s;display:grid}.syntax-card.is-flashing{background:#ffce5414;border-color:#ffce54db;box-shadow:inset 0 0 0 1px #ffce5429,0 0 28px #ffce542e}.syntax-card-header{gap:4px;display:grid}.syntax-card p{color:#d1e2dc}.syntax-feedback{color:#ffce54;background:#ffce5414;border:1px solid #ffce5461;border-radius:5px;justify-self:start;padding:3px 7px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.syntax-card ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}code{color:#102126;background:#d9fff0;border-radius:5px;padding:4px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;display:inline-flex}.editor-shell{background:#101719;border:1px solid #d8f2e538;border-radius:8px;overflow:hidden}.editor-topline{color:#89a69a;background:#ffffff08;border-bottom:1px solid #d8f2e51f;justify-content:space-between;gap:16px;padding:10px 12px;font-size:13px;display:flex}textarea{resize:vertical;color:#f4fff8;background:#121d20;border:0;outline:0;width:100%;min-height:188px;padding:18px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:16px;line-height:1.6;display:block}.action-row{background:#ffffff08;border-top:1px solid #d8f2e51f;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:14px;display:grid}.auto-indicator,.next-button{border-radius:6px;align-items:center;min-height:32px;padding:0 10px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:800;display:inline-flex}.auto-indicator{color:#8ea79b;background:#d8f2e50f;border:1px solid #d8f2e538}.next-button{color:#081114;background:#76f3b2;border:1px solid #76f3b2b3;gap:7px;box-shadow:0 0 18px #76f3b233}.next-button:hover{background:#a2ffd0}.level-state{color:#a9c2b7;font-size:14px}.level-state.success{color:#76f3b2}.level-state.error{color:#ff9f6e}.level-strip{grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:8px;display:grid}.level-dot{min-height:36px}.level-dot.complete{color:#76f3b2;background:#76f3b21f;border-color:#76f3b2e6}.level-dot.complete.active{color:#081114;background:#76f3b2}.stage-panel{flex-direction:column;gap:20px;min-width:0;padding:32px;display:flex}.machine-header{color:#76f3b2;justify-content:space-between;gap:16px;display:flex}.bento-stage{background:linear-gradient(135deg,#ffffff0a,#0000 46%),linear-gradient(#ffffff0a 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#ffffff0a 1px,#0000 1px) 0 0/28px 28px,#10272c;border:1px solid #84f6b747;border-radius:8px;min-height:540px;position:relative;overflow:hidden;box-shadow:inset 0 0 80px #11ffa514}.stage-label{z-index:3;color:#9fb6ad;background:#051012b8;border:1px solid #d8f2e529;border-radius:5px;padding:5px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;position:absolute;top:22px}.target-label{left:56px}.player-label{left:148px}.target-rack,.ingredient-rack{align-content:flex-start;min-width:0;min-height:0;transition:justify-content .24s,align-items .24s;position:absolute;inset:72px 56px}.container-outline{z-index:0;pointer-events:none;background:#76f3b209;border:2px solid #76f3b25c;border-radius:10px;position:absolute;inset:64px 48px;box-shadow:inset 0 0 28px #76f3b214}.container-tag{color:#081114;background:#76f3b2;border:1px solid #76f3b28f;border-radius:5px;padding:3px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:800;position:absolute;top:-14px;left:14px}.target-rack{z-index:1;pointer-events:none}.target-slot{background:linear-gradient(135deg,#ffce5426,#0000 58%),#ffce540d;border:2px dashed #ffce548a;border-radius:8px;flex:none;width:96px;height:96px;box-shadow:inset 0 0 18px #ffce541f}.ingredient-rack{z-index:2;display:block}.ingredient{aspect-ratio:1;color:#081114;border:2px solid #ffffff47;border-radius:8px;flex:none;place-items:center;width:96px;height:96px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:800;transition:margin .12s,transform .28s,box-shadow .28s,border-color .28s;display:grid;position:relative;transform:translate(0);box-shadow:0 16px 28px #0000003d}.ingredient strong{font-size:18px;line-height:1.1}.ingredient-tag{color:#081114d6;text-overflow:ellipsis;white-space:nowrap;background:#ffffff7a;border-radius:4px;max-width:calc(100% - 12px);padding:2px 5px;font-size:10px;line-height:1.1;position:absolute;top:6px;left:6px;overflow:hidden}.ingredient+.ingredient{margin-top:14px}.bento-stage.is-flexing .ingredient{border-color:#76f3b2d1;transform:translateY(2px);box-shadow:0 16px 28px #0000003d,0 0 24px #76f3b22e}.bento-stage.is-flexing .ingredient+.ingredient{margin-top:0}.bento-stage.is-complete .target-slot{background:#76f3b214;border-color:#76f3b2ad;box-shadow:inset 0 0 18px #76f3b21f}.rice{background:#eef8eb}.egg{background:#ffce54}.tea{background:#ff8066}.fish{background:#7fd7ff}.bean{background:#84f6b7}.shrimp{background:#ffa66b}.tomato{background:#ff6b7a}.nori{color:#f4fff8;background:#24323a}.bento-stage.level-20 .target-slot,.bento-stage.level-20 .ingredient{aspect-ratio:auto;height:auto;min-height:76px}.bento-stage.level-21 .target-slot,.bento-stage.level-21 .ingredient{aspect-ratio:auto;height:auto;min-height:64px}.bento-stage.level-21 .ingredient{text-align:center;padding:42px 10px 12px;display:block}.bento-stage.level-21 .ingredient:first-child strong{font-size:28px}.bento-stage.level-21 .ingredient:nth-child(2) strong{font-size:18px}.bento-stage.level-21 .ingredient:nth-child(3) strong{font-size:24px}.boot-log{color:#8ea79b;background:#051012cc;border:1px solid #d8f2e52e;border-radius:6px;max-width:calc(100% - 36px);padding:8px 10px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;position:absolute;bottom:16px;right:18px}.boot-log.success{color:#76f3b2;border-color:#76f3b28a}.success-badge{color:#081114;background:#ffce54;border:1px solid #ffce54b8;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;animation:.32s ease-out success-pop;display:flex;position:absolute;top:18px;right:18px;box-shadow:inset 0 0 0 1px #ffffff29,0 0 28px #ffce5447}.success-badge strong,.success-badge span{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;display:block}.success-badge strong{font-size:13px;line-height:1.1}.success-badge span{opacity:.72;margin-top:2px;font-size:11px}.finale-screen{z-index:90;color:#f6fff8;background:radial-gradient(circle at 50% 36%,#ffce5433,#0000 32%),#010709e6;place-items:center;padding:28px;display:grid;position:fixed;inset:0;overflow:hidden}.finale-card{z-index:2;text-align:center;background:linear-gradient(135deg,#76f3b224,#0000 34%),#081114;border:1px solid #76f3b29e;border-radius:8px;justify-items:center;gap:16px;width:min(620px,100%);padding:34px;animation:.36s ease-out finale-rise;display:grid;position:relative;box-shadow:0 28px 80px #00000080,0 0 42px #76f3b22e}.finale-icon{color:#081114;background:#ffce54;border:1px solid #ffce54b8;border-radius:999px;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 0 32px #ffce5457}.finale-kicker{color:#76f3b2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.finale-card h2{color:#fff3bb;text-shadow:0 0 24px #ffce5433;font-size:clamp(42px,6vw,72px);line-height:.96}.finale-card>p:not(.finale-kicker){color:#f1fff8;max-width:48ch;font-size:17px}.finale-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid}.finale-stats div{background:#84f6b712;border:1px solid #84f6b73d;border-radius:8px;align-content:center;gap:4px;min-height:86px;padding:14px;display:grid}.finale-stats strong{color:#fff3bb;font-size:24px}.finale-stats span{color:#9fb6ad;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.finale-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px;display:flex}.finale-confetti{pointer-events:none;position:absolute;inset:0}.finale-confetti span{top:-24px;left:calc(var(--x) * 1%);background:var(--confetti-color);width:10px;height:18px;animation:confetti-fall var(--duration) linear infinite;animation-delay:var(--delay);border-radius:2px;position:absolute}.finale-confetti span:nth-child(3n+1){--confetti-color:#76f3b2}.finale-confetti span:nth-child(3n+2){--confetti-color:#ffce54}.finale-confetti span:nth-child(3n){--confetti-color:#ff8066}.finale-confetti span:first-child{--x:7;--duration:4.8s;--delay:-1.2s}.finale-confetti span:nth-child(2){--x:13;--duration:5.6s;--delay:-3.1s}.finale-confetti span:nth-child(3){--x:19;--duration:4.4s;--delay:-2s}.finale-confetti span:nth-child(4){--x:26;--duration:5.2s;--delay:-.8s}.finale-confetti span:nth-child(5){--x:34;--duration:4.9s;--delay:-2.7s}.finale-confetti span:nth-child(6){--x:42;--duration:5.7s;--delay:-1.5s}.finale-confetti span:nth-child(7){--x:49;--duration:4.7s;--delay:-3.5s}.finale-confetti span:nth-child(8){--x:55;--duration:5.3s;--delay:-2.4s}.finale-confetti span:nth-child(9){--x:62;--duration:4.6s;--delay:-1.8s}.finale-confetti span:nth-child(10){--x:69;--duration:5.4s;--delay:-.9s}.finale-confetti span:nth-child(11){--x:76;--duration:4.8s;--delay:-3.3s}.finale-confetti span:nth-child(12){--x:83;--duration:5.1s;--delay:-2.2s}.finale-confetti span:nth-child(13){--x:89;--duration:4.5s;--delay:-1.1s}.finale-confetti span:nth-child(14){--x:94;--duration:5.5s;--delay:-3.8s}.finale-confetti span:nth-child(15){--x:4;--duration:5.2s;--delay:-2.9s}.finale-confetti span:nth-child(16){--x:31;--duration:4.6s;--delay:-3.6s}.finale-confetti span:nth-child(17){--x:58;--duration:5s;--delay:-1.7s}.finale-confetti span:nth-child(18){--x:97;--duration:4.9s;--delay:-2.6s}.guide-tour{z-index:80;color:#f6fff8;pointer-events:none;position:fixed;inset:0}.guide-click-catcher{z-index:1;pointer-events:none;position:absolute;inset:0}.guide-spotlight{z-index:2;pointer-events:none;border:2px solid #76f3b2;border-radius:12px;transition:left .22s,top .22s,width .22s,height .22s;position:fixed;box-shadow:0 0 0 9999px #010709c7,0 0 32px #76f3b261,inset 0 0 22px #76f3b21f}.guide-card{z-index:3;pointer-events:auto;background:#081114f5;border:1px solid #76f3b26b;border-radius:8px;gap:14px;padding:18px;transition:left .22s,top .22s;display:grid;position:fixed;box-shadow:0 24px 60px #00000075,0 0 36px #76f3b229}.guide-card-header,.guide-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.guide-card-header strong{color:#fff3bb;margin-top:2px;font-size:18px;display:block}.guide-eyebrow,.guide-step-count{color:#76f3b2;margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.guide-close{color:#dffbea;background:#d8f2e50f;border:1px solid #d8f2e533;border-radius:6px;flex:none;place-items:center;width:34px;height:34px;display:inline-grid}.guide-close:hover{color:#fff3bb;border-color:#ffce548f}.guide-progress{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.guide-progress span{background:#d8f2e52e;border-radius:999px;height:5px}.guide-progress span.active{background:#ffce54}.guide-progress span.done{background:#76f3b2}.guide-card h2{font-size:24px}.guide-card>p:not(.guide-eyebrow,.guide-step-count){color:#d8f2e5}.guide-secondary,.guide-primary{border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-weight:800;display:inline-flex}.guide-secondary{color:#dffbea;background:#d8f2e50f;border:1px solid #d8f2e533}.guide-secondary:disabled{cursor:not-allowed;opacity:.42}.guide-primary{color:#081114;background:#76f3b2;border:1px solid #76f3b2bd;box-shadow:0 0 22px #76f3b22e}.guide-primary:hover{background:#a2ffd0}.ad-banner{color:#9fb6ad;text-align:center;background:linear-gradient(#76f3b20d 1px,#0000 1px) 0 0/24px 24px,linear-gradient(90deg,#76f3b20d 1px,#0000 1px) 0 0/24px 24px,#84f6b70b;border:1px dashed #84f6b757;border-radius:8px;place-items:center;width:min(728px,100%);min-height:90px;margin-inline:auto;display:grid}.ad-banner p,.ad-banner strong,.ad-banner span{display:block}.ad-banner p{color:#76f3b2;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.ad-banner strong{color:#fff3bb;font-size:22px}.ad-banner span{color:#9fb6ad;font-size:13px}@keyframes success-pop{0%{opacity:0;transform:translateY(-8px)scale(.92)}72%{opacity:1;transform:translateY(0)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes finale-rise{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes confetti-fall{0%{transform:translateY(-24px)rotate(0)}to{transform:translateY(calc(100vh + 48px))rotate(280deg)}}@media (width<=980px){.game-shell{grid-template-columns:1fr}.control-panel{border-bottom:1px solid #84f6b738;border-right:0}.bento-stage{min-height:420px}}@media (width<=640px){.control-panel,.stage-panel{padding:20px}.topbar,.machine-header{flex-direction:column}.topbar-actions{justify-content:flex-start}h1{font-size:34px}h2{font-size:23px}.level-strip{grid-template-columns:repeat(6,1fr)}.target-rack,.ingredient-rack{inset:72px 22px 48px}.target-label{left:22px}.player-label{left:114px}.target-slot,.ingredient{width:76px;height:76px;font-size:14px}.action-row{grid-template-columns:1fr}.finale-card{padding:24px}.finale-stats{grid-template-columns:1fr}.guide-card{right:16px;width:auto!important;left:16px!important}}
