@import"https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400;1,6..72,500&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";:root{--action-blue:#0066cc;--focus-blue:#0071e3;--sky-link:#2997ff;--ink:#1d1d1f;--ink-2:rgba(0,0,0,.8);--ink-3:rgba(0,0,0,.55);--muted:rgba(0,0,0,.48);--hairline:rgba(0,0,0,.08);--hairline-2:rgba(0,0,0,.04);--paper:#ffffff;--parchment:#f5f5f7;--parchment-2:#fafafc;--tile-1:#272729;--tile-2:#2a2a2c;--tile-3:#252527;--night:#000;--success:#34c759;--success-soft:#ebfaef;--amber:#ff9f0a;--amber-soft:#fff7e6;--rose:#ff375f;--r-1:8px;--r-2:11px;--r-3:14px;--r-4:18px;--r-5:24px;--r-pill:980px;--r-circle:50%;--gap:20px;--pad-card:24px;--row-h:60px;--side-w:288px;--type-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Heebo",system-ui,sans-serif;--type-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Heebo",system-ui,sans-serif;--type-mono:"SF Mono","JetBrains Mono",ui-monospace,Menlo,monospace;--shadow-product:rgba(0,0,0,.22) 3px 5px 30px 0;--shadow-soft:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06);--shadow-pop:0 4px 12px rgba(0,0,0,.08),0 24px 60px rgba(0,0,0,.12)}[data-density=compact]{--gap:14px;--pad-card:18px;--row-h:48px;--side-w:264px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:var(--parchment);color:var(--ink);font-family:var(--type-text);font-size:17px;line-height:1.47;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1,"calt" 1,"ss01" 1;overflow:hidden}button,input,textarea,select{font-family:inherit;color:inherit}button{background:transparent;border:0;cursor:pointer;font-size:inherit}a{color:var(--action-blue);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#0066cc2e;color:var(--ink)}*:focus-visible{outline:2px solid var(--focus-blue);outline-offset:2px;border-radius:4px}img{max-width:100%;display:block}.eyebrow{font-family:var(--type-text);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);direction:ltr;display:inline-block}.eyebrow.blue{color:var(--action-blue)}.kicker{font-family:var(--type-mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--muted);direction:ltr}.app{display:grid;grid-template-columns:var(--side-w) 1fr;height:100vh;background:var(--parchment);transition:grid-template-columns .28s cubic-bezier(.32,.72,0,1)}.app[data-sidebar=hidden]{grid-template-columns:0 1fr}.app[data-sidebar=collapsed]{grid-template-columns:76px 1fr}.side{background:var(--paper);border-inline-end:1px solid var(--hairline);display:flex;flex-direction:column;overflow:hidden;transition:all .28s cubic-bezier(.32,.72,0,1)}.app[data-sidebar=hidden] .side{border-inline-end-width:0;width:0}.side-brand{padding:0 22px;height:56px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--hairline);flex-shrink:0}.brand-mark{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:conic-gradient(from 220deg,#ff8fb1,#ffb56b,#ffe48a,#c0f08a,#80f5c9,#6ce3ff,#c8b5ff 84%,#ff8fb1);position:relative}.brand-mark:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:var(--paper)}.side[data-mode=tesla-dark] .brand-mark:after{background:#000}.brand-name{font-family:var(--type-sans);font-weight:700;font-size:18px;letter-spacing:-.025em;color:var(--ink);white-space:nowrap}.brand-name .accent{color:#80f5c9}.app[data-sidebar=collapsed] .brand-name{opacity:0;width:0;overflow:hidden}.side-section{padding:20px 12px 6px}.side-section-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0 12px 10px}.app[data-sidebar=collapsed] .side-section-label{opacity:0;height:0;padding:0;overflow:hidden}.side-nav{display:flex;flex-direction:column;gap:2px}.side-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;font:inherit;width:100%;text-align:start;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r-1);font-size:14px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background .16s,color .16s;white-space:nowrap;letter-spacing:-.01em}.side-link:hover{background:var(--parchment)}.side-link.active{background:#0066cc14;color:var(--action-blue)}.side-link-ic{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--ink-3)}.side-link.active .side-link-ic{color:var(--action-blue)}.side-link-text{flex:1;overflow:hidden;text-overflow:ellipsis}.app[data-sidebar=collapsed] .side-link-text,.app[data-sidebar=collapsed] .side-link-meta{display:none}.app[data-sidebar=collapsed] .side-link{justify-content:center;padding:9px}.side-link-meta{font-family:var(--type-mono);font-size:11px;color:var(--muted);background:var(--parchment);padding:2px 8px;border-radius:var(--r-pill)}.side-progress-block{padding:18px 16px 4px}.side-progress{display:flex;align-items:center;gap:14px;padding:10px 4px 14px}.side-progress-text .t{font-family:var(--type-sans);font-weight:600;font-size:20px;color:var(--ink);letter-spacing:-.02em;line-height:1;direction:ltr}.side-progress-text .s{font-size:12px;color:var(--muted);margin-top:5px}.side-next{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;width:calc(100% - 8px);text-align:start;margin:6px 4px 0;padding:14px 16px;border-radius:var(--r-3);background:var(--parchment);border:1px solid var(--hairline);cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);display:block}.side-next:hover{background:var(--paper);border-color:#00000029;transform:translateY(-1px);box-shadow:var(--shadow-soft)}.side-next-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action-blue);margin-bottom:6px}.side-next-title{display:block;font-family:var(--type-sans);font-size:14px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:-.01em}.side-next-meta{display:block;font-size:12px;color:var(--muted);margin-top:6px}.side-foot{margin-top:auto;padding:14px;border-top:1px solid var(--hairline);background:var(--paper)}.side-user{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--r-1);cursor:pointer;transition:background .16s}.side-user:hover{background:var(--parchment)}.avatar{width:34px;height:34px;border-radius:var(--r-circle);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--type-sans);font-weight:600;font-size:13px;color:var(--paper);background:linear-gradient(135deg,var(--action-blue),#7d4dff);letter-spacing:0}.side-user-text{flex:1;min-width:0;overflow:hidden}.side-user-name{font-size:13px;font-weight:600;color:var(--ink);line-height:1.2;letter-spacing:-.01em}.side-user-meta{font-size:11px;color:var(--muted);margin-top:2px}.app[data-sidebar=collapsed] .side-user-text,.app[data-sidebar=collapsed] .side-foot-cmd{display:none}.side-foot-cmd{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;width:100%;text-align:start;margin-top:8px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--r-1);background:var(--parchment);border:1px solid var(--hairline);cursor:pointer;font-size:12px;color:var(--muted);transition:all .16s}.side-foot-cmd:hover{background:var(--paper);color:var(--ink);border-color:#00000029}.side-foot-cmd kbd{font-family:var(--type-mono);font-size:11px;background:var(--paper);padding:2px 6px;border-radius:4px;border:1px solid var(--hairline);color:var(--ink-2)}.main{overflow-y:auto;overflow-x:hidden;background:var(--parchment);scroll-behavior:smooth}.main::-webkit-scrollbar{width:10px}.main::-webkit-scrollbar-track{background:transparent}.main::-webkit-scrollbar-thumb{background:#00000029;border-radius:5px;border:2px solid var(--parchment)}.main::-webkit-scrollbar-thumb:hover{background:#00000047}.topbar{position:sticky;top:0;z-index:30;background:#f5f5f7c7;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--hairline);height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.topbar-left{display:flex;align-items:center;gap:14px}.topbar-toggle{width:32px;height:32px;border-radius:var(--r-1);display:flex;align-items:center;justify-content:center;color:var(--ink-3);transition:all .16s;flex-shrink:0}.topbar-toggle:hover{background:var(--hairline);color:var(--ink)}.crumbs{display:flex;align-items:center;gap:8px}.crumb{font-size:13px;color:var(--ink-3);cursor:pointer;transition:color .16s;white-space:nowrap;letter-spacing:-.01em}.crumb:hover{color:var(--ink)}.crumb.current{color:var(--ink);font-weight:600}.crumb-sep{color:var(--muted);font-size:13px}.topbar-right{display:flex;align-items:center;gap:8px}.topbar-cmd{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:var(--r-pill);background:var(--paper);border:1px solid var(--hairline);font-size:12px;color:var(--muted);cursor:pointer;transition:all .16s}.topbar-cmd:hover{border-color:#00000029;color:var(--ink)}.topbar-cmd kbd{font-family:var(--type-mono);font-size:11px;background:var(--parchment);padding:1px 6px;border-radius:4px;color:var(--ink-2)}.topbar-icon-btn{width:32px;height:32px;border-radius:var(--r-circle);display:flex;align-items:center;justify-content:center;position:relative;color:var(--ink-3);background:var(--paper);border:1px solid var(--hairline);transition:all .16s}.topbar-icon-btn:hover{color:var(--ink);border-color:#00000029}.topbar-icon-btn .dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:var(--r-circle);background:var(--rose);border:1.5px solid var(--paper)}.page{padding:48px 56px 80px;max-width:1280px;margin:0 auto}.page-tight{padding:36px 56px 80px;max-width:1280px;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--type-text);font-size:15px;font-weight:400;letter-spacing:-.01em;line-height:1;padding:11px 22px;border-radius:var(--r-pill);cursor:pointer;border:1px solid transparent;transition:transform .12s cubic-bezier(.32,.72,0,1),background .16s,color .16s,border-color .16s}.btn:active{transform:scale(.96)}.btn-primary{background:var(--action-blue);color:var(--paper);border-color:var(--action-blue)}.btn-primary:hover{background:#0058b0;border-color:#0058b0}.btn-ghost{background:transparent;color:var(--action-blue);border-color:var(--action-blue)}.btn-ghost:hover{background:#0066cc14}.btn-secondary{background:var(--parchment-2);color:var(--ink-2);border:3px solid var(--hairline-2);padding:8px 18px;border-radius:var(--r-2);font-size:14px}.btn-secondary:hover{background:var(--paper);border-color:var(--hairline)}.btn-dark{background:var(--ink);color:var(--paper);padding:8px 16px;border-radius:var(--r-1);font-size:13px;font-weight:500}.btn-dark:hover{background:#000}.btn-lg{padding:13px 28px;font-size:17px}.btn-sm{padding:7px 14px;font-size:13px}.btn-chip{width:36px;height:36px;border-radius:var(--r-circle);background:#d2d2d7a3;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);transition:all .16s}.btn-chip:hover{background:#d2d2d7eb}.card{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-4);padding:var(--pad-card);transition:border-color .2s,transform .2s}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:#00000029;transform:translateY(-1px)}.ring{position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{stroke:var(--hairline);fill:none;stroke-width:3}.ring-fill{stroke:var(--action-blue);fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.32,.72,0,1)}.ring-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--type-sans);font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.02em}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#1c1c1e33;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cmdk{width:min(680px,92vw);background:linear-gradient(180deg,#ffffffc7,#ffffff9e);-webkit-backdrop-filter:saturate(180%) blur(40px);backdrop-filter:saturate(180%) blur(40px);border:.5px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000a,0 30px 80px -10px #1c1c1e4d,0 12px 32px -6px #1c1c1e2e;overflow:hidden;animation:cmdkIn .24s cubic-bezier(.32,.72,0,1)}@keyframes cmdkIn{0%{transform:translateY(-8px) scale(.98);opacity:0}to{transform:none;opacity:1}}.cmdk-input-row{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:.5px solid rgba(0,0,0,.08);background:linear-gradient(180deg,#fff6,#fff0)}.cmdk-input-row svg{flex-shrink:0;color:#1c1c1e;opacity:.55}.cmdk-input{flex:1;background:transparent;border:0;outline:0;font-family:var(--type-text);font-size:18px;font-weight:500;color:#1c1c1e;letter-spacing:-.022em}.cmdk-input::placeholder{color:#1c1c1e80;font-weight:400}.cmdk-esc{font-family:var(--type-mono);font-size:11.5px;font-weight:600;color:#1c1c1eb3;padding:4px 9px;border-radius:7px;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.1);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a}.cmdk-list{max-height:55vh;overflow-y:auto;padding:8px}.cmdk-group-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1c1c1e99;padding:14px 14px 8px}.cmdk-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:11px;cursor:pointer;transition:background .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1)}.cmdk-item:hover{background:linear-gradient(180deg,#ffffffd9,#faf7f2a6)}.cmdk-item.sel{background:linear-gradient(180deg,#c084fc,#a855f7);box-shadow:inset 0 1px #ffffff52,inset 0 -.5px #0000001a,0 6px 18px -4px #a855f773}.cmdk-item.sel .cmdk-item-title,.cmdk-item.sel .cmdk-item-sub,.cmdk-item.sel .cmdk-item-arrow{color:#fff}.cmdk-item.sel .cmdk-item-ic{background:#ffffff38;color:#fff;border-color:#ffffff52}.cmdk-item-ic{width:36px;height:36px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);color:#1c1c1e;border:.5px solid rgba(0,0,0,.08);box-shadow:inset 0 1px #fffffff2}.cmdk-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cmdk-item-title{font-size:15px;font-weight:600;color:#1c1c1e;line-height:1.25;letter-spacing:-.01em}.cmdk-item-sub{font-size:13px;color:#1c1c1e99;font-weight:500}.cmdk-item-arrow{font-size:12.5px;color:#1c1c1e80;font-weight:500}.cmdk-empty{padding:48px 20px;text-align:center;font-size:15px;color:#1c1c1e8c;font-weight:500}.cmdk-foot{border-top:.5px solid rgba(0,0,0,.08);padding:11px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#1c1c1ea6;font-weight:500;background:linear-gradient(180deg,#fff0,#fff6)}.cmdk-foot kbd{font-family:var(--type-mono);font-size:11.5px;font-weight:600;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);color:#1c1c1ebf;padding:3px 7px;border-radius:6px;border:.5px solid rgba(0,0,0,.1);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a;margin:0 3px}.hello-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;flex-wrap:wrap;padding-bottom:32px;border-bottom:1px solid var(--hairline)}.hello h1{font-family:var(--type-sans);font-weight:600;font-size:clamp(40px,5vw,56px);line-height:1.07;letter-spacing:-.022em;color:var(--ink)}.hello h1 em{font-style:normal;color:var(--action-blue);font-weight:600}.hello .sub{font-size:21px;line-height:1.19;color:var(--ink-3);margin-top:18px;max-width:560px;letter-spacing:-.011em;font-weight:400}.hello-stats{display:flex;gap:10px}.stat-pill{padding:14px 20px;border-radius:var(--r-3);background:var(--paper);border:1px solid var(--hairline);display:flex;flex-direction:column;gap:6px;min-width:108px}.stat-pill .v{font-family:var(--type-sans);font-weight:600;font-size:28px;color:var(--ink);line-height:1;letter-spacing:-.022em}.stat-pill .v.blue{color:var(--action-blue)}.stat-pill .l{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}.continue{position:relative;overflow:hidden;border-radius:var(--r-5);background:var(--paper);border:1px solid var(--hairline);margin-bottom:64px;display:grid;grid-template-columns:1.1fr 1fr;min-height:300px;transition:transform .24s cubic-bezier(.32,.72,0,1),box-shadow .24s}.continue:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.continue-art{position:relative;overflow:hidden;background:radial-gradient(60% 80% at 80% 20%,rgba(0,102,204,.18),transparent 60%),radial-gradient(50% 70% at 20% 80%,rgba(125,77,255,.18),transparent 60%),var(--parchment)}.continue-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.04) 1px,transparent 0);background-size:14px 14px}.continue-mark{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--type-sans);font-weight:700;font-size:clamp(72px,12vw,140px);color:transparent;-webkit-text-stroke:1.5px rgba(0,0,0,.12);letter-spacing:-.04em;line-height:.85;white-space:pre;text-align:center;pointer-events:none}.continue-tag{position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:var(--r-pill);background:#ffffffeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--hairline);font-size:12px;color:var(--ink);font-weight:600;letter-spacing:-.01em}.continue-tag .dot{width:7px;height:7px;border-radius:var(--r-circle);background:var(--success);box-shadow:0 0 0 3px #34c75933;animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.continue-body{padding:36px 36px 32px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.continue-eyebrow{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action-blue)}.continue-title{font-family:var(--type-sans);font-weight:600;font-size:clamp(28px,3vw,40px);line-height:1.1;color:var(--ink);letter-spacing:-.022em}.continue-meta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}.continue-meta .pill{padding:4px 11px;border-radius:var(--r-pill);background:var(--parchment);color:var(--ink-2);font-weight:500}.continue-prog-bar{height:4px;background:var(--hairline);border-radius:2px;overflow:hidden}.continue-prog-bar .fill{height:100%;background:var(--action-blue);border-radius:2px;transition:width .6s cubic-bezier(.32,.72,0,1)}.continue-cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.section-head h2{font-family:var(--type-sans);font-weight:600;font-size:34px;line-height:1.1;letter-spacing:-.022em;color:var(--ink)}.section-head h2 em{font-style:normal;color:var(--action-blue);font-weight:600}.section-head-meta{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:-.01em}.rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:64px}.rec{position:relative;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-4);padding:24px;display:flex;flex-direction:column;gap:14px;cursor:pointer;transition:all .24s cubic-bezier(.32,.72,0,1);min-height:200px}.rec:hover{border-color:#00000029;transform:translateY(-2px);box-shadow:var(--shadow-soft)}.rec-reason{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action-blue)}.rec-title{font-family:var(--type-sans);font-weight:600;font-size:22px;line-height:1.18;color:var(--ink);letter-spacing:-.022em}.rec-hint{font-size:14px;color:var(--ink-3);line-height:1.45;margin-top:auto;letter-spacing:-.01em}.rec-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:14px;border-top:1px solid var(--hairline)}.rec-course{font-size:12px;color:var(--muted)}.rec-go{font-size:13px;color:var(--action-blue);font-weight:500;transition:transform .2s}.rec:hover .rec-go{transform:translate(-3px)}.ann-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-bottom:64px}.ann-list{display:flex;flex-direction:column;gap:10px}.ann{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-3);padding:18px 22px;cursor:pointer;transition:all .2s}.ann:hover{border-color:#00000029;background:var(--paper)}.ann-tag{display:inline-flex;align-items:center;padding:4px 11px;border-radius:var(--r-pill);font-size:11px;font-weight:600;letter-spacing:-.005em;flex-shrink:0;border:1px solid transparent}.ann-tag.mint{color:var(--success);border-color:#34c75947;background:var(--success-soft)}.ann-tag.uv{color:#5e3bcf;border-color:#5e3bcf38;background:#f1edff}.ann-tag.yellow{color:#a07005;border-color:#ff9f0a47;background:var(--amber-soft)}.ann-tag.pink{color:#c93b8b;border-color:#ff375f38;background:#ffeef6}.ann-body{min-width:0}.ann-title{font-size:15px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:-.011em}.ann-text{font-size:13px;color:var(--ink-3);line-height:1.45;margin-top:4px}.ann-date{font-size:12px;color:var(--muted);white-space:nowrap}.schedule{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-4);padding:22px 24px}.schedule h3{font-family:var(--type-sans);font-weight:600;font-size:20px;color:var(--ink);letter-spacing:-.022em;margin-bottom:14px}.schedule-item{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--hairline)}.schedule-item:first-of-type{border-top:0;padding-top:6px}.schedule-day{font-family:var(--type-sans);font-weight:600;font-size:24px;line-height:.9;color:var(--ink);letter-spacing:-.022em;display:flex;flex-direction:column;align-items:center;width:42px}.schedule-day .mo{font-family:var(--type-mono);font-size:10px;color:var(--action-blue);letter-spacing:.04em;margin-top:3px}.schedule-text .t{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.011em}.schedule-text .s{font-size:12px;color:var(--muted);margin-top:3px}.course-hero{position:relative;overflow:hidden;border-radius:var(--r-5);border:1px solid var(--hairline);background:var(--paper);padding:48px 52px 44px;margin-bottom:48px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}.course-hero-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;opacity:.6}.course-hero-inner{position:relative;z-index:1}.course-hero-tag{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:var(--r-pill);background:var(--parchment);border:1px solid var(--hairline);font-size:12px;color:var(--ink-2);font-weight:600;letter-spacing:-.005em;margin-bottom:18px}.course-hero h1{font-family:var(--type-sans);font-weight:600;font-size:clamp(40px,5vw,56px);line-height:1.07;color:var(--ink);letter-spacing:-.022em}.course-hero p{font-size:21px;color:var(--ink-3);line-height:1.33;margin-top:18px;max-width:620px;letter-spacing:-.011em}.course-hero-stats{display:grid;grid-template-columns:auto auto;gap:24px;align-items:start;position:relative;z-index:1}.course-hero-stat{display:flex;flex-direction:column;gap:6px}.course-hero-stat .v{font-family:var(--type-sans);font-weight:600;font-size:36px;line-height:1;color:var(--ink);letter-spacing:-.022em}.course-hero-stat .v.blue{color:var(--action-blue)}.course-hero-stat .l{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}.course-prog-row{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--hairline)}.course-prog-row .label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}.course-prog-row .next{font-family:var(--type-sans);font-size:17px;font-weight:600;color:var(--ink);margin-top:6px;letter-spacing:-.011em}.lessons-block{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-5);overflow:hidden}.lessons-block-head{display:flex;justify-content:space-between;align-items:baseline;padding:24px 32px 18px;border-bottom:1px solid var(--hairline)}.lessons-block-head h2{font-family:var(--type-sans);font-weight:600;font-size:24px;color:var(--ink);letter-spacing:-.022em;line-height:1}.lessons-block-meta{font-size:13px;color:var(--muted)}.lessons-list{padding:8px 16px}.lessons-list .lesson-row{display:grid;grid-template-columns:48px 32px 1fr auto auto;gap:16px;align-items:center;padding:14px 16px;border-radius:var(--r-3);cursor:pointer;transition:all .16s;border:1px solid transparent}.lessons-list .lesson-row:hover{background:var(--parchment);border-color:var(--hairline)}.lessons-list .lesson-row:hover .lesson-title{color:var(--action-blue)}.lessons-list .lesson-row.is-current{background:#0066cc0f;border-color:#0066cc2e}.lessons-list .lesson-row.is-current .lesson-title{color:var(--ink)}.lessons-list .lesson-row.locked{cursor:not-allowed;opacity:.55}.lessons-list .lesson-row.locked:hover{background:transparent;border-color:transparent}.lessons-list .lesson-row.locked:hover .lesson-title{color:var(--ink-3)}.lesson-num{font-family:var(--type-sans);font-weight:600;font-size:22px;color:var(--ink-3);letter-spacing:-.022em;text-align:center;direction:ltr}.lesson-row.locked .lesson-num,.lesson-row.is-current .lesson-num{color:var(--action-blue)}.lesson-status{width:28px;height:28px;border-radius:var(--r-circle);display:flex;align-items:center;justify-content:center;border:1.5px solid var(--hairline);color:var(--muted)}.lesson-status.done{background:var(--success);border-color:var(--success);color:var(--paper)}.lesson-status.current{background:var(--action-blue);border-color:var(--action-blue);color:var(--paper);position:relative}.lesson-status.current:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--r-circle);border:2px solid var(--action-blue);opacity:.25;animation:ripple 1.8s ease-out infinite}@keyframes ripple{0%{transform:scale(.85);opacity:.45}to{transform:scale(1.55);opacity:0}}.lesson-status.next{border-color:var(--action-blue);color:var(--action-blue)}.lesson-row-text{min-width:0}.lesson-title{font-size:15px;font-weight:500;color:var(--ink);line-height:1.3;letter-spacing:-.011em;transition:color .16s}.lesson-row.locked .lesson-title{color:var(--ink-3)}.lesson-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.lesson-type-pill{padding:3px 9px;border-radius:var(--r-pill);background:var(--parchment);border:1px solid var(--hairline);font-size:11px;letter-spacing:-.005em;color:var(--ink-2);font-weight:600}.lesson-type-pill.workshop{color:#a07005;background:var(--amber-soft);border-color:#ff9f0a38}.lesson-type-pill.project{color:#c93b8b;background:#ffeef6;border-color:#ff375f38}.lesson-go{width:28px;height:28px;border-radius:var(--r-circle);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .16s}.lesson-row:hover .lesson-go{color:var(--action-blue);transform:translate(-2px)}.lesson-prog-mini{height:3px;background:var(--hairline);border-radius:1.5px;margin-top:6px;overflow:hidden}.lesson-prog-mini .f{height:100%;background:var(--action-blue);border-radius:1.5px}.lesson-page{display:grid;gap:32px;padding:36px 56px 80px;max-width:1480px;margin:0 auto}.lesson-page.tutor-side{grid-template-columns:1fr 380px}.lesson-page.tutor-docked,.lesson-page.tutor-closed{grid-template-columns:1fr;max-width:1100px}.lesson-main{min-width:0}.video-shell{position:relative;border-radius:18px;overflow:hidden;background:#0a0a0c;border:.5px solid rgba(0,0,0,.1);aspect-ratio:16/9;margin-bottom:32px;box-shadow:inset 0 1px #ffffff0f,inset 0 -.5px #0003,0 1px 2px #00000014,0 14px 40px -10px #1c1c1c38,0 4px 14px -4px #a855f726}.video-poster{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 80% at 80% 20%,rgba(59,130,246,.5),transparent 60%),radial-gradient(50% 70% at 20% 80%,rgba(168,85,247,.55),transparent 60%),radial-gradient(40% 60% at 60% 90%,rgba(236,72,153,.4),transparent 60%),linear-gradient(135deg,#1a1735,#0a0a0c 60%)}.video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px 24px;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.55) 100%)}.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;background:linear-gradient(180deg,#fffffff5,#fbf6ece0);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(255,255,255,.32);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000f,0 1px 2px #0000001a,0 14px 40px -8px #a855f773,0 24px 56px -12px #0006;transition:transform .22s cubic-bezier(.32,.72,0,1),box-shadow .22s cubic-bezier(.32,.72,0,1)}.video-play:hover{transform:translate(-50%,-50%) scale(1.06);box-shadow:inset 0 1px #fff,inset 0 -.5px #0000000f,0 2px 4px #0000001a,0 22px 56px -8px #a855f799,0 30px 70px -12px #00000073}.video-play:active{transform:translate(-50%,-50%) scale(.96)}.video-play svg{color:#1c1c1e;margin-right:4px}.video-controls{display:flex;align-items:center;gap:14px;color:#fff;font-family:var(--type-mono);font-size:12px;font-weight:500;letter-spacing:.02em;direction:ltr;text-shadow:0 1px 2px rgba(0,0,0,.4)}.video-bar{flex:1;height:5px;background:#ffffff29;border-radius:99px;position:relative;cursor:pointer;box-shadow:inset 0 .5px 1px #0003,inset 0 -.5px #ffffff1a;transition:height .18s cubic-bezier(.32,.72,0,1)}.video-bar:hover{height:6px}.video-bar .f{height:100%;background:linear-gradient(90deg,#c084fc,#ec4899);border-radius:99px;position:relative;box-shadow:0 0 12px #a855f78c,0 0 4px #ec489966}.video-bar .f:after{content:"";position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:linear-gradient(180deg,#fff,#fbf6ec);border:.5px solid rgba(255,255,255,.4);box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000a,0 1px 2px #0000004d,0 4px 12px -2px #a855f780,0 8px 18px -4px #0006;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.video-bar:hover .f:after{transform:translateY(-50%) scale(1.15)}.video-chapter-tag{position:absolute;top:18px;right:18px;padding:7px 14px;border-radius:999px;background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(0,0,0,.1);font-size:12px;color:#1c1c1e;font-weight:600;letter-spacing:-.005em;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #00000014,0 8px 24px -8px #0000004d}.video-chapter-tag:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:linear-gradient(180deg,#ec4899,#a855f7);box-shadow:0 0 0 1px #fff9,0 0 4px #a855f766;margin-left:6px;vertical-align:middle}.lesson-header{margin-bottom:32px}.lesson-eyebrow{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action-blue);margin-bottom:14px}.lesson-h1{font-family:var(--type-sans);font-weight:600;font-size:clamp(34px,4vw,48px);line-height:1.08;color:var(--ink);letter-spacing:-.022em}.lesson-h1 em{font-style:normal;color:var(--action-blue);font-weight:600}.lesson-summary{font-size:21px;line-height:1.33;color:var(--ink-3);margin-top:18px;max-width:680px;letter-spacing:-.011em}.lesson-tabs{display:flex;gap:2px;margin-top:36px;border-bottom:1px solid var(--hairline);overflow-x:auto}.tab{padding:12px 18px;font-size:14px;font-weight:500;color:var(--ink-3);cursor:pointer;position:relative;transition:color .16s;letter-spacing:-.011em;white-space:nowrap}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);font-weight:600}.tab.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--action-blue);border-radius:1px}.tab-count{font-size:11px;color:var(--muted);margin-right:6px;background:var(--parchment);padding:2px 7px;border-radius:var(--r-pill)}.tab.active .tab-count{color:var(--action-blue);background:#0066cc1a}.tab-panel{padding:32px 0;animation:fadeUp .24s ease-out}@keyframes fadeUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.objectives{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}.obj{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:var(--r-3);background:var(--parchment);border:1px solid var(--hairline)}.obj-num{font-family:var(--type-sans);font-weight:600;font-size:13px;color:var(--action-blue);letter-spacing:-.022em;flex-shrink:0;width:24px;direction:ltr}.obj-text{font-size:16px;line-height:1.45;color:var(--ink);letter-spacing:-.011em}.chapter{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:14px 18px;border-radius:var(--r-2);cursor:pointer;transition:background .16s;border:1px solid transparent}.chapter:hover{background:var(--parchment)}.chapter.active{background:#0066cc0f;border-color:#0066cc2e}.chapter-time{font-family:var(--type-mono);font-size:12px;font-weight:500;color:var(--action-blue);min-width:54px;direction:ltr}.chapter-title{font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.011em}.chapter-go{color:var(--muted)}.chapter.active .chapter-go{color:var(--action-blue)}.transcript-item{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--hairline);cursor:pointer;transition:opacity .16s}.transcript-item:last-child{border-bottom:0}.transcript-item:hover{opacity:.8}.transcript-time{font-family:var(--type-mono);font-size:12px;color:var(--action-blue);direction:ltr;flex-shrink:0;padding-top:3px;font-weight:500}.transcript-text{font-size:17px;line-height:1.6;color:var(--ink);letter-spacing:-.011em}.code-block{margin-bottom:20px;border:1px solid var(--hairline);border-radius:var(--r-3);overflow:hidden;background:var(--ink)}.code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#2a2a2c;border-bottom:1px solid rgba(255,255,255,.1)}.code-title{font-family:var(--type-mono);font-size:12px;color:var(--paper);font-weight:500}.code-title .lang{color:var(--sky-link);margin-left:8px;direction:ltr}.code-copy{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r-pill);background:#ffffff1a;font-family:var(--type-mono);font-size:11px;color:var(--paper);cursor:pointer;transition:all .16s}.code-copy:hover{background:#ffffff2e}.code-copy.copied{background:var(--success);color:var(--paper)}.code-body{padding:18px 20px;font-family:var(--type-mono);font-size:13px;line-height:1.6;color:#f5f5f7;direction:ltr;text-align:left;white-space:pre;overflow-x:auto}.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.res{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-3);background:var(--parchment);border:1px solid var(--hairline);cursor:pointer;transition:all .16s}.res:hover{background:var(--paper);border-color:#00000029}.res-ic{width:40px;height:40px;border-radius:var(--r-1);display:flex;align-items:center;justify-content:center;background:var(--paper);color:var(--action-blue);font-family:var(--type-mono);font-size:11px;font-weight:600;border:1px solid var(--hairline)}.res-text{flex:1;min-width:0}.res-title{font-size:14px;font-weight:600;color:var(--ink);line-height:1.2;letter-spacing:-.011em}.res-sub{font-size:12px;color:var(--muted);margin-top:3px}.lesson-nav-card{padding:20px 24px;border-radius:var(--r-4);background:var(--paper);border:1px solid var(--hairline);cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;gap:6px}.lesson-nav-card:hover{border-color:#00000029;transform:translateY(-1px);box-shadow:var(--shadow-soft)}.lesson-nav-card.next{text-align:left}.lesson-nav-eyebrow{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action-blue)}.lesson-nav-title{font-family:var(--type-sans);font-weight:600;font-size:17px;color:var(--ink);letter-spacing:-.022em}.lesson-aside,.lesson-aside *,.tutor-launch,.tutor-launch *{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,IBM Plex Sans,Inter,Heebo,system-ui,sans-serif!important;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lesson-aside{background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);border:.5px solid rgba(0,0,0,.1);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 14px 40px -10px #1c1c1c2e,0 4px 14px -4px #1c1c1c14}.lesson-page.tutor-side .lesson-aside{position:sticky;top:72px;align-self:start;height:calc(100vh - 92px)}.lesson-page.tutor-docked .lesson-aside{height:560px;margin-top:24px}.tutor-head{padding:14px 16px;border-bottom:.5px solid rgba(0,0,0,.08);display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,#ffffff8c,#fffdf852);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:inset 0 1px #fffffff2}.tutor-avatar{width:34px;height:34px;border-radius:9px;flex-shrink:0;position:relative;background:conic-gradient(from 200deg,#a855f7,#ec4899,#f97316,#eab308 180deg,#22c55e 220deg,#06b6d4 280deg,#3b82f6,#a855f7 360deg);padding:3.5px;box-sizing:border-box;box-shadow:inset 0 1px #ffffff52,0 1px 2px #0000001a,0 6px 18px -4px #a855f766;animation:tutorAvatarSpin 18s linear infinite}.tutor-avatar:before{content:"";position:absolute;top:3.5px;right:3.5px;bottom:3.5px;left:3.5px;border-radius:6px;background:linear-gradient(180deg,#fff,#fbf6ec);box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000a}.tutor-avatar:after{content:"";position:absolute;top:3.5px;right:3.5px;bottom:3.5px;left:3.5px;border-radius:6px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1c1e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 4l1.7 4.6L18 10l-4.3 1.4L12 16l-1.7-4.6L6 10l4.3-1.4z'/><circle cx='18' cy='6' r='1' fill='%231c1c1e'/><circle cx='6' cy='18' r='1' fill='%231c1c1e'/></svg>") center/16px no-repeat}@keyframes tutorAvatarSpin{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.tutor-id{flex:1;min-width:0;line-height:1.15}.tutor-name{font-size:15px;font-weight:600;color:#1c1c1e;letter-spacing:-.24px}.tutor-status{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#1c1c1e8c;margin-top:2px;letter-spacing:-.06px}.tutor-status .dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #22c55e33,0 0 6px #22c55e66;animation:tutorPulse 2.4s ease-in-out infinite}@keyframes tutorPulse{0%,to{box-shadow:0 0 0 2px #22c55e33,0 0 6px #22c55e66}50%{box-shadow:0 0 0 3px #22c55e1a,0 0 10px #22c55e8c}}.tutor-dock{display:inline-flex;align-items:center;gap:3px;background:linear-gradient(180deg,#ffffff8c,#faf7f266);border:.5px solid rgba(0,0,0,.08);border-radius:10px;padding:3px;box-shadow:inset 0 1px #ffffffd9}.tutor-dock-btn{width:28px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;color:#3c3c43;background:transparent;border:0;transition:background .18s cubic-bezier(.32,.72,0,1),color .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1);cursor:pointer}.tutor-dock-btn:hover{color:#1c1c1e;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6)}.tutor-dock-btn.active{background:linear-gradient(180deg,#fff,#fbf6ec);color:#1c1c1e;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000a,0 1px 2px #00000014,0 0 0 .5px #0000001a}.tutor-dock-btn svg{display:block}.tutor-close{width:28px;height:28px;border-radius:50%;border:.5px solid rgba(0,0,0,.08);display:inline-flex;align-items:center;justify-content:center;color:#8e8e93;background:linear-gradient(180deg,#ffffffa6,#faf7f273);transition:background .18s ease,color .18s ease,transform .12s ease;cursor:pointer;margin-right:2px;box-shadow:inset 0 1px #ffffffd9}.tutor-close:hover{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.tutor-close:active{transform:scale(.92)}.tutor-body{flex:1;overflow-y:auto;padding:16px 14px 10px;display:flex;flex-direction:column;gap:2px;background:transparent}.tutor-stamp{align-self:center;margin:6px 0 8px;font-size:11px;color:#1c1c1e73;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;font-weight:600}.tutor-stamp strong{color:#1c1c1ea6;font-weight:700}.tutor-msg{font-size:15px;line-height:1.42;letter-spacing:-.18px;padding:9px 14px;max-width:82%;word-wrap:break-word;position:relative;border-radius:18px;margin-top:2px;animation:tutorMsgIn .32s cubic-bezier(.34,1.56,.64,1) both}@keyframes tutorMsgIn{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.tutor-msg+.tutor-msg.same{margin-top:2px}.tutor-msg+.tutor-msg:not(.same){margin-top:8px}.tutor-msg.tutor{background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);color:#1c1c1e;align-self:flex-start;border:.5px solid rgba(0,0,0,.08);border-top-right-radius:6px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 8px 24px -8px #0000001a}.tutor-msg.user{background:linear-gradient(180deg,#c084fc,#a855f7);color:#fff;align-self:flex-end;border:.5px solid rgba(255,255,255,.18);border-top-left-radius:6px;box-shadow:inset 0 1px #ffffff52,inset 0 -.5px #0000001a,0 1px 2px #0000001a,0 8px 22px -4px #a855f773,0 14px 36px -10px #a855f759}.tutor-msg .ts{display:inline-flex;align-items:center;font-size:13px;font-weight:600;letter-spacing:-.08px;color:#a855f7;background:#a855f71a;padding:1px 7px;border-radius:7px;cursor:pointer;direction:ltr;margin:0 2px;border:.5px solid rgba(168,85,247,.2);transition:all .18s cubic-bezier(.32,.72,0,1)}.tutor-msg.user .ts{color:#fff;background:#fff3;border-color:#ffffff4d}.tutor-msg .ts:hover{background:#a855f72e;transform:translateY(-.5px)}.tutor-msg.user .ts:hover{background:#ffffff4d}.tutor-msg em{font-style:normal;font-weight:700}.tutor-msg strong{font-weight:700}.tutor-typing{align-self:flex-start;background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);border:.5px solid rgba(0,0,0,.08);padding:11px 15px;border-radius:18px 6px 18px 18px;display:inline-flex;align-items:center;gap:5px;margin-top:6px;box-shadow:inset 0 1px #fffffff2,0 1px 2px #0000000a,0 6px 18px -6px #0000001a}.tutor-typing span{width:7px;height:7px;border-radius:50%;background:linear-gradient(180deg,#ec4899,#a855f7);animation:typingBounce 1.2s infinite ease-in-out;box-shadow:0 0 0 1px #fff9,0 1px 4px #a855f766}.tutor-typing span:nth-child(2){animation-delay:.15s}.tutor-typing span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-5px);opacity:1}}.tutor-suggestions{padding:10px 12px;display:flex;gap:6px;flex-wrap:wrap;border-top:.5px solid rgba(0,0,0,.08);background:linear-gradient(180deg,#ffffff73,#fffdf840);box-shadow:inset 0 1px #ffffffd9}.tutor-sug{font-size:12.5px;font-weight:500;letter-spacing:-.08px;color:#1c1c1e;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.08);padding:6px 12px;border-radius:11px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000005,0 1px 1.5px #0000000a,0 4px 12px -6px #0000000f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),background .18s ease,border-color .18s ease}.tutor-sug:before{content:"";width:7px;height:7px;border-radius:50%;background:linear-gradient(180deg,#ec4899,#a855f7);box-shadow:0 0 0 1px #fff9,0 0 4px #a855f74d;flex:0 0 7px}.tutor-sug:hover{background:linear-gradient(180deg,#fff,#faf7f2d9);border-color:#0000001f;transform:translateY(-.5px);box-shadow:inset 0 1px #fff,0 2px 3px #0000000d,0 8px 18px -6px #a855f733}.tutor-sug:active{transform:translateY(0) scale(.985);box-shadow:inset 0 1.5px 3px #00000014,0 .5px 1px #0000000a;transition-duration:.08s}.tutor-input-row{padding:10px 12px 12px;display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,#ffffff8c,#fffdf852);border-top:.5px solid rgba(0,0,0,.08);box-shadow:inset 0 1px #fffffff2}.tutor-input{flex:1;background:linear-gradient(180deg,#ffffffeb,#faf7f2c7);border:.5px solid rgba(0,0,0,.1);border-radius:14px;padding:9px 14px;font-size:14.5px;line-height:1.4;letter-spacing:-.1px;color:#1c1c1e;outline:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a;max-height:120px;resize:none}.tutor-input:focus{border-color:#a855f773;background:linear-gradient(180deg,#fff,#fcfaf4eb);box-shadow:inset 0 1px #fff,0 0 0 3px #a855f71a,0 1px 1.5px #0000000a}.tutor-input::placeholder{color:#1c1c1e66}.tutor-send{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:linear-gradient(180deg,#c084fc,#a855f7);color:#fff;border:.5px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),opacity .18s ease;cursor:pointer;box-shadow:inset 0 1px #ffffff52,inset 0 -.5px #0000001a,0 1px 2px #0000001a,0 6px 16px -2px #a855f773,0 12px 30px -8px #a855f759}.tutor-send:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff6,inset 0 -.5px #0000001a,0 2px 4px #0000001a,0 10px 22px -2px #a855f78c,0 18px 40px -8px #a855f766}.tutor-send:active{transform:translateY(0) scale(.94)}.tutor-send:disabled{background:linear-gradient(180deg,#c7c7cc99,#aeaeb299);cursor:not-allowed;box-shadow:inset 0 1px #ffffff52,0 1px 2px #0000000a}.tutor-launch{position:fixed;bottom:24px;left:24px;z-index:80;display:inline-flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(0,0,0,.1);border-radius:999px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 8px 24px -4px #a855f74d,0 14px 36px -10px #0000002e;cursor:pointer;transition:transform .22s cubic-bezier(.32,.72,0,1),box-shadow .22s cubic-bezier(.32,.72,0,1)}.tutor-launch:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 12px 32px -4px #a855f773,0 20px 48px -10px #0003}.tutor-launch:active{transform:translateY(0) scale(.985)}.tutor-launch-avatar{width:26px;height:26px;border-radius:8px;background:conic-gradient(from 200deg,#a855f7,#ec4899,#f97316,#eab308 180deg,#22c55e 220deg,#06b6d4 280deg,#3b82f6,#a855f7 360deg);padding:3px;box-sizing:border-box;position:relative;flex-shrink:0;animation:tutorAvatarSpin 18s linear infinite}.tutor-launch-avatar:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:5px;background:linear-gradient(180deg,#fff,#fbf6ec)}.tutor-launch-avatar:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:5px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1c1e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 4l1.7 4.6L18 10l-4.3 1.4L12 16l-1.7-4.6L6 10l4.3-1.4z'/></svg>") center/13px no-repeat}.tutor-launch-text{font-size:14px;font-weight:600;color:#1c1c1e;letter-spacing:-.16px}.tw{position:fixed;bottom:24px;left:24px;z-index:90;width:288px;background:#ffffffeb;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--hairline);border-radius:var(--r-4);box-shadow:var(--shadow-pop);overflow:hidden;display:none}.tw.open{display:block;animation:fadeUp .24s cubic-bezier(.32,.72,0,1)}.tw-head{padding:14px 18px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center}.tw-head h4{font-family:var(--type-sans);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.022em}.tw-close{color:var(--muted);font-size:20px;line-height:1;width:24px;height:24px;border-radius:var(--r-circle);display:flex;align-items:center;justify-content:center}.tw-close:hover{background:var(--hairline);color:var(--ink)}.tw-body{padding:16px 18px;display:flex;flex-direction:column;gap:18px}.tw-row label{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:8px}.tw-seg{display:flex;background:var(--parchment);border-radius:var(--r-1);padding:3px;border:1px solid var(--hairline)}.tw-seg button{flex:1;padding:7px 10px;border-radius:6px;font-size:13px;color:var(--ink-2);font-weight:500;transition:all .16s;letter-spacing:-.011em}.tw-seg button.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #00000014}@media (max-width:1100px){.rec-grid{grid-template-columns:1fr 1fr}.ann-grid,.lesson-page{grid-template-columns:1fr}.lesson-aside{position:static;height:auto;max-height:none}.continue{grid-template-columns:1fr}.continue-art{min-height:200px}}@media (max-width:780px){.app,.app[data-sidebar=expanded],.app[data-sidebar=hidden],.app[data-sidebar=collapsed]{grid-template-columns:1fr}.side{position:fixed;top:0;bottom:0;right:0;width:280px;z-index:100;box-shadow:-10px 0 40px #0000002e}.app[data-sidebar=hidden] .side,.app[data-sidebar=collapsed] .side{display:none}.page,.lesson-page,.page-tight{padding:24px 20px 60px}.topbar{padding:0 14px;gap:10px}.topbar-left{flex:1 1 auto;min-width:0;gap:8px}.crumbs{flex:1 1 auto;min-width:0;overflow:hidden}.crumbs .crumb:not(.current),.crumbs .crumb-sep{display:none}.crumb.current{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-right{flex:0 0 auto;gap:6px}.topbar-cmd kbd{display:none}.topbar-cmd{padding:8px 10px}.topbar-toggle,.topbar-icon-btn{width:40px;height:40px}.rec-grid,.objectives,.res-grid{grid-template-columns:1fr}.course-hero{padding:32px 24px;grid-template-columns:1fr}.course-hero-stats{grid-template-columns:repeat(4,auto)}.lesson-nav{grid-template-columns:1fr}.lessons-list .lesson-row{grid-template-columns:36px 28px 1fr auto;gap:10px}.lessons-list .lesson-row .lesson-go{display:none}}[data-mode=editor] body,body[data-mode=editor]{background:var(--ed-cream);color:var(--ed-charcoal);font-feature-settings:"lnum","kern";-webkit-font-smoothing:antialiased}[data-mode=editor] .brand-mark{width:22px;height:22px;border-radius:6px;background:conic-gradient(from 200deg,#a855f7,#ec4899,#f97316,#eab308 180deg,#22c55e 220deg,#06b6d4 280deg,#3b82f6,#a855f7 360deg);padding:4px;box-sizing:border-box;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;box-shadow:0 1px 4px #a855f74d}[data-mode=editor] .brand-mark:after{display:none}[data-mode=editor] .brand-name{font-family:var(--type-sans);letter-spacing:-.25px}[data-mode=editor] .brand-name .accent{color:var(--ed-purple)}[data-mode=editor] .side{background:linear-gradient(180deg,#1c1a17,#14120f);border-inline-end:1px solid rgba(255,255,255,.06);box-shadow:1px 0 #ffffff0a inset}[data-mode=editor] .side-brand{border-bottom:1px solid rgba(255,255,255,.06);height:56px}[data-mode=editor] .brand-name{color:#fff}[data-mode=editor] .brand-name .accent{color:#bf5af2}[data-mode=editor] .side-section-label{font-size:10.5px;letter-spacing:.06em;color:#fff6;font-weight:600;text-transform:uppercase}[data-mode=editor] .side-link{position:relative;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.08);border-radius:11px;padding:9px 13px 9px 32px;color:#1c1c1e;font-weight:500;letter-spacing:-.15px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000005,0 1px 1.5px #0000000a,0 4px 12px -6px #0000000f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),background .18s ease,border-color .18s ease;margin-bottom:4px}[data-mode=editor] .side-link{padding-left:13px}[data-mode=editor] .side-link:hover{background:linear-gradient(180deg,#fff,#faf7f2d9);border-color:#0000001f;box-shadow:inset 0 1px #fff,0 2px 3px #0000000d,0 8px 18px -6px #0000001a;transform:translateY(-.5px);text-decoration:none}[data-mode=editor] .side-link:active{transform:translateY(0) scale(.985)}[data-mode=editor] .side-link.active{color:#fff;font-weight:600;border:.5px solid rgba(0,0,0,.18);background-image:linear-gradient(180deg,#ffffff38,#fff0 60%),linear-gradient(180deg,#0000,#00000014);background-blend-mode:overlay,normal;box-shadow:inset 0 1px #ffffff52,inset 0 -1px #0000001a,0 1px 2px #0000001a,0 8px 20px -6px currentColor}[data-mode=editor] .side-link[href="#dashboard"].active{background-color:#0a84ff}[data-mode=editor] .side-link[href="#lessons"].active{background-color:#bf5af2}[data-mode=editor] .side-link[href="#projects"].active{background-color:#14b8a6}[data-mode=editor] .side-link[href="#certificate"].active{background-color:#ff9f0a}[data-mode=editor] .side-link[href="#settings"].active{background-color:#5f5f5d}[data-mode=editor] .side-link.active .side-link-ic{color:#fff}[data-mode=editor] .side-link-meta{background:#0000000f;color:#1c1c1c99;padding:1px 8px;border-radius:9999px;font-size:11px;font-weight:600}[data-mode=editor] .side-link.active .side-link-meta{background:#ffffff40;color:#fff}[data-mode=editor] .side-next{background:linear-gradient(180deg,#ffffffd9,#fcfaf6b3);border:.5px solid rgba(0,0,0,.08);border-radius:14px;box-shadow:inset 0 1px #fffffff2,0 4px 14px -6px #00000014}[data-mode=editor] .side-next:hover{border-color:var(--ed-purple);box-shadow:inset 0 1px #fff,0 6px 18px -6px #7132f54d}[data-mode=editor] .side-next-eyebrow{color:var(--ed-purple)}[data-mode=editor] .side-next-title{color:var(--ed-charcoal)}[data-mode=editor] .side-next-meta{color:var(--muted)}[data-mode=editor] .side-progress-text .t{font-family:var(--type-sans);color:#fff}[data-mode=editor] .side-progress-text .s{color:#ffffff8c}[data-mode=editor] .topbar{background:#f7f4edeb;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--ed-cream-border);height:56px}[data-mode=editor] .topbar-cmd,[data-mode=editor] .topbar-icon-btn,[data-mode=editor] .side-foot-cmd{background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.08);border-radius:11px;box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s,border-color .18s}[data-mode=editor] .topbar-cmd:hover,[data-mode=editor] .topbar-icon-btn:hover,[data-mode=editor] .side-foot-cmd:hover{border-color:#00000029;transform:translateY(-.5px);box-shadow:inset 0 1px #fff,0 4px 10px -4px #0000001a}[data-mode=editor] .topbar-cmd kbd,[data-mode=editor] .side-foot-cmd kbd{background:var(--ed-purple-tint);color:var(--ed-purple);border:0;font-weight:600}[data-mode=editor] .topbar-icon-btn .dot{background:var(--ed-purple)}[data-mode=editor] .crumb.current{color:var(--ed-charcoal)}body[data-mode=editor] .side[data-mode=tesla-dark] .brand-mark:after{display:none}body[data-mode=editor] .side-foot{background:transparent;border-top:1px solid rgba(255,255,255,.06)}body[data-mode=editor] .side-user{background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.08);border-radius:11px;padding:8px 11px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000005,0 1px 1.5px #0000000a,0 4px 12px -6px #0000000f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),background .18s ease,border-color .18s ease}body[data-mode=editor] .side-user:hover{border-color:#0000001f;background:linear-gradient(180deg,#fff,#faf7f2d9);box-shadow:inset 0 1px #fff,0 2px 3px #0000000d,0 8px 18px -6px #0000001a;transform:translateY(-.5px)}body[data-mode=editor] .side-user-name{color:var(--ed-charcoal)!important}body[data-mode=editor] .side-user-meta{color:#5f5f5d!important}body[data-mode=editor] .avatar{background:linear-gradient(135deg,var(--ed-purple) 0%,var(--ed-purple-deep) 100%);color:#fff;box-shadow:0 2px 6px #7132f54d}body[data-mode=editor] .side-foot-cmd{width:100%;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.08);border-radius:11px;padding:9px 13px;color:var(--ed-charcoal);box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000005,0 1px 1.5px #0000000a,0 4px 12px -6px #0000000f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),background .18s ease,border-color .18s ease}body[data-mode=editor] .side-foot-cmd:hover{border-color:#0000001f;background:linear-gradient(180deg,#fff,#faf7f2d9);color:var(--ed-charcoal);box-shadow:inset 0 1px #fff,0 2px 3px #0000000d,0 8px 18px -6px #0000001a;transform:translateY(-.5px)}body[data-mode=editor] .side-foot-cmd kbd{background:var(--ed-purple-tint);color:var(--ed-purple);border:0;font-weight:600;letter-spacing:0}body[data-mode=editor] .side-user-menu{background:#fffdf8f5;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid rgba(0,0,0,.06);border-radius:14px;box-shadow:0 1px #ffffffb3 inset,0 14px 40px -10px #1c1c1c33;inset-inline-end:auto;min-width:200px;width:max-content;max-width:240px;padding:8px}body[data-mode=editor] .side-user-item{color:var(--ed-charcoal);border-radius:9px;padding:10px 12px;font-size:14px;font-weight:500;letter-spacing:-.14px;white-space:nowrap;transition:background .15s,color .15s}body[data-mode=editor] .side-user-item>span:not(.side-user-item-ic){color:inherit;flex:1 1 auto;min-width:0}body[data-mode=editor] .side-user-item-ic{color:var(--ed-charcoal);opacity:.7;flex-shrink:0}body[data-mode=editor] .side-user-item:hover{background:var(--ed-purple-tint);color:var(--ed-purple)}body[data-mode=editor] .side-user-item:hover .side-user-item-ic{color:var(--ed-purple);opacity:1}body[data-mode=editor] .side-user-item-danger,body[data-mode=editor] .side-user-item-danger .side-user-item-ic{color:#dc2626}body[data-mode=editor] .side-user-item-danger:hover{background:#dc26261a;color:#dc2626}body[data-mode=editor] .side-user-item-danger:hover .side-user-item-ic{color:#dc2626;opacity:1}body[data-mode=editor] .side-user-divider{background:#0000000f;margin:6px 8px}[data-mode=editor] .tw,[data-mode=editor] .notif{background:#fffdf88c;-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);color:var(--ed-charcoal);border:1px solid rgba(255,255,255,.5);border-radius:18px;box-shadow:0 1px #ffffffb3 inset,0 -1px #0000000a inset,0 14px 40px -10px #1c1c1c2e,0 4px 14px -4px #1c1c1c14;opacity:.96;transition:opacity .18s ease,background .18s ease}[data-mode=editor] .tw:hover,[data-mode=editor] .tw:focus-within,[data-mode=editor] .notif:hover,[data-mode=editor] .notif:focus-within{opacity:1;background:#fffdf8d1}[data-mode=editor] .tw-close,[data-mode=editor] .notif-close{color:#1c1c1c66;transition:color .15s,background .15s,transform .15s}[data-mode=editor] .tw-close:hover,[data-mode=editor] .notif-close:hover{color:#ef4444;background:#ef44441a;transform:scale(1.1)}[data-mode=editor] .tw-seg button.active{background:var(--ed-purple);color:#fff;box-shadow:0 1px 2px #7132f54d,0 4px 12px -4px #7132f566}[data-mode=editor] .cmdk{background:linear-gradient(180deg,#fffc,#ffffff9e);-webkit-backdrop-filter:saturate(180%) blur(40px);backdrop-filter:saturate(180%) blur(40px);border:.5px solid rgba(255,255,255,.65);border-radius:18px;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #0000000a,0 30px 80px -10px #1c1c1e52,0 12px 32px -6px #1c1c1e2e}[data-mode=editor] .cmdk-input{color:#1c1c1e;font-weight:500}[data-mode=editor] .cmdk-input::placeholder{color:#1c1c1e80}[data-mode=editor] .cmdk-input-row{border-bottom:.5px solid rgba(0,0,0,.08)}[data-mode=editor] .cmdk-group-label{color:#1c1c1e99;font-weight:700}[data-mode=editor] .cmdk-item-title{color:#1c1c1e;font-weight:600}[data-mode=editor] .cmdk-item-sub{color:#1c1c1e9e;font-weight:500}[data-mode=editor] .cmdk-item-arrow{color:#1c1c1e8c}[data-mode=editor] .cmdk-item:hover{background:linear-gradient(180deg,#ffffffd9,#faf7f2a6)}[data-mode=editor] .cmdk-item.sel{background:linear-gradient(180deg,#c084fc 0%,var(--ed-purple) 100%);box-shadow:inset 0 1px #ffffff52,inset 0 -.5px #0000001a,0 6px 18px -4px #a855f773}[data-mode=editor] .cmdk-item.sel .cmdk-item-title,[data-mode=editor] .cmdk-item.sel .cmdk-item-sub,[data-mode=editor] .cmdk-item.sel .cmdk-item-arrow{color:#fff}[data-mode=editor] .cmdk-esc,[data-mode=editor] .cmdk-foot kbd{background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);color:#1c1c1ebf;border:.5px solid rgba(0,0,0,.1);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a;font-weight:600}[data-mode=editor] *:focus-visible{outline:2px solid var(--ed-purple);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){[data-mode=editor] *,[data-mode=editor] *:before,[data-mode=editor] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body[data-mode=editor] .main .h-display,body[data-mode=editor] .main .hello h1{letter-spacing:-.04em;font-weight:600;font-feature-settings:"ss01","ss03","cv11","kern"}body[data-mode=editor] .main .h-section,body[data-mode=editor] .main .section-head h2{letter-spacing:-.03em;font-weight:600}body[data-mode=editor] .main .hello h1 em{color:var(--ed-purple);font-weight:600}body[data-mode=editor] .main .hello .sub,body[data-mode=editor] .main .rec-hint,body[data-mode=editor] .main .ann-text{font-weight:300;letter-spacing:-.01em;line-height:1.55}body[data-mode=editor] .main .stat-pill{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:14px 18px;box-shadow:none;transition:border-color .18s,transform .18s,box-shadow .18s}body[data-mode=editor] .main .stat-pill:hover{border-color:#7132f54d;transform:translateY(-1px);box-shadow:0 8px 22px -10px #7132f52e}body[data-mode=editor] .main .stat-pill .v{font-weight:600;letter-spacing:-.04em;font-size:32px}body[data-mode=editor] .main .stat-pill .v.blue{color:var(--ed-purple)}body[data-mode=editor] .main .stat-pill .l{font-size:12px;letter-spacing:.06em;font-weight:600;color:var(--muted)}body[data-mode=editor] .main .continue{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:24px;overflow:hidden;box-shadow:inset 0 1px #fff,0 1px 2px #0000000a,0 16px 40px -16px #1c1c1c1f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s,border-color .18s}body[data-mode=editor] .main .continue:hover{border-color:#7132f54d;transform:translateY(-3px);box-shadow:0 1px 2px #0000000a,0 24px 56px -16px #7132f540}body[data-mode=editor] .main .continue-art{background:radial-gradient(60% 80% at 80% 20%,rgba(168,85,247,.22),transparent 60%),radial-gradient(50% 70% at 20% 80%,rgba(212,77,240,.2),transparent 60%),radial-gradient(40% 60% at 50% 50%,rgba(106,76,245,.18),transparent 65%),#fcfbf8}body[data-mode=editor] .main .continue-mark{-webkit-text-stroke:1.5px rgba(28,28,28,.1);letter-spacing:-.045em}body[data-mode=editor] .main .continue-tag{background:#ffffffeb;border:1px solid rgba(0,0,0,.06);font-weight:600;letter-spacing:-.14px;font-size:13px}body[data-mode=editor] .main .continue-eyebrow{color:var(--ed-purple);letter-spacing:.06em}body[data-mode=editor] .main .continue-title{font-weight:600;letter-spacing:-.04em;line-height:1.08;color:var(--ed-charcoal)}body[data-mode=editor] .main .continue-meta .pill{background:#0000000d;color:var(--ed-charcoal);font-weight:500;letter-spacing:-.13px}body[data-mode=editor] .main .continue-prog-bar .fill{background:linear-gradient(90deg,var(--ed-purple) 0%,var(--ed-purple-deep) 100%)}body[data-mode=editor] .main .btn{border-radius:9999px;font-weight:500;letter-spacing:-.14px;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s,background .18s,border-color .18s}body[data-mode=editor] .main .btn-primary{background:linear-gradient(180deg,var(--ed-purple) 0%,var(--ed-purple-deep) 100%);color:#fff;border:0;box-shadow:inset 0 1px #fff3,0 1px 2px #7132f54d,0 8px 22px -8px #7132f573}body[data-mode=editor] .main .btn-primary:hover{background:linear-gradient(180deg,#7e3ff7,#6628e0);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff40,0 2px 4px #7132f559,0 12px 28px -8px #7132f58c}body[data-mode=editor] .main .btn-primary:active{transform:scale(.97)}body[data-mode=editor] .main .btn-ghost{background:transparent;border:1px solid var(--ed-purple);color:var(--ed-purple)}body[data-mode=editor] .main .btn-ghost:hover{background:var(--ed-purple-tint);transform:translateY(-1px)}body[data-mode=editor] .main .btn-ghost:active{transform:scale(.97)}body[data-mode=editor] .main .section-head{position:relative;margin-top:80px}body[data-mode=editor] .main .section-head:before{content:"";position:absolute;top:-16px;inset-inline-start:0;width:48px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--ed-purple) 0%,#bf5af2 100%)}body[data-mode=editor] .main .section-head h2{font-weight:600;letter-spacing:-.035em;font-size:32px;line-height:1.15}body[data-mode=editor] .main .section-head h2 em{color:var(--ed-purple)}body[data-mode=editor] .main .rec{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:24px;box-shadow:none;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s,border-color .18s}body[data-mode=editor] .main .rec:hover{border-color:#7132f54d;transform:translateY(-2px);box-shadow:0 14px 36px -14px #7132f538}body[data-mode=editor] .main .rec-reason{color:var(--ed-purple);letter-spacing:.06em;font-weight:600}body[data-mode=editor] .main .rec-title{font-weight:600;letter-spacing:-.03em;line-height:1.18}body[data-mode=editor] .main .rec-foot{border-top:1px solid rgba(0,0,0,.06)}body[data-mode=editor] .main .rec-go{color:var(--ed-purple)}body[data-mode=editor] .main .ann{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;transition:border-color .18s,transform .18s,box-shadow .18s}body[data-mode=editor] .main .ann:hover{border-color:#7132f540;transform:translateY(-1px);box-shadow:0 10px 24px -12px #7132f52e}body[data-mode=editor] .main .ann-title{font-weight:600;letter-spacing:-.02em}body[data-mode=editor] .main .schedule{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px}body[data-mode=editor] .main .schedule-day{font-weight:600;letter-spacing:-.04em;font-size:24px;color:var(--ed-charcoal)}body[data-mode=editor] .main .schedule-day .mo{font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ed-purple);font-size:11px}body[data-mode=editor] .main .schedule-text .t{font-weight:600;letter-spacing:-.02em}body[data-mode=editor] .main .schedule-text .s{font-weight:300;font-feature-settings:"tnum";letter-spacing:.02em}body[data-mode=editor] .main .lessons-list .lesson-row{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;transition:border-color .18s,transform .18s,box-shadow .18s}body[data-mode=editor] .main .lessons-list .lesson-row:hover{border-color:#7132f54d;transform:translateY(-1px);box-shadow:0 8px 22px -10px #7132f533}body[data-mode=editor] .main .crumb.current{color:var(--ed-purple);font-weight:600}body[data-mode=editor] .main .accent-swatch{border:1px solid rgba(0,0,0,.08);transition:transform .18s,border-color .18s,box-shadow .18s}body[data-mode=editor] .main .accent-swatch.active{border-color:var(--ed-purple);box-shadow:0 0 0 3px var(--ed-purple-tint)}body[data-mode=editor] .main .setting-seg{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:11px;padding:3px}body[data-mode=editor] .main .setting-seg button{border-radius:8px;font-weight:500;letter-spacing:-.13px;transition:background .15s,color .15s,box-shadow .15s}body[data-mode=editor] .main .setting-seg button.active{background:linear-gradient(180deg,var(--ed-purple) 0%,var(--ed-purple-deep) 100%);color:#fff;box-shadow:0 1px 2px #7132f54d,0 4px 12px -4px #7132f566}[data-mode=cursor]{--paper:#f7f7f4;--parchment:#f2f1ed;--parchment-2:#ebeae5;--ink:#26251e;--ink-2:rgba(38,37,30,.8);--ink-3:rgba(38,37,30,.65);--muted:rgba(38,37,30,.5);--hairline:oklab(.263 -.002 .012 / .18);--hairline-2:oklab(.263 -.002 .012 / .1);--action-blue:#f54e00;--focus-blue:#f54e00;--r-1:8px;--r-2:10px;--r-3:14px;--r-4:18px;--r-pill:9999px}[data-mode=tesla-dark]{--paper:#171a20;--parchment:#0f1115;--parchment-2:#1c1f25;--ink:#ffffff;--ink-2:rgba(255,255,255,.85);--ink-3:rgba(255,255,255,.62);--muted:rgba(255,255,255,.42);--hairline:rgba(255,255,255,.1);--hairline-2:rgba(255,255,255,.05);--action-blue:#3e6ae1;--focus-blue:#3e6ae1;--r-1:4px;--r-2:4px;--r-3:4px;--r-4:6px}[data-mode=cursor]{--type-sans:"Inter",-apple-system,system-ui,sans-serif;--type-text:"Newsreader","Iowan Old Style","Palatino Linotype",ui-serif,Georgia,serif;--type-mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,monospace}[data-mode=tesla-dark]{--type-sans:"Inter",-apple-system,system-ui,sans-serif;--type-text:"Inter",-apple-system,system-ui,sans-serif}[data-mode=cursor] body,[data-mode=cursor]{font-family:Newsreader,ui-serif,Georgia,serif;font-feature-settings:"cswh" 1}[data-mode=cursor] .h-display{font-family:Inter,system-ui,sans-serif;font-weight:500;letter-spacing:-.03em;line-height:1.1}[data-mode=cursor] .h-section{font-family:Inter,system-ui,sans-serif;font-weight:500;letter-spacing:-.02em;line-height:1.2}[data-mode=cursor] code,[data-mode=cursor] .mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.92em}[data-mode=cursor] .pill-orange{background:transparent;color:#f54e00;border:1px solid currentColor;padding:3px 10px;border-radius:9999px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}[data-mode=tesla-dark] *{--shadow-soft:none !important}[data-mode=tesla-dark] .h-display{font-weight:500;letter-spacing:0;line-height:1.2}[data-mode=editor]{--paper:#fcfbf8;--parchment:#f7f4ed;--parchment-2:#fcfbf8;--ink:#1c1c1c;--ink-2:rgba(28,28,28,.83);--ink-3:rgba(28,28,28,.55);--muted:#5f5f5d;--hairline:rgba(0,0,0,.06);--hairline-2:#eceae4;--action-blue:#7132f5;--focus-blue:#7132f5;--shadow-soft: rgba(0,0,0,.03) 0 4px 24px, rgba(0,0,0,.04) 0 1px 2px;--shadow-pop: rgba(0,0,0,.06) 0 6px 32px, rgba(113,50,245,.12) 0 8px 28px -10px;--ed-cream:#f7f4ed;--ed-cream-light:#fcfbf8;--ed-cream-border:#eceae4;--ed-charcoal:#1c1c1c;--ed-purple:#7132f5;--ed-purple-deep:#5b1ecf;--ed-purple-tint:rgba(113,50,245,.12);--ed-purple-tint-strong:rgba(113,50,245,.2);--ed-green:#149e61}[data-mode=editor]{--type-sans:"IBM Plex Sans","Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;--type-text:"IBM Plex Sans","Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}.projects-page{max-width:1100px;margin:0 auto}.projects-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;flex-wrap:wrap}.projects-stats{display:flex;gap:10px;flex-wrap:wrap}.projects-add-cta{display:block;width:100%;padding:18px 24px;background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1.5px dashed #93c5fd;border-radius:14px;font-size:15px;font-weight:600;color:#1e40af;cursor:pointer;text-align:center;margin-bottom:24px;transition:background .18s ease,border-color .18s ease,transform .12s ease}.projects-add-cta:hover{background:linear-gradient(135deg,#dbeafe,#ede9fe);border-color:#3b82f6;transform:translateY(-1px)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.project-card{background:var(--card-bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 4px 14px #0000000a;transition:transform .15s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px #00000014}.project-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.project-card-title{margin:0;font-size:18px;font-weight:700;color:var(--text,#111);line-height:1.35}.project-card-actions{display:flex;gap:4px;opacity:.4;transition:opacity .15s ease}.project-card:hover .project-card-actions{opacity:1}.project-card-action{background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;font-size:14px;transition:background .15s ease}.project-card-action:hover{background:#f3f4f6}.project-card-action.danger:hover{background:#fef2f2}.project-card-desc{margin:0;font-size:14px;line-height:1.6;color:var(--muted,#475569);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card-links{display:flex;flex-direction:column;gap:6px}.project-card-link{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s ease;align-self:flex-start;max-width:100%}.project-card-link:hover{background:#dbeafe}.project-card-link-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:10px;border-top:1px dashed var(--border,#e5e7eb);font-size:12px}.project-card-lesson{background:#fef3c7;color:#92400e;border:none;cursor:pointer;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;transition:background .15s ease;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-lesson:hover{background:#fde68a}.project-card-date{color:var(--muted,#94a3b8);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.project-form{background:var(--card-bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:14px;padding:24px 26px;margin-bottom:24px;display:flex;flex-direction:column;gap:18px;box-shadow:0 6px 20px #0000000f}.project-form-head h3{margin:0;font-size:18px;font-weight:700}.project-field{display:flex;flex-direction:column;gap:6px}.project-field label{font-size:13px;font-weight:600;color:var(--text,#111)}.project-field input[type=text],.project-field input[type=url],.project-field textarea,.project-field select{width:100%;padding:10px 14px;border:1px solid var(--border,#cbd5e1);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:var(--text,#111);transition:border-color .15s ease,box-shadow .15s ease}.project-field input:focus,.project-field textarea:focus,.project-field select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.project-field textarea{resize:vertical;min-height:80px}.project-link-row{display:grid;grid-template-columns:2fr 1.4fr auto;gap:8px;margin-bottom:6px}.project-link-remove{background:transparent;border:1px solid #fecaca;color:#dc2626;border-radius:6px;cursor:pointer;width:36px;font-size:18px;font-weight:700;transition:background .15s ease}.project-link-remove:hover{background:#fef2f2}.project-link-add{align-self:flex-start;background:transparent;border:1px dashed #93c5fd;color:#1e40af;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background .15s ease}.project-link-add:hover{background:#eff6ff}.project-form-error{padding:8px 12px;border-radius:6px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-size:13px}.project-form-actions{display:flex;gap:10px}[data-theme=dark] .project-card,[data-mode=notion] .project-card,[data-theme=dark] .project-form,[data-mode=notion] .project-form{background:#1a1a1a;border-color:#333}[data-theme=dark] .project-card-action:hover,[data-mode=notion] .project-card-action:hover{background:#262626}[data-theme=dark] .project-field input,[data-theme=dark] .project-field textarea,[data-theme=dark] .project-field select,[data-mode=notion] .project-field input,[data-mode=notion] .project-field textarea,[data-mode=notion] .project-field select{background:#0f0f0f;color:#f5f5f5;border-color:#404040}@media (max-width: 720px){.projects-head{flex-direction:column}.projects-stats{width:100%}.project-link-row{grid-template-columns:1fr;gap:6px}}.side-user-wrap{position:relative}.side-user-btn{width:100%;background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;padding:6px 8px;display:flex;align-items:center;gap:10px;text-align:start;transition:background .15s ease,border-color .15s ease;font:inherit;color:inherit}.side-user-btn:hover,.side-user-btn.open{background:#ffffff0f;border-color:#ffffff1a}.side-user-chev{margin-inline-start:auto;font-size:11px;opacity:.55;transition:transform .18s ease,opacity .15s ease}.side-user-btn.open .side-user-chev{transform:rotate(180deg);opacity:.85}.side-user-menu{position:absolute;bottom:calc(100% + 8px);inset-inline-start:0;inset-inline-end:0;background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;box-shadow:0 12px 32px #00000073;z-index:30;animation:side-user-menu-in .18s ease-out;display:flex;flex-direction:column;gap:2px}@keyframes side-user-menu-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.side-user-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:8px;background:transparent;cursor:pointer;font:inherit;font-size:14px;font-weight:500;color:#e5e7eb;text-align:start;transition:background .14s ease,color .14s ease}.side-user-item:hover{background:#ffffff14;color:#fff}.side-user-item-ic{font-size:15px;width:18px;text-align:center;opacity:.85}.side-user-item-danger{color:#fca5a5}.side-user-item-danger:hover{background:#ef44441f;color:#fecaca}.side-user-divider{height:1px;background:#ffffff14;margin:4px 6px}[data-theme=light] .side-user-menu{background:#fff;border-color:#e5e7eb;box-shadow:0 12px 32px #0000001f}[data-theme=light] .side-user-item{color:#1f2937}[data-theme=light] .side-user-item:hover{background:#f3f4f6;color:#000}[data-theme=light] .side-user-item-danger{color:#b91c1c}[data-theme=light] .side-user-item-danger:hover{background:#fef2f2;color:#7f1d1d}[data-theme=light] .side-user-divider{background:#e5e7eb}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:stretch;justify-content:stretch;padding:0;overflow:hidden;background:#0a0816}#intro-leds-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0a081600,#0a081600 40%,#0a081673 75%,#0a0816a6),radial-gradient(ellipse at 50% 50%,#0a081600,#0a081600 35%,#0a08168c)}.login-content{width:100vw;min-height:100vh;text-align:center;position:relative;z-index:2;padding:clamp(48px,8vh,120px) clamp(20px,6vw,64px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow-y:auto;background:transparent;border:none;scrollbar-width:thin;scrollbar-color:rgba(255,200,120,.4) transparent}.login-content::-webkit-scrollbar{width:6px}.login-content::-webkit-scrollbar-thumb{background:#a08cff66;border-radius:3px}.login-brand{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:11px;font-weight:600;letter-spacing:3.2px;color:#c5b8ff;margin-bottom:12px;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 18px rgba(123,108,255,.55)}.login-display{font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:clamp(36px,7vw,84px);font-weight:500;line-height:1.08;color:#fff;margin:0 0 18px;letter-spacing:-.5px;text-shadow:0 4px 24px rgba(0,0,0,.75),0 0 48px rgba(123,108,255,.32)}.login-subtitle{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:clamp(15px,1.4vw,19px);line-height:1.65;color:#e6e1ffe0;margin:0 auto 30px;max-width:640px;text-shadow:0 2px 10px rgba(0,0,0,.6)}.login-overline{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#c5b8ffd9;margin-bottom:8px}.login-name-input{margin-bottom:18px}.login-name-input input{font-family:Georgia,Iowan Old Style,serif;font-size:17px;background:#a08cff14;border:1px solid rgba(160,140,255,.3);border-radius:10px;padding:11px 18px;width:340px;max-width:90vw;text-align:center;color:#f4f0ff;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.login-name-input input::placeholder{color:#dcd2ff73;font-style:italic}.login-name-input input:focus{border-color:#a08cffcc;background:#a08cff24;box-shadow:0 0 0 3px #7b6cff38,0 0 18px #6ed4ff52}.login-input-error{margin-top:10px;font-size:13px;font-weight:500;color:#fca5a5;text-shadow:0 1px 3px rgba(0,0,0,.6)}.login-btn{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;font-weight:500;border:none;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease;letter-spacing:.1px}.login-btn-primary{background:linear-gradient(135deg,#c5b8ff,#8a9eff,#6ed4ff);color:#0a0816;font-weight:700;font-size:17px;letter-spacing:1.2px;padding:16px 44px;border-radius:14px;box-shadow:0 0 0 1px #a08cffa6,0 0 0 4px #a08cff2e,0 6px 22px #785aff66,0 0 36px #6ed4ff38,inset 0 1px #ffffff8c;text-shadow:0 1px 0 rgba(255,255,255,.45)}.login-btn-primary:hover{background:linear-gradient(135deg,#d5c8ff,#9aaeff,#80e0ff);box-shadow:0 0 0 1px #b4a0ffd9,0 0 0 4px #a08cff52,0 8px 28px #785aff99,0 0 48px #6ed4ff61,inset 0 1px #ffffffa6;transform:translateY(-1px)}.login-btn-ghost{background:transparent;color:#dcd2ffbf;margin-top:12px;padding:10px 20px;font-size:14px;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.6)}.login-btn-ghost:hover{color:#c5b8ff}.login-footer{margin-top:14px;font-size:12px;color:#dcd2ff8c;letter-spacing:.4px;text-shadow:0 1px 3px rgba(0,0,0,.6)}.login-screen.exiting{pointer-events:none}.login-screen.exiting .login-content{opacity:0;transform:translateY(-8px);transition:opacity .4s ease,transform .4s ease}.login-screen.exiting #intro-leds-canvas{opacity:0;transition:opacity 1.4s ease .3s}.login-screen.exiting:before{opacity:1;background:linear-gradient(180deg,#0a0816b3,#0a0816);transition:background 1.4s ease .3s}.app{animation:app-arrive .6s cubic-bezier(.16,1,.3,1) both}@keyframes app-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.error-boundary{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:40px 20px}.error-boundary-card{max-width:560px;width:100%;background:var(--card-bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:18px;padding:36px 32px;text-align:center;box-shadow:0 12px 32px #00000014}.error-boundary-emoji{font-size:54px;margin-bottom:12px}.error-boundary-card h2{margin:0 0 10px;font-size:22px;color:var(--text,#111)}.error-boundary-card>p{margin:0 0 22px;color:var(--muted,#6b7280);line-height:1.6}.error-boundary-details{text-align:start;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:10px 14px;margin-bottom:22px;font-size:12px;color:#475569;max-height:160px;overflow:auto}.error-boundary-details summary{cursor:pointer;font-weight:600;margin-bottom:6px}.error-boundary-details pre{margin:0;font-size:11px;white-space:pre-wrap;word-break:break-word}.error-boundary-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.save-error-banner{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,#fef2f2,#fff7ed);border-bottom:1px solid #fecaca;padding:10px 18px;font-size:14px;color:#7f1d1d}.save-error-emoji{font-size:18px}.save-error-text{flex:1;line-height:1.5}.save-error-text strong{color:#991b1b;margin-inline-end:4px}.save-error-close{background:transparent;border:none;cursor:pointer;font-size:22px;line-height:1;color:#7f1d1d;padding:0 6px}.save-error-close:hover{color:#450a0a}.backup-status{margin-top:12px;padding:10px 14px;border-radius:8px;font-size:14px;font-weight:500}.backup-status-ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.backup-status-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}[data-theme=dark] .error-boundary-card,[data-mode=notion] .error-boundary-card{background:#1a1a1a;border-color:#333}[data-theme=dark] .error-boundary-details,[data-mode=notion] .error-boundary-details{background:#0f0f0f;border-color:#262626;color:#cbd5e1}[data-theme=dark] .save-error-banner,[data-mode=notion] .save-error-banner{background:linear-gradient(90deg,#450a0a,#7c2d12);color:#fee2e2;border-color:#7f1d1d}[data-theme=dark] .save-error-banner strong,[data-mode=notion] .save-error-banner strong{color:#fef2f2}[data-theme=dark] .save-error-close,[data-mode=notion] .save-error-close{color:#fecaca}.modules-block{margin-top:48px}.modules-list{display:flex;flex-direction:column;gap:16px;margin-top:24px}.module-card{background:var(--paper);border:1px solid var(--hairline);border-radius:16px;overflow:hidden;transition:border-color .2s,box-shadow .24s cubic-bezier(.32,.72,0,1)}.module-card:hover{border-color:#0000002e}.module-card.open{box-shadow:#0000000a 0 4px 18px,#00000007 0 2px 8px,#00000005 0 1px 3px}.module-card.is-current{border-color:#0066cc59}.module-card.is-current.open{box-shadow:0 0 0 1px #0066cc40,#0000000a 0 4px 18px}.module-head{width:100%;display:grid;grid-template-columns:84px 1fr auto;align-items:start;gap:24px;padding:28px 32px;text-align:right;cursor:pointer;background:transparent;transition:background .16s}.module-num{font-family:var(--type-mono);font-size:13px;font-weight:500;color:var(--muted);letter-spacing:.04em;padding-top:6px}.module-text{min-width:0}.module-row1{display:flex;align-items:center;gap:14px;margin-bottom:8px;flex-wrap:wrap}.module-title{font-family:var(--type-sans);font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.022em;line-height:1.2;margin:0}.module-now{font-family:var(--type-sans);font-size:11px;font-weight:600;color:#0075de;background:#f2f9ff;padding:3px 10px;border-radius:9999px;letter-spacing:.06em;text-transform:uppercase}.module-summary{font-family:var(--type-sans);font-size:15px;line-height:1.55;color:var(--ink-2);margin:0 0 14px;max-width:64ch;letter-spacing:-.005em}.module-meta{display:flex;align-items:center;gap:10px;font-family:var(--type-sans);font-size:13px;font-weight:500;color:var(--muted)}.module-meta .dot-sep{opacity:.5}.module-prog-text{color:var(--ink-2)}.module-prog-bar{flex:0 0 100px;height:3px;background:var(--hairline);border-radius:9999px;overflow:hidden;margin-inline-start:auto}.module-prog-bar .f{height:100%;background:var(--ink);border-radius:9999px;transition:width .32s ease}.module-card.is-current .module-prog-bar .f{background:#0075de}.module-chev{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:9999px;background:#0000000a;color:var(--ink);transition:transform .24s cubic-bezier(.32,.72,0,1),background .16s;transform:rotate(90deg)}.module-card.open .module-chev{transform:rotate(-90deg);background:var(--ink);color:var(--paper)}.module-head:hover .module-chev{background:#00000014}.module-body{border-top:1px solid var(--hairline);padding:8px 0;background:#00000003;animation:moduleOpen .28s cubic-bezier(.32,.72,0,1)}@keyframes moduleOpen{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.module-lesson{display:grid;grid-template-columns:48px 22px 1fr auto auto;align-items:center;gap:14px;padding:14px 32px 14px 24px;cursor:pointer;transition:background .14s;border-inline-end:2px solid transparent}.module-lesson:hover{background:#00000006;border-inline-end-color:var(--ink)}.module-lesson.locked{cursor:not-allowed;opacity:.45}.module-lesson.locked:hover{background:transparent;border-inline-end-color:transparent}.module-lesson.is-current{background:#0075de0d;border-inline-end-color:#0075de}.module-lesson-num{font-family:var(--type-mono);font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em}.module-lesson-title{font-family:var(--type-sans);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.011em;line-height:1.4;min-width:0}.module-lesson-meta{display:flex;align-items:center;gap:10px;font-family:var(--type-sans);font-size:12px;font-weight:500;color:var(--muted)}.module-lesson-go{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--muted);opacity:0;transition:opacity .16s,color .16s}.module-lesson:hover .module-lesson-go{opacity:1;color:var(--ink)}.materials-block{margin-top:56px;padding:36px 40px 40px;background:#f2f1ed;border:1px solid rgba(38,37,30,.1);border-radius:16px;position:relative}.materials-block:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #26251e0a}.materials-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:8px}.materials-title{font-family:var(--type-sans);font-size:26px;font-weight:400;color:#26251e;letter-spacing:-.325px;line-height:1.25;margin:0}.materials-meta{font-family:var(--type-mono);font-size:11px;font-weight:400;color:#26251e8c;letter-spacing:.02em}.materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.material-card{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:18px 20px;background:linear-gradient(180deg,#ffffffeb,#fbf6ecc7);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(0,0,0,.1);border-radius:14px;text-decoration:none;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 8px 24px -10px #1c1c1c1a;transition:transform .22s cubic-bezier(.32,.72,0,1),box-shadow .22s cubic-bezier(.32,.72,0,1),border-color .18s ease,background .18s ease}.material-card:hover{border-color:#00000029;background:linear-gradient(180deg,#fff,#fcfaf4e0);transform:translateY(-1px);box-shadow:inset 0 1px #fff,inset 0 -.5px #00000008,0 2px 4px #0000000d,0 14px 36px -10px #1c1c1c2e}.material-card:hover .material-cta{color:#cf2d56}.material-card:hover .material-arrow{transform:translate(-3px)}.material-card:active{transform:translateY(0) scale(.99);transition-duration:.08s}.material-icon-wrap{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:linear-gradient(180deg,#fff,#faf7f2e0);border:.5px solid rgba(0,0,0,.08);color:#26251e;flex-shrink:0;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 1.5px #0000000a}.mat-pdf .material-icon-wrap{color:#cf2d56;background:linear-gradient(180deg,#fff,#fdf0f3);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a,0 6px 14px -6px #cf2d564d}.mat-github .material-icon-wrap,.mat-notion .material-icon-wrap{color:#26251e}.mat-drive .material-icon-wrap{color:#1f8a65;background:linear-gradient(180deg,#fff,#edf5f1);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a,0 6px 14px -6px #1f8a654d}.mat-colab .material-icon-wrap{color:#f54e00;background:linear-gradient(180deg,#fff,#fdefe5);box-shadow:inset 0 1px #fffffff2,0 1px 1.5px #0000000a,0 6px 14px -6px #f54e004d}.material-body{min-width:0}.material-tag{font-family:var(--type-mono);font-size:10px;font-weight:500;color:#26251e8c;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;display:flex;gap:6px;align-items:center}.material-secured{color:#1f8a65;font-weight:500}.material-title{font-family:var(--type-sans);font-size:15px;font-weight:400;color:#26251e;letter-spacing:-.011em;line-height:1.35;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-meta{font-family:var(--type-sans);font-size:12px;font-weight:400;color:#26251e8c;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-cta{font-family:var(--type-sans);font-size:13px;font-weight:400;color:#26251eb3;display:flex;align-items:center;gap:6px;transition:color .16s;white-space:nowrap}.material-arrow{display:inline-block;transition:transform .2s cubic-bezier(.32,.72,0,1);font-family:var(--type-mono)}.workshop-cta{margin-top:32px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px;padding:28px 32px;background:linear-gradient(135deg,#1c1f24,#0a0d12);border:1px solid rgba(255,255,255,.08);border-radius:14px;cursor:pointer;transition:transform .2s,box-shadow .24s;overflow:hidden;position:relative}.workshop-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 100% at 0% 50%,rgba(24,119,242,.15) 0%,transparent 70%);pointer-events:none}.workshop-cta:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0006,0 4px 12px #1877f233;border-color:#1877f266}.workshop-cta-side{position:relative;z-index:1;min-width:0}.workshop-cta-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:500;color:#1877f2;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:10px}.workshop-cta-title{font-family:var(--type-sans);font-size:26px;font-weight:700;color:#fff;letter-spacing:-.025em;line-height:1.15;margin:0 0 8px}.workshop-cta-body{font-family:var(--type-sans);font-size:14px;font-weight:400;color:#ffffffb3;line-height:1.5;margin:0;max-width:52ch}.workshop-cta-action{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:14px}.workshop-cta-go{font-family:var(--type-sans);font-size:14px;font-weight:600;color:#fff;background:#1877f2;padding:10px 18px;border-radius:8px;display:flex;align-items:center;gap:8px;letter-spacing:-.011em;transition:background .16s}.workshop-cta:hover .workshop-cta-go{background:#0866d4}.workshop-cta-mini,.wcm-row{display:flex;gap:6px}.wcm-tag{font-family:var(--type-mono);font-size:10px;font-weight:500;color:#ffffff8c;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);padding:3px 8px;border-radius:4px;letter-spacing:.04em}.wcm-tag.run{color:#7adfa0;border-color:#7adfa04d}.wcm-tag.info{color:#7ab9f5;border-color:#7ab9f54d}.lesson-page{display:block;padding:36px 56px 80px;max-width:980px;margin:0 auto;position:relative}.lesson-page.tutor-side{display:grid;grid-template-columns:1fr 380px;gap:32px;max-width:1480px}.tutor-fab{position:fixed;bottom:32px;inset-inline-end:32px;z-index:50;height:48px;display:flex;align-items:center;gap:10px;padding:0 20px 0 16px;background:#26251e;color:#f2f1ed;border:1px solid rgba(255,255,255,.08);border-radius:9999px;font-family:var(--type-sans);font-size:14px;font-weight:500;letter-spacing:-.011em;box-shadow:0 8px 24px #0000002e,0 2px 6px #0000001f;cursor:pointer;transition:transform .2s cubic-bezier(.32,.72,0,1),background .16s}.tutor-fab:hover{transform:translateY(-2px);background:#1a1914}.tutor-fab:active{transform:translateY(0)}.tutor-fab-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#f54e00;color:#fff;border-radius:9999px;font-size:12px;font-weight:600}.tutor-fab.side .tutor-fab-icon{background:#1f8a65;transform:rotate(180deg)}.lesson-aside.tutor-docked{position:static;width:100%;max-width:none;height:auto;margin-top:32px;background:var(--paper);border:1px solid var(--hairline);border-radius:16px;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto auto;max-height:540px}.lesson-aside.tutor-side{position:sticky;top:72px;align-self:start;height:calc(100vh - 92px);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.tutor-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#0000000d;color:var(--ink-2);border-radius:9999px;flex-shrink:0;transition:background .16s}.tutor-close:hover{background:#0000001a;color:var(--ink)}.workshop-view{--ws-bg:#0a0d12;--ws-panel:#11151c;--ws-panel-2:#161b24;--ws-line:rgba(255,255,255,.07);--ws-line-2:rgba(255,255,255,.12);--ws-text:#e8eaed;--ws-text-2:#9aa0a6;--ws-text-3:#5f6368;--ws-blue:#1877f2;--ws-green:#42b883;--ws-yellow:#fbbf24;--ws-purple:#a78bfa;position:fixed;inset-block-start:0;inset-inline:0;inset-block-end:0;z-index:80;background:var(--ws-bg);color:var(--ws-text);font-family:var(--type-sans);display:grid;grid-template-rows:52px 1fr}body[data-mode=meta] .topbar,body[data-mode=meta] .side{display:none}body[data-mode=meta] .main{padding:0}.ws-chrome{display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--ws-panel);border-block-end:1px solid var(--ws-line)}.ws-chrome-left{display:flex;align-items:center;gap:16px;min-width:0}.ws-chrome-right{display:flex;align-items:center;gap:8px}.ws-back{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--ws-text-2);padding:7px 12px;border-radius:6px;transition:background .14s,color .14s}.ws-back:hover{background:#ffffff0d;color:var(--ws-text)}.ws-back-arrow{font-family:var(--type-mono);font-size:14px}.ws-divider{width:1px;height:20px;background:var(--ws-line)}.ws-breadcrumb{display:flex;align-items:center;gap:10px;min-width:0}.ws-bc-tag{font-family:var(--type-mono);font-size:10px;font-weight:600;color:var(--ws-blue);background:#1877f21f;padding:3px 8px;border-radius:4px;letter-spacing:.08em}.ws-bc-num{font-family:var(--type-mono);font-size:12px;font-weight:500;color:var(--ws-text-3)}.ws-bc-title{font-size:13px;font-weight:500;color:var(--ws-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-btn{font-family:var(--type-sans);font-size:13px;font-weight:500;padding:7px 14px;border-radius:6px;display:inline-flex;align-items:center;gap:8px;transition:background .14s,color .14s,transform .14s}.ws-btn.ghost{color:var(--ws-text-2);background:transparent}.ws-btn.ghost:hover{background:#ffffff0d;color:var(--ws-text)}.ws-btn.primary{background:var(--ws-blue);color:#fff}.ws-btn.primary:hover{background:#0866d4}.ws-btn.primary:active{transform:scale(.97)}.ws-btn.primary:disabled{opacity:.5;cursor:not-allowed}.ws-run-dot{width:6px;height:6px;border-radius:9999px;background:#7adfa0;box-shadow:0 0 0 2px #7adfa040}.ws-kbd{font-family:var(--type-mono);font-size:10px;color:#ffffff8c;background:#00000040;padding:2px 5px;border-radius:3px;margin-inline-start:4px}.ws-grid{display:grid;grid-template-columns:200px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.05fr);gap:1px;background:var(--ws-line);overflow:hidden}.ws-files{background:var(--ws-panel);display:flex;flex-direction:column;padding:16px 8px;gap:2px}.ws-files-head{font-family:var(--type-mono);font-size:10px;font-weight:600;color:var(--ws-text-3);letter-spacing:.08em;text-transform:uppercase;padding:6px 12px 12px}.ws-file{display:flex;align-items:center;gap:10px;padding:7px 12px;font-family:var(--type-mono);font-size:12px;font-weight:400;color:var(--ws-text-2);border-radius:4px;text-align:start;transition:background .12s,color .12s;direction:ltr}.ws-file:hover{background:#ffffff0a;color:var(--ws-text)}.ws-file.active{background:#1877f21f;color:var(--ws-blue)}.ws-file-dot{width:6px;height:6px;border-radius:9999px;background:var(--ws-text-3);flex-shrink:0}.ws-file.active .ws-file-dot{background:var(--ws-blue);box-shadow:0 0 0 2px #1877f240}.ws-files-foot{margin-block-start:auto;padding:12px 12px 0;border-block-start:1px solid var(--ws-line)}.ws-files-meta{font-family:var(--type-mono);font-size:10px;color:var(--ws-text-3);letter-spacing:.04em}.ws-panel{background:var(--ws-panel);display:flex;flex-direction:column;min-width:0;overflow:hidden}.ws-panel-head{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:38px;border-block-end:1px solid var(--ws-line);background:var(--ws-panel-2);flex-shrink:0}.ws-panel-title{display:flex;align-items:center;gap:10px;min-width:0}.ws-panel-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-family:var(--type-mono);font-size:11px;font-weight:600}.ws-panel-icon.code{background:#a78bfa26;color:var(--ws-purple)}.ws-panel-icon.run{background:#7adfa026;color:#7adfa0}.ws-panel-icon.info{background:#7ab9f526;color:#7ab9f5}.ws-panel-title>span:nth-child(2){font-size:12px;font-weight:600;color:var(--ws-text);letter-spacing:-.005em}.ws-panel-sub{font-family:var(--type-mono);font-size:11px;color:var(--ws-text-3);margin-inline-start:4px}.ws-panel-tools{display:flex;align-items:center;gap:8px}.ws-tool{font-family:var(--type-mono);font-size:10px;color:var(--ws-text-3);letter-spacing:.04em;padding:2px 6px;background:#ffffff08;border-radius:3px}.ws-status{font-family:var(--type-mono);font-size:10px;font-weight:500;display:flex;align-items:center;gap:5px;padding:2px 8px;border-radius:9999px;margin-inline-start:8px}.ws-status.idle{color:#7adfa0;background:#7adfa01a}.ws-status.busy{color:var(--ws-yellow);background:#fbbf241a}.ws-status-dot{width:5px;height:5px;border-radius:9999px;background:currentColor}.ws-status.busy .ws-status-dot{animation:ws-pulse 1s infinite}@keyframes ws-pulse{50%{opacity:.3}}.ws-code-wrap{flex:1;display:flex;background:var(--ws-bg);overflow:auto;direction:ltr}.ws-code-gutter{background:var(--ws-panel);padding:14px 0;-webkit-user-select:none;user-select:none;border-inline-end:1px solid var(--ws-line);flex-shrink:0;min-width:44px}.ws-gutter-line{font-family:var(--type-mono);font-size:12px;line-height:1.55;color:var(--ws-text-3);text-align:end;padding:0 12px 0 8px}.ws-code{flex:1;padding:14px 16px;background:transparent;color:var(--ws-text);font-family:var(--type-mono);font-size:12.5px;line-height:1.55;border:0;outline:0;resize:none;white-space:pre;letter-spacing:0;caret-color:var(--ws-blue);min-height:100%}.ws-output{flex:1;padding:14px 16px;font-family:var(--type-mono);font-size:12.5px;line-height:1.6;background:var(--ws-bg);overflow:auto;direction:ltr}.ws-out-text{color:var(--ws-text);white-space:pre-wrap}.ws-run-foot{display:flex;gap:18px;padding:8px 16px;border-block-start:1px solid var(--ws-line);background:var(--ws-panel-2);flex-shrink:0}.ws-run-foot-item{font-family:var(--type-mono);font-size:11px;color:var(--ws-text-2);display:flex;gap:6px;align-items:center}.ws-fk{color:var(--ws-text-3);font-weight:500}.ws-explain{flex:1;padding:24px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.ws-explain-objective{padding-block-end:20px;border-block-end:1px solid var(--ws-line)}.ws-eyebrow{font-family:var(--type-mono);font-size:10px;font-weight:600;color:var(--ws-blue);letter-spacing:.12em;text-transform:uppercase;display:block;margin-block-end:8px}.ws-explain-h{font-family:var(--type-sans);font-size:20px;font-weight:600;color:var(--ws-text);letter-spacing:-.02em;line-height:1.25;margin:0 0 10px}.ws-explain-lede{font-size:13px;line-height:1.6;color:var(--ws-text-2);margin:0}.ws-explain-sec{display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:start}.ws-explain-num{font-family:var(--type-mono);font-size:11px;font-weight:500;color:var(--ws-text-3);letter-spacing:.06em;padding-block-start:2px}.ws-explain-body h4{font-family:var(--type-sans);font-size:13px;font-weight:600;color:var(--ws-text);letter-spacing:-.011em;margin:0 0 6px}.ws-explain-body p{font-size:13px;line-height:1.65;color:var(--ws-text-2);margin:0}@media (max-width:1100px){.lesson-page.tutor-side{grid-template-columns:1fr}.lesson-aside.tutor-side{position:static;height:auto}.ws-grid{grid-template-columns:160px 1fr 1fr;grid-auto-rows:minmax(280px,auto)}.ws-explain-panel{grid-column:2 / -1}}@media (max-width:760px){.module-head{grid-template-columns:48px 1fr auto;gap:14px;padding:20px}.module-num{font-size:11px;padding-top:4px}.module-title{font-size:19px}.module-prog-bar{flex:0 0 60px}.module-lesson{grid-template-columns:38px 18px 1fr auto;padding:12px 20px}.module-lesson-go{display:none}.materials-block{padding:24px 20px}.materials-grid{grid-template-columns:1fr}.workshop-cta{grid-template-columns:1fr;gap:18px;padding:22px}.workshop-cta-action{flex-direction:row;align-items:center;justify-content:space-between}.ws-grid{grid-template-columns:1fr;grid-auto-rows:minmax(220px,auto)}.ws-files{display:none}.tutor-fab{bottom:20px;inset-inline-end:20px;height:44px}.tutor-fab-label{display:none}.tutor-fab{padding:0 12px}}.module-card,.rec,.material-card,.side-next,.continue,.workshop-cta,.lesson-nav-card{transition:border-color .32s cubic-bezier(.22,.61,.36,1),transform .32s cubic-bezier(.22,.61,.36,1),box-shadow .32s cubic-bezier(.22,.61,.36,1),background-color .32s cubic-bezier(.22,.61,.36,1)}.rec:hover,.material-card:hover,.side-next:hover,.lesson-nav-card:hover{transform:translateY(-1px);border-color:#00000038;box-shadow:0 6px 20px -8px #0000002e}.continue-art,.rec-thumb,.lesson-thumb,.module-thumb,.video-shell{overflow:hidden;position:relative}.continue-art img,.continue-art video,.rec-thumb img,.lesson-thumb img,.module-thumb img,.video-shell .video-poster,.video-shell img{transition:transform .6s cubic-bezier(.22,.61,.36,1);will-change:transform}.continue:hover .continue-art img,.continue:hover .continue-art video,.rec:hover .rec-thumb img,.module-card:hover .module-thumb img{transform:scale(1.025)}.rec-go,.material-cta{position:relative;display:inline-flex;align-items:center;gap:6px}.rec-go:after{content:"";position:absolute;inset-inline-start:0;bottom:-2px;height:1px;background:currentColor;width:0;transition:width .36s cubic-bezier(.22,.61,.36,1)}.rec:hover .rec-go:after{width:100%}.rec-go,.lesson-go,.material-arrow,.workshop-cta-go{transition:transform .2s cubic-bezier(.22,.61,.36,1),color .16s ease}.module-head{transition:background-color .2s ease}.module-head:hover{background:#00000004}.practice-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.08em;text-transform:uppercase}.practice-hint{display:flex;flex-direction:column;gap:8px;padding:18px 22px;border-radius:var(--r-3,12px);border:1px solid rgba(234,179,8,.28);background:linear-gradient(180deg,rgba(234,179,8,.05),transparent)}.practice-hint .practice-eyebrow{color:#a16207}.practice-hint p{font-family:var(--type-sans);font-size:15px;line-height:1.55;color:var(--ink);margin:0;letter-spacing:-.005em}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;padding-top:32px;border-top:1px solid var(--hairline)}.lesson-nav-card{display:flex;align-items:center;gap:14px;padding:18px 22px;background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-3,14px);cursor:pointer;text-align:right;transition:transform .2s cubic-bezier(.32,.72,0,1),border-color .18s,box-shadow .18s;font-family:inherit;color:inherit}.lesson-nav-card:hover{border-color:#0066cc59;box-shadow:0 6px 20px #0000000f;transform:translateY(-1px)}.lnc-num{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;background:#0066cc14;color:var(--action-blue,#0066cc);font-family:var(--type-mono);font-size:15px;font-weight:600;letter-spacing:-.012em;direction:ltr;transition:background .16s,transform .2s cubic-bezier(.32,.72,0,1)}.lesson-nav-card:hover .lnc-num{background:#0066cc2e;transform:scale(1.06)}.lnc-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;text-align:right}.lnc-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.lnc-title{font-family:var(--type-sans);font-size:15.5px;font-weight:600;color:var(--ink);letter-spacing:-.011em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lnc-arrow{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--muted);transition:color .16s,transform .2s cubic-bezier(.32,.72,0,1)}.lesson-nav-card:hover .lnc-arrow{color:var(--action-blue,#0066cc)}.lesson-nav-card.prev:hover .lnc-arrow{transform:translate(4px)}.lesson-nav-card.next:hover .lnc-arrow{transform:translate(-4px)}@media (max-width:760px){.practice-goal-card{padding:20px 22px}.practice-goal-card .practice-time{position:static;align-self:flex-start;margin-bottom:4px}.practice-goal{font-size:19px}.practice-step{padding:14px 16px;gap:12px}.lesson-nav{grid-template-columns:1fr;gap:10px}.lesson-nav-card{padding:16px 18px}.lnc-num{width:38px;height:38px;font-size:13px}}.tw-seg button:disabled{opacity:.4;cursor:not-allowed}.settings-page{max-width:920px;margin:0 auto;padding:48px 48px 120px;display:flex;flex-direction:column;gap:48px;animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.settings-hero{display:flex;flex-direction:column;gap:8px;padding-bottom:24px;border-bottom:1px solid var(--hairline)}.settings-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.12em;text-transform:uppercase}.settings-title{font-family:var(--type-sans);font-size:42px;font-weight:700;color:var(--ink);letter-spacing:-.028em;line-height:1.1;margin:8px 0 0}.settings-sub{font-family:var(--type-sans);font-size:16px;line-height:1.5;color:var(--ink-2);margin:6px 0 0;letter-spacing:-.005em}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-section-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:14px;margin-bottom:8px;border-bottom:1px solid var(--hairline)}.settings-section-head h2{font-family:var(--type-sans);font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.018em;margin:0}.settings-section-head .settings-section-meta{font-family:var(--type-mono);font-size:12px;color:var(--muted);letter-spacing:.04em}.setting-row{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.04)}.setting-row:last-child{border-bottom:none}.setting-info h3{font-family:var(--type-sans);font-size:16px;font-weight:600;color:var(--ink);margin:0 0 4px;letter-spacing:-.012em}.setting-info p{font-family:var(--type-sans);font-size:13.5px;line-height:1.5;color:var(--muted);margin:0;letter-spacing:-.005em;max-width:52ch}.setting-value{font-family:var(--type-sans);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.005em}.accent-picker{display:flex;gap:10px}.accent-swatch{width:36px;height:36px;border-radius:50%;border:2px solid transparent;background:var(--paper);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .16s,border-color .16s}.accent-swatch:hover{transform:scale(1.08)}.accent-swatch.active{border-color:var(--accent-preview)}.accent-swatch-dot{display:block;width:24px;height:24px;border-radius:50%;background:var(--accent-preview);box-shadow:0 1px 2px #0000001a}.setting-seg{display:flex;background:var(--parchment,#f5f4ef);border-radius:9999px;padding:3px;border:1px solid var(--hairline)}.setting-seg button{font-family:var(--type-sans);font-size:13px;font-weight:500;color:var(--ink-2);background:transparent;border:none;cursor:pointer;padding:7px 16px;border-radius:9999px;letter-spacing:-.005em;transition:all .16s}.setting-seg button:hover:not(.active):not(:disabled){color:var(--ink)}.setting-seg button.active{background:var(--paper,#fff);color:var(--ink);box-shadow:0 1px 3px #00000014;font-weight:600}.setting-seg button:disabled{opacity:.35;cursor:not-allowed}.setting-time{display:flex;align-items:center}.time-input{font-family:var(--type-mono);font-size:15px;font-weight:500;color:var(--ink);background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-2,10px);padding:10px 16px;cursor:pointer;letter-spacing:.04em;direction:ltr;transition:all .16s}.time-input:hover{border-color:#0000002e}.time-input:focus{outline:none;border-color:var(--action-blue,#0066cc);box-shadow:0 0 0 3px #0066cc24}body[data-theme=dark] .time-input{background:#101010;border-color:#3d3a39;color:#f2f2f2}body[data-theme=dark] .time-input:focus{border-color:#00d992;box-shadow:0 0 0 3px #00d9922e}.setting-toggle{display:flex;align-items:center}.toggle{position:relative;width:46px;height:26px;background:#d4d4d8;border:none;border-radius:9999px;cursor:pointer;padding:0;transition:background .2s}.toggle.on{background:var(--action-blue,#0066cc)}.toggle-knob{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:right .2s cubic-bezier(.32,.72,0,1)}.toggle.on .toggle-knob{right:23px}.settings-foot{display:flex;justify-content:flex-end;padding-top:24px;border-top:1px solid var(--hairline)}@media (max-width:760px){.settings-page{padding:32px 24px 80px;gap:32px}.settings-title{font-size:32px}.setting-row{grid-template-columns:1fr;gap:14px}.settings-section-head{flex-direction:column;align-items:flex-start;gap:4px}.accent-picker{flex-wrap:wrap}}.notif-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#0a0c102e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeUp .2s cubic-bezier(.32,.72,0,1)}.notif{position:absolute;top:64px;left:24px;width:min(420px,calc(100vw - 32px));max-height:min(72vh,720px);background:#fffffff5;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--hairline);border-radius:var(--r-4,16px);box-shadow:0 24px 64px #0000002e,0 4px 14px #00000014;display:flex;flex-direction:column;overflow:hidden;animation:notif-pop .24s cubic-bezier(.32,.72,0,1)}@keyframes notif-pop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}.notif-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--hairline)}.notif-head-text{display:flex;align-items:baseline;gap:10px}.notif-head h4{font-family:var(--type-sans);font-size:17px;font-weight:600;color:var(--ink);margin:0;letter-spacing:-.018em}.notif-meta{font-family:var(--type-mono);font-size:11px;color:var(--muted);letter-spacing:.04em}.notif-close{color:var(--muted);font-size:22px;line-height:1;width:28px;height:28px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .16s,color .16s}.notif-close:hover{background:var(--hairline);color:var(--ink)}.notif-body{flex:1;overflow-y:auto;padding:8px 0}.notif-item{display:flex;flex-direction:column;gap:6px;padding:14px 20px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .16s}.notif-item:hover{background:#0066cc0a}.notif-item:last-child{border-bottom:none}.notif-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.notif-tag{font-family:var(--type-mono);font-size:10px;font-weight:600;color:var(--action-blue,#0066cc);background:#0066cc14;padding:3px 9px;border-radius:9999px;letter-spacing:.06em;text-transform:uppercase}.notif-date{font-family:var(--type-mono);font-size:11px;color:var(--muted);letter-spacing:.04em}.notif-item-title{font-family:var(--type-sans);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.012em;line-height:1.35;margin-top:2px}.notif-item-body{font-family:var(--type-sans);font-size:13.5px;line-height:1.5;color:var(--ink-2);letter-spacing:-.005em}.notif-foot{padding:10px 20px;border-top:1px solid var(--hairline);display:flex;justify-content:flex-end}.notif-mark-read{font-family:var(--type-sans);font-size:12.5px;font-weight:500;color:var(--action-blue,#0066cc);background:transparent;border:none;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .16s}.notif-mark-read:hover{background:#0066cc14}@media (max-width:760px){.notif{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:80vh}}body{--user-accent:#0066cc}body[data-accent=blue]{--user-accent:#0066cc }body[data-accent=purple]{--user-accent:#7d4dff }body[data-accent=green]{--user-accent:#16a34a }body[data-accent=orange]{--user-accent:#ea580c }body[data-accent=red]{--user-accent:#dc2626 }body[data-accent=mono]{--user-accent:#525252 }.side .avatar{background:var(--user-accent, #0066cc)!important;color:#fff!important;font-weight:600;transition:background .2s}html[data-font-size=small]{font-size:14.5px}html[data-font-size=medium]{font-size:16px}html[data-font-size=large]{font-size:17.5px}body[data-motion=reduced] *,body[data-motion=reduced] *:before,body[data-motion=reduced] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.lesson-complete{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px;padding:24px 28px;border-radius:18px;background:linear-gradient(180deg,#ffffffeb,#f0fdf4c7);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(34,197,94,.32);box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 8px 24px -8px #22c55e2e;animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.lesson-complete.done{background:linear-gradient(180deg,#ffffffeb,#ecfdf3d1);border-color:#22c55e66;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000008,0 1px 2px #0000000a,0 14px 36px -10px #22c55e40}.lesson-complete-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.lesson-complete-eyebrow{font-family:var(--type-sans);font-size:12px;font-weight:700;color:#16a34a;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.lesson-complete.done .lesson-complete-eyebrow{color:#16a34a}.lesson-complete-title{font-family:var(--type-sans);font-size:18px;font-weight:600;color:#1c1c1e;letter-spacing:-.012em;line-height:1.35}.lesson-complete-sub{font-family:var(--type-sans);font-size:13.5px;line-height:1.5;color:#1c1c1e9e;margin-top:2px;font-weight:500}.lesson-complete-cta{font-family:var(--type-sans);font-size:14.5px;font-weight:600;color:#fff;background:linear-gradient(180deg,#4ade80,#22c55e);border:.5px solid rgba(255,255,255,.18);padding:12px 24px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;flex-shrink:0;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1);box-shadow:inset 0 1px #ffffff52,inset 0 -.5px #0000001a,0 1px 2px #0000001a,0 8px 22px -4px #22c55e73,0 14px 36px -10px #22c55e59}.lesson-complete-cta:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff6,inset 0 -.5px #0000001a,0 2px 4px #0000001a,0 12px 28px -4px #22c55e8c,0 20px 44px -10px #22c55e66}.lesson-complete-cta:active{transform:translateY(0) scale(.985);transition-duration:.08s}.lesson-complete-undo{font-family:var(--type-sans);font-size:13px;font-weight:600;color:#1c1c1eb3;background:linear-gradient(180deg,#ffffffd9,#faf7f2a6);border:.5px solid rgba(0,0,0,.1);padding:9px 16px;border-radius:9999px;cursor:pointer;flex-shrink:0;box-shadow:inset 0 1px #fffffff2,inset 0 -.5px #00000005,0 1px 1.5px #0000000a,0 4px 12px -6px #0000000f;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s cubic-bezier(.32,.72,0,1),background .18s ease,color .18s ease}.lesson-complete-undo:hover{color:#1c1c1e;background:linear-gradient(180deg,#fff,#fcfaf4e0);border-color:#00000029;transform:translateY(-.5px);box-shadow:inset 0 1px #fff,0 2px 3px #0000000d,0 8px 18px -6px #0000001a}.lesson-complete-undo:active{transform:translateY(0) scale(.985);transition-duration:.08s}.lesson-complete-link{position:relative;color:#a855f7;font-weight:600}.lesson-complete-link{font-family:inherit;font-size:inherit;font-weight:600;color:var(--action-blue,#0066cc);background:transparent;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:opacity .16s}.lesson-complete-link:hover{opacity:.75}body[data-theme=dark] .lesson-complete{background:linear-gradient(135deg,#00d9920f,#00d99205);border-color:#00d99252}body[data-theme=dark] .lesson-complete.done{background:linear-gradient(135deg,#00d99214,#00d99205)}body[data-theme=dark] .lesson-complete-cta{color:#0a0a0a;background:#00d992;box-shadow:0 4px 14px #00d9924d}body[data-theme=dark] .lesson-complete-cta:hover{box-shadow:0 6px 18px #00d99273}@media (max-width:760px){.lesson-complete{flex-direction:column;align-items:stretch;gap:16px;padding:20px}.lesson-complete-cta{width:100%;text-align:center}}.quiz{display:flex;flex-direction:column;gap:24px;animation:fadeUp .24s ease-out}.quiz-head{display:flex;flex-direction:column;gap:6px;padding-bottom:18px;border-bottom:1px solid var(--hairline)}.quiz-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.1em;text-transform:uppercase}.quiz-title{font-family:var(--type-sans);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.018em;line-height:1.3;margin:0}.quiz-prev-badge{display:inline-flex;align-self:flex-start;font-family:var(--type-mono);font-size:12px;font-weight:500;padding:6px 12px;border-radius:9999px;margin-top:4px;background:var(--parchment,#f5f5f7);color:var(--ink-2);border:1px solid var(--hairline)}.quiz-prev-badge.passed{background:#22c55e14;color:#16a34a;border-color:#22c55e47}.quiz-prev-badge.failed{background:#dc26260f;color:#dc2626;border-color:#dc26263d}.quiz-questions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px}.quiz-question{display:flex;flex-direction:column;gap:12px}.quiz-q-text{font-family:var(--type-sans);font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.011em;line-height:1.45}.quiz-q-num{font-family:var(--type-mono);font-weight:700;color:var(--action-blue,#0066cc);margin-inline-end:6px}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;width:100%;text-align:start;display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--paper,#fff);border:1.5px solid var(--hairline);border-radius:var(--r-3,12px);cursor:pointer;transition:all .16s cubic-bezier(.32,.72,0,1)}.quiz-option:hover:not(:disabled){border-color:#0066cc59}.quiz-option:disabled{cursor:default}.quiz-option.picked{background:#0066cc0a;border-color:var(--action-blue,#0066cc);box-shadow:0 0 0 3px #0066cc1f}.quiz-option.correct{background:#22c55e0f;border-color:#16a34a;box-shadow:0 0 0 3px #22c55e24}.quiz-option.wrong{background:#dc26260a;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.quiz-option-bullet{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--parchment,#f5f5f7);border:1.5px solid var(--hairline);font-family:var(--type-mono);font-size:13px;font-weight:600;color:var(--muted);transition:all .16s}.quiz-option.picked .quiz-option-bullet{background:var(--action-blue,#0066cc);color:#fff;border-color:var(--action-blue,#0066cc)}.quiz-option.correct .quiz-option-bullet{background:#16a34a;color:#fff;border-color:#16a34a}.quiz-option.wrong .quiz-option-bullet{background:#dc2626;color:#fff;border-color:#dc2626}.quiz-option-text{font-size:15px;line-height:1.45;color:var(--ink);letter-spacing:-.005em}.quiz-explain{margin-top:6px;padding:12px 16px;font-size:14px;line-height:1.55;color:var(--ink-2);border-radius:var(--r-2,10px);background:var(--parchment,#f5f5f7);border-inline-start:3px solid var(--hairline)}.quiz-explain.right{background:#22c55e0a;border-inline-start-color:#16a34a}.quiz-explain.wrong{background:#dc26260a;border-inline-start-color:#dc2626}.quiz-explain strong{color:var(--ink);font-weight:600}.quiz-foot{display:flex;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--hairline);gap:16px}.quiz-foot-meta{font-family:var(--type-mono);font-size:12px;color:var(--muted);letter-spacing:.04em}.quiz-submit{font-family:var(--type-sans);font-size:14.5px;font-weight:600;color:#fff;background:var(--action-blue,#0066cc);border:none;padding:11px 22px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;transition:transform .12s,box-shadow .16s,opacity .16s;box-shadow:0 4px 14px #0066cc40}.quiz-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #0066cc59}.quiz-submit:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.quiz-result{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:8px;padding:24px 28px;border-radius:var(--r-3,16px);background:linear-gradient(135deg,#0066cc0f,#0066cc05);border:1px solid rgba(0,102,204,.22);animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.quiz-result.passed{background:linear-gradient(135deg,#22c55e14,#22c55e05);border-color:#22c55e52}.quiz-result.failed{background:linear-gradient(135deg,#dc26260f,#dc262605);border-color:#dc262652}.quiz-result-text{display:flex;flex-direction:column;gap:4px;flex:1}.quiz-result-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.1em;text-transform:uppercase}.quiz-result.passed .quiz-result-eyebrow{color:#16a34a}.quiz-result.failed .quiz-result-eyebrow{color:#dc2626}.quiz-result-title{font-family:var(--type-sans);font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-.012em}.quiz-result-sub{font-family:var(--type-sans);font-size:13.5px;line-height:1.5;color:var(--muted);margin-top:2px}.quiz-retry{font-family:var(--type-sans);font-size:13.5px;font-weight:500;color:var(--ink-2);background:var(--paper,#fff);border:1px solid var(--hairline);padding:10px 18px;border-radius:9999px;cursor:pointer;flex-shrink:0;transition:all .16s}.quiz-retry:hover{border-color:#0000002e;color:var(--ink)}.lesson-complete.locked{background:linear-gradient(135deg,#eab3080f,#eab30805);border-color:#eab30852}.lesson-complete.locked .lesson-complete-eyebrow{color:#a16207}.lesson-complete.locked .lesson-complete-cta{background:#a16207;box-shadow:0 4px 14px #a1620740}.lesson-complete.locked .lesson-complete-cta:hover{box-shadow:0 6px 18px #a1620759}body[data-theme=dark] .quiz-option{background:#101010;border-color:#3d3a39}body[data-theme=dark] .quiz-option:hover:not(:disabled){border-color:#00d99266}body[data-theme=dark] .quiz-option.picked{background:#00d9920f;border-color:#00d992;box-shadow:0 0 0 3px #00d99229}body[data-theme=dark] .quiz-option.picked .quiz-option-bullet{background:#00d992;color:#0a0a0a;border-color:#00d992}body[data-theme=dark] .quiz-result{background:linear-gradient(135deg,#00d99214,#00d99205);border-color:#00d99252}body[data-theme=dark] .quiz-result-eyebrow{color:#00d992}body[data-theme=dark] .quiz-submit{color:#0a0a0a;background:#00d992;box-shadow:0 4px 14px #00d9924d}body[data-theme=dark] .quiz-submit:hover:not(:disabled){box-shadow:0 6px 18px #00d99273}body[data-theme=dark] .lesson-complete.locked{background:linear-gradient(135deg,#eab3081a,#eab30808)}@media (max-width:760px){.quiz-result{flex-direction:column;align-items:stretch;gap:14px;padding:20px}.quiz-retry{width:100%;text-align:center}.quiz-foot{flex-direction:column;align-items:stretch;gap:12px}.quiz-submit{width:100%}}.cert-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px;display:flex;flex-direction:column;gap:24px;animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.cert-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.cert-actions .btn-primary{font-family:var(--type-sans);font-size:14px;font-weight:600;color:#fff;background:var(--action-blue,#0066cc);border:none;padding:11px 22px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;box-shadow:0 4px 14px #0066cc40;transition:transform .12s,box-shadow .16s}.cert-actions .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0066cc59}.cert-progress-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px;border-radius:var(--r-3,14px);background:linear-gradient(135deg,#eab3080f,#eab30805);border:1px solid rgba(234,179,8,.32)}.cert-progress-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.cert-progress-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:#a16207;letter-spacing:.1em;text-transform:uppercase}.cert-progress-sub{font-family:var(--type-sans);font-size:13.5px;color:var(--ink-2);line-height:1.5}.cert-progress-bar{width:160px;height:8px;flex-shrink:0;background:#0000000f;border-radius:9999px;overflow:hidden}.cert-progress-fill{height:100%;background:linear-gradient(90deg,#a16207,#d97706);border-radius:9999px;transition:width .4s cubic-bezier(.32,.72,0,1)}.cert{position:relative;background:#fff;color:#1d1d1f;border:1px solid var(--hairline);border-radius:var(--r-3,14px);padding:64px 72px 48px;display:flex;flex-direction:column;gap:24px;box-shadow:0 24px 60px #00000014,0 4px 12px #0000000a;font-family:var(--type-sans);background-image:repeating-linear-gradient(135deg,rgba(0,102,204,.014) 0 1px,transparent 1px 12px),radial-gradient(circle at 50% 50%,rgba(0,102,204,.015),transparent 70%)}.cert.draft{opacity:.92}.cert.draft:before{content:"טיוטה · DRAFT";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-22deg);font-family:var(--type-mono);font-size:88px;font-weight:700;color:#a162071f;letter-spacing:.1em;pointer-events:none;white-space:nowrap;z-index:0}.cert>*{position:relative;z-index:1}.cert-corner{position:absolute;width:64px;height:64px;border-color:var(--action-blue,#0066cc);border-style:solid;border-width:0;pointer-events:none}.cert-corner-tl{top:18px;right:18px;border-top-width:3px;border-right-width:3px;border-top-right-radius:8px}.cert-corner-tr{top:18px;left:18px;border-top-width:3px;border-left-width:3px;border-top-left-radius:8px}.cert-corner-bl{bottom:18px;right:18px;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:8px}.cert-corner-br{bottom:18px;left:18px;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:8px}.cert-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.cert-brand{display:flex;align-items:center;gap:10px}.cert-brand-mark{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:conic-gradient(from 220deg,#ff8fb1,#ffb56b,#ffe48a,#c0f08a,#80f5c9,#6ce3ff,#c8b5ff,#ff8fb1);position:relative}.cert-brand-mark:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:#fff}.cert-brand-name{font-family:var(--type-sans);font-size:20px;font-weight:700;color:#1d1d1f;letter-spacing:-.025em}.cert-brand-accent{color:#80f5c9}.cert-meta{display:flex;flex-direction:column;gap:2px;text-align:left;font-family:var(--type-mono);font-size:11px;color:#65676b;letter-spacing:.04em}.cert-eyebrow{font-family:var(--type-mono);font-size:12px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.18em;text-transform:uppercase;margin-top:24px}.cert-title{font-family:var(--type-sans);font-size:24px;font-weight:500;color:#5d6c7b;letter-spacing:-.012em;margin:0}.cert-name{font-family:var(--type-sans);font-size:56px;font-weight:700;color:#1d1d1f;letter-spacing:-.028em;line-height:1.1;margin:8px 0 16px;border-bottom:2px solid rgba(0,102,204,.18);padding-bottom:18px}.cert-body{font-family:var(--type-sans);font-size:18px;line-height:1.6;color:#1d1d1f;letter-spacing:-.005em;margin:0;max-width:64ch}.cert-body strong{font-weight:700;color:var(--action-blue,#0066cc)}.cert-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:24px 0;border-top:1px solid rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.08);margin:8px 0}.cert-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.cert-stat-value{font-family:var(--type-sans);font-size:36px;font-weight:700;color:var(--action-blue,#0066cc);letter-spacing:-.022em;line-height:1;direction:ltr}.cert-stat-label{font-family:var(--type-mono);font-size:11px;color:#65676b;letter-spacing:.06em;text-transform:uppercase}.cert-foot{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-top:16px;padding-top:8px}.cert-sign,.cert-date-block,.cert-code{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.cert-sign-name,.cert-date{font-family:var(--type-sans);font-size:18px;font-weight:600;color:#1d1d1f;letter-spacing:-.012em}.cert-sign-line,.cert-date-line{width:80%;height:1px;background:#00000052;margin:4px 0}.cert-sign-role,.cert-date-label{font-family:var(--type-mono);font-size:11px;color:#65676b;letter-spacing:.06em;text-transform:uppercase}.cert-code{justify-content:center}.cert-code-id{font-family:var(--type-mono);font-size:10px;color:#65676b;letter-spacing:.1em;text-transform:uppercase}.cert-code-value{font-family:var(--type-mono);font-size:13px;font-weight:600;color:#1d1d1f;letter-spacing:.06em;direction:ltr;padding:6px 10px;border:1px solid rgba(0,0,0,.16);border-radius:6px;background:#fafafa}.cert-cta-btn{font-family:var(--type-sans);font-size:14px;font-weight:600;color:#fff;background:var(--action-blue,#0066cc);border:none;padding:10px 18px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;flex-shrink:0;transition:transform .12s,box-shadow .16s;box-shadow:0 4px 14px #0066cc38}.cert-cta-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0066cc52}body[data-theme=dark] .cert{background:#fafafa}body[data-theme=dark] .cert-progress-banner{background:linear-gradient(135deg,#eab3081a,#eab30808)}@media print{body,body[data-theme=light],body[data-theme=dark]{background:#fff!important;color:#1d1d1f!important}.side,.topbar,.no-print,.lesson-aside{display:none!important}.main,.app{display:block!important;background:#fff!important;overflow:visible!important;height:auto!important}.cert-page{padding:0;max-width:none;margin:0}.cert{border:none!important;box-shadow:none!important;page-break-inside:avoid;padding:32px 48px}.cert-corner{border-color:#06c!important}@page{size:A4 landscape;margin:12mm}}@media (max-width:760px){.cert{padding:36px 24px}.cert-name{font-size:36px}.cert-stats{grid-template-columns:repeat(2,1fr);gap:12px}.cert-stat-value{font-size:28px}.cert-foot{grid-template-columns:1fr;gap:24px}.cert-progress-banner{flex-direction:column;align-items:stretch}.cert-progress-bar{width:100%}}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding-top:8px}.badge-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-3,14px);text-align:center;transition:all .2s cubic-bezier(.32,.72,0,1)}.badge-card.earned{background:linear-gradient(135deg,#0066cc0a,#0066cc03);border-color:#0066cc4d;box-shadow:0 4px 14px #0066cc14}.badge-card.earned:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0066cc29}.badge-card.locked{opacity:.55}.badge-emoji{font-size:36px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.08))}.badge-card.earned .badge-emoji{animation:badge-pop .6s cubic-bezier(.32,.72,0,1)}@keyframes badge-pop{0%{transform:scale(.7) rotate(-10deg)}50%{transform:scale(1.18) rotate(8deg)}to{transform:scale(1) rotate(0)}}.badge-label{font-family:var(--type-sans);font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.011em;line-height:1.3;margin-top:6px}.badge-desc{font-family:var(--type-sans);font-size:12px;line-height:1.45;color:var(--muted);letter-spacing:-.005em}body[data-theme=dark] .badge-card.earned{background:linear-gradient(135deg,#00d9920f,#00d99203);border-color:#00d99252;box-shadow:0 4px 14px #00d9921a}body[data-theme=dark] .badge-card.earned:hover{box-shadow:0 8px 22px #00d99233}@media (max-width:760px){.badges-grid{grid-template-columns:repeat(2,1fr)}}.notes{display:flex;flex-direction:column;gap:18px;animation:fadeUp .24s ease-out}.notes-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--hairline)}.notes-head-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.notes-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.1em;text-transform:uppercase}.notes-title{font-family:var(--type-sans);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.018em;line-height:1.3;margin:2px 0 0}.notes-sub{font-family:var(--type-sans);font-size:13px;color:var(--muted);margin-top:4px}.notes-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.notes-stamp-btn{font-family:var(--type-sans);font-size:13px;font-weight:500;color:var(--action-blue,#0066cc);background:var(--paper,#fff);border:1px solid rgba(0,102,204,.32);padding:8px 14px;border-radius:9999px;cursor:pointer;transition:all .16s}.notes-stamp-btn:hover{background:#0066cc0f;border-color:var(--action-blue,#0066cc)}.notes-status{font-family:var(--type-mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--muted);transition:color .2s}.notes-status.saved{color:#16a34a}.notes-status.saving{color:var(--action-blue,#0066cc)}.notes-status.typing{color:#a16207}.notes-textarea{width:100%;min-height:340px;resize:vertical;font-family:var(--type-sans);font-size:15px;line-height:1.65;color:var(--ink);background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-3,12px);padding:18px 22px;letter-spacing:-.005em;transition:border-color .16s,box-shadow .16s}.notes-textarea:focus{outline:none;border-color:var(--action-blue,#0066cc);box-shadow:0 0 0 3px #0066cc1f}.notes-textarea::placeholder{color:var(--muted);font-style:italic;line-height:1.6}.notes-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}.notes-tip{font-family:var(--type-sans);font-size:13px;color:var(--muted);letter-spacing:-.005em}body[data-theme=dark] .notes-textarea{background:#101010;border-color:#3d3a39}body[data-theme=dark] .notes-textarea:focus{border-color:#00d992;box-shadow:0 0 0 3px #00d99229}body[data-theme=dark] .notes-stamp-btn{color:#00d992;background:#101010;border-color:#00d99252}body[data-theme=dark] .notes-stamp-btn:hover{background:#00d9920f;border-color:#00d992}@media (max-width:760px){.notes-head{flex-direction:column;align-items:stretch}.notes-actions{justify-content:space-between}.notes-textarea{min-height:280px;padding:14px 16px}}.welcome-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0a0c108c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.welcome-card{position:relative;width:100%;max-width:540px;background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:24px;padding:48px 40px 32px;box-shadow:0 32px 80px #00000040,0 8px 24px #0000001f;display:flex;flex-direction:column;align-items:center;text-align:center;animation:welcome-pop .38s cubic-bezier(.32,.72,0,1)}@keyframes welcome-pop{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:none}}.welcome-skip{position:absolute;top:14px;left:14px;font-family:var(--type-sans);font-size:12px;font-weight:500;color:var(--muted);background:transparent;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;transition:color .16s,background .16s}.welcome-skip:hover{color:var(--ink);background:var(--hairline-2,rgba(0,0,0,.04))}.welcome-emoji{font-size:64px;line-height:1;filter:drop-shadow(0 4px 14px rgba(0,0,0,.15));margin-bottom:8px}.welcome-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.14em;text-transform:uppercase}.welcome-title{font-family:var(--type-sans);font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.022em;line-height:1.25;margin:8px 0 12px;max-width:38ch}.welcome-body{font-family:var(--type-sans);font-size:16px;line-height:1.55;color:var(--ink-2);letter-spacing:-.005em;max-width:42ch;margin:0}.welcome-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;margin-top:32px;padding-top:20px;border-top:1px solid var(--hairline)}.welcome-dots{display:flex;gap:8px}.welcome-dot{width:8px;height:8px;border-radius:50%;background:var(--hairline);transition:all .2s}.welcome-dot.done{background:#06c6}.welcome-dot.active{background:var(--action-blue,#0066cc);width:22px;border-radius:9999px}.welcome-next{font-family:var(--type-sans);font-size:14.5px;font-weight:600;color:#fff;background:var(--action-blue,#0066cc);border:none;padding:11px 20px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;transition:transform .12s,box-shadow .16s;box-shadow:0 4px 14px #0066cc40}.welcome-next:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0066cc59}body[data-theme=dark] .welcome-overlay{background:#000000b3}body[data-theme=dark] .welcome-card{background:#101010;border-color:#3d3a39}body[data-theme=dark] .welcome-eyebrow{color:#00d992}body[data-theme=dark] .welcome-dot.active{background:#00d992}body[data-theme=dark] .welcome-dot.done{background:#00d99266}body[data-theme=dark] .welcome-next{color:#0a0a0a;background:#00d992;box-shadow:0 4px 14px #00d9924d}body[data-theme=dark] .welcome-next:hover{box-shadow:0 6px 18px #00d99273}@media (max-width:760px){.welcome-card{padding:36px 24px 24px}.welcome-title{font-size:22px}.welcome-body{font-size:14.5px}.welcome-emoji{font-size:48px}.welcome-foot{flex-direction:column-reverse;gap:16px}.welcome-next{width:100%}}.arena-page{max-width:1280px;margin:0 auto;padding:32px 32px 80px;display:flex;flex-direction:column;gap:32px;animation:fadeUp .28s cubic-bezier(.32,.72,0,1)}.arena-hero{display:flex;flex-direction:column;gap:12px;padding-bottom:24px;border-bottom:1px solid var(--hairline)}.arena-eyebrow{font-family:var(--type-mono);font-size:12px;font-weight:600;color:var(--action-blue,#0066cc);letter-spacing:.16em;text-transform:uppercase}.arena-title{font-family:var(--type-sans);font-size:42px;font-weight:700;color:var(--ink);letter-spacing:-.028em;line-height:1.1;margin:6px 0 0}.arena-title em{font-style:italic;color:var(--action-blue,#0066cc);font-weight:600}.arena-sub{font-family:var(--type-sans);font-size:16px;line-height:1.55;color:var(--ink-2);margin:8px 0 0;max-width:64ch;letter-spacing:-.005em}.arena-stats{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px}.arena-stat{display:flex;flex-direction:column;gap:2px;padding:14px 22px;background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-3,12px);min-width:140px}.arena-stat-value{font-family:var(--type-sans);font-size:28px;font-weight:700;color:var(--m-color, var(--action-blue,#0066cc));letter-spacing:-.022em;line-height:1;direction:ltr}.arena-stat-label{font-family:var(--type-mono);font-size:11px;color:var(--muted);letter-spacing:.06em}.arena-input-block{display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--paper,#fff);border:1px solid var(--hairline);border-radius:var(--r-3,16px)}.arena-label{font-family:var(--type-mono);font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.arena-textarea{width:100%;resize:vertical;min-height:90px;font-family:var(--type-sans);font-size:16px;line-height:1.55;color:var(--ink);background:var(--parchment,#f5f5f7);border:1px solid var(--hairline);border-radius:var(--r-2,10px);padding:14px 18px}.arena-textarea:focus{outline:none;border-color:var(--action-blue,#0066cc);box-shadow:0 0 0 3px #0066cc24}.arena-warn{font-family:var(--type-sans);font-size:13.5px;line-height:1.5;color:#a16207;background:linear-gradient(135deg,#eab3080f,#eab30805);border:1px solid rgba(234,179,8,.32);border-radius:var(--r-2,10px);padding:12px 16px}.arena-starters{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.arena-starters-label{font-family:var(--type-mono);font-size:11px;color:var(--muted);letter-spacing:.06em}.arena-starter{font-family:var(--type-sans);font-size:13px;font-weight:500;color:var(--ink-2);background:var(--parchment,#f5f5f7);border:1px solid var(--hairline);padding:7px 12px;border-radius:9999px;cursor:pointer;transition:all .16s;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-starter:hover{border-color:#0066cc59;color:var(--ink)}.arena-starter.active{background:#0066cc0f;border-color:var(--action-blue,#0066cc);color:var(--action-blue,#0066cc)}.arena-actions{display:flex;gap:12px;align-items:center;margin-top:4px}.arena-run{font-family:var(--type-sans);font-size:14.5px;font-weight:600;color:#fff;background:var(--action-blue,#0066cc);border:none;padding:12px 24px;border-radius:9999px;cursor:pointer;letter-spacing:-.005em;transition:transform .12s,box-shadow .16s,opacity .16s;box-shadow:0 4px 14px #0066cc40}.arena-run:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #0066cc59}.arena-run:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.arena-reset{font-family:var(--type-sans);font-size:13.5px;font-weight:500;color:var(--muted);background:transparent;border:1px solid var(--hairline);padding:10px 16px;border-radius:9999px;cursor:pointer;transition:all .16s}.arena-reset:hover{color:var(--ink);border-color:#0000002e}.arena-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.arena-card{display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--paper,#fff);border:2px solid var(--hairline);border-radius:var(--r-3,16px);transition:all .24s cubic-bezier(.32,.72,0,1)}.arena-card.winner{border-color:var(--m-color);box-shadow:0 0 0 4px #0000000a,0 16px 36px #00000014;transform:translateY(-4px)}.arena-card.lost{opacity:.55}.arena-card-head{display:flex;align-items:center;gap:10px}.arena-vendor-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.arena-card-id{display:flex;flex-direction:column;gap:0;flex:1}.arena-card-id strong{font-family:var(--type-sans);font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.012em}.arena-card-id span{font-family:var(--type-mono);font-size:11px;color:var(--muted);letter-spacing:.06em}.arena-winner-badge{font-family:var(--type-sans);font-size:11px;font-weight:600;color:#fff;background:var(--m-color);padding:4px 10px;border-radius:9999px;letter-spacing:.04em}.arena-response{font-family:var(--type-sans);font-size:14.5px;line-height:1.6;color:var(--ink);letter-spacing:-.005em;white-space:pre-wrap;margin:0;flex:1}.arena-pick-btn{font-family:var(--type-sans);font-size:13.5px;font-weight:600;color:var(--m-color);background:transparent;border:1.5px solid var(--m-color);padding:9px 16px;border-radius:9999px;cursor:pointer;transition:all .16s}.arena-pick-btn:hover{background:var(--m-color);color:#fff}.arena-result-banner{display:flex;flex-direction:column;gap:6px;padding:18px 24px;background:linear-gradient(135deg,#22c55e0f,#22c55e05);border:1px solid rgba(34,197,94,.32);border-radius:var(--r-3,12px)}.arena-result-eyebrow{font-family:var(--type-mono);font-size:11px;font-weight:600;color:#16a34a;letter-spacing:.1em;text-transform:uppercase}.arena-result-text{font-family:var(--type-sans);font-size:14.5px;line-height:1.55;color:var(--ink);letter-spacing:-.005em}.arena-foot{padding-top:16px;border-top:1px solid var(--hairline)}body[data-theme=dark] .arena-card,body[data-theme=dark] .arena-input-block{background:#101010;border-color:#3d3a39}body[data-theme=dark] .arena-textarea{background:#0a0a0a;border-color:#3d3a39}body[data-theme=dark] .arena-stat{background:#101010;border-color:#3d3a39}body[data-theme=dark] .arena-starter{background:#0a0a0a;border-color:#3d3a39;color:#b8b3b0}body[data-theme=dark] .arena-starter.active{background:#00d99214;border-color:#00d992;color:#00d992}body[data-theme=dark] .arena-result-banner{background:linear-gradient(135deg,#00d9920f,#00d99205);border-color:#00d99252}body[data-theme=dark] .arena-result-eyebrow{color:#00d992}@media (max-width:1100px){.arena-grid{grid-template-columns:1fr;gap:14px}}@media (max-width:760px){.arena-page{padding:24px 20px 60px}.arena-title{font-size:30px}.arena-stats{gap:10px}.arena-stat{min-width:120px;padding:12px 16px}.arena-stat-value{font-size:22px}.arena-actions{flex-direction:column;align-items:stretch}.arena-run,.arena-reset{width:100%}}.arena-tab{display:flex;flex-direction:column;gap:18px}.arena-tab-intro{background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1px solid #dbeafe;border-radius:14px;padding:18px 22px}.arena-tab-intro h3{margin:0 0 6px;font-size:17px;font-weight:700;color:#1e3a8a}.arena-tab-intro p{margin:0;font-size:14px;line-height:1.6;color:#475569}.arena-tab-intro p strong{color:#1e40af}.arena-mini-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed #c7d2fe;font-size:13px;color:#475569}.arena-mini-stats span strong{font-size:16px;font-weight:700;margin-inline-end:4px}.practice-tab{display:flex;flex-direction:column;gap:18px}.practice-tab-intro{background:linear-gradient(135deg,#f0fdf4,#ecfeff);border:1px solid #bbf7d0;border-radius:14px;padding:18px 22px}.practice-tab-intro h3{margin:0 0 6px;font-size:17px;font-weight:700;color:#166534}.practice-tab-intro p{margin:0;font-size:14px;line-height:1.6;color:#475569}.practice-tab-intro p strong{color:#15803d}.practice-grades{grid-template-columns:1fr!important}.practice-nav{display:flex;justify-content:space-between;align-items:center;gap:14px}.practice-nav-meta{font-size:13px;color:var(--muted,#6b7280);font-weight:500}[data-theme=dark] .practice-tab-intro,[data-mode=notion] .practice-tab-intro{background:linear-gradient(135deg,#052e16,#022c22);border-color:#14532d}[data-theme=dark] .practice-tab-intro h3,[data-mode=notion] .practice-tab-intro h3{color:#86efac}[data-theme=dark] .practice-tab-intro p,[data-mode=notion] .practice-tab-intro p{color:#cbd5e1}.code-tab{display:flex;flex-direction:column;gap:14px}.code-tab-intro{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1px solid #fde68a;border-radius:14px;padding:18px 22px}.code-tab-intro h3{margin:0 0 6px;font-size:17px;font-weight:700;color:#854d0e}.code-tab-intro p{margin:0;font-size:14px;line-height:1.6;color:#475569}.code-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.code-run{background:#10b981;color:#fff;border:none;padding:10px 22px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s ease,transform .12s ease}.code-run:hover{background:#059669;transform:translateY(-1px)}.code-secondary{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.code-secondary:hover{background:#e2e8f0}.code-status{margin-inline-start:auto;font-size:12px;font-weight:600}.code-status.saved{color:#16a34a}.code-status.saving{color:#3b82f6}.code-status.typing{color:#ea580c}.code-editor-block,.code-preview-block{display:flex;flex-direction:column;border:1px solid var(--border,#e5e7eb);border-radius:12px;overflow:hidden;background:var(--card-bg,#fff)}.code-pane-label{background:#0f172a;color:#94a3b8;padding:8px 14px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.code-editor{width:100%;min-height:280px;border:none;outline:none;padding:14px 16px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.55;background:#fafafa;color:#111;resize:vertical;-moz-tab-size:2;tab-size:2}.code-editor:focus{background:#fff}.code-preview{width:100%;height:380px;border:none;background:#fff}[data-theme=dark] .code-tab-intro,[data-mode=notion] .code-tab-intro{background:linear-gradient(135deg,#422006,#451a03);border-color:#92400e}[data-theme=dark] .code-tab-intro h3,[data-mode=notion] .code-tab-intro h3{color:#fde68a}[data-theme=dark] .code-tab-intro p,[data-mode=notion] .code-tab-intro p{color:#cbd5e1}[data-theme=dark] .code-editor-block,[data-mode=notion] .code-editor-block,[data-theme=dark] .code-preview-block,[data-mode=notion] .code-preview-block{background:#1a1a1a;border-color:#333}[data-theme=dark] .code-editor,[data-mode=notion] .code-editor{background:#0f0f0f;color:#f5f5f5}[data-theme=dark] .code-editor:focus,[data-mode=notion] .code-editor:focus{background:#171717}[data-theme=dark] .code-secondary,[data-mode=notion] .code-secondary{background:#262626;color:#e5e5e5;border-color:#404040}[data-theme=dark] .code-secondary:hover,[data-mode=notion] .code-secondary:hover{background:#404040}@media (max-width: 720px){.code-editor{min-height:220px;font-size:12px}.code-preview{height:300px}.code-actions{flex-wrap:wrap}.code-status{margin-inline-start:0;width:100%;text-align:start}}[data-theme=dark] .arena-tab-intro,[data-mode=notion] .arena-tab-intro{background:linear-gradient(135deg,#0f172a,#1e1b4b);border-color:#334155}[data-theme=dark] .arena-tab-intro h3,[data-mode=notion] .arena-tab-intro h3{color:#bfdbfe}[data-theme=dark] .arena-tab-intro p,[data-mode=notion] .arena-tab-intro p{color:#cbd5e1}.review-card-wrap{display:flex;flex-direction:column;gap:18px}.review-progress{display:flex;align-items:center;gap:14px}.review-progress-bar{flex:1;height:6px;background:var(--border,#e5e7eb);border-radius:999px;overflow:hidden}.review-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:999px;transition:width .35s ease}.review-progress-text{font-size:13px;color:var(--muted,#6b7280);font-weight:500;white-space:nowrap}.review-card{background:var(--card-bg,#fff);border:1px solid var(--border,#e5e7eb);border-radius:20px;padding:32px 36px;box-shadow:0 8px 28px #0000000f;transition:box-shadow .25s ease,transform .25s ease;min-height:340px;display:flex;flex-direction:column}.review-card.flash-good{animation:review-flash-blue .55s ease}@keyframes review-flash-blue{0%{box-shadow:0 0 #3b82f673}to{box-shadow:0 8px 28px #0000000f}}.review-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:14px;border-bottom:1px dashed var(--border,#e5e7eb)}.review-card-tag{background:#eff6ff;color:#1e40af;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:700}.review-card-lesson{color:var(--muted,#6b7280);font-size:13px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-card-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}.review-card-badge.mature{background:#dcfce7;color:#166534}.review-card-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:24px}.review-card-q{font-size:24px;font-weight:600;line-height:1.5;color:var(--text,#111);text-align:start}.review-card-grades{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border,#e5e7eb)}.review-grade{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-radius:12px;border:1.5px solid transparent;cursor:pointer;font-weight:600;font-size:14px;transition:transform .12s ease,background .18s ease,border-color .18s ease;background:#f9fafb}.review-grade:hover{transform:translateY(-2px)}.review-grade-emoji{font-size:22px;line-height:1}.review-grade-label{font-weight:700}.review-grade.tone-hard{background:#fff7ed;color:#9a3412}.review-grade.tone-hard:hover{border-color:#f97316}.review-grade.tone-easy{background:#f0fdf4;color:#14532d}.review-grade.tone-easy:hover{border-color:#22c55e}.review-empty{text-align:center;padding:60px 24px;background:var(--card-bg,#fff);border:1px dashed var(--border,#e5e7eb);border-radius:20px}.review-empty-emoji{font-size:64px;margin-bottom:16px}.review-empty h2{margin:0 0 12px;font-size:26px}.review-empty p{margin:0 auto 28px;max-width:420px;color:var(--muted,#6b7280);line-height:1.6}.review-empty-actions{display:flex;gap:12px;justify-content:center;margin-bottom:36px;flex-wrap:wrap}[data-theme=dark] .review-card,[data-mode=notion] .review-card{background:#1a1a1a;border-color:#333;box-shadow:0 8px 28px #0006}[data-theme=dark] .review-card-q,[data-mode=notion] .review-card-q{color:#f5f5f5}[data-theme=dark] .review-grade,[data-mode=notion] .review-grade{background:#262626}[data-theme=dark] .review-empty,[data-mode=notion] .review-empty{background:#1a1a1a;border-color:#333}@media (max-width: 720px){.review-card{padding:24px 20px;min-height:260px}.review-card-q{font-size:20px}.review-card-grades{grid-template-columns:repeat(2,1fr)}}.marvis-stage-orb{position:absolute;left:50%;top:50%;width:520px;height:520px;transform:translate(-50%,-50%);z-index:1;pointer-events:none;display:flex;align-items:center;justify-content:center}.marvis-stage-orb-glow{position:absolute;top:-100px;right:-100px;bottom:-100px;left:-100px;border-radius:50%;background:radial-gradient(circle,rgba(123,108,255,.45) 0%,rgba(110,212,255,.18) 40%,transparent 70%);filter:blur(28px);animation:marvis-orb-breathe-slow 5s ease-in-out infinite}.marvis-stage-orb-core{position:relative;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0e6ff,#c5b8ff 18%,#8a78ff 45%,#5841d8 75%,#2a1a70);box-shadow:0 0 0 1px #ffffff2e,0 0 48px #8a78ffb3,0 0 120px #4a3bd199,0 0 200px #6ed4ff59,inset 0 -16px 32px #140c3c8c,inset 0 8px 18px #ffffff26;animation:marvis-orb-breathe-slow 5s ease-in-out infinite}.marvis-stage-orb-ring{position:absolute;border-radius:50%;border:1px solid rgba(160,140,255,.22);pointer-events:none}.marvis-stage-orb-ring.r1{top:-30px;right:-30px;bottom:-30px;left:-30px;animation:marvis-stage-ring 8s linear infinite}.marvis-stage-orb-ring.r2{top:-80px;right:-80px;bottom:-80px;left:-80px;border-color:#6ed4ff2e;animation:marvis-stage-ring 12s linear infinite reverse}.marvis-stage-orb-ring.r3{top:-140px;right:-140px;bottom:-140px;left:-140px;border-color:#a08cff1a;animation:marvis-stage-ring 16s linear infinite}@keyframes marvis-stage-ring{0%{transform:rotate(0) scale(1)}to{transform:rotate(360deg) scale(1.02)}}@keyframes marvis-orb-breathe-slow{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.04);filter:brightness(1.08)}}.marvis-stage.phase-waking .marvis-stage-orb-core{animation:marvis-orb-wake 1.4s cubic-bezier(.16,1,.3,1) forwards}.marvis-stage.phase-waking .marvis-stage-orb-glow{animation:marvis-orb-glow-wake 1.4s cubic-bezier(.16,1,.3,1) forwards}@keyframes marvis-orb-wake{0%{transform:scale(1);filter:brightness(1)}60%{transform:scale(1.18);filter:brightness(1.35) saturate(1.2)}to{transform:scale(1.1);filter:brightness(1.18) saturate(1.1)}}@keyframes marvis-orb-glow-wake{0%{opacity:1;filter:blur(28px)}60%{opacity:1;filter:blur(48px)}to{opacity:1;filter:blur(38px)}}.marvis-stage.phase-waking .login-content,.marvis-stage.phase-waking .marvis-badge{animation:marvis-form-fade 1s ease forwards}@keyframes marvis-form-fade{to{opacity:0;transform:translateY(-6px)}}.marvis-stage.phase-speaking .marvis-stage-orb-core{animation:marvis-orb-pulse-speak 1.6s ease-in-out infinite}@keyframes marvis-orb-pulse-speak{0%,to{transform:scale(1.1);filter:brightness(1.18)}50%{transform:scale(1.18);filter:brightness(1.35) saturate(1.15)}}.marvis-stage-speak{position:relative;z-index:3;max-width:560px;padding:0 24px;text-align:center;margin-top:300px;animation:marvis-speak-in .6s cubic-bezier(.16,1,.3,1) both}@keyframes marvis-speak-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.marvis-stage-hello{font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:clamp(32px,5vw,48px);font-weight:500;color:#f4f0ff;margin:0 0 18px;letter-spacing:-.5px;text-shadow:0 4px 24px rgba(120,90,255,.5)}.marvis-stage-line{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:clamp(16px,1.6vw,20px);line-height:1.7;color:#dcd2ffeb;margin:0 auto;min-height:3.5em;direction:rtl;text-shadow:0 2px 14px rgba(0,0,0,.6)}.marvis-stage.phase-exiting{animation:marvis-stage-fade .6s ease forwards}@keyframes marvis-stage-fade{to{opacity:0}}@media (max-width: 720px){.marvis-stage-orb{width:360px;height:360px}.marvis-stage-orb-core{width:130px;height:130px}.marvis-stage-orb-ring.r1{top:-20px;right:-20px;bottom:-20px;left:-20px}.marvis-stage-orb-ring.r2{top:-55px;right:-55px;bottom:-55px;left:-55px}.marvis-stage-orb-ring.r3{top:-95px;right:-95px;bottom:-95px;left:-95px}.marvis-stage-speak{margin-top:220px}}@media (max-width: 480px){.marvis-stage-orb{width:280px;height:280px}.marvis-stage-orb-core{width:100px;height:100px}.marvis-stage-speak{margin-top:170px}}.marvis-badge{position:absolute;top:24px;left:50%;transform:translate(-50%);z-index:5;pointer-events:none;display:inline-flex;align-items:center;gap:12px;padding:9px 18px;background:#0e0e16c7;border:1px solid rgba(160,140,255,.22);border-radius:999px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 0 0 1px #ffffff0a,0 12px 36px #785aff2e,inset 0 1px #ffffff0f;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:11px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase}.marvis-badge-dot{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,#a0e8ff,#7b6cff 60%,#4a3bd1);box-shadow:0 0 10px #a0e8ffa6,0 0 22px #7b6cff80;animation:marvis-pulse 2.2s ease-in-out infinite}@keyframes marvis-pulse{0%,to{transform:scale(1);opacity:.95}50%{transform:scale(1.25);opacity:1}}.marvis-badge-name{color:#f4f0ff;letter-spacing:3.2px}.marvis-badge-state{color:#c8beff99;letter-spacing:2.2px;padding-left:10px;border-left:1px solid rgba(200,190,255,.18);margin-left:4px}.marvis-badge-bars{display:inline-flex;align-items:center;gap:3px;margin-left:6px}.marvis-badge-bars i{width:2px;height:8px;border-radius:1px;background:#c8beff61;animation:marvis-bar 1.4s ease-in-out infinite}.marvis-badge-bars i:nth-child(2){animation-delay:.15s}.marvis-badge-bars i:nth-child(3){animation-delay:.3s}.marvis-badge-bars i:nth-child(4){animation-delay:.45s}.marvis-badge-bars i:nth-child(5){animation-delay:.6s}@keyframes marvis-bar{0%,to{height:4px;opacity:.35}50%{height:11px;opacity:.85}}.marvis-greeting-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#2314508c,#080612eb 60%,#04030afa);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:marvis-backdrop-in .38s cubic-bezier(.16,1,.3,1) both;padding:20px}.marvis-greeting-backdrop.leaving{animation:marvis-backdrop-out .38s cubic-bezier(.7,0,.84,0) both}@keyframes marvis-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes marvis-backdrop-out{0%{opacity:1}to{opacity:0}}.marvis-greeting-card{position:relative;width:min(560px,92vw);padding:42px 36px 32px;background:linear-gradient(180deg,#141220f2,#0e0c16f5);border:1px solid rgba(160,140,255,.22);border-radius:24px;box-shadow:0 0 0 1px #ffffff0a,0 30px 80px #3c28a06b,0 0 60px #785aff38,inset 0 1px #ffffff0d;text-align:center;animation:marvis-card-in .52s cubic-bezier(.16,1,.3,1) both 80ms}.marvis-greeting-backdrop.leaving .marvis-greeting-card{animation:marvis-card-out .32s cubic-bezier(.7,0,.84,0) both}@keyframes marvis-card-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes marvis-card-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.98)}}.marvis-greeting-badge{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;margin-bottom:24px;background:#0a0a1499;border:1px solid rgba(160,140,255,.28);border-radius:999px;font-family:system-ui,-apple-system,sans-serif;font-size:10px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase}.marvis-greeting-badge .marvis-badge-name{color:#f4f0ff}.marvis-greeting-badge .marvis-badge-state{color:#86efac;letter-spacing:2px;padding-left:8px;border-left:1px solid rgba(160,140,255,.22)}.marvis-greeting-orb{position:relative;width:96px;height:96px;margin:8px auto 28px}.marvis-orb-core{position:absolute;top:24px;right:24px;bottom:24px;left:24px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#d0e8ff,#8a78ff 45%,#4a3bd1 85%);box-shadow:0 0 0 1px #ffffff2e,0 0 28px #8a78ffa6,0 0 60px #4a3bd18c,inset 0 -8px 16px #140c3c80;animation:marvis-orb-breathe 3s ease-in-out infinite}.marvis-orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(160,140,255,.35);animation:marvis-orb-ring 3s ease-in-out infinite}.marvis-orb-wave{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(160,140,255,.5);animation:marvis-orb-wave 2.4s ease-out infinite}@keyframes marvis-orb-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes marvis-orb-ring{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}@keyframes marvis-orb-wave{0%{opacity:.7;transform:scale(.85)}to{opacity:0;transform:scale(1.5)}}.marvis-greeting-title{font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:32px;font-weight:500;color:#f4f0ff;margin:0 0 14px;letter-spacing:-.3px;text-shadow:0 2px 16px rgba(120,90,255,.3)}.marvis-greeting-text{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.65;color:#dcd2ffd9;margin:0 auto 28px;max-width:440px;min-height:3.3em;direction:rtl}.marvis-cursor{display:inline-block;width:2px;height:1em;background:#a0e8ff;margin-right:3px;vertical-align:text-bottom;animation:marvis-cursor-blink 1s steps(1) infinite}@keyframes marvis-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.marvis-greeting-cta{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;font-weight:600;color:#0a0816;background:linear-gradient(135deg,#c5b8ff,#8a9eff,#6ed4ff);border:none;padding:13px 32px;border-radius:999px;cursor:pointer;letter-spacing:.2px;box-shadow:0 0 0 1px #ffffff40,0 8px 24px #785aff80,0 0 36px #6ed4ff40,inset 0 1px #ffffff8c;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.marvis-greeting-cta:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 0 0 1px #ffffff59,0 10px 30px #785affa6,0 0 48px #6ed4ff66,inset 0 1px #ffffffa6}.marvis-greeting-cta:active{transform:translateY(0)}.marvis-greeting-foot{margin-top:18px;font-size:11px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;color:#b4aadc80}@media (max-width: 520px){.marvis-badge{top:16px;font-size:10px;padding:7px 14px;gap:8px}.marvis-badge-bars{display:none}.marvis-greeting-card{padding:32px 22px 24px;border-radius:20px}.marvis-greeting-title{font-size:26px}.marvis-greeting-text{font-size:15px}.marvis-greeting-orb{width:78px;height:78px;margin-bottom:22px}.marvis-orb-core{top:20px;right:20px;bottom:20px;left:20px}}.demo-shell{background:var(--paper);border:1px solid var(--hairline-2);border-radius:var(--r-3);padding:22px 22px 18px;box-shadow:var(--shadow-soft)}.demo-head{margin-bottom:16px}.demo-eyebrow{display:inline-block;font-size:11px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12));padding:4px 10px;border-radius:999px;margin-bottom:10px}.demo-title{font-size:22px;font-weight:650;letter-spacing:-.02em;color:var(--ink);margin:0 0 6px}.demo-lead{font-size:15px;line-height:1.55;color:var(--ink-3);margin:0;max-width:62ch}.demo-stage{position:relative;background:var(--parchment);border:1px solid var(--hairline-2);border-radius:var(--r-2);padding:20px;min-height:220px;overflow:hidden}.demo-caption{min-height:1.5em;margin:12px 2px 0;font-size:14px;line-height:1.5;color:var(--ink-2)}.demo-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--hairline-2)}.demo-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:550;color:var(--ink-2);background:var(--parchment-2);border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:7px 14px;transition:background .15s ease,border-color .15s ease,transform .1s ease}.demo-btn:hover{background:var(--paper);border-color:var(--hairline)}.demo-btn:active{transform:scale(.96)}.demo-btn:disabled{opacity:.45;cursor:default;transform:none}.demo-btn.primary{background:var(--action-blue);border-color:var(--action-blue);color:#fff}.demo-btn.primary:hover{background:var(--ed-purple-deep,#5b1ecf)}.demo-btn.active{border-color:var(--action-blue);color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12))}.demo-slider{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2)}.demo-slider input[type=range]{accent-color:var(--action-blue);width:140px}.demo-slider-val{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);min-width:42px;text-align:center}.demo-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.demo-chips-label{font-size:13px;color:var(--ink-3);margin-inline-end:2px}.demo-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:550;color:var(--ink-3);background:transparent;border:1px solid var(--hairline-2);border-radius:999px;padding:5px 12px;transition:all .15s ease}.demo-chip:hover{color:var(--ink);border-color:var(--hairline)}.demo-chip.active{color:var(--action-blue);border-color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12))}.demo-dots{display:flex;align-items:center;gap:6px}.demo-dot{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:0;width:8px;height:8px;border-radius:50%;border:1px solid var(--hairline);background:var(--parchment-2);transition:all .18s ease}.demo-dot.passed{background:var(--ed-purple-tint-strong,rgba(113,50,245,.2));border-color:transparent}.demo-dot.active{background:var(--action-blue);border-color:var(--action-blue);transform:scale(1.35)}.demo-node{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--paper);border:1px solid var(--hairline-2);border-radius:var(--r-2);padding:10px 14px;font-size:14px;font-weight:550;color:var(--ink-2);box-shadow:var(--shadow-soft)}.demo-node.accent{border-color:var(--action-blue);color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12))}.demo-node.ok{border-color:var(--ed-green,#149e61);color:var(--ed-green,#149e61);background:#149e6114}.demo-node.warn{border-color:#c2410c;color:#c2410c;background:#c2410c12}.demo-token{display:inline-flex;align-items:center;background:var(--paper);border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:5px 10px;font-size:15px;font-weight:550;color:var(--ink)}.demo-token.accent{background:var(--ed-purple-tint,rgba(113,50,245,.12));border-color:var(--action-blue);color:var(--action-blue)}.demo-bar-track{height:10px;border-radius:999px;background:var(--parchment-2);border:1px solid var(--hairline-2);overflow:hidden;flex:1}.demo-bar-fill{height:100%;border-radius:999px;background:var(--action-blue)}.demo-bar-fill.muted{background:var(--hairline)}.demo-bar-fill.ok{background:var(--ed-green,#149e61)}.demo-arrow{color:var(--ink-3);font-size:16px;flex-shrink:0}.demo-panel-label{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}@media (max-width: 520px){.demo-shell{padding:16px 14px 14px}.demo-stage{padding:14px;min-height:180px}.demo-title{font-size:19px}.demo-controls{gap:6px}.demo-btn{padding:7px 11px;font-size:13px}.demo-slider input[type=range]{width:110px}}.takeaways{display:grid;gap:10px;max-width:70ch}.tk-item{display:flex;align-items:flex-start;gap:12px;background:var(--paper);border:1px solid var(--hairline-2);border-radius:var(--r-2);padding:13px 16px;box-shadow:var(--shadow-soft)}.tk-mark{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12));margin-top:1px}.tk-text{font-size:15.5px;line-height:1.55;color:var(--ink);letter-spacing:-.011em}.journey-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}.journey-card{display:flex;flex-direction:column;padding:20px}.journey-card-wide{grid-column:1 / -1}.journey-card-label{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.journey-streak-row{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.journey-streak-num{font-size:42px;font-weight:650;letter-spacing:-.03em;color:var(--ink);line-height:1}.journey-streak-unit{font-size:14px;color:var(--ink-3)}.journey-sub{font-size:13.5px;line-height:1.5;color:var(--ink-3)}.journey-goal-row{display:flex;align-items:center;gap:16px;margin-bottom:12px}.journey-goal-big{font-size:20px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}.journey-goal-unit{font-size:13.5px;font-weight:500;color:var(--ink-3)}.journey-goal-picker{display:flex;gap:6px}.journey-seg{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:550;color:var(--ink-2);background:var(--parchment-2);border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:6px 13px;transition:all .15s ease}.journey-seg:hover{background:var(--paper);border-color:var(--hairline)}.journey-seg.active{color:var(--action-blue);border-color:var(--action-blue);background:var(--ed-purple-tint,rgba(113,50,245,.12))}.journey-plan-modes{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.journey-date{font:inherit;font-size:13.5px;color:var(--ink);background:var(--parchment-2);border:1px solid var(--hairline-2);border-radius:var(--r-1);padding:5px 10px}.journey-plan-note{font-size:14.5px;line-height:1.6;color:var(--ink-2)}.journey-plan-note.ok{color:var(--ed-green,#149e61)}.journey-plan-hint{font-size:13px;color:var(--ink-3);margin-top:4px}.journey-badge{display:inline-block;margin-inline-start:8px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px}.journey-badge.ok{color:var(--ed-green,#149e61);background:#149e611a}.journey-badge.warn{color:#b45309;background:#b453091a}@media (max-width: 780px){.journey-grid{grid-template-columns:1fr}}@media (max-width:780px){.journey-grid>*,.journey-card,.journey-card>*{min-width:0}.journey-streak-row{flex-wrap:wrap}.journey-goal-row{flex-wrap:wrap;gap:10px}.journey-goal-picker{flex-wrap:wrap}.journey-sub{overflow-wrap:anywhere}.lesson-nav{gap:10px}.lesson-nav-card,.lesson-nav-card>*,.lnc-text{min-width:0}.lnc-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.workshop-view{grid-template-columns:minmax(0,1fr)}.ws-grid{min-width:0}.ws-chrome{padding:0 12px;gap:8px;min-width:0}.ws-chrome-left,.ws-chrome-right{min-width:0}.ws-chrome-left{flex:1 1 auto;overflow:hidden}.ws-chrome-right{flex:0 0 auto}.ws-bc-title{display:none}.ws-breadcrumb{min-width:0;overflow:hidden}.course-hero-inner{min-width:0}.course-hero-stats{grid-template-columns:repeat(2,1fr);gap:14px}.course-hero-stat{min-width:0}.course-prog-row{grid-template-columns:1fr;gap:14px}.course-prog-row .btn{width:100%;justify-content:center}.cert-page,.cert-page>*{min-width:0}.cert-actions{flex-wrap:wrap}.card,.rec,.ann,.material-card{min-width:0}code,kbd,samp{overflow-wrap:anywhere}}.chart-frame{margin:0;display:flex;flex-direction:column;gap:10px}.chart-head{display:flex;flex-direction:column;gap:3px}.chart-title{font-family:var(--type-sans);font-size:14.5px;font-weight:650;color:var(--ink);letter-spacing:-.01em;margin:0}.chart-lead{font-size:12.5px;color:var(--ink-3);line-height:1.45;margin:0}.chart-caption{font-size:12px;color:var(--muted);line-height:1.5;margin:0}.chart-body{min-width:0;overflow:hidden}.chart-legend-list{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0;padding:0}.chart-legend-item{display:flex;align-items:center;gap:6px;min-width:0}.chart-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0;box-shadow:0 0 0 1.5px var(--paper)}.chart-legend-label{font-size:12px;color:var(--ink-2);white-space:nowrap}.chart-legend-val{font-family:var(--type-mono);font-size:11.5px;color:var(--muted)}.chart-stat{display:flex;flex-direction:column;gap:2px;min-width:0;padding:14px 16px;border-radius:var(--r-3,14px);background:var(--paper);border:1px solid var(--hairline)}.chart-stat-value{font-family:var(--type-sans);font-size:30px;font-weight:650;line-height:1.05;letter-spacing:-.025em;color:var(--ink)}.chart-stat.tone-brand .chart-stat-value{color:var(--ed-purple,#7132f5)}.chart-stat.tone-good .chart-stat-value{color:#0d7a4e}.chart-stat.tone-warn .chart-stat-value{color:#c07d10}.chart-stat-label{font-size:12px;font-weight:600;color:var(--ink-2)}.chart-stat-sub{font-size:11.5px;color:var(--muted);line-height:1.4}.chart-stat-spark{margin-top:6px}.chart-bars{display:flex;flex-direction:column;gap:8px;min-width:0}.chart-bar-row{display:flex;align-items:center;min-width:0}.chart-bar-label{font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.chart-bar-track{position:relative;flex-shrink:0;background:var(--hairline-2);border-radius:5px;overflow:hidden}.chart-bar-fill{position:absolute;inset-block:0;inset-inline-start:0;display:block;border-radius:5px}.chart-bar-val{font-family:var(--type-mono);font-size:12px;font-weight:600;color:var(--ink);margin-inline-start:auto;flex-shrink:0}.chart-bar-note{font-size:11px;color:var(--muted);flex-shrink:0}.chart-line-wrap{position:relative;width:100%;min-width:0}.chart-line-svg{display:block;width:100%;overflow:visible;touch-action:pan-y}.chart-grid-line{stroke:var(--hairline-2);stroke-width:1}.chart-axis-text{font-family:var(--type-mono);font-size:10px;fill:var(--muted)}.chart-crosshair{stroke:var(--hairline);stroke-width:1;stroke-dasharray:3 3}.chart-dot{transition:r .14s ease}.chart-tooltip{position:absolute;pointer-events:none;z-index:3;min-width:110px;padding:8px 10px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r-2,11px);box-shadow:0 6px 22px #0000001a;display:flex;flex-direction:column;gap:4px}.chart-tt-x{font-family:var(--type-mono);font-size:10.5px;color:var(--muted)}.chart-tt-row{display:flex;align-items:center;gap:6px}.chart-tt-name{font-size:12px;color:var(--ink-2);flex:1;min-width:0}.chart-tt-val{font-family:var(--type-mono);font-size:12px;font-weight:650;color:var(--ink)}.chart-ring{position:relative;display:grid;place-items:center;flex-shrink:0}.chart-ring svg{display:block}.chart-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center}.chart-ring-value{font-family:var(--type-sans);font-size:23px;font-weight:650;letter-spacing:-.02em;color:var(--ink);line-height:1}.chart-ring-label{font-size:11px;font-weight:600;color:var(--ink-3)}.chart-ring-sub{font-size:10.5px;color:var(--muted)}.chart-heatmap{overflow-x:auto;max-width:100%}.chart-heatmap svg{display:block}.chart-heat-cell{transition:opacity .14s ease}.chart-stack{display:flex;flex-direction:column;gap:9px;min-width:0}.chart-stack-track{display:flex;width:100%;border-radius:6px;overflow:hidden;background:var(--hairline-2);gap:2px}.chart-stack-seg{display:block;height:100%;flex-shrink:0}.chart-spark{display:block;overflow:visible}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}@media (max-width:780px){.chart-grid{grid-template-columns:1fr;gap:12px}.chart-stat-value{font-size:26px}.chart-bar-label{font-size:12px}.chart-tooltip{inset-inline-start:4px!important}}@media (prefers-reduced-motion:reduce){.chart-bar-fill,.chart-dot,.chart-heat-cell{transition:none}}.term{--t-bg:#0e1117;--t-panel:#151a22;--t-line:rgba(255,255,255,.08);--t-text:#e6e9ef;--t-dim:#8b93a1;--t-accent:#a78bfa;--t-green:#4ade80;--t-red:#f87171;--t-amber:#fbbf24;border-radius:var(--r-3,14px);overflow:hidden;border:1px solid rgba(255,255,255,.1);background:var(--t-bg);box-shadow:0 10px 34px #00000029;min-width:0}.term-chrome{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--t-panel);border-bottom:1px solid var(--t-line)}.term-dots{display:flex;gap:6px;flex-shrink:0}.term-dots i{width:10px;height:10px;border-radius:50%;background:#3a4150;display:block}.term-dots i:nth-child(1){background:#ff5f57}.term-dots i:nth-child(2){background:#febc2e}.term-dots i:nth-child(3){background:#28c840}.term-title{font-size:12px;color:var(--t-dim);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.term-modes{display:flex;gap:4px;flex-shrink:0}.term-mode{font-family:var(--type-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:4px 9px;border-radius:6px;cursor:pointer;color:var(--t-dim);background:transparent;border:1px solid var(--t-line);transition:color .14s,background .14s,border-color .14s}.term-mode:hover{color:var(--t-text)}.term-mode.active{color:#fff;background:#a78bfa33;border-color:#a78bfa73}.term-body{overflow-y:auto;overflow-x:auto;padding:12px 14px 8px;font-family:var(--type-mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:12.5px;line-height:1.62;color:var(--t-text);cursor:text;-webkit-overflow-scrolling:touch}.term-line{white-space:pre-wrap;overflow-wrap:anywhere;display:flex;gap:7px}.term-line .term-text{min-width:0}.term-prompt{color:var(--t-accent);font-weight:700;flex-shrink:0;-webkit-user-select:none;user-select:none}.term-arrow{color:var(--t-dim);flex-shrink:0;-webkit-user-select:none;user-select:none}.term-cmd .term-text{color:#fff;font-weight:600}.term-out .term-text{color:var(--t-text)}.term-log .term-text{color:var(--t-dim)}.term-val .term-text{color:var(--t-green)}.term-err .term-text{color:var(--t-red)}.term-sys .term-text{color:var(--t-amber);font-family:var(--type-sans);font-size:12.5px}.term-input-row{display:flex;gap:7px;align-items:center;margin-top:2px}.term-input{flex:1;min-width:0;background:transparent;border:0;outline:none;font:inherit;color:#fff;caret-color:var(--t-accent);padding:2px 0}.term-input::placeholder{color:#4b5364}.term-input:disabled{opacity:.5}.term-foot{margin:0;padding:8px 12px;font-size:11.5px;line-height:1.5;color:var(--t-dim);background:var(--t-panel);border-top:1px solid var(--t-line)}@media (max-width:780px){.term-input{font-size:16px}.term-body{font-size:12px;padding:10px 11px 6px}.term-title,.term-foot{font-size:11px}}.terminal-tab{display:flex;flex-direction:column;gap:14px;min-width:0}.terminal-tab-lead{font-size:13.5px;line-height:1.6;color:var(--ink-3);margin:0}.terminal-tab-lead code{font-family:var(--type-mono);font-size:12px;background:var(--parchment-2);padding:1px 6px;border-radius:5px;color:var(--ink-2)}.chart-empty{font-size:13px;line-height:1.6;color:var(--muted);margin:0;padding:18px 4px;text-align:center}.progress-ring-card{display:flex;align-items:center;justify-content:center}.chart-grid>.card{padding:18px 20px;min-width:0}html,body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true],.lesson-summary,.lesson-h1,.tab-panel,.transcript-text,.ws-explain,.ws-code,.ws-out-text,.notif-item-body,.badge-desc,.module-summary,.rec,.ann,.code-block,.practice,.obj,[data-allow-select]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}img,svg{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none}@media print{html,body{display:none!important}}
