:root,html[data-theme=grove]{--bg-0:#e4f5ec;--bg-1:#cfead9;--bg-2:#f4fbf7;--bg-glow-a:#fff4c2;--bg-glow-b:#bfe8ff;--ink:#15261c;--muted:#4a6356;--brand:#146c3a;--brand-2:#1f8a4c;--accent:#e89b0c;--danger:#c0392b;--panel:#fff;--panel-soft:#f3faf6;--panel-muted:#e8f5ee;--line:#b5d4c3;--shadow:0 14px 36px #146c3a1f;--code-bg:#0f2418;--code-ink:#e6fff0;--serial-bg:#0c1a12;--serial-ink:#9fe0b8;--hero-board-top:#1f8a4c;--hero-board-bot:#146c3a;--overlay:#12281c8c;--radius:18px;--font-display:"Space Grotesk", sans-serif;--font-body:"Nunito", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--hljs-keyword:#7dd3a0;--hljs-string:#f0c36d;--hljs-number:#7ec8ff;--hljs-comment:#6f8f7c;--hljs-type:#c5a3ff;--hljs-meta:#9ad0ff;--hljs-built_in:#ff9e7a;--lab-canvas:#f4fbf6;--lab-board-0:#1f8a4c;--lab-board-1:#146c3a;--lab-board-stroke:#0e4d29;--lab-board-title:#e8ffe8;--lab-pin-label:#d7f5e3;--lab-pin-low:#0b3d22;--lab-pin-high:#ffe566;--lab-ink:#1a2b22;--lab-hint:#4d6357}html[data-theme=lagoon]{--bg-0:#e8f4fb;--bg-1:#d5ebf6;--bg-2:#f5fbfe;--bg-glow-a:#dff8ef;--bg-glow-b:#c8e4ff;--ink:#143041;--muted:#4d6575;--brand:#0b6e8a;--brand-2:#1287a8;--accent:#e07a3d;--danger:#c0392b;--panel:#fff;--panel-soft:#eef7fc;--panel-muted:#e2f0f8;--line:#b0cfe0;--shadow:0 14px 36px #0b6e8a24;--code-bg:#0d2430;--code-ink:#e4f6ff;--serial-bg:#0a1c26;--serial-ink:#8fd4ef;--hero-board-top:#1287a8;--hero-board-bot:#0b6e8a;--overlay:#0e24308c;--hljs-keyword:#6fd0e8;--hljs-string:#f0b27a;--hljs-number:#8fd4ef;--hljs-comment:#6d8594;--hljs-type:#b8a4ff;--hljs-meta:#9ad8ff;--hljs-built_in:#ff9b7a;--lab-canvas:#eef7fc;--lab-board-0:#1287a8;--lab-board-1:#0b6e8a;--lab-board-stroke:#084e63;--lab-board-title:#e8f7ff;--lab-pin-label:#d5eef8;--lab-pin-low:#0a3a4a;--lab-pin-high:#ffe566;--lab-ink:#143041;--lab-hint:#4d6575}html[data-theme=nightgrove]{--bg-0:#0d1812;--bg-1:#132218;--bg-2:#1a2c22;--bg-glow-a:#1d3a28;--bg-glow-b:#163048;--ink:#e7f5ec;--muted:#9bb5a6;--brand:#3dce78;--brand-2:#2ea861;--accent:#f0b429;--danger:#ff7b6e;--panel:#182920;--panel-soft:#1e3228;--panel-muted:#243a30;--line:#2f4a3a;--shadow:0 16px 40px #00000073;--code-bg:#0a140f;--code-ink:#d9ffe8;--serial-bg:#07110c;--serial-ink:#8fd9ae;--hero-board-top:#2ea861;--hero-board-bot:#1a6b3f;--overlay:#000000a6;--hljs-keyword:#6fe3a0;--hljs-string:#f0c36d;--hljs-number:#7ec8ff;--hljs-comment:#6f8f7c;--hljs-type:#c5a3ff;--hljs-meta:#9ad0ff;--hljs-built_in:#ff9e7a;--lab-canvas:#0f1a14;--lab-board-0:#1a6b3f;--lab-board-1:#0f3d26;--lab-board-stroke:#2a7a4e;--lab-board-title:#d9ffe8;--lab-pin-label:#9fe0b8;--lab-pin-low:#071a10;--lab-pin-high:#ffe566;--lab-ink:#d7ebe0;--lab-hint:#8fad9c}html[data-theme=slate]{--bg-0:#12151c;--bg-1:#181c26;--bg-2:#1f2430;--bg-glow-a:#243044;--bg-glow-b:#2a2230;--ink:#e8ecf4;--muted:#9aa3b5;--brand:#3db8a8;--brand-2:#2f9a8d;--accent:#e8a054;--danger:#ff7b6e;--panel:#1c212c;--panel-soft:#232936;--panel-muted:#2a3140;--line:#343c4d;--shadow:0 16px 40px #00000080;--code-bg:#0d1017;--code-ink:#e8eef8;--serial-bg:#090b10;--serial-ink:#8fd4c8;--hero-board-top:#2f9a8d;--hero-board-bot:#1f6f66;--overlay:#000000b3;--hljs-keyword:#5fd4c4;--hljs-string:#e8a054;--hljs-number:#7eb6ff;--hljs-comment:#6f788a;--hljs-type:#c4b0ff;--hljs-meta:#9ad0ff;--hljs-built_in:#ff9e7a;--lab-canvas:#12161e;--lab-board-0:#1f6f66;--lab-board-1:#154943;--lab-board-stroke:#2f9a8d;--lab-board-title:#e0f7f3;--lab-pin-label:#9fd9d0;--lab-pin-low:#0a1218;--lab-pin-high:#ffe566;--lab-ink:#dce3ef;--lab-hint:#9aa3b5}:root{color:var(--ink);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 12% 8%, var(--bg-glow-a) 0%, transparent 42%), radial-gradient(circle at 88% 4%, var(--bg-glow-b) 0%, transparent 38%), linear-gradient(165deg, var(--bg-0), var(--bg-1) 48%, var(--bg-2) 100%);color:var(--ink);background-attachment:fixed}a{color:inherit;text-decoration:none}button,select,input,textarea{font:inherit;color:inherit}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted);opacity:1}.brand-mark{font-family:var(--font-display);color:var(--brand);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.brand-mark--lg{font-size:1.7rem}.btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;min-height:44px;padding:.65rem 1.15rem;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--brand);color:#fff;box-shadow:0 8px 18px color-mix(in srgb, var(--brand) 28%, transparent)}.btn--secondary{background:var(--panel-soft);color:var(--brand);border:2px solid var(--line)}.btn--accent{background:var(--accent);color:#1b1508}.btn--danger{background:color-mix(in srgb, var(--danger) 16%, var(--panel));color:var(--danger)}.btn--xl{padding:.95rem 1.6rem;font-size:1.15rem}.btn--block{width:100%}.page{min-height:100dvh;padding:1.25rem clamp(1rem,3vw,2rem);padding-bottom:max(1.25rem, env(safe-area-inset-bottom))}.page--narrow{flex-direction:column;align-items:center;display:flex}.page-header{grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:min(1100px,100%);margin:0 auto 1.5rem;display:grid}.page-header h1{font-family:var(--font-display);text-align:center;color:var(--ink);margin:0;font-size:clamp(1.35rem,3vw,1.85rem)}.page-header__tools{justify-content:flex-end;align-items:center;gap:.55rem;display:flex}.page-body{width:min(1100px,100%);margin:0 auto}.page-body--center{flex-direction:column;align-items:center;display:flex}.form-panel{background:var(--panel);border:2px solid var(--line);border-radius:calc(var(--radius) + 4px);width:min(28rem,100%);box-shadow:var(--shadow);margin:0 auto;padding:1.35rem 1.4rem 1.5rem}.form-panel .auth-form{max-width:none;margin-top:0}.form-panel__title{font-family:var(--font-display);color:var(--brand);margin:0 0 .85rem;font-size:1.15rem}.welcome__top{justify-content:space-between;align-items:center;width:min(1100px,100%);margin:0 auto;display:flex}.welcome__top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.auth-shell{grid-template-rows:auto 1fr;min-height:100vh;padding:1.25rem clamp(1rem,3vw,2rem) 2rem;display:grid}.auth-shell__chrome{justify-content:space-between;align-items:center;width:min(1100px,100%);margin:0 auto 1rem;display:flex}.auth-shell__tools{align-items:center;gap:.55rem;display:flex}.auth-card{background:var(--panel);border:2px solid var(--line);border-radius:calc(var(--radius) + 6px);width:min(26.5rem,100%);box-shadow:var(--shadow);margin:auto;padding:1.6rem 1.5rem 1.7rem;animation:.45s rise-in}.auth-card__header{text-align:center;margin-bottom:1.15rem}.auth-card__header h1{font-family:var(--font-display);color:var(--brand);margin:0 0 .35rem;font-size:clamp(1.6rem,4vw,2rem)}.auth-card__body{gap:1rem;display:grid}.auth-card__actions{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.auth-tabs{background:var(--panel-muted);border:1px solid var(--line);border-radius:999px;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;display:grid}.auth-tabs__btn{min-height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;font-weight:800}.auth-tabs__btn.is-active{background:var(--panel);color:var(--brand);box-shadow:0 4px 12px color-mix(in srgb, var(--brand) 16%, transparent)}.auth-form{gap:.9rem;width:100%;display:grid}.auth-form label{text-align:left;gap:.35rem;font-weight:700;display:grid}.auth-form input,.auth-form select,.parents-section input,.parents-section select{border:2px solid var(--line);width:100%;min-height:44px;font:inherit;background:var(--panel-soft);color:var(--ink);border-radius:12px;padding:.55rem .75rem}.auth-form input:focus,.auth-form select:focus,.lang-switch select:focus,.theme-switch select:focus{outline:2px solid color-mix(in srgb, var(--brand) 55%, transparent);outline-offset:1px}.caps-switch{color:var(--muted);align-items:center;gap:.35rem;font-size:.85rem;font-weight:700;display:inline-flex}.caps-switch select{font:inherit;border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;min-height:40px;padding:.4rem .7rem;font-weight:700}.caps-switch select:focus{outline:2px solid color-mix(in srgb, var(--brand) 55%, transparent);outline-offset:1px}html[data-caps=upper]{--caps-ui-scale:.9}html[data-caps=upper] body{text-transform:uppercase;letter-spacing:.02em;font-size:calc(1rem * var(--caps-ui-scale))}html[data-caps=upper] .btn,html[data-caps=upper] .board-pill,html[data-caps=upper] .challenge-strip__item,html[data-caps=upper] .challenge-strip__title,html[data-caps=upper] .mobile-tabs button,html[data-caps=upper] .learn-flow__steps li,html[data-caps=upper] .palette-btn,html[data-caps=upper] .nav a,html[data-caps=upper] .lang-switch select,html[data-caps=upper] .caps-switch select,html[data-caps=upper] .toolbar select,html[data-caps=upper] .toolbar label{white-space:nowrap;letter-spacing:.015em;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;flex-shrink:0;width:max-content;max-width:none;line-height:1.25;overflow:visible}html[data-caps=upper] .learn-quiz__option{white-space:normal;overflow-wrap:break-word;word-break:normal;width:100%;max-width:100%;line-height:1.3}html[data-caps=upper] .btn{min-height:2.55rem;padding-inline:1em}html[data-caps=upper] .brand-mark,html[data-caps=upper] .brand-mark span{letter-spacing:0;white-space:nowrap;width:max-content}html[data-caps=upper] .toolbar,html[data-caps=upper] .toolbar__brand,html[data-caps=upper] .toolbar__controls,html[data-caps=upper] .workspace__header,html[data-caps=upper] .workspace__intro,html[data-caps=upper] .challenge-strip,html[data-caps=upper] .reto-bar,html[data-caps=upper] .learn-flow__steps,html[data-caps=upper] .mobile-tabs,html[data-caps=upper] .welcome__top-actions,html[data-caps=upper] .page-header__tools{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:.5rem;overflow:auto hidden}html[data-caps=upper] .challenge-strip__item{flex-wrap:nowrap;width:max-content}html[data-caps=upper] .challenge-strip__title{max-width:none}html[data-caps=upper] .learn-flow__steps li{padding-inline:.7em;font-size:.78rem}html[data-caps=upper] .mobile-tabs button{flex:auto;width:auto;min-width:max-content}html[data-caps=upper] h1,html[data-caps=upper] h2,html[data-caps=upper] h3{letter-spacing:.02em;width:auto;max-width:100%;line-height:1.2}html[data-caps=upper] .learn-flow__text,html[data-caps=upper] .learn-quiz__prompt,html[data-caps=upper] .workspace__intro>span,html[data-caps=upper] p,html[data-caps=upper] .muted{white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none;width:auto;max-width:100%}html[data-caps=upper] .code-snip,html[data-caps=upper] .learn-flow__example pre,html[data-caps=upper] pre,html[data-caps=upper] code{text-transform:none;letter-spacing:0;white-space:pre-wrap;width:auto;max-width:100%}.caps-switch--compact .caps-switch__label{display:none}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.welcome__hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:2rem;max-width:1100px;min-height:calc(100vh - 5rem);margin:0 auto;display:grid}.welcome__hello{color:var(--muted);margin-bottom:0;font-size:1.35rem}.welcome__copy h1{font-family:var(--font-display);color:var(--brand);letter-spacing:-.03em;margin:.2rem 0 .6rem;font-size:clamp(2.8rem,8vw,4.5rem)}.lead{max-width:34rem;color:var(--muted);font-size:1.15rem}.welcome__visual{min-height:320px;position:relative}.hero-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 55%, transparent), transparent 65%);animation:3s ease-in-out infinite pulse;position:absolute;inset:10% 5%}.hero-board{background:linear-gradient(180deg, var(--hero-board-top), var(--hero-board-bot));box-shadow:var(--shadow);border-radius:18px;animation:4.5s ease-in-out infinite floaty;position:absolute;inset:18%}.hero-led{background:#ff5a5a;border-radius:50%;width:64px;height:64px;animation:1.8s ease-in-out infinite blink;position:absolute;top:30%;right:-18%;box-shadow:0 0 24px #ff5050cc}@keyframes pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes blink{0%,40%,to{opacity:1}50%,90%{opacity:.35}}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0;display:grid}.choice{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);gap:.35rem;padding:1rem;font-weight:800;transition:transform .15s;display:grid}.choice:hover{transform:translateY(-2px)}.choice--soon{opacity:.65;font-size:.95rem}.choice--soon span{color:var(--muted);font-size:.85rem;font-weight:600}.welcome__actions{flex-wrap:wrap;justify-content:flex-start;gap:.75rem;display:flex}.levels-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.levels-band{margin:1.25rem 0 2rem}.levels-band__title{font-family:var(--font-display);color:var(--brand);margin:0 0 .75rem;font-size:1.25rem}.level-card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);gap:.5rem;padding:1rem;display:grid}.level-card--soon{opacity:.75}.level-card__emoji{font-size:1.8rem}.soon-badge{background:var(--panel-muted);color:var(--muted);border-radius:999px;padding:.35rem .75rem;font-weight:700;display:inline-block}.project-list{gap:.75rem;width:min(40rem,100%);margin:.75rem auto 1.25rem;padding:0;list-style:none;display:grid}.project-list li{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.project-list__actions{gap:.5rem;display:flex}.workspace{box-sizing:border-box;flex-direction:column;gap:.75rem;height:100dvh;min-height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.workspace.page{padding-top:.75rem;padding-bottom:max(.75rem, env(safe-area-inset-bottom))}.workspace--gated .workspace__grid,.workspace--gated .mobile-tabs,.workspace--gated .challenge-strip,.workspace--gated .workspace__intro{visibility:hidden;pointer-events:none}.workspace__header{background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.6rem .9rem;display:flex}.workspace__header-top{display:contents}.workspace__intro{background:color-mix(in srgb, var(--panel) 82%, transparent);border:2px solid var(--line);border-radius:12px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem 1rem;min-width:0;padding:.55rem .9rem;font-size:.98rem;display:flex}.workspace__intro strong{color:var(--brand);font-family:var(--font-display)}.reto-bar{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem .75rem;min-width:min(100%,16rem);display:flex}.reto-bar .btn{flex-shrink:0}.challenge-strip{background:color-mix(in srgb, var(--panel) 85%, transparent);border:2px solid var(--line);border-radius:12px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.55rem .85rem;min-width:0;padding:.55rem .9rem;display:flex}.challenge-strip__item{border-radius:10px;flex:none;align-items:center;gap:.45rem;width:max-content;max-width:none;padding:.2rem .15rem;display:inline-flex}.challenge-strip__title{white-space:nowrap;font-weight:700;line-height:1.25}.challenge-status{border-radius:999px;flex-shrink:0;place-items:center;width:1.4rem;height:1.4rem;font-size:.85rem;font-weight:800;line-height:1;display:inline-grid}.challenge-status--ok{color:#0b6b3a;background:#2ecc7147}.challenge-status--bad{color:#8b1e1e;background:#e74c3c38}.loading{min-height:100vh;font-family:var(--font-display);color:var(--brand);place-items:center;gap:1rem;font-size:1.5rem;font-weight:700;display:grid}.toolbar{flex-wrap:wrap;flex:1;align-items:center;gap:.55rem .75rem;min-width:0;display:flex}.toolbar__brand{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.board-pill{background:var(--panel-muted);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.9rem;font-weight:700}.toolbar__controls{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.speed{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.lang-switch select,.theme-switch select,.speed select{border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;min-height:40px;padding:.4rem .7rem}.save-flash{color:var(--brand);font-weight:800}.mobile-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-shrink:0;gap:.4rem;width:100%;min-width:0;padding-bottom:.15rem;display:none;overflow-x:auto}.mobile-tabs button{border:2px solid var(--line);background:var(--panel);min-width:max-content;min-height:44px;color:var(--ink);border-radius:12px;flex:1 1 0;padding-inline:.75rem;font-weight:800}.mobile-tabs button.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}.workspace__grid{flex:1;grid-template-columns:1.2fr .9fr .75fr;gap:.75rem;min-width:0;min-height:0;display:grid}.workspace__grid--combined{grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row}.workspace__grid--combined .panel--side{display:none!important}.workspace__grid--combined .panel--editor{grid-area:1/1}.workspace__grid--combined .panel--lab{grid-area:1/2}.workspace__grid--combined .panel--editor,.workspace__grid--combined .panel--lab{flex-direction:column;height:100%;min-height:0;display:flex}.workspace__grid--combined .panel--editor.is-visible,.workspace__grid--combined .panel--lab.is-visible{display:flex}.panel{background:color-mix(in srgb, var(--panel) 94%, transparent);border:2px solid var(--line);border-radius:var(--radius);min-height:0;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.panel--editor{padding:0}.panel-placeholder{text-align:center;min-height:12rem;color:var(--muted);flex:1;place-items:center;padding:1.25rem;font-weight:700;display:grid}.blockly-host{background:0 0;flex:1;width:100%;height:100%;min-height:0}.lab{flex:1;grid-template-columns:140px 1fr;height:100%;min-height:0;display:grid}.lab__sidebar{border-right:2px solid var(--line);background:var(--panel-soft);padding:.75rem;overflow:auto}.lab__canvas{background:var(--lab-canvas);min-width:0;min-height:0;padding:.5rem;overflow:auto}.lab__palette{gap:.5rem;padding:0;font-weight:800;list-style:none;display:grid}.lab__hint{font-size:.85rem}.lab-instruments{border-top:2px solid var(--line);gap:.55rem;margin-top:.85rem;padding-top:.75rem;display:grid}.lab-instruments h3{font-family:var(--font-display);color:var(--brand);margin:0;font-size:1rem}.lab-meter,.lab-scope{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem}.lab-meter__label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:800}.lab-meter__value{font-family:var(--font-mono);color:var(--brand);margin:.2rem 0;font-size:1.25rem;font-weight:700}.lab-meter__probe{font-size:.8rem}.lab-scope__svg{border-radius:6px;width:100%;height:auto;margin-top:.35rem;display:block}.lab-ctx{z-index:30;border:1px solid var(--line);background:var(--panel);border-radius:12px;gap:.45rem;min-width:200px;max-width:240px;padding:.65rem .75rem;display:grid;position:absolute;box-shadow:0 10px 28px #0000002e}.lab-ctx__title{font-family:var(--font-display);color:var(--brand);font-size:.95rem;font-weight:700}.lab-ctx__field{color:var(--muted);gap:.25rem;font-size:.8rem;font-weight:600;display:grid}.lab-ctx__field input,.lab-ctx__field select{font:inherit;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:.35rem .45rem;font-weight:600}.lab-ctx__presets{flex-wrap:wrap;gap:.3rem;display:flex}.lab-ctx__chip{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:999px;padding:.15rem .45rem;font-size:.72rem;font-weight:700}.lab-ctx__chip:hover{border-color:var(--brand);color:var(--brand)}.lab-ctx__actions{gap:.35rem;margin-top:.2rem;display:grid}.lab__svg{touch-action:none;width:100%;height:auto;display:block}.serial-monitor{border-top:2px solid var(--line);background:var(--serial-bg);color:var(--serial-ink);font-family:var(--font-mono);flex-direction:column;flex-shrink:0;min-height:0;max-height:28%;margin-top:0;padding:.5rem .75rem;font-size:.8rem;display:flex}.serial-monitor__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.serial-monitor__body{white-space:pre-wrap;flex:1;min-height:3.5rem;max-height:8rem;margin:0;overflow:auto}.level-card__stars{letter-spacing:.15em;color:var(--accent);margin:.25rem 0}.panel--lab .lab{flex:1;min-height:0}.panel--side{align-content:start;gap:.75rem;padding:.75rem;display:grid;overflow:auto}.doc-panel,.challenge-box,.code-panel{background:var(--panel-soft);border:1px solid var(--line);border-radius:12px;padding:.75rem}.code-panel__examples{gap:.55rem;padding-left:1.1rem;display:grid}.code-panel__examples .code-snip{margin-top:.25rem}.code-snip,.code-block{background:var(--code-bg);color:var(--code-ink);font-family:var(--font-mono);border-radius:10px;margin:0;padding:.75rem;font-size:.85rem;line-height:1.5;overflow:auto}.code-snip code,.code-block code{white-space:pre;font-family:inherit}.hljs-keyword,.hljs-selector-tag,.hljs-literal{color:var(--hljs-keyword)}.hljs-string,.hljs-attr{color:var(--hljs-string)}.hljs-number,.hljs-regexp{color:var(--hljs-number)}.hljs-comment,.hljs-quote{color:var(--hljs-comment);font-style:italic}.hljs-type,.hljs-class .hljs-title{color:var(--hljs-type)}.hljs-meta,.hljs-meta-keyword{color:var(--hljs-meta)}.hljs-built_in,.hljs-builtin-name{color:var(--hljs-built_in)}.hljs-title.function_,.hljs-function .hljs-title{color:var(--code-ink)}.code-panel__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.segmented{border:2px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:.35rem .7rem;font-weight:700}.segmented button.is-active{background:var(--brand);color:#fff}.edu-error{background:color-mix(in srgb, var(--accent) 18%, var(--panel));border:2px solid color-mix(in srgb, var(--accent) 55%, var(--line));border-radius:12px;margin:0;padding:.75rem;font-weight:700}.challenge-result{color:var(--brand);font-weight:800}.modal-backdrop{z-index:50;background:var(--overlay);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:max(.75rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom));justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border:3px solid var(--line);box-shadow:var(--shadow);width:min(560px,100%);max-height:none;color:var(--ink);border-radius:20px;flex-shrink:0;margin-block:auto;padding:1.25rem 1.4rem;overflow:visible}.modal--wide{width:min(720px,100%)}.modal__header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.mode-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem;display:grid}.mode-card{text-align:left;border:2px solid var(--line);background:var(--panel-soft);cursor:pointer;font:inherit;min-height:140px;color:var(--ink);border-radius:16px;gap:.4rem;padding:1rem;display:grid}.mode-card:hover,.mode-card:focus-visible{border-color:var(--brand);background:var(--panel-muted)}.mode-card__emoji{font-size:1.8rem}.tutorial-sections{gap:.85rem;margin-top:.75rem;display:grid}.tutorial-section{background:var(--panel-soft);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem}.tutorial-section h3{color:var(--brand);font-family:var(--font-display);margin:0 0 .35rem}.tutorial-section p{margin:0}.palette-btn{text-align:left;border:2px solid var(--line);background:var(--panel);width:100%;font:inherit;cursor:pointer;min-height:44px;color:var(--ink);border-radius:12px;padding:.55rem .7rem;font-weight:800}.palette-btn:hover{border-color:var(--brand);background:var(--panel-muted)}.sketch-editor{flex-direction:column;flex:1;gap:.5rem;height:100%;min-height:0;padding:.75rem;display:flex}.sketch-editor__frame{border:2px solid var(--code-bg);background:var(--code-bg);border-radius:12px;flex:1;min-height:0;overflow:auto}.sketch-editor__code{min-height:100%;color:var(--code-ink);font-family:var(--font-mono)!important;font-size:.92rem!important;line-height:1.5!important}.sketch-editor__textarea,.sketch-editor__pre{font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;outline:none!important}.sketch-editor__textarea{caret-color:var(--code-ink)!important}.board-pill--mode{background:color-mix(in srgb, var(--accent) 22%, var(--panel));border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}.desktop-only{display:contents}.parents-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(40rem,100%);box-shadow:var(--shadow);margin:1rem auto;padding:1.1rem 1.2rem}.projects-page .lead,.levels-page .lead,.family-page .lead{text-align:center;width:min(40rem,100%);margin-left:auto;margin-right:auto}.projects-page .welcome__actions,.family-page .welcome__actions,.class-page .welcome__actions{justify-content:center;width:min(40rem,100%);margin:.75rem auto}@media (width<=1100px){.mobile-tabs{display:flex}.workspace{gap:.5rem}.workspace__header{flex-direction:column;align-items:stretch;gap:.5rem;padding:.5rem .65rem}.workspace__header-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.toolbar{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;gap:.4rem .5rem;padding-bottom:.15rem;overflow-x:auto}.toolbar__brand,.toolbar__controls{flex-wrap:nowrap;flex-shrink:0}.toolbar__brand .brand-mark{display:none}.workspace__intro,.challenge-strip{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;padding:.45rem .7rem;font-size:.92rem;overflow-x:auto}.workspace__grid,.workspace__grid:not(.workspace__grid--combined),.workspace__grid--combined{grid-template-rows:1fr;grid-template-columns:1fr}.workspace__grid .panel,.workspace__grid--combined .panel--editor,.workspace__grid--combined .panel--lab{height:100%;min-height:0;display:none}.workspace__grid .panel.is-visible,.workspace__grid--combined .panel--editor.is-visible,.workspace__grid--combined .panel--lab.is-visible{flex-direction:column;grid-area:1/1;display:flex!important}.workspace__grid--combined .panel--side,.workspace__grid .panel--side:not(.is-visible){display:none!important}.workspace__grid .panel--side.is-visible{flex-direction:column;gap:.75rem;padding:.75rem;overflow:auto;display:flex!important}.desktop-only{display:none!important}.lab{grid-template-columns:120px 1fr}.mode-grid{grid-template-columns:1fr}.welcome__hero{grid-template-columns:1fr;gap:1.25rem;min-height:auto;padding-bottom:2rem}.welcome__visual{order:-1;min-height:220px}.welcome__hero-img{border-radius:18px;width:100%}.page-header{text-align:center;grid-template-columns:1fr;gap:.75rem}.page-header__tools,.welcome__top-actions{flex-wrap:wrap;justify-content:center}.choice-grid{grid-template-columns:1fr}.levels-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.learn-flow__modal{border-radius:16px;width:min(720px,100% - .25rem)}.btn{min-height:44px}}@media (width<=860px){.page{padding-inline:.85rem}.workspace.page{padding-inline:.55rem;padding-top:.45rem}.lab{grid-template-columns:1fr}.lab__sidebar{border-right:0;border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:stretch;gap:.45rem;max-height:9.5rem;display:flex;overflow:auto}.lab__palette{grid-template-columns:none;grid-auto-columns:max-content;grid-auto-flow:column;width:100%;overflow-x:auto}.lab-instruments{width:100%}.auth-shell{padding-inline:.85rem}.auth-card{padding:1.25rem 1.1rem 1.35rem}.project-list li{flex-direction:column;align-items:stretch}.project-list__actions{flex-wrap:wrap}}@media (width<=700px){.workspace__grid--combined{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:1fr}.workspace__grid--combined .panel--editor.is-visible{grid-area:1/1}.workspace__grid--combined .panel--lab.is-visible{grid-area:2/1}}@media (width<=520px){.page{padding-inline:.65rem}.workspace.page{padding-inline:.4rem}.workspace__intro strong{font-size:.95rem}.mobile-tabs button{min-height:42px;padding-inline:.55rem;font-size:.85rem}.levels-grid{grid-template-columns:1fr}.welcome__copy h1{font-size:clamp(2.1rem,12vw,3rem)}.form-panel,.auth-card{padding:1.1rem .95rem 1.2rem}.modal{border-radius:16px;padding:1rem 1.05rem}.learn-flow__text{font-size:1rem}.learn-flow__actions .btn{flex:auto}}@media (width>=701px) and (width<=1100px){.workspace__grid--combined{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.workspace__grid--combined .panel--editor.is-visible,.workspace__grid--combined .panel--lab.is-visible{grid-row:1}.workspace__grid--combined .panel--editor.is-visible{grid-column:1}.workspace__grid--combined .panel--lab.is-visible{grid-column:2}.lab{grid-template-columns:120px 1fr}.lab__sidebar{border-right:2px solid var(--line);border-bottom:0;max-height:none;display:block}.lab__palette{grid-template-columns:1fr;grid-auto-flow:row;overflow:visible}}.brand-lockup{align-items:center;gap:.55rem;display:inline-flex}.brand-lockup-link{color:inherit;text-decoration:none}.brand-lockup__icon{border-radius:12px;flex:none;display:block;box-shadow:0 6px 16px #0b3d2447}.welcome__hero-img{object-fit:cover;z-index:1;border-radius:24px;width:min(100%,560px);height:auto;display:block;position:relative;box-shadow:0 24px 60px #00000038}.learn-flow.modal-backdrop{z-index:80}.learn-flow__modal{width:min(720px,100% - .5rem);max-height:none;padding:clamp(1rem,3vw,1.5rem);overflow:visible}.learn-flow__header{gap:.75rem;min-width:0;margin-bottom:1rem;display:grid}.learn-flow__header h2{max-width:100%;margin:0;font-size:clamp(1.15rem,2.6vw,1.55rem);line-height:1.25}.learn-flow__eyebrow{margin:0;font-size:.85rem}.learn-flow__steps{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;gap:.45rem;min-width:0;margin:0;padding:0 0 .15rem;font-size:.8rem;font-weight:700;list-style:none;display:flex;overflow-x:auto}.learn-flow__steps li{white-space:nowrap;border:1px solid var(--line);width:max-content;color:var(--muted);border-radius:999px;flex:none;padding:.3rem .65rem}.learn-flow__steps li.is-active{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb, var(--brand) 12%, transparent)}.learn-flow__steps li.is-done{color:var(--ink);opacity:.75}.learn-flow__body{gap:.85rem;display:grid}.learn-flow__text{font-size:1.05rem;line-height:1.55}.learn-flow__example{border:2px dashed color-mix(in srgb, var(--brand) 45%, var(--line));background:color-mix(in srgb, var(--panel) 70%, transparent);border-radius:12px;margin:.85rem 0 1rem;padding:.75rem .9rem}.learn-flow__example strong{margin-bottom:.35rem;font-size:.85rem;display:block}.learn-flow__example pre{white-space:pre-wrap;color:var(--ink);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;line-height:1.45}.learn-flow__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.learn-flow__score{font-size:1.15rem;font-weight:800}.learn-flow__why{margin:.25rem 0;font-size:.92rem}.learn-quiz__list,.learn-quiz__review{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.learn-quiz__item,.learn-quiz__review li{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:.75rem}.learn-quiz__review li.is-correct{border-color:#1a9b57}.learn-quiz__review li.is-wrong{border-color:#e23d32}.learn-quiz__options{gap:.35rem;display:grid}.learn-quiz__option{cursor:pointer;align-items:flex-start;gap:.45rem;font-weight:600;display:flex}.ward-progress{border:1px solid var(--line);background:var(--panel);border-radius:16px;margin-top:1rem;padding:1rem}.ward-progress__grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.65rem;margin:.85rem 0 1rem;display:grid}.ward-progress__grid article{border:1px solid var(--line);border-radius:12px;gap:.2rem;padding:.65rem;display:grid}.ward-progress__grid strong{color:var(--brand);font-size:1.35rem}.ward-progress__grid span{color:var(--muted);font-size:.78rem}.ward-progress__quizzes{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.ward-progress__quizzes li{justify-content:space-between;gap:.5rem;font-size:.9rem;display:flex}.ward-progress__quizzes .ok{color:#1a9b57;font-weight:700}.ward-progress__quizzes .bad{color:#e23d32;font-weight:700}.impersonation-banner{z-index:90;background:color-mix(in srgb, var(--accent) 28%, var(--panel));border-bottom:2px solid color-mix(in srgb, var(--accent) 55%, var(--line));color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;padding:.65rem 1rem;font-weight:700;display:flex;position:sticky;top:0}.impersonation-banner p{flex:1;min-width:12rem;margin:0;font-size:.95rem;line-height:1.35}.impersonation-banner__hint{color:var(--muted);font-weight:600}@media (width<=860px){.impersonation-banner{padding:.55rem .75rem}.impersonation-banner .btn{width:100%}}
