@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.app--loading{background:var(--bg-app)}.app{background:var(--bg-app);flex-direction:column;height:100%;display:flex}.app__header{align-items:center;gap:var(--space-3);height:var(--header-height);padding:0 var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--border-default);flex-shrink:0;display:flex}.app__brand{align-items:center;gap:var(--space-2);font-size:inherit;font-weight:inherit;flex-shrink:0;display:flex}.app__brand-button{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin-left:calc(var(--space-2) * -1);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-out);display:flex}.app__brand-button:hover{background:var(--bg-sunken)}.app__name{font-size:var(--text-base);letter-spacing:-.02em;color:var(--text-primary);font-weight:700}.app__doc-title-wrap{min-width:0;max-width:320px;transition:max-width var(--duration-base) var(--ease-out);flex:0 auto;display:inline-grid;position:relative}.app__doc-title-wrap:focus-within{max-width:min(620px,46vw)}.app__doc-title-wrap[data-clipped=true]:not(:focus-within) .app__doc-title{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000)}.app__doc-title-mirror,.app__doc-title{padding:var(--space-1) var(--space-3);font-family:inherit;font-size:var(--text-base);letter-spacing:inherit;border:1px solid #0000;grid-area:1/1;font-weight:600}.app__doc-title-mirror{white-space:pre;visibility:hidden;pointer-events:none;min-width:3ch;overflow:hidden}.app__doc-title{width:100%;min-width:0;color:var(--text-primary);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0}@media (prefers-reduced-motion:reduce){.app__doc-title-wrap{transition:none}}.app__doc-title:hover{background:var(--bg-inset)}.app__doc-title:focus{background:var(--bg-inset);border-color:var(--accent);outline:none}.app__header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.app__history,.app__toggles{gap:2px;display:flex}.app__icon-button svg,.app__toggle svg{width:16px;height:16px}.app__run svg{width:14px;height:14px}.app__icon-button{width:28px;height:28px;color:var(--text-muted);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;font-size:15px;display:flex}.app__icon-button:hover:not(:disabled){background:var(--bg-sunken);color:var(--text-primary)}.app__icon-button:disabled{opacity:.3;cursor:not-allowed}.app__toggle{width:28px;height:28px;color:var(--text-muted);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;font-size:14px;display:flex}.app__toggle:hover{background:var(--bg-sunken);color:var(--text-secondary)}.app__toggle[data-active]{color:var(--accent-text);background:var(--accent-soft)}.app__divider{background:var(--border-default);width:1px;height:20px}.app__ghost-button{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-md);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);font-weight:600}.app__ghost-button:hover{background:var(--bg-sunken);color:var(--text-primary)}.app__settings{background:var(--bg-sunken);border-radius:var(--radius-md);align-items:center;gap:2px;padding:3px;display:inline-flex}.app__select{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-inset);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;font-weight:600}.app__select:hover{border-color:var(--border-strong)}.app__run{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--on-accent);background:var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);font-weight:650;display:flex}.app__run:hover{background:var(--accent-strong)}.app__run:active{transform:scale(.97)}.app__main{flex:1;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;display:grid}.app__palette{grid-column:1}.app__center{grid-column:2}.app__robot{grid-column:3}.app__main--home,.app__main--code{display:block;overflow:hidden}.app__icon-button[data-active]{color:var(--accent-text);background:var(--accent-soft)}.app__palette,.app__robot{min-height:0;position:relative;overflow:hidden}.app__palette{width:var(--palette-size,244px);border-right:1px solid var(--border-subtle)}.app__robot{width:var(--robot-size,330px);border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;display:flex}.app__center{flex-direction:column;min-width:0;min-height:0;display:flex}.app__canvas{flex:1;min-height:0;position:relative}.app__canvas-pane{visibility:hidden;pointer-events:none;position:absolute;inset:0}.app__canvas-pane[data-visible]{visibility:visible;pointer-events:auto;height:100%;position:relative;container-type:inline-size}.app__canvas-tabs{padding:var(--space-2) var(--space-3) 0;background:var(--bg-base);flex-shrink:0;gap:2px;display:flex}.app__canvas-tab{padding:6px var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);align-items:center;gap:6px;font-weight:600;display:inline-flex}.app__canvas-tab svg{width:15px;height:15px}.app__canvas-tab:hover{color:var(--text-primary);background:var(--bg-inset)}.app__canvas-tab[data-active]{color:var(--accent-text);background:var(--bg-surface)}.app__drawer{background:var(--bg-surface);border-top:1px solid var(--border-default);flex-direction:column;flex-shrink:0;display:flex;position:relative}.app[data-drawer=open] .app__drawer{height:var(--drawer-size,300px)}.app[data-drawer=closed] .app__drawer{height:auto}.app__drawer-tabs{padding:var(--space-2) var(--space-2) 0;border-bottom:1px solid var(--border-subtle);scrollbar-width:none;flex-shrink:0;align-items:center;gap:2px;display:flex;overflow-x:auto}.app__drawer-tablist{align-self:stretch;align-items:center;gap:2px;display:flex}.app__drawer-tabs::-webkit-scrollbar{display:none}.app[data-drawer=closed] .app__drawer-tabs{padding-bottom:var(--space-2);border-bottom:none}.app__drawer-tab{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--duration-fast) var(--ease-out);font-weight:550;position:relative}.app__drawer-tab:hover{color:var(--text-secondary)}.app__drawer-tab[data-selected]{color:var(--text-primary);font-weight:650}.app__drawer-tab[data-selected]:after{content:"";left:var(--space-2);right:var(--space-2);background:var(--accent);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}.app__drawer-collapse{flex-shrink:0;margin-left:auto}.app__drawer-body{flex:1;min-height:0;position:relative}.app__drawer-pane{min-height:0;position:absolute;inset:0}.app__drawer-pane[data-hidden]{visibility:hidden;pointer-events:none}@media (width<=1180px){.app__doc-title-wrap{max-width:180px}}@media (width<=960px){.app__main{grid-template-columns:1fr}.app__palette,.app__robot:not([data-sheet]),.app__rail-toggle{display:none}.app__robot[data-sheet]{z-index:60;border-radius:var(--radius-xl,20px) var(--radius-xl,20px) 0 0;width:auto;height:min(72dvh,600px);animation:app-sheet-up var(--duration-base,.2s) var(--ease-out);border-left:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #0f142447}.app__sheet-close{width:100%;padding:var(--space-2) 0 var(--space-1);font-size:var(--text-xs);color:var(--text-muted);flex-direction:column;flex-shrink:0;align-items:center;gap:6px;font-weight:650;display:flex}.app__sheet-grabber{background:var(--border-default);border-radius:var(--radius-full);width:40px;height:4px}.app__doc-title-wrap{display:none}}@media (width<=900px){.app__wide-only,.app__divider,.app__user{display:none}.app__header-actions{margin-left:auto}}@media (width<=640px){.app__name,.save-status__label{display:none}.app__header{gap:var(--space-2)}.app__header-actions{gap:2px}}@media (width<=360px){.app__run-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.app__user{align-items:center;gap:var(--space-2);min-width:0;padding-right:var(--space-1);display:flex}.app__user-avatar{letter-spacing:.01em;width:26px;height:26px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.app__user-name{font-size:var(--text-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-weight:600;overflow:hidden}@media (width<=900px){.app__user-name{display:none}}.app__desk{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.app__desk-label{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:650;overflow:hidden}.app__desk-tag{padding:1px var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-full);flex-shrink:0;font-weight:650}.app__back{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-full);white-space:nowrap;font-weight:650;display:inline-flex}.app__back svg{width:15px;height:15px}.app__back:hover{color:var(--text-primary);background:var(--bg-inset)}.app__hand-in{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--accent-text);background:var(--accent-soft);border-radius:var(--radius-full);font-weight:650;display:inline-flex}.app__hand-in svg{width:15px;height:15px}.app__hand-in:hover:not(:disabled){color:var(--on-accent);background:var(--accent)}.app__hand-in:disabled{opacity:.7;cursor:default}@keyframes app-sheet-up{0%{opacity:0;transform:translateY(40%)}}@media (prefers-reduced-motion:reduce){.app__robot[data-sheet]{animation:none}}.robot{--robot-shell:#f4f7fd;--robot-shade:#c3cee6;--robot-collar:#a9b7d4;--robot-stalk:#8a9bc0;--robot-visor:#1b2338;--robot-eye:#2fd8ee;--robot-light:#e8873a;--robot-edge:#d3dbec;align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}:root[data-theme=dark] .robot{--robot-shell:#e6ebf6;--robot-shade:#a3b2d2;--robot-collar:#8e9ec2;--robot-edge:transparent}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .robot{--robot-shell:#e6ebf6;--robot-shade:#a3b2d2;--robot-collar:#8e9ec2;--robot-edge:transparent}}.robot__bubble-slot{justify-content:center;align-items:flex-end;width:100%;min-height:min(44px,5.5vh);display:flex}.robot__bubble{max-width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-raised);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:bubble-in var(--duration-base) var(--ease-spring);position:relative}.robot__bubble-text{font-size:var(--text-base);color:var(--text-primary);text-align:center;overflow-wrap:anywhere;max-height:6.5em;font-weight:500;display:block;overflow-y:auto}.robot__bubble[data-card] .robot__bubble-text{font-size:var(--text-sm);text-align:left;max-height:none}.robot__bubble[data-card]{border-color:color-mix(in srgb, var(--danger) 35%, var(--border-default))}.robot__bubble:before,.robot__bubble:after{content:"";border-left:9px solid #0000;border-right:9px solid #0000;width:0;height:0;position:absolute;left:50%}.robot__bubble:before{border-top:9px solid var(--border-default);bottom:-9px;transform:translate(-50%)}.robot__bubble:after{border-top:9px solid var(--bg-raised);bottom:-8px;transform:translate(-50%)}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.robot__body{width:min(100%,148px);height:auto;max-height:min(160px,15vh);animation:4.5s ease-in-out infinite breathe;overflow:visible}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.robot__shell{fill:var(--robot-shell);stroke:var(--robot-edge);stroke-width:1.5px}.robot__shade{fill:var(--robot-shade)}.robot__collar{fill:var(--robot-collar)}.robot__visor{fill:var(--robot-visor)}.robot__stalk{stroke:var(--robot-stalk);stroke-width:4px;stroke-linecap:round}.robot__shine{fill:#fff;opacity:.5}.robot__ground{fill:var(--slate-500);opacity:.16}.robot__aura{fill:var(--robot-light);opacity:0;filter:blur(26px);transition:opacity var(--duration-slow) var(--ease-out)}.robot[data-mood=speaking] .robot__aura,.robot[data-mood=asking] .robot__aura,.robot[data-mood=thinking] .robot__aura{opacity:.16}.robot__head{transform-origin:100px 120px;transition:transform var(--duration-base) var(--ease-spring)}.robot[data-mood=asking] .robot__head{transform:rotate(-6deg)}.robot__antenna{transform-origin:100px 36px;transition:transform var(--duration-slow) var(--ease-out)}.robot__antenna-tip{fill:var(--robot-light);transform-origin:100px 14px}.robot[data-mood=thinking] .robot__antenna-tip,.robot[data-mood=asking] .robot__antenna-tip{animation:antenna-pulse 1.1s var(--ease-out) infinite}@keyframes antenna-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.robot[data-mood=error] .robot__antenna{transform:rotate(28deg)}.robot__eye{fill:var(--robot-eye)}.robot__eye-glow{fill:var(--robot-eye);opacity:.7}.robot__eyes-happy,.robot__eyes-flat{fill:none;stroke:var(--robot-eye);stroke-width:5px;stroke-linecap:round}.robot__eyes-round,.robot__eyes-happy,.robot__eyes-flat,.robot[data-mood=asking] .robot__eyes-pill,.robot[data-mood=done] .robot__eyes-pill,.robot[data-mood=error] .robot__eyes-pill{opacity:0}.robot[data-mood=asking] .robot__eyes-round,.robot[data-mood=done] .robot__eyes-happy,.robot[data-mood=error] .robot__eyes-flat{opacity:1}.robot__eyes-pill{transform-origin:100px 79px;animation:blink 5.5s var(--ease-out) infinite;transition:translate var(--duration-slow) var(--ease-out)}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.robot[data-mood=thinking] .robot__eyes-pill{translate:6px -5px}.robot[data-mood=speaking] .robot__eyes-pill{animation:talk .5s var(--ease-out) infinite}@keyframes talk{0%,to{transform:scaleY(1)}50%{transform:scaleY(.72)}}.robot[data-mood=asking] .robot__eyes-round{transform-origin:100px 79px;animation:eye-attention 1.4s var(--ease-out) infinite}@keyframes eye-attention{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.robot__core{fill:var(--robot-light);transition:fill var(--duration-base) var(--ease-out)}.robot__core-ring{fill:none;stroke:var(--robot-light);stroke-width:2px;opacity:0;transform-origin:100px 152px}.robot[data-mood=thinking] .robot__core-ring,.robot[data-mood=speaking] .robot__core-ring,.robot[data-mood=asking] .robot__core-ring{animation:core-ping 1.5s var(--ease-out) infinite}@keyframes core-ping{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.robot[data-mood=error] .robot__core{fill:var(--danger)}.robot[data-mood=done] .robot__core{fill:var(--success)}.robot__arm--left{transform-origin:64px 138px}.robot__arm--right{transform-origin:136px 138px}.robot[data-mood=done] .robot__arm--right{animation:wave .7s var(--ease-out) 2}@keyframes wave{0%,to{transform:rotate(0)}50%{transform:rotate(-40deg)}}.robot[data-mood=asking] .robot__arm--right{transition:transform var(--duration-base) var(--ease-spring);transform:rotate(-24deg)}@media (prefers-reduced-motion:reduce){.robot__body,.robot__eyes-pill,.robot__eyes-round,.robot__antenna-tip,.robot__core-ring,.robot__arm--right{animation:none!important}}.crash{justify-content:center;align-items:center;gap:var(--space-3);min-height:100%;padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-secondary);background:var(--bg-app);flex-direction:column;display:flex}.crash .robot{width:160px}.crash h1{font-size:var(--text-xl,1.6rem);color:var(--text-primary)}.crash p{max-width:30rem}.crash__actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.crash__primary{padding:var(--space-2) var(--space-5);color:var(--on-accent);background:var(--accent);border-radius:var(--radius-md);box-shadow:var(--depth-sm) var(--accent-shade);font-weight:700}.crash__quiet{padding:var(--space-2) var(--space-4);color:var(--text-secondary);border-radius:var(--radius-md);font-weight:650;text-decoration:none}.crash__quiet:hover{background:var(--bg-inset)}.crash__detail{max-width:34rem;font-size:var(--text-xs);color:var(--text-muted)}.crash__detail code{margin-top:var(--space-1);font-family:var(--font-mono);overflow-wrap:anywhere;display:block}:root{--slate-0:#fff;--slate-25:#fbfbfd;--slate-50:#f4f5f9;--slate-100:#e8eaf2;--slate-200:#d4d8e6;--slate-300:#b3bad0;--slate-400:#8a93af;--slate-500:#656e8c;--slate-600:#4b5470;--slate-700:#363e57;--slate-800:#232a3f;--slate-900:#171d2e;--slate-950:#0e1320;--hue-variable:#4f46e5;--hue-variable-soft:#eef0ff;--hue-variable-border:#c7cbff;--hue-io:#0e7490;--hue-io-soft:#e0f6fb;--hue-io-border:#a5e3ef;--hue-conditional:#a84e08;--hue-conditional-soft:#fdf0dc;--hue-conditional-border:#f6d6a3;--hue-loop:#7c3aed;--hue-loop-soft:#f2ebfe;--hue-loop-border:#d9c6fb;--hue-list:#be185d;--hue-list-soft:#fdeaf3;--hue-list-border:#f7bcd8;--hue-function:#4d7c0f;--hue-function-soft:#eef7e0;--hue-function-border:#c5e39a;--accent:#e8873a;--accent-strong:#d4722a;--accent-text:#a85212;--on-accent:var(--slate-950);--accent-soft:#fdefe2;--success:#059669;--success-soft:#d9f5ea;--danger:#dc2626;--danger-soft:#fdeaea;--danger-text:#b91c1c;--warning:#b45309;--warning-soft:#fdf3e3;--hue-boolean:#0f766e;--hue-boolean-soft:#dcf5f1;--hue-boolean-border:#9fdcd3;--bg-app:var(--slate-50);--bg-surface:var(--slate-0);--bg-raised:var(--slate-0);--bg-sunken:var(--slate-100);--bg-inset:var(--slate-25);--text-primary:var(--slate-900);--text-secondary:var(--slate-600);--text-muted:#5f6886;--text-inverse:var(--slate-0);--border-subtle:var(--slate-100);--border-default:var(--slate-200);--border-strong:var(--slate-300);--code-bg:var(--slate-950);--code-surface:#161d2f;--code-text:#d8def0;--code-muted:#6f79a0;--code-keyword:#c4a3ff;--code-string:#8fd4a8;--code-number:#ffb86b;--code-name:#7dd3fc;--code-comment:#5a6484;--code-active:#e8873a29;--code-hue-variable:#a5b0ff;--code-hue-io:#5fd4ec;--code-hue-conditional:#fbbf5a;--code-hue-loop:#c4a3ff;--code-hue-list:#f9a8d4;--code-hue-function:#a3d55e;--depth-sm:0 2px 0;--depth-md:0 4px 0;--hue-variable-shade:color-mix(in srgb, var(--hue-variable) 38%, var(--hue-variable-border));--hue-io-shade:color-mix(in srgb, var(--hue-io) 38%, var(--hue-io-border));--hue-conditional-shade:color-mix(in srgb, var(--hue-conditional) 38%, var(--hue-conditional-border));--hue-loop-shade:color-mix(in srgb, var(--hue-loop) 38%, var(--hue-loop-border));--hue-list-shade:color-mix(in srgb, var(--hue-list) 38%, var(--hue-list-border));--hue-function-shade:color-mix(in srgb, var(--hue-function) 38%, var(--hue-function-border));--hue-boolean-shade:color-mix(in srgb, var(--hue-boolean) 38%, var(--hue-boolean-border));--accent-shade:color-mix(in srgb, var(--accent) 72%, #2a1405);--surface-shade:#dde2ee;--brand-navy:#171d2e;--brand-navy-2:#232a3f;--shadow-xs:0 1px 2px #0f14230f;--shadow-sm:0 1px 3px #0f142314, 0 1px 2px #0f14230a;--shadow-md:0 4px 12px #0f142314, 0 2px 4px #0f14230a;--shadow-lg:0 12px 32px #0f14231f, 0 4px 8px #0f14230f;--shadow-focus:0 0 0 3px #e8873a52;--radius-xs:4px;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--font-ui:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.12s;--duration-base:.2s;--duration-slow:.34s;--header-height:56px;--panel-min-width:320px}:root[data-theme=dark]{--bg-app:var(--slate-950);--bg-surface:var(--slate-900);--bg-raised:var(--slate-800);--bg-sunken:#0a0f1a;--bg-inset:var(--slate-900);--text-primary:var(--slate-50);--text-secondary:var(--slate-300);--text-muted:var(--slate-400);--text-inverse:var(--slate-950);--border-subtle:#ffffff0f;--border-default:#ffffff1c;--border-strong:#ffffff2e;--hue-variable:#a5b0ff;--hue-variable-soft:#6366f129;--hue-variable-border:#818cf857;--hue-io:#5fd4ec;--hue-io-soft:#0891b22e;--hue-io-border:#22d3ee52;--hue-conditional:#fbbf5a;--hue-conditional-soft:#d977062e;--hue-conditional-border:#fbbf2452;--hue-function:#a3d55e;--hue-function-soft:#4d7c0f33;--hue-function-border:#84bb3a57;--hue-list:#f9a8d4;--hue-list-soft:#db27772e;--hue-list-border:#f472b652;--hue-loop:#c4a3ff;--hue-loop-soft:#7c3aed33;--hue-loop-border:#a78bfa57;--accent:#f59e4c;--accent-strong:#e8873a;--accent-text:var(--accent);--accent-soft:#e8873a29;--success:#34d399;--success-soft:#0596692e;--danger:#f87171;--danger-soft:#dc26262e;--danger-text:var(--danger);--warning:#fbbf24;--warning-soft:#b4530938;--hue-boolean:#5eead4;--hue-boolean-soft:#0b3d3a;--hue-boolean-border:#5eead46b;--code-bg:#0a0f1a;--code-surface:#121a2a;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000003d;--shadow-md:0 4px 12px #0006, 0 2px 4px #0000003d;--shadow-lg:0 12px 32px #00000080, 0 4px 8px #0000004d;--surface-shade:#070a12}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-app:var(--slate-950);--bg-surface:var(--slate-900);--bg-raised:var(--slate-800);--bg-sunken:#0a0f1a;--bg-inset:var(--slate-900);--text-primary:var(--slate-50);--text-secondary:var(--slate-300);--text-muted:var(--slate-400);--text-inverse:var(--slate-950);--border-subtle:#ffffff0f;--border-default:#ffffff1c;--border-strong:#ffffff2e;--hue-variable:#a5b0ff;--hue-variable-soft:#6366f129;--hue-variable-border:#818cf857;--hue-io:#5fd4ec;--hue-io-soft:#0891b22e;--hue-io-border:#22d3ee52;--hue-conditional:#fbbf5a;--hue-conditional-soft:#d977062e;--hue-conditional-border:#fbbf2452;--hue-loop:#c4a3ff;--hue-loop-soft:#7c3aed33;--hue-loop-border:#a78bfa57;--hue-list:#f9a8d4;--hue-list-soft:#db27772e;--hue-list-border:#f472b652;--hue-function:#a3d55e;--hue-function-soft:#4d7c0f33;--hue-function-border:#84bb3a57;--accent:#f59e4c;--accent-strong:#e8873a;--accent-text:var(--accent);--accent-soft:#e8873a29;--success:#34d399;--success-soft:#0596692e;--danger:#f87171;--danger-soft:#dc26262e;--danger-text:var(--danger);--warning:#fbbf24;--warning-soft:#b4530938;--hue-boolean:#5eead4;--hue-boolean-soft:#0b3d3a;--hue-boolean-border:#5eead46b;--code-bg:#0a0f1a;--code-surface:#121a2a;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000003d;--shadow-md:0 4px 12px #0006, 0 2px 4px #0000003d;--shadow-lg:0 12px 32px #00000080, 0 4px 8px #0000004d;--surface-shade:#070a12}}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;font-variant-ligatures:no-contextual;text-rendering:optimizelegibility;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.014em;font-weight:600;line-height:1.25}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}ul,ol{padding:0;list-style:none}a{color:var(--accent-text);-webkit-text-decoration-color:color-mix(in srgb, var(--accent-strong) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent-strong) 40%, transparent);text-underline-offset:2px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-soft);color:var(--text-primary)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full);background-clip:padding-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--border-strong);background-clip:padding-box;border:3px solid #0000}:is(.landing__cta,.app__run,.codework__run,.home__start-card:not(.home__start-card--quiet),.tour__button--primary,.signin__submit){--face:var(--accent-shade);box-shadow:var(--depth-md) var(--face);transition:background var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}:is(.landing__cta,.app__run,.codework__run,.home__start-card:not(.home__start-card--quiet),.tour__button--primary,.signin__submit):hover:not(:disabled){box-shadow:0 5px 0 var(--face);transform:translateY(-1px)}:is(.landing__cta,.app__run,.codework__run,.home__start-card:not(.home__start-card--quiet),.tour__button--primary,.signin__submit):active:not(:disabled){box-shadow:0 1px 0 var(--face);transform:translateY(3px)}:is(.codework,.code-paper){--code-bg:var(--bg-surface);--code-surface:var(--slate-25);--code-text:#2b3350;--code-muted:#6b7491;--code-keyword:#7c3aed;--code-string:#0b7a53;--code-number:#c2410c;--code-name:#0e7490;--code-comment:#6b7491;--code-active:#e8873a1a;--code-hue-variable:#4f46e5;--code-hue-io:#0e7490;--code-hue-conditional:#a84e08;--code-hue-loop:#7c3aed;--code-hue-list:#be185d;--code-hue-function:#4d7c0f;--code-edge:var(--border-subtle);--code-selection:#6366f129}:root[data-theme=dark] :is(.codework,.code-paper){--code-bg:var(--brand-navy);--code-surface:#1c2338;--code-text:#d8def0;--code-muted:#8590b4;--code-keyword:#c4a3ff;--code-string:#8fd4a8;--code-number:#ffb86b;--code-name:#7dd3fc;--code-comment:#8590b4;--code-active:#e8873a24;--code-hue-variable:#a5b0ff;--code-hue-io:#5fd4ec;--code-hue-conditional:#fbbf5a;--code-hue-loop:#c4a3ff;--code-hue-list:#f9a8d4;--code-hue-function:#a3d55e;--code-edge:#ffffff12;--code-selection:#a5b0ff3d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.codework,.code-paper){--code-bg:var(--brand-navy);--code-surface:#1c2338;--code-text:#d8def0;--code-muted:#8590b4;--code-keyword:#c4a3ff;--code-string:#8fd4a8;--code-number:#ffb86b;--code-name:#7dd3fc;--code-comment:#8590b4;--code-active:#e8873a24;--code-hue-variable:#a5b0ff;--code-hue-io:#5fd4ec;--code-hue-conditional:#fbbf5a;--code-hue-loop:#c4a3ff;--code-hue-list:#f9a8d4;--code-hue-function:#a3d55e;--code-edge:#ffffff12;--code-selection:#a5b0ff3d}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
