:root{--color-bg:#f6f5ff;--color-surface:#fff;--color-surface-muted:#f1f0fb;--color-border:#e2e1f5;--color-text-primary:#17162a;--color-text-secondary:#5c5a75;--color-primary:#6d28d9;--color-primary-hover:#5b21b6;--color-primary-contrast:#fff;--color-accent:#ec4899;--color-success:#15803d;--color-success-bg:#e8f7ee;--color-success-border:#a7dcb8;--color-error:#b91c1c;--color-error-bg:#fdecec;--color-error-border:#f3b8b8;--color-focus-ring:#6d28d9;--gradient-primary:linear-gradient(135deg, #6366f1 0%, #8b5cf6 55%, #d946ef 100%);--gradient-surface:linear-gradient(160deg, #f6f5ff 0%, #eef0ff 45%, #fdf2ff 100%);--gradient-text:linear-gradient(120deg, #6366f1, #d946ef);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-full:999px;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:1.75rem;--font-size-3xl:2.5rem;--font-weight-normal:400;--font-weight-medium:600;--font-weight-bold:700;--font-weight-black:800;--line-height-base:1.55;--shadow-sm:0 1px 2px #1f14460f;--shadow-md:0 12px 32px #1f14461a;--shadow-lg:0 24px 60px #1f144629;--shadow-glow:0 8px 28px #6d28d959;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-base:.28s;--duration-slow:.5s;--transition-fast:var(--duration-fast) var(--ease-out);--transition-base:var(--duration-base) var(--ease-out)}@media (prefers-color-scheme:dark){:root{--color-bg:#131120;--color-surface:#1c1a2e;--color-surface-muted:#242138;--color-border:#34304e;--color-text-primary:#f3f2fb;--color-text-secondary:#a8a4c9;--color-primary:#a78bfa;--color-primary-hover:#c4b5fd;--color-primary-contrast:#17162a;--color-accent:#f472b6;--color-success:#4ade80;--color-success-bg:#123122;--color-success-border:#1f5c3a;--color-error:#f87171;--color-error-bg:#331616;--color-error-border:#6b2a2a;--color-focus-ring:#a78bfa;--gradient-primary:linear-gradient(135deg, #818cf8 0%, #a78bfa 55%, #e879f9 100%);--gradient-surface:linear-gradient(160deg, #131120 0%, #1a1730 45%, #201a33 100%);--gradient-text:linear-gradient(120deg, #a78bfa, #e879f9);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 32px #00000073;--shadow-lg:0 24px 60px #0000008c;--shadow-glow:0 8px 28px #a78bfa59}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased}#root{min-height:100vh}img,svg{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3,p{margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{width:100%;max-width:720px;padding:0 var(--space-4);margin:0 auto}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.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}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #0000;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.btn-primary{background:var(--gradient-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-glow);background-size:160% 160%}.btn-primary:hover:not(:disabled){background-position:100% 0;transform:translateY(-2px);box-shadow:0 14px 34px #6d28d96b}.btn-primary:disabled{opacity:.45;box-shadow:none}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:100%}to{background-position:0%}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-12px)rotate(0)}to{opacity:0;transform:translateY(160px)rotate(320deg)}}@keyframes gentle-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@keyframes drift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(3%,-4%)scale(1.05)}}.enter-fade-up{--enter-delay:0s;animation:fade-in-up var(--duration-slow) var(--ease-out) both;animation-delay:var(--enter-delay)}.app-shell{background:var(--gradient-surface);flex-direction:column;min-height:100vh;display:flex}.app-shell__header{z-index:10;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 82%, transparent);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}.app-shell__header-inner{padding-top:var(--space-4);padding-bottom:var(--space-4);justify-content:space-between;align-items:center;max-width:960px;display:flex}.app-shell__brand{font-weight:var(--font-weight-black);font-size:var(--font-size-lg);letter-spacing:-.02em;background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.app-shell__new-topic{border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);background:0 0;position:relative}.app-shell__new-topic:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-1px)}.app-shell__main{padding:var(--space-6) var(--space-4);flex:1;display:flex}.error-view{width:100%;max-width:480px;margin:auto}.error-view__card{padding:var(--space-6);text-align:center;align-items:center;gap:var(--space-3);border-color:var(--color-error-border);animation:fade-in-up var(--duration-base) var(--ease-out) both;flex-direction:column;display:flex}.error-view__icon{font-size:var(--font-size-2xl);color:var(--color-error);animation:gentle-shake .5s var(--ease-out) .2s both;display:inline-block}.error-view__card p{color:var(--color-text-secondary)}.error-view__actions{margin-top:var(--space-2);gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.home-input{gap:var(--space-6);isolation:isolate;flex-direction:column;width:100%;margin:auto;display:flex;position:relative}.home-input__glow{filter:blur(10px);z-index:-1;pointer-events:none;background-color:#0000;background-image:radial-gradient(closest-side,#6d28d938,#0000 70%),radial-gradient(closest-side,#ec489929,#0000 70%);background-position:20% 30%,80% 20%;background-repeat:no-repeat;background-size:60% 100%,55% 100%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;height:320px;animation:12s ease-in-out infinite drift;position:absolute;inset:-120px -80px auto}.home-input__intro{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.home-input__badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);align-items:center;display:inline-flex}.home-input__intro h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-black);letter-spacing:-.03em;background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.home-input__intro p{color:var(--color-text-secondary);font-size:var(--font-size-lg);max-width:480px;margin:0 auto}.home-input__form{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.home-input__textarea{resize:vertical;width:100%;min-height:160px;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:var(--font-size-base);line-height:var(--line-height-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.home-input__textarea:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 18%, transparent);outline:none}.home-input__actions{justify-content:flex-end;display:flex}@media (width<=480px){.home-input__actions{justify-content:stretch}.home-input__actions .btn{width:100%}}.loading-view{gap:var(--space-5);flex-direction:column;width:100%;margin:auto;display:flex}.loading-view__label{text-align:center;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);justify-content:center;align-items:center;gap:var(--space-2);display:flex}.loading-view__dots{gap:4px;display:inline-flex}.loading-view__dot{border-radius:var(--radius-full);background:var(--gradient-primary);width:8px;height:8px;animation:pop 1.2s var(--ease-spring) infinite;display:inline-block}.loading-view__dot:nth-child(2){animation-delay:.15s}.loading-view__dot:nth-child(3){animation-delay:.3s}.loading-view__skeleton{padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.loading-view__cards{gap:var(--space-3);grid-template-columns:1fr 1fr 1fr 1fr;display:grid}.skeleton-block{height:90px}.skeleton-line,.skeleton-block{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-surface-muted) 25%, var(--color-border) 37%, var(--color-surface-muted) 63%);background-size:400% 100%;animation:1.4s infinite shimmer}.skeleton-line{height:14px}.skeleton-line--title{width:40%;height:20px}.skeleton-line--short{width:60%}@media (width<=560px){.loading-view__cards{grid-template-columns:1fr 1fr}}.quiz-complete{padding:var(--space-7) var(--space-5);text-align:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex;position:relative;overflow:hidden}.quiz-complete__confetti{pointer-events:none;position:absolute;inset:0}.quiz-complete__confetti-piece{width:8px;height:14px;animation:confetti-fall 1.8s var(--ease-out) both;border-radius:2px;position:absolute;top:-12px}.quiz-complete__emoji{animation:pop .6s var(--ease-spring) both;font-size:3rem}.quiz-complete__score{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-success);animation:fade-in-up var(--duration-base) var(--ease-out) both;animation-delay:.15s}.quiz-complete__message{color:var(--color-text-secondary)}.quiz-complete__actions{margin-top:var(--space-4);gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.quiz-progress{gap:var(--space-2);flex-direction:column;display:flex}.quiz-progress__label{text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.quiz-progress__track{border-radius:var(--radius-full);background:var(--color-surface-muted);border:1px solid var(--color-border);height:8px;overflow:hidden}.quiz-progress__fill{border-radius:var(--radius-full);background:var(--gradient-primary);height:100%;transition:width var(--duration-slow) var(--ease-out)}.quiz-option{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;font-size:var(--font-size-base);transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);display:flex}.quiz-option:hover:not(:disabled){border-color:var(--color-primary);transform:translate(2px)}.quiz-option:disabled{cursor:default}.quiz-option:disabled:not(.quiz-option--correct):not(.quiz-option--incorrect){opacity:.55}.quiz-option__result{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);white-space:nowrap;animation:pop var(--duration-base) var(--ease-spring) both;display:inline-flex}.quiz-option--correct{border-color:var(--color-success-border);background:var(--color-success-bg)}.quiz-option--correct .quiz-option__result{color:var(--color-success)}.quiz-option--incorrect{border-color:var(--color-error-border);background:var(--color-error-bg);animation:gentle-shake .4s var(--ease-out)}.quiz-option--incorrect .quiz-option__result{color:var(--color-error)}.quiz-question{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.quiz-question__text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:1.4}.quiz-question__options{gap:var(--space-3);flex-direction:column;display:flex}.quiz-question__explanation,.quiz-question__retry-note{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text-secondary);animation:fade-in-up var(--duration-base) var(--ease-out) both}.quiz-question__actions{justify-content:flex-end;display:flex}@media (width<=480px){.quiz-question__actions .btn{width:100%}}.quiz-view{gap:var(--space-4);flex-direction:column;width:100%;max-width:640px;margin:auto;display:flex}.results-choice{text-align:center;gap:var(--space-2);flex-direction:column;width:100%;max-width:640px;margin:auto;display:flex}.results-choice__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-primary)}.results-choice__topic{font-size:var(--font-size-2xl);font-weight:var(--font-weight-black);letter-spacing:-.02em}.results-choice__hint{color:var(--color-text-secondary);margin-bottom:var(--space-4)}.results-choice__actions{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.results-choice__option{padding:var(--space-6) var(--space-4);align-items:center;gap:var(--space-2);background:var(--color-surface);text-align:center;transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);flex-direction:column;display:flex;position:relative}.results-choice__option:hover{box-shadow:var(--shadow-lg);background:linear-gradient(var(--color-surface), var(--color-surface)) padding-box, var(--gradient-primary) border-box;border:1px solid #0000;transform:translateY(-4px)scale(1.02)}.results-choice__option-icon{font-size:1.75rem}.results-choice__option-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.results-choice__option-desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}@media (width<=560px){.results-choice__actions{grid-template-columns:1fr}}.breakdown-card{gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);display:flex}.breakdown-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary);transform:translateY(-3px)}.breakdown-card__index{border-radius:var(--radius-full);background:var(--gradient-primary);width:40px;height:40px;color:var(--color-primary-contrast);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;display:flex}.breakdown-card__body{gap:var(--space-1);flex-direction:column;display:flex}.breakdown-card__heading{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.breakdown-card__content{color:var(--color-text-secondary);line-height:var(--line-height-base)}@media (width<=480px){.breakdown-card{padding:var(--space-4);gap:var(--space-3)}.breakdown-card__index{width:32px;height:32px;font-size:.75rem}}.flashcard{perspective:1200px;text-align:left;background:0 0;border:none;width:100%;height:200px;padding:0}.flashcard__inner{width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-spring);transform-style:preserve-3d;display:block;position:relative}.flashcard--flipped .flashcard__inner{transform:rotateY(180deg)}.flashcard__face{justify-content:center;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);backface-visibility:hidden;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex;position:absolute;inset:0}.flashcard:hover .flashcard__face{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.flashcard__face--back{background:var(--gradient-surface);transform:rotateY(180deg)}.flashcard__label{text-transform:uppercase;letter-spacing:.06em;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-primary)}.flashcard__text{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);overflow-y:auto}.summary-view{gap:var(--space-6);flex-direction:column;width:100%;max-width:640px;margin:auto;display:flex}.summary-view__summary{padding:var(--space-5);gap:var(--space-2);background:var(--gradient-surface);flex-direction:column;display:flex}.summary-view__eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.summary-view__text{font-size:var(--font-size-lg);line-height:var(--line-height-base)}.summary-view__breakdown{gap:var(--space-3);flex-direction:column;display:flex}.summary-view__section-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.summary-view__flashcards{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.summary-view__actions{justify-content:center;display:flex}@media (width<=560px){.summary-view__flashcards{grid-template-columns:1fr}}.boundary-fallback{min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.boundary-fallback__card{max-width:420px;padding:var(--space-6);text-align:center;gap:var(--space-4);flex-direction:column;display:flex}.boundary-fallback__card p{color:var(--color-text-secondary)}
