@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap";:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-soft: #dbeafe;--primary-softer: #eff6ff;--primary-text: #1e40af;--accent: #e87b35;--accent-hover: #d16a28;--accent-soft: #fff1e6;--accent-text: #9a4a14;--page-bg: #f5f2ee;--surface: #faf8f5;--surface-raised: #ffffff;--border: #ddd9d2;--border-light: #ebe7e1;--text-primary: #1a1815;--text-secondary: #5e5a54;--text-muted: #9a958e;--success: #2d8a56;--success-soft: #ddf3e6;--success-text: #1e6e40;--error: #c9392e;--error-soft: #fce5e3;--error-text: #a02a21;--warning: #b8862a;--warning-soft: #fdf3de;--warning-text: #7a5a1c;--font-main: "Outfit", sans-serif;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-pill: 100px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .04);--shadow-hover: 0 4px 14px rgba(0, 0, 0, .07);--transition: .15s ease-out;--hover-lift: translateY(-1px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);font-size:14px;color:var(--text-primary);background:var(--page-bg);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3{font-family:var(--font-main);line-height:1.2}a{color:var(--primary);text-decoration:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:16px 18px;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition)}.card:hover{transform:var(--hover-lift);box-shadow:var(--shadow-hover)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;padding:11px 22px;border-radius:var(--radius-md);font-family:var(--font-main);font-weight:700;font-size:14px;border:none;cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-primary:hover{background:var(--primary-hover);transform:var(--hover-lift)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface-raised);color:var(--text-primary);border:1.5px solid var(--border);padding:11px 22px;border-radius:var(--radius-md);font-family:var(--font-main);font-weight:700;font-size:14px;cursor:pointer;transition:border-color var(--transition),transform var(--transition)}.btn-secondary:hover{border-color:var(--primary);transform:var(--hover-lift)}.text-input,.text-area{padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);font-family:var(--font-main);font-size:14px;color:var(--text-primary);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.text-input:focus,.text-area:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.text-input::placeholder,.text-area::placeholder{color:var(--text-muted)}.chip{padding:6px 14px;border-radius:var(--radius-pill);border:1.5px solid var(--border);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition)}.chip.active{border-color:var(--primary);color:var(--primary-text);background:var(--primary-soft)}.badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.badge-primary{background:var(--primary-soft);color:var(--primary-text)}.badge-success{background:var(--success-soft);color:var(--success-text)}.badge-error{background:var(--error-soft);color:var(--error-text)}.badge-warning{background:var(--warning-soft);color:var(--warning-text)}.badge-muted{background:var(--border-light);color:var(--text-secondary)}.feedback{padding:16px 18px;border-radius:var(--radius-xl)}.feedback.correct{background:var(--success-soft);border:1.5px solid var(--success)}.feedback.incorrect{background:var(--error-soft);border:1.5px solid var(--error)}.option{padding:13px 16px;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.option:hover{border-color:var(--primary)}.option.selected{border-color:var(--primary);background:var(--primary-softer)}.option.correct{border-color:var(--success);background:var(--success-soft)}.option.incorrect{border-color:var(--error);background:var(--error-soft)}.progress-track{height:6px;background:var(--border-light);border-radius:var(--radius-pill)}.progress-fill{height:100%;background:var(--primary);border-radius:var(--radius-pill);transition:width var(--transition)}.page{max-width:440px;margin:0 auto;padding:24px 16px}@media(min-width:640px){.page{max-width:600px;padding:28px 20px}}@media(min-width:1024px){.page{max-width:720px;padding:32px 24px}}.revision-page{display:flex;min-height:100vh;background:var(--page-bg)}.revision-main{flex:1;display:flex;flex-direction:column;min-width:0}.rev-sidebar{flex-shrink:0;background:var(--page-bg);border-right:1px solid var(--border-light);z-index:100;transition:width .15s ease-out;display:flex;flex-direction:column}.rev-sidebar-collapsed{width:56px;cursor:pointer;align-items:center;padding:16px 0}.rev-sidebar-collapsed:hover{background:var(--surface)}.rev-sidebar-collapsed-inner{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.rev-sidebar-pill{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:var(--font-main);color:var(--text-muted);background:var(--border-light);transition:all .15s ease-out}.rev-sidebar-pill.active{background:var(--primary);color:#fff}.rev-sidebar-expand-hint{color:var(--text-muted);margin-top:12px;opacity:.5}.rev-sidebar-expanded{position:fixed;top:0;left:0;width:min(240px,80vw);height:100vh;z-index:210;background:var(--surface);box-shadow:4px 0 16px #00000014;overflow-y:auto}.rev-sidebar-scrim{position:fixed;inset:0;z-index:205;background:#0003}.rev-sidebar-header{padding:16px 16px 12px;border-bottom:1px solid var(--border-light);flex-shrink:0}.rev-sidebar-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.rev-sidebar-home{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--primary);font-family:var(--font-main);font-size:12px;font-weight:600;cursor:pointer;padding:0}.rev-sidebar-collapse-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:border-color .15s ease-out}.rev-sidebar-collapse-btn:hover{border-color:var(--primary);color:var(--primary)}.rev-sidebar-module-info{display:flex;flex-direction:column;gap:2px}.rev-sidebar-chapter-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.rev-sidebar-module-title{font-size:14px;font-weight:700;color:var(--text-primary);line-height:1.3;margin:0}.rev-sidebar-tree{flex:1;padding:8px 0 24px}.rev-sidebar-section{margin-bottom:2px}.rev-sidebar-section-btn{width:100%;display:flex;align-items:center;gap:8px;padding:10px 16px;background:none;border:none;cursor:pointer;font-family:var(--font-main);text-align:left;transition:background .15s ease-out}.rev-sidebar-section-btn:hover{background:var(--border-light)}.rev-sidebar-section-num{width:20px;height:20px;border-radius:var(--radius-sm);background:var(--border-light);color:var(--text-secondary);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rev-sidebar-section-btn.expanded .rev-sidebar-section-num{background:var(--primary-soft);color:var(--primary-text)}.rev-sidebar-section-title{font-size:12px;font-weight:700;color:var(--text-secondary);flex:1;min-width:0;line-height:1.3}.rev-sidebar-section-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .15s ease-out}.rev-sidebar-section-btn.expanded .rev-sidebar-section-chevron{transform:rotate(180deg)}.rev-sidebar-topics{padding:2px 0 4px}.rev-sidebar-topic{width:100%;display:flex;align-items:center;gap:8px;padding:7px 16px 7px 44px;background:none;border:none;border-left:2px solid transparent;cursor:pointer;font-family:var(--font-main);text-align:left;transition:all .15s ease-out}.rev-sidebar-topic:hover{background:var(--border-light)}.rev-sidebar-topic.active{border-left-color:var(--primary);background:var(--primary-softer)}.rev-sidebar-topic.flat{padding-left:16px}.rev-sidebar-topic-dot{width:5px;height:5px;border-radius:50%;background:var(--border);flex-shrink:0}.rev-sidebar-topic-dot.active{background:var(--primary)}.rev-sidebar-topic-title{font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.4;flex:1;min-width:0}.rev-sidebar-topic.active .rev-sidebar-topic-title{color:var(--primary);font-weight:600}.revision-top-bar{position:relative;display:flex;align-items:center;gap:12px;padding:6px 20px;background:var(--surface-raised);border-bottom:1px solid var(--border);flex-shrink:0}.revision-hamburger{background:none;border:1.5px solid var(--border);border-radius:var(--radius-md);width:30px;height:30px;display:none;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--text-primary);flex-shrink:0;font-family:var(--font-main)}.revision-top-bar-info{min-width:0;flex-shrink:1}.revision-top-bar-title{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.2}.revision-top-bar-subtitle{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.revision-slide-nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:16px}.revision-nav-btn{padding:5px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;font-family:var(--font-main);cursor:pointer;transition:all .15s ease-out;border:none;white-space:nowrap}.revision-nav-prev{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.revision-nav-prev:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.revision-nav-prev:disabled{opacity:.35;cursor:default}.revision-nav-next{background:var(--primary);color:#fff}.revision-nav-next:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #2563eb40}.revision-nav-next:disabled{opacity:.5;cursor:default}.revision-nav-dots{display:flex;gap:5px;align-items:center}.revision-nav-dot{width:7px;height:7px;border-radius:50%;background:var(--border)}.revision-nav-dot.active{background:var(--primary);width:20px;border-radius:4px}.revision-slide{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;align-content:start;max-width:1200px;width:100%;margin:0 auto;padding:24px 32px 20px;overflow-y:auto;transition:opacity .15s ease-out,transform .15s ease-out}.revision-slide.slide-visible{opacity:1;transform:translateY(0)}.revision-slide.slide-hidden{opacity:0;transform:translateY(6px)}.revision-slide .slide-left{grid-column:1;grid-row:1 / 3;align-self:start;padding-right:28px;border-right:1px solid var(--border-light)}.revision-slide .slide-right{grid-column:2;grid-row:1;align-self:start;padding-left:28px}.revision-questions-wrap{grid-column:2;grid-row:2;align-self:start;padding-left:28px;padding-top:20px}.revision-interest-wrap{grid-column:1 / -1;display:flex;justify-content:center;align-items:flex-start;padding-top:40px}@media(max-width:768px){.rev-sidebar-collapsed{display:none}.revision-hamburger{display:flex}.revision-top-bar{padding:6px 12px}.revision-slide{grid-template-columns:1fr;padding:16px;gap:20px}.revision-slide .slide-left{padding-right:0;border-right:none;border-bottom:1px solid var(--border-light);padding-bottom:20px}.revision-slide .slide-right{padding-left:0}.revision-questions-wrap{grid-column:1;padding-left:0}.revision-slide-nav{gap:8px}.revision-nav-btn{padding:6px 12px;font-size:12px}.revision-nav-dots{display:none}}.revision-question-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-card)}.revision-question-card+.revision-question-card{margin-top:16px}.revision-question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.revision-question-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.revision-question-count{font-size:11px;font-weight:600;color:var(--text-muted)}.revision-question-text{font-size:14px;font-weight:500;line-height:1.55;margin-bottom:12px;color:var(--text-primary)}.revision-question-options{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}.revision-question-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease-out;font-size:13px;font-family:var(--font-main);color:var(--text-primary);line-height:1.45;width:100%;text-align:left}.revision-question-option:hover:not(.correct):not(.incorrect):not(:disabled){border-color:var(--primary);background:var(--primary-softer)}.revision-question-option.selected{border-color:var(--primary);background:var(--primary-softer)}.revision-question-option.correct{border-color:#16a34a;background:#f0fdf4;cursor:default}.revision-question-option.incorrect{border-color:#dc2626;background:#fef2f2;cursor:default}.revision-question-option-letter{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--border-light);color:var(--text-secondary);font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px}.revision-question-option.correct .revision-question-option-letter{background:#16a34a;color:#fff}.revision-question-option.incorrect .revision-question-option-letter{background:#dc2626;color:#fff}.revision-question-check-btn{display:block;width:100%;padding:9px 16px;border:none;border-radius:var(--radius-md);background:var(--primary);color:#fff;font-size:13px;font-weight:700;font-family:var(--font-main);cursor:pointer;transition:background .15s ease-out;margin-top:4px}.revision-question-check-btn:disabled{opacity:.6;cursor:default}.revision-question-explanation{margin-top:12px;padding:12px 14px;background:var(--primary-softer);border:1px solid var(--primary-soft);border-radius:var(--radius-md);font-size:13px;line-height:1.6;color:var(--primary-text)}.revision-question-explanation-title{font-weight:700;margin-bottom:4px}.revision-question-completed-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--success-text);background:var(--success-soft);border:1px solid var(--success);border-radius:var(--radius-pill);padding:2px 8px;line-height:14px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ctaEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes strikeThrough{0%{width:0}to{width:100%}}@keyframes cursorBlink{50%{opacity:0}}@keyframes dieShake{0%{transform:rotate(-7deg) scale(1.04)}to{transform:rotate(7deg) scale(.97)}}@keyframes dieLand{0%{transform:scale(1.18)}60%{transform:scale(.93)}to{transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.home-card-enter{animation:fadeInUp .4s ease-out both}.collapse-section{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease-out}.collapse-section.is-open{grid-template-rows:1fr}.collapse-section>.collapse-content{overflow:hidden;min-height:0}.collapse-section .collapse-fade{opacity:0;transition:opacity .3s ease-out}.collapse-section.is-open .collapse-fade{opacity:1;transition:opacity .28s ease-out 70ms}.chapter-morph{position:relative;border-radius:var(--radius-xl);transition:height .42s cubic-bezier(.4,0,.2,1),border-color .3s ease-out,background-color .3s ease-out,box-shadow .3s ease-out;will-change:height}.chapter-morph.morph-has-border{border:1.5px solid var(--primary);background:var(--primary-softer);box-shadow:var(--shadow-card);overflow:hidden}.chapter-morph.morph-no-border{border:1.5px solid transparent;background:transparent;box-shadow:none}.chapter-morph-layer{width:100%;transition:opacity .38s ease-out}.chapter-morph-layer.morph-visible{opacity:1}.chapter-morph-layer.morph-hidden{opacity:0}.chapter-morph-layer.morph-abs{position:absolute;top:0;left:0;right:0}.chapter-morph-layer.morph-measure{position:absolute;visibility:hidden;pointer-events:none;top:0;left:0;right:0}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.scale-in{animation:scaleIn .2s ease-out both}@keyframes questionEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:translateY(-14px)}65%{transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes gradeSettle{0%{transform:scale(1.3)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes thoughtPop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes notif-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.question-enter{animation:questionEnter .35s cubic-bezier(.4,0,.2,1) both}.page-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.page-subtitle{font-size:15px;color:var(--text-secondary);margin-bottom:24px}
