@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-400.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-ext-400.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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:Atkinson Hyperlegible Next;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-600.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-ext-600.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-700.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-ext-700.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-latin-600.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-latin-ext-600.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-latin-700.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-latin-ext-700.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/dm-sans-latin-800.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/dm-sans-latin-ext-800.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext-400.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,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;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700.woff2)format("woff2");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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext-700.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}}@layer tokens{:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-alt:#0f1220;--bg-sunken:#15182a;--bg:#1e2231;--surface:#262b3e;--surface-raised:#2e3447;--surface-top:#373d52;--fg:#eef0f8;--fg-muted:#b4bcd1;--fg-subtle:#9aa3b8;--fg-disabled:#6b7285;--border-subtle:#ffffff0f;--border:#ffffff1a;--border-strong:#ffffff2e;--border-control:#7a829a;--accent:#ff0098;--accent-text:#ff6bc2;--accent-hover:#e6008a;--accent-press:#d1007d;--accent-soft:#ff009829;--success:#74e58e;--info:#4ccbf2;--warn:#ffb648;--error:#ff7480;--tint-success:#74e58e24;--tint-info:#4ccbf224;--tint-warn:#ffb64824;--tint-error:#ff74801a;--link:var(--info);--block-proc:#c94f7c;--on-block:#fff;--block-slot:#ffffffeb;--on-block-slot:var(--bg);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--hit-primary:64px;--hit-min:56px;--gap-targets:12px;--fs-body:1.125rem;--fs-lesson:1.25rem;--fs-code:1.125rem;--r-control:var(--radius-lg);--r-card:var(--radius-xl);--focus-ring:3px solid var(--accent);--ease-out:cubic-bezier(.22, 1, .36, 1);--motion-scale:1;--dur-fast:calc(.12s * var(--motion-scale));--dur-base:calc(.2s * var(--motion-scale));--font-sans:"Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"DM Sans", "Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}@media (prefers-reduced-motion:reduce){:root{--motion-scale:0}}}@layer base{html,body,#app{height:100%}body{background:var(--bg-sunken);color:var(--fg);font-family:var(--font-sans);font-size:var(--fs-body);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;font-weight:400;line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.15}h1{font-size:2.5rem}h2{font-size:1.75rem}code,pre,kbd{font-family:var(--font-mono);font-size:var(--fs-code);font-variant-ligatures:none;font-feature-settings:"zero" 1}a{color:var(--link)}:focus{outline:none}:focus-visible{outline:var(--focus-ring);outline-offset:2px}}@layer components{.btn{min-height:var(--hit-min);min-width:var(--hit-min);padding:0 var(--s-5);border:2px solid var(--border-control);border-radius:var(--r-control);background:var(--surface);color:var(--fg);cursor:pointer;touch-action:manipulation;transition:background var(--dur-fast) var(--ease-out);font-weight:600}.btn:hover{background:var(--surface-raised)}.btn:disabled{color:var(--fg-disabled);border-color:var(--border);cursor:not-allowed;background:var(--surface)}.btn-primary{min-height:var(--hit-primary);border-color:var(--accent);font-size:1.25rem;font-weight:700}.btn-primary:disabled{border-color:var(--border)}.btn-quiet{border-width:1px;border-color:var(--border);color:var(--fg-muted);margin-inline-start:auto;font-weight:500}.field{width:100%;min-height:var(--hit-primary);padding:var(--s-3) var(--s-4);border:2px solid var(--border-control);border-radius:var(--r-control);background:var(--bg-alt);color:var(--fg)}.center-screen{min-height:100%;padding:var(--s-5);place-items:center;display:grid}.card{gap:var(--s-4);width:min(100%,30rem);padding:var(--s-6);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-card);display:grid}.wordmark b{color:var(--accent-text);font-weight:inherit}.lead{font-size:var(--fs-lesson);color:var(--fg-muted)}.error-text{color:var(--error);font-size:var(--fs-lesson)}.code-input{font-family:var(--font-mono);letter-spacing:.18em;text-align:center;text-transform:uppercase;font-size:2.25rem;font-weight:700}.code-input::placeholder{color:var(--fg-disabled)}.status-chip{align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-strong);white-space:nowrap;font-size:1rem;font-weight:600;display:inline-flex}.status-chip:before{content:"";background:var(--fg-subtle);border-radius:50%;width:10px;height:10px}.status-saved:before{background:var(--success)}.status-saving:before{background:var(--info)}.status-offline{background:var(--tint-warn)}.status-offline:before{background:var(--warn)}.status-conflict{background:var(--tint-warn)}.status-conflict:before{background:var(--warn)}.status-closed:before{background:var(--fg-subtle)}.banner{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--radius-md);background:var(--tint-info);border:1px solid var(--info);font-size:var(--fs-lesson);display:flex}.banner-warn{background:var(--tint-warn);border-color:var(--warn)}.app-bar{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-4);background:var(--bg);border-bottom:1px solid var(--border);display:flex}.app-shell{grid-template-rows:auto auto 1fr;height:100%;display:grid}.app-main{min-height:0;padding:0;position:relative;overflow:hidden}.bar-spacer{flex:1}.title-btn{min-height:var(--hit-min);max-width:36vw;padding:0 var(--s-3);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--fg);font:700 1.25rem var(--font-display);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;overflow:hidden}.title-btn:after{content:" ✎";color:var(--fg-subtle);font-weight:400}.app-bar .wordmark{white-space:nowrap}.undo-btn{padding:0 var(--s-4)}.bar-link{min-height:var(--hit-min);padding:0 var(--s-2);color:var(--fg-muted);white-space:nowrap;align-items:center;font-size:.9375rem;text-decoration:none;display:inline-flex}.bar-link:hover{color:var(--fg);text-decoration:underline}.mode-switch{border-radius:var(--radius-pill);background:var(--bg-alt);border:1px solid var(--border-strong);flex-shrink:0;gap:3px;padding:3px;display:inline-flex}.mode-btn{min-height:var(--hit-min);padding:0 var(--s-4);border-radius:var(--radius-pill);color:var(--fg-muted);white-space:nowrap;cursor:pointer;touch-action:manipulation;background:0 0;border:0;font-weight:700}.mode-btn[aria-pressed=true]{background:var(--surface-top);color:var(--fg);box-shadow:inset 0 -3px 0 var(--accent)}.app-bar:has(.mode-switch) .title-btn{max-width:24vw}.undo-btn{white-space:nowrap}.app-shell{grid-template-columns:minmax(0,1fr)}@media (max-width:899px){.app-bar{row-gap:var(--s-2);flex-wrap:wrap}}.dialog-backdrop{z-index:300;padding:var(--s-4);background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.dialog-card{gap:var(--s-4);width:min(100%,28rem);padding:var(--s-5);background:var(--surface-top);border:1px solid var(--border-strong);border-radius:var(--r-card);display:grid}.dialog-card h2{font-size:1.5rem}.dialog-actions{justify-content:flex-end;gap:var(--gap-targets);flex-wrap:wrap;display:flex}.dialog-choices{gap:var(--gap-targets);display:grid}.proc-field{gap:var(--s-1);color:var(--fg-muted);display:grid}.proc-param{align-items:center;gap:var(--s-2);grid-template-columns:4.5rem 1fr auto;display:grid}.proc-param-type{color:var(--fg-muted)}.proc-param-remove{min-width:var(--hit-min)}.proc-add{align-items:center;gap:var(--s-2);color:var(--fg-muted);flex-wrap:wrap;display:flex}.proc-preview{padding:var(--s-4);border-radius:var(--radius-md);background:var(--bg-alt);overflow-x:auto}.proc-pill{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-radius:var(--radius-sm);background:var(--block-proc);color:var(--on-block);white-space:nowrap;font-weight:600;display:inline-flex}.proc-slot{padding:calc(var(--s-1) / 2) var(--s-3);background:var(--block-slot);color:var(--on-block-slot);font-weight:600}.proc-slot.is-number{border-radius:var(--radius-pill)}.proc-slot.is-text{border-radius:var(--radius-xs)}.btn-danger{border-color:var(--error);color:var(--error)}.btn-quiet-inline{border-color:var(--border);color:var(--fg-muted)}}
