:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fff8e9;--paper-deep:#f8e7c5;--ink:#3f5360;--ink-soft:#566c72;--ink-faint:#70817f;--sky:#bfe8f2;--sky-deep:#8bcfdf;--grass:#a9d993;--grass-deep:#78bd7d;--sun:#ffd36e;--coral:#b9574f;--coral-deep:#8f413c;--mint:#8bcfb6;--lavender:#b9a9e5;--line:#4e676829;--shadow:0 18px 42px #576b6024;font-family:Avenir Next,Avenir,Nunito,ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 0%, #ffd36e52, transparent 22rem), radial-gradient(circle at 100% 16%, #b9a9e530, transparent 25rem), linear-gradient(180deg, #fffaf0 0%, var(--paper) 70%, #f7e6c3 100%);margin:0;overflow-x:hidden}button,input,select{font:inherit}button{color:inherit}.app-shell{width:min(1400px,100%);min-height:100vh;margin:0 auto;padding:28px 34px 30px}.topbar,.control-dock,.panel-topline,.code-head,.world-legend,.control-group,.line-state{align-items:center;display:flex}.topbar{justify-content:space-between;gap:20px;padding:0 8px 22px}.brand-lockup{align-items:center;gap:13px;display:flex}.brand-mark{width:42px;height:42px;position:relative}.brand-mark:before{content:"";background:var(--sun);border-radius:50%;position:absolute;inset:8px;box-shadow:0 4px #c68b4a2e}.brand-mark span{background:var(--coral);border-radius:4px;width:4px;height:8px;position:absolute;left:19px}.brand-mark span:first-child{top:0;transform:rotate(-18deg)}.brand-mark span:nth-child(2){top:19px;left:auto;right:0;transform:rotate(72deg)}.brand-mark span:nth-child(3){bottom:0;transform:rotate(18deg)}.brand-name{color:var(--ink);letter-spacing:.12em;font-size:13px;font-weight:850}.brand-name span{color:var(--coral);padding:0 4px}.brand-sub{color:var(--ink-faint);letter-spacing:.13em;margin-top:4px;font-size:10px}.mission-chip{color:var(--ink-soft);letter-spacing:.08em;align-items:center;gap:8px;font-size:11px;font-weight:750;display:flex}.signal-dot{background:var(--mint);border-radius:50%;width:10px;height:10px;box-shadow:0 2px #43887038}.mission-chip[data-state=running] .signal-dot{animation:1.2s ease-in-out infinite bob}.mission-chip[data-state=error] .signal-dot{background:var(--coral)}.mission-chip[data-state=success] .signal-dot{background:var(--grass-deep)}.game-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);align-items:start;gap:28px;display:grid}.panel{min-width:0;box-shadow:none;background:0 0;border:0}.world-panel{padding:5px 0 0}.code-panel{background:0 0;border-radius:28px;min-height:615px;padding:25px 16px 18px 26px}.panel-topline{justify-content:space-between;gap:18px}.eyebrow{color:var(--coral-deep);letter-spacing:.16em;font-size:10px;font-weight:850}h1,h2,p{margin:0}h1{color:var(--ink);letter-spacing:-.055em;margin-top:7px;font-size:clamp(27px,3.4vw,43px);font-weight:850;line-height:1.03}.level-readout{color:var(--ink-faint);letter-spacing:.1em;font-size:14px;font-weight:750}.level-readout #levelNumber{color:var(--coral-deep);font-size:26px;font-weight:850}.slash{color:var(--paper-deep);padding:0 4px}.story-line{min-height:24px;color:var(--ink-soft);margin:10px 0 12px;font-size:13px;line-height:1.5}.starter-nudge{width:min(100%,590px);min-height:54px;color:var(--ink);background:#fff6d2d1;border-radius:18px;align-items:center;gap:11px;margin:0 0 15px;padding:9px 12px;display:flex;box-shadow:0 7px #e2b5631c}.starter-nudge[hidden]{display:none}.nudge-illustration{background:#fff;border-radius:50%;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.nudge-copy{gap:2px;min-width:0;font-size:12px;line-height:1.45;display:grid}.nudge-copy strong{color:var(--coral-deep);font-size:12px}.nudge-message{color:var(--ink-soft)}.nudge-message code{color:var(--coral-deep);font-weight:800}.nudge-dismiss{min-height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;padding:0 10px;font-size:11px;font-weight:750}.nudge-dismiss:hover,.nudge-dismiss:focus-visible{color:var(--coral-deep);outline-offset:2px;background:#ffffffb8;outline:3px solid #ee8d7833}.canvas-wrap{background:var(--sky);min-height:448px;box-shadow:var(--shadow);border-radius:28px;position:relative;overflow:hidden}#worldCanvas{width:100%;height:448px;display:block}.canvas-hud{max-width:44%;color:var(--ink);background:#fffcefc7;border-radius:14px;flex-direction:column;gap:3px;padding:8px 11px;font-size:11px;font-weight:700;display:flex;position:absolute;top:15px;box-shadow:0 5px 13px #576b601a}.hud-left{left:15px}.hud-right{text-align:right;align-items:flex-end;right:15px}.hud-key{color:var(--coral-deep);letter-spacing:.12em;font-size:9px;font-weight:850}.world-mirror{min-height:30px;color:var(--ink-soft);letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;background:#fffcf1cc;border-radius:15px;margin-top:11px;padding:8px 13px;font:10px/1.25 SFMono-Regular,Consolas,monospace;overflow:hidden;box-shadow:0 4px 11px #576b6012}.world-mirror[data-error=true]{color:#a95450;background:#ffe3d8}.world-mirror[data-success=true]{color:#34745f;background:#dff4dd}.world-legend{color:var(--ink-faint);letter-spacing:.08em;flex-wrap:wrap;gap:13px;padding:12px 4px 0;font-size:9px;font-weight:750}.legend-swatch{vertical-align:-1px;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.legend-swatch.cyan{background:var(--sky-deep)}.legend-swatch.amber{background:var(--sun)}.legend-swatch.violet{background:var(--lavender)}.legend-spacer{flex:1}.shortcut{color:var(--ink-faint)}kbd{color:var(--ink-soft);background:#fff;border:1px solid #4e676829;border-radius:7px;padding:3px 6px;font-size:9px}.code-head{justify-content:space-between;padding-bottom:13px}.code-title{color:var(--ink);letter-spacing:.04em;margin-top:6px;font-size:16px;font-weight:800}.code-badge{color:#6b5b9e;background:#eee7ff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:850;display:grid}.code-help{color:var(--ink-soft);padding:11px 0 10px;font-size:12px;line-height:1.55}.code-lines{flex:1;min-width:0;padding:7px 0 12px;font:13px/2.25 SFMono-Regular,Consolas,monospace;overflow:auto}.code-line{min-height:34px;color:var(--ink-soft);border-left:4px solid #0000;border-radius:0 15px 15px 0;align-items:center;padding:0 7px 0 10px;transition:background .2s,border-color .2s,color .2s;display:flex;position:relative}.code-line.current{color:var(--ink);border-left-color:var(--sun);background:#fff0bd}.code-line.completed{color:#8da19b}.code-line.nudge-target{color:var(--ink);border-left-color:var(--coral);background:#ffe9ad;box-shadow:0 5px #c85d531a}.code-lines[data-locked=true]{opacity:.75}.line-no{width:27px;color:var(--ink-faint);-webkit-user-select:none;user-select:none;font-size:10px}.code-text{white-space:pre;flex:1;min-width:0}.code-keyword{color:#65539d}.code-fn{color:#2d839a}.code-string{color:#a7662e}.code-comment{color:var(--ink-faint)}.code-token,.code-input,.code-select{color:#825229;font:inherit;background:#fff3cf;border:0;border-bottom:2px solid #d39552;border-radius:8px;outline:none;padding:2px 6px;line-height:1.55}.code-select{cursor:pointer}.code-token:focus,.code-input:focus,.code-select:focus{box-shadow:0 0 0 3px #ee8d783d}.code-input.number{text-align:center;width:43px}.order-controls{opacity:.35;gap:4px;margin-left:7px;transition:opacity .2s;display:flex}.code-line:hover .order-controls,.code-line:focus-within .order-controls{opacity:1}.move-button{width:40px;min-width:40px;height:44px;color:var(--ink-soft);cursor:pointer;background:#fff;border:1px solid #4e676829;border-radius:13px;padding:0;font-size:14px}.move-button:hover:not(:disabled){color:var(--coral-deep);background:#fff0e6;border-color:#ee8d7873}.move-button:disabled{opacity:.28;cursor:default}.move-button.nudge-target-control{color:var(--coral-deep);border-color:var(--coral);background:#fff0bd;animation:1.5s ease-in-out infinite nudge-arrow}.code-foot{padding-top:12px}.line-state{color:var(--ink-soft);letter-spacing:.04em;gap:7px;font:10px SFMono-Regular,Consolas,monospace}.line-led{background:var(--ink-faint);border-radius:50%;width:8px;height:8px}.line-state.running .line-led{background:var(--sky-deep);animation:1s ease-in-out infinite bob}.line-state.error .line-led{background:var(--coral)}.line-state.success .line-led{background:var(--grass-deep)}.runtime-message{min-height:19px;color:var(--ink-faint);margin-top:8px;font-size:11px;line-height:1.45}.runtime-message.error{color:#a95450}.runtime-message.success{color:#34745f}.control-dock{gap:12px;padding:18px 4px 0}.control-group{gap:8px}.action-button,.hint-button,.next-button{min-height:48px;color:var(--ink-soft);cursor:pointer;letter-spacing:.08em;background:#ffffffb8;border:2px solid #4e67681f;border-radius:17px;padding:0 15px;font-size:11px;font-weight:850;transition:transform .18s,background .18s,border-color .18s,color .18s}.action-button:hover:not(:disabled),.hint-button:hover:not(:disabled),.next-button:hover:not(:disabled){color:var(--coral-deep);background:#fff;border-color:#ee8d786b;transform:translateY(-2px)}.action-button:active:not(:disabled),.hint-button:active:not(:disabled),.next-button:active:not(:disabled){transform:translateY(0)}.action-button.primary,.next-button{color:#fffaf0;background:var(--coral);border-color:var(--coral);box-shadow:0 5px #be64582e}.action-button.primary:hover:not(:disabled),.next-button:hover:not(:disabled){color:#fff;background:var(--coral-deep);border-color:var(--coral-deep)}.button-icon{width:16px;color:inherit;margin-right:3px;display:inline-block}.action-button:disabled,.hint-button:disabled,.next-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.dock-divider{background:var(--paper-deep);border-radius:2px;width:2px;height:26px;margin:0 2px}.hint-button{color:#a4743f;border-color:#eab66a80}.hint-button span{border:2px solid;border-radius:50%;place-items:center;width:19px;height:19px;margin-right:3px;display:inline-grid}.next-button{margin-left:auto;display:none}.next-button.visible{display:block}.next-button span{vertical-align:-1px;margin-left:5px;font-size:16px}.progress-dots{gap:5px;margin-left:auto;display:flex}.progress-dot{background:var(--paper-deep);border-radius:10px;width:20px;height:8px}.progress-dot.current{background:var(--sun)}.progress-dot.done{background:var(--mint)}.starter-nudge[data-stage=try]{background:#e4f4dd}.app-shell[data-nudge-stage=try] #runButton{animation:1.8s ease-in-out infinite gentle-pulse}.toast{z-index:10;max-width:min(440px,100% - 28px);color:var(--ink);opacity:0;pointer-events:none;text-align:center;background:#fffdf4;border-radius:16px;padding:11px 16px;font-size:12px;transition:opacity .2s,transform .2s;position:fixed;bottom:90px;left:50%;transform:translate(-50%,14px);box-shadow:0 12px 32px #576b6033}.toast.show{opacity:1;transform:translate(-50%)}.level-card{z-index:20;width:min(390px,100% - 36px);color:var(--ink);text-align:center;background:#fff9e9;border:0;border-radius:28px;padding:30px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #576b603d}.level-card.hidden{display:none}.card-kicker{color:#4d9b78;letter-spacing:.16em;font-size:10px;font-weight:850}.level-card h2{color:var(--ink);letter-spacing:-.04em;margin-top:11px;font-size:30px}.level-card p{color:var(--ink-soft);margin-top:9px;font-size:13px;line-height:1.6}.card-button{margin-top:22px}@keyframes bob{50%{transform:translateY(-2px)}}@keyframes gentle-pulse{0%,to{box-shadow:0 5px #be64582e}50%{box-shadow:0 6px #be64582e,0 0 0 7px #ee8d7821}}@keyframes nudge-arrow{50%{background:#fff6d8;box-shadow:0 4px #c85d5329,0 0 0 5px #ee8d781f}}@media (width<=980px){.app-shell{padding:22px 20px 26px}.game-grid{grid-template-columns:1fr;gap:22px}.code-panel{min-height:380px;padding-left:18px}.code-lines{min-height:180px}}@media (width<=590px){.app-shell{padding:16px 12px 22px}.topbar{align-items:flex-start;padding:0 3px 17px}.brand-sub{display:none}.brand-name{font-size:11px}.world-panel,.code-panel{padding-left:0;padding-right:0}.code-panel{padding-top:19px;padding-bottom:14px}.canvas-wrap,#worldCanvas{border-radius:23px;height:340px;min-height:340px}.canvas-hud{max-width:48%;padding:7px 9px;font-size:10px;top:10px}.hud-left{left:10px}.hud-right{right:10px}.starter-nudge{align-items:flex-start}.nudge-dismiss{min-height:44px;padding:0 7px}.world-legend{gap:8px}.shortcut{display:none}.control-dock{flex-wrap:wrap;align-items:stretch;gap:10px;padding-top:15px}.control-group{gap:6px;width:100%}.action-button{flex:1;min-width:0;padding:0 6px;font-size:10px}.dock-divider{display:none}.hint-button,.next-button{flex:1}.progress-dots{order:5;width:100%;margin-left:0}.progress-dot{flex:1}.next-button{margin-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
