@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-sans-latin-400-normal-gapTbOY8.woff2)format("woff2"),url(./geist-sans-latin-400-normal-BOaIZNA2.woff)format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./geist-sans-latin-500-normal-uokXdC-Q.woff2)format("woff2"),url(./geist-sans-latin-500-normal-CN2lyvyL.woff)format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-sans-latin-600-normal-DFOURf8L.woff2)format("woff2"),url(./geist-sans-latin-600-normal-CA1yjETN.woff)format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./geist-sans-latin-700-normal-BmN9tIp5.woff2)format("woff2"),url(./geist-sans-latin-700-normal-CjScfYeH.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2"),url(./geist-mono-latin-400-normal-B2yvC1Cq.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./geist-mono-latin-500-normal-YINYabwD.woff2)format("woff2"),url(./geist-mono-latin-500-normal-D-GG86Jb.woff)format("woff")}@font-face{font-family:Phosphor Studio;src:url(./phosphor-studio-30T8Ih1x.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}.ph{font-variant:normal;text-transform:none;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;font-family:Phosphor Studio!important}.ph.ph-app-window:before{content:""}.ph.ph-arrow-circle-right:before{content:""}.ph.ph-arrow-counter-clockwise:before{content:""}.ph.ph-arrow-right:before{content:""}.ph.ph-arrow-up-right:before{content:""}.ph.ph-arrows-clockwise:before{content:""}.ph.ph-caret-down:before{content:""}.ph.ph-caret-right:before{content:""}.ph.ph-check-circle:before{content:""}.ph.ph-circle:before{content:""}.ph.ph-circle-dashed:before{content:""}.ph.ph-clipboard-text:before{content:""}.ph.ph-code:before{content:""}.ph.ph-coins:before{content:""}.ph.ph-copy:before{content:""}.ph.ph-corners-out:before{content:""}.ph.ph-cursor-click:before{content:""}.ph.ph-dots-three:before{content:""}.ph.ph-download-simple:before{content:""}.ph.ph-file:before{content:""}.ph.ph-file-code:before{content:""}.ph.ph-file-plus:before{content:""}.ph.ph-file-text:before{content:""}.ph.ph-file-zip:before{content:""}.ph.ph-floppy-disk:before{content:""}.ph.ph-folder:before{content:""}.ph.ph-folder-open:before{content:""}.ph.ph-folder-plus:before{content:""}.ph.ph-folder-simple:before{content:""}.ph.ph-folder-simple-plus:before{content:""}.ph.ph-game-controller:before{content:""}.ph.ph-globe-simple:before{content:""}.ph.ph-image:before{content:""}.ph.ph-info:before{content:""}.ph.ph-keyboard:before{content:""}.ph.ph-meteor:before{content:""}.ph.ph-palette:before{content:""}.ph.ph-pencil-simple:before{content:""}.ph.ph-person-simple-run:before{content:""}.ph.ph-play:before{content:""}.ph.ph-plus:before{content:""}.ph.ph-question:before{content:""}.ph.ph-share-network:before{content:""}.ph.ph-sparkle:before{content:""}.ph.ph-squares-four:before{content:""}.ph.ph-stop:before{content:""}.ph.ph-trash:before{content:""}.ph.ph-upload-simple:before{content:""}.ph.ph-warning-circle:before{content:""}.ph.ph-wifi-slash:before{content:""}.ph.ph-x:before{content:""}@font-face{font-family:Cabinet Grotesk;src:url(./cabinet-grotesk-700-yJmHbigL.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(./cabinet-grotesk-800-oMN7HQ6L.woff2)format("woff2");font-weight:800;font-display:swap}:root{--bg:#f6f7f4;--surface:#fcfcfa;--surface-sunk:#eef0e9;--surface-hover:#e5e8df;--border:#d9ded2;--text:#252922;--text-muted:#60665b;--accent:#e6c554;--accent-hover:#dbb941;--accent-text:#2c2b1c;--accent-label:#786018;--accent-soft:#eeecd9;--danger:#ad362c;--danger-soft:#fdecea;--focus:#786018;--stage:#eef0e9;--checker-a:#e2e6da;--checker-b:#f6f7f4;--syntax-string:#466037;--syntax-number:#48688b;--toast-bg:#252922;--toast-text:#f0f2e9;--toast-action:#e6c554;--shadow:0 24px 60px -40px #37432c3d;--radius:16px;--radius-small:6px;--gutter:16px;--font:"Geist Sans", ui-sans-serif, system-ui, sans-serif;--display:"Cabinet Grotesk", var(--font);--home-gutter:clamp(24px, 4.4vw, 64px);--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#171918;--surface:#1d201d;--surface-sunk:#222522;--surface-hover:#2b3027;--border:#383e33;--text:#f0f2e9;--text-muted:#aeb5a6;--accent:#e6c554;--accent-hover:#dbb941;--accent-text:#2c2b1c;--accent-label:#e2c865;--accent-soft:#303022;--danger:#f3a39a;--danger-soft:#402724;--focus:#e6c554;--stage:#171918;--checker-a:#2b3027;--checker-b:#222522;--syntax-string:#b9c7a7;--syntax-number:#a4bfe0;--toast-bg:#edf0e4;--toast-text:#252922;--toast-action:#786018;--shadow:0 24px 60px -40px #090e09a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#171918;--surface:#1d201d;--surface-sunk:#222522;--surface-hover:#2b3027;--border:#383e33;--text:#f0f2e9;--text-muted:#aeb5a6;--accent:#e6c554;--accent-hover:#dbb941;--accent-text:#2c2b1c;--accent-label:#e2c865;--accent-soft:#303022;--danger:#f3a39a;--danger-soft:#402724;--focus:#e6c554;--stage:#171918;--checker-a:#2b3027;--checker-b:#222522;--syntax-string:#b9c7a7;--syntax-number:#a4bfe0;--toast-bg:#edf0e4;--toast-text:#252922;--toast-action:#786018;--shadow:0 24px 60px -40px #090e09a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}body{background:var(--bg);min-height:100dvh;color:var(--text);font:400 15px/1.5 var(--font);-webkit-font-smoothing:antialiased}h2,h3{font-family:var(--display);margin:0;font-size:14px;font-weight:600}h3{font-size:13px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--text-muted)}.small{font-size:13px}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.brand i{color:var(--accent-label);font-size:22px}select{font:inherit;color:var(--text);background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;max-width:260px;padding:6px 10px;font-size:14px}.btn{white-space:nowrap;font:inherit;color:var(--text);background:var(--surface-sunk);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:500;transition:transform .18s,background-color .18s,border-color .18s;display:inline-flex}.btn:hover{border-color:var(--text-muted)}.btn:active{transform:translateY(1px)scale(.98)}.btn-primary{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.link-btn{font:inherit;color:var(--text-muted);border-radius:var(--radius-small);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:2px 4px;font-size:13px;text-decoration:underline}.link-btn:hover{color:var(--text)}.icon-row{gap:2px;display:flex}.icon-btn{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;font-size:16px;display:inline-grid}.icon-btn:hover{color:var(--text);background:var(--surface-hover)}.icon-btn:disabled{opacity:.4;cursor:default;background:0 0}.workspace{gap:var(--gutter);grid-template-columns:1fr;min-width:0;padding:44px 24px 24px;display:grid}@media (width>=1024px){.workspace{grid-template-columns:210px minmax(0,1.05fr) minmax(0,1fr);height:100dvh}}@media (width>=1440px){.workspace{grid-template-columns:232px minmax(0,1.05fr) minmax(0,1fr)}}.pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.pane-head{background:color-mix(in srgb, var(--surface) 70%, var(--surface-sunk));border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:10px 12px 10px 16px;display:flex}.pane-head h2{font-family:var(--font);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.right-column{gap:var(--gutter);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}@media (width<=1023px){.right-column{order:-2}.files-pane{order:-1;max-height:340px}}.file-tree{flex:1;min-height:120px;padding:10px 8px;overflow:auto}.file-tree.drop-root{background:var(--accent-soft)}.tree-row{height:34px;padding:0 4px 0 calc(6px + var(--depth,0) * 14px);border-radius:var(--radius-small);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;display:flex}.tree-row>i{color:var(--text-muted);flex:none;font-size:16px}.tree-row>i.ph-caret-right,.tree-row>i.ph-caret-down{width:12px;font-size:12px}.caret-space{flex:none;width:12px}.tree-row:hover{background:var(--surface-hover)}.tree-row[aria-selected=true]{background:var(--surface-sunk)}.tree-row[aria-current=true]{background:var(--accent-soft)}.tree-row[aria-current=true]>i:not(.ph-caret-right):not(.ph-caret-down){color:var(--accent-label)}.tree-row.drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-tag{font-size:11px;font-family:var(--mono);color:var(--text-muted);flex:none}.tree-row[aria-current=true] .tree-tag{color:var(--accent-label)}.tree-actions{flex:none;display:none}.tree-actions .icon-btn{width:24px;height:24px;font-size:14px}.tree-row:hover .tree-actions,.tree-row:focus-within .tree-actions{display:flex}.tree-row:hover .tree-tag,.tree-row:focus-within .tree-tag{display:none}.tree-rename{min-width:0;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--focus);border-radius:var(--radius-small);flex:1;padding:2px 6px;font-size:14px}.tree-empty{color:var(--text-muted);margin:8px;font-size:13px}.files-status{color:var(--danger);min-height:0;margin:0;padding:0 14px;font-size:13px}.files-status:not(:empty){padding:8px 14px}.project-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px 10px;padding:8px 10px;display:flex}.project-actions:empty{display:none}.editor{flex:1;height:60dvh;min-height:320px;overflow:hidden}@media (width>=1024px){.editor{height:auto;min-height:0}}.save-status{font-size:12px;font-family:var(--mono);color:var(--text-muted);flex:none}.save-status[data-state=error]{color:var(--danger)}.editor .cm-editor{height:100%;font-family:var(--mono);background:var(--surface);color:var(--text);font-size:14px}.editor .cm-scroller{font-family:var(--mono);line-height:1.75}.editor .cm-content{padding:16px 0}.editor .cm-gutters{background:var(--surface);color:var(--text-muted);border-right:0;padding-right:8px}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:color-mix(in srgb, var(--accent-soft) 55%, transparent)}.editor .cm-cursor{border-left-color:var(--text)}.editor .cm-selectionBackground,.editor .cm-focused .cm-selectionBackground{background:color-mix(in srgb, var(--accent) 22%, transparent)!important}.editor .cm-tooltip{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);max-width:420px}.editor .cm-diagnostic-error{border-left-color:var(--danger)}.tok-keyword{color:var(--accent-label);font-weight:500}.tok-comment{color:var(--text-muted);font-style:italic}.tok-string{color:var(--syntax-string)}.tok-number{color:var(--syntax-number)}.preview{flex-direction:column;flex:1;gap:8px;padding:14px;display:flex;overflow:auto}.preview-stage{border-radius:var(--radius);background-color:var(--checker-b);background-image:linear-gradient(45deg, var(--checker-a) 25%, transparent 25%), linear-gradient(-45deg, var(--checker-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--checker-a) 75%), linear-gradient(-45deg, transparent 75%, var(--checker-a) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;flex:1;place-items:center;min-height:220px;display:grid}.preview-stage img{min-width:64px;max-width:90%;max-height:50dvh;image-rendering:pixelated}.preview p{margin:0}.preview-use{color:var(--text-muted);font-size:13px}.preview-use code{font-family:var(--mono);color:var(--text);background:var(--surface-sunk);border-radius:var(--radius-small);padding:1px 6px}.perf{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;font-size:12px}@media (width<=639px){.perf{display:none}}.stage{background:var(--stage);aspect-ratio:var(--game-aspect,16 / 9);border-radius:var(--radius);place-items:center;max-height:46dvh;margin:12px 12px 0;display:grid;position:relative;overflow:hidden}.stage canvas{border-radius:2px;display:block}.stage canvas:focus-visible{outline-offset:-2px}.hint{color:var(--text-muted);align-items:center;gap:6px;margin:8px 14px 12px;font-size:13px;display:flex}.console-pane{min-height:260px}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.tabs [role=tab]{white-space:nowrap;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:6px 10px 8px;font-size:13px;font-weight:500;display:inline-flex}.tabs [role=tab]:hover{color:var(--text)}.tabs [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.count{font-family:var(--mono);color:var(--text);background:var(--surface-sunk);border-radius:999px;padding:3px 6px;font-size:11px;line-height:1}#problem-count{color:var(--danger);background:var(--danger-soft)}.panel{flex:1;min-height:0;padding:12px 14px 16px;overflow:auto}.panel-tools{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.stale{color:var(--text-muted);margin:0 0 8px;font-size:13px}.problem-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.problem{text-align:left;width:100%;font:inherit;color:var(--text);background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);border-radius:var(--radius);cursor:pointer;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;display:grid}.problem i{color:var(--danger);grid-row:span 2;margin-top:1px;font-size:18px}.problem .where{font-family:var(--mono);color:var(--text-muted);font-size:12px}.problem .message{font-size:14px}.problem .problem-hint{color:var(--text-muted);grid-column:2;font-size:13px}.problem:hover{border-color:var(--danger)}.empty{color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.empty i{color:var(--accent-label);font-size:18px}.log-list{font-family:var(--mono);max-height:100%;margin:0;padding:0;font-size:13px;list-style:none;overflow:auto}.log-line{border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);grid-template-columns:16px 1fr auto auto;align-items:baseline;gap:8px;padding:3px 0;display:grid}.log-line i{color:var(--text-muted);font-size:12px}.log-text{overflow-wrap:anywhere}.log-info .log-text{color:var(--text-muted)}.log-error .log-text,.log-error i{color:var(--danger)}.log-repeat{background:var(--surface-sunk);color:var(--text-muted);border-radius:999px;padding:1px 6px;font-size:11px}.log-time{color:var(--text-muted);text-align:right;min-width:40px;font-size:11px}.watch-body{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:start;gap:16px 20px;display:grid}.watch-body>p{grid-column:1/-1;margin:0}.watch-section h3{margin-bottom:6px}.watch-section p{margin:0}.watch-list{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:13px;display:grid}.watch-list dt{color:var(--text-muted)}.watch-list dd{font-family:var(--mono);text-align:right;margin:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font-family:var(--mono);color:var(--accent-label);background:var(--accent-soft);border-radius:999px;padding:2px 8px;font-size:12px}.toggle{cursor:pointer;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.toggle input{accent-color:var(--accent-label);width:16px;height:16px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.view-workspace{min-height:100dvh}.project-title{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:4px 8px;display:flex}.project-title h1{font-family:var(--display);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0;font-size:30px;font-weight:800;line-height:1.15}.kind-tag{color:var(--text-muted);white-space:nowrap;font-size:12px}.workspace-sidebar{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.workspace-back{min-height:44px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:8px;font-size:13px;text-decoration:none;display:inline-flex}.workspace-back:hover{color:var(--text);background:var(--surface-hover)}.workspace-back i{font-size:18px}.project-sharing{gap:4px;padding-bottom:8px;display:flex}.project-sharing .btn{flex:1;justify-content:center}.workspace-sidebar>.pane{flex:1}.workspace-settings{margin-top:auto;padding-top:4px}.studio-settings{align-items:center;gap:4px;display:flex}.game-controls{align-items:center;gap:3px;display:flex}.game-controls .btn{min-height:36px;padding:6px 12px;font-size:12px}.btn-ghost{color:var(--text);background:0 0;border-color:#0000;text-decoration:none}.btn-ghost:hover{background:var(--surface-hover);border-color:#0000}.btn-lg{padding:10px 20px;font-size:15px}.btn-danger{color:#fff7f6;background:#b42318;border-color:#b42318}.btn-danger:hover{background:#912018;border-color:#912018}.btn:disabled{opacity:.5;cursor:default;transform:none}.icon-btn-lg{width:36px;height:36px;font-size:19px}a.btn{text-decoration:none}.editor-loading{font:14px/1.6 var(--mono);color:var(--text-muted);margin:0;padding:14px}.view-home{flex-direction:column;min-height:100dvh;display:flex}.brand{color:var(--text);font-family:var(--display);letter-spacing:-.05em;align-items:center;gap:10px;font-size:25px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{width:34px;height:34px;image-rendering:pixelated;border-radius:9px}.brand-studio{color:var(--text-muted);font-family:var(--font);letter-spacing:-.03em;font-size:17px;font-weight:400}.home-tools{align-items:center;gap:8px;display:flex}.home-main{width:min(1280px, calc(100% - 2 * var(--home-gutter)));flex:1;gap:36px;margin:0 auto;padding:44px 0 64px;display:grid}.home-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.home-heading .brand{font-family:var(--font);letter-spacing:-.02em;margin-bottom:22px;font-size:15px;font-weight:500}.home-heading .brand-mark{border-radius:7px;width:26px;height:26px}.home-heading .brand-studio{font-size:14px}.home-heading h1{font-family:var(--display);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(36px,4vw,52px);font-weight:800;line-height:1.04}.home-heading-copy>p{text-wrap:pretty;margin:10px 0 0;font-size:14px}.learn-card{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:20px;grid-template-columns:minmax(0,1fr) 160px auto;align-items:center;gap:24px;padding:24px;text-decoration:none;transition:transform .2s,background-color .2s;display:grid}.learn-card:hover{background:var(--surface-sunk);transform:translateY(-3px)}.learn-top{color:var(--text-muted);align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.learn-label{color:var(--accent-label);font-weight:600}.learn-card h2{letter-spacing:-.04em;font-size:28px;font-weight:700}.learn-copy p{max-width:40ch;margin:6px 0 0;font-size:13px;line-height:1.5}.learn-preview{background:var(--surface-sunk);border-radius:8px;align-self:center;place-items:center;height:94px;display:grid;position:relative;overflow:hidden}.learn-preview canvas{max-width:100%;display:block}.learn-go{color:var(--accent-label);justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.home-section{gap:20px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-head h2{letter-spacing:-.035em;font-size:30px;font-weight:700}.section-head p{margin:5px 0 0;font-size:14px;line-height:1.5}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;transition:transform .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));transform:translateY(-3px)}.card-preview{aspect-ratio:16/9;background:var(--surface-sunk);place-items:center;display:grid;position:relative;overflow:hidden}.card-preview canvas{max-width:100%;display:block}.preview-loading:after,.project-skeleton:after{content:"";background:var(--surface-sunk);position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.preview-loading:after,.project-skeleton:after{animation:1.5s ease-in-out infinite alternate preview-pulse}}@keyframes preview-pulse{to{opacity:.5}}.card-preview.preview-empty>i{color:var(--text-muted);font-size:32px}.card-body{justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.card-text{min-width:0}.game-genre{color:var(--text-muted);font-size:11px;font-family:var(--mono);margin-bottom:5px;display:block}.card-text h3{letter-spacing:-.035em;font-size:24px;font-weight:700}.card-text p{text-wrap:pretty;max-width:44ch;margin:7px 0 0;font-size:13px;line-height:1.5}.card-actions{flex:none;gap:6px;display:flex}.card-link{z-index:1;border-radius:inherit;position:absolute;inset:0}.card-link:focus-visible{outline-offset:-3px}.project-card .icon-btn{z-index:2;position:relative}.showcase-grid{grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;display:grid}.showcase-card.is-feature{grid-row:span 2}.showcase-card.is-feature .card-preview{aspect-ratio:auto;flex:1;min-height:210px}.showcase-card.is-feature .card-body{align-items:flex-start}.showcase-card:not(.is-feature){grid-template-columns:.88fr 1fr;display:grid}.showcase-card:not(.is-feature) .card-preview{aspect-ratio:auto;min-height:155px}.showcase-card:not(.is-feature) .card-body{flex-direction:column;align-items:flex-start;gap:12px;padding:18px;display:flex}.showcase-card:not(.is-feature) .card-text h3{font-size:18px}.showcase-card:not(.is-feature) .card-text p{margin-top:5px;font-size:12px}.showcase-card:not(.is-feature) .card-actions{margin-top:auto}.showcase-card .btn{padding:6px 11px;font-size:12px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px;display:grid}.project-card .card-text h3{font-size:16px}.project-card .card-preview{max-height:180px}.project-card .card-body{padding:16px}.project-card.is-recent{grid-column:span 2;grid-template-columns:minmax(160px,.9fr) minmax(0,1fr);display:grid}.project-card.is-recent:only-child{grid-column:1/-1;grid-template-columns:minmax(180px,320px) minmax(0,1fr)}.project-card.is-recent .card-preview{aspect-ratio:auto;min-height:180px;max-height:none}.project-card.is-recent .card-body{align-items:flex-start;padding:28px}.project-card.is-recent .card-text h3{font-size:30px}.project-card h3{overflow-wrap:anywhere}.project-continue{color:var(--accent-label);align-items:center;gap:8px;margin-top:16px;font-size:12px;font-weight:600;display:flex}.project-continue i{transition:transform .18s}.project-card:hover .project-continue i{transform:translate(3px)}.project-skeleton{border-radius:16px;height:160px;position:relative;overflow:hidden}.empty-card{background:var(--surface-sunk);border-radius:16px;grid-column:1/-1;align-items:center;gap:24px;padding:30px;display:flex}.empty-card>i{width:64px;height:64px;color:var(--accent-label);background:var(--surface);border-radius:16px;flex:none;place-items:center;font-size:30px;display:grid}.empty-card h3{letter-spacing:-.025em;font-size:17px}.empty-card p{text-wrap:pretty;max-width:65ch;margin:6px 0 0;font-size:14px}.empty-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.folder-list{gap:8px;display:grid}.folder-row{border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.folder-open{font:inherit;color:var(--text);border-radius:var(--radius-small);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:6px 8px;font-weight:500;display:inline-flex}.folder-open:hover{background:var(--surface-hover)}.basics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;display:grid}.basics-item{border-bottom:1px solid var(--border);color:var(--text);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 4px;text-decoration:none;transition:background-color .18s;display:grid}.basics-item:hover{background:var(--surface-sunk)}.basics-item>i:first-child{background:var(--accent-soft);width:42px;height:42px;color:var(--accent-label);border-radius:10px;place-items:center;font-size:21px;display:grid}.basics-item>i:last-child{color:var(--text-muted)}.basics-item div{gap:2px;display:grid}.basics-name{text-transform:capitalize;font-size:15px;font-weight:500}.home-footer{padding:24px max(var(--home-gutter), calc((100% - 1280px) / 2));border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:12px;display:flex}.home-footer a{text-decoration:none}.home-footer a:hover{color:var(--text)}.update-state{align-items:center;gap:6px;display:inline-flex}.appearance-control{color:var(--text-muted);align-items:center;display:inline-flex;position:relative}.appearance-control>i{pointer-events:none;font-size:16px;position:absolute;left:10px}.appearance-control .appearance-arrow{font-size:12px;left:auto;right:10px}.appearance-control select{appearance:none;background:var(--surface);cursor:pointer;border-radius:8px;width:132px;min-width:0;max-width:none;min-height:36px;padding:8px 28px 8px 32px;font-size:12px}.workspace-settings .appearance-control select{width:108px}.file-heading{align-items:center;gap:8px;min-width:0;display:flex}.file-heading>i{color:var(--accent-label);font-size:17px}.save-status{font-family:var(--font);font-size:11px}.perf{font-size:10px}.files-pane{background:color-mix(in srgb, var(--surface) 50%, var(--bg))}.files-pane .pane-head{background:0 0}.files-toggle{display:none}.project-actions{padding:14px}.project-actions .link-btn{color:var(--accent-label);font-size:12px}.stage{border-radius:8px;margin:16px 16px 0}.hint{margin:12px 16px 16px;font-size:11px;line-height:1.5}.tabs{gap:4px;padding:10px 12px 0}.panel{padding:18px 20px}.empty{font-size:13px}.lesson-head{padding:18px}.lesson-body{padding:20px}.lesson-title{letter-spacing:-.035em;font-size:23px!important}.skip-link{z-index:60;background:var(--accent);color:var(--accent-text);border-radius:8px;padding:10px 16px;font-weight:600;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}@media (width<=1100px){.showcase-card.is-feature .card-body{flex-direction:column}.project-card.is-recent{grid-template-columns:1fr}.project-card.is-recent .card-preview{aspect-ratio:16/9;min-height:0}}@media (width<=767px){.btn{min-height:44px}.icon-btn{min-width:44px;min-height:44px}.appearance-control select{min-height:44px}.brand{font-size:18px}.home-heading{flex-direction:column;align-items:flex-start;gap:20px}.home-heading .brand{margin-bottom:18px}.home-heading h1{font-size:38px}.home-tools{gap:8px;width:100%}.home-tools .btn{flex:1;justify-content:center;min-height:44px;font-size:13px}.home-tools .btn-primary{order:-1}.home-main{gap:36px;width:calc(100% - 32px);padding:32px 0 40px}.learn-card{grid-template-columns:minmax(0,1fr) 120px}.learn-go{grid-column:1/-1}.project-card{grid-template-columns:104px minmax(0,1fr);display:grid}.project-card .card-preview{aspect-ratio:auto;min-height:120px;max-height:none}.project-card.is-recent{grid-column:1/-1;grid-template-columns:104px minmax(0,1fr)}.project-card.is-recent:only-child{grid-template-columns:104px minmax(0,1fr)}.project-card.is-recent .card-preview{aspect-ratio:auto;min-height:156px}.project-card.is-recent .card-body{padding:16px}.project-card.is-recent .card-text h3{font-size:24px}.showcase-grid{grid-template-rows:auto;grid-template-columns:1fr}.showcase-card.is-feature{grid-row:auto}.showcase-card.is-feature .card-preview{aspect-ratio:16/9;min-height:0}.showcase-card.is-feature .card-body{flex-direction:row;align-items:flex-start}.showcase-card:not(.is-feature){grid-template-columns:.85fr 1fr}.showcase-card:not(.is-feature) .card-preview{min-height:180px}.section-head h2{font-size:21px}.section-head p{font-size:13px}.card-body{padding:16px}.card-text h3{font-size:18px}.empty-card{align-items:flex-start;gap:16px;padding:24px}.empty-card>i{border-radius:12px;width:44px;height:44px;font-size:24px}.empty-card p{font-size:13px}.basics-grid{grid-template-columns:1fr}.home-footer{padding:20px 16px}.workspace{padding:12px}.console-pane{min-height:180px}.studio-settings .icon-btn{min-width:44px;min-height:44px}.project-card .icon-btn,.game-controls .icon-btn{width:44px;height:44px}}@media (width<=1023px){.workspace-sidebar{order:-3}.workspace-sidebar>.files-pane{max-height:240px}.files-pane .files-label{display:none}.files-toggle{min-height:44px;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.files-pane:not(.is-expanded) .file-tree,.files-pane:not(.is-expanded) .files-status,.files-pane:not(.is-expanded) .project-actions{display:none}.files-pane.is-expanded .files-toggle i{transform:rotate(180deg)}.workspace-sidebar>.lesson-pane{max-height:none}.workspace-settings{justify-content:flex-end}}@media (width<=400px){.home-tools .btn{gap:4px;padding:6px;font-size:11px}.home-tools .btn i{font-size:13px}.learn-card{grid-template-columns:minmax(0,1fr) 88px;gap:14px 12px}.learn-top{gap:8px;font-size:11px}.learn-card h2{font-size:20px}.showcase-card.is-feature .card-body{flex-direction:column}.showcase-card:not(.is-feature) .card-body{padding:14px}}.menu{z-index:40;border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:200px;padding:6px;display:grid;position:absolute;box-shadow:0 18px 40px -20px #09090b99}.menu-item{font:inherit;text-align:left;color:var(--text);border-radius:var(--radius-small);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-hover);outline:none}.menu-danger{color:var(--danger)}.dialog{width:min(var(--dialog-width,480px), calc(100% - 2 * var(--gutter)));border:1px solid var(--border);background:var(--surface);max-height:min(86dvh,820px);color:var(--text);border-radius:20px;padding:0;box-shadow:0 30px 80px -30px #09090bb3}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#09090b80}.dialog[open]{flex-direction:column;display:flex}@media (prefers-reduced-motion:no-preference){.dialog[open]{animation:.16s dialog-in}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px)scale(.99)}}}.dialog-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 0 20px;display:flex}.dialog-head h2{letter-spacing:-.01em;font-size:18px}.dialog-description{color:var(--text-muted);margin:6px 20px 0;font-size:14px;line-height:1.5}.dialog-body{gap:14px;padding:16px 20px 20px;display:grid;overflow:auto}.dialog-body>p{margin:0;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.form{gap:8px;display:grid}.form label,.share-row label{font-size:13px;font-weight:500}.form input,.form textarea,.share-input,.help-search{font:inherit;color:var(--text);background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:9px 12px;font-size:15px}.form input[aria-invalid=true]{border-color:var(--danger)}.paste-area{resize:vertical;font-family:var(--mono)!important;font-size:13px!important}.form-error{min-height:1.2em;color:var(--danger);margin:0;font-size:13px}.share-row{gap:6px;display:grid}.share-row p{margin:0}.share-line{gap:8px;display:flex}.share-input{font-family:var(--mono);min-width:0;font-size:13px}.paste-found p{margin:0 0 10px;font-weight:500}.export-option{border:1px solid var(--border);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px;display:grid}.export-option>i{color:var(--accent-label);font-size:26px}.export-words h3{font-size:15px}.export-words p{margin:2px 0 0}.help-list{gap:20px;display:grid}.help-list h3{margin-bottom:8px;font-size:14px}.help-list dl{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px 18px;margin:0;font-size:14px;display:grid}.help-list dd{color:var(--text-muted);margin:0}.help-list code,.help-list kbd{font-family:var(--mono);color:var(--text);background:var(--surface-sunk);border-radius:var(--radius-small);padding:2px 6px;font-size:13px}@media (width<=600px){.help-list dl{grid-template-columns:1fr;gap:2px}.help-list dd{margin-bottom:8px}}.toasts{z-index:60;width:min(520px, calc(100% - 2 * var(--gutter)));pointer-events:none;gap:8px;display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--toast-bg);color:var(--toast-text);pointer-events:auto;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;font-size:14px;display:flex;box-shadow:0 16px 40px -20px #09090bcc}.toast-error{color:#ffe2de;background:#3b1512}.toast-action{font:inherit;color:var(--toast-action);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-weight:600}.update-banner{z-index:55;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;max-width:calc(100% - 40px);padding:10px 10px 10px 16px;font-size:14px;display:flex;position:fixed;bottom:20px;right:20px}.update-banner>i{color:var(--accent-label);font-size:18px}.lesson{flex-direction:column;height:100%;min-height:0;display:flex}.lesson-head{border-bottom:1px solid var(--border);padding:12px 16px}.lesson-kicker{color:var(--text-muted);justify-content:space-between;gap:8px;margin:0;font-size:13px;display:flex}.lesson-kicker span:first-child{color:var(--accent-label);font-weight:600}.lesson-body{flex:1;padding:16px;overflow:auto}.lesson-title{letter-spacing:-.02em;margin-bottom:10px!important;font-size:20px!important}.lesson-body p{margin:0 0 12px;font-size:14.5px;line-height:1.55}.lesson-body code{font-family:var(--mono);background:var(--surface-sunk);border-radius:var(--radius-small);padding:1px 5px;font-size:13px}.lesson-example{margin:14px 0 0}.lesson-example figcaption{color:var(--text-muted);margin-bottom:6px;font-size:12px}.lesson-example pre{border-radius:var(--radius);background:var(--surface-sunk);font:13px/1.6 var(--mono);margin:0;padding:12px;overflow:auto}.lesson-example pre code{background:0 0;padding:0}.lesson-status{border-radius:var(--radius);background:var(--surface-sunk);color:var(--text-muted);align-items:flex-start;gap:8px;margin:0 16px;padding:10px 12px;font-size:14px;line-height:1.45;display:flex}.lesson-status i{flex:none;font-size:18px}.lesson-status[data-state=done]{background:var(--accent-soft);color:var(--text)}.lesson-status[data-state=done] i{color:var(--accent-label)}.lesson-status[data-state=problem]{background:var(--danger-soft);color:var(--text)}.lesson-status[data-state=problem] i{color:var(--danger)}.lesson-nav{justify-content:flex-end;gap:8px;padding:12px 16px 14px;display:flex}.lesson-nav .btn-primary{margin-left:auto}.lesson-finish{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.view-play{background:var(--bg);min-height:100dvh;color:var(--text);grid-template-rows:1fr auto;display:grid}.view-play .btn-ghost{color:var(--text)}.view-play .btn-ghost:hover,.view-play .icon-btn:hover{background:var(--surface-hover)}.view-play .icon-btn{color:var(--text-muted)}.play-controls{flex-wrap:wrap;align-items:center;gap:12px;width:min(1280px,100% - 48px);margin:0 auto;padding:12px 0 24px;display:flex}.play-title{font-family:var(--display);margin:0 auto 0 0;font-size:22px;font-weight:700}.play-tools{gap:4px;display:flex}.play-made{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.view-play-standalone .play-title{color:var(--text);margin:0 auto;font-size:15px}.view-play-standalone .play-made{min-width:140px}.view-play-standalone .play-tools{justify-content:flex-end;min-width:140px}.play-stage{place-items:center;min-height:0;margin:44px 24px 0;display:grid;position:relative}.play-stage canvas{display:block}.play-stage:fullscreen{background:var(--bg);margin:0}.play-hint{color:var(--text-muted);justify-content:flex-start;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.play-error{text-align:center;max-width:520px;color:var(--danger)}.desktop-window-grip{display:none}:root[data-desktop=macos] .desktop-window-grip{z-index:10;height:32px;display:block;position:fixed;top:0;left:88px;right:0}:root[data-desktop=macos] .workspace{padding-top:44px}@media (width<=1023px){.stage{max-height:none}}
