@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/instrument-serif-italic-latin-ext.5ece437c.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/instrument-serif-italic-latin.9cc5b37a.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/instrument-serif-latin-ext.35f3de0e.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/instrument-serif-latin.e6099e24.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-cyrillic-ext.ba9851c3.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-cyrillic.21350d82.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-greek-ext.c5fe6dc8.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-greek.19cfc722.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-vietnamese.df0a9ae2.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-latin-ext.8e9860b6.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/inter-latin.e4af272c.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext.edc64095.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-cyrillic.ac0e76dd.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-greek.64d784ea.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-vietnamese.ff71da38.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-latin-ext.6d831b18.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/_next/static/media/jetbrains-mono-latin.558ca1a6.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/caveat-cyrillic-ext.e44cdba7.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/caveat-cyrillic.07fccecd.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/caveat-latin-ext.486fce9f.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/caveat-latin.46bdd75a.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Instrument Serif","Iowan Old Style",Georgia,serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--font-hand:"Caveat","Segoe Print","Bradley Hand",cursive;--font-features:"ss01" 1,"cv11" 1,"cv02" 1,"calt" 1;--font-features-brand:"ss01" 1,"cv11" 1;--ink-950:#0a0f1c;--ink-900:#111827;--ink-800:#1f2937;--azure-50:#eef4ff;--azure-100:#dbe7ff;--azure-200:#b8ceff;--azure-400:#5b8def;--azure-500:#3a6fe0;--azure-600:#2b5bce;--azure-700:#1f47a8;--marker-300:#ffd27a;--marker-400:#ffb547;--marker-500:#f59425;--slate-0:#ffffff;--slate-25:#fbfcfd;--slate-50:#f6f8fb;--slate-100:#eef1f6;--slate-200:#e2e7ef;--slate-300:#cbd3df;--slate-400:#97a1b2;--slate-500:#626c7e;--slate-600:#4a5366;--slate-700:#323a4c;--slate-800:#1d2433;--slate-900:#0f1522;--success-50:#ecfdf5;--success-200:#a7f3d0;--success-500:#10b981;--success-700:#047857;--warning-50:#fffaeb;--warning-200:#fde68a;--warning-500:#f59e0b;--warning-700:#b45309;--danger-50:#fef2f2;--danger-200:#fecaca;--danger-500:#ef4444;--danger-700:#b91c1c;--info-50:#eff6ff;--info-200:#bfdbfe;--info-500:#3b82f6;--info-700:#1d4ed8;--grade-9:#0f766e;--grade-8:#0e7490;--grade-7:#1d4ed8;--grade-6:#4338ca;--grade-5:#6b21a8;--grade-4:#b45309;--grade-3:#9a3412;--grade-2:#991b1b;--grade-1:#7f1d1d;--grade-U:#475569;--logo-black:#000000;--logo-white:#ffffff;--logo-azure:var(--azure-500);--logo-ease-build:cubic-bezier(0.2,0.6,0.2,1);--brand-ink-1:var(--ink-950);--brand-ink-2:var(--slate-800);--brand-accent:var(--azure-500);--brand-accent-h:var(--azure-600);--brand-accent-soft:var(--azure-50);--brand-warm:var(--marker-400);--brand-warm-fg:#7a4b06;--brand-warm-bg:#fff4df;--bg-page:var(--slate-25);--bg-surface:var(--slate-0);--bg-sunken:var(--slate-50);--bg-inverse:var(--ink-900);--surface-0:var(--slate-25);--surface-1:var(--bg-surface);--surface-2:var(--slate-50);--fg-1:var(--slate-900);--fg-2:var(--slate-700);--fg-3:var(--slate-500);--fg-4:var(--slate-400);--fg-on-ink:var(--slate-0);--fg-link:var(--azure-600);--border-subtle:var(--slate-100);--border-default:var(--slate-200);--border-strong:var(--slate-300);--border-focus:var(--azure-500);--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:999px;--shadow-xs:0 1px 2px rgba(15,21,34,0.04);--shadow-sm:0 1px 2px rgba(15,21,34,0.06),0 1px 3px rgba(15,21,34,0.04);--shadow-md:0 4px 12px -2px rgba(15,21,34,0.08),0 2px 4px -2px rgba(15,21,34,0.04);--shadow-lg:0 16px 40px -12px rgba(15,21,34,0.18),0 4px 8px -4px rgba(15,21,34,0.06);--shadow-focus:0 0 0 2px var(--brand-accent),0 0 0 5px rgba(58,111,224,0.45);--shadow-inset:inset 0 1px 0 rgba(255,255,255,0.6),inset 0 0 0 1px rgba(15,21,34,0.04);--overlay:rgba(15,23,42,0.45);--z-nav:40;--z-sheet:60;--z-overlay:100;--z-overlay-top:200;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--ease-standard:cubic-bezier(0.2,0.6,0.2,1);--ease-entry:cubic-bezier(0,0,0.2,1);--ease-exit:cubic-bezier(0.4,0,1,1);--dur-1:120ms;--dur-2:200ms;--dur-3:320ms;--dur-4:520ms;--container-sm:560px;--container-md:760px;--container-lg:1040px;--container-xl:1280px;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:38px;--text-5xl:clamp(44px,5vw,60px);--text-6xl:clamp(56px,7vw,88px);--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-0.02em;--tracking-snug:-0.01em;--tracking-wide:0.02em;--tracking-caps:0.08em;--mode-hero-bg:var(--brand-accent-soft);--mode-hero-border:var(--azure-100);--mode-rule:transparent;--mode-chip-bg:var(--azure-50);--mode-chip-fg:var(--azure-700);--mode-nav-active-bg:var(--brand-accent-soft)}[data-workspace-mode=department]{--mode-hero-bg:var(--brand-warm-bg);--mode-hero-border:var(--marker-300);--mode-rule:var(--marker-400);--mode-chip-bg:var(--marker-300);--mode-chip-fg:var(--brand-warm-fg);--mode-nav-active-bg:var(--brand-warm-bg)}[data-workspace-mode=school]{--mode-hero-bg:var(--slate-50);--mode-hero-border:var(--slate-200);--mode-rule:var(--slate-400);--mode-chip-bg:var(--slate-100);--mode-chip-fg:var(--slate-700);--mode-nav-active-bg:var(--slate-100)}html{font-family:var(--font-sans);font-feature-settings:var(--font-features);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--fg-1);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;color:var(--fg-2);text-wrap:pretty}h1,h2,h3,h4,h5,h6{margin:0;color:var(--fg-1);font-weight:600;letter-spacing:var(--tracking-tight);text-wrap:balance}h1{font-size:var(--text-4xl);font-weight:700}h1,h2{line-height:var(--leading-tight)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h3,h4{line-height:var(--leading-snug)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h5,h6{line-height:var(--leading-snug)}h6{font-size:var(--text-md);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-3);font-weight:600}p{margin:0}a{color:var(--fg-link);text-decoration:none;text-underline-offset:3px;transition:color var(--dur-1) var(--ease-standard)}a:hover{color:var(--azure-700);text-decoration:none}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.92em}small{font-size:var(--text-sm);color:var(--fg-3)}::selection{background:var(--azure-200);color:var(--ink-900)}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.display{font-family:var(--font-serif);font-size:var(--text-6xl);line-height:1.02;letter-spacing:-.025em;font-weight:400;font-style:italic}.eyebrow{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);color:var(--azure-700);font-weight:600}.lede{font-size:var(--text-xl);line-height:var(--leading-snug);font-weight:400}.body,.lede{color:var(--fg-2)}.body{font-size:var(--text-md);line-height:var(--leading-normal)}.caption{font-size:var(--text-sm);color:var(--fg-3)}.overline{letter-spacing:var(--tracking-caps)}.mono{font-family:var(--font-mono);font-feature-settings:"zero" 1,"ss01" 1}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}[data-palette=ink]{--brand-ink-1:#0a0f1c;--brand-ink-2:#1d2433;--brand-accent:#3a6fe0;--brand-accent-h:#2b5bce;--brand-accent-soft:#eef4ff;--brand-warm:#ffb547;--brand-warm-fg:#7a4b06;--brand-warm-bg:#fff4df}[data-palette=graphite]{--brand-ink-1:#1f2530;--brand-ink-2:#2b313d;--brand-accent:#4a7dd4;--brand-accent-h:#355fb5;--brand-accent-soft:#eaf0fa;--brand-warm:#e39a3e;--brand-warm-fg:#6a4208;--brand-warm-bg:#fdf1dc}[data-palette=aubergine]{--brand-ink-1:#2a1c35;--brand-ink-2:#362642;--brand-accent:#2f8e86;--brand-accent-h:#247168;--brand-accent-soft:#e5f2f0;--brand-warm:#d89a56;--brand-warm-fg:#6b3e11;--brand-warm-bg:#fbefdd}body,html{margin:0;background:var(--bg-page);color:var(--fg-1);font-family:var(--font-sans)}body{-webkit-font-smoothing:antialiased}.topnav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-default);padding:10px 24px;gap:20px}.topnav,.topnav .brand{display:flex;align-items:center}.topnav .brand{gap:10px;font-weight:700;color:var(--brand-ink-1);letter-spacing:-.015em}.topnav nav{display:flex;gap:2px;flex:1 1;overflow-x:auto;scrollbar-width:none}.topnav nav::-webkit-scrollbar{display:none}.topnav nav a{padding:6px 10px;border-radius:7px;font-size:12px;font-weight:500;color:var(--fg-3);text-decoration:none;white-space:nowrap;transition:all .12s}.topnav nav a:hover{color:var(--fg-1);background:var(--slate-50)}.topnav nav a.active{color:var(--brand-ink-1);background:var(--slate-100);font-weight:600}.topnav nav a .num{font-family:var(--font-mono);font-size:10px;color:var(--fg-3);margin-right:4px;letter-spacing:.04em}.stage{padding:40px 24px 56px;max-width:1360px;margin:0 auto}.stage-head{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}.stage-head .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--fg-3);text-transform:uppercase}.stage-head h2{font-size:28px;font-weight:700;letter-spacing:-.025em;color:var(--brand-ink-1);margin:0}.stage-head .sub{font-family:var(--font-serif);font-style:italic;color:var(--fg-3);font-size:18px;letter-spacing:-.01em}.stage-notes{color:var(--fg-2);font-size:14px;line-height:1.6;max-width:780px;margin:0 0 24px}.section-divider{border:0;border-top:1px solid var(--border-default);margin:16px 0 0;opacity:.7}.bframe{background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--border-default);box-shadow:0 24px 48px -20px rgba(15,21,34,.18),0 4px 12px -4px rgba(15,21,34,.08)}.bframe .chrome{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--slate-50);border-bottom:1px solid var(--border-default)}.bframe .dots{display:flex;gap:5px}.bframe .dots span{width:10px;height:10px;border-radius:50%;background:var(--slate-200)}.bframe .url{flex:1 1;padding:5px 12px;border-radius:7px;background:#fff;border:1px solid var(--border-default);font-family:var(--font-mono);font-size:11px;color:var(--fg-3);display:flex;align-items:center;gap:8px}.bframe .url .lock{color:var(--success-700);font-size:10px}.bframe .body{background:var(--bg-page);min-height:600px}.appheader{justify-content:space-between;padding:14px 28px;background:rgba(255,255,255,.86);border-bottom:1px solid var(--border-default)}.appheader,.applogo{display:flex;align-items:center}.applogo{gap:10px}.applogo svg{width:28px;height:28px}.applogo .name{font-weight:700;color:var(--brand-ink-1);letter-spacing:-.015em}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font-weight:600;font-size:13px;letter-spacing:-.005em;border:1px solid transparent;cursor:pointer;transition:all .12s var(--ease-standard);font-family:inherit}.btn.primary{background:var(--brand-ink-1);color:#fff}.btn.primary:hover{background:var(--brand-ink-2);transform:translateY(-.5px)}.btn.brand{background:var(--brand-accent);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.btn.brand:hover{background:var(--brand-accent-h);transform:translateY(-.5px)}.btn.secondary{background:#fff;color:var(--fg-1);border-color:var(--border-strong)}.btn.secondary:hover{border-color:var(--slate-400)}.btn.ghost{background:transparent;color:var(--fg-2)}.btn.ghost:hover{color:var(--fg-1);background:var(--slate-50)}.btn.sm{padding:6px 10px;font-size:12px;border-radius:8px}.btn.lg{padding:12px 18px;font-size:14px}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--slate-100);color:var(--slate-700);letter-spacing:-.005em}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.chip.ai{background:var(--brand-warm-bg);color:var(--brand-warm-fg);border:1px dashed var(--brand-warm)}.chip.ok{background:var(--success-50);color:var(--success-700)}.chip.info{background:var(--brand-accent-soft);color:var(--brand-accent-h)}.chip.warn{background:var(--warning-50);color:var(--warning-700)}.chip.err{background:var(--danger-50);color:var(--danger-700)}.card{background:#fff;border:1px solid var(--border-default);border-radius:14px;box-shadow:var(--shadow-xs);padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-default)}.card-head h3{font-size:16px;font-weight:600;color:var(--fg-1);margin:0;letter-spacing:-.015em}.wstep{margin-bottom:28px}.wstep,.wstep .s{display:flex;align-items:center}.wstep .s{gap:10px}.wstep .bubble{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;font-family:var(--font-mono);background:var(--slate-100);color:var(--fg-3);transition:all .2s}.wstep .s.active .bubble{background:var(--brand-ink-1);color:#fff;box-shadow:0 0 0 5px rgba(58,111,224,.12)}.wstep .s.done .bubble{background:var(--success-500);color:#fff}.wstep .s .label{font-size:13px;color:var(--fg-3);font-weight:500}.wstep .s.active .label{color:var(--fg-1);font-weight:600}.wstep .s.done .label{color:var(--fg-2)}.wstep .line{flex:1 1;height:2px;background:var(--slate-200);margin:0 12px}.wstep .line.done{background:linear-gradient(to right,var(--success-500),var(--brand-ink-1))}.grade{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:#fff;font-weight:700;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:all .2s var(--ease-standard)}.grade.sm{width:22px;height:22px;font-size:11px;border-radius:6px}.grade.lg{width:40px;height:40px;font-size:18px;border-radius:10px}.grade.g9{background:var(--grade-9)}.grade.g8{background:var(--grade-8)}.grade.g7{background:var(--grade-7)}.grade.g6{background:var(--grade-6)}.grade.g5{background:var(--grade-5)}.grade.g4{background:var(--grade-4)}.grade.g3{background:var(--grade-3)}.grade.g2{background:var(--grade-2)}.grade.g1{background:var(--grade-1)}.grade.gU{background:var(--grade-U)}@keyframes gradeIn{0%{transform:scale(.4) rotate(-10deg);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.grade.revealing{animation:gradeIn .42s var(--ease-standard) both}@keyframes rowIn{0%{opacity:0;transform:translateY(4px);background:var(--brand-warm-bg)}60%{background:var(--brand-warm-bg)}to{opacity:1;transform:none;background:transparent}}.row-fading{animation:rowIn .52s var(--ease-standard) both}@keyframes cellIn{0%{opacity:0}to{opacity:1}}.mtable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.mtable th{text-align:left;padding:10px 14px;background:var(--slate-50);border-bottom:1px solid var(--border-default);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);font-weight:600;position:sticky;top:0;z-index:1}.mtable td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;vertical-align:middle}.mtable tr:hover td{background:var(--slate-25)}.mtable tr.selected td{background:var(--brand-accent-soft)}.mtable td.pupil{font-weight:500;color:var(--fg-1)}.mtable td.mono{font-family:var(--font-mono);font-size:12px}.mtable td.flagged{background:var(--brand-warm-bg)!important;font-weight:600;position:relative}.mtable td.flagged:after{content:"✦";margin-left:4px;color:var(--brand-warm-fg);font-size:10px}.mtable tr.clickable{cursor:pointer}.mtable tr.active-row td{background:var(--brand-accent-soft)!important}.mtable tr.active-row td.pupil:before{content:"▸";color:var(--brand-accent);margin-right:6px}.sidepanel{position:fixed;top:0;right:0;bottom:0;width:440px;z-index:45;background:#fff;border-left:1px solid var(--border-default);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .28s var(--ease-standard);display:flex;flex-direction:column;overflow:hidden}.sidepanel[data-open=true]{transform:translateX(0)}.sidepanel-header{padding:16px 20px;border-bottom:1px solid var(--border-default);display:flex;align-items:center;gap:10px}.sidepanel-body{flex:1 1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px}.sidepanel-footer{padding:14px 20px;border-top:1px solid var(--border-default);display:flex;gap:8px;background:var(--slate-25)}.sp-close{margin-left:auto;background:transparent;border:none;color:var(--fg-3);font-size:18px;cursor:pointer}.script-exc,.sp-close:hover{color:var(--fg-1)}.script-exc{padding:14px;border-radius:10px;background:var(--slate-25);border:1px solid var(--border-default);font-family:Georgia,serif;font-size:13.5px;line-height:1.65}.script-exc em.hit{background:#d1f3d1;color:#1c4b1c}.script-exc em.hit,.script-exc em.miss{font-style:normal;padding:0 2px;border-radius:2px}.script-exc em.miss{background:#fde1e1;color:#701818}.rationale{padding:14px;border-radius:10px;background:var(--brand-warm-bg);border:1px dashed var(--brand-warm);color:var(--brand-warm-fg)}.rationale .head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}.rationale ul{margin:0;padding-left:18px;font-size:13px;color:var(--fg-2);line-height:1.6}.rationale li+li{margin-top:2px}.rationale li.hit::marker{content:"✓ ";color:var(--success-700)}.rationale li.miss::marker{content:"✗ ";color:var(--danger-700)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:14px;padding:36px 24px;text-align:center;background:var(--slate-25);transition:all .16s}.dropzone:hover{border-color:var(--brand-accent);background:var(--brand-accent-soft)}.dropzone .icon{width:48px;height:48px;border-radius:12px;margin:0 auto 12px;background:#fff;border:1px solid var(--border-default);display:flex;align-items:center;justify-content:center;color:var(--brand-accent)}.dropzone .title{font-weight:600;font-size:15px;color:var(--fg-1);margin-bottom:4px}.dropzone .sub{font-size:12px;color:var(--fg-3)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:12.5px;font-weight:600;color:var(--fg-1)}.field>.help{font-size:11.5px;color:var(--fg-3)}.input,.select,.textarea{padding:9px 12px;border-radius:10px;border:1px solid var(--border-strong);background:#fff;font-family:inherit;font-size:13.5px;color:var(--fg-1);outline:none;transition:all .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-accent);box-shadow:var(--shadow-focus)}.textarea{resize:vertical;font-family:var(--font-mono);font-size:12px;line-height:1.6}.overline{font-family:var(--font-mono);color:var(--fg-3);font-weight:600}.eyebrow,.overline{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.eyebrow{color:var(--brand-accent-h);font-weight:700}.tweaks-fab{z-index:60;background:var(--brand-ink-1);color:#fff;border:none;padding:10px 14px;border-radius:999px;font:600 12px/1 var(--font-sans);cursor:pointer}.tweaks,.tweaks-fab{position:fixed;bottom:20px;right:20px;box-shadow:var(--shadow-lg)}.tweaks{z-index:61;background:#fff;border:1px solid var(--border-default);border-radius:14px;width:280px;padding:16px;display:none}.tweaks[data-open=true]{display:block}.tweaks h3{font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;color:var(--fg-3);font-weight:700}.tweaks .row{margin-bottom:12px}.tweaks label.row-label{display:block;font-size:11.5px;color:var(--fg-2);margin-bottom:6px;font-weight:600}.tweaks .seg{display:flex;gap:2px;background:var(--slate-100);padding:2px;border-radius:8px}.tweaks .seg button{flex:1 1;border:none;background:transparent;font:600 11.5px/1 var(--font-sans);padding:6px 4px;border-radius:6px;color:var(--fg-2);cursor:pointer}.tweaks .seg button[aria-pressed=true]{background:#fff;color:var(--fg-1);box-shadow:0 1px 2px rgba(15,21,34,.06)}.tweaks-fab-close{cursor:pointer}.pal-swatch{width:14px;height:14px;border-radius:4px;display:inline-block;margin-right:4px;vertical-align:-2px}:root{--brand-success-fg:var(--success-700);--brand-accent-fg:var(--brand-accent-h);--bg-card:var(--bg-surface);--d-gap-xs:6px;--d-gap-sm:8px;--d-gap-md:14px;--d-gap-lg:20px;--d-gap-xl:28px;--d-pad-row:12px 16px;--d-font-body:13.5px;--d-font-table:13px;--d-h2:26px;--d-row-h:48px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInR{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes pulse-live{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}@keyframes pulse{0%,to{box-shadow:0 0 0 4px rgba(34,217,122,.3)}50%{box-shadow:0 0 0 7px rgba(34,217,122,0)}}@keyframes shimmerSlide{0%{background-position:0 0}to{background-position:16px 0}}.vstep{display:flex;flex-direction:column;position:relative;gap:2px}.vstep .step{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:10px 0;align-items:flex-start;position:relative}.vstep .step .bubble{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 11px/1 var(--font-mono);background:var(--bg-surface);color:var(--fg-3);border:1px solid var(--border-default);z-index:1;transition:all var(--dur-2)}.vstep .step.active .bubble{background:var(--brand-ink-1);color:#fff;border-color:var(--brand-ink-1);box-shadow:0 0 0 4px var(--brand-accent-soft)}.vstep .step.done .bubble{background:var(--success-500);color:#fff;border-color:var(--success-500)}.vstep .step .label{font-size:13px;color:var(--fg-3);font-weight:500;padding-top:4px}.vstep .step.active .label{color:var(--fg-1);font-weight:600}.vstep .step.done .label{color:var(--fg-2)}.vstep .step .sub{display:block;font-size:11px;color:var(--fg-3);margin-top:2px;font-weight:400}.vstep .step:not(:last-child):after{content:"";position:absolute;left:13px;top:34px;bottom:-2px;width:1px;background:var(--border-default)}.vstep .step.done:after{background:var(--success-500)}.vstep button.step{border:0;background:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:8px}.vstep button.step:hover .label{color:var(--fg-1);text-decoration:underline}.vstep button.step:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;box-shadow:none}.btn-v2{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;font:600 13px/1 var(--font-sans);letter-spacing:-.005em;border:1px solid transparent;cursor:pointer;transition:all var(--dur-1) var(--ease-standard);white-space:nowrap}.btn-v2.primary{background:var(--brand-ink-1);color:#fff}.btn-v2.primary:hover{background:var(--brand-ink-2);transform:translateY(-.5px)}.btn-v2.brand{background:var(--brand-accent);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.btn-v2.brand:hover{background:var(--brand-accent-h);transform:translateY(-.5px)}.btn-v2.secondary{background:#fff;color:var(--fg-1);border-color:var(--border-strong)}.btn-v2.secondary:hover{border-color:var(--slate-400)}.btn-v2.ghost{background:transparent;color:var(--fg-2)}.btn-v2.ghost:hover{color:var(--fg-1);background:var(--slate-50)}.btn-v2.destructive{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-200,var(--danger-50))}.btn-v2.destructive:hover{background:var(--danger-100,var(--danger-50));color:var(--danger-800,var(--danger-700))}.btn-v2:disabled,.btn-v2[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn-v2.sm{padding:6px 10px;font-size:12px;border-radius:8px}.btn-v2.lg{padding:12px 18px;font-size:14px}.btn-v2.wide{width:100%;justify-content:center}.btn-v2.is-loading{cursor:progress}.btn-v2-spinner{animation:btn-v2-spin .7s linear infinite;flex:none}@keyframes btn-v2-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.btn-v2-spinner{animation-duration:2.4s}}.chip-v2{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font:600 11.5px/1.4 var(--font-sans);letter-spacing:-.005em;background:var(--slate-100);color:var(--slate-700)}.chip-v2 .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.chip-v2.ai{background:var(--brand-warm-bg);color:var(--brand-warm-fg);border:1px dashed var(--brand-warm)}.chip-v2.ok{background:var(--success-50);color:var(--success-700)}.chip-v2.info{background:var(--brand-accent-soft);color:var(--brand-accent-h)}.chip-v2.warn{background:var(--warning-50);color:var(--warning-700)}.chip-v2.danger{background:var(--danger-50);color:var(--danger-700)}.chip-v2.ghost{background:transparent;color:var(--fg-3);border:1px solid var(--border-default)}.chip-v2.danger:before,.chip-v2.info:before,.chip-v2.ok:before,.chip-v2.warn:before{font-family:var(--font-sans);font-weight:700;font-size:.95em;line-height:1}.chip-v2.ok:before{content:"✓"}.chip-v2.info:before{content:"ⓘ"}.chip-v2.warn:before{content:"⚠"}.chip-v2.danger:before{content:"✕"}.chip-v2[data-no-glyph]:before{content:none}.chip-v2:has(>.dot):before{content:none}.input-v2{padding:9px 12px;border-radius:10px;border:1px solid var(--border-strong);background:#fff;font:inherit;font-size:13.5px;color:var(--fg-1);outline:none;transition:all var(--dur-1);width:100%;box-sizing:border-box}select.input-v2{appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.5 7.5L10 12L14.5 7.5' stroke='%23667585' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px 16px}.input-v2:focus{border-color:var(--brand-accent);box-shadow:var(--shadow-focus)}.field-v2{display:flex;flex-direction:column;gap:6px}.field-v2>label{font:600 12.5px/1.3 var(--font-sans);color:var(--fg-1)}.field-v2>.help{font:400 11.5px/1.5 var(--font-sans);color:var(--fg-3)}.kv{display:grid;grid-template-columns:140px 1fr;gap:10px 14px;font-size:13px;align-items:baseline}.kv dt{color:var(--fg-3)}.kv dd,.kv dt{font-weight:500}.kv dd{color:var(--fg-1);margin:0}.dz-v2{border:1.5px dashed var(--border-strong);border-radius:14px;padding:28px 24px;text-align:center;background:var(--slate-25);transition:all var(--dur-2);cursor:pointer}.dz-v2.hot,.dz-v2:hover{border-color:var(--brand-accent);background:var(--brand-accent-soft)}@media (hover:none){.dz-v2:not(.ok):active{border-color:var(--brand-accent);background:var(--brand-accent-soft)}}.dz-v2.ok{border-style:solid;border-color:var(--success-200);background:var(--success-50);cursor:default}.dz-v2.err{border-style:solid;border-color:var(--danger-500);background:var(--danger-50)}.dz-v2.err:hover{border-color:var(--danger-700);background:var(--danger-50)}.dz-v2 .icon{width:48px;height:48px;border-radius:12px;margin:0 auto 12px;background:#fff;border:1px solid var(--border-default);display:flex;align-items:center;justify-content:center;color:var(--brand-accent)}.dz-v2.ok .icon{color:var(--success-700);border-color:var(--success-200)}.dz-v2.err .icon{border-color:var(--danger-500)}.dz-v2.err .icon,.dz-v2.err .title{color:var(--danger-700)}.dz-v2 .title{font:600 15px/1.3 var(--font-sans);color:var(--fg-1);margin-bottom:4px}.dz-v2 .sub{font:400 12px/1.5 var(--font-sans);color:var(--fg-3)}.dz-v2 .filechip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:999px;background:#fff;border:1px solid var(--border-default);font:500 12px/1 var(--font-mono);color:var(--fg-1);margin-top:10px}.dz-v2 .filechip .ft{background:var(--danger-500);color:#fff;font:700 9px/1 var(--font-sans);padding:3px 5px;border-radius:4px}.card-v2{background:#fff;border:1px solid var(--border-default);border-radius:14px;box-shadow:var(--shadow-xs);padding:20px}.card-v2.quiet{background:var(--bg-sunken)}.card-v2>h3{font:600 15px/1.3 var(--font-sans);margin:0 0 12px;letter-spacing:-.01em}.card-v2>h3,.gp{color:var(--fg-1)}.gp{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;font:700 13px/1 var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border:1px solid transparent}.gp.sm{width:22px;height:22px;font-size:11px;border-radius:6px}.gp.lg{width:40px;height:40px;font-size:18px;border-radius:10px}.gp.g9{background:var(--grade-9);color:#fff}.gp.g8{background:var(--grade-8);color:#fff}.gp.g7{background:var(--grade-7);color:#fff}.gp.g6{background:var(--grade-6);color:#fff}.gp.g5{background:var(--grade-5);color:#fff}.gp.g4{background:var(--grade-4);color:#fff}.gp.g3{background:var(--grade-3);color:#fff}.gp.g2{background:var(--grade-2);color:#fff}.gp.g1{background:var(--grade-1);color:#fff}.gp.gU{background:var(--grade-U);color:#fff}.gp-delta{font:700 11px/1 var(--font-mono);margin-left:6px}.gp-delta.up{color:var(--success-700)}.gp-delta.down{color:var(--danger-700)}.gp-delta.flat{color:var(--fg-3)}.mt{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--d-font-table,13px)}.mt thead th{text-align:left;padding:10px 14px;background:var(--slate-50);border-bottom:1px solid var(--border-default);font:600 11px/1.2 var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);position:sticky;top:0;z-index:1}.mt tbody td{padding:var(--d-pad-row,12px 16px);border-bottom:1px solid var(--border-subtle);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;vertical-align:middle}.mt tbody tr:hover td{background:var(--slate-25)}.mt tbody tr.clickable{cursor:pointer}.mt tbody tr.selected td{background:var(--brand-accent-soft)}.mt tbody tr.selected td:first-child{box-shadow:inset 2px 0 0 var(--brand-accent)}.mt tbody tr.flagged td{background:var(--brand-warm-bg)}.mt td.name{font-weight:500;color:var(--fg-1)}.mt td.mono{font:500 12px/1 var(--font-mono)}.phone{width:320px;background:#000;border-radius:42px;padding:10px;border:1px solid var(--border-strong);box-shadow:0 30px 60px -30px rgba(15,21,34,.35),0 10px 20px -10px rgba(15,21,34,.12)}.phone .screen{background:var(--bg-page);border-radius:34px;overflow:hidden;min-height:600px;position:relative;display:flex;flex-direction:column}.phone .statusbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 4px;font:600 12px/1 var(--font-sans);color:var(--fg-1)}.phone .statusbar .dots{display:flex;gap:4px}.phone .statusbar .dots i{width:12px;height:12px}.phone .body{flex:1 1;padding:20px;display:flex;flex-direction:column;gap:14px;overflow:hidden}.phone h1{font-size:22px;letter-spacing:-.02em;font-weight:700;line-height:1.15;color:var(--brand-ink-1)}.phone h2{font-size:15px;font-weight:600;letter-spacing:-.01em}.phone p{font-size:13px;color:var(--fg-2);line-height:1.5}.phone .notch{position:absolute;left:50%;top:0;transform:translateX(-50%);width:120px;height:28px;background:#000;border-radius:0 0 16px 16px;z-index:2}.scroll-hint{position:sticky;bottom:0;pointer-events:none;background:linear-gradient(0deg,#fff,transparent);height:32px}.pupil-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--dur-1)}.pupil-row:hover{background:var(--slate-25)}.pupil-row .avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 13px/1 var(--font-sans);color:#fff;flex-shrink:0}.pupil-row .name{font-weight:600;color:var(--fg-1);font-size:14px}.pupil-row .sub{font-size:11.5px;color:var(--fg-3);margin-top:2px}.pupil-row .state{margin-left:auto}.cam{background:#0a0f1c;border-radius:14px;aspect-ratio:3/4;position:relative;overflow:hidden}.cam .paper{position:absolute;inset:10% 8% 22% 12%;background:#fdfcf8;border-radius:2px;box-shadow:0 8px 20px -6px rgba(0,0,0,.4);transform:rotate(-2deg);padding:14px;font-family:Georgia,serif;font-size:10px;line-height:1.5;color:#1a1a1a;overflow:hidden}.cam .paper b{display:block;font-size:11px;margin-bottom:6px}.cam .paper .hw{font-family:Shadows Into Light,cursive;color:#234;font-size:12px}.cam .crosshair{position:absolute;inset:16%;border:2px dashed rgba(255,255,255,.5);border-radius:8px;pointer-events:none}.cam .status{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;color:#fff;font:600 11px/1.3 var(--font-sans);display:flex;align-items:center;gap:8px;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent)}.cam .status .live{width:8px;height:8px;border-radius:50%;background:#22d97a;box-shadow:0 0 0 4px rgba(34,217,122,.3);animation:pulse 1.6s infinite}.bar{position:relative;height:5px;background:var(--slate-100);overflow:hidden}.bar,.bar .fill{border-radius:999px}.bar .fill{height:100%;background:linear-gradient(90deg,var(--success-500),var(--success-700));transition:width var(--dur-4) var(--ease-standard);box-shadow:0 0 0 1px rgba(22,163,74,.08)}.bar .fill.warm{background:linear-gradient(90deg,var(--brand-warm),var(--brand-accent))}.bar .shimmer{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(148,163,184,.25) 0 4px,rgba(148,163,184,.08) 4px 8px);border-radius:999px;animation:shimmerSlide 1.6s linear infinite}.spark{display:flex;align-items:flex-end;gap:3px;height:36px}.spark i{flex:1 1;background:var(--brand-accent);border-radius:2px 2px 0 0;min-width:3px;opacity:.8}.spark i.t{background:var(--brand-warm)}.hover-lift{transition:transform var(--dur-1) var(--ease-standard),box-shadow var(--dur-1)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}