@import"https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@300;400;500;600;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@300;400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--void: #06060c;--surface-0: #0a0a14;--surface-1: #0f0f1b;--surface-2: #151524;--surface-3: #1c1c30;--surface-elevated: #22223a;--mars: #c84125;--mars-bright: #e05535;--mars-dim: #8a2e1a;--cyan: #00e4ff;--cyan-dim: #007a8a;--amber: #d4a44a;--amber-dim: #8a6a2e;--success: #34d399;--success-dim: #065f46;--danger: #ef4444;--danger-dim: #7f1d1d;--text-primary: #eae9f0;--text-secondary: #a09fae;--text-dim: #6b6a78;--text-on-accent: #ffffff;--border-subtle: rgba(255, 255, 255, .05);--border-default: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 100px;--font-display: "Chakra Petch", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 30px rgba(0,0,0,.5);--shadow-glow-mars: 0 0 20px rgba(200,65,37,.2);--shadow-glow-cyan: 0 0 20px rgba(0,228,255,.15);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-pop: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background:var(--void);color:var(--text-primary);font-family:var(--font-body);line-height:1.6;min-height:100vh;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.25;letter-spacing:.01em}h1{font-size:1.75rem}h2{font-size:1.35rem}h3{font-size:1.1rem}h4{font-size:.95rem}p{color:var(--text-secondary);font-size:.95rem;line-height:1.65}.text-xs{font-size:.75rem}.text-sm{font-size:.85rem}.text-lg{font-size:1.15rem}.label{font-family:var(--font-display);font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.mono{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.03em}.text-mars{color:var(--mars-bright)}.text-cyan{color:var(--cyan)}.text-amber{color:var(--amber)}.text-success{color:var(--success)}.text-dim{color:var(--text-dim)}.text-center{text-align:center}.card-light{background:#f8f8fa;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-lg);padding:2rem;color:#1a1a2a}.card-light p{color:#4a4a5a}.card-light strong{color:#1a1a2a}.card-light .problem-question{font-size:1.15rem;line-height:1.65;color:#1a1a2a}.card-light .problem-narrative{color:#6a6a7a;border-left-color:var(--mars)}.card-light .problem-visual{background:#eeeef2;color:#3a3a4a}.card-light .answer-input{background:#fff;border-color:#d0d0d8;color:#1a1a2a}.card-light .answer-input:focus{border-color:var(--cyan)}.card-light .choice-pill{border-color:#c8c8d0;color:#2a2a3a;background:#fff}.card-light .choice-pill:hover{border-color:var(--cyan);background:#00e4ff0a}.card-light .choice-pill.selected{border-color:var(--cyan);background:#00e4ff14;color:#007a8a}.btn{font-family:var(--font-display);font-size:.9rem;font-weight:500;letter-spacing:.03em;border:none;border-radius:var(--radius-pill);cursor:pointer;padding:.85rem 2.2rem;transition:all var(--duration-normal) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;outline:none;position:relative;text-decoration:none;line-height:1}.btn-primary{background:var(--mars);color:var(--text-on-accent);box-shadow:0 2px 8px #c8412533}.btn-primary:hover{background:var(--mars-bright);box-shadow:var(--shadow-glow-mars);transform:translateY(-1px)}.btn-primary:active{transform:scale(.97)}.btn-check{background:var(--cyan);color:var(--void);font-weight:600;box-shadow:0 2px 8px #00e4ff26}.btn-check:hover{box-shadow:var(--shadow-glow-cyan);transform:translateY(-1px)}.btn-continue{background:var(--success);color:var(--void);font-weight:600}.btn-continue:hover{box-shadow:0 0 20px #34d39933}.btn-why{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border-strong);padding:.75rem 1.8rem}.btn-why:hover{border-color:#fff3;background:#ffffff08;color:var(--text-primary)}.btn-ghost{background:transparent;color:var(--text-dim);padding:.5rem 1rem;font-size:.82rem}.btn-ghost:hover{color:var(--text-primary)}.btn-full{width:100%}.btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-sm{padding:.55rem 1.2rem;font-size:.8rem}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;font-size:1.1rem}.action-bar{position:fixed;bottom:0;left:0;right:0;padding:1rem 1.5rem;background:#06060ceb;backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;gap:.75rem;z-index:50}.lesson-topbar{position:fixed;top:0;left:0;right:0;height:52px;display:flex;align-items:center;padding:0 1rem;gap:.75rem;background:#06060ceb;backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);z-index:50}.lesson-topbar .close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:1.1rem;border-radius:50%;transition:all var(--duration-fast)}.lesson-topbar .close-btn:hover{color:var(--text-primary);background:var(--surface-2)}.progress-bar{flex:1;height:8px;background:var(--surface-2);border-radius:100px;overflow:hidden}.progress-fill{height:100%;border-radius:100px;transition:width .6s var(--ease-out);background:linear-gradient(90deg,var(--mars),var(--mars-bright))}.progress-fill.cyan{background:linear-gradient(90deg,var(--cyan-dim),var(--cyan))}.progress-fill.success{background:linear-gradient(90deg,var(--success-dim),var(--success))}.xp-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:500;color:var(--amber);display:flex;align-items:center;gap:.3rem;white-space:nowrap}.xp-badge:before{content:"✦";font-size:.65rem}.prog-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .85rem;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:100px;cursor:pointer;font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;transition:background .18s,border-color .18s,transform .18s}.prog-chip:hover{background:#00e4ff0d;border-color:#00e4ff40;transform:translateY(-1px)}.prog-chip[aria-expanded=true]{background:#00e4ff12;border-color:#00e4ff66}.prog-xp{font-size:1.05rem;font-weight:700;color:var(--amber);line-height:1;letter-spacing:.01em;min-width:1ch;text-align:right}.prog-xp-spark{font-size:.85rem;color:var(--amber);opacity:.85;line-height:1}.prog-divider{width:1px;height:14px;background:#ffffff1f;margin:0 .15rem}.prog-streak-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--mars-bright)}.prog-streak-icon svg{width:16px;height:16px;display:block}.prog-streak-num{font-size:1rem;font-weight:600;color:var(--mars-bright);line-height:1}.prog-chip.streak-cold .prog-streak-icon,.prog-chip.streak-cold .prog-streak-num{color:var(--text-dim);opacity:.6}.prog-pop{position:fixed;top:56px;right:1rem;z-index:90;width:260px;background:var(--surface-2);border:1px solid rgba(0,228,255,.25);border-radius:12px;padding:.85rem 1rem .95rem;box-shadow:0 18px 50px #0000008c,0 0 24px #00e4ff14;display:none;opacity:0;transform:translateY(-6px);transition:opacity .2s ease-out,transform .2s ease-out}.prog-pop.open{display:block;opacity:1;transform:translateY(0)}.prog-pop:before{content:"";position:absolute;top:-6px;right:28px;width:12px;height:12px;background:var(--surface-2);border-top:1px solid rgba(0,228,255,.25);border-left:1px solid rgba(0,228,255,.25);transform:rotate(45deg)}.prog-pop-row{display:flex;justify-content:space-between;align-items:baseline;padding:.45rem 0}.prog-pop-label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;color:var(--text-dim)}.prog-pop-value{font-family:var(--font-display);font-size:.98rem;font-weight:600;color:var(--text-primary)}.prog-pop-value.mono{font-family:var(--font-mono);font-size:.92rem}.prog-pop-divider{height:1px;background:var(--border-subtle);margin:.35rem 0 .55rem}.prog-pop-hint{font-size:.82rem;line-height:1.5;color:var(--text-secondary)}.prog-pop-hint strong{color:var(--cyan);font-weight:600}@media(max-width:540px){.prog-xp{font-size:.95rem}.prog-streak-num{font-size:.9rem}.prog-chip{padding:.35rem .7rem;gap:.35rem}.prog-pop{right:.5rem;width:calc(100vw - 1rem);max-width:320px}}.streak-badge{font-family:var(--font-mono);font-size:.72rem;color:var(--mars-bright);display:flex;align-items:center;gap:.3rem}.card{background:#15152499;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);padding:2rem;position:relative;box-shadow:0 4px 24px #0003,inset 0 1px #ffffff08}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.problem-card{max-width:520px;width:100%;margin:0 auto;padding:1.5rem}.problem-narrative{font-size:.82rem;color:var(--text-dim);font-style:italic;margin-bottom:1.5rem;padding-left:.8rem;border-left:2px solid var(--mars-dim)}.problem-question{font-size:1.15rem;line-height:1.7;margin-bottom:1.5rem}.problem-visual{background:var(--surface-1);border-radius:var(--radius-sm);padding:1.2rem;margin-bottom:1.5rem;font-family:var(--font-mono);font-size:.82rem;white-space:pre;line-height:1.6;color:var(--text-secondary);text-align:center;overflow-x:auto}.answer-input{font-family:var(--font-mono);font-size:1.4rem;text-align:center;padding:.9rem 1rem;border-radius:var(--radius-md);background:var(--surface-1);border:2px solid var(--border-default);color:var(--text-primary);width:100%;outline:none;transition:border-color var(--duration-normal);letter-spacing:.05em}.answer-input:focus{border-color:var(--cyan)}.answer-input.correct{border-color:var(--success);background:#34d3990a}.answer-input.incorrect{border-color:var(--danger);background:#ef44440a}.choice-pills{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1rem 0}.choice-pill{font-family:var(--font-mono);font-size:.95rem;padding:.6rem 1.2rem;border-radius:var(--radius-pill);border:1.5px solid var(--border-strong);background:transparent;color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast);min-width:48px;text-align:center}.choice-pill:hover{border-color:var(--cyan);background:#00e4ff0a}.choice-pill.selected{border-color:var(--cyan);background:#00e4ff14;color:var(--cyan)}.choice-pill.correct{border-color:var(--success);background:#34d39914;color:var(--success)}.choice-pill.incorrect{border-color:var(--danger);background:#ef444414;color:var(--danger)}.feedback{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-sm);margin-top:1rem;font-size:.88rem;line-height:1.4}.feedback.correct{background:#34d3990f;border:1px solid rgba(52,211,153,.12);color:var(--success)}.feedback.incorrect{background:#ef44440f;border:1px solid rgba(239,68,68,.12);color:var(--danger)}.nci-float{position:fixed;bottom:calc(6.5rem + env(safe-area-inset-bottom,0px));left:1.5rem;z-index:40;display:flex;align-items:flex-end;gap:.6rem;max-width:280px;max-height:40vh}.nci-float .nci-speech{max-height:36vh;overflow-y:auto;scrollbar-width:thin}.nci-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface-3);border:1.5px solid rgba(0,228,255,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.nci-avatar .dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:nci-pulse 2.5s infinite}.nci-speech{background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) 4px;padding:.7rem .9rem;font-size:.85rem;line-height:1.5;color:var(--text-primary);box-shadow:var(--shadow-md)}.nci-speech .nci-label{font-size:.6rem;color:var(--cyan);margin-bottom:.25rem;display:block}@keyframes nci-pulse{0%,to{opacity:1}50%{opacity:.3}}.rank-insignia{width:96px;height:96px;margin:0 auto;border:2px solid var(--amber);border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(212,164,74,.06),transparent);box-shadow:0 0 40px #d4a44a14;position:relative}.rank-insignia:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(212,164,74,.1)}input[type=text],input[type=email],input[type=password]{font-family:var(--font-body);font-size:.95rem;background:var(--surface-1);border:1.5px solid var(--border-default);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text-primary);width:100%;outline:none;transition:border-color var(--duration-normal)}input:focus{border-color:#00e4ff59}input::placeholder{color:var(--text-dim)}.nav{position:fixed;top:0;left:0;right:0;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;background:#06060ceb;backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);z-index:50}.nav-brand{font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.08em;color:var(--text-primary);text-decoration:none}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{font-family:var(--font-display);font-size:.75rem;letter-spacing:.06em;color:var(--text-dim);text-decoration:none;padding:.5rem .8rem;border-radius:var(--radius-sm);transition:all var(--duration-fast)}.nav-link:hover,.nav-link.active{color:var(--text-primary);background:var(--surface-2)}@media(max-width:680px){.nav{padding:0 .7rem;gap:.5rem;overflow:hidden}.nav-brand{font-size:.72rem;flex-shrink:0}.nav-links{flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.nav-links::-webkit-scrollbar{display:none}.nav-link{white-space:nowrap;padding:.5rem}.id-chip{flex-shrink:0}}.id-chip{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .7rem .4rem .45rem;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:100px;cursor:pointer;font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;transition:background .18s,border-color .18s,transform .18s}.id-chip:hover{background:#00e4ff0d;border-color:#00e4ff40;transform:translateY(-1px)}.id-chip[aria-expanded=true]{background:#00e4ff12;border-color:#00e4ff66}.id-rank{font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;color:var(--cyan);background:#00e4ff14;border:1px solid rgba(0,228,255,.2);padding:.2rem .4rem;border-radius:4px;line-height:1}.id-name{font-size:.88rem;font-weight:600;color:var(--text-primary);line-height:1}.id-caret{width:10px;height:7px;color:var(--text-dim);transition:transform .2s}.id-chip[aria-expanded=true] .id-caret{transform:rotate(180deg);color:var(--cyan)}.id-menu{position:fixed;top:56px;right:1rem;z-index:90;width:240px;background:var(--surface-2);border:1px solid rgba(0,228,255,.25);border-radius:12px;padding:.6rem 0;box-shadow:0 18px 50px #0000008c,0 0 24px #00e4ff14;display:none;opacity:0;transform:translateY(-6px);transition:opacity .18s ease-out,transform .18s ease-out}.id-menu.open{display:block;opacity:1;transform:translateY(0)}.id-menu:before{content:"";position:absolute;top:-6px;right:22px;width:12px;height:12px;background:var(--surface-2);border-top:1px solid rgba(0,228,255,.25);border-left:1px solid rgba(0,228,255,.25);transform:rotate(45deg)}.id-menu-head{display:flex;align-items:center;gap:.85rem;padding:.7rem 1rem .8rem}.id-menu-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;position:relative;background:linear-gradient(135deg,#00e4ff1f,#00e4ff0a);border:1px solid rgba(0,228,255,.25);display:flex;align-items:center;justify-content:center}.id-menu-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.id-menu-initials{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--cyan);letter-spacing:.04em;user-select:none}.id-menu-id{min-width:0;flex:1}.id-menu-name{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.2;margin-bottom:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.id-menu-sub{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;color:var(--text-dim);text-transform:uppercase}.id-menu-divider{height:1px;background:var(--border-subtle);margin:.4rem 0}.id-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem 1rem;font-family:var(--font-display);font-size:.9rem;color:var(--text-primary);text-decoration:none;background:transparent;border:0;text-align:left;cursor:pointer;pointer-events:auto;transition:background .15s,color .15s}.id-menu-item:hover{background:#00e4ff0f;color:var(--cyan)}.id-menu-item.disabled{color:var(--text-dim);cursor:not-allowed}.id-menu-item.disabled:hover{background:transparent;color:var(--text-dim)}.id-menu-tag{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.1em;color:var(--text-dim);border:1px solid var(--border-subtle);padding:.1rem .35rem;border-radius:3px}.id-menu-signout{color:var(--mars-bright)}.id-menu-signout:hover{background:#e0553514;color:var(--mars-bright)}@media(max-width:720px){.id-name{display:none}.id-chip{padding:.4rem .55rem .4rem .4rem;gap:.4rem}.id-menu{right:.5rem}}.page{padding-top:72px;padding-bottom:2rem}.page-centered{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem}.container{max-width:720px;margin:0 auto;padding:0 1.5rem}.container-sm{max-width:480px;margin:0 auto;padding:0 1.5rem}.gap-xs{height:.5rem}.gap-sm{height:.75rem}.gap-md{height:1rem}.gap-lg{height:1.5rem}.gap-xl{height:2rem}.gap-2xl{height:3rem}.divider{display:flex;align-items:center;gap:.8rem;margin:1.5rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.animate-fade-in{animation:fadeIn .5s var(--ease-out) forwards}.animate-fade-up{animation:fadeUp .6s var(--ease-out) forwards}.animate-scale-in{animation:scaleIn .5s var(--ease-pop) forwards}.animate-slide-up{animation:slideUp .4s var(--ease-out) forwards}.delay-1{animation-delay:.1s;opacity:0}.delay-2{animation-delay:.2s;opacity:0}.delay-3{animation-delay:.3s;opacity:0}.delay-4{animation-delay:.4s;opacity:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.btn-beam{position:relative;overflow:hidden;border-radius:var(--radius-pill)}.btn-beam:before{content:"";position:absolute;width:200%;height:200%;top:-50%;left:-50%;background:conic-gradient(transparent 0deg,transparent 330deg,rgba(255,255,255,.9) 345deg,rgba(0,228,255,1) 352deg,rgba(255,255,255,.9) 358deg,transparent 360deg);z-index:0;animation:beamSpin 2.5s linear infinite}.btn-beam:after{content:"";position:absolute;inset:2px;border-radius:var(--radius-pill);background:var(--mars);z-index:1}.btn-beam span{position:relative;z-index:2}@keyframes beamSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hover-glow{transition:box-shadow var(--duration-normal)}.hover-glow:hover{box-shadow:0 0 20px #00e4ff1f}.hover-glow-mars:hover{box-shadow:0 0 20px #c8412533}.reveal{opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.reveal.visible{opacity:1;transform:translateY(0)}#stars-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.screen,.page{position:relative;z-index:1}@media(max-width:640px){h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1rem}.card{padding:1.25rem 1rem}.problem-card{padding:1.25rem}.nci-float{max-width:260px;left:1rem}.container{padding:0 1rem}.btn{font-size:.85rem;padding:.6rem 1.2rem}.btn-primary{min-height:44px}}@media(max-width:380px){h1{font-size:1.2rem}.container{padding:0 .75rem}}
