@font-face{font-family:__Fraunces_d4d11e;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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:__Fraunces_d4d11e;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Fraunces_d4d11e;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.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:__Fraunces_d4d11e;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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:__Fraunces_d4d11e;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Fraunces_d4d11e;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.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:__Fraunces_d4d11e;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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:__Fraunces_d4d11e;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Fraunces_d4d11e;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.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:__Fraunces_Fallback_d4d11e;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_d4d11e{font-family:__Fraunces_d4d11e,__Fraunces_Fallback_d4d11e;font-style:normal}.__variable_d4d11e{--font-fraunces:"__Fraunces_d4d11e","__Fraunces_Fallback_d4d11e"}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.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:__IBM_Plex_Mono_Fallback_595324;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:__IBM_Plex_Mono_595324,__IBM_Plex_Mono_Fallback_595324;font-style:normal}.__variable_595324{--font-plex-mono:"__IBM_Plex_Mono_595324","__IBM_Plex_Mono_Fallback_595324"}:root{--paper:#f7f3ea;--paper-line:#ddd3b8;--ink:#1d2b4f;--graphite:#4a4a45;--graphite-soft:#7a766b;--chalk-green:#2e5941;--chalk-green-soft:#e4eee7;--highlight:#e8b93e;--highlight-soft:#fbf0d4;--error:#a6402f;--error-soft:#f6e4df;--white:#fff;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px);background-size:100% 32px;font-family:var(--font-plex-mono),"IBM Plex Mono",monospace;color:var(--graphite);min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px}.app{width:100%;max-width:640px;background:var(--paper);position:relative}.header{display:flex;align-items:center;gap:14px;margin-bottom:28px;padding-bottom:16px;border-bottom:2px solid var(--ink)}.brand-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:50% 22%;border:2px solid var(--ink);flex-shrink:0}.brand{font-family:var(--font-fraunces),Fraunces,serif;font-size:34px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.brand-tag{font-size:11px;color:var(--graphite-soft);text-transform:uppercase;letter-spacing:.08em}.setup-card{background:var(--white);border:1px solid var(--paper-line);border-radius:var(--radius);padding:32px 28px}.setup-intro{font-family:var(--font-fraunces),Fraunces,serif;font-size:20px;font-weight:600;color:var(--ink);margin:0 0 8px}.setup-sub{font-size:13px;color:var(--graphite-soft);margin:0 0 28px;line-height:1.6}.field{margin-bottom:20px}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--graphite-soft);margin-bottom:8px}.field input[type=email],.field input[type=password],.field input[type=text]{width:100%;padding:10px 12px;font-family:var(--font-plex-mono),"IBM Plex Mono",monospace;font-size:15px;border:none;border-bottom:2px solid var(--paper-line);background:transparent;color:var(--ink);outline:none;transition:border-color .15s ease}.field input:focus{border-bottom-color:var(--chalk-green)}.checkbox-row{display:flex;align-items:center;gap:10px;margin:24px 0 28px}.checkbox-row input{width:16px;height:16px;accent-color:var(--chalk-green)}.checkbox-row label{font-size:13px;color:var(--graphite)}button{font-family:var(--font-plex-mono),"IBM Plex Mono",monospace;cursor:pointer;border:none}.btn-primary{width:100%;padding:14px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:600;letter-spacing:.03em;border-radius:6px;transition:transform .1s ease,background .15s ease}.btn-primary:hover{background:var(--chalk-green)}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:focus-visible,.btn-secondary:focus-visible,input:focus-visible{outline:2px solid var(--chalk-green);outline-offset:2px}.chat-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--graphite-soft);margin-bottom:18px}.chat-meta .dot{width:6px;height:6px;border-radius:50%;background:var(--chalk-green)}.transcript{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;min-height:120px}.msg{max-width:88%;padding:12px 16px;border-radius:var(--radius);font-size:14.5px;line-height:1.6;white-space:pre-wrap;animation:rise .25s ease}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg.leo{align-self:flex-start;background:var(--white);border:1px solid var(--paper-line);border-top-left-radius:2px;color:var(--ink)}.msg.leo:before{content:"Leo";display:block;font-family:var(--font-fraunces),Fraunces,serif;font-weight:600;font-size:12px;color:var(--chalk-green);margin-bottom:4px}.msg.teacher{align-self:flex-end;background:var(--ink);color:var(--paper);border-top-right-radius:2px}.msg.thinking{align-self:flex-start;background:var(--white);border:1px solid var(--paper-line);border-top-left-radius:2px;color:var(--graphite-soft);font-style:italic;display:flex;align-items:center;gap:8px}.thinking-dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--graphite-soft);margin-right:3px;animation:pulse 1.1s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.15s}.thinking-dots span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{display:flex;gap:10px;border-top:1px solid var(--paper-line);padding-top:16px}.composer textarea{flex:1 1;resize:none;font-family:var(--font-plex-mono),"IBM Plex Mono",monospace;font-size:14.5px;padding:12px 14px;border:1px solid var(--paper-line);border-radius:8px;background:var(--white);color:var(--ink);outline:none;min-height:46px;max-height:140px;transition:border-color .15s ease}.composer textarea:focus{border-color:var(--chalk-green)}.btn-send{padding:0 22px;background:var(--ink);color:var(--paper);border-radius:8px;font-size:13px;font-weight:600;transition:background .15s ease}.btn-send:hover{background:var(--chalk-green)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.scorecard{background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:32px 28px;animation:cardRise .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}@keyframes cardRise{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.scorecard:before{content:"";position:absolute;top:-60%;right:-20%;width:300px;height:300px;background:radial-gradient(circle,var(--highlight) 0,transparent 70%);opacity:.15;pointer-events:none}.scorecard-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--highlight);margin-bottom:6px}.scorecard-title{font-family:var(--font-fraunces),Fraunces,serif;font-size:26px;font-weight:700;margin-bottom:20px}.scorecard-meta{font-size:12.5px;color:#c9d0de;margin-bottom:24px}.scorecard-body{font-size:14px;line-height:1.75;white-space:pre-wrap;color:#e8ecf4}.scorecard-body strong{color:var(--highlight);font-weight:600}.btn-secondary{margin-top:26px;padding:11px 20px;background:transparent;border:1px solid #4a5a80;color:var(--paper);border-radius:6px;font-size:13px;transition:border-color .15s ease,background .15s ease}.btn-secondary:hover{border-color:var(--highlight);background:rgba(232,185,62,.08)}.error-banner{background:var(--error-soft);border:1px solid var(--error);color:var(--error);padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:16px}.hidden{display:none!important}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media (max-width:480px){.app{padding:0}.brand{font-size:28px}.setup-card{padding:24px 18px}}