:root{--bg-deep: #0a0a0f;--bg-surface: rgba(255, 255, 255, .03);--bg-card: rgba(20, 20, 30, .6);--bg-card-hover: rgba(30, 30, 45, .8);--border-subtle: rgba(255, 255, 255, .06);--border-glow: rgba(99, 102, 241, .3);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-indigo: #6366f1;--accent-purple: #a855f7;--accent-cyan: #22d3ee;--accent-emerald: #10b981;--accent-orange: #f97316;--accent-red: #ef4444;--accent-pink: #ec4899;--accent-amber: #f59e0b;--accent-teal: #14b8a6;--accent-slate: #475569;--shadow-glow: 0 0 30px rgba(99, 102, 241, .15);--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--shadow-glow-sm: 0 0 15px rgba(99, 102, 241, .1);--radius: 16px;--radius-sm: 12px;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;background-color:var(--bg-deep);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;background-image:radial-gradient(2px 2px at 24px 24px,rgba(255,255,255,.04),transparent),radial-gradient(2px 2px at 48px 48px,rgba(255,255,255,.02),transparent)}body:after{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;z-index:-1;background:radial-gradient(circle at 30% 20%,rgba(99,102,241,.06),transparent 50%),radial-gradient(circle at 70% 80%,rgba(168,85,247,.04),transparent 50%);animation:bgShift 20s ease-in-out infinite alternate}@keyframes bgShift{0%{transform:translate(0)}to{transform:translate(-5%,-3%)}}#root{min-height:100vh}.navbar{position:sticky;top:0;z-index:100;background:#0a0a0fd9;backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle)}.nav-container{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;height:64px}.nav-logo{font-size:1.15rem;font-weight:700;color:var(--text-primary);text-decoration:none;display:flex;align-items:center;gap:8px;letter-spacing:-.02em}.nav-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-purple));border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px}.nav-links{display:flex;gap:4px}.nav-links a{text-decoration:none;color:var(--text-secondary);font-weight:500;font-size:.9rem;padding:8px 14px;border-radius:10px;transition:var(--transition)}.nav-links a:hover,.nav-links a.active{color:var(--text-primary);background:var(--bg-surface)}.main-content{max-width:1200px;margin:0 auto;padding:32px 24px 64px;min-height:calc(100vh - 128px)}.hero-card{position:relative;border-radius:var(--radius);padding:2px;margin-bottom:32px;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-purple),var(--accent-pink));overflow:hidden}.hero-card:before{content:"";position:absolute;inset:0;background:inherit;filter:blur(25px);opacity:.4}.hero-inner{position:relative;background:linear-gradient(135deg,#0f0f19f2,#140a23f2);border-radius:14px;padding:36px}.hero-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;background:#6366f11f;border:1px solid rgba(99,102,241,.25);border-radius:100px;font-size:.8rem;font-weight:600;color:var(--accent-indigo);margin-bottom:20px;text-transform:uppercase;letter-spacing:.05em}.hero-title{font-size:2rem;font-weight:700;line-height:1.2;letter-spacing:-.03em;margin-bottom:8px;background:linear-gradient(90deg,var(--text-primary),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{color:var(--text-secondary);font-size:1rem;margin-bottom:24px}.hero-progress{display:flex;align-items:center;gap:16px;margin-bottom:28px}.hero-progress-bar{flex:1;height:6px;background:var(--bg-surface);border-radius:3px;overflow:hidden}.hero-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-indigo),var(--accent-cyan));border-radius:3px;box-shadow:0 0 12px #6366f180;transition:width 1s cubic-bezier(.4,0,.2,1)}.hero-progress-pct{font-size:1.4rem;font-weight:700;color:var(--text-primary);min-width:60px;text-align:right}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:10px;font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;border:none;transition:var(--transition)}.btn-primary{background:linear-gradient(135deg,var(--accent-indigo),var(--accent-purple));color:#fff;box-shadow:var(--shadow-glow-sm)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 25px #6366f14d}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-subtle)}.btn-ghost:hover{border-color:var(--accent-indigo);color:var(--text-primary);background:#6366f10d}.btn-done{background:#10b9811f;color:var(--accent-emerald);border:1px solid rgba(16,185,129,.2)}.btn-undone{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:20px 24px;transition:var(--transition)}.stat-card:hover{border-color:var(--border-glow);background:var(--bg-card-hover)}.stat-value{font-size:1.8rem;font-weight:700;letter-spacing:-.03em;line-height:1}.stat-label{color:var(--text-muted);font-size:.85rem;margin-top:6px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.stat-card:nth-child(1) .stat-value{color:var(--accent-indigo)}.stat-card:nth-child(2) .stat-value{color:var(--accent-emerald)}.stat-card:nth-child(3) .stat-value{color:var(--accent-orange)}.stat-card:nth-child(4) .stat-value{color:var(--text-secondary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.week-section{margin-bottom:40px}.week-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.week-topic{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.days-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.day-card{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;text-decoration:none;color:inherit}.day-card:hover{border-color:var(--border-glow);background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow-card)}.day-card.completed{border-color:#10b98126}.day-num{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.day-info{flex:1;min-width:0}.day-info h4{font-size:.95rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-info p{font-size:.8rem;color:var(--text-muted);margin-top:2px}.day-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition);cursor:pointer}.day-check.completed{background:var(--accent-emerald);border-color:var(--accent-emerald)}.day-check.completed:after{content:"\2713";color:#fff;font-size:12px;font-weight:700}.loading{display:flex;justify-content:center;align-items:center;min-height:50vh;color:var(--text-muted);font-size:1rem}.loading:after{content:"";width:24px;height:24px;border:2px solid var(--border-subtle);border-top-color:var(--accent-indigo);border-radius:50%;animation:spin .6s linear infinite;margin-left:12px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1024px){.stats-row{grid-template-columns:repeat(2,1fr)}.days-grid{grid-template-columns:1fr}}@media(max-width:768px){.hero-inner{padding:24px}.hero-title{font-size:1.5rem}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:16px}.stat-value{font-size:1.4rem}.nav-container{padding:0 16px}.main-content{padding:20px 16px 48px}}@media(max-width:480px){.stats-row{grid-template-columns:1fr 1fr}.nav-links{gap:0}.nav-links a{padding:8px;font-size:.8rem}}.nav-auth-btn,.nav-logout{border:1px solid var(--border-glow);border-radius:8px;background:var(--bg-card);color:var(--text-primary);padding:8px 12px;cursor:pointer;white-space:nowrap}.nav-user{display:flex;align-items:center;gap:10px}.nav-username{overflow-wrap:anywhere}@media(max-width:768px){.nav-container{height:auto;min-height:64px;flex-wrap:wrap;gap:10px;padding:12px 16px}.nav-links{order:3;flex-basis:100%;flex-wrap:wrap;justify-content:center}.nav-links a{white-space:nowrap;padding:8px}.nav-user{margin-left:auto;max-width:65%}}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;position:relative}.landing-bg{position:fixed;inset:0;z-index:-1;background:var(--bg-deep);background-image:radial-gradient(2px 2px at 24px 24px,rgba(255,255,255,.04),transparent),radial-gradient(2px 2px at 48px 48px,rgba(255,255,255,.02),transparent)}.landing-bg:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(99,102,241,.08),transparent 40%),radial-gradient(circle at 80% 80%,rgba(168,85,247,.08),transparent 40%),radial-gradient(circle at 50% 50%,rgba(34,211,238,.04),transparent 60%)}.landing-logo{text-align:center;margin-bottom:64px;animation:fadeInUp .6s ease-out}.logo-icon{font-size:3rem;margin-bottom:16px}.landing-logo h1{font-size:2.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.04em;line-height:1}.logo-accent{background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-tag{color:var(--text-muted);font-size:.9rem;margin-top:8px;letter-spacing:.05em;text-transform:uppercase}.landing-hero-copy{max-width:980px;margin:-28px auto 28px;text-align:center;color:#cbd5e1;font-size:1rem;line-height:1.5;padding:0 12px}.choice-grid{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:40px;animation:fadeInUp .6s ease-out .15s both}.choice-card{width:280px;padding:36px 32px;border-radius:20px;text-align:center;cursor:pointer;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.choice-game{background:linear-gradient(145deg,#0f0a28e6,#1e0f3ce6);border:1px solid rgba(249,115,22,.2);box-shadow:0 0 30px #f9731614}.choice-game:hover{border-color:#f9731680;transform:translateY(-8px);box-shadow:0 20px 50px #f9731626}.choice-game:hover .choice-icon{transform:scale(1.15)}.choice-study{background:linear-gradient(145deg,#0a0f28e6,#0a1437e6);border:1px solid rgba(99,102,241,.2);box-shadow:0 0 30px #6366f114}.choice-study:hover{border-color:#6366f180;transform:translateY(-8px);box-shadow:0 20px 50px #6366f126}.choice-study:hover .choice-icon{transform:scale(1.15)}.choice-quiz{background:linear-gradient(145deg,#081e26e6,#082a37e6);border:1px solid rgba(14,165,233,.25);box-shadow:0 0 30px #0ea5e91a}.choice-quiz:hover{border-color:#0ea5e980;transform:translateY(-8px);box-shadow:0 20px 50px #0ea5e933}.choice-quiz:hover .choice-icon{transform:scale(1.15)}.choice-icon{font-size:2.8rem;margin-bottom:18px;transition:transform .35s cubic-bezier(.4,0,.2,1)}.choice-card h2{font-size:1.4rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:14px}.choice-divider{width:40px;height:2px;border-radius:1px;margin:0 auto 14px}.choice-game .choice-divider{background:linear-gradient(90deg,transparent,var(--accent-orange),transparent)}.choice-study .choice-divider{background:linear-gradient(90deg,transparent,var(--accent-indigo),transparent)}.choice-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.choice-btn{display:inline-block;margin-top:22px;font-size:.85rem;font-weight:600;letter-spacing:.03em}.choice-game .choice-btn{color:var(--accent-orange)}.choice-study .choice-btn{color:var(--accent-indigo)}.choice-quiz .choice-btn{color:var(--accent-cyan)}.support-section{display:flex;align-items:center;gap:12px;margin-bottom:24px;animation:fadeInUp .6s ease-out .3s both}.support-label{color:var(--text-muted);font-size:.85rem}.support-link{background:none;border:none;color:var(--accent-indigo);font-size:.85rem;font-weight:600;cursor:pointer;padding:0;transition:opacity .2s}.support-link:hover{opacity:.75}.support-thanks{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:100px;color:var(--accent-indigo);font-size:.85rem;font-weight:600}.landing-footer{color:var(--text-muted);font-size:.75rem;letter-spacing:.04em;animation:fadeInUp .6s ease-out .3s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing-signin{margin-top:1rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff;padding:8px 24px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s}.landing-signin:hover{opacity:.85}.landing-user{margin-top:1rem;display:flex;align-items:center;gap:12px;justify-content:center}.landing-callsign{color:#e0e0e0;font-weight:600;font-size:1rem}.landing-logout{background:none;border:1px solid rgba(255,255,255,.2);color:#aaa;padding:4px 14px;border-radius:6px;font-size:.8rem;cursor:pointer}.landing-logout:hover{border-color:#ef4444;color:#ef4444}@media(max-width:640px){.choice-grid{flex-direction:column;align-items:center}.choice-card{width:100%;max-width:320px}.landing-logo h1{font-size:2rem}.choice-card{padding:28px 24px}}.support-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:overlayIn .15s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.support-modal{background:linear-gradient(145deg,#0c0a1cfa,#080812fa);border:1px solid rgba(99,102,241,.25);border-radius:20px;padding:40px;width:100%;max-width:420px;position:relative;box-shadow:0 0 60px #6366f11f,0 24px 48px #000000b3;animation:modalIn .2s cubic-bezier(.4,0,.2,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.support-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:6px;border-radius:8px;transition:all .2s;line-height:1}.support-close:hover{color:var(--text-primary);background:#ffffff0f}.support-header{text-align:center;margin-bottom:28px}.support-icon{font-size:2rem;margin-bottom:12px}.support-header h2{font-size:1.4rem;font-weight:700;color:var(--text-primary);letter-spacing:-.03em;margin-bottom:6px}.support-header p{color:var(--text-muted);font-size:.9rem}.support-pick{display:flex;flex-direction:column;gap:16px}.amount-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.amount-btn{padding:12px 8px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;color:var(--text-secondary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.amount-btn:hover{border-color:#6366f166;color:var(--text-primary);background:#6366f10f}.amount-btn.active{border-color:var(--accent-indigo);background:#6366f11f;color:var(--text-primary);box-shadow:0 0 12px #6366f126}.custom-wrap{display:flex;align-items:center;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#ffffff08;padding:0 14px;transition:border-color .2s}.custom-wrap:focus-within{border-color:#6366f166}.custom-dollar{color:var(--text-muted);font-size:.95rem;font-weight:600;padding-right:6px}.custom-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.95rem;font-weight:500;padding:12px 0}.custom-input::placeholder{color:var(--text-muted)}.custom-input::-webkit-outer-spin-button,.custom-input::-webkit-inner-spin-button{-webkit-appearance:none}.support-cta{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-purple));color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .25s;box-shadow:0 0 20px #6366f133}.support-cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 0 30px #6366f159}.support-cta:disabled{opacity:.5;cursor:not-allowed}.support-error{color:var(--accent-red);font-size:.85rem;text-align:center}.checkout-form{display:flex;flex-direction:column;gap:16px}.checkout-amount{color:var(--text-secondary);font-size:.9rem;text-align:center;margin-bottom:4px}.checkout-actions{display:flex;gap:12px}.back-btn{padding:14px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.back-btn:hover:not(:disabled){border-color:#6366f14d;color:var(--text-primary)}.back-btn:disabled{opacity:.4;cursor:not-allowed}.checkout-actions .support-cta{flex:1}@media(max-width:480px){.support-modal{padding:28px 20px}.amount-grid{grid-template-columns:repeat(2,1fr)}}.game-page{width:100%}.game-header{display:flex;align-items:center;gap:20px;margin-bottom:20px;flex-wrap:wrap}.game-header h1{font-size:1.3rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.game-header p{color:var(--text-muted);font-size:.85rem}.btn-sm{padding:6px 14px;font-size:.85rem}.game-frame-wrap{width:100%;height:calc(100vh - 180px);min-height:500px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-subtle);background:#000}.game-frame{width:100%;height:100%;border:0}.game-login-hint{color:#888;font-size:.85rem;margin-top:.25rem}.game-login-hint a{color:#818cf8;text-decoration:underline}.dashboard{width:100%}.week-section+.week-section{margin-top:48px}.day-detail{width:100%}.breadcrumb{display:inline-block;color:var(--text-muted);text-decoration:none;font-size:.9rem;margin-bottom:20px;padding:6px 12px;border-radius:8px;transition:var(--transition)}.breadcrumb:hover{color:var(--text-primary);background:var(--bg-surface)}.day-header-card{position:relative;border-radius:var(--radius);padding:32px;background:var(--bg-card);border:1px solid var(--border-subtle);margin-bottom:24px;box-shadow:var(--shadow-card)}.day-header-top{display:flex;gap:20px;align-items:flex-start}.day-emoji{font-size:2.5rem;width:56px;height:56px;background:#6366f11a;border-radius:14px;display:flex;align-items:center;justify-content:center}.day-header-info{flex:1}.day-chapter{font-size:.85rem;color:var(--accent-indigo);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:8px}.day-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2;margin-bottom:8px}.day-completed-date{font-size:.85rem;color:var(--accent-emerald)}.day-header-actions{display:flex;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-subtle)}.day-content{display:flex;flex-direction:column;gap:16px}.content-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:28px 32px;box-shadow:var(--shadow-card);transition:var(--transition)}.content-section:hover{border-color:var(--border-glow)}.section-h{font-size:1.1rem;font-weight:600;color:var(--accent-cyan);margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.04em}.content-body{line-height:1.7;color:var(--text-secondary)}.content-body p{margin-bottom:12px}.content-body ul,.content-body ol{padding-left:24px;margin-bottom:12px}.content-body li{margin-bottom:8px}.content-body li::marker{color:var(--accent-indigo)}.content-body strong{color:var(--text-primary);font-weight:600}.content-body em{color:var(--accent-cyan)}.content-body code{background:#6366f11a;color:var(--accent-purple);padding:2px 8px;border-radius:6px;font-family:-apple-system,SF Mono,Fira Code,monospace;font-size:.9em}.code-block{background:#0006;border:1px solid var(--border-subtle);border-radius:12px;padding:20px 24px;overflow-x:auto;margin:16px 0}.code-block code{color:var(--text-primary);background:none;padding:0;line-height:1.8}@media(max-width:768px){.day-header-card{padding:20px}.day-title{font-size:1.4rem}.content-section{padding:20px}.day-header-top{flex-direction:column}}.progress-page{width:100%}.center-display{text-align:center;padding:48px 24px 40px}.ring{width:200px;height:200px;position:relative;margin:0 auto 20px}.ring-svg{width:200px;height:200px;transform:rotate(-90deg)}.ring-circle{stroke-width:12px;transition:stroke-dasharray 1.5s cubic-bezier(.4,0,.2,1)}.ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.ring-pct{font-size:2.8rem;font-weight:800;color:var(--text-primary);letter-spacing:-.04em}.ring-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.msg-title{font-size:1.4rem;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.msg-sub{color:var(--text-secondary);margin-top:8px}.section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.weeks-vertical{display:flex;flex-direction:column;gap:8px}.week-row-v{display:flex;align-items:center;gap:16px;padding:16px 22px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:var(--transition)}.week-row-v:hover{border-color:var(--border-glow);background:var(--bg-card-hover)}.week-icon{font-size:1.4rem;width:36px;text-align:center}.week-info-v{flex:1}.week-name-v{font-weight:600;color:var(--text-primary);font-size:.95rem;margin-bottom:8px}.week-bar-v{height:4px;background:var(--bg-surface);border-radius:2px;overflow:hidden}.week-fill-v{height:100%;background:linear-gradient(90deg,var(--accent-indigo),var(--accent-cyan));border-radius:2px;transition:width 1s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px #6366f166}.week-pct-v{color:var(--text-muted);font-size:.85rem;min-width:80px;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:768px){.center-display{padding:32px 16px 24px}.ring,.ring-svg{width:160px;height:160px}.ring-pct{font-size:2.2rem}.week-row-v{gap:12px;padding:14px 16px}.week-pct-v{min-width:auto}}.quickref-page{width:100%}.qr-title{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin-bottom:28px;letter-spacing:-.02em}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.qr-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:24px;transition:var(--transition)}.qr-card:hover{border-color:var(--border-glow)}.qr-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--accent-indigo);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.qr-table{width:100%}.qr-table-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.qr-table-row:last-child{border-bottom:none}.qr-port{font-family:SF Mono,Fira Code,monospace;color:var(--accent-cyan);font-weight:600;font-size:.95rem;margin-right:12px;white-space:nowrap}.qr-label{color:var(--text-secondary)}.qr-list{list-style:none}.qr-list li{padding:6px 0;color:var(--text-secondary);line-height:1.6;border-bottom:1px solid var(--border-subtle)}.qr-list li:last-child{border-bottom:none}.qr-list strong{color:var(--text-primary)}.qr-ol{padding-left:20px;color:var(--text-secondary)}.qr-ol li{padding:4px 0}@media(max-width:768px){.qr-grid{grid-template-columns:1fr}}.quiz-page{max-width:980px;margin:0 auto;padding:24px}.quiz-card{background:#14141ea6;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px}.quiz-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:16px 0 24px}.quiz-controls label{display:flex;flex-direction:column;gap:6px;font-size:14px;flex:1 1 170px;min-width:0}.quiz-controls label:first-of-type{flex:2 1 230px}.quiz-controls .quiz-btn{flex:0 0 auto}.quiz-controls .quiz-no-questions{flex:1 1 100%}.quiz-controls select{background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:10px;padding:10px}.quiz-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;color:#fff;border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer}.quiz-btn:disabled{opacity:.5;cursor:not-allowed}.quiz-no-questions{color:#ef4444;font-size:.85rem;margin-top:4px}.quiz-list{display:flex;flex-direction:column;gap:16px}.quiz-question{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px}.quiz-meta{font-size:12px;opacity:.8}.quiz-multi-badge{margin-left:8px;padding:1px 6px;border:1px solid currentColor;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.quiz-situation{font-size:14px;opacity:.9}.quiz-choices{display:flex;flex-direction:column;gap:8px;margin-top:12px}.choice-btn{text-align:left;background:#0b1220;color:#e2e8f0;border:1px solid #334155;border-radius:10px;padding:10px;cursor:pointer}.choice-btn.selected{border-color:#818cf8}.choice-btn.correct{border-color:#22c55e;background:#22c55e1f}.choice-btn.wrong{border-color:#ef4444;background:#ef44441f}.quiz-explanation{margin-top:10px;font-size:14px;line-height:1.4}.quiz-post-submit{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.quiz-result{font-size:20px;font-weight:700;margin-top:8px}.quiz-btn.retry{background:linear-gradient(135deg,#0ea5e9,#2563eb)}@media(max-width:760px){.quiz-controls label,.quiz-controls label:first-of-type{flex:1 1 100%}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-deep, #0a0a0f);padding:1rem}.auth-card{width:100%;max-width:400px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:2.5rem 2rem;text-align:center}.auth-logo{font-size:3rem;margin-bottom:.5rem}.auth-card h1{color:#e0e0e0;font-size:1.5rem;margin:0 0 .25rem}.auth-subtitle{color:#888;font-size:.9rem;margin:0 0 1.5rem}.auth-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.6rem 1rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}.auth-field{text-align:left;margin-bottom:1rem}.auth-field label{display:block;color:#aaa;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.35rem}.auth-field input{width:100%;padding:.7rem .9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e0e0e0;font-size:.95rem;outline:none;transition:border-color .2s;box-sizing:border-box}.auth-field input:focus{border-color:#6366f180}.auth-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem;transition:opacity .2s}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{margin-top:1.25rem;color:#888;font-size:.85rem}.auth-switch button{background:none;border:none;color:#818cf8;cursor:pointer;font-size:.85rem;padding:0;text-decoration:underline}.auth-switch button:hover{color:#a5b4fc}.st-page{padding:24px 16px 48px;max-width:100%}.st-loading{padding:40px;text-align:center;color:var(--text-muted)}.st-header{text-align:center;margin-bottom:20px}.st-header h1{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.st-header p{color:var(--text-muted);font-size:.9rem}.st-guest-banner{display:inline-block;margin-top:10px;background:#6366f11f;border:1px solid #6366f1;border-radius:8px;padding:8px 16px;color:#a5b4fc;font-size:.85rem}.st-guest-banner a{color:#818cf8;font-weight:600}.st-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:24px}.st-legend-item{font-size:.78rem;font-weight:500;opacity:.85}.st-legend-locked{color:#475569}.st-scroll{overflow-x:auto;padding-bottom:8px}.st-canvas{position:relative;margin:0 auto}.st-svg{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.st-line{fill:none;stroke-width:2.5;stroke-linecap:round}.st-line-off{stroke:#334155;stroke-dasharray:6 4}.st-line-on{stroke:var(--nc, #6366f1);opacity:.5}.st-line-new{stroke:#22d3ee;opacity:1;filter:url(#glow);animation:pulse-line 1.4s ease-in-out 3}@keyframes pulse-line{0%,to{opacity:.5}50%{opacity:1}}.st-node{position:absolute;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;transition:transform .15s,box-shadow .15s;user-select:none}.st-node-off{background:#0f172a;border:1px solid #1e293b;color:#475569}.st-node-on{background:color-mix(in srgb,var(--nc) 8%,#0f172a);border:1px solid var(--nc);box-shadow:0 0 12px color-mix(in srgb,var(--nc) 30%,transparent);color:#e2e8f0}.st-node-mastered{background:color-mix(in srgb,#10b981 10%,#0f172a);border:1.5px solid #10b981;box-shadow:0 0 18px #10b98159}.st-node-click{cursor:pointer}.st-node-click:hover{transform:translateY(-3px);box-shadow:0 6px 24px color-mix(in srgb,var(--nc) 45%,transparent)}.st-node-new{animation:node-unlock .6s ease-out}@keyframes node-unlock{0%{transform:scale(.92);opacity:.5}60%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}.st-lock{font-size:1.1rem;opacity:.5;line-height:1}.st-node-title{font-size:.82rem;font-weight:600;line-height:1.3;color:inherit}.st-node-off .st-node-title{color:#475569}.st-badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap}.st-badge-mastered{background:#10b98126;color:#10b981;border:1px solid #10b981}.st-xp-track{position:relative;height:14px;background:#ffffff0f;border-radius:99px;overflow:hidden}.st-xp-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px;transition:width .5s ease}.st-xp-label{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:.6rem;font-weight:600;color:#ffffffb3;pointer-events:none}.stq-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.stq-modal{background:#0f172a;border:1px solid #1e293b;border-radius:16px;width:100%;max-width:680px;max-height:88vh;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.stq-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.stq-domain{font-size:1.15rem;font-weight:700;color:#f1f5f9;margin-bottom:6px}.stq-close{background:transparent;border:none;color:#64748b;font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:6px;flex-shrink:0}.stq-close:hover{color:#f1f5f9;background:#ffffff0d}.stq-loading,.stq-saving{text-align:center;color:var(--text-muted);padding:24px}.stq-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;padding:10px 14px;font-size:.85rem}.stq-questions{display:flex;flex-direction:column;gap:24px}.stq-q{background:#ffffff05;border:1px solid #1e293b;border-radius:12px;padding:16px}.stq-qnum{font-size:.72rem;font-weight:600;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.06em}.stq-situation{color:#cbd5e1;font-size:.9rem;line-height:1.5;margin-bottom:8px}.stq-qtext{color:#e2e8f0;font-size:.95rem;font-weight:500;line-height:1.4;margin-bottom:12px}.stq-choices{display:flex;flex-direction:column;gap:6px}.stq-choice{background:#ffffff08;border:1px solid #334155;border-radius:8px;color:#94a3b8;padding:10px 14px;text-align:left;cursor:pointer;font-size:.875rem;display:flex;align-items:flex-start;gap:10px;transition:background .12s,border-color .12s,color .12s}.stq-choice:hover:not(:disabled){background:#6366f11a;border-color:#6366f1;color:#e2e8f0}.stq-choice.sel{background:#6366f12e;border-color:#6366f1;color:#e2e8f0}.stq-choice.correct{background:#10b98126;border-color:#10b981;color:#6ee7b7}.stq-choice.wrong{background:#ef44441f;border-color:#ef4444;color:#fca5a5}.stq-letter{font-weight:700;font-size:.8rem;flex-shrink:0;width:16px}.stq-expl{margin-top:10px;font-size:.82rem;color:#64748b;line-height:1.5;padding:8px 12px;background:#ffffff05;border-left:3px solid #334155;border-radius:0 6px 6px 0}.stq-submit{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:10px;color:#fff;font-size:.95rem;font-weight:600;padding:12px 24px;cursor:pointer;transition:opacity .15s,transform .15s;align-self:stretch}.stq-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.stq-submit:disabled{opacity:.45;cursor:not-allowed}.stq-guest{text-align:center;padding:16px;background:#6366f114;border:1px solid #3730a3;border-radius:12px}.stq-guest-score{font-size:1.6rem;font-weight:700;color:#a5b4fc;margin-bottom:8px}.stq-guest p{color:#94a3b8;font-size:.875rem;margin-bottom:12px}.stq-login-btn{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;padding:10px 20px;cursor:pointer}.stq-result{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}.stq-result-score{font-size:4rem;font-weight:800;color:#f1f5f9;line-height:1}.stq-result-score span{font-size:2rem;color:#64748b}.stq-result-label{font-size:.85rem;color:#64748b;text-transform:uppercase;letter-spacing:.1em;margin-top:-8px}.stq-event{width:100%;border-radius:12px;padding:14px 18px;text-align:center}.stq-event-title{font-size:1.1rem;font-weight:700;margin-bottom:6px}.stq-event p{font-size:.875rem;margin:0;opacity:.85}.stq-event-tier{background:#6366f11f;border:1px solid #6366f1;color:#a5b4fc;animation:pop-in .4s ease-out}.stq-event-mastered{background:#10b9811f;border:1px solid #10b981;color:#6ee7b7;animation:pop-in .4s ease-out}.stq-event-unlock{background:#22d3ee1a;border:1px solid #22d3ee;color:#67e8f9;animation:pop-in .4s ease-out}.stq-new-domain{font-weight:600;font-size:.9rem;margin-top:4px}.stq-progress-note{color:#64748b;font-size:.85rem;text-align:center}.stq-back-btn{background:#ffffff0d;border:1px solid #334155;border-radius:10px;color:#94a3b8;font-size:.875rem;padding:10px 24px;cursor:pointer;transition:background .12s}.stq-back-btn:hover{background:#ffffff14;color:#e2e8f0}@keyframes pop-in{0%{transform:scale(.88);opacity:0}70%{transform:scale(1.03)}to{transform:scale(1);opacity:1}}
