:root{--primary:#0043a2;--primary-container:#2a5cbe;--on-primary:#fff;--on-primary-container:#d1dcff;--secondary:#006e2c;--secondary-container:#86f898;--on-secondary-container:#00722f;--brand-secondary:#34a853;--tertiary:#fdf7f2;--tertiary-container:#e7e1dd;--on-tertiary-container:#494643;--surface:#f9f9ff;--surface-low:#f2f3fc;--surface-container:#ecedf6;--surface-container-high:#e6e8f0;--surface-container-highest:#e0e2eb;--surface-lowest:#fff;--on-surface:#181c22;--muted:#4a4d54;--outline:#737784;--outline-variant:#c3c6d5;--error:#ba1a1a;--radius-sm:4px;--radius-md:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--space-xs:4px;--space-sm:12px;--space-md:20px;--space-lg:32px;--font-display:var(--font-manrope), "Manrope", sans-serif;--font-body:var(--font-atkinson), "Atkinson Hyperlegible", sans-serif}*{box-sizing:border-box}html,body{background:var(--surface);color:var(--on-surface);font-family:var(--font-body);margin:0;padding:0;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}button,input,textarea,select{font-family:inherit}a{color:var(--primary);text-decoration-thickness:1px}.page{max-width:960px;padding:var(--space-md) var(--space-md) 4rem;margin:0 auto}.site-header{z-index:40;margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-md)) var(--space-lg);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.site-header-left{flex-wrap:wrap;align-items:center;gap:1.25rem;min-width:0;display:flex}.site-header-right{align-items:center;margin-left:auto;display:flex}.brand{font-family:var(--font-display);color:var(--primary);align-items:center;gap:.55rem;font-size:1.5rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-icon{border-radius:var(--radius-md);flex-shrink:0}.nav{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.nav a{color:var(--muted);font-family:var(--font-display);font-weight:600;text-decoration:none}.nav a:hover{color:var(--primary)}.hero{text-align:center;flex-direction:column;align-items:center;padding:2.5rem 0 1.5rem;display:flex}main>section+section{margin-top:var(--space-lg)}.hero-tagline{font-family:var(--font-display);max-width:36rem;color:var(--muted);margin:0 0 1.25rem;font-size:clamp(1.15rem,2.5vw,1.35rem);font-weight:600;line-height:1.35}.hero .row-actions{justify-content:center}.btn{appearance:none;border-radius:var(--radius-full);cursor:pointer;font-weight:700;font-family:var(--font-display);border:0;padding:.7rem 1.2rem}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-secondary{background:var(--secondary);color:#fff}.btn-ghost{color:var(--primary);border:1px solid var(--outline-variant);background:0 0}.btn-login-quiet{appearance:none;border-radius:var(--radius-md);color:var(--muted);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;padding:.45rem .65rem;font-size:.9rem;font-weight:600}.btn-login-quiet:hover{color:var(--primary);background:color-mix(in srgb, var(--primary) 6%, transparent)}.auth-guest{flex-wrap:wrap;justify-content:flex-end}.auth-guest-error{text-align:right;flex-basis:100%;font-size:.85rem}.btn-filled-training{border-radius:var(--radius);background:var(--primary);width:100%;min-height:48px;color:var(--on-primary);font-family:var(--font-display);letter-spacing:.01em;cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 15%, transparent);border:0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:14px;font-weight:600;display:inline-flex}.btn-filled-training:disabled{opacity:.55;cursor:not-allowed}.matching-filter{margin:0 0 var(--space-md);padding:var(--space-sm)}.matching-filter-title{margin:0 0 var(--space-xs);font-family:var(--font-display);color:var(--on-surface);font-size:1rem;font-weight:700;line-height:1.25}.matching-filter-rows{gap:var(--space-xs);flex-direction:column;display:flex}.matching-filter-divider{margin:var(--space-sm) 0;border:0;border-top:1px solid color-mix(in srgb, var(--outline-variant) 60%, transparent)}.matching-chip-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.matching-chip{appearance:none;border-radius:var(--radius-full);background:var(--surface-container-high);min-height:32px;color:var(--muted);font-family:var(--font-display);cursor:pointer;border:0;padding:4px 10px;font-size:13px;font-weight:600;line-height:16px}.matching-chip-selected{background:var(--primary);color:var(--on-primary)}.matching-chip:hover:not(.matching-chip-selected){background:var(--surface-container-highest)}.training-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.training-card{background:var(--surface-lowest);border-radius:var(--radius-lg);min-height:312px;color:inherit;box-shadow:0 1px 3px color-mix(in srgb, var(--primary) 4%, transparent);border:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.training-card:hover{box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 12%, transparent)}.training-card-image{background:var(--surface-container);flex-shrink:0;width:100%;height:128px;position:relative}.training-card-image-link{height:100%;color:inherit;text-decoration:none;display:block}.training-card-like{z-index:2;border-radius:var(--radius-full);width:36px;height:36px;color:var(--surface-lowest);cursor:pointer;filter:drop-shadow(0 1px 2px #00000073);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:8px;right:8px}.training-card-like:hover{color:var(--surface-lowest);opacity:.92;background:0 0}.training-card-like.is-liked{color:var(--error);filter:drop-shadow(0 1px 2px #00000040)}.training-card-like:disabled{opacity:.65;cursor:default}.training-card-body{gap:var(--space-xs);color:inherit;flex-direction:column;flex:1;padding:16px;text-decoration:none;display:flex}.training-card-title{font-family:var(--font-display);letter-spacing:.01em;color:var(--on-surface);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.training-card-rating{font-family:var(--font-display);color:var(--muted);align-items:center;gap:4px;margin:0;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.training-card-rating-star{color:var(--secondary);display:inline-flex}.training-card-subtitle{font-family:var(--font-body);color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12px;font-weight:400;line-height:16px;display:-webkit-box;overflow:hidden}.training-card-spacer{flex:1;min-height:0}.training-card-progress{margin-top:.5rem}.training-card-progress-row{font-family:var(--font-body);color:var(--muted);justify-content:space-between;align-items:flex-end;margin-bottom:8px;font-size:12px;font-weight:400;line-height:16px;display:flex}.training-card-progress-pct{color:var(--primary);font-family:var(--font-display);letter-spacing:.01em;font-size:14px;font-weight:700;line-height:20px}.training-card-progress-track{border-radius:var(--radius-full);background:var(--surface-container-highest);height:8px;overflow:hidden}.training-card-progress-fill{border-radius:var(--radius-full);background:var(--secondary);height:100%}.training-card-cta{font-family:var(--font-display);letter-spacing:.01em;color:var(--primary);align-items:center;gap:6px;margin:.75rem 0 0;font-size:14px;font-weight:600;line-height:20px;display:inline-flex}.training-card-cta-icon{flex-shrink:0;display:block}.training-detail-page{max-width:720px;margin:0 auto}.training-detail{flex-direction:column;gap:0;min-height:min(70vh,720px);display:flex}.training-detail-toolbar{margin-bottom:var(--space-sm);justify-content:flex-end;display:flex}.training-like-wrap{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.training-like-btn{appearance:none;color:var(--muted);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:0;padding:8px;line-height:0}.training-like-btn.is-liked{color:var(--error)}.training-like-btn:disabled{opacity:.6}.training-like-error{margin:0;font-size:.8rem}.training-detail-scroll{gap:var(--space-md);flex-direction:column;flex:1;display:flex}.training-detail-hero{border-radius:var(--radius);background:var(--surface-container);min-height:256px;box-shadow:0 8px 30px color-mix(in srgb, var(--primary) 6%, transparent);position:relative;overflow:hidden}.training-detail-hero img{object-position:50% 25%}.training-detail-hero-gradient{background:linear-gradient(to top, color-mix(in srgb, var(--on-surface) 80%, transparent), transparent);pointer-events:none;z-index:1;position:absolute;inset:0}.training-detail-hero-copy{z-index:2;min-height:256px;padding:var(--space-md);flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex;position:relative}.training-detail-context-chips{flex-wrap:wrap;gap:6px;display:flex}.training-detail-context-chip{border-radius:var(--radius-full);background:var(--primary);color:var(--on-primary);font-family:var(--font-body);letter-spacing:.04em;padding:4px 8px;font-size:12px;font-weight:600;line-height:1.3;display:inline-block}.training-detail-subtitle{max-width:100%;font-family:var(--font-body);color:var(--on-primary);margin:0;font-size:.95rem;font-weight:600;line-height:1.35}.training-detail-hero-copy h1{font-family:var(--font-display);color:var(--on-primary);margin:0;font-size:clamp(1.35rem,3vw,1.625rem);font-weight:700;line-height:1.2}.training-avg-rating{align-items:center;gap:var(--space-xs);text-align:center;flex-direction:column;display:flex}a.training-avg-rating-link{width:fit-content;padding:var(--space-sm) var(--space-md);border-radius:var(--radius);color:inherit;margin:0 auto;text-decoration:none;display:block}a.training-avg-rating-link:hover,a.training-avg-rating-link:focus-visible{background:color-mix(in srgb, var(--outline-variant) 28%, transparent)}.training-avg-rating p{font-family:var(--font-display);color:var(--muted);margin:0;font-size:14px;font-weight:600}.training-avg-stars{gap:4px;display:inline-flex}.training-star{width:28px;height:28px;color:color-mix(in srgb, var(--muted) 35%, transparent);font-size:28px;line-height:1;display:inline-block;position:relative}.training-star-empty{position:absolute;inset:0}.training-star-fill{color:var(--secondary);position:absolute;inset:0 auto 0 0;overflow:hidden}.training-detail-description{font-family:var(--font-body);color:var(--muted);margin:0;font-size:18px;line-height:28px}.training-landing{gap:var(--space-lg);flex-direction:column;display:flex}.training-landing-lead p,.training-landing-section p{font-family:var(--font-body);color:var(--muted);margin:0 0 .75em;font-size:18px;line-height:28px}.training-landing-lead p:last-child,.training-landing-section p:last-child{margin-bottom:0}.training-landing-section h2{margin:0 0 var(--space-sm);font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.3}.training-landing-section ul,.training-landing-steps{font-family:var(--font-body);color:var(--muted);margin:0;padding-left:1.2em;font-size:18px;line-height:28px}.training-landing-section li+li,.training-landing-steps li+li{margin-top:.35em}.training-landing-modules{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));margin:0;padding:0;list-style:none;display:grid}.training-landing-section .training-landing-modules li+li{margin-top:0}.training-landing-modules>li{min-width:0;height:100%}.training-landing-module-card{height:100%;padding:var(--space-sm);background:var(--surface-lowest);border:1px solid color-mix(in srgb, var(--outline-variant) 50%, transparent);border-radius:var(--radius);flex-direction:column;gap:6px;display:flex}.training-landing-module-index{border-radius:var(--radius-sm);background:var(--surface-lowest);border:1px solid var(--primary);width:1.5rem;height:1.5rem;color:var(--primary);font-family:var(--font-display);justify-content:center;align-items:center;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.training-landing-module-card h3{font-family:var(--font-display);color:var(--on-surface);margin:0;font-size:.95rem;font-weight:700;line-height:1.3}.training-landing-section .training-landing-module-card p{margin:0;font-size:.875rem;line-height:1.4}.training-detail-complete-note{font-family:var(--font-display);color:var(--secondary);margin:0;font-weight:600}.training-completion{margin-top:var(--space-md);padding:var(--space-md);background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius);text-align:center}.training-completion h2{margin:0 0 var(--space-sm)}.training-review-form{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.training-review-heading{font-family:var(--font-display);text-align:center;margin:0;font-weight:600}.training-review-stars{justify-content:center;gap:4px;display:flex}.training-review-star{appearance:none;color:var(--outline);cursor:pointer;background:0 0;border:0;padding:4px;font-size:1.75rem;line-height:1}.training-review-star.is-on{color:var(--secondary)}.training-review-form textarea{border:1px solid var(--outline-variant);border-radius:var(--radius);resize:vertical;width:100%;min-height:88px;padding:.75rem}.reviews-screen{gap:var(--space-md);flex-direction:column;max-width:720px;margin:0 auto;display:flex}.reviews-empty{text-align:center;margin:var(--space-md) 0 0}.reviews-list{gap:var(--space-sm);flex-direction:column;display:flex}.review-tile{padding:var(--space-md);background:var(--surface-lowest);border:1px solid color-mix(in srgb, var(--outline-variant) 50%, transparent);border-radius:var(--radius)}.review-tile-stars{color:color-mix(in srgb, var(--muted) 40%, transparent);gap:2px;font-size:1rem;line-height:1;display:flex}.review-tile-stars .is-on{color:var(--secondary)}.review-tile p{margin:var(--space-xs) 0 0;color:var(--muted)}.daily-reward-backdrop{z-index:40;padding:var(--space-md);background:#181c2266;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.daily-reward-dialog{width:min(100%,420px);padding:var(--space-lg) var(--space-md) var(--space-md);background:var(--surface-lowest);border-radius:var(--radius-xl);text-align:center;box-shadow:0 16px 40px #181c222e}.daily-reward-dialog h2{margin:0 0 var(--space-sm)}.daily-reward-total{font-family:var(--font-display);color:var(--primary);font-weight:600}.daily-reward-dialog .btn{margin-top:var(--space-md);width:100%}.training-detail-footer{margin-top:var(--space-lg);gap:var(--space-md);padding-top:var(--space-sm);padding-bottom:env(safe-area-inset-bottom,0);background:linear-gradient(to top, var(--surface) 70%, color-mix(in srgb, var(--surface) 85%, transparent));flex-direction:column;display:flex;position:sticky;bottom:0}.training-progress-summary{gap:var(--space-md);color:inherit;background:var(--surface-low);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--outline-variant) 50%, transparent);box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 12%, transparent);grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;padding:16px;text-decoration:none;display:grid}.training-progress-summary-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.training-progress-summary-label{font-family:var(--font-body);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.training-progress-summary-pct{font-family:var(--font-display);color:var(--primary);font-size:14px;font-weight:600}.training-progress-summary-track{border-radius:var(--radius-full);background:color-mix(in srgb, var(--outline-variant) 55%, transparent);height:8px;overflow:hidden}.training-progress-summary-fill{border-radius:var(--radius-full);background:var(--primary);height:100%}.training-progress-summary-chevron{color:var(--muted);display:inline-flex}.training-detail-signin{gap:var(--space-sm);padding:var(--space-md);background:var(--surface-lowest);border-radius:var(--radius);border:1px solid var(--outline-variant);flex-direction:column;display:flex}.training-detail-signin p{color:var(--muted);margin:0}@media (max-width:560px){.training-progress-summary{grid-template-rows:auto auto;grid-template-columns:1fr auto}.training-progress-summary-track{order:3;grid-column:1/-1}}.modules-header{margin-bottom:var(--space-md)}.modules-header h1{font-family:var(--font-display);color:var(--on-surface);margin:.35rem 0 .25rem;font-size:1.75rem;font-weight:700}.modules-back{font-family:var(--font-display);font-weight:600;text-decoration:none}.modules-list{gap:var(--space-md);display:grid}.module-card{background:var(--surface-lowest);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--outline-variant) 50%, transparent);grid-template-columns:4px 1fr;display:grid;overflow:hidden}.module-card-accent{background:var(--outline-variant)}.module-card.is-active .module-card-accent{background:var(--primary)}.module-card.is-done .module-card-accent{background:var(--secondary)}.module-card-body{padding:16px}.module-card-body h2{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.05rem;font-weight:700}.module-card-body>p{color:var(--muted);margin:0 0 .75rem;font-size:.95rem}.module-lesson-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.module-lesson-row{border-radius:var(--radius-md);color:inherit;justify-content:space-between;align-items:center;gap:12px;padding:10px 8px;text-decoration:none;display:flex}a.module-lesson-row:hover{background:var(--surface-low)}.module-lesson-row.is-locked{opacity:.7;cursor:default}.module-lesson-title{font-family:var(--font-display);font-size:14px;font-weight:600}.module-lesson-meta{flex-shrink:0;font-size:12px}.module-lesson-done{color:var(--secondary);align-items:center;gap:4px;font-weight:600;display:inline-flex}.module-lesson-next{color:var(--primary);font-weight:700}.chat-shell{flex-direction:column;gap:0;max-width:720px;min-height:min(75vh,820px);margin:0 auto;display:flex}.chat-toolbar{margin-bottom:var(--space-sm);justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.chat-toolbar h1{font-family:var(--font-display);margin:.2rem 0 0;font-size:1.25rem;font-weight:700}.chat-back{font-family:var(--font-display);font-size:.85rem;font-weight:600;text-decoration:none}.chat-restart{appearance:none;color:var(--primary);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px;font-size:.9rem;font-weight:600;display:inline-flex}.chat-restart:disabled{color:var(--muted);opacity:.55;cursor:not-allowed}.chat-turn-bar{background:var(--surface-container-highest);font-family:var(--font-display);color:var(--muted);border-radius:var(--radius-md);margin-bottom:var(--space-sm);padding:8px 16px;font-size:12px;font-weight:600}.chat-error{margin:0 0 var(--space-sm)}.chat-log{flex-direction:column;gap:4px;padding:8px 0 16px;display:flex}.chat-scenario{border-radius:var(--radius);background:var(--secondary-container);color:var(--on-secondary-container);margin-bottom:16px;padding:16px}.chat-scenario-label{font-family:var(--font-display);margin:0 0 6px;font-size:14px;font-weight:700}.chat-scenario p{margin:0}.chat-bubble-wrap{flex-direction:column;align-items:flex-start;display:flex}.chat-bubble-wrap:has(.chat-bubble.user){align-items:flex-end}.chat-bubble{border-radius:var(--radius-lg);max-width:78%;font-family:var(--font-body);margin:4px 0;padding:10px 14px;font-size:1rem;line-height:1.45}.chat-bubble p{white-space:pre-wrap;margin:0}.chat-bubble.user{background:var(--primary);color:var(--on-primary)}.chat-bubble.ai{background:var(--surface-container-highest);color:var(--on-surface)}.chat-bubble.is-failed{border:1.5px solid var(--error)}.chat-resend{appearance:none;color:var(--error);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;padding:0 4px 4px;font-size:.85rem;font-weight:600}.chat-typing{align-items:center;gap:5px;min-height:20px;display:inline-flex}.chat-typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite chat-dot}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3.5px)}}.chat-feedback{border-radius:var(--radius);background:var(--surface-container);border:1px solid var(--outline-variant);margin:6px 0;padding:12px}.chat-feedback-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.chat-feedback-stars{color:color-mix(in srgb, var(--primary) 35%, transparent);letter-spacing:2px}.chat-feedback-stars .is-on{color:var(--primary)}.chat-feedback-score{font-family:var(--font-display);font-size:1.1rem;font-weight:700}.chat-feedback-line{color:var(--on-surface);margin:.4rem 0 0;font-size:.95rem}.chat-feedback-line strong{font-family:var(--font-display);margin-bottom:2px;font-size:.8rem;display:block}.chat-feedback-line.is-good strong{color:var(--primary)}.chat-feedback-line.is-bad strong{color:var(--error)}.chat-feedback-line.is-improve strong{color:var(--on-tertiary-container)}.chat-offtopic{border-radius:var(--radius);background:var(--tertiary-container);border:1px solid color-mix(in srgb, var(--on-tertiary-container) 25%, transparent);color:var(--on-tertiary-container);margin:6px 0;padding:12px}.chat-offtopic-title{font-family:var(--font-display);margin:0 0 4px;font-weight:700}.chat-offtopic p{margin:0}.chat-result{border-radius:var(--radius-lg);background:var(--primary-container);color:var(--on-primary-container);margin:12px 0;padding:16px}.chat-result h2{font-family:var(--font-display);margin:0 0 6px;font-size:1.1rem;font-weight:700}.chat-result-score{font-family:var(--font-display);margin:0 0 8px;font-size:1.35rem;font-weight:700}.chat-result p{margin:.4rem 0 0}.chat-result-dim{opacity:.95;font-size:.9rem}.chat-composer{border-top:1px solid color-mix(in srgb, var(--outline-variant) 60%, transparent);grid-template-columns:1fr auto;align-items:end;gap:8px 10px;padding:12px 0 8px;display:grid}.chat-composer textarea{resize:vertical;border-radius:var(--radius-xl);background:var(--surface-container-highest);width:100%;min-height:48px;max-height:120px;color:var(--on-surface);font:inherit;border:0;padding:12px 16px}.chat-composer textarea:focus{outline:2px solid color-mix(in srgb, var(--primary) 40%, transparent);outline-offset:1px}.chat-composer textarea:disabled{opacity:.85}.chat-send{appearance:none;border-radius:var(--radius-full);background:var(--primary);width:48px;height:48px;color:var(--on-primary);cursor:pointer;border:0;justify-content:center;align-items:center;display:inline-flex}.chat-send:disabled{opacity:.45;cursor:not-allowed}.chat-send.is-listening{background:var(--error)}.chat-send-spinner{border:2px solid color-mix(in srgb, var(--on-primary) 35%, transparent);border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite chat-send-spin}@keyframes chat-send-spin{to{transform:rotate(360deg)}}.chat-end-link{appearance:none;color:var(--muted);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;grid-column:1/-1;justify-self:start;padding:0;font-size:.85rem;font-weight:600}.chat-complete-actions{gap:var(--space-sm);padding-top:var(--space-md);flex-direction:column;display:flex}.muted{color:var(--muted)}.error{color:var(--error)}.notice{border-radius:var(--radius);background:#fff6e8;border:1px solid #f0d7a8;padding:.85rem 1rem}.cta-panel{border-radius:var(--radius);border:1px solid var(--outline-variant);background:#fff;margin:1.5rem 0;padding:1.25rem}a.credits-badge,.nav a.credits-badge{border-radius:var(--radius-full);background:var(--primary-container);color:var(--on-primary-container);font-family:var(--font-display);letter-spacing:.01em;align-items:center;gap:4px;padding:4px 10px 4px 6px;font-size:12px;font-weight:600;line-height:16px;text-decoration:none;display:inline-flex}a.credits-badge:hover,a.credits-badge:visited,a.credits-badge:active,.nav a.credits-badge:hover,.nav a.credits-badge:visited,.nav a.credits-badge:active{background:var(--primary-container);color:var(--on-primary-container);filter:none;text-decoration:none}.credits-badge-icon{color:var(--on-primary-container);line-height:0;display:inline-flex}.credits-badge-label{white-space:nowrap;color:inherit}.credits-badge-loading{border:2px solid var(--outline-variant);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;margin:0 8px;animation:.7s linear infinite credits-spin;display:inline-block}@keyframes credits-spin{to{transform:rotate(360deg)}}.auth-row{align-items:center;gap:.5rem;display:inline-flex}a.profile-icon-btn,.nav a.profile-icon-btn{border-radius:var(--radius-full);width:40px;height:40px;color:var(--primary);justify-content:center;align-items:center;line-height:0;text-decoration:none;display:inline-flex}a.profile-icon-btn:hover,a.profile-icon-btn:visited,a.profile-icon-btn:active,.nav a.profile-icon-btn:hover,.nav a.profile-icon-btn:visited,.nav a.profile-icon-btn:active{color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent);text-decoration:none}.sign-in-control{flex-direction:column;align-items:flex-start;gap:.35rem;display:inline-flex}.nav .sign-in-control{align-items:flex-end}.sign-in-control .error{max-width:16rem;font-size:.85rem}.credits-page{width:100%;max-width:none}.credits-paywall-headline{margin:0 0 var(--space-md);font-family:var(--font-display);color:var(--on-surface);font-size:1.5rem;font-weight:600;line-height:1.33}.purchase-section-title{margin:0 0 var(--space-sm);font-family:var(--font-body);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.purchase-balance-row{margin:0 0 var(--space-md);font-family:var(--font-body);color:var(--primary);align-items:center;gap:8px;font-size:1rem;display:inline-flex}.purchase-balance-icon{width:18px;height:18px;color:var(--primary)}.purchase-disabled-banner{gap:var(--space-sm);margin:0 0 var(--space-md);padding:var(--space-sm);background:var(--surface-lowest);border:1px solid color-mix(in srgb, var(--outline-variant) 30%, transparent);border-radius:var(--radius);box-shadow:0 4px 15px color-mix(in srgb, var(--primary) 4%, transparent);align-items:flex-start;display:flex}.purchase-disabled-banner-icon{color:var(--primary);flex-shrink:0;margin-top:1px;line-height:0}.purchase-disabled-banner p{color:var(--on-surface);margin:0;font-size:.85rem}.surface-card{background:var(--surface-lowest);border:1px solid color-mix(in srgb, var(--outline-variant) 30%, transparent);border-radius:var(--radius);box-shadow:0 4px 15px color-mix(in srgb, var(--primary) 4%, transparent)}.paywall-pack-list{margin:0 0 var(--space-md);gap:var(--space-sm);grid-template-columns:1fr;padding:0;list-style:none;display:grid}.credits-paywall .paywall-pack-list{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding-top:.65rem}.paywall-pack-card{align-items:center;gap:var(--space-sm);padding:16px;display:flex}.credits-paywall .paywall-pack-card{text-align:center;align-items:stretch;gap:var(--space-sm);box-sizing:border-box;flex-direction:column;height:100%;position:relative}.credits-paywall .paywall-pack-card-popular{border:2px solid var(--secondary);box-shadow:0 4px 15px color-mix(in srgb, var(--secondary) 4%, transparent)}.paywall-pack-badge{border-radius:var(--radius-full);background:var(--secondary);color:#fff;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;margin:0;padding:.2rem .65rem;font-size:.65rem;font-weight:700;line-height:1.2;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.paywall-pack-icon{color:var(--primary);flex-shrink:0}.credits-paywall .paywall-pack-icon{align-self:center;width:28px;height:28px}.paywall-pack-copy{flex:1;min-width:0}.credits-paywall .paywall-pack-copy{flex:1}.paywall-pack-title{font-family:var(--font-display);color:var(--on-surface);margin:0;font-size:14px;font-weight:600;line-height:20px}.credits-paywall .paywall-pack-title{font-size:1rem;line-height:1.3}.paywall-pack-price{font-family:var(--font-body);color:var(--muted);margin:0;font-size:12px;line-height:16px}.credits-paywall .paywall-pack-price{margin-top:4px;font-size:.9rem}.btn-buy-pill{appearance:none;border-radius:var(--radius-full);background:var(--primary);min-height:40px;color:var(--on-primary);font-family:var(--font-display);cursor:pointer;border:0;flex-shrink:0;padding:.5rem 1.1rem;font-size:14px;font-weight:600}.credits-paywall .btn-buy-pill{width:100%;margin-top:auto}.btn-buy-pill:hover{background:var(--primary);color:var(--on-primary);filter:brightness(1.08)}.btn-outline-pill{border-radius:var(--radius-full);border:1px solid var(--primary);width:100%;min-height:48px;color:var(--primary);font-family:var(--font-display);box-sizing:border-box;background:0 0;justify-content:center;align-items:center;padding:0 1.25rem;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn-outline-pill:hover,.btn-outline-pill:visited{background:color-mix(in srgb, var(--primary) 6%, transparent);color:var(--primary);border-color:var(--primary);text-decoration:none}.paywall-upsell{gap:var(--space-sm);flex-direction:column;padding:16px;display:flex}.paywall-upsell-title{font-family:var(--font-display);color:var(--on-surface);margin:0;font-size:14px;font-weight:600}.paywall-upsell-body{color:var(--muted);margin:0;font-size:12px;line-height:16px}.plans-page{width:100%;max-width:none}.plans-paywall{width:100%}.plans-paywall-headline{margin:0 0 var(--space-md);font-family:var(--font-display);color:var(--on-surface);font-size:1.5rem;font-weight:600;line-height:1.33}.plans-period-toggle{width:100%;max-width:28rem;margin:0 auto var(--space-md);border-radius:var(--radius-full);background:var(--surface-container);border:1px solid color-mix(in srgb, var(--outline-variant) 40%, transparent);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.plans-period-option{appearance:none;border-radius:var(--radius-full);min-height:40px;color:var(--muted);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;padding:.45rem 1rem;font-size:.9rem;font-weight:600}.plans-period-option-active{background:var(--surface-lowest);color:var(--primary);box-shadow:0 1px 4px color-mix(in srgb, var(--primary) 10%, transparent)}.plans-compare{box-sizing:border-box;width:100%;margin:0;padding:.65rem 0 0;overflow:visible}.plans-compare-table{border-collapse:collapse;table-layout:fixed;width:100%}.plans-compare-col-plus{background:color-mix(in srgb, var(--secondary) 6%, var(--surface-lowest));box-shadow:inset 2px 0 0 var(--secondary), inset -2px 0 0 var(--secondary);position:relative}thead .plans-compare-col-plus{box-shadow:inset 2px 0 0 var(--secondary), inset -2px 0 0 var(--secondary), inset 0 2px 0 var(--secondary);border-radius:var(--radius) var(--radius) 0 0}tfoot .plans-compare-col-plus{box-shadow:inset 2px 0 0 var(--secondary), inset -2px 0 0 var(--secondary), inset 0 -2px 0 var(--secondary);border-radius:0 0 var(--radius) var(--radius)}.plans-compare-badge{border-radius:var(--radius-full);background:var(--secondary);color:#fff;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:.2rem .65rem;font-size:.65rem;font-weight:700;line-height:1.2;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.plans-compare-header{flex-direction:column;align-items:center;gap:2px;padding:.85rem 0 .35rem;display:flex;position:relative}.plans-compare-table th,.plans-compare-table td{text-align:center;vertical-align:middle;font-family:var(--font-display);color:var(--on-surface);border-bottom:1px solid color-mix(in srgb, var(--outline-variant) 35%, transparent);padding:.6rem .4rem;font-size:.85rem;font-weight:400}.plans-compare-feature-col{width:34%}.plans-compare-feature{text-align:left!important;color:var(--muted)!important;font-size:.9rem!important;font-weight:400!important}.plans-compare-table tbody tr:nth-child(2n){background:color-mix(in srgb, var(--surface-low) 70%, transparent)}.plans-compare-table tbody tr:nth-child(2n) .plans-compare-col-plus{background:color-mix(in srgb, var(--secondary) 8%, var(--surface-low))}.plans-compare-table thead th{border-bottom-color:color-mix(in srgb, var(--outline-variant) 50%, transparent)}.plans-compare-plan{font-size:1rem;font-weight:600}.plans-compare-price{color:var(--primary);font-size:.95rem;font-weight:600}.plans-compare-current{font-family:var(--font-body);color:var(--secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.plans-compare-empty{color:var(--muted)}.plans-compare-table tfoot td{border-bottom:0;padding:.85rem .5rem}.plans-subscribe-btn{width:100%;max-width:8rem;margin-left:auto;margin-right:auto;display:block}.plans-subscribe-btn.btn-ghost{border-radius:var(--radius-full);min-height:40px;font-family:var(--font-display);color:var(--muted);cursor:default;font-size:14px;font-weight:600}.plans-subscribe-btn:disabled{opacity:.55;cursor:default;filter:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.account{gap:var(--space-lg);flex-direction:column;width:100%;max-width:36rem;display:flex}.account-header h1{font-family:var(--font-display);color:var(--on-surface);margin:0 0 .35rem;font-size:clamp(1.75rem,3vw,2.1rem);font-weight:700;line-height:1.15}.account-email{color:var(--muted);word-break:break-word;margin:0;font-size:1.05rem}.account-lede{max-width:28rem;color:var(--muted);margin:0}.account-summary{background:color-mix(in srgb, var(--outline-variant) 55%, transparent);border:1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:1px;margin:0;padding:0;display:grid;overflow:hidden}.account-summary-item{padding:var(--space-md);background:var(--surface-lowest);margin:0}.account-summary-item dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .35rem;font-size:.75rem;font-weight:600}.account-summary-item dd{align-items:flex-start;gap:var(--space-sm);flex-direction:column;margin:0;display:flex}.account-summary-value{font-family:var(--font-display);color:var(--on-surface);margin:0;font-size:1.35rem;font-weight:700;line-height:1.2}.account-summary-cta{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.account-summary-cta:hover,.account-summary-cta:visited{color:var(--on-primary);text-decoration:none}.account-section h2{margin:0 0 var(--space-sm);font-family:var(--font-display);color:var(--on-surface);font-size:1rem;font-weight:700}.account-promo{gap:var(--space-sm);flex-wrap:wrap;display:flex}.account-promo-input{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--outline-variant);background:var(--surface-lowest);min-width:0;font:inherit;color:var(--on-surface);flex:12rem;padding:.7rem .85rem}.account-promo-input:focus{outline:2px solid color-mix(in srgb, var(--primary) 45%, transparent);outline-offset:1px}.account-feedback{margin:var(--space-sm) 0 0;color:var(--secondary);font-size:.9rem}.account-feedback.is-error{color:var(--error)}.account-session{padding-top:var(--space-sm);border-top:1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent)}.account-text-btn{appearance:none;color:var(--muted);font-family:var(--font-display);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:.95rem;font-weight:600}.account-text-btn:hover:not(:disabled){color:var(--on-surface)}.account-text-btn.is-danger{color:var(--error)}.account-text-btn.is-danger:hover:not(:disabled){color:color-mix(in srgb, var(--error) 80%, #000)}.account-text-btn:disabled{opacity:.55;cursor:default}.account-danger{padding-top:var(--space-sm);border-top:1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent)}.account-danger h2{color:var(--muted);font-weight:600}.account-delete-confirm{gap:var(--space-sm);flex-direction:column;display:flex}.account-delete-confirm p{color:var(--muted);max-width:28rem;margin:0;font-size:.95rem}.account-delete-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.account-delete-confirm-btn{background:var(--error);color:#fff}.account-delete-confirm-btn:hover:not(:disabled){filter:brightness(1.05)}@media (max-width:520px){.account-summary{grid-template-columns:1fr}}.lesson-shell{gap:1rem;display:grid}.card-panel{border:1px solid var(--outline-variant);border-radius:var(--radius);background:#fff;padding:1rem}.row-actions{flex-wrap:wrap;gap:.75rem;display:flex}.product-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.product-list li{border:1px solid var(--outline-variant);border-radius:var(--radius);background:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.legal section{margin-bottom:1.5rem}.legal-table-wrap{margin:.75rem 0 1rem;overflow-x:auto}.legal-table{border-collapse:collapse;width:100%;font-size:.92rem}.legal-table th,.legal-table td{text-align:left;vertical-align:top;border:1px solid var(--outline-variant);padding:.55rem .65rem}.legal-table th{font-family:var(--font-display);background:var(--surface-container);font-size:.8rem}body.cookie-banner-open .page{padding-bottom:min(42vh,18rem)}.cookie-banner{z-index:50;padding:var(--space-sm) var(--space-md) calc(var(--space-sm) + env(safe-area-inset-bottom,0));background:var(--surface-lowest);border-top:1px solid var(--outline-variant);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 32px #181c221f}.cookie-banner-inner{max-width:960px;margin:0 auto}.cookie-banner h2{margin:0 0 var(--space-xs);font-size:1.05rem}.cookie-banner p{margin:0 0 var(--space-sm);color:var(--muted);font-size:.95rem}.cookie-banner-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.cookie-banner-actions .btn{flex:8rem}.btn-cookie-reject{background:var(--surface-container-highest);color:var(--on-surface)}.cookie-preferences-backdrop{z-index:51;padding:var(--space-md);background:#181c2266;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cookie-preferences-dialog{width:min(100%,440px);max-height:min(90vh,640px);padding:var(--space-lg) var(--space-md) var(--space-md);background:var(--surface-lowest);border-radius:var(--radius-xl);overflow:auto;box-shadow:0 16px 40px #181c222e}.cookie-preferences-dialog h2{margin:0 0 var(--space-sm)}.cookie-preferences-dialog>p{margin:0 0 var(--space-md);color:var(--muted)}.cookie-gpc-note{margin:0 0 var(--space-md);padding:var(--space-sm);border-radius:var(--radius);background:var(--surface-container);color:var(--on-surface);font-size:.9rem}.cookie-pref-list{margin:0 0 var(--space-md);gap:var(--space-sm);padding:0;list-style:none;display:grid}.cookie-pref-list li{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius);display:flex}.cookie-pref-list strong{font-family:var(--font-display)}.cookie-pref-list p{color:var(--muted);margin:.25rem 0 0;font-size:.9rem}.cookie-switch input{width:1.15rem;height:1.15rem}.cookie-preferences-actions{gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.legal-cookie-actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;margin:.5rem 0 0;display:flex}.legal-cookie-actions .btn{padding:.5rem 1rem;font-size:.9rem}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.object-cover{object-fit:cover}.footer-links{color:var(--muted);flex-wrap:wrap;gap:1rem;margin-top:3rem;font-size:.95rem;display:flex}.site-footer{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent);gap:var(--space-sm);flex-direction:column;display:flex}.site-footer-row{justify-content:space-between;align-items:center;gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.site-footer-store{flex-shrink:0;margin:-.35rem -.45rem -.15rem auto;line-height:0;display:inline-flex}.site-footer-store:hover{opacity:.92}.site-footer-store-badge{width:auto;height:48px}.site-footer-nav{flex-wrap:wrap;align-items:center;gap:.35rem 1.25rem;display:flex}.site-footer-nav a,.site-footer-nav a:visited,.site-footer-cookie-settings{font-family:var(--font-display);color:var(--muted);font-size:.875rem;font-weight:600;text-decoration:none}.site-footer-cookie-settings{appearance:none;cursor:pointer;background:0 0;border:0;padding:0}.site-footer-nav a:hover,.site-footer-cookie-settings:hover{color:var(--primary);text-decoration:none}.site-footer-copy{font-family:var(--font-body);color:color-mix(in srgb, var(--muted) 85%, transparent);margin:0;font-size:.8rem;line-height:1.4}.about-page{max-width:40rem}.about-hero{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent)}.about-kicker{margin:0 0 var(--space-sm);font-family:var(--font-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--primary);font-size:.75rem;font-weight:700}.about-hero h1{margin:0 0 var(--space-md);font-family:var(--font-display);letter-spacing:-.02em;color:var(--on-surface);font-size:clamp(1.75rem,4vw,2.35rem);font-weight:700;line-height:1.15}.about-lead{color:var(--muted);margin:0;font-size:1.125rem;line-height:1.55}.about-lead em{color:var(--on-surface);font-style:italic}.about-section{margin-bottom:var(--space-lg)}.about-section h2{margin:0 0 var(--space-sm);font-family:var(--font-display);color:var(--on-surface);font-size:1.25rem;font-weight:700}.about-section p{color:var(--muted);margin:0 0 .85rem;font-size:1.05rem;line-height:1.6}.about-section p:last-child{margin-bottom:0}.about-steps{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.about-steps li{padding:var(--space-sm) var(--space-md);background:var(--surface-lowest);border:1px solid color-mix(in srgb, var(--outline-variant) 35%, transparent);border-radius:var(--radius);border-left:4px solid var(--primary);color:var(--muted);box-shadow:0 4px 15px color-mix(in srgb, var(--primary) 4%, transparent);font-size:1.05rem;line-height:1.5}.about-steps strong{font-family:var(--font-display);color:var(--on-surface);margin-bottom:.2rem;font-size:.95rem;font-weight:700;display:block}.about-cta-row{align-items:center;gap:var(--space-sm) var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.about-contact a{font-weight:600}main>h1{font-family:var(--font-display);color:var(--on-surface);font-weight:700}
