:root{color-scheme:dark;--tone-f8fbff: #f8fbff;--tone-1d4ed8: #1d4ed8;--tone-67e8f9: #67e8f9;--paper: #020617;--tone-3b82f6: #3b82f6;--tone-7dd3fc: #7dd3fc;--tone-3730a3: #3730a3;--tone-7890ad: #7890ad;--tone-8ca4c1: #8ca4c1;--tone-fff: #fff;--tone-17243a: #17243a;--teal-dark: #2563eb;--teal: #22d3ee;--violet: #8b5cf6;--ink-soft: #9fb3ca;--gold: #60a5fa;--coral: #fb7185;--tone-bfdbfe: #bfdbfe;--tone-0b1830: #0b1830;--tone-234571: #234571;--tone-102447: #102447;--tone-7186a4: #7186a4;--tone-fbbf24: #fbbf24;--tone-081326: #081326;--tone-28558c: #28558c;--tone-829ab7: #829ab7;--ink: #e6f2ff;--tone-050b18: #050b18;--line: #1e3354;--tone-0e7490: #0e7490;--tone-29466d: #29466d;--tone-38bdf8: #38bdf8;--tone-bae6fd: #bae6fd;--tone-071b2c: #071b2c;--tone-fecdd3: #fecdd3;--tone-240b19: #240b19;--tone-881337: #881337;--tone-fb9aaa: #fb9aaa;--tone-122443: #122443;--tone-29518a: #29518a;--tone-93c5fd: #93c5fd;--tone-0d1f3d: #0d1f3d;--tone-a5f3fc: #a5f3fc;--tone-312e81: #312e81;--tone-244d7e: #244d7e;--tone-30456d: #30456d;--tone-c4b5fd: #c4b5fd;--tone-9fb2cf: #9fb2cf;--tone-162642: #162642;--tone-3b2870: #3b2870;--tone-9bb0ca: #9bb0ca;--tone-8ea6c4: #8ea6c4;--tone-101e36: #101e36;--tone-6f87a5: #6f87a5;--tone-64748b: #64748b;--tone-547092: #547092;--tone-0a172b: #0a172b;--tone-203858: #203858;--tone-c6d5e8: #c6d5e8;--tone-dbeafe: #dbeafe;--tone-193257: #193257;--tone-7690ad: #7690ad;--tone-07101f: #07101f;--tone-17355f: #17355f;--tone-0f2137: #0f2137;--tone-fda4af: #fda4af;--tone-173561: #173561;--tone-ddd6fe: #ddd6fe;--tone-26194b: #26194b;--tone-6d4cc7: #6d4cc7;--tone-4f46e5: #4f46e5;--tone-6546ad: #6546ad;--tone-241747: #241747;--tone-0b1d3a: #0b1d3a;--tone-4ade80: #4ade80;--tone-f87171: #f87171;--tone-19375e: #19375e;--tone-be123c: #be123c;--tone-150b18: #150b18;--tone-4c1630: #4c1630;--tone-0d0610: #0d0610;--tone-20160a: #20160a;--tone-854d0e: #854d0e;--coral-dark: #e11d48;--tone-0891b2: #0891b2;--tone-0b1628: #0b1628;--tone-1e3a63: #1e3a63;--tone-f0abfc: #f0abfc;--tone-e9d5ff: #e9d5ff;--tone-4c1d95: #4c1d95;--tone-6ee7b7: #6ee7b7;--tone-10b981: #10b981;--tone-a7f3d0: #a7f3d0;--tone-064e3b: #064e3b;--tone-7c3aed: #7c3aed;--tone-2e1065: #2e1065;--tone-ffffff: #ffffff;--tone-0b1d35: #0b1d35;--tone-e2e8f0: #e2e8f0;--paper-light: #0b1220;--panel-raised: #101a2d;--amber: #60a5fa;--veil-01040c-f5: #01040cf5;--veil-000000-61: #00000061;--veil-00030c-c7: #00030cc7;--veil-000000-94: #00000094;--veil-081326-eb: #081326eb;--veil-000000-52: #00000052;--veil-071022-c7: #071022c7;--veil-0a0d1f-eb: #0a0d1feb;--veil-040a18-e0: #040a18e0;--veil-000000-33: #00000033;--veil-000000-47: #00000047;--veil-000000-66: #00000066;--veil-000000-59: #00000059;--veil-020816-9e: #0208169e}[data-theme=light]{color-scheme:light;--tone-f8fbff: #0053c2;--tone-1d4ed8: #1d4ed8;--tone-67e8f9: #03a9bf;--paper: #f4f7fb;--tone-3b82f6: #044bbe;--tone-7dd3fc: #0083c2;--tone-3730a3: #3730a3;--tone-7890ad: #7890ad;--tone-8ca4c1: #52657f;--tone-fff: #fff;--tone-17243a: #c9cdd5;--teal-dark: #2563eb;--teal: #0e7490;--violet: #6d28d9;--ink-soft: #52657f;--gold: #1d4ed8;--coral: #d63355;--tone-bfdbfe: #0056c2;--tone-0b1830: #d3d8e1;--tone-234571: #b2becf;--tone-102447: #c2c9d6;--tone-7186a4: #7186a4;--tone-fbbf24: #c28c00;--tone-081326: #dadfe6;--tone-28558c: #e5e9ef;--tone-829ab7: #829ab7;--ink: #1a2740;--tone-050b18: #e4e7ed;--line: #c6d2e2;--tone-0e7490: #0e7490;--tone-29466d: #b7c1cf;--tone-38bdf8: #0285c0;--tone-bae6fd: #017fc1;--tone-071b2c: #d7dee5;--tone-fecdd3: #c20018;--tone-240b19: #e5dbe0;--tone-881337: #881337;--tone-fb9aaa: #bf0322;--tone-122443: #c4cbd6;--tone-29518a: #e3e8ee;--tone-93c5fd: #005bc2;--tone-0d1f3d: #cad0db;--tone-a5f3fc: #02acc0;--tone-312e81: #dedee9;--tone-244d7e: #c7d2de;--tone-30456d: #c3c9d5;--tone-c4b5fd: #2901c1;--tone-9fb2cf: #9fb2cf;--tone-162642: #c4c9d3;--tone-3b2870: #c0b9d2;--tone-9bb0ca: #9bb0ca;--tone-8ea6c4: #8ea6c4;--tone-101e36: #cdd3db;--tone-6f87a5: #6f87a5;--tone-64748b: #64748b;--tone-547092: #547092;--tone-0a172b: #d6dbe3;--tone-203858: #8799b1;--tone-c6d5e8: #365c8c;--tone-dbeafe: #0153c1;--tone-193257: #768cad;--tone-7690ad: #7690ad;--tone-07101f: #dfe3e9;--tone-17355f: #17355f;--tone-0f2137: #cdd4dc;--tone-fda4af: #c20018;--tone-173561: #173561;--tone-ddd6fe: #2200c2;--tone-26194b: #75669e;--tone-6d4cc7: #6d4cc7;--tone-4f46e5: #1d14ae;--tone-6546ad: #6546ad;--tone-241747: #6d5e96;--tone-0b1d3a: #ccd3dd;--tone-4ade80: #1ba74e;--tone-f87171: #bd0505;--tone-19375e: #8197b5;--tone-be123c: #be123c;--tone-150b18: #e7e3e9;--tone-4c1630: #9f607e;--tone-0d0610: #edeaef;--tone-20160a: #e7e3de;--tone-854d0e: #854d0e;--coral-dark: #be123c;--tone-0891b2: #0891b2;--tone-0b1628: #d8dce4;--tone-1e3a63: #93a4bd;--tone-f0abfc: #a402c0;--tone-e9d5ff: #5c00c2;--tone-4c1d95: #4c1d95;--tone-6ee7b7: #18aa70;--tone-10b981: #10b981;--tone-a7f3d0: #14ae67;--tone-064e3b: #c1dad3;--tone-7c3aed: #4b0cb6;--tone-2e1065: #2e1065;--tone-ffffff: #ffffff;--tone-0b1d35: #d0d6df;--tone-e2e8f0: #37414e;--paper-light: #eef2f7;--panel-raised: #e6ebf3;--amber: #1d4ed8;--veil-01040c-f5: #edeff4f5;--veil-000000-61: #00000061;--veil-00030c-c7: #edeff5c7;--veil-000000-94: #00000094;--veil-081326-eb: #dadfe6eb;--veil-000000-52: #00000052;--veil-071022-c7: #dde1e8c7;--veil-0a0d1f-eb: #dfe0e7eb;--veil-040a18-e0: #e5e7eee0;--veil-000000-33: #00000033;--veil-000000-47: #00000047;--veil-000000-66: #00000066;--veil-000000-59: #00000059;--veil-020816-9e: #e6e9f09e}:root{color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--paper)}body{min-width:320px;min-height:100vh;min-height:100svh;margin:0;background:radial-gradient(circle at 82% 5%,rgba(37,99,235,.18),transparent 30%),radial-gradient(circle at 15% 84%,rgba(139,92,246,.1),transparent 28%),linear-gradient(rgba(56,189,248,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.045) 1px,transparent 1px),var(--paper);background-size:auto,auto,32px 32px,32px 32px,auto}button,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(34,211,238,.42);outline-offset:2px}.app-shell{min-height:100vh;min-height:100svh}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(250px,1fr) minmax(220px,430px) minmax(270px,1fr);align-items:center;min-height:82px;padding:12px 26px;color:var(--tone-f8fbff);background:var(--veil-01040c-f5);border-bottom:1px solid var(--tone-1d4ed8);box-shadow:0 8px 30px var(--veil-000000-61),0 1px 14px #2563eb33;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-button{padding:0;color:inherit;text-align:left;background:transparent;border:0;cursor:pointer}.brand-button:hover .brand-name{color:var(--tone-67e8f9)}.brand-mark{display:grid;width:48px;height:48px;place-items:center;color:var(--tone-fff);background:linear-gradient(145deg,var(--tone-67e8f9),var(--tone-3b82f6));border:1px solid var(--tone-7dd3fc);border-radius:11px 3px;box-shadow:0 0 20px #22d3ee52,3px 3px 0 var(--tone-3730a3)}.brand-mark span{font-family:SFMono-Regular,Consolas,monospace;font-size:20px;font-weight:800}.brand-name,.brand-subtitle,.progress-copy,.rail-lesson-title p,.hint-list p,.grade-summary p,.try-this p{margin:0}.brand-name{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:21px;font-weight:800;letter-spacing:.045em}.brand-subtitle{margin-top:2px;color:var(--tone-7890ad);font-size:12px;letter-spacing:.04em}.header-progress{width:100%}.progress-copy{display:flex;justify-content:space-between;margin-bottom:7px;color:var(--tone-8ca4c1);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.progress-copy strong{color:var(--ink)}.progress-track{height:5px;overflow:hidden;background:var(--tone-17243a);border-radius:99px}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--teal-dark),var(--teal),var(--violet));box-shadow:0 0 10px #22d3ee80;border-radius:inherit;transition:width .3s ease}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px}.account-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:7px 12px;color:var(--tone-bfdbfe);background:var(--tone-0b1830);border:1px solid var(--tone-234571);border-radius:7px;cursor:pointer}.account-button:hover{color:var(--tone-fff);background:var(--tone-102447);border-color:var(--tone-3b82f6)}.settings-button{display:grid;width:44px;min-height:44px;place-items:center;padding:0;color:var(--tone-bfdbfe);background:var(--tone-0b1830);border:1px solid var(--tone-234571);border-radius:7px;cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.settings-button:hover{color:var(--tone-fff);background:var(--tone-102447);border-color:var(--tone-3b82f6)}.account-status-dot,.sync-dot{flex:0 0 auto;width:8px;height:8px;background:var(--tone-7186a4);border-radius:50%}.sync-syncing .account-status-dot,.sync-syncing .sync-dot{background:var(--gold);box-shadow:0 0 10px #60a5fab3;animation:sync-pulse 1.2s ease-in-out infinite}.sync-synced .account-status-dot,.sync-synced .sync-dot{background:var(--teal);box-shadow:0 0 10px #22d3eea6}.sync-offline .account-status-dot,.sync-offline .sync-dot{background:var(--tone-fbbf24)}.sync-error .account-status-dot,.sync-error .sync-dot{background:var(--coral)}@keyframes sync-pulse{50%{opacity:.4;transform:scale(.75)}}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:var(--veil-00030c-c7);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.auth-panel,.settings-panel{width:min(460px,100%);max-height:min(720px,calc(100svh - 32px));padding:24px;overflow-y:auto;color:var(--ink);background:var(--tone-081326);border:1px solid var(--tone-28558c);border-radius:15px 4px 15px 15px;box-shadow:0 24px 70px var(--veil-000000-94),0 0 32px #2563eb2e}.auth-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.auth-heading h2{margin:3px 0 0;font-size:24px}.auth-heading>button{min-width:44px;min-height:44px;padding:7px;color:var(--tone-829ab7);background:transparent;border:0;cursor:pointer}.auth-heading>button:hover{color:var(--tone-67e8f9)}.settings-panel{width:min(420px,100%)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px}.settings-row>span{display:grid;gap:4px}.settings-row strong{color:var(--ink);font-size:15px}.settings-row small{color:var(--ink-soft);font-size:13px;line-height:1.5}.auth-intro,.auth-footnote{color:var(--ink-soft);line-height:1.55}.auth-intro{margin:20px 0 16px;font-size:14px}.auth-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--tone-050b18);border:1px solid var(--line);border-radius:9px}.auth-mode button{min-height:44px;color:var(--tone-829ab7);font-weight:800;background:transparent;border:0;border-radius:6px;cursor:pointer}.auth-mode button.active{color:var(--tone-fff);background:linear-gradient(105deg,var(--tone-1d4ed8),var(--tone-0e7490))}.auth-form{display:grid;gap:15px;margin-top:18px}.auth-form label{display:grid;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.auth-form input{width:100%;min-height:46px;padding:10px 12px;color:var(--ink);font-size:16px;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:7px}.auth-form input:focus{border-color:var(--teal);outline:2px solid rgba(34,211,238,.16)}.auth-form>button,.account-actions button{min-height:44px;padding:10px 15px;color:var(--tone-fff);font-weight:900;background:linear-gradient(135deg,var(--tone-67e8f9),var(--tone-38bdf8));border:0;border-radius:7px;cursor:pointer}.auth-form>button:disabled,.account-actions button:disabled{cursor:wait;opacity:.55}.auth-message{margin:16px 0 0;padding:11px 13px;color:var(--tone-bae6fd);background:var(--tone-071b2c);border:1px solid var(--tone-0e7490);border-radius:7px;font-size:13px;line-height:1.45}.auth-link{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;padding:0;color:var(--tone-7dd3fc);font-size:13px;font-weight:700;background:transparent;border:0;cursor:pointer;text-align:left}.auth-link:hover:not(:disabled){color:var(--tone-bae6fd);text-decoration:underline}.auth-link:disabled{cursor:wait;opacity:.55}.auth-message.error{color:var(--tone-fecdd3);background:var(--tone-240b19);border-color:var(--tone-881337)}.auth-footnote{margin:18px 0 0;font-size:11px}.settings-footnote{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.account-summary{display:grid;gap:8px;margin-top:20px}.account-summary>span{color:var(--tone-7186a4);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.account-summary>strong{overflow-wrap:anywhere;font-size:17px}.sync-detail{display:flex;align-items:flex-start;gap:11px;margin-top:12px;padding:14px;background:var(--tone-050b18);border:1px solid var(--line);border-radius:8px}.sync-detail .sync-dot{margin-top:5px}.sync-detail strong{font-size:13px}.sync-detail p{margin:4px 0 0;color:var(--tone-fb9aaa);font-size:11px;line-height:1.4}.account-actions{display:flex;gap:10px;margin-top:12px}.account-actions button:last-child{color:var(--tone-bfdbfe);background:var(--tone-122443);border:1px solid var(--tone-29518a)}.app-body{display:grid;grid-template-columns:284px minmax(0,1fr);min-height:calc(100vh - 82px);min-height:calc(100svh - 82px)}.playground-dashboard{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:70px 0 90px}.dashboard-hero{position:relative;max-width:800px;padding:35px 0 44px 34px;border-left:2px solid var(--teal)}.dashboard-hero:before{position:absolute;top:0;left:-7px;width:12px;height:12px;content:"";background:var(--teal);box-shadow:0 0 18px #22d3eeb3;transform:rotate(45deg)}.dashboard-hero h1{max-width:720px;margin:0;font-size:clamp(42px,7vw,76px);line-height:.96;letter-spacing:-.055em}.dashboard-hero>p:not(.eyebrow){max-width:660px;margin:25px 0 0;color:var(--ink-soft);font-size:18px;line-height:1.65}.hero-cta{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:28px;padding:10px 16px;color:var(--tone-93c5fd);font-weight:600;background:var(--tone-081326);border:1px solid var(--line);border-radius:7px;cursor:pointer}.hero-cta:hover{color:var(--tone-67e8f9);background:var(--tone-0d1f3d);border-color:var(--teal-dark)}.path-library{margin-top:44px}.library-heading{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--line)}.library-heading h2{margin:3px 0 0;font-size:26px}.library-heading>span{color:var(--tone-7186a4);font-family:SFMono-Regular,Consolas,monospace;font-size:11px;text-transform:uppercase}.path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}.path-card,.future-path-note{background:var(--veil-081326-eb);border:1px solid var(--tone-234571);box-shadow:0 18px 45px var(--veil-000000-52)}.path-card{position:relative;min-height:430px;padding:28px;overflow:hidden;border-radius:18px 4px 18px 18px}.path-card:after{position:absolute;inset:auto -80px -120px auto;width:280px;height:280px;content:"";background:radial-gradient(circle,rgba(37,99,235,.28),transparent 68%);pointer-events:none}.path-card-topline{display:flex;justify-content:space-between;color:var(--tone-7186a4);font-family:SFMono-Regular,Consolas,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.path-card-topline strong{color:var(--teal)}.path-glyph{display:grid;width:68px;height:68px;margin:27px 0 21px;place-items:center;color:var(--tone-fff);font-family:SFMono-Regular,Consolas,monospace;font-size:24px;font-weight:900;background:linear-gradient(145deg,var(--tone-67e8f9),var(--tone-3b82f6));border:1px solid var(--tone-a5f3fc);border-radius:16px 4px;box-shadow:0 0 28px #22d3ee3d,5px 5px 0 var(--tone-312e81)}.path-card h3{margin:5px 0 8px;font-size:34px;letter-spacing:-.035em}.path-card>p:not(.eyebrow){max-width:650px;margin:0;color:var(--ink-soft);line-height:1.6}.path-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.path-stats span{padding:6px 9px;color:var(--tone-93c5fd);background:var(--tone-0b1830);border:1px solid var(--tone-244d7e);border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.path-card-progress{max-width:550px;margin-top:24px}.path-card-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--tone-829ab7);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.path-card>button{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;margin-top:25px;padding:11px 16px;color:var(--tone-fff);font-weight:900;background:linear-gradient(135deg,var(--tone-67e8f9),var(--tone-38bdf8));border:0;border-radius:7px;box-shadow:3px 3px 0 var(--tone-1d4ed8);cursor:pointer}.planned-library{margin-top:64px;padding-top:8px;border-top:1px solid rgba(59,130,246,.2)}.planned-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.planned-path-card{min-height:0;padding:22px;border-color:var(--tone-30456d);background:var(--veil-071022-c7)}.planned-path-card .path-card-topline strong{color:var(--tone-c4b5fd)}.planned-path-card .path-glyph{width:56px;height:56px;margin:20px 0 16px;font-size:18px}.planned-path-card h3{font-size:26px}.planned-course-plan{position:relative;z-index:1;margin-top:20px;color:var(--tone-9fb2cf);font-size:12px}.planned-course-plan>span{color:var(--tone-c4b5fd);font-family:SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.planned-course-plan ul{display:grid;gap:7px;margin:9px 0 0;padding-left:18px}.planned-course-plan li::marker{color:var(--tone-67e8f9)}.planned-path-card>button:disabled{color:var(--tone-9fb2cf);background:var(--tone-162642);border:1px solid var(--tone-30456d);box-shadow:none;cursor:not-allowed}.future-path-note{display:flex;flex-direction:column;justify-content:end;padding:27px;background:linear-gradient(rgba(139,92,246,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.055) 1px,transparent 1px),var(--veil-0a0d1f-eb);background-size:24px 24px;border-color:var(--tone-3b2870);border-radius:4px 18px 18px}.future-path-note h3{margin:4px 0 9px;font-size:25px}.future-path-note p{margin:0;color:var(--ink-soft);line-height:1.6}.back-to-paths{min-height:44px;padding:8px 10px;color:var(--tone-93c5fd);text-align:left;background:var(--tone-081326);border:1px solid var(--line);border-radius:7px;cursor:pointer}.back-to-paths:hover{color:var(--tone-67e8f9);border-color:var(--teal-dark)}.course-rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:82px;height:calc(100svh - 82px);padding:14px 14px 0;overflow:hidden;background:var(--veil-040a18-e0);border-right:1px solid var(--line);box-shadow:10px 0 32px var(--veil-000000-33);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.rail-collapse-toggle{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;padding:8px 10px;color:var(--tone-9bb0ca);font-size:12px;font-weight:800;background:transparent;border:1px solid var(--line);border-radius:7px;cursor:pointer}.rail-collapse-toggle:hover{color:var(--tone-67e8f9);border-color:var(--teal-dark)}.rail-top{display:contents}.rail-nav{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.course-rail.collapsed{align-items:center;gap:0;padding-inline:6px}.course-rail.collapsed .rail-collapse-toggle{flex:1 1 auto;align-self:auto;flex-direction:column;justify-content:center;gap:4px;width:100%;border:0;border-radius:0}.course-rail.collapsed .rail-collapse-toggle>span:first-child{font-size:22px}.course-rail.collapsed .rail-collapse-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.course-rail.collapsed .rail-top,.course-rail.collapsed .rail-nav,.course-rail.collapsed .reset-progress{display:none}.app-body.rail-collapsed{grid-template-columns:56px minmax(0,1fr)}.rail-heading{padding:0 8px}.eyebrow,.panel-kicker,.lesson-number{display:block;margin:0 0 6px;color:var(--tone-38bdf8);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.rail-module-heading,.lesson-card h1,.lesson-card h2,.panel-heading h2,.exercise-brief h3,.error-card h3,.grade-summary h3{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:-.025em}.rail-module-heading{margin:0;font-size:24px;line-height:1.05}.rail-module>h2{margin:0 8px 14px;padding-bottom:8px;color:var(--tone-8ea6c4);font-size:11px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line)}.rail-lesson{margin-bottom:4px}.rail-lesson-title{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:start;gap:7px;width:100%;min-height:44px;margin:0 0 4px;padding:7px 10px 9px;color:inherit;text-align:left;background:transparent;border:0;border-radius:7px;cursor:pointer}.rail-lesson-title:hover{background:var(--tone-101e36)}.rail-lesson-title>span:first-child{color:var(--tone-38bdf8);font-family:SFMono-Regular,Consolas,monospace;font-size:19px;font-weight:800;line-height:1.3}.rail-lesson-copy{min-width:0}.rail-lesson-copy p{color:var(--tone-6f87a5);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.rail-lesson-copy strong{display:block;margin-top:2px;font-size:14px;overflow-wrap:anywhere}.rail-lesson-title em{color:var(--teal);font-size:10px;font-style:normal;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.rail-lesson-title .lesson-partial{color:var(--tone-64748b);font-size:9px;font-weight:400}.rail-lesson-chevron{display:grid;place-items:center;width:18px;height:18px;margin-top:3px;color:var(--tone-6f87a5);font-size:12px;border:1px solid var(--line);border-radius:5px;transition:transform .15s ease}.rail-lesson-title:hover .rail-lesson-chevron{color:var(--tone-67e8f9);border-color:var(--teal-dark)}.rail-lesson-title.collapsed .rail-lesson-chevron{transform:rotate(-90deg)}.rail-exercises{display:grid;gap:3px;margin-left:20px;padding-left:14px;border-left:1px solid var(--line)}.rail-exercises.collapsed{display:none}.rail-exercises button{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:7px 9px;color:var(--ink-soft);text-align:left;background:transparent;border:0;border-radius:7px;cursor:pointer}.rail-exercises button:hover{color:var(--tone-f8fbff);background:var(--tone-101e36)}.rail-exercises button.active{color:var(--tone-fff);background:linear-gradient(100deg,var(--tone-1d4ed8),var(--teal-dark) 60%,var(--tone-0e7490));box-shadow:inset 3px 0 0 var(--tone-67e8f9),0 5px 18px #2563eb38}.exercise-dot{flex:0 0 auto;width:8px;height:8px;background:transparent;border:1.5px solid var(--tone-547092);border-radius:50%}.exercise-dot.complete{background:var(--teal);border-color:var(--tone-67e8f9);box-shadow:0 0 8px #22d3ee99}.reset-progress{flex:0 0 auto;margin:0;padding:13px 14px 15px;color:var(--tone-6f87a5);font-size:12px;text-align:left;background:var(--tone-081326);border:1px solid transparent;border-top-color:var(--line);border-radius:0;cursor:pointer}.reset-progress:hover{color:var(--coral);border-color:var(--line)}.learning-space{min-width:0;padding:28px;overflow-x:clip}.workspace-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);grid-template-areas:"teach work";align-items:start;gap:18px;width:min(1360px,100%);margin:0 auto}.workspace-teach,.workspace-work{display:flex;flex-direction:column;gap:18px;min-width:0}.workspace-teach{grid-area:teach}.workspace-work{grid-area:work;height:calc(100vh - 138px);height:calc(100svh - 138px)}.lesson-card,.editor-card,.hint-card,.output-card{min-width:0;overflow:clip;background:var(--paper-light);border:1px solid var(--line);box-shadow:0 14px 34px var(--veil-000000-47),inset 0 1px #7dd3fc09}.lesson-card{position:relative;padding:28px;border-radius:18px 18px 5px}.lesson-card:before{position:absolute;top:0;right:0;width:58px;height:8px;content:"";background:linear-gradient(90deg,var(--teal-dark),var(--teal));box-shadow:0 0 14px #22d3ee73}.lesson-card-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.lesson-card-topline>div{min-width:0}.lesson-number{flex:0 0 auto;margin:5px 0 6px;padding:4px 8px;color:var(--tone-9bb0ca);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;background:var(--tone-0a172b);border:1px solid var(--tone-203858);border-radius:999px}.lesson-card h1,.lesson-card h2{margin:0 0 18px;font-size:clamp(30px,3vw,44px);line-height:.98;letter-spacing:-.025em;overflow-wrap:anywhere}.lesson-orientation{display:flex;flex-wrap:wrap;gap:7px;margin:-7px 0 18px}.lesson-orientation span{padding:4px 8px;color:var(--tone-9bb0ca);font-size:11px;font-weight:700;background:var(--tone-0a172b);border:1px solid var(--tone-203858);border-radius:999px}.lesson-objective,.lesson-prerequisites{margin-bottom:18px;padding:12px 14px;background:#0e74901a;border:1px solid rgba(34,211,238,.18);border-radius:8px}.lesson-objective span,.lesson-prerequisites span{color:var(--tone-67e8f9);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.lesson-objective p,.lesson-prerequisites p{margin:5px 0 0;color:var(--tone-c6d5e8);font-size:13px;line-height:1.5}.lesson-collapse-row{display:flex;justify-content:flex-end;margin:-2px 0 14px}.lesson-collapse-toggle{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 12px;color:var(--tone-67e8f9);font-size:12px;font-weight:800;background:transparent;border:1px solid rgba(34,211,238,.28);border-radius:999px;cursor:pointer}.lesson-collapse-toggle:hover{color:var(--tone-fff);background:#0e74902e;border-color:#22d3ee8c}.lesson-details.collapsed{display:none}.lesson-prerequisites{margin-top:-10px;background:#2563eb12;border-color:#60a5fa26}.lesson-copy,.exercise-brief p{color:var(--ink-soft);font-size:15px;line-height:1.65}.key-idea{margin:20px 0;padding:15px 17px;background:linear-gradient(100deg,#2563eb2e,#22d3ee0e);border:1px solid rgba(56,189,248,.24);border-left:4px solid var(--teal);border-radius:0 8px 8px 0}.key-idea span,.try-this span,.console-output>span,.trail-complete span{color:var(--tone-67e8f9);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.key-idea p{margin:5px 0 0;font-weight:700;line-height:1.45}.lesson-example,.console-output pre,.error-card details pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.lesson-example{padding:16px;color:var(--tone-dbeafe);background:var(--paper);border:1px solid var(--tone-193257);border-radius:8px;font-size:13px;line-height:1.55}.exercise-brief{margin-top:24px;padding-top:22px;border-top:1px dashed var(--tone-29466d)}.exercise-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--tone-7690ad);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.exercise-heading strong{color:var(--teal)}.exercise-brief h3{margin:0 0 8px;font-size:24px}.exercise-brief .exercise-goal{color:var(--ink);font-weight:700}.editor-card{flex:0 0 auto;background:var(--paper);border-color:var(--tone-1d4ed8);border-radius:5px 18px 18px;box-shadow:0 16px 42px var(--veil-000000-66),0 0 26px #2563eb1a}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:19px 21px 15px;border-bottom:1px solid var(--line)}.panel-heading h2{margin:2px 0 0;font-size:21px}.panel-kicker{margin:0}.dark-heading{color:var(--ink);background:linear-gradient(90deg,var(--tone-07101f),var(--tone-0b1830));border-bottom-color:var(--tone-17355f)}.dark-heading .panel-kicker{color:var(--tone-38bdf8)}.dark-heading .text-button{color:var(--ink-soft)}.dark-heading .text-button:hover{color:var(--teal)}.text-button{display:inline-flex;align-items:center;min-height:44px;padding:8px;color:var(--tone-829ab7);font-size:12px;background:transparent;border:0;cursor:pointer}.text-button:hover{color:var(--teal)}.editor-wrap{overflow:hidden;background:var(--paper);border-bottom:1px solid var(--tone-17355f)}.editor-wrap .cm-editor{height:348px;background:var(--paper)}.editor-wrap .cm-editor.cm-focused{outline:none}.program-input{padding:14px 18px 16px;background:var(--tone-07101f);border-bottom:1px solid var(--tone-17355f)}.program-input>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.program-input label{color:var(--tone-67e8f9);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.program-input button{min-width:44px;min-height:44px;padding:5px 7px;color:var(--tone-829ab7);font-size:11px;background:transparent;border:0;cursor:pointer}.program-input button:hover{color:var(--tone-67e8f9)}.program-input p{margin:5px 0 9px;color:var(--ink-soft);font-size:11px}.program-input textarea{width:100%;min-height:76px;padding:10px 12px;resize:vertical;color:var(--tone-dbeafe);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:16px;line-height:1.5;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:7px}.program-input textarea:focus{border-color:var(--teal);outline:2px solid rgba(34,211,238,.14)}.quiz-panel{padding:18px 21px;background:var(--tone-07101f)}.quiz-scroll{height:240px;overflow-y:auto}@media(max-width:900px){.quiz-scroll{height:auto;max-height:60svh}}.quiz-options{display:flex;flex-direction:column;gap:10px;padding:0;border:0}.quiz-options legend{margin-bottom:12px;color:var(--tone-9bb0ca);font-size:14px;font-weight:600;line-height:1.5}.quiz-option{position:relative;display:flex;align-items:flex-start;gap:12px;padding:13px 14px;color:var(--tone-dbeafe);font-size:15px;line-height:1.5;background:var(--tone-0f2137);border:1px solid var(--tone-29466d);border-radius:10px;cursor:pointer}.quiz-option:hover{border-color:var(--tone-3b82f6)}.quiz-option.selected{color:var(--tone-fff);background:#2563eb2e;border-color:var(--tone-3b82f6);box-shadow:0 0 0 1px #3b82f659}.quiz-option input{position:absolute;min-width:44px;min-height:44px;margin:-6px 0 0 -6px;opacity:0}.quiz-option-marker{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:26px;height:26px;margin-top:2px;color:var(--tone-67e8f9);font-size:13px;font-weight:800;background:var(--tone-0a172b);border:1px solid var(--tone-29466d);border-radius:999px}.quiz-option.selected .quiz-option-marker{color:var(--tone-fff);background:var(--teal-dark);border-color:var(--tone-3b82f6)}.editor-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 15px 14px 20px;background:var(--tone-050b18)}.editor-actions p{margin:0;color:var(--ink-soft);font-size:11px}.editor-actions p.save-error{max-width:260px;color:var(--tone-fda4af);font-weight:700}.editor-actions>div{display:flex;gap:9px}.run-button,.check-button,.hint-button,.continue-button,.mobile-start-code{min-height:44px;padding:10px 20px;font-weight:800;border:0;border-radius:8px;cursor:pointer}.run-button{color:var(--tone-bfdbfe);background:var(--tone-122443);border:1px solid var(--tone-29518a)}.check-button{color:var(--tone-fff);background:linear-gradient(135deg,var(--tone-67e8f9),var(--tone-38bdf8));box-shadow:3px 3px 0 var(--tone-1d4ed8),0 0 15px #22d3ee38}.run-button:hover:not(:disabled){color:var(--tone-fff);background:var(--tone-173561)}.check-button:hover:not(:disabled){background:var(--tone-a5f3fc)}.run-button:disabled,.check-button:disabled{cursor:wait;opacity:.55}.hint-card{border-radius:18px 5px 18px 18px;border-color:var(--tone-3b2870)}.hint-count{display:grid;width:38px;height:38px;place-items:center;color:var(--tone-ddd6fe);background:var(--tone-26194b);border:1px solid var(--tone-6d4cc7);border-radius:50%;font-size:12px;font-weight:800}.hint-empty{margin:0;padding:21px;color:var(--ink-soft);font-size:14px;line-height:1.55}.hint-list{display:grid;gap:12px;margin:0;padding:18px 20px 0;list-style:none}.hint-list li{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:10px}.hint-list li>span{display:grid;width:27px;height:27px;place-items:center;color:var(--tone-fff);background:linear-gradient(145deg,var(--violet),var(--tone-4f46e5));box-shadow:0 0 10px #8b5cf652;border-radius:50%;font-size:12px;font-weight:800}.hint-list p{color:var(--ink-soft);font-size:14px;line-height:1.5}.hint-button{margin:18px 20px 20px;color:var(--tone-c4b5fd);background:transparent;border:1px solid var(--tone-6546ad)}.hint-button:hover{color:var(--tone-fff);background:var(--tone-241747)}.tutor-card{display:grid;gap:14px;min-width:0;padding:20px;background:var(--paper-light);border:1px solid var(--line);border-radius:18px 18px 18px 5px;box-shadow:0 14px 34px var(--veil-000000-47),inset 0 1px #7dd3fc09}.tutor-heading{display:flex;flex-direction:column;gap:6px}.tutor-heading h2{margin:2px 0 0;font-size:21px}.tutor-privacy{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.5}.tutor-notice{margin:0;padding:12px 14px;color:var(--ink-soft);font-size:14px;line-height:1.5;background:var(--tone-0a172b);border:1px solid var(--tone-203858);border-radius:8px}.tutor-notice button{display:inline-flex;align-items:center;min-height:44px;padding:0;color:var(--tone-67e8f9);font-weight:800;background:transparent;border:0;cursor:pointer}.tutor-intents{display:flex;flex-wrap:wrap;gap:8px}.tutor-intent{min-height:44px;padding:8px 14px;color:var(--tone-c4b5fd);font-weight:800;background:transparent;border:1px solid var(--tone-6546ad);border-radius:8px;cursor:pointer}.tutor-intent:hover{color:var(--tone-fff);background:var(--tone-241747)}.tutor-intent.active{color:var(--tone-fff);background:linear-gradient(135deg,var(--tone-67e8f9),var(--tone-38bdf8));border-color:var(--tone-38bdf8);box-shadow:0 0 12px #22d3ee38}.tutor-question{display:grid;gap:6px;color:var(--tone-9bb0ca);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tutor-question textarea{width:100%;min-height:76px;padding:10px 12px;resize:vertical;color:var(--tone-dbeafe);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:16px;line-height:1.5;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:7px}.tutor-question textarea:focus{border-color:var(--teal);outline:2px solid rgba(34,211,238,.14)}.tutor-ask{min-height:44px;padding:10px 20px;color:var(--tone-fff);font-weight:800;border:0;border-radius:8px;cursor:pointer;background:linear-gradient(135deg,var(--tone-67e8f9),var(--tone-38bdf8));box-shadow:3px 3px 0 var(--tone-1d4ed8),0 0 15px #22d3ee38}.tutor-ask:hover:not(:disabled){background:var(--tone-a5f3fc)}.tutor-ask:disabled{cursor:wait;opacity:.55}.tutor-status,.tutor-error{margin:0;font-size:13px;line-height:1.5}.tutor-status{color:var(--ink-soft)}.tutor-error{padding:12px 14px;color:var(--tone-fecdd3);background:var(--tone-240b19);border:1px solid var(--tone-881337);border-radius:8px}.tutor-answer{display:grid;gap:12px;padding:16px;background:var(--tone-071b2c);border:1px solid var(--tone-0e7490);border-radius:9px;box-shadow:inset 3px 0 0 var(--teal)}.tutor-answer>p{margin:0;color:var(--tone-bae6fd);font-size:14px;line-height:1.55}.tutor-answer-next span{display:block;margin-bottom:4px;color:var(--tone-67e8f9);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.tutor-provider{color:var(--ink-soft);font-size:11px}.tutor-history{margin-top:16px;padding:11px 13px;background:var(--tone-050b18);border:1px solid var(--line);border-radius:7px;display:grid;gap:8px}.tutor-history-title{color:var(--tone-829ab7);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.tutor-history-turn{margin:0;font-size:13px;line-height:1.5}.tutor-history-learner{color:var(--tone-bae6fd)}.tutor-history-tutor{color:var(--ink-soft)}.settings-row .settings-copy>span{color:var(--ink-soft);font-size:13px;line-height:1.5}.settings-row input[type=password]{min-width:180px;min-height:44px;padding:9px 11px;color:var(--ink);font-size:16px;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:7px}.settings-row input[type=password]:focus{border-color:var(--teal);outline:2px solid rgba(34,211,238,.16)}.settings-row input[type=checkbox]{width:22px;height:22px;padding:11px;box-sizing:content-box;accent-color:var(--teal);flex:none}.settings-row select,.settings-row input:not([type=password],[type=checkbox],[type=radio]),.settings-row textarea{min-height:44px;padding:9px 11px;color:var(--ink);font-size:16px;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:7px}.settings-row select:focus,.settings-row input:not([type=password],[type=checkbox],[type=radio]):focus,.settings-row textarea:focus{border-color:var(--teal);outline:2px solid rgba(34,211,238,.16)}.settings-row select:disabled,.settings-row input:disabled{opacity:.6}.settings-pill{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;color:var(--ink-soft);font-weight:800;font-size:13px;background:transparent;border:1px solid var(--line);border-radius:999px;cursor:pointer}.settings-pill:hover{color:var(--tone-7dd3fc);border-color:var(--teal-dark)}.settings-pill[aria-pressed=true]{color:var(--tone-7dd3fc);background:var(--tone-071b2c);border-color:var(--teal)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.tutor-test-row{display:flex;align-items:center;gap:12px;margin-top:16px}.tutor-test{min-height:44px;padding:8px 14px;white-space:nowrap;color:var(--ink);font-size:13px;background:var(--tone-0b1d3a);border:1px solid var(--tone-29466d);border-radius:7px;cursor:pointer}.tutor-test:hover:not(:disabled){border-color:var(--teal);color:var(--tone-67e8f9)}.tutor-test:disabled{opacity:.55;cursor:not-allowed}.tutor-test-hint{color:var(--ink-soft);font-size:12px}.tutor-test-result{margin:12px 0 0;font-size:13px;line-height:1.5}.tutor-test-result.success{color:var(--tone-4ade80)}.tutor-test-result.error{color:var(--tone-f87171)}.output-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border-radius:18px 18px 18px 5px;border-color:var(--tone-19375e)}.output-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.passed-stamp{padding:6px 9px;color:var(--tone-fff);background:var(--teal);box-shadow:0 0 10px #22d3ee59;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;transform:rotate(2deg)}.output-empty{display:grid;min-height:195px;place-content:center;color:var(--tone-6f87a5);text-align:center}.output-empty span{color:var(--tone-3b82f6);text-shadow:0 0 14px rgba(59,130,246,.45);font-family:SFMono-Regular,Consolas,monospace;font-size:30px}.output-empty p{margin:10px 0;font-size:13px}.console-output{margin:18px 20px 0}.console-output pre{min-height:40px;margin-top:7px;padding:15px;color:var(--tone-dbeafe);background:var(--paper);border:1px solid var(--tone-19375e);border-left:4px solid var(--teal);border-radius:7px;font-size:13px;line-height:1.55}.error-card{margin:16px 20px 20px;padding:18px;background:var(--tone-240b19);border:1px solid var(--tone-881337);border-radius:9px}.error-heading{display:flex;align-items:center;justify-content:space-between;color:var(--tone-fda4af);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.error-heading strong{padding:4px 6px;color:var(--tone-fff);background:var(--tone-be123c);border-radius:4px}.error-card h3{margin:10px 0 8px;font-size:20px}.error-card p{color:var(--tone-fecdd3);font-size:13px;line-height:1.55}.error-card .error-line{color:var(--coral);font-weight:800}.try-this{margin-top:14px;padding:11px 13px;background:var(--tone-150b18);border:1px solid var(--tone-4c1630);border-radius:6px}.try-this span{color:var(--coral)}.try-this p{margin-top:4px}.error-card details{margin-top:13px;color:var(--tone-fda4af);font-size:12px}.error-card summary{cursor:pointer;font-weight:700}.error-card details pre{max-height:180px;margin-top:10px;padding:10px;overflow:auto;color:var(--tone-fecdd3);background:var(--tone-0d0610);border:1px solid var(--tone-4c1630);border-radius:5px;font-size:11px}.grade-summary{margin:18px 20px;padding:18px;background:var(--tone-20160a);border:1px solid var(--tone-854d0e);border-radius:9px}.grade-summary.success{background:var(--tone-071b2c);border-color:var(--tone-0e7490);box-shadow:inset 3px 0 0 var(--teal)}.grade-summary h3{margin:0 0 4px;font-size:21px}.grade-summary>p{color:var(--ink-soft);font-size:13px}.grade-summary ul{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none}.grade-summary li{display:grid;grid-template-columns:50px 1fr;align-items:start;gap:10px}.grade-summary li>span{padding:4px;color:var(--tone-fff);text-align:center;border-radius:4px;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.check-pass{color:var(--tone-fff)!important;background:var(--teal)}.check-fail{background:var(--coral-dark)}.grade-summary li strong{font-size:13px}.grade-summary li p{margin-top:3px;color:var(--ink-soft);font-size:12px;line-height:1.4}.continue-button{display:block;margin:0 20px 20px auto;color:var(--tone-fff);background:linear-gradient(100deg,var(--teal-dark),var(--tone-0e7490));box-shadow:0 7px 18px #2563eb40}.continue-button:hover{background:linear-gradient(100deg,var(--tone-3b82f6),var(--tone-0891b2))}.trail-complete{display:grid;gap:5px;margin:18px 20px 20px;padding:16px;background:var(--tone-071b2c);border-left:4px solid var(--teal)}.mobile-course-picker,.mobile-tabs,.mobile-start-code,.mobile-exercise-brief,.rail-backdrop{display:none}@media(max-width:1180px){.app-body{grid-template-columns:240px minmax(0,1fr)}.workspace-grid{grid-template-columns:minmax(260px,.78fr) minmax(340px,1.22fr)}.learning-space{padding:20px}.lesson-card{padding:24px}}@media(max-width:900px){.topbar{grid-template-columns:1fr auto;min-height:68px;padding:9px max(14px,env(safe-area-inset-right)) 9px max(14px,env(safe-area-inset-left))}.brand-mark{width:40px;height:40px}.brand-name{font-size:18px}.brand-subtitle,.header-progress{display:none}.header-actions{gap:11px}.auth-panel,.settings-panel{padding:20px}.app-body{display:block;min-height:calc(100vh - 68px)}.playground-dashboard{width:min(100% - 24px,700px);padding:32px 0 60px}.dashboard-hero{padding:22px 0 30px 20px}.dashboard-hero h1{font-size:clamp(38px,12vw,58px)}.dashboard-hero>p:last-child{font-size:16px}.path-grid{grid-template-columns:1fr}.path-card{min-height:0;padding:22px}.future-path-note{min-height:210px}.course-rail{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(86vw,340px);height:100svh;margin:0;padding:14px;transform:translate(-105%);transition:transform .22s ease;border-right:1px solid var(--line);box-shadow:10px 0 32px var(--veil-000000-59)}.course-rail.mobile-open{transform:translate(0)}.course-rail.collapsed{align-items:stretch;gap:14px;padding:14px}.course-rail.collapsed .rail-top,.course-rail.collapsed .rail-nav,.course-rail.collapsed .reset-progress{display:block}.course-rail.collapsed .rail-top{display:contents}.rail-collapse-toggle{display:none}.rail-backdrop{position:fixed;inset:0;z-index:55;display:block;background:var(--veil-020816-9e)}.learning-space{padding:12px max(12px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.mobile-course-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:10px}.mobile-course-picker label{color:var(--ink-soft);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.mobile-rail-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 12px;color:var(--ink);background:var(--tone-0b1628);border:1px solid var(--line);border-radius:8px;cursor:pointer}.mobile-rail-toggle-title{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.mobile-rail-toggle-icon{flex:0 0 auto;color:var(--tone-67e8f9);font-size:18px;line-height:1}.mobile-tabs{position:sticky;top:68px;z-index:8;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:10px;padding:4px;background:var(--tone-081326);border:1px solid var(--tone-1e3a63);border-radius:10px;box-shadow:0 8px 20px var(--veil-000000-47)}.mobile-tabs button{min-height:44px;padding:7px 5px;color:var(--tone-829ab7);font-size:12px;font-weight:800;background:transparent;border:0;border-radius:7px}.mobile-tabs button.active{color:var(--tone-fff);background:linear-gradient(110deg,var(--tone-1d4ed8),var(--tone-0e7490));box-shadow:0 0 12px #22d3ee2e}.workspace-grid{display:block;width:100%}.workspace-teach,.workspace-work{display:block;height:auto;gap:0}.mobile-panel{display:none}.mobile-panel.mobile-active{display:block}.lesson-collapse-row,.lesson-collapse-toggle{display:none}.lesson-details.collapsed{display:block}.lesson-card,.editor-card,.hint-card,.output-card{min-height:calc(100svh - 160px);border-radius:12px}.lesson-card{padding:24px 20px}.lesson-card h1,.lesson-card h2{font-size:36px}.mobile-start-code{display:block;width:100%;margin-top:22px;color:var(--tone-fff);background:linear-gradient(100deg,var(--teal-dark),var(--tone-0e7490))}.mobile-exercise-brief{display:block;margin-bottom:12px;border:1px solid var(--tone-1e3a63);border-radius:10px;background:var(--tone-081326);overflow:hidden}.mobile-exercise-brief-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px 14px;color:var(--tone-9bb0ca);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:transparent;border:0;cursor:pointer}.mobile-exercise-brief-toggle strong{color:var(--teal)}.mobile-exercise-brief-body{padding:0 14px 14px}.mobile-exercise-brief-body h3{margin:0 0 6px;font-size:20px}.mobile-exercise-brief-body .exercise-goal{margin:0 0 8px;color:var(--tone-67e8f9);font-weight:700}.mobile-exercise-brief-body p{margin:0 0 8px;color:var(--ink-soft);font-size:14px;line-height:1.6}.mobile-exercise-brief-body p:last-child{margin-bottom:0}.mobile-exercise-brief.collapsed .mobile-exercise-brief-body{display:none}.editor-card{min-height:0}.editor-wrap .cm-editor{height:max(330px,calc(100svh - 385px));max-height:650px}.program-input{padding:13px 14px 15px}.editor-actions{position:sticky;bottom:0;z-index:4;padding-bottom:max(14px,env(safe-area-inset-bottom));background:var(--tone-050b18)}.editor-actions p{max-width:120px}.run-button,.check-button{min-width:72px;padding-inline:15px}.hint-card,.output-card{padding-bottom:10px}}@media(max-width:420px){.account-button{min-height:44px;padding:7px 10px}.account-button>span:last-child{font-size:13px}.modal-backdrop{align-items:end;padding:10px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.auth-panel,.settings-panel{max-height:calc(100svh - 20px);padding:18px;border-radius:14px 14px 4px}.mobile-course-picker{grid-template-columns:1fr;gap:5px}.mobile-tabs{top:68px}.panel-heading{padding:16px}.editor-actions{gap:8px;padding-left:12px;padding-right:12px}.editor-actions p{display:none}.editor-actions>div{width:100%}.run-button,.check-button{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.workspace-hidden{display:none}.web-path-card .path-glyph{background:linear-gradient(145deg,var(--tone-f0abfc),var(--violet));border-color:var(--tone-e9d5ff);box-shadow:0 0 28px #c084fc38,5px 5px 0 var(--tone-4c1d95)}.godot-path-card .path-glyph{background:linear-gradient(145deg,var(--tone-6ee7b7),var(--tone-10b981));border-color:var(--tone-a7f3d0);box-shadow:0 0 28px #34d39938,5px 5px 0 var(--tone-064e3b)}.godot-3d-path-card .path-glyph{background:linear-gradient(145deg,var(--tone-c4b5fd),var(--tone-7c3aed));border-color:var(--tone-ddd6fe);box-shadow:0 0 28px #a78bfa42,5px 5px 0 var(--tone-2e1065)}.web-preview-section{padding:16px 20px 20px}.web-preview-section>span{display:block;margin-bottom:10px;color:var(--tone-829ab7);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.web-preview-wrap{overflow:hidden;background:var(--tone-ffffff);border:1px solid var(--tone-234571);border-radius:8px}.web-preview-frame{display:block;width:100%;height:340px;background:var(--tone-ffffff);border:0}@media(max-width:700px){.web-preview-frame{height:260px}}@media(min-width:701px){.web-workspace .editor-wrap .cm-editor{height:240px}}@media(max-width:900px){.mobile-tabs{grid-template-columns:repeat(5,1fr)}}.companion-fallback{padding:12px 16px 14px;color:var(--tone-dbeafe);font-size:13px;line-height:1.5;background:var(--tone-0b1d35);border-bottom:1px solid var(--tone-17355f)}.companion-fallback-title{margin:0 0 6px;color:var(--tone-e2e8f0);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.companion-fallback p{margin:0 0 6px}.companion-fallback p:last-of-type{margin-bottom:0}.companion-fallback code{padding:1px 5px;color:var(--tone-7dd3fc);font-size:12px;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:4px}.ai-notes-wrap{padding:14px 16px 4px}.ai-notes-label{display:block;margin-bottom:6px;color:var(--tone-67e8f9);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ai-notes{width:100%;min-height:92px;padding:10px 12px;resize:vertical;color:var(--tone-dbeafe);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:16px;line-height:1.5;background:var(--paper);border:1px solid var(--tone-29466d);border-radius:8px}.ai-notes:focus{outline:2px solid var(--teal);border-color:var(--teal)}.ai-steps{display:grid;gap:10px;padding:10px 16px 18px;margin:0;list-style:none}.ai-step{border:1px solid var(--tone-234571);border-radius:8px;background:var(--tone-0b1d35)}.ai-step-label{display:flex;gap:10px;align-items:flex-start;padding:12px;cursor:pointer}.ai-step-label input[type=checkbox]{width:20px;height:20px;margin-top:1px;accent-color:var(--teal);flex:none}.ai-step-number{flex:none;width:24px;height:24px;display:grid;place-items:center;color:var(--tone-fff);font-size:12px;font-weight:800;background:var(--tone-67e8f9);border-radius:6px}.ai-step strong{color:var(--ink);font-size:14px}.ai-step p{margin:4px 0 0;color:var(--tone-829ab7);font-size:13px;line-height:1.45}.course-blocks{display:grid;gap:14px}.course-block-paragraph{margin:0;color:var(--ink);font-size:15px;line-height:1.65}.course-block-term,.course-block-terms-summary div{padding:10px 14px;border-left:3px solid var(--teal);background:var(--tone-0b1830);border-radius:0 10px 10px 0}.course-block-term dt,.course-block-terms-summary dt{font-weight:800;color:var(--tone-7dd3fc);font-size:13px;text-transform:uppercase;letter-spacing:.06em}.course-block-term dd,.course-block-terms-summary dd{margin:4px 0 0;color:var(--ink);font-size:14px;line-height:1.5}.course-block-callout{padding:12px 16px;border-radius:10px;border:1px solid var(--line)}.course-block-callout p{margin:4px 0 0;color:var(--ink);font-size:14px;line-height:1.55}.course-block-callout-tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.callout-tip{border-color:var(--tone-0e7490);background:var(--tone-071b2c)}.callout-tip .course-block-callout-tag{color:var(--tone-67e8f9)}.callout-warning{border-color:var(--tone-881337);background:var(--tone-240b19)}.callout-warning .course-block-callout-tag{color:var(--coral)}.callout-example{border-color:var(--tone-234571);background:var(--tone-102447)}.callout-example .course-block-callout-tag{color:var(--gold)}.course-block-code{position:relative;margin:0;padding:14px 16px;background:var(--tone-081326);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.course-block-code code{color:var(--tone-bae6fd);font-size:13px;line-height:1.5;white-space:pre}.course-block-code-language{display:block;margin-top:8px;color:var(--tone-64748b);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.course-block-table figcaption,.course-block-chart figcaption{margin-bottom:8px;font-weight:700;color:var(--ink);font-size:14px}.course-block-table-scroll{overflow-x:auto}.course-block-table table{width:100%;border-collapse:collapse;font-size:13px}.course-block-table th,.course-block-table td{padding:8px 10px;border:1px solid var(--line);text-align:left;color:var(--ink)}.course-block-table th{background:var(--tone-0b1830);color:var(--tone-7dd3fc);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.course-block-chart-body{display:grid;gap:8px;color:var(--ink);background:var(--tone-071b2c);border:1px solid var(--line);border-radius:10px;padding:12px}.course-block-chart-legend{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}.course-block-chart-legend li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.course-block-chart-legend span{width:10px;height:10px;border-radius:3px}.course-block-terms-summary{margin:8px 0 0;padding:12px 14px;border:1px dashed var(--line);border-radius:10px}.course-block-terms-summary>span{display:block;margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--tone-7186a4)}.course-worksheet-task{margin:0;padding:12px 14px;background:var(--tone-102447);border-radius:10px;color:var(--ink);font-size:14px;line-height:1.55}.course-worksheet-answer{margin-top:12px}.course-worksheet-model{padding:12px 14px;border-left:3px solid var(--gold);background:var(--tone-0b1830);border-radius:0 10px 10px 0}.course-worksheet-model span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.course-worksheet-model p{margin:6px 0;color:var(--ink);font-size:14px;line-height:1.5}.create-course{max-width:720px;margin:0 auto;padding:32px 20px 80px}.create-course-panel{display:grid;gap:16px}.create-course-back{justify-self:start}.create-course-description{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.6}.create-course-setup{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--tone-050b18)}.create-course-setup h2{margin:0;font-size:16px;color:var(--ink)}.create-course-presets{display:flex;flex-wrap:wrap;gap:8px}.create-course-presets button{min-height:44px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-size:13px;cursor:pointer}.create-course-presets button.active{border-color:var(--teal);color:var(--tone-7dd3fc);background:var(--tone-071b2c)}.create-course-field textarea{min-height:56px;resize:vertical}.create-course-size{display:flex;gap:8px}.create-course-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--teal);border-radius:12px;background:var(--tone-071b2c);color:var(--tone-7dd3fc);font-size:14px}.create-course-progress p{margin:0}.create-course-warnings{padding:12px 16px;border:1px solid var(--tone-881337);border-radius:12px;background:var(--tone-240b19)}.create-course-warnings p{margin:0;color:var(--coral);font-size:13px}.create-course-syllabus{display:grid;gap:16px}.create-course-module h2{margin:0 0 2px;font-size:17px;color:var(--ink)}.create-course-module>p{margin:0 0 8px;color:var(--ink-soft);font-size:13px}.create-course-module ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.create-course-module li button{display:flex;align-items:baseline;gap:8px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--tone-0b1830);color:var(--ink);cursor:pointer;text-align:left}.create-course-module li em{margin-left:auto;color:var(--tone-7186a4);font-size:12px;font-style:normal}.course-preview-key-idea{margin:0 0 12px;padding:8px 12px;border-left:3px solid var(--gold);color:var(--ink);font-size:13px}.create-course-lesson-preview{margin:8px 0 4px;padding:14px;border:1px solid var(--line);border-radius:10px}.create-course-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.custom-courses-empty{margin:0;padding:20px;border:1px dashed var(--line);border-radius:14px;color:var(--ink-soft);font-size:14px;line-height:1.6}.custom-course-card .path-glyph{color:var(--violet)}.create-course-cta{padding:10px 18px}.settings-divider{display:flex;align-items:center;gap:12px;margin-top:8px;color:var(--tone-7186a4);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.settings-divider:before,.settings-divider:after{content:"";height:1px;flex:1;background:var(--line)}
