:root{--bg:#f7f9f8;--surface:#fff;--surface-2:#f1f4f3;--text:#2b3a35;--text-muted:#6b7c76;--text-strong:#0f1f1a;--border:#e3e9e6;--border-strong:#d2dbd7;--accent:#10b981;--accent-hover:#0e9f70;--accent-contrast:#fff;--accent-soft:#10b9811a;--accent-ring:#10b98159;--danger:#dc2626;--danger-soft:#dc26261a;--success:#16a34a;--warning:#d97706;--shadow-sm:0 1px 2px #0f1f1a0f, 0 1px 3px #0f1f1a14;--shadow-md:0 4px 6px -2px #0f1f1a0f, 0 12px 20px -4px #0f1f1a1a;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-full:999px;--container:920px;--nav-h:60px;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);font-size:16px;line-height:1.55}:root[data-theme=dark]{--bg:#0c1413;--surface:#121b19;--surface-2:#18221f;--text:#c4d3ce;--text-muted:#8b9c96;--text-strong:#ecf3f0;--border:#243029;--border-strong:#324339;--accent:#34d399;--accent-hover:#54dba9;--accent-contrast:#06231a;--accent-soft:#34d39924;--accent-ring:#34d39966;--danger:#f87171;--danger-soft:#f8717124;--success:#4ade80;--warning:#fbbf24;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #0006;--shadow-md:0 4px 6px -2px #0000004d, 0 14px 24px -6px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c1413;--surface:#121b19;--surface-2:#18221f;--text:#c4d3ce;--text-muted:#8b9c96;--text-strong:#ecf3f0;--border:#243029;--border-strong:#324339;--accent:#34d399;--accent-hover:#54dba9;--accent-contrast:#06231a;--accent-soft:#34d39924;--accent-ring:#34d39966;--danger:#f87171;--danger-soft:#f8717124;--success:#4ade80;--warning:#fbbf24;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #0006;--shadow-md:0 4px 6px -2px #0000004d, 0 14px 24px -6px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}::selection{background:var(--accent-soft);color:var(--text-strong)}h1,h2,h3{color:var(--text-strong);letter-spacing:-.02em;margin:0 0 .5em;font-weight:650;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 .9rem}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}code,pre{font-family:var(--mono);font-size:.9em}code{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.1em .4em}pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem;overflow:auto}pre code{background:0 0;border:none;padding:0}.container{width:100%;max-width:var(--container);margin:0 auto;padding:2rem 1.25rem 4rem}.page-narrow{max-width:620px}.stack>*+*{margin-top:1rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.spread{justify-content:space-between;align-items:center;gap:1rem;display:flex}.muted{color:var(--text-muted)}.center{text-align:center}.nav{z-index:20;height:var(--nav-h);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.nav-inner{max-width:var(--container);align-items:center;gap:1rem;height:100%;margin:0 auto;padding:0 1.25rem;display:flex}.brand{color:var(--text-strong);letter-spacing:-.01em;align-items:center;gap:.55rem;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand-name{font-size:1.02rem}.nav-links{align-items:center;gap:.25rem;margin-left:auto;display:flex}.nav-link{color:var(--text-muted);border-radius:var(--r-sm);padding:.4rem .7rem;font-size:.95rem;font-weight:500}.nav-link:hover{color:var(--text-strong);background:var(--surface-2);text-decoration:none}.nav-link.active{color:var(--accent);background:var(--accent-soft)}@media (width<=640px){.brand-name{display:none}.nav-link{padding:.5rem .55rem;font-size:.9rem}.row{flex-wrap:wrap}.spread{flex-direction:column;align-items:stretch;gap:.75rem}.field{min-width:0!important}.input,.select{width:100%}.btn{min-height:44px}.container,.page-narrow{padding-left:1rem;padding-right:1rem}h1{font-size:1.6rem}}.menu{display:inline-flex;position:relative}.avatar{background:var(--accent-soft);border:1px solid var(--border);width:36px;height:36px;color:var(--accent);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:.82rem;font-weight:700;transition:border-color .15s,background .15s;display:inline-grid;overflow:hidden}.avatar:hover{border-color:var(--accent)}.avatar-img{object-fit:cover;width:100%;height:100%}.avatar-initials{line-height:1}.menu-panel{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);min-width:220px;box-shadow:var(--shadow-md);flex-direction:column;padding:.4rem;display:flex;position:absolute;top:calc(100% + .5rem);right:0}.menu-header{border-bottom:1px solid var(--border);flex-direction:column;gap:.1rem;margin-bottom:.3rem;padding:.5rem .6rem;display:flex}.menu-email{font-size:.82rem}.menu-item{text-align:left;width:100%;font:inherit;border-radius:var(--r-sm);color:var(--text);cursor:pointer;background:0 0;border:0;padding:.5rem .6rem;display:block}.menu-item:hover{background:var(--surface-2);color:var(--text-strong);text-decoration:none}.danger-zone{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.danger-title{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.card+.card{margin-top:1.25rem}.card-title{margin-top:0}.btn{font:inherit;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-strong);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;padding:.62rem 1.05rem;font-weight:600;line-height:1;transition:background .15s,border-color .15s,transform 50ms,opacity .15s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--text-strong);border-color:#0000}.btn-danger{color:var(--danger);border-color:var(--border-strong);background:0 0}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-block{width:100%}.btn-sm{padding:.4rem .7rem;font-size:.9rem}.btn-lg{padding:.8rem 1.4rem;font-size:1.05rem}.icon-btn{border-radius:var(--r-sm);width:38px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text-strong)}.field{margin-bottom:1rem}.label{color:var(--text-strong);margin-bottom:.35rem;font-size:.85rem;font-weight:600;display:block}.input,.select,textarea.input{width:100%;font:inherit;color:var(--text-strong);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--text-muted)}.input:focus,.select:focus,textarea.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7c76' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2.2rem}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);gap:3px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .8rem;font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-sm)}.badge{letter-spacing:.02em;text-transform:uppercase;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-accent,.badge-ready,.badge-generating{background:var(--accent-soft);color:var(--accent);border-color:#0000}.badge-error{background:var(--danger-soft);color:var(--danger);border-color:#0000}.badge-pending{background:var(--surface-2);color:var(--text-muted)}.dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.progress{background:var(--surface-2);border-radius:var(--r-full);height:8px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:var(--r-full);height:100%;transition:width .4s}.alert{border-radius:var(--r-md);border:1px solid var(--border);padding:.7rem .95rem;font-size:.95rem}.alert-error{background:var(--danger-soft);color:var(--danger);border-color:#0000}.alert-success{background:var(--accent-soft);color:var(--accent);border-color:#0000}.stats-strip{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1rem;padding:.9rem 1.25rem;display:flex}.stats-stat{align-items:baseline;gap:.35rem;display:flex}.stats-value{color:var(--text-strong);font-weight:700}.stats-label{font-size:.85rem}.stats-badges{align-items:center;gap:.35rem;display:flex}.stats-badge{cursor:default;font-size:1.15rem;line-height:1}.stats-link{color:var(--accent);margin-left:auto;font-size:.9rem;font-weight:600}.lb-me-summary{margin-top:-.3rem;font-weight:600}.lb-list{flex-direction:column;gap:.4rem;margin-top:1rem;display:flex}.lb-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;gap:.85rem;padding:.6rem .9rem;display:flex}.lb-row.me{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-ring)}.lb-rank{min-width:2.2rem;color:var(--text-strong);font-weight:700}.lb-name{color:var(--text-strong);flex:1}.lb-you{font-size:.9rem;font-weight:400}.lb-streak{font-size:.9rem}.lb-points{color:var(--accent);font-weight:700}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;display:grid}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:inherit;padding:1.1rem;transition:border-color .15s,box-shadow .15s,transform .1s;display:block}.course-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.course-card h3{color:var(--text-strong);margin:.5rem 0 .6rem}.lesson-list{margin:0;padding:0;list-style:none}.lesson-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);align-items:center;gap:.8rem;margin-bottom:.6rem;padding:.8rem .9rem;display:flex}.lesson-row .num{background:var(--surface-2);width:26px;height:26px;color:var(--text-muted);border-radius:50%;flex:none;place-items:center;font-size:.82rem;font-weight:600;display:grid}.lesson-row.ready{cursor:pointer}.lesson-row.ready:hover{border-color:var(--accent)}.lesson-row.ready .num{background:var(--accent-soft);color:var(--accent)}.lesson-row .lesson-title{text-align:left;color:var(--text-strong);font-weight:500;font:inherit;cursor:inherit;background:0 0;border:none;flex:1;padding:0}.quiz fieldset{border:1px solid var(--border);border-radius:var(--r-md);margin:0 0 .9rem;padding:1rem 1.1rem}.quiz legend{color:var(--text-strong);padding:0 .3rem;font-weight:600}.quiz .opt{cursor:pointer;align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.quiz .explain{margin:.5rem 0 0;font-size:.92rem}.quiz .explain.correct{color:var(--success)}.quiz .explain.wrong{color:var(--danger)}.option-btn{text-align:left;width:100%;font:inherit;color:var(--text-strong);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);cursor:pointer;margin-bottom:.6rem;padding:.8rem 1rem;transition:border-color .15s,background .15s;display:block}.option-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.option-btn:disabled{opacity:.6;cursor:default}.flashcard{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:100%;color:var(--text);font:inherit;margin-bottom:.55rem;padding:.85rem 1rem;transition:border-color .15s;display:block}.flashcard:hover{border-color:var(--accent)}.flashcard strong{color:var(--text-strong)}.mc-prompt{color:var(--text-strong);margin:.25rem 0 1.1rem;font-size:1.15rem;font-weight:600;line-height:1.4}.mc-options{gap:.55rem;display:grid}.mc-option{text-align:left;width:100%;font:inherit;background:var(--surface);color:var(--text);border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;padding:.8rem 1rem;transition:border-color .15s,background .15s,transform .1s}.mc-option:hover:not(:disabled){border-color:var(--accent)}.mc-option:active:not(:disabled){transform:translateY(1px)}.mc-option:disabled{cursor:default}.mc-option.picked{border-color:var(--accent);background:var(--accent-soft)}.mc-option.correct{border-color:var(--success);color:var(--text-strong);background:#16a34a1f;font-weight:600}.mc-option.wrong{border-color:var(--danger);background:var(--danger-soft)}.prose{color:var(--text)}.prose h1,.prose h2,.prose h3{margin-top:1.6rem}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.3rem}.prose img{border-radius:var(--r-md);max-width:100%}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-muted);margin:1rem 0;padding:.2rem 0 .2rem 1rem}.prose table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .75rem}.prose thead th{background:var(--surface-2);font-weight:600}.prose tbody tr:nth-child(2n){background:var(--surface-2)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.auth-wrap{place-items:center;min-height:100svh;padding:1.5rem;display:grid}.auth-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:400px;box-shadow:var(--shadow-md);padding:2.5rem 2rem}.auth-logo{margin:0 auto 1rem}.auth-divider{color:var(--text-muted);align-items:center;gap:.75rem;margin:1rem 0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chips button{cursor:pointer;font:inherit}.tour-overlay{z-index:50;background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(8px)saturate(120%);backdrop-filter:blur(8px)saturate(120%);place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.tour-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:440px;box-shadow:var(--shadow-md);text-align:center;padding:2.2rem 1.8rem 1.4rem;position:relative}.tour-skip{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:.85rem;position:absolute;top:.8rem;right:.9rem}.tour-skip:hover{color:var(--text-strong)}.tour-icon{margin-bottom:.6rem;font-size:2.6rem;line-height:1}.tour-card h2{margin:0 0 .4rem}.tour-card p{margin:0 0 1.2rem}.tour-dots{justify-content:center;gap:6px;margin-bottom:1.2rem;display:flex}.tour-dot{background:var(--border-strong);border-radius:50%;width:7px;height:7px;transition:background .15s,width .15s}.tour-dot.active{background:var(--accent);border-radius:4px;width:18px}.tour-foot{justify-content:space-between;align-items:center;gap:.6rem;display:flex}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.container,.auth-card{animation:.36s cubic-bezier(.2,.7,.2,1) both page-in}.stagger>*{animation:.46s cubic-bezier(.2,.7,.2,1) both page-in}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(n+8){animation-delay:.3s}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 38%, var(--surface-2) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-line{height:.8rem;margin-bottom:.55rem}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.1rem}.empty{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);padding:2.75rem 1.25rem}.empty-icon{background:var(--accent-soft);border-radius:var(--r-full);place-items:center;width:64px;height:64px;margin:0 auto .9rem;font-size:2.2rem;line-height:1;display:grid}.empty h3{margin:0 0 .3rem}.empty p{color:var(--text-muted);max-width:380px;margin:0 auto}.empty .empty-action{margin-top:1.1rem}@media (prefers-reduced-motion:reduce){.container,.auth-card,.stagger>*,.skeleton{animation-duration:.01ms}}.celebrate-layer{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cel-points{background:var(--accent);color:var(--accent-contrast);border-radius:var(--r-full);box-shadow:var(--shadow-md);white-space:nowrap;padding:.4rem .95rem;font-weight:700;animation:1.3s ease-out forwards cel-float;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}@keyframes cel-float{0%{opacity:0;transform:translate(-50%,12px)scale(.8)}18%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-64px)scale(1)}}.cel-toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:center;min-width:240px;padding:1.5rem 1.9rem;animation:2.2s cubic-bezier(.2,.8,.2,1) forwards cel-pop;position:absolute;top:26%;left:50%;transform:translate(-50%)}.cel-toast.perfect{animation-duration:2.9s}@keyframes cel-pop{0%{opacity:0;transform:translate(-50%,10px)scale(.85)}9%{opacity:1;transform:translate(-50%)scale(1.06)}16%{transform:translate(-50%)scale(1)}84%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)scale(.98)}}.cel-emoji{font-size:2.4rem;line-height:1}.cel-title{color:var(--text-strong);margin-top:.3rem;font-size:1.15rem;font-weight:700}.cel-xp{background:var(--accent-soft);color:var(--accent);border-radius:var(--r-full);margin-top:.55rem;padding:.2rem .75rem;font-weight:700;display:inline-block}.cel-badge{color:var(--text-muted);margin-top:.5rem;font-size:.9rem}.cel-confetti{pointer-events:none;position:absolute;inset:0}.confetti{opacity:0;width:8px;height:13px;animation:1.6s ease-out forwards cel-confetti;animation-delay:calc(var(--i) * 28ms);border-radius:2px;position:absolute;top:6px;left:50%}.confetti.c0{background:#34d399}.confetti.c1{background:#f59e0b}.confetti.c2{background:#ef4444}.confetti.c3{background:#3b82f6}.confetti.c4{background:#a855f7}.confetti.c5{background:#ec4899}@keyframes cel-confetti{0%{opacity:1;transform:translate(-50%)rotate(0)}to{opacity:0;transform:translate(calc(-50% + (var(--i) - 9) * 24px), 170px) rotate(560deg)}}.card-correct{animation:.6s card-correct}.card-wrong{animation:.5s card-wrong}@keyframes card-correct{0%{box-shadow:0 0 #10b98180}50%{box-shadow:0 0 0 7px #10b98138}to{box-shadow:0 0 #10b98100}}@keyframes card-wrong{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.cel-points,.cel-toast,.confetti,.card-correct,.card-wrong{animation-duration:.01ms}}.toast-stack{z-index:70;pointer-events:none;flex-direction:column;gap:.6rem;max-width:min(360px,100vw - 2rem);display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:var(--r-md);box-shadow:var(--shadow-md);color:var(--text-strong);pointer-events:auto;align-items:flex-start;gap:.6rem;padding:.7rem .85rem;font-size:.92rem;animation:.28s cubic-bezier(.2,.7,.2,1) both toast-in;display:flex}.toast.success{border-left-color:var(--accent)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--text-muted)}.toast-icon{width:1.15rem;height:1.15rem;color:var(--accent-contrast);background:var(--text-muted);border-radius:50%;flex:none;place-items:center;margin-top:.05rem;font-size:.7rem;font-weight:700;display:grid}.toast.success .toast-icon{background:var(--accent)}.toast.error .toast-icon{background:var(--danger)}.toast-msg{flex:1;line-height:1.35}.toast-close{color:var(--text-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;flex:none;padding:.1rem .2rem;font-size:.85rem;line-height:1;transition:color .15s,background .15s}.toast-close:hover{color:var(--text-strong);background:var(--surface-2)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.btn-primary{transition:background .15s,border-color .15s,transform .15s,box-shadow .15s,opacity .15s}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.progress-bar{position:relative;overflow:hidden}.progress-bar:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff47 50%,#0000 100%);animation:2.4s ease-in-out infinite progress-sheen;position:absolute;inset:0;transform:translate(-100%)}@keyframes progress-sheen{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.toast{animation-duration:.01ms}.btn-primary:hover:not(:disabled){transform:none}.progress-bar:after{animation:none;display:none}}.landing{min-height:100svh}.mnav{z-index:20;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.mnav-inner{max-width:1080px;height:var(--nav-h);align-items:center;gap:1rem;margin:0 auto;padding:0 1.25rem;display:flex}.mnav .spacer{margin-left:auto}.section{max-width:1080px;margin:0 auto;padding:0 1.25rem}.hero{text-align:center;max-width:820px;margin:0 auto;padding:4.5rem 1.25rem 3rem}.hero .eyebrow{letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-full);align-items:center;gap:.4rem;margin-bottom:1.2rem;padding:.3rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.hero h1{margin-bottom:.8rem;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08}.hero .lead{color:var(--text-muted);max-width:600px;margin:0 auto 1.8rem;font-size:1.15rem}.hero-logo{margin:0 auto 2rem}.cta-row{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.section-head{text-align:center;max-width:640px;margin:0 auto 2.5rem}.section-head h2{font-size:clamp(1.6rem,3vw,2.1rem)}.section-head p{color:var(--text-muted)}.features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.1rem;display:grid}.feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem}.feature .ficon{border-radius:var(--r-md);background:var(--accent-soft);width:42px;height:42px;color:var(--accent);place-items:center;margin-bottom:1rem;display:grid}.feature h3{margin:0 0 .4rem}.feature p{color:var(--text-muted);margin:0;font-size:.95rem}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;display:grid}.step{padding:.5rem}.step .snum{counter-increment:step;background:var(--accent);width:34px;height:34px;color:var(--accent-contrast);border-radius:50%;place-items:center;margin-bottom:.8rem;font-weight:700;display:grid}.step .snum:before{content:counter(step)}.step h3{margin:0 0 .3rem}.step p{color:var(--text-muted);margin:0;font-size:.95rem}.pricing{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;max-width:760px;margin:0 auto;display:grid}.tier{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;padding:1.8rem;display:flex;position:relative}.tier.featured{border-color:var(--accent);box-shadow:var(--shadow-md)}.tier .tier-flag{background:var(--accent);color:var(--accent-contrast);letter-spacing:.02em;border-radius:var(--r-full);padding:.2rem .7rem;font-size:.72rem;font-weight:700;position:absolute;top:-11px;right:1.5rem}.tier h3{margin:0 0 .2rem;font-size:1.25rem}.tier .tier-sub{color:var(--text-muted);margin-bottom:1rem;font-size:.92rem}.tier .price{color:var(--text-strong);font-size:2rem;font-weight:700}.tier .price small{color:var(--text-muted);font-size:.95rem;font-weight:500}.tier .trial{color:var(--accent);margin:.3rem 0 1.2rem;font-size:.9rem;font-weight:600}.tier ul{gap:.6rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.tier li{align-items:flex-start;gap:.55rem;font-size:.95rem;display:flex}.tier li svg{color:var(--accent);flex:none;margin-top:2px}.tier .btn{margin-top:auto}.mfooter{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);margin-top:4rem;padding:2rem 1.25rem;font-size:.9rem}.modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:460px;box-shadow:var(--shadow-md)}.tutor-fab{z-index:50;cursor:pointer;background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-md);border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.95rem;font-weight:600;display:inline-flex;position:fixed;bottom:1.25rem;right:1.25rem}.tutor-fab:hover{background:var(--accent-hover)}.tutor-fab:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.tutor-drawer{z-index:60;background:var(--surface);border-left:1px solid var(--border);width:380px;max-width:100vw;box-shadow:var(--shadow-md);flex-direction:column;animation:.16s ease-out tutor-slide-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes tutor-slide-in{0%{opacity:.6;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.tutor-head{border-bottom:1px solid var(--border);color:var(--text-strong);justify-content:space-between;align-items:center;gap:.5rem;padding:.9rem 1rem;display:flex}.tutor-model{align-items:center;gap:.4rem;margin-left:auto;display:flex}.tutor-model .label{margin:0;font-size:.78rem}.tutor-model .input{padding:.3rem .5rem;font-size:.82rem}.tutor-close{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:none;padding:.25rem .4rem;font-size:1.1rem;line-height:1}.tutor-close:hover{background:var(--surface-2);color:var(--text-strong)}.tutor-messages{flex-direction:column;flex:1;gap:.6rem;padding:1rem;display:flex;overflow-y:auto}.tutor-empty{margin-top:.5rem}.tutor-msg{border-radius:var(--r-md);white-space:pre-wrap;word-wrap:break-word;max-width:85%;padding:.55rem .75rem;font-size:.92rem;line-height:1.4}.tutor-msg.user{background:var(--accent-soft);color:var(--text-strong);border:1px solid var(--border);align-self:flex-end}.tutor-msg.assistant{background:var(--surface-2);color:var(--text-strong);border:1px solid var(--border);align-self:flex-start}.tutor-typing{color:var(--text-muted);align-items:center;gap:.4rem;display:inline-flex}.tutor-error{margin:.3rem 0 0}.tutor-composer{border-top:1px solid var(--border);align-items:flex-end;gap:.5rem;padding:.75rem 1rem;display:flex}.tutor-composer .input{resize:none;flex:1}.help-fab{z-index:50;cursor:pointer;background:var(--accent);width:3rem;height:3rem;color:var(--accent-contrast);box-shadow:var(--shadow-md);border:none;border-radius:999px;font-size:1.25rem;font-weight:700;line-height:1;position:fixed;bottom:1.25rem;left:1.25rem}.help-fab:hover{background:var(--accent-hover)}.help-fab:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.help-panel{z-index:60;width:360px;max-width:calc(100vw - 2.5rem);height:480px;max-height:calc(100vh - 7rem);box-shadow:var(--shadow-md);flex-direction:column;padding:0;animation:.16s ease-out tutor-slide-in;display:flex;position:fixed;bottom:5rem;left:1.25rem}.help-panel-header{border-bottom:1px solid var(--border);color:var(--text-strong);flex-direction:column;gap:.1rem;padding:.85rem 1rem;display:flex}.help-panel-sub{font-size:.78rem}.help-messages{flex:1}.help-md{white-space:normal}.help-md>:first-child{margin-top:0}.help-md>:last-child{margin-bottom:0}.help-md p{margin:0 0 .5rem}.help-md ul,.help-md ol{margin:0 0 .5rem;padding-left:1.2rem}.help-md li{margin:.15rem 0}.help-md a{color:var(--accent)}.help-md code{background:var(--surface-2);border-radius:var(--r-sm);padding:.05rem .3rem;font-size:.88em}.help-links{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.help-links .btn{text-decoration:none}.breadcrumb{font-size:.85rem}.breadcrumb a{color:var(--accent)}.breadcrumb [aria-current=page]{color:var(--text-muted)}.lesson-list{flex-direction:column;display:flex}.lesson-item{border-top:1px solid var(--border)}.lesson-item:first-of-type{border-top:none}.lesson-item-head{align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.lesson-toggle{cursor:pointer;text-align:left;min-width:0;color:var(--text-strong);font:inherit;border-radius:var(--r-sm);background:0 0;border:none;flex:1;align-items:center;gap:.6rem;padding:.5rem .25rem;display:flex}.lesson-toggle:hover{background:var(--surface-2)}.lesson-toggle:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.lesson-num{background:var(--accent-soft);width:1.6rem;height:1.6rem;color:var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:.82rem;font-weight:600;display:inline-flex}.lesson-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.lesson-chevron{color:var(--text-muted);flex:none;font-size:.8rem}.lesson-actions{flex:none;gap:.4rem;display:flex}.lesson-item-body{padding:.25rem .25rem 1rem;animation:.14s ease-out tutor-slide-in}@media (width<=560px){.lesson-item-head{flex-wrap:wrap}.lesson-actions{justify-content:flex-end;width:100%}}mark.note-hl{background:var(--accent-soft);color:inherit;border-radius:3px;padding:0 1px}.notes-fab{bottom:calc(1.25rem + 56px)}.highlighter-fab{bottom:calc(1.25rem + 112px)}.highlighter-fab.active{box-shadow:var(--shadow-md), 0 0 0 3px var(--accent-ring)}.lesson-highlightable{position:relative}.lesson-highlightable.highlighting ::selection{background:var(--accent-soft)}.swatches{gap:.6rem;margin-top:.5rem;display:flex}.swatch{border-radius:var(--r-full);border:2px solid var(--border-strong);cursor:pointer;width:34px;height:34px;padding:0;transition:transform .1s,box-shadow .15s}.swatch:hover{transform:translateY(-1px)}.swatch.selected{border-color:var(--text-strong);box-shadow:0 0 0 3px var(--accent-ring)}.note-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);padding:.55rem .7rem;font-size:.92rem;line-height:1.4}.continue-cta{color:var(--accent);margin-top:.55rem;font-size:.85rem;font-weight:600;display:inline-block}.checklist{flex-direction:column;gap:.6rem;margin:.5rem 0 0;padding-left:1.2rem;display:flex}.checklist li{line-height:1.5}.skip-link{z-index:100;background:var(--accent);color:var(--accent-contrast);border-radius:var(--r-sm);padding:.5rem .9rem;transition:top .15s;position:absolute;top:-3rem;left:.5rem}.skip-link:focus{top:.5rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;display:flex}.tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .9rem;font-weight:500}.tab:hover{color:var(--text-strong)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
