:root{--bg:#070a13;--bg-alt:#0b0f1d;--card:#131a2e73;--card-hover:#1a234099;--border:#ffffff0f;--border-focus:#6366f166;--primary:#6366f1;--primary-hover:#818cf8;--primary-soft:#6366f114;--secondary:#06b6d4;--secondary-hover:#22d3ee;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--text:#f8fafc;--muted:#64748b;--sidebar:#0a0e1acc;--shadow:0 8px 32px 0 #0000004d;--shadow-soft:0 4px 16px 0 #00000026;--glow:0 0 25px #6366f126;--glow-cyan:0 0 25px #06b6d426;--radius:16px;--radius-sm:12px;--transition:.2s ease;--bounce:cubic-bezier(.16, 1, .3, 1);--glass:blur(12px) saturate(180%)}[data-theme=light]{--bg:#f8fafc;--bg-alt:#f1f5f9;--card:#ffffffb3;--card-hover:#fffffff2;--border:#0000000f;--border-focus:#6366f14d;--primary:#4f46e5;--primary-hover:#6366f1;--primary-soft:#4f46e50f;--secondary:#0891b2;--secondary-hover:#06b6d4;--success:#059669;--danger:#dc2626;--warning:#d97706;--text:#0f172a;--muted:#475569;--sidebar:#ffffffd9;--shadow:0 8px 32px 0 #1f26870d;--shadow-soft:0 4px 16px 0 #00000005;--glow:0 0 25px #4f46e514;--glow-cyan:0 0 25px #0891b214;--glass:blur(12px) saturate(180%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif;line-height:1.5;transition:background .4s,color .4s;overflow-x:hidden}body.sidebar-open{overflow:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input{font-family:inherit}ul{list-style:none}.hidden{display:none!important}.muted{color:var(--muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.auth-bg{position:absolute;inset:0;overflow:hidden}.auth-bg:after{content:"";background-image:radial-gradient(circle at 20% 80%,#6366f114 0%,#0000 50%),radial-gradient(circle at 80% 20%,#06b6d414 0%,#0000 50%);position:absolute;inset:0}.orb{filter:blur(100px);opacity:.2;border-radius:50%;animation:12s ease-in-out infinite float;position:absolute}.orb-1{background:var(--primary);width:450px;height:450px;top:-120px;left:-120px}.orb-2{background:var(--secondary);width:350px;height:350px;animation-delay:3s;bottom:-80px;right:-80px}.orb-3{background:var(--primary);opacity:.1;width:280px;height:280px;animation-delay:5s;top:40%;left:60%}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-container{z-index:1;width:100%;max-width:460px;animation:authSlideIn .6s var(--bounce);padding:20px;position:relative}@keyframes authSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-brand{text-align:center;margin-bottom:32px}.auth-logo{background:linear-gradient(135deg, var(--primary), var(--secondary));border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;font-size:36px;animation:4s ease-in-out infinite logoFloat;display:flex;box-shadow:0 12px 40px #6366f159}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-brand h1{letter-spacing:-.5px;font-size:28px;font-weight:800}.auth-brand h1 span{color:var(--primary)}.auth-brand p{color:var(--muted);margin-top:8px;font-size:14px}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);padding:28px}.auth-tabs{background:var(--bg);border-radius:var(--radius-sm);gap:4px;margin-bottom:24px;padding:4px;display:flex}.auth-tab{color:var(--muted);transition:all .3s var(--transition);border-radius:10px;flex:1;padding:10px;font-size:14px;font-weight:600}.auth-tab:hover:not(.active){color:var(--text)}.auth-tab.active{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;box-shadow:0 4px 14px #6366f14d}.auth-form{display:none}.auth-form.active{display:block}.form-group{margin-bottom:16px}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1}.form-group label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);transition:border var(--transition), box-shadow var(--transition), transform var(--transition);padding:13px 16px;font-size:14px}.form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);outline:none}.form-group input::placeholder{color:var(--muted);opacity:.6}.pwd-wrap{position:relative}.pwd-wrap input{padding-right:44px}.pwd-toggle{opacity:.6;transition:opacity var(--transition);font-size:18px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pwd-toggle:hover{opacity:1}.btn{border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;background:#ffffff26;transition:opacity .3s;position:absolute;inset:0}.btn:active:after{opacity:1;transition:opacity}.btn-block{width:100%}.btn-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 8px 25px #5b7cfa66}.btn-ghost{background:var(--bg);border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{background:var(--card-hover);border-color:var(--primary);transform:translateY(-1px)scale(1.02);box-shadow:0 4px 12px #6366f126}.btn-danger:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 8px 25px #f0656a59}.link-btn{color:var(--primary);transition:opacity var(--transition);font-size:13px;font-weight:500}.link-btn:hover{opacity:.85;text-decoration:underline}.btn-lg{border-radius:var(--radius);padding:16px 28px;font-size:16px}.btn-sm{border-radius:8px;padding:8px 16px;font-size:13px}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.btn.success-animate{animation:.4s successPulse}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-slide-in{animation:.3s forwards slideInUp}.animate-fade-in{animation:.3s forwards fadeIn}.animate-scale-in{animation:.3s forwards scaleIn}.shimmer-effect{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/200% 100%;animation:2s infinite shimmer}.app{min-height:100dvh;display:flex}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);width:260px;-webkit-backdrop-filter:var(--glass);z-index:100;flex-direction:column;transition:width .25s,transform .25s,opacity .25s;display:flex;position:fixed;top:0;bottom:0;left:0}.app.sidebar-collapsed .sidebar,.sidebar.collapsed{width:84px}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;transition:padding .25s;display:flex}.app.sidebar-collapsed .sidebar-header,.sidebar.collapsed .sidebar-header{justify-content:center;padding:18px 10px}.sidebar-logo{white-space:nowrap;align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.app.sidebar-collapsed .sidebar-logo span,.sidebar.collapsed .sidebar-logo span{display:none}.sidebar-logo span span{color:var(--primary)}.sidebar-close{font-size:20px;display:none}.sidebar-nav{flex:1;padding:16px;overflow:hidden auto}.nav-item{border-radius:var(--radius-sm);color:var(--muted);text-align:left;align-items:center;gap:12px;width:100%;margin-bottom:4px;padding:12px 14px;font-size:14px;font-weight:500;transition:all .25s;display:flex;position:relative;overflow:hidden}.nav-label{white-space:nowrap;transition:opacity .25s,width .25s}.app.sidebar-collapsed .nav-label,.sidebar.collapsed .nav-label{display:none}.app.sidebar-collapsed .nav-item,.sidebar.collapsed .nav-item{justify-content:center;padding-left:8px;padding-right:8px}.nav-item .ripple{background:#fff3}.nav-item:hover{background:var(--card-hover);color:var(--text);transform:translate(6px)}.app.sidebar-collapsed .nav-item:hover,.sidebar.collapsed .nav-item:hover{transform:translate(0)translateY(-1px)}.nav-item:active{transform:translate(6px)scale(.98)}.nav-item.active{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;box-shadow:0 4px 15px #6366f159}.nav-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px}.sidebar-footer{border-top:1px solid var(--border);padding:16px}.logout-btn{width:100%;color:var(--danger)}.logout-btn:hover{color:var(--danger);background:#ef44441a}.sidebar-overlay{z-index:99;opacity:0;background:#00000073;transition:opacity .25s;display:none;position:fixed;inset:0}.sidebar-overlay.active{opacity:1;display:block}.main{flex-direction:column;flex:1;min-width:0;min-height:100dvh;margin-left:260px;transition:margin-left .25s;display:flex}.app.sidebar-collapsed .main{margin-left:84px}@media (width>=769px){html,body{width:auto;max-width:none}#app,.app{width:100%;min-width:0;max-width:none}.main{flex:auto;width:auto;max-width:none}.main .page{width:100%;max-width:none}}@media (width<=768px){.app{display:block}.sidebar{width:min(78vw,290px);box-shadow:var(--shadow);border-right:none;transform:translate(-105%)}.sidebar.active{transform:translate(0)}.sidebar-header{justify-content:space-between;padding:18px 18px 16px}.sidebar-close{background:var(--bg);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.sidebar-logo{gap:6px}.sidebar-logo span{display:inline-flex}.nav-item,.nav-item:hover,.nav-item:active{transform:none}.nav-label{display:block}.main{margin-left:0!important}.sidebar-overlay{opacity:0;pointer-events:none;display:block}.sidebar-overlay.active{opacity:1;pointer-events:auto}}@media (width<=430px){.sidebar{width:min(82vw,280px)}.nav-item{padding:11px 12px}.topbar{padding-left:14px;padding-right:14px}.topbar-left h2{font-size:18px}}.topbar{background:color-mix(in srgb, var(--bg) 92%, var(--card));border-bottom:1px solid var(--border);min-height:64px;-webkit-backdrop-filter:var(--glass);box-shadow:var(--shadow-soft);z-index:90;isolation:isolate;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 24px;display:flex;position:sticky;top:0;left:0}.topbar-left{align-items:center;gap:12px;display:flex}.topbar-left h2{font-size:20px;font-weight:700}.hamburger{border:1px solid var(--border);background:var(--bg);border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;transition:background .25s,border-color .25s,transform .25s;display:flex;position:relative}.hamburger:hover{background:var(--card-hover);border-color:#6366f138}.hamburger:active{transform:scale(.96)}.hamburger span{background:var(--text);border-radius:999px;width:18px;height:2px;transition:transform .25s,opacity .25s;position:absolute}.hamburger span:first-child{transform:translateY(-6px)}.hamburger span:nth-child(2){transform:translateY(0)}.hamburger span:nth-child(3){transform:translateY(6px)}.topbar-right{align-items:center;gap:8px;display:flex}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border);width:40px;height:40px;transition:all .3s var(--transition);justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.icon-btn:hover{background:var(--card-hover);border-color:#6366f140;transform:translateY(-1px)}.icon-btn:active{transform:translateY(0)scale(.95)}.theme-icon-light,[data-theme=light] .theme-icon-dark{display:none}[data-theme=light] .theme-icon-light{display:inline}.notif-badge{background:var(--danger);border-radius:50%;width:8px;height:8px;display:none;position:absolute;top:6px;right:6px}.notif-badge.active{animation:2s ease-in-out infinite badgePulse;display:block}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.15);box-shadow:0 0 0 6px #ef444400}}.notif-wrap{position:relative}.notif-dropdown{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:320px;box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);z-index:200;display:none;position:absolute;top:48px;right:0}.notif-dropdown.active{animation:dropDown .3s var(--transition);display:block}@keyframes dropDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notif-header{border-bottom:1px solid var(--border);padding:14px 16px;font-size:14px;font-weight:600}.notif-list{max-height:360px;overflow-y:auto}.notif-item{border-bottom:1px solid var(--border);transition:background var(--transition);align-items:start;gap:10px;padding:12px 16px;font-size:13px;display:flex}.notif-item:hover{background:var(--bg)}.notif-item .notif-emoji{font-size:18px}.notif-item .notif-text{color:var(--muted)}.notif-item .notif-time{color:var(--muted);margin-top:2px;font-size:11px;display:block}.user-chip{background:var(--bg);cursor:pointer;border-radius:30px;align-items:center;gap:8px;padding:6px 12px 6px 6px;transition:all .3s;display:flex}.user-chip:hover{background:var(--card-hover);transform:scale(1.03)}.user-chip:active{transform:scale(.97)}.user-avatar{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;width:32px;height:32px;transition:transform .3s var(--bounce);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.user-chip:hover .user-avatar{transform:scale(1.1)rotate(-5deg)}#topbarUsername{font-size:14px;font-weight:500}.content{flex:1;padding:24px}.page{display:none}.page.active{animation:.4s cubic-bezier(.4,0,.2,1) pageIn;display:block}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);margin-bottom:20px;overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-body{padding:20px}.card.premium-card{background:linear-gradient(135deg,#6366f10d,#06b6d40d);border:1px solid #6366f133}.card.premium-card:hover{border-color:#6366f166;box-shadow:0 12px 40px #6366f133}@keyframes cardGlow{0%,to{box-shadow:0 4px 16px #6366f11a}50%{box-shadow:0 8px 32px #6366f133}}.card.glow-hover:hover{animation:2s ease-in-out infinite cardGlow}.welcome-banner{background:linear-gradient(135deg, var(--primary), var(--secondary));border-radius:var(--radius);color:#fff;animation:bannerIn .5s var(--bounce);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:30px;display:flex;position:relative;overflow:hidden}.welcome-banner:before{content:"";filter:blur(40px);background:#ffffff14;border-radius:50%;width:300px;height:300px;animation:8s ease-in-out infinite floatOrb;position:absolute;top:-50%;right:-20%}@keyframes floatOrb{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-20px,10px)scale(1.1)}}@keyframes bannerIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.welcome-banner h1{font-size:24px;font-weight:700}.welcome-banner p{opacity:.9;margin-top:4px;font-size:14px}.welcome-level{align-items:center;gap:16px;display:flex}.level-badge{white-space:nowrap;background:#fff3;border-radius:20px;padding:8px 16px;font-size:14px;font-weight:600;transition:transform .3s}.level-badge:hover{transform:scale(1.05)}.xp-bar-wrap{min-width:180px}.xp-bar-info{opacity:.9;justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.xp-bar{background:#fff3;border-radius:4px;height:8px;overflow:hidden}.xp-bar-fill{background:#fff;border-radius:4px;height:100%;transition:width .6s;position:relative}.xp-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6);border-radius:4px;width:10px;position:absolute;top:0;bottom:0;right:0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:20px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);animation:cardSlideIn .5s var(--transition) backwards;align-items:center;gap:14px;padding:18px;display:flex}.stat-card:first-child{animation-delay:50ms}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(4){animation-delay:.2s}.stat-card:nth-child(5){animation-delay:.25s}.stat-card.duel-stat-card{background:var(--card);border:1px solid var(--border)}.stat-card.duel-stat-card:hover{box-shadow:var(--glow);border-color:#6366f140}.duel-icon{color:var(--primary);background:#6366f11f}.stat-info-compact{flex-direction:column;gap:2px;width:100%;display:flex}.stat-row{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.stat-row-label{color:var(--muted);white-space:nowrap;font-weight:500}.stat-row-val{color:var(--text);font-weight:700}.stat-row-sub{opacity:.85;border-top:1px dashed #ffffff14;margin-top:1px;padding-top:2px;font-size:11px}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.stat-card:hover{box-shadow:var(--glow);border-color:#6366f14d;transform:translateY(-4px)}.stat-card:active{transform:translateY(-1px)}.stat-card:hover .stat-icon{transform:scale(1.1)rotate(-3deg)}.stat-icon{width:48px;height:48px;transition:transform .3s var(--transition);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;display:flex}.xp-icon{background:linear-gradient(135deg,#6366f133,#6366f10d);border:1px solid #6366f140;box-shadow:0 0 15px #6366f126}.test-icon{background:linear-gradient(135deg,#06b6d433,#06b6d40d);border:1px solid #06b6d440;box-shadow:0 0 15px #06b6d426}.avg-icon{background:linear-gradient(135deg,#10b98133,#10b9810d);border:1px solid #10b98140;box-shadow:0 0 15px #10b98126}.streak-icon{background:linear-gradient(135deg,#f59e0b33,#f59e0b0d);border:1px solid #f59e0b40;box-shadow:0 0 15px #f59e0b26}.stat-info{flex-direction:column;display:flex}.stat-value{font-size:24px;font-weight:700}.stat-label{color:var(--muted);font-size:13px}.dash-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.progress-item{margin-bottom:16px}.progress-item:last-child{margin-bottom:0}.progress-item-head{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.progress-item-head .muted{font-size:12px}.progress-bar{background:var(--bg);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), var(--secondary));border-radius:4px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d);border-radius:4px;width:20px;position:absolute;top:0;bottom:0;right:0}.recent-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;transition:all .25s;display:flex}.recent-item:last-child{border-bottom:none}.recent-item:hover{padding-left:8px}.recent-item-info{flex-direction:column;gap:2px;display:flex}.recent-item-name{font-size:14px;font-weight:500}.recent-item-sub{color:var(--muted);font-size:12px}.recent-item-score{text-align:right}.recent-item-pct{font-size:16px;font-weight:700}.badge{border-radius:12px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.badge-success{color:var(--success);background:#2dd4a726}.badge-danger{color:var(--danger);background:#f0656a26}.empty-state{text-align:center;padding:40px 20px}.empty-state-icon{opacity:.6;margin-bottom:12px;font-size:48px}.dash-grid-charts{margin-top:12px}.chart-card .card-body.chart-body{padding-top:10px}.chart-legend{flex-wrap:wrap;justify-content:center;gap:16px;padding:10px 0 4px;display:flex}.legend-item{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px;display:inline-block}.legend-dot-primary{background:var(--primary)}.legend-dot-pass{background:var(--success);opacity:.7;border-style:dashed}.line-chart-wrap{width:100%;height:260px;position:relative}.line-chart-wrap svg{width:100%;height:100%;display:block}.line-chart-empty{height:100%;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.line-chart-empty .big-icon{opacity:.5;font-size:52px}.donut-body{flex-flow:wrap;justify-content:space-around;align-items:center;gap:16px;display:flex}.donut-chart-wrap{flex-shrink:0;width:200px;height:200px;position:relative}.donut-chart-wrap svg{width:100%;height:100%}.donut-center-text{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center-text .dc-big{color:var(--primary);font-size:30px;font-weight:800;line-height:1}.donut-center-text .dc-small{color:var(--muted);margin-top:4px;font-size:12px}.donut-empty{width:100%;height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.chart-stats{flex-direction:column;flex:1;gap:12px;min-width:150px;display:flex}.chart-stat{background:var(--bg);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.chart-stat .cs-val{font-size:18px;font-weight:700}.chart-stat .cs-lbl{color:var(--muted);font-size:12px}.chart-stat-correct .cs-val{color:var(--success)}.chart-stat-wrong .cs-val{color:var(--danger)}.chart-stat-skipped .cs-val{color:var(--muted)}@media (width<=768px){.donut-body{flex-direction:column}.donut-chart-wrap{width:180px;height:180px}.line-chart-wrap{height:220px}}.empty-state h3{margin-bottom:4px;font-size:16px}.empty-state p{color:var(--muted);margin-bottom:16px;font-size:14px}.subject-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.subject-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:var(--glass);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);cursor:pointer;padding:22px;position:relative;overflow:hidden}.subject-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--secondary));transform-origin:0;height:3px;transition:transform .4s var(--transition);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.subject-card:hover{box-shadow:var(--glow-cyan);border-color:#06b6d44d;transform:translateY(-5px)}.subject-card:hover:before{transform:scaleX(1)}.subject-card:active{transform:translateY(-2px)scale(.99)}.subject-card-icon{transition:transform .4s var(--transition);margin-bottom:12px;font-size:38px;display:inline-block}.subject-card:hover .subject-card-icon{transform:scale(1.15)rotate(-5deg)}.subject-card h3{margin-bottom:4px;font-size:18px;font-weight:700}.subject-card p{color:var(--muted);margin-bottom:12px;font-size:13px}.subject-card-stats{gap:16px;margin-bottom:12px;font-size:13px;display:flex}.subject-card-stats span{color:var(--muted)}.subject-card-stats strong{color:var(--text)}.diff-badges{gap:6px;margin-bottom:14px;display:flex}.subject-card-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.subject-icon{transition:transform .4s var(--bounce);font-size:32px}.subject-card:hover .subject-icon{transform:scale(1.15)rotate(-5deg)}.subject-name{font-size:18px;font-weight:700}.subject-desc{color:var(--muted);margin-bottom:12px;font-size:13px}.subject-meta{color:var(--muted);gap:12px;margin-bottom:14px;font-size:12px;display:flex}.diff-badge{border-radius:8px;padding:3px 10px;font-size:11px;font-weight:600}.diff-beginner{color:var(--success);background:#2dd4a726}.diff-intermediate{color:var(--warning);background:#fbbf3c26}.diff-advanced{color:var(--danger);background:#f0656a26}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-head h2{font-size:22px;font-weight:700}.back-btn{padding:8px 14px;font-size:14px}.test-list{flex-direction:column;gap:12px;display:flex}.test-list-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;transition:all .3s;display:flex}.test-list-item:hover{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translate(6px)}.test-list-item:active{transform:translate(2px)scale(.99)}.test-list-info{flex:1}.test-list-info h4{margin-bottom:4px;font-size:16px;font-weight:600}.test-list-info p{color:var(--muted);font-size:13px}.test-list-meta{color:var(--muted);gap:16px;font-size:13px;display:flex}.test-list-meta strong{color:var(--text)}.tli-left{flex:1}.tli-title{margin-bottom:6px;font-size:16px;font-weight:600}.tli-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.tli-best{color:var(--warning);font-weight:600}.tli-right{flex-shrink:0}.page-toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.search-box{flex:1;min-width:200px;position:relative}.search-icon{opacity:.5;font-size:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-box input{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:12px 14px 12px 42px;font-size:14px}.search-box input:focus{border-color:var(--primary);outline:none}.filter-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--card);border:1px solid var(--border);color:var(--muted);-webkit-tap-highlight-color:transparent;border-radius:20px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .3s;position:relative;overflow:hidden}.chip.active{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-color:var(--primary);box-shadow:0 4px 14px #5b7cfa40}.chip:hover:not(.active){border-color:var(--primary);color:var(--text);transform:translateY(-1px)}.chip:active{transform:scale(.95)}.test-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.test-header-info h2{font-size:20px}.test-timer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;padding:10px 20px;font-size:22px;font-weight:700}.test-timer.warning{color:var(--warning);border-color:var(--warning)}.test-timer.timer-warn{color:var(--warning);border-color:var(--warning);animation:1s infinite pulse}.test-timer.danger{color:var(--danger);border-color:var(--danger);animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.test-progress{margin-bottom:20px}.test-progress-text{color:var(--muted);margin-bottom:6px;font-size:13px}.test-body{grid-template-columns:1fr 220px;gap:20px;margin-bottom:20px;display:grid}.question-area{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.question-number{color:var(--primary);margin-bottom:8px;font-size:13px;font-weight:600}.question-text{margin-bottom:24px;font-size:18px;font-weight:600;line-height:1.5}.question-type-tag{background:var(--bg);color:var(--muted);vertical-align:middle;border-radius:8px;margin-left:8px;padding:2px 10px;font-size:11px;display:inline-block}.options{flex-direction:column;gap:10px;display:flex}.option{background:var(--bg);border:2px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:60px;margin:0;padding:14px 16px;font-size:15px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.option:hover{border-color:var(--primary);background:var(--card-hover);transform:translate(4px)}.option:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.option-text{word-break:break-word;overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0;line-height:1.5}#finishTestSummary{font-size:14px;line-height:1.8}.option.selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft)}.option.selected.correct{border-color:var(--success);background:#2dd4a724;box-shadow:0 0 0 3px #2dd4a738}.option.selected.correct .option-mark{background:var(--success);color:#fff;border-color:var(--success)}.option.selected.wrong{border-color:var(--danger);background:#f0656a24;box-shadow:0 0 0 3px #f0656a38}.option.selected.wrong .option-mark{background:var(--danger);color:#fff;border-color:var(--danger)}.option-badge{letter-spacing:.2px;border-radius:20px;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:700;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.option-badge.badge-correct{background:var(--success);color:#fff;box-shadow:0 4px 12px #2dd4a74d}.option-badge.badge-wrong{background:var(--danger);color:#fff;box-shadow:0 4px 12px #f0656a4d}@media (width<=480px){.option-badge{margin-left:auto;padding:3px 8px;font-size:11px;position:static;transform:none}.option{border-radius:12px;flex-wrap:nowrap;align-items:center;gap:10px;width:100%;min-height:54px;margin:0;padding:12px 14px}.option-text{flex:auto;min-width:0;font-size:14px}.option-mark,.option-letter{width:30px;height:30px;font-size:12px}}.option-mark{background:var(--card);border:1px solid var(--border);width:32px;height:32px;transition:all var(--transition);color:var(--muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.option.selected .option-mark{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-color:var(--primary);transform:scale(1.08);box-shadow:0 4px 12px #5b7cfa4d}.option-letter{background:var(--card);border:1px solid var(--border);width:32px;height:32px;transition:all var(--transition);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.option.selected .option-letter{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-color:var(--primary);transform:scale(1.1);box-shadow:0 4px 12px #5b7cfa4d}.navigator-area{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-self:start;padding:16px;position:fixed;top:80px}.navigator-header{margin-bottom:12px;font-size:14px;font-weight:600}.question-nav{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px;display:grid}.qn-btn{aspect-ratio:1;background:var(--bg);border:1px solid var(--border);-webkit-tap-highlight-color:transparent;border-radius:8px;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:all .25s;display:flex;position:relative;overflow:hidden}.qn-btn:hover{border-color:var(--primary);transform:scale(1.1)}.qn-btn:active{transform:scale(.9)}.qn-btn.current{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #6366f14d}.qn-btn.correct{background:linear-gradient(135deg, var(--success), #34d399);color:#fff;border-color:var(--success)}.qn-btn.wrong{background:linear-gradient(135deg, var(--danger), #f0656a);color:#fff;border-color:var(--danger)}.test-nav-buttons{justify-content:space-between;align-items:center;gap:12px;display:flex}.test-nav-center{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.btn-sm{padding:8px 14px;font-size:13px}.btn-marked{border-color:var(--warning)!important;color:var(--warning)!important;background:#f59e0b26!important}.test-mini-stats{flex-wrap:wrap;gap:20px;margin-bottom:16px;display:flex}.mini-stat{color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;display:flex}.mini-stat strong{color:var(--text)}.mini-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.mini-answered{background:var(--success)}.mini-unanswered{background:var(--muted)}.mini-marked{background:var(--warning)}.question-diff-tag{vertical-align:middle;border-radius:8px;margin-left:6px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.question-diff-tag.diff-beginner{color:var(--success);background:#2dd4a726}.question-diff-tag.diff-intermediate{color:var(--warning);background:#fbbf3c26}.question-diff-tag.diff-advanced{color:var(--danger);background:#f0656a26}.option-checkmark{color:var(--primary);opacity:0;margin-left:auto;font-size:18px;transition:opacity .25s}.option.selected .option-checkmark{opacity:1}.question-hint{background:var(--bg);border-radius:var(--radius-sm);color:var(--muted);border-left:3px solid var(--primary);margin-top:20px;padding:12px 16px;font-size:12px}@keyframes qSlideIn{0%{opacity:0;transform:translate(15px)}to{opacity:1;transform:translate(0)}}.navigator-header{flex-direction:column;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.navigator-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;font-weight:400;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.legend-dot.legend-correct{background:var(--success)}.legend-dot.legend-wrong{background:var(--danger)}.legend-dot.legend-marked{background:var(--warning)}.qn-btn.marked{border-color:var(--warning);box-shadow:0 0 0 2px #f59e0b33}.qn-btn.marked.current{border-color:var(--warning)}.result-hero{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:40px 20px}.result-emoji{animation:emojiBounce .6s var(--bounce);margin-bottom:12px;font-size:60px}@keyframes emojiBounce{0%{transform:scale(0)rotate(-20deg)}60%{transform:scale(1.2)rotate(10deg)}to{transform:scale(1)rotate(0)}}.result-hero h1{margin-bottom:4px;font-size:42px;font-weight:800;animation:.5s .2s backwards countUp}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-percent{color:var(--primary);margin-bottom:12px;font-size:24px;font-weight:700}.result-status{border-radius:20px;padding:6px 24px;font-size:16px;font-weight:700;display:inline-block}.result-status.passed{color:var(--success);animation:statusPop .4s var(--bounce) .3s backwards;background:#2dd4a726}.result-status.failed{color:var(--danger);animation:statusPop .4s var(--bounce) .3s backwards;background:#f0656a26}@keyframes statusPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.result-stats{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;display:grid}.result-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:16px;transition:all .3s;animation:.5s backwards cardSlideIn}.result-stat-card:first-child{animation-delay:.1s}.result-stat-card:nth-child(2){animation-delay:.15s}.result-stat-card:nth-child(3){animation-delay:.2s}.result-stat-card:nth-child(4){animation-delay:.25s}.result-stat-card:nth-child(5){animation-delay:.3s}.result-stat-card:hover{border-color:var(--primary);transform:translateY(-3px)}.result-stat-card .val{font-size:22px;font-weight:700}.result-stat-card .lbl{color:var(--muted);margin-top:4px;font-size:12px}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:20px;display:flex}.review-card{display:none}.review-card.active{display:block}.review-item{border-bottom:1px solid var(--border);padding:20px 0}.review-item:last-child{border-bottom:none}.review-q{margin-bottom:12px;font-size:15px;font-weight:600}.review-ans{align-items:center;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.review-ans .label{color:var(--muted);min-width:140px}.review-ans .ans{border-radius:8px;padding:4px 12px;font-weight:600}.review-correct{color:var(--success);background:#2dd4a726}.review-wrong{color:var(--danger);background:#f0656a26}.review-status{margin:8px 0;font-weight:700}.review-status.correct{color:var(--success)}.review-status.incorrect{color:var(--danger)}.ripple{pointer-events:none;background:#ffffff4d;border-radius:50%;animation:.6s ease-out rippleEffect;position:absolute;transform:scale(0)}@keyframes rippleEffect{to{opacity:0;transform:scale(4)}}.review-explanation{background:var(--bg);border-radius:var(--radius-sm);color:var(--muted);margin-top:8px;padding:12px 16px;font-size:13px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:14px 18px;font-size:14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}tr:last-child td{border-bottom:none}tbody tr{transition:all .25s}tbody tr:hover{background:var(--card-hover);transform:scale(1.005)}.leaderboard{flex-direction:column;gap:8px;display:flex}.rank-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:16px;padding:14px 18px;transition:all .3s;animation:.4s backwards cardSlideIn;display:flex;position:relative;overflow:hidden}.rank-item:first-child{animation-delay:50ms}.rank-item:nth-child(2){animation-delay:.1s}.rank-item:nth-child(3){animation-delay:.15s}.rank-item:nth-child(4){animation-delay:.2s}.rank-item:nth-child(5){animation-delay:.25s}.rank-item:hover{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translate(4px)}.rank-item.you{border-color:var(--primary);background:var(--primary-soft)}.rank-position{background:var(--bg);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.rank-position.gold{color:#fff;background:linear-gradient(135deg,#f59e0b,#fbbf24)}.rank-position.silver{color:#fff;background:linear-gradient(135deg,#94a3b8,#cbd5e1)}.rank-position.bronze{color:#fff;background:linear-gradient(135deg,#b45309,#d97706)}.rank-info{flex:1}.rank-name{font-size:15px;font-weight:600}.rank-level{color:var(--muted);font-size:12px}.rank-xp{color:var(--primary);font-size:18px;font-weight:700}.podium{grid-template-columns:1fr 1fr 1fr;align-items:end;gap:12px;margin-bottom:24px;padding:12px 0;display:grid}.podium-place{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;animation:cardSlideIn .5s var(--bounce) backwards;padding:18px 12px 16px;transition:all .3s;position:relative}.podium-place:first-child{animation-delay:.1s}.podium-place:nth-child(2){animation-delay:.2s}.podium-place:nth-child(3){animation-delay:.3s}.podium-place:hover{box-shadow:var(--shadow-soft);transform:translateY(-4px)}.podium-place.place-1{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary-soft), var(--shadow-soft);order:2;padding-bottom:28px}.podium-place.place-1 .avatar{color:#fff;background:linear-gradient(135deg,#5b7cfa,#8b5cf6);width:72px;height:72px;font-size:22px}.podium-place.place-2{order:1}.podium-place.place-2 .avatar{color:#fff;background:linear-gradient(135deg,#94a3b8,#cbd5e1)}.podium-place.place-3{order:3}.podium-place.place-3 .avatar{color:#fff;background:linear-gradient(135deg,#b45309,#d97706)}.podium-medal{margin-bottom:6px;font-size:28px}.podium-place .avatar{background:var(--bg);border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:6px auto;font-size:18px;font-weight:700;display:inline-flex;box-shadow:0 4px 14px #0000001f}.p-name{margin-top:6px;font-size:14px;font-weight:700}.p-username{margin:2px 0 6px;font-size:11px}.p-pts{margin-top:4px;font-size:14px}.p-pts strong{color:var(--primary);font-size:18px}.leader-list{flex-direction:column;gap:10px;display:flex}.leader-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:14px;padding:12px 16px;transition:all .3s;animation:.35s backwards cardSlideIn;display:flex}.leader-row:first-child{animation-delay:50ms}.leader-row:nth-child(2){animation-delay:.1s}.leader-row:nth-child(3){animation-delay:.15s}.leader-row:nth-child(4){animation-delay:.2s}.leader-row:nth-child(5){animation-delay:.25s}.leader-row:hover{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translate(4px)}.leader-row.me{border-color:var(--primary);background:var(--primary-soft)}.lr-rank{background:var(--bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:flex}.lr-avatar{background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-weight:700;display:flex}.lr-info{flex:1}.lr-name{font-size:14px;font-weight:600}.lr-name .me-tag{background:var(--primary);color:#fff;border-radius:20px;margin-left:6px;padding:1px 8px;font-size:10px;font-weight:500;display:inline-block}.lr-user{margin-top:2px;font-size:12px}.lr-pts{text-align:right;font-size:13px}.lr-pts strong{color:var(--primary);font-size:18px;display:block}@media (width<=768px){.podium{grid-template-columns:1fr;gap:10px}.podium-place.place-1{order:1}.podium-place.place-2{order:2}.podium-place.place-3{order:3}}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.achievement-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;transition:all var(--transition);padding:24px 20px}.achievement-card.unlocked{border-color:#5b7cfa4d}.achievement-card.unlocked:hover{box-shadow:var(--shadow);transform:translateY(-5px)scale(1.02)}.achievement-card.unlocked:hover .achievement-icon{transform:scale(1.2)rotate(-10deg)}.achievement-card.locked{opacity:.45;filter:grayscale(.6)}.achievement-icon{transition:transform .4s var(--bounce);margin-bottom:12px;font-size:40px}.achievement-card h4{margin-bottom:4px;font-size:15px;font-weight:600}.achievement-card p{color:var(--muted);font-size:12px}.achievement-status{border-radius:8px;margin-top:10px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.achievement-status.unlocked{color:var(--success);background:#2dd4a726}.achievement-status.locked{background:var(--bg);color:var(--muted)}.achievement{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:16px;transition:all .3s}.achievement.unlocked{border-color:#5b7cfa4d}.achievement.unlocked:hover{box-shadow:var(--shadow);transform:translateY(-5px)scale(1.02)}.achievement.locked{opacity:.45;filter:grayscale(.6)}.ach-icon{margin-bottom:8px;font-size:32px}.ach-name{margin-bottom:4px;font-size:15px;font-weight:600}.ach-desc{color:var(--muted);font-size:12px}.profile-header{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;margin-bottom:20px;padding:32px}.profile-avatar{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;width:100px;height:100px;animation:avatarIn .6s var(--bounce);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:42px;font-weight:700;display:flex;box-shadow:0 8px 30px #5b7cfa4d}@keyframes avatarIn{0%{transform:scale(0)rotate(-180deg)}to{transform:scale(1)rotate(0)}}.profile-name{font-size:24px;font-weight:700}.profile-username{color:var(--muted);margin-bottom:4px;font-size:14px}.profile-email{color:var(--muted);margin-bottom:16px;font-size:13px}.profile-level-badge{background:var(--primary-soft);color:var(--primary);border-radius:20px;align-items:center;gap:6px;padding:7px 20px;font-size:14px;font-weight:600;display:inline-flex}.profile-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:20px;transition:all .3s;animation:.4s backwards cardSlideIn}.profile-stat-card:hover{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translateY(-3px)}.profile-stat-card .val{font-size:24px;font-weight:700}.profile-stat-card .lbl{color:var(--muted);margin-top:4px;font-size:13px}.profile-actions{text-align:center}.profile-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:20px;display:grid}.profile-stat{border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;transition:all .25s;display:flex}.profile-stat:hover{border-color:var(--primary);transform:translate(4px)}.profile-stat .stat-label{color:var(--muted)}.profile-stat .stat-value{font-weight:700}.avatar-opt{background:var(--bg);border:2px solid var(--border);width:48px;height:48px;transition:all .3s var(--bounce);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:22px;display:flex}.avatar-opt:hover{border-color:var(--primary);transform:scale(1.15)rotate(5deg)}.avatar-opt.selected{border-color:var(--primary);background:var(--primary-soft);transform:scale(1.1)}.setting-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-row span{font-size:14px}.modal-overlay{-webkit-backdrop-filter:blur(5px);z-index:1000;background:#04060c99;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.active{animation:.25s ease-out fadeIn;display:flex}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;-webkit-backdrop-filter:var(--glass);animation:slideUp .45s var(--transition);overflow-y:auto;box-shadow:0 20px 50px #00000080,0 0 30px #6366f126}.modal-sm{max-width:400px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-header h3{font-size:18px;font-weight:600}.modal-close{opacity:.6;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .25s;display:flex}.modal-close:hover{opacity:1;background:var(--bg);transform:rotate(90deg)}.modal-close:active{transform:rotate(90deg)scale(.9)}.modal-body{padding:24px}.modal-body p{color:var(--muted);font-size:14px;line-height:1.6}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:18px 24px;display:flex}.start-test-info{flex-direction:column;gap:12px;display:flex}.start-test-info-row{background:var(--bg);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;display:flex}.start-test-info-row .lbl{color:var(--muted);font-size:14px}.start-test-info-row .val{font-size:14px;font-weight:600}.start-info{flex-direction:column;gap:10px;display:flex}.start-info-row{background:var(--bg);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;display:flex}.start-info-row span{color:var(--muted)}.start-info-row strong{color:var(--text)}.avatar-picker{margin-bottom:20px}.avatar-preview{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;font-size:30px;font-weight:700;display:flex}.avatar-options{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.avatar-option{background:var(--bg);border:2px solid var(--border);width:48px;height:48px;transition:all .3s var(--bounce);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:22px;display:flex}.avatar-option:hover{border-color:var(--primary);transform:scale(1.15)rotate(5deg)}.avatar-option:active{transform:scale(.9)}.avatar-option.selected{border-color:var(--primary);background:var(--primary-soft);transform:scale(1.1)}.achievement-modal-body{text-align:center;padding:32px 24px}.achievement-modal-body .ach-icon{margin-bottom:16px;font-size:56px}.achievement-modal-body h2{margin-bottom:8px;font-size:22px}.achievement-modal-body p{color:var(--muted)}.toast-container{z-index:2000;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass);animation:toastIn .35s var(--transition);align-items:center;gap:10px;min-width:280px;max-width:400px;padding:14px 18px;font-size:14px;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(15px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast.removing{animation:toastOut .25s var(--transition) forwards}@keyframes toastOut{to{opacity:0;transform:translateY(10px)scale(.95)}}.loading-overlay{background:var(--bg);z-index:3000;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:none;position:fixed;inset:0}.loading-overlay.active{display:flex}.loader{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{color:var(--muted);font-size:14px}*{box-sizing:border-box}html,body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;max-width:100%;margin:0;overflow-x:hidden}body{min-height:100dvh}body,p,h1,h2,h3,h4,h5,h6,span,td,th,button,input,textarea,select{overflow-wrap:anywhere;word-break:break-word}img,svg,canvas,video,iframe{max-width:100%;display:block}button,input,select,textarea{font:inherit}.btn,.nav-item,.icon-btn,.user-chip,.modal-close,.hamburger,.auth-tab,.pwd-toggle{min-height:44px}@media (width<=1024px){.sidebar{transform:translate(-100%)}.sidebar.active{transform:translate(0)}.sidebar-close,.sidebar-overlay.active{display:block}.main{margin-left:0}.hamburger{display:block}.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.result-stats{grid-template-columns:repeat(3,1fr)}.test-body{grid-template-columns:1fr}.navigator-area{position:static}}@media (width<=768px){#topbarUsername{display:none}.content{padding:16px}.page,.card,.content,.main{min-width:0}.card{overflow:hidden}.card-header,.card-body,.modal-header,.modal-body,.modal-footer,.welcome-banner,.question-area{padding-left:16px;padding-right:16px}.stats-grid{grid-template-columns:1fr 1fr}.welcome-banner{text-align:center;flex-direction:column}.welcome-level{justify-content:center;width:100%}#page-result .result-hero{padding:28px 16px}#page-result .result-emoji{font-size:44px}#page-result .result-hero h1{font-size:34px}#page-result .result-percent{font-size:22px}#page-result .result-status{padding:6px 18px;font-size:14px}#page-result .result-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#page-result .result-stat-card .val{font-size:20px}.test-header{flex-direction:column;align-items:stretch}.test-timer{text-align:center}.question-area{padding:18px}.question-text{font-size:16px}.form-row{flex-direction:column}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}.toast-container{bottom:16px;left:16px;right:16px}.toast{min-width:auto}.notif-dropdown{width:280px;right:-60px}.sidebar{width:min(82vw,320px)}.sidebar-header,.sidebar-nav,.sidebar-footer{padding-left:14px;padding-right:14px}.nav-item,.btn,.auth-tab,.pwd-toggle,.hamburger,.icon-btn{min-height:46px}.btn{padding-top:12px;padding-bottom:12px}.modal{max-height:88vh}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}.result-stats{grid-template-columns:1fr 1fr}.question-nav{grid-template-columns:repeat(5,1fr)}.auth-card{padding:20px}.topbar{padding:12px 16px}.topbar-left h2{white-space:nowrap;text-overflow:ellipsis;font-size:16px;overflow:hidden}.welcome-banner{padding:24px 16px}.welcome-banner h1{font-size:24px}.content{padding:12px 10px 88px}.result-hero{padding:24px 14px}.result-hero h1{font-size:28px}.result-percent,.result-stat-card .val{font-size:18px}.question-area{padding:16px 12px}.modal-overlay{padding:10px}.modal-header,.modal-body,.modal-footer{padding-left:14px;padding-right:14px}.toast-container{bottom:10px;left:10px;right:10px}}.duel-welcome{border:1px solid var(--border);background:linear-gradient(135deg,#6366f133,#06b6d433)}.duel-setup-card{margin-top:24px}.duel-setup-card .form-control{background:var(--bg-alt);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);transition:border-color var(--transition);outline:none;margin-top:8px;padding:12px;font-size:16px}.duel-setup-card .form-control:focus{border-color:var(--primary)}.duel-history-card{margin-top:24px}.duel-history-table{border-collapse:collapse;width:100%}.duel-history-table th,.duel-history-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px}.duel-history-table th{color:var(--muted);font-weight:600}.duel-history-table tr:last-child td{border-bottom:none}.duel-history-win{color:var(--success);font-weight:600}.duel-history-loss{color:var(--danger);font-weight:600}.duel-history-draw{color:var(--warning);font-weight:600}.duel-matchmaking{justify-content:center;align-items:center;min-height:50vh;display:flex}.matchmaking-container{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:600px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow);text-align:center;padding:40px}.matchmaking-status{letter-spacing:-.5px;color:var(--primary-hover);margin-bottom:30px;font-size:20px;font-weight:700}.matchmaking-players{justify-content:space-around;align-items:center;margin-bottom:30px;display:flex}.m-player{flex-direction:column;align-items:center;width:150px;display:flex}.m-avatar{background:var(--bg-alt);border:2px solid var(--border);width:80px;height:80px;box-shadow:var(--shadow-soft);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;font-size:40px;display:flex}.pulse-avatar{border-color:var(--primary);animation:1.5s infinite pulseAvatar}@keyframes pulseAvatar{0%{transform:scale(1);box-shadow:0 0 #6366f166}70%{transform:scale(1.05);box-shadow:0 0 0 12px #6366f100}to{transform:scale(1);box-shadow:0 0 #6366f100}}.m-name{margin-bottom:6px;font-weight:600}.m-status{font-size:12px}.matchmaking-vs{color:var(--muted);font-size:24px;font-style:italic;font-weight:800}.matchmaking-progress-bar{background:var(--bg-alt);border-radius:3px;height:6px;overflow:hidden}.mm-progress-fill{background:linear-gradient(90deg, var(--primary), var(--secondary));width:0%;height:100%;transition:width .1s linear}.tow-visualizer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow);justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px;display:flex}.tow-player{border-radius:var(--radius-sm);background:var(--bg-alt);border:1px solid var(--border);min-width:140px;transition:box-shadow var(--transition), border-color var(--transition);align-items:center;gap:12px;padding:8px 16px;display:flex}.tow-player.leading{border-color:var(--success);box-shadow:0 0 15px #10b98133}.tow-avatar{font-size:28px}.tow-info{flex-direction:column;display:flex}.tow-username{text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:14px;font-weight:600;overflow:hidden}.tow-score{color:var(--primary-hover);font-size:20px;font-weight:800}.tow-rope-container{background:var(--border);border-radius:3px;flex:1;height:6px;margin:0 20px;position:relative}.tow-rope-line{background:linear-gradient(90deg, var(--primary), var(--secondary));opacity:.6;border-radius:3px;position:absolute;inset:0}.tow-rope-marker{filter:drop-shadow(0 2px 8px #00000080);-webkit-user-select:none;user-select:none;font-size:28px;transition:left .4s cubic-bezier(.25,.8,.25,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.duel-quiz-card{margin-top:16px}.duel-quiz-header{justify-content:space-between;align-items:center;display:flex}.duel-timer-badge{background:var(--bg-alt);border:1px solid var(--border);color:var(--warning);text-align:center;border-radius:20px;min-width:42px;padding:6px 12px;font-size:14px;font-weight:700}.duel-timer-badge.warning{color:var(--danger);border-color:var(--danger);animation:.5s infinite alternate timerPulse}@keyframes timerPulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.duel-q-text{margin-bottom:24px;font-size:18px;font-weight:600;line-height:1.6}.duel-options{grid-template-columns:1fr;gap:12px;display:grid}.duel-opt-btn{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;transition:all var(--transition);align-items:center;gap:12px;width:100%;padding:16px;font-size:15px;display:flex;position:relative}.duel-opt-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);transform:translateY(-2px)}.duel-opt-btn:disabled{cursor:not-allowed;opacity:.8}.duel-opt-btn.correct{font-weight:600;border-color:var(--success)!important;color:var(--success)!important;background:#10b9811a!important}.duel-opt-btn.wrong{border-color:var(--danger)!important;color:var(--danger)!important;background:#ef44441a!important}.duel-opt-badge{border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;position:absolute;right:16px}.duel-opt-badge.c-badge{background:var(--success);color:#fff}.duel-opt-badge.w-badge{background:var(--danger);color:#fff}.duel-opt-mark{background:var(--border);width:28px;height:28px;color:var(--muted);transition:all var(--transition);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.duel-opt-btn:hover:not(:disabled) .duel-opt-mark{background:var(--primary);color:#fff}.duel-status-banner{border-radius:var(--radius-sm);text-align:center;opacity:0;margin-top:16px;padding:12px;font-size:15px;font-weight:600;transition:opacity .3s}.duel-status-banner.show{opacity:1}.duel-status-banner.success{color:var(--success);background:#10b9811a;border:1px solid #10b98133}.duel-status-banner.danger{color:var(--danger);background:#ef44441a;border:1px solid #ef444433}.duel-status-banner.neutral{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b33}.duel-result #duelResultHero{border-bottom:1px solid var(--border)}.duel-rewards-card{margin-top:24px}.rewards-grid{justify-content:space-around;gap:16px;display:flex}.reward-item{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);flex-direction:column;flex:1;align-items:center;gap:8px;padding:20px;display:flex}.reward-item .r-icon{font-size:32px}.reward-item .r-val{color:var(--success);font-size:18px;font-weight:700}@keyframes confettiFall{0%{opacity:1;transform:translateY(-50px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@media (width<=768px){.tow-visualizer{flex-direction:column;gap:16px}.tow-rope-container{width:100%;height:8px;margin:10px 0}.tow-player{justify-content:center;width:100%}.rewards-grid{flex-direction:column}}.duel-mode-chips,.duel-diff-chips{background:var(--bg-alt);border-radius:var(--radius-sm);border:1px solid var(--border);gap:8px;margin-top:6px;padding:4px;display:flex}.duel-chip{color:var(--muted);transition:all .2s var(--transition);text-align:center;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 12px;font-size:13px;font-weight:600}.duel-chip:hover:not(.active){color:var(--text);background:#ffffff08}.duel-chip.active{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;transform:scale(1.05);box-shadow:0 4px 12px #6366f159}.premium-shimmer{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/200% 100%;animation:2s infinite shimmer}.float-animation{animation:3s ease-in-out infinite float}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px #6366f14d}50%{box-shadow:0 0 20px #6366f199}}@keyframes success-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.success-bounce{animation:.4s success-bounce}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-100vh)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.confetti-particle{pointer-events:none;z-index:9999;border-radius:2px;width:10px;height:10px;animation:3s linear forwards confetti-fall;position:fixed}@keyframes xp-float{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-30px)scale(1.2)}}.xp-float{color:var(--success);pointer-events:none;z-index:100;font-weight:700;animation:1s ease-out forwards xp-float;position:absolute}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg) 25%, var(--card-hover) 50%, var(--bg) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite skeleton-loading}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast{animation:.3s forwards toast-in}.toast.toast-hiding{animation:.3s forwards toast-out}.duel-timer-progress{background:var(--border);width:100%;height:4px;position:relative;overflow:hidden}.duel-timer-fill{background:linear-gradient(90deg, var(--success) 0%, var(--warning) 60%, var(--danger) 100%);width:100%;height:100%;transition:width .1s linear}.duel-double-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:10px;display:grid}.duel-player-panel{border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);background:#ffffff03;flex-direction:column;padding:14px;display:flex}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.panel-player-name{color:var(--primary-hover);font-size:14px;font-weight:700}.panel-player-keys{color:var(--muted);background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:11px}.duel-opt-btn.p1-selected{border-color:var(--primary)!important;background:#6366f10f!important;box-shadow:0 0 10px #6366f140!important}.duel-opt-btn.p2-selected{border-color:var(--secondary)!important;background:#06b6d40f!important;box-shadow:0 0 10px #06b6d440!important}.duel-opt-btn.both-selected{border-color:var(--warning)!important;background:#f59e0b0f!important;box-shadow:0 0 10px #f59e0b40!important}.pop-score{animation:.5s cubic-bezier(.175,.885,.32,1.275) scorePopEffect}@keyframes scorePopEffect{0%{transform:scale(1)}50%{color:var(--success);text-shadow:0 0 8px var(--success);transform:scale(1.4)}to{transform:scale(1)}}.duel-result-players-scores{border-radius:var(--radius);border:1px solid var(--border);background:#ffffff05;justify-content:center;align-items:center;gap:24px;margin:24px 0;padding:16px;display:flex}.duel-res-player{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;flex:1;align-items:center;max-width:160px;padding:16px;transition:transform .3s,box-shadow .3s;display:flex}.duel-res-player.winner-card{border-color:var(--success);transform:translateY(-5px);box-shadow:0 0 20px #10b98140}.duel-res-avatar{background:var(--card);width:56px;height:56px;box-shadow:var(--shadow-soft);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;font-size:28px;display:flex}.duel-res-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:110px;margin-bottom:6px;font-size:13px;font-weight:600;overflow:hidden}.duel-res-score-num{color:var(--primary-hover);font-size:32px;font-weight:800}.duel-res-player.winner-card .duel-res-score-num{color:var(--success)}.duel-res-vs{color:var(--muted);font-size:18px;font-style:italic;font-weight:800}@media (width<=768px){.duel-double-grid{grid-template-columns:1fr;gap:16px}.duel-result-players-scores{flex-direction:column;gap:16px}.duel-res-player{width:100%;max-width:none}}.shop-balance-card{background:linear-gradient(135deg, var(--accent) 0%, var(--primary) 100%);color:#fff;border:none;margin-bottom:2rem;box-shadow:0 8px 24px #6366f14d}.shop-balance-content{justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.balance-label{font-size:1.1rem;font-weight:500}.balance-value{text-shadow:2px 2px 4px #0003;font-size:2.5rem;font-weight:700}.balance-unit{opacity:.9;font-size:1.1rem}.shop-filters{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:2rem;display:flex}.filter-chip{border:2px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:2rem;padding:.5rem 1.25rem;font-weight:500;transition:all .3s}.filter-chip:hover{border-color:var(--primary);background:var(--primary-bg);transform:translateY(-2px)}.filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #6366f14d}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.reward-card{background:var(--card-bg);border:2px solid var(--border);text-align:center;border-radius:1rem;padding:1.5rem;transition:all .3s;position:relative;overflow:hidden}.reward-card:hover{border-color:var(--primary);transform:translateY(-5px);box-shadow:0 8px 24px #00000026}.reward-card.owned{border-color:var(--success);background:linear-gradient(135deg,#10b9811a 0%,#10b9810d 100%)}.reward-icon{margin-bottom:1rem;font-size:4rem;animation:3s ease-in-out infinite floatIcon;display:block}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.reward-name{color:var(--text);margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.reward-rarity{text-transform:uppercase;border-radius:1rem;margin-bottom:1rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.reward-rarity.common{color:#fff;background:#9ca3af}.reward-rarity.rare{color:#fff;background:#3b82f6}.reward-rarity.epic{color:#fff;background:#a855f7}.reward-rarity.legendary{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%);box-shadow:0 4px 12px #f59e0b66}.reward-price{color:var(--primary);margin-bottom:1rem;font-size:1.5rem;font-weight:700}.reward-actions{justify-content:center;gap:.5rem;display:flex}.btn-buy{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:.5rem;flex:1;padding:.75rem;font-weight:600;transition:all .3s}.btn-buy:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.05)}.btn-buy:disabled{opacity:.5;cursor:not-allowed}.btn-buy.owned{background:var(--success)}.purchase-confirm-content{text-align:center}.purchase-item-preview{margin-bottom:1.5rem}.purchase-icon{margin-bottom:.5rem;font-size:4rem}.purchase-name{color:var(--text);font-size:1.5rem;font-weight:600}.purchase-details{background:var(--bg);border-radius:.75rem;margin-bottom:1.5rem;padding:1rem}.purchase-row{justify-content:space-between;padding:.5rem 0;font-size:1rem;display:flex}.purchase-row.purchase-after{border-top:2px solid var(--border);margin-top:.5rem;padding-top:1rem;font-weight:600}.purchase-price{color:var(--primary);font-weight:600}.purchase-after-balance{color:var(--success);font-size:1.1rem;font-weight:700}.purchase-question{color:var(--text);margin:0;font-size:1.1rem;font-weight:500}@keyframes purchaseSuccess{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.purchase-success{animation:.5s ease-out purchaseSuccess}.avatar-preview-card{margin-bottom:2rem}.avatar-preview-body{flex-direction:column;align-items:center;gap:2rem;display:flex}.avatar-display{background:linear-gradient(135deg, var(--primary-bg) 0%, var(--accent-bg) 100%);border:4px solid var(--primary);border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;display:flex;position:relative;box-shadow:0 8px 32px #6366f14d}.avatar-base{z-index:1;font-size:6rem}.avatar-equipped-items{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.equipped-item-overlay{font-size:3rem;animation:.3s ease-out itemEquip;position:absolute}@keyframes itemEquip{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.equipped-item-overlay.hat{top:-10%;left:50%;transform:translate(-50%)}.equipped-item-overlay.glasses{top:35%;left:50%;transform:translate(-50%)}.equipped-item-overlay.badge{font-size:2rem;bottom:5%;right:5%}.equipped-item-overlay.frame{opacity:.6;font-size:8rem;inset:0}.equipped-list{width:100%;max-width:500px}.equipped-item-row{background:var(--bg);border-radius:.5rem;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.equipped-item-info{align-items:center;gap:.75rem;display:flex}.equipped-item-icon{font-size:1.5rem}.equipped-item-name{font-weight:500}.btn-unequip{background:var(--error);color:#fff;cursor:pointer;border:none;border-radius:.5rem;padding:.5rem 1rem;font-weight:500;transition:all .3s}.btn-unequip:hover{background:#dc2626;transform:scale(1.05)}.inventory-section{margin-bottom:2rem}.inventory-section h2{color:var(--text);margin-bottom:1.5rem}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.inventory-item{background:var(--card-bg);border:2px solid var(--border);text-align:center;border-radius:.75rem;padding:1rem;transition:all .3s}.inventory-item:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 4px 16px #0000001a}.inventory-item.equipped{border-color:var(--primary);background:linear-gradient(135deg,#6366f11a 0%,#6366f10d 100%)}.inventory-icon{margin-bottom:.5rem;font-size:3rem;display:block}.inventory-name{color:var(--text);margin-bottom:.75rem;font-weight:600}.inventory-type{color:var(--text-muted);text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem}.btn-equip{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:.5rem;width:100%;padding:.5rem;font-weight:500;transition:all .3s}.btn-equip:hover{background:var(--primary-dark)}.empty-inventory{text-align:center;color:var(--text-muted);padding:3rem}.empty-inventory-icon{opacity:.5;margin-bottom:1rem;font-size:4rem}@media (width<=768px){.shop-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.reward-icon{font-size:3rem}.balance-value{font-size:2rem}.avatar-display{width:150px;height:150px}.avatar-base{font-size:4rem}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (prefers-contrast:high){:root{--border:#fff}.btn,.option,.card{border-width:2px}}.store-hero{border-radius:var(--radius);background:linear-gradient(135deg,#0f172ad9 0%,#1e293bd9 100%);border:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:24px;display:flex;box-shadow:0 15px 30px #0000004d}.store-kicker{letter-spacing:1px;color:var(--primary-hover);text-transform:uppercase;font-size:11px;font-weight:700}.store-hero h1{color:#fff;margin-top:4px;font-size:28px;font-weight:800}.store-hero p{color:var(--muted);margin-top:4px;font-size:14px}.store-balance{border-radius:var(--radius-sm);background:#6366f11a;border:1px solid #6366f133;flex-direction:column;align-items:flex-end;padding:12px 24px;display:flex}.store-balance span{color:var(--muted);letter-spacing:.5px;font-size:11px;font-weight:600}.store-balance strong{color:var(--warning);margin-top:2px;font-size:24px;font-weight:800}.store-layout{grid-template-columns:320px 1fr;align-items:start;gap:24px;display:grid}.store-preview{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;padding:24px;display:flex}.store-card-heading{letter-spacing:.5px;width:100%;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:11px;font-weight:700;display:flex}.store-live{color:var(--success);animation:1.5s infinite alternate pulseLive}@keyframes pulseLive{0%{opacity:.4}to{opacity:1}}.store-avatar-stage{background:linear-gradient(135deg,#6366f114,#06b6d414);border:2px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:150px;height:150px;margin-bottom:16px;transition:all .3s;display:flex;position:relative;overflow:visible;box-shadow:0 10px 25px #0003}.store-avatar-stage:hover{border-color:var(--primary);transform:scale(1.03);box-shadow:0 12px 30px #6366f133}.store-avatar-base{z-index:1;font-size:4.5rem}.store-avatar-item{animation:itemEquip .3s var(--bounce);z-index:2;font-size:2.2rem;display:none;position:absolute}.store-avatar-item.visible{display:block}.store-avatar-hat{top:-15px;left:50%;transform:translate(-50%)}.store-avatar-glasses{font-size:2rem;top:38px;left:50%;transform:translate(-50%)}.store-avatar-clothes{font-size:2.5rem;bottom:0;left:50%;transform:translate(-50%)}.store-avatar-badge{z-index:3;font-size:1.5rem;bottom:10px;right:10px}.store-avatar-stage.store-bg-galaxy{background:radial-gradient(circle,#2e1065 0%,#0f172a 100%);border-color:#a855f7}.store-avatar-stage.store-bg-ocean{background:radial-gradient(circle,#0e7490 0%,#0f172a 100%);border-color:#06b6d4}.store-avatar-stage.store-bg-sunset{background:radial-gradient(circle,#b45309 0%,#0f172a 100%);border-color:#f59e0b}.store-avatar-stage.store-frame-diamond{border:4px solid #38bdf8;box-shadow:0 0 20px #38bdf866}.store-avatar-stage.store-frame-fire{border:4px solid #f97316;box-shadow:0 0 20px #f9731666}.store-avatar-stage.store-frame-gold{border:4px solid #fbbf24;box-shadow:0 0 20px #fbbf2466}.store-avatar-stage.store-frame-silver{border:4px solid #9ca3af;box-shadow:0 0 20px #9ca3af66}.store-avatar-stage.store-effect-sparkle:before{content:"✨";font-size:1.2rem;animation:2s ease-in-out infinite float;position:absolute;top:10px;left:10px}.store-avatar-stage.store-effect-glow{box-shadow:0 0 35px #6366f173}.store-avatar-stage.store-effect-rainbow{animation:5s linear infinite rainbowGlow}@keyframes rainbowGlow{0%,to{border-color:#ef4444;box-shadow:0 0 20px #ef444466}33%{border-color:#10b981;box-shadow:0 0 20px #10b98166}66%{border-color:#3b82f6;box-shadow:0 0 20px #3b82f666}}#storeAvatarName{color:#fff;margin-top:4px;font-size:18px;font-weight:700}.store-equipped{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:12px;display:flex}.store-equipped-pill{color:var(--text);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.store-equipped-pill:hover{color:var(--danger);background:#ef44441a;border-color:#ef44444d;transform:translateY(-1px)}.store-equipped-pill b{opacity:.7;margin-left:4px;font-weight:800}.store-inventory-title{letter-spacing:.5px;width:100%;color:var(--muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:24px;margin-bottom:12px;padding-top:16px;font-size:11px;font-weight:700;display:flex}.store-inventory{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;display:grid}.store-inventory-item{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.store-inventory-item:hover{background:#6366f114;border-color:#6366f14d;transform:scale(1.05)}.store-inventory-item.equipped{border-color:var(--primary);background:#6366f11f;box-shadow:0 0 10px #6366f126}.store-inventory-item span{font-size:28px}.store-inventory-item small{letter-spacing:.5px;color:var(--muted);text-transform:uppercase;margin-top:4px;font-size:8px;font-weight:700}.store-inventory-item.equipped small{color:var(--primary-hover)}.store-empty-equipped,.store-empty-inventory{color:var(--muted);width:100%;padding:12px;font-size:13px}.store-empty-inventory{flex-direction:column;grid-column:1/-1;align-items:center;gap:6px;padding:24px 0;display:flex}.store-catalog{flex-direction:column;gap:20px;display:flex}.store-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.store-tabs{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.store-tab{border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff0f;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s}.store-tab:hover{color:var(--text);background:#ffffff14}.store-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f140}.store-catalog-count{color:var(--muted);font-size:13px}.store-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.store-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:var(--glass);transition:all .25s var(--transition);flex-direction:column;padding:20px;display:flex;position:relative;overflow:hidden}.store-item:before{content:"";background:linear-gradient(90deg, var(--primary), var(--secondary));height:3px;transition:transform .25s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.store-item:hover{border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 10px 25px #0000004d}.store-item:hover:before{transform:scaleX(1)}.store-item-art{background:#ffffff08;border:1px solid #ffffff0f;border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;font-size:32px;transition:transform .25s;display:flex}.store-item:hover .store-item-art{transform:scale(1.08)rotate(3deg)}.store-item-art.rarity-common{background:#9ca3af14;border-color:#9ca3af26}.store-item-art.rarity-rare{background:#3b82f614;border-color:#3b82f626}.store-item-art.rarity-epic{background:#a855f714;border-color:#a855f726}.store-item-art.rarity-legendary{background:#f59e0b14;border-color:#f59e0b26}.store-item-meta{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.store-rarity{text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.rarity-text-common{color:#9ca3af}.rarity-text-rare{color:#60a5fa}.rarity-text-epic{color:#c084fc}.rarity-text-legendary{color:#fbbf24}.store-item-type{text-transform:uppercase;color:var(--muted);letter-spacing:.5px;font-size:9px;font-weight:700}.store-item h3{color:#fff;margin-bottom:6px;font-size:16px;font-weight:700}.store-item p{color:var(--muted);flex:1;margin-bottom:16px;font-size:12px;line-height:1.4}.store-owned-status{color:var(--success);margin-bottom:12px;font-size:11px;font-weight:600}.store-item-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}.store-item-footer strong{color:var(--warning);font-size:16px;font-weight:700}.store-item-action{background:var(--primary);border-radius:var(--radius-sm);color:#fff;text-align:center;flex:1;padding:8px 12px;font-size:12px;font-weight:600;transition:all .2s;box-shadow:0 4px 10px #6366f126}.store-item-action:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 14px #6366f140}.store-item-action:disabled{color:var(--muted);border:1px solid var(--border);box-shadow:none;cursor:not-allowed;background:#ffffff0d}.store-item-action.owned{color:var(--success);box-shadow:none;background:#10b9811a;border:1px solid #10b98133}.store-item-action.owned:hover{background:var(--success);color:#fff}.store-item-action.locked{color:var(--danger);background:#ef44440d;border:1px solid #ef444426}@media (width<=768px){.store-layout{grid-template-columns:1fr;gap:18px}.store-hero{flex-direction:column;align-items:stretch;gap:14px;min-width:0;padding:18px 16px}.store-hero h1{font-size:clamp(22px,6vw,28px)}.store-balance{align-items:flex-start;width:100%;padding:12px 14px}.store-balance strong{font-size:clamp(20px,7vw,24px)}.store-preview,.store-catalog,.store-hero,.store-toolbar,.store-item,.store-tabs,.store-item-footer,.store-item-action{min-width:0}.store-preview{padding:18px 14px}.store-avatar-stage{width:130px;height:130px;margin-bottom:12px}.store-avatar-base{font-size:4rem}.store-equipped{justify-content:center}.store-inventory{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.store-inventory-item{min-height:80px}.store-toolbar{align-items:stretch}.store-tabs{scrollbar-width:thin;flex-wrap:nowrap;width:100%}.store-tab{white-space:nowrap;padding:8px 12px;font-size:12px}.store-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.store-item{padding:14px 12px}.store-item h3{overflow-wrap:anywhere;word-break:break-word}.store-item p{min-height:0;font-size:11px}.store-item-meta{flex-wrap:wrap;gap:8px}.store-item-footer{flex-direction:column;align-items:stretch;gap:10px;display:flex}.store-item-footer strong{font-size:15px}.store-item-action{width:100%;min-height:42px;padding:10px 12px;font-size:12px;line-height:1.2}}@media (width<=480px){.store-hero{padding:16px 14px}.store-grid{grid-template-columns:1fr}.store-inventory{grid-template-columns:repeat(2,minmax(0,1fr))}.store-item-action{font-size:11px}.store-tabs{gap:4px}.store-tab{padding:8px 10px;font-size:11px}.store-catalog-count{font-size:12px}.store-avatar-stage{width:116px;height:116px}.store-card-heading,.store-inventory-title{font-size:10px}.modal-overlay{padding:12px}.modal{max-height:calc(100vh - 24px)}}.hero-premium{border-radius:var(--radius-lg);-webkit-backdrop-filter:var(--glass);border:1px solid #ffffff14;grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:center;gap:24px;padding:32px 36px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 40px #00000059,inset 0 1px #ffffff1a;background:linear-gradient(135deg,#0f172ae6 0%,#1e293be6 100%)!important}.hero-left{z-index:2;flex-direction:column;gap:16px;min-width:0;display:flex}.hero-top-badge{color:var(--primary-hover);text-transform:uppercase;letter-spacing:.5px;white-space:normal;background:#6366f11f;border:1px solid #6366f140;border-radius:30px;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.hero-top-badge-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.5s infinite alternate pulseBadge}@keyframes pulseBadge{0%{opacity:.5;transform:scale(.8)}to{opacity:1;transform:scale(1.3)}}.hero-title{letter-spacing:-.5px;color:#fff;word-break:break-word;font-weight:800;line-height:1.25;font-size:clamp(22px,2.5vw,32px)!important}.hero-gradient-text{background:linear-gradient(135deg, var(--secondary) 0%, var(--primary-hover) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-weight:800}.hero-subtitle{color:var(--muted);max-width:520px;margin-top:4px;font-size:14px;line-height:1.6}.hero-bottom-wrap{flex-direction:column;gap:12px;margin-top:8px;display:flex}.hero-user-row{align-items:center;display:flex}.hero-user-text{color:#fff;font-size:15px;font-weight:600}.hero-right{z-index:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.hero-image-wrap{border-radius:var(--radius);border:1px solid #ffffff14;width:100%;max-width:300px;position:relative;overflow:hidden;box-shadow:0 15px 35px #00000073}.hero-main-image{object-fit:cover;width:100%;height:auto;transition:transform .5s;display:block}.hero-image-wrap:hover .hero-main-image{transform:scale(1.05)}.hero-ring-glow{background:radial-gradient(circle, var(--primary) 0%, transparent 70%);opacity:.15;filter:blur(10px);pointer-events:none;position:absolute;inset:-10px}.hero-code-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;z-index:3;background:#0f172ad9;border:1px solid #ffffff1f;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:600;transition:all .3s;display:flex;position:absolute;box-shadow:0 4px 12px #0000004d}.hero-code-badge:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 6px 16px #6366f14d}.hero-code-html{top:8%;left:5px}.hero-code-py{bottom:12%;left:5px}.hero-code-js{top:8%;right:5px}.hero-code-java{bottom:12%;right:5px}.hero-code-sql{top:45%;right:5px}@media (width<=1100px){.hero-premium{grid-template-columns:1fr;gap:20px;padding:24px}.hero-right{justify-content:center;display:flex}.hero-code-badge{display:none}}.coding-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 20px;display:flex}.coding-header-left{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.coding-editor-tabs{background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border);gap:4px;padding:4px;display:flex}.coding-tab{color:var(--muted);border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s}.coding-tab:hover{color:var(--text)}.coding-tab.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f140}.coding-select-wrap{align-items:center;gap:8px;display:flex}.coding-select-wrap select{min-width:170px}.coding-toolbar-controls{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.auto-run-switch{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.auto-run-switch input{display:none}.auto-run-switch .slider{border:1px solid var(--border);background-color:#ffffff1a;border-radius:20px;width:36px;height:20px;transition:background-color .2s;position:relative}.auto-run-switch .slider:before{content:"";background-color:var(--muted);border-radius:50%;width:14px;height:14px;transition:transform .2s,background-color .2s;position:absolute;top:2px;left:2px}.auto-run-switch input:checked+.slider{background-color:#10b98133;border-color:#10b98166}.auto-run-switch input:checked+.slider:before{background-color:var(--success);transform:translate(16px)}.auto-run-switch input:checked~.switch-label{color:var(--success)}.coding-actions{align-items:center;gap:8px;display:flex}.coding-workspace{grid-template-columns:180px minmax(0,1.2fr) minmax(0,1fr);align-items:stretch;gap:16px;min-height:calc(100vh - 220px);display:grid}.coding-explorer{background:#111827;flex-direction:column;min-width:0;margin-bottom:0;display:flex;overflow:hidden}.coding-explorer-head{border-bottom:1px solid var(--border);color:var(--muted);letter-spacing:.08em;justify-content:space-between;padding:12px 14px;font-size:11px;font-weight:800;display:flex}.coding-project-tree{flex-direction:column;gap:2px;padding:10px 7px;font:12px/1.5 Consolas,Monaco,monospace;display:flex}.coding-tree-root,.coding-tree-folder{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:5px 7px;overflow:hidden}.coding-file{width:100%;color:var(--text);text-align:left;font:inherit;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;align-items:center;gap:7px;padding:7px 9px 7px 20px;display:flex;overflow:hidden}.coding-file:hover,.coding-file.active{color:#fff;background:#6366f12e}.coding-explorer-footer{border-top:1px solid var(--border);margin-top:auto;padding:9px 12px;font-size:10px}.coding-editor-panel,.coding-output-panel{flex-direction:column;height:100%;margin-bottom:0;display:flex;overflow:hidden}.editor-header,.output-tabs{border-bottom:1px solid var(--border);background:#0f172a99;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.editor-title{color:var(--text);letter-spacing:.5px;font-size:13px;font-weight:700}.editor-shortcuts{font-size:11px}.editor-body{background:#090d16;flex:1;position:relative;overflow:hidden}.editor-view{width:100%;height:100%;display:none;position:absolute;inset:0}.editor-view.active{z-index:10;pointer-events:auto;display:flex}.editor-container{pointer-events:auto;background:#090d16;flex:1;height:100%;font-family:Consolas,Monaco,Courier New,monospace;display:flex;position:relative;overflow:hidden}.line-numbers{color:#475569;text-align:right;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#0000004d;border-right:1px solid #ffffff0f;width:48px;padding:16px 8px;font-family:inherit;font-size:13px;line-height:1.6;overflow:hidden}.editor-surface{background:#090d16;flex:1;height:100%;position:relative;overflow:hidden}.editor-highlight,.code-textarea{box-sizing:border-box;tab-size:2;white-space:pre;word-wrap:normal;width:100%;height:100%;margin:0;padding:16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.6;position:absolute;inset:0;overflow:auto}.editor-highlight{pointer-events:none;color:#e2e8f0;z-index:1;background:0 0;overflow:hidden}.editor-highlight .token-html-tag,.editor-highlight .token-html-attr-name,.editor-highlight .token-html-attr-value,.editor-highlight .token-html-comment,.editor-highlight .token-html-text,.editor-highlight .token-css-selector,.editor-highlight .token-css-property,.editor-highlight .token-css-value,.editor-highlight .token-css-at-rule,.editor-highlight .token-css-media,.editor-highlight .token-css-variable,.editor-highlight .token-css-class,.editor-highlight .token-css-id,.editor-highlight .token-css-pseudo,.editor-highlight .token-css-comment,.editor-highlight .token-css-string,.editor-highlight .token-js-keyword,.editor-highlight .token-js-function,.editor-highlight .token-js-variable,.editor-highlight .token-js-string,.editor-highlight .token-js-number,.editor-highlight .token-js-boolean,.editor-highlight .token-js-operator,.editor-highlight .token-js-comment,.editor-highlight .token-js-builtin,.editor-highlight .token-js-property,.editor-highlight .token-js-template,.editor-highlight .token-js-console,.editor-highlight .token-python-keyword,.editor-highlight .token-python-function,.editor-highlight .token-python-string,.editor-highlight .token-python-number,.editor-highlight .token-python-comment,.editor-highlight .token-python-class,.editor-highlight .token-python-variable,.editor-highlight .token-java-keyword,.editor-highlight .token-java-class,.editor-highlight .token-java-method,.editor-highlight .token-java-string,.editor-highlight .token-java-number,.editor-highlight .token-java-comment,.editor-highlight .token-cpp-keyword,.editor-highlight .token-cpp-type,.editor-highlight .token-cpp-function,.editor-highlight .token-cpp-string,.editor-highlight .token-cpp-number,.editor-highlight .token-cpp-comment,.editor-highlight .token-csharp-keyword,.editor-highlight .token-csharp-type,.editor-highlight .token-csharp-function,.editor-highlight .token-csharp-string,.editor-highlight .token-csharp-number,.editor-highlight .token-csharp-comment,.editor-highlight .token-sql-keyword,.editor-highlight .token-sql-table,.editor-highlight .token-sql-field,.editor-highlight .token-sql-string,.editor-highlight .token-sql-number,.editor-highlight .token-sql-comment,.editor-highlight .token-sql-function{font-family:inherit}.editor-highlight .token-html-tag{color:#67e8f9}.editor-highlight .token-html-attr-name{color:#fbbf24}.editor-highlight .token-html-attr-value{color:#fca5a5}.editor-highlight .token-html-comment{color:#34d399}.editor-highlight .token-html-text{color:#e2e8f0}.editor-highlight .token-css-selector{color:#c4b5fd}.editor-highlight .token-css-property{color:#7dd3fc}.editor-highlight .token-css-value{color:#fbbf24}.editor-highlight .token-css-at-rule,.editor-highlight .token-css-media{color:#a78bfa}.editor-highlight .token-css-variable,.editor-highlight .token-css-class{color:#f9a8d4}.editor-highlight .token-css-id{color:#fca5a5}.editor-highlight .token-css-pseudo{color:#f0abfc}.editor-highlight .token-css-comment{color:#34d399}.editor-highlight .token-css-string{color:#fda4af}.editor-highlight .token-css-number{color:#fca5a5}.editor-highlight .token-js-keyword{color:#c084fc}.editor-highlight .token-js-function{color:#7dd3fc}.editor-highlight .token-js-variable{color:#f8fafc}.editor-highlight .token-js-string{color:#fbbf24}.editor-highlight .token-js-number{color:#fca5a5}.editor-highlight .token-js-boolean{color:#c084fc}.editor-highlight .token-js-operator{color:#cbd5e1}.editor-highlight .token-js-comment{color:#34d399}.editor-highlight .token-js-builtin{color:#7dd3fc}.editor-highlight .token-js-property{color:#a5f3fc}.editor-highlight .token-js-template{color:#fcd34d}.editor-highlight .token-js-console{color:#7dd3fc}.editor-highlight .token-python-keyword{color:#c084fc}.editor-highlight .token-python-function{color:#7dd3fc}.editor-highlight .token-python-string{color:#fbbf24}.editor-highlight .token-python-number{color:#fca5a5}.editor-highlight .token-python-comment{color:#34d399}.editor-highlight .token-python-class{color:#f9a8d4}.editor-highlight .token-python-variable{color:#f8fafc}.editor-highlight .token-java-keyword{color:#c084fc}.editor-highlight .token-java-class{color:#f9a8d4}.editor-highlight .token-java-method{color:#7dd3fc}.editor-highlight .token-java-string{color:#fbbf24}.editor-highlight .token-java-number{color:#fca5a5}.editor-highlight .token-java-comment{color:#34d399}.editor-highlight .token-cpp-keyword{color:#c084fc}.editor-highlight .token-cpp-type{color:#7dd3fc}.editor-highlight .token-cpp-function{color:#60a5fa}.editor-highlight .token-cpp-string{color:#fbbf24}.editor-highlight .token-cpp-number{color:#fca5a5}.editor-highlight .token-cpp-comment{color:#34d399}.editor-highlight .token-csharp-keyword{color:#c084fc}.editor-highlight .token-csharp-type{color:#7dd3fc}.editor-highlight .token-csharp-function{color:#60a5fa}.editor-highlight .token-csharp-string{color:#fbbf24}.editor-highlight .token-csharp-number{color:#fca5a5}.editor-highlight .token-csharp-comment{color:#34d399}.editor-highlight .token-sql-keyword{color:#c084fc}.editor-highlight .token-sql-table{color:#7dd3fc}.editor-highlight .token-sql-field{color:#a5f3fc}.editor-highlight .token-sql-string{color:#fbbf24}.editor-highlight .token-sql-number{color:#fca5a5}.editor-highlight .token-sql-comment{color:#34d399}.editor-highlight .token-sql-function{color:#60a5fa}.code-textarea{color:#0000;caret-color:#f1f5f9;resize:none;pointer-events:auto;-webkit-user-select:text;user-select:text;cursor:text;z-index:2;text-shadow:none;background:0 0;border:none;outline:none;flex:1;overflow:auto}.code-textarea::selection{background:#94a3b840}.auth-bg:after,.auth-bg .orb,.welcome-banner:before,.welcome-banner:after,.btn:after,.xp-bar-fill:after,.progress-fill:after,.subject-card:before,.store-item:before,.store-avatar-stage.store-effect-sparkle:before,.sidebar .nav-item.active:before,.hero-ring-glow,.hero-code-badge{pointer-events:none}.topbar .hamburger,.topbar .icon-btn,.topbar .notif-btn,.topbar .user-chip,.topbar .ux-user-dropdown .ux-menu-item{z-index:2;cursor:pointer;position:relative}.topbar:before{content:none}.code-textarea:focus{outline:none}.code-textarea::placeholder{color:#475569;opacity:1}.stdin-panel{border-bottom:1px solid var(--border);background:#0f172a59;padding:8px 12px}.stdin-textarea{color:#e2e8f0;resize:vertical;box-sizing:border-box;background:#090d16;border:1px solid #ffffff1a;border-radius:8px;outline:none;width:100%;height:72px;padding:8px 10px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5}.stdin-textarea:focus{border-color:#6366f166}.console-section{border:1px solid #ffffff0f;border-radius:8px;margin:8px 0;overflow:hidden}.console-section-title{letter-spacing:.08em;color:#94a3b8;background:#0f172a99;padding:6px 10px;font-size:10px;font-weight:800}.console-section-title.stdout{color:#34d399}.console-section-title.stderr{color:#f87171}.console-section-body{white-space:pre-wrap;word-break:break-word;color:#e2e8f0;max-height:240px;padding:8px 10px;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow:auto}.sql-result-table{border-collapse:collapse;max-width:100%;margin:8px 0;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px}.sql-result-table th,.sql-result-table td{text-align:left;border:1px solid #ffffff1f;padding:4px 10px}.sql-result-table th{color:#c7d2fe;background:#6366f126;font-weight:700}.sql-result-table td{color:#e2e8f0}.output-tabs{justify-content:flex-start;gap:8px;display:flex}.output-tab{color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.output-tab:hover{color:var(--text)}.output-tab.active{color:var(--primary-hover);background:#6366f126;border:1px solid #6366f14d}.output-body{background:#090d16;flex:1;position:relative;overflow:hidden}.output-view{width:100%;height:100%;display:none;position:absolute;inset:0}.output-view.active{flex-direction:column;display:flex}#codingIframe{background:#fff;border:none;width:100%;height:100%}.console-toolbar{border-bottom:1px solid var(--border);color:var(--muted);background:#0f172a66;justify-content:space-between;align-items:center;padding:8px 16px;font-size:12px;display:flex}.console-logs{flex-direction:column;flex:1;gap:6px;padding:16px;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;display:flex;overflow-y:auto}.console-line{word-break:break-all;border-radius:4px;padding:6px 10px;font-family:inherit}.console-line.log{color:#38bdf8;background:#38bdf80f}.console-line.warn{color:#fbbf24;background:#fbbf2414}.console-line.error{color:#f87171;background:#f871711f;border-left:3px solid #ef4444;font-weight:500}.console-line.info{color:#a78bfa;background:#a78bfa0f}@media (width<=992px){.coding-workspace{grid-template-columns:1fr;min-height:auto}.coding-explorer{min-height:0}.coding-project-tree{flex-direction:row;align-items:center;overflow-x:auto}.coding-tree-root,.coding-tree-folder{display:none}.coding-file{width:auto;padding:7px 10px}.coding-editor-panel,.coding-output-panel{height:450px}}.cert-page-container{flex-direction:column;gap:24px;max-width:960px;margin:0 auto;padding:8px;display:flex}.cert-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.cert-header-left h3{color:var(--text);margin-bottom:4px;font-size:24px;font-weight:700}.cert-header-left p{color:var(--muted);font-size:14px}.cert-header-actions{flex-wrap:wrap;gap:10px;display:flex}.cert-card-wrapper{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:16px}.cert-card-border{border:4px double var(--primary);border-radius:var(--radius);background:linear-gradient(135deg,#6366f10d,#38bdf80d);padding:24px;position:relative}.cert-card-inner{text-align:center;flex-direction:column;gap:24px;display:flex}.cert-top{justify-content:space-between;align-items:center;display:flex}.cert-badge-brand{color:var(--text);align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.cert-id-tag{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-family:monospace;font-size:13px}.cert-main-title h2{letter-spacing:4px;color:var(--primary);margin-bottom:4px;font-size:32px}.cert-subtitle{letter-spacing:2px;color:var(--muted);font-size:12px;font-weight:600}.cert-given-to{color:var(--muted);margin-bottom:8px;font-size:14px}.cert-student-name{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:8px;margin-bottom:12px;font-size:32px;font-weight:800}.cert-achievement-text{max-width:680px;color:var(--text);margin:0 auto;font-size:15px;line-height:1.6}.cert-meta-grid{background:var(--bg);border-radius:var(--radius);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.cert-meta-item{flex-direction:column;gap:4px;font-size:13px;display:flex}.cert-meta-lbl{color:var(--muted)}.cert-meta-val{color:var(--text)}.cert-status-ok{color:var(--success)}.cert-footer{border-top:1px dashed var(--border);justify-content:space-between;align-items:flex-end;margin-top:16px;padding-top:16px;display:flex}.cert-qr-box{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:11px;display:flex}.cert-qr-svg{border-radius:6px;width:60px;height:60px}.cert-signature-box{text-align:right;font-size:13px}.cert-sig-line{color:var(--text);border-bottom:1px solid var(--text);margin-bottom:4px;padding-bottom:4px;font-weight:700}.cert-sig-title{color:var(--muted);font-size:12px}@media print{body *{visibility:hidden}#certPrintArea,#certPrintArea *{visibility:visible}#certPrintArea{width:100%;position:absolute;top:0;left:0}}.nd{gap:22px;width:100%;max-width:1440px;margin:0 auto;display:grid}.nd-row{gap:22px;min-width:0;display:grid}.nd-row-2{grid-template-columns:1.2fr 1fr}.nd-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nd-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-soft);min-width:0;-webkit-backdrop-filter:var(--glass);border-radius:24px;padding:22px 24px}.nd-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.nd-chip-note{letter-spacing:.08em;color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.68rem;font-weight:700}.nd-card-title{letter-spacing:.01em;align-items:center;gap:8px;margin:0;font-size:1.02rem;font-weight:700;display:flex}.nd-hero{border:1px solid var(--border);background:radial-gradient(900px 260px at 88% -40%, var(--primary-soft), transparent 65%), radial-gradient(600px 220px at 10% 120%, #06b6d414, transparent 60%), var(--card);box-shadow:var(--shadow-soft);border-radius:28px;justify-content:space-between;align-items:center;gap:24px;min-width:0;padding:26px 30px;display:flex}.nd-hero-text{min-width:0}.nd-hero-kicker{color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;margin-bottom:12px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.nd-hero-title{margin:0 0 6px;font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:800;line-height:1.25}.nd-hero-name{color:var(--primary)}.nd-hero-sub{color:var(--muted);max-width:46ch;margin:0 0 16px;font-size:.95rem}.nd-hero-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.nd-hero-avatar{background:var(--primary-soft);border:1px solid var(--border);border-radius:14px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;display:inline-flex}.nd-hero-level{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nd-hero-level-badge{color:var(--primary);background:var(--primary-soft);border:1px solid var(--border-focus);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:700}.nd-hero-xp{background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;width:140px;height:8px;overflow:hidden}.nd-hero-xp-fill{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--secondary));width:0%;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1);display:block}.nd-hero-xp-text{color:var(--muted);white-space:nowrap;font-size:.78rem}.nd-hero-robot{flex:none;justify-content:center;width:148px;display:flex}.nd-hero-robot .mascot{transform-origin:50%;transform:scale(.92)}.nd-card--next{background:linear-gradient(135deg, var(--primary-soft), transparent 55%), var(--card);border-color:var(--border-focus)}.nd-next{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nd-next-icon{background:var(--primary-soft);border:1px solid var(--border-focus);border-radius:18px;flex:0 0 56px;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.6rem;display:inline-flex}.nd-next-info{flex:1;min-width:200px}.nd-next-course{color:var(--secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:600}.nd-next-title{color:var(--primary);margin:4px 0 8px;font-size:1.08rem;font-weight:700}.nd-next-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;font-size:.82rem;display:flex}.nd-next-progress{background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.nd-next-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .8s cubic-bezier(.16,1,.3,1);display:block}.nd-next-pct{color:var(--muted);font-size:.78rem}.nd-next-cta{flex:none}.nd-next-sub{color:var(--muted);margin:0;font-size:.9rem}.nd-hint{color:var(--muted);margin:8px 0 0;font-size:.84rem}.nd-hint--ok{color:var(--success);font-weight:600}.nd-streak-body{gap:14px;display:grid}.nd-streak-top-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.nd-streak-num{align-items:baseline;gap:10px;display:flex}.nd-streak-num b{font-size:2.3rem;line-height:1}.nd-streak-num span:last-child{color:var(--muted);font-size:.9rem}.nd-streak-flame{align-self:center;font-size:1.5rem}.nd-freeze-badge{color:#0284c7;white-space:nowrap;background:#0ea5e91f;border:1px solid #0ea5e947;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.nd-freeze-badge i{font-style:normal}.nd-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.nd-day{border:1px solid var(--border);min-height:34px;color:var(--muted);background:0 0;border-radius:10px;justify-content:center;align-items:center;font-size:.72rem;display:flex}.nd-day i{font-style:normal}.nd-day--today{border-color:var(--border-focus)}.nd-day--on{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-color:#0000}.nd-day--freeze{color:#0284c7;background:#0ea5e933;border-color:#0ea5e973}.nd-xp-chip{color:var(--warning);background:#f59e0b1f;border:1px solid #f59e0b40;border-radius:999px;align-items:center;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.nd-kv{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:.9rem;display:flex}.nd-kv:last-of-type{border-bottom:none}.nd-kv-l{color:var(--muted)}.nd-kv-v{white-space:nowrap;font-weight:700}.nd-mini-bar{background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;height:7px;margin:4px 0 12px;overflow:hidden}.nd-mini-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .8s cubic-bezier(.16,1,.3,1);display:block}.nd-goal-line{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:.8rem;display:flex}.nd-challenge-task{margin:0 0 10px;font-size:.92rem;line-height:1.5}.nd-challenge-title{color:var(--muted);font-size:.86rem}.nd-challenge-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:.8rem;display:flex}.nd-card--challenge{position:relative}.nd-card--challenge:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,#0000 20%,#f59e0b12 40%,#0000 60%) 0 0/250% 100%;animation:4.5s ease-in-out infinite ndChShimmer;position:absolute;inset:-1px}.nd-card--done:before{display:none}@keyframes ndChShimmer{0%,60%{background-position:130% 0}to{background-position:-130% 0}}.nd-flash{animation:.9s ndFlash}@keyframes ndFlash{0%{box-shadow:0 0 #f59e0b73}to{box-shadow:0 0 0 14px #f59e0b00}}.nd-stats-body{flex-wrap:wrap;justify-content:space-around;align-items:stretch;gap:8px;display:flex}.nd-stat{background:var(--primary-soft);border:1px solid var(--border);min-height:52px;font:inherit;color:inherit;cursor:pointer;border-radius:16px;align-items:center;gap:8px;min-width:0;padding:12px 16px;transition:transform .18s,border-color .18s;display:flex}.nd-stat:hover{border-color:var(--border-focus);transform:translateY(-2px)}.nd-stat b{font-size:1.15rem}.nd-stat span:last-child{color:var(--muted);white-space:nowrap;font-size:.82rem}.nd-stat-ico{font-size:1.1rem}.nd-stat-sep{background:var(--border);align-self:stretch;width:1px}.nd-goal-top{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.nd-goal-lvl{font-weight:700}.nd-goal-xp{color:var(--muted);white-space:nowrap;font-size:.84rem}.nd-goal-bar{background:var(--primary-soft);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.nd-goal-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .9s cubic-bezier(.16,1,.3,1);display:block}.nd-feed{gap:4px;margin:0;padding:0;list-style:none;display:grid}.nd-feed-item{border-bottom:1px dashed var(--border);align-items:center;gap:12px;min-width:0;padding:10px 6px;display:flex}.nd-feed-item:last-child{border-bottom:none}.nd-feed-ico{flex:none;font-size:1.05rem}.nd-feed-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nd-feed-text b{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.nd-feed-text span{color:var(--muted);font-size:.78rem}.nd-feed-time{color:var(--muted);white-space:nowrap;flex:none;font-size:.75rem}.nd-empty{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 0;display:flex}.nd-empty--row{flex-flow:wrap;align-items:center;gap:14px}.nd-empty--row p{margin:0}.nd-empty--row div{flex:1;min-width:160px}.nd-empty h3{margin:0;font-size:1rem}.nd-empty p{color:var(--muted);margin:0;font-size:.88rem}.nd-empty-ico{background:var(--primary-soft);border:1px solid var(--border);border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:inline-flex}.nd-btn{min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;display:inline-flex}.nd-btn--primary{color:#fff;background:linear-gradient(135deg, var(--primary), var(--secondary));box-shadow:var(--shadow-soft), var(--glow)}.nd-btn--primary:hover{box-shadow:var(--shadow), var(--glow);transform:translateY(-2px)}.nd-btn--ghost{color:var(--text);border-color:var(--border);background:0 0}.nd-btn--ghost:hover{border-color:var(--border-focus);background:var(--primary-soft)}.nd-btn--warning{color:#fff;background:linear-gradient(135deg, var(--warning), #fbbf24)}.nd-btn--warning:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.nd-btn--lg{width:100%;min-width:180px}.nd-btn:active{transform:translateY(0)scale(.98)}.nd-pulse{animation:2.6s ease-in-out infinite ndPulse}@keyframes ndPulse{0%,to{box-shadow:var(--shadow-soft), 0 0 0 0 #6366f147}50%{box-shadow:var(--shadow-soft), 0 0 0 8px #6366f100}}.nd-reveal{opacity:0;transition:opacity .55s,transform .55s cubic-bezier(.16,1,.3,1);transform:translateY(14px)}.nd-reveal.nd-in{opacity:1;transform:none}.nd button:focus-visible,.nd [role=progressbar]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:12px}@media (width<=1279px){.nd-row-3{grid-template-columns:repeat(2,minmax(0,1fr))}.nd-card--challenge,.nd-card--goal{grid-column:1/-1}}@media (width<=1024px) and (width>=769px){.nd-row-2{grid-template-columns:1fr 1fr}.nd-hero-robot{width:120px}.nd-hero-robot .mascot{transform:scale(.75)}}@media (width<=768px){.nd{gap:16px}.nd-row-2,.nd-row-3{grid-template-columns:1fr}.nd-hero{flex-direction:column-reverse;align-items:flex-start;gap:12px;padding:22px 20px}.nd-hero-robot{align-self:center;width:110px}.nd-hero-robot .mascot{transform:scale(.68)}.nd-hero-sub{max-width:100%}.nd-card{border-radius:22px;padding:18px}.nd-next{gap:14px}.nd-next-cta{width:100%}.nd-btn--lg{width:100%;min-width:0}.nd-stats-body{justify-content:flex-start}}@media (width<=360px){.nd-hero{padding:18px 16px}.nd-week{gap:4px}.nd-day{font-size:.66rem}.nd-hero-xp{width:110px}}@media (prefers-reduced-motion:reduce){.nd *,.nd :before,.nd :after{transition:none!important;animation:none!important}.nd-reveal{opacity:1;transform:none}}.ls-section-head{margin-bottom:24px}.ls-section-head h3{margin-bottom:4px;font-size:1.25rem;font-weight:700}.ls-section-head p{color:var(--muted);font-size:.92rem}.ls-continue-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin:4px 0 10px;display:flex}.ls-continue-head h4{letter-spacing:-.01em;font-size:1.05rem;font-weight:800}.ls-continue-head span{color:var(--muted);font-size:.84rem;font-weight:600}.ls-continue{background:var(--card);border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border));color:var(--text);box-shadow:var(--shadow-soft);animation:lsFadeUp .45s var(--bounce) both;border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;padding:20px 24px;display:flex;position:relative;overflow:hidden}.ls-continue:after{content:"";background:color-mix(in srgb, var(--primary) 7%, transparent);pointer-events:none;border-radius:50%;width:220px;height:220px;position:absolute;top:-70px;right:-50px}.ls-continue-info{align-items:center;gap:16px;min-width:0;display:flex}.ls-continue-icon{background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 22%, transparent);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.6rem;display:flex}.ls-continue-course{letter-spacing:.05em;text-transform:uppercase;color:var(--primary);margin-bottom:3px;font-size:.72rem;font-weight:700;display:inline-block}.ls-continue-text h3{margin-bottom:2px;font-size:1.12rem;font-weight:800;line-height:1.3}.ls-continue-sub{color:var(--muted);font-size:.9rem}.ls-continue-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.ls-continue-meta span{color:var(--muted);background:var(--bg-alt);border:1px solid var(--border);white-space:nowrap;border-radius:99px;padding:3px 10px;font-size:.76rem;font-weight:700}.ls-continue-meta .ls-continue-xp{color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent);border-color:color-mix(in srgb, var(--warning) 28%, transparent)}.ls-continue-progress{flex-grow:1;align-items:center;gap:12px;min-width:180px;max-width:300px;display:flex}.ls-continue-bar{background:var(--bg-alt);border:1px solid var(--border);border-radius:99px;flex:1;height:9px;overflow:hidden}.ls-continue-bar span{background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .8s var(--bounce);border-radius:99px;display:block}.ls-continue-pct{white-space:nowrap;font-size:.95rem;font-weight:800}.ls-continue.ls-continue-done{border-color:color-mix(in srgb, var(--success) 32%, var(--border))}.ls-continue.ls-continue-done .ls-continue-icon{background:color-mix(in srgb, var(--success) 12%, transparent);border-color:color-mix(in srgb, var(--success) 28%, transparent)}.ls-continue.ls-continue-done .ls-continue-text h3{color:var(--success)}.btn.ls-btn-continue{background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--secondary) 45%, var(--primary)));color:#fff;white-space:nowrap;min-height:42px;transition:transform .25s var(--bounce), box-shadow .25s ease, background .2s;border:none;border-radius:99px;padding:10px 22px;font-weight:700}.btn.ls-btn-continue:hover{background:var(--primary-hover);box-shadow:0 12px 26px color-mix(in srgb, var(--primary) 30%, transparent);transform:translateY(-2px)}.btn.ls-btn-continue:active{transform:translateY(0)scale(.97)}.ls-btn-arrow{transition:transform .25s var(--bounce);display:inline-block}.ls-btn-continue:hover .ls-btn-arrow{transform:translate(5px)}.ls-course-head-actions .btn:hover .ls-btn-arrow,.ls-course-card:hover .ls-btn-arrow{transform:translate(4px)}.ls-courses-grid{flex-direction:column;gap:12px;max-width:880px;display:flex}.ls-course-card{background:var(--card);border:1px solid var(--border);cursor:pointer;transition:transform .25s var(--bounce), box-shadow .25s var(--bounce), border-color .25s;animation:lsFadeUp .5s var(--bounce) both;border-radius:26px;align-items:center;gap:16px;min-width:0;padding:14px 18px;display:flex;position:relative;overflow:hidden}.ls-course-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-soft);transform:translateY(-3px)}.ls-course-card:active{transform:translateY(-1px)scale(.995)}.ls-course-icon{background:color-mix(in srgb, var(--ls-color,var(--primary)) 14%, transparent);border:1px solid color-mix(in srgb, var(--ls-color,var(--primary)) 26%, transparent);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;display:flex}.ls-course-id{flex:1;min-width:0}.ls-course-id h4{letter-spacing:-.01em;font-size:1.12rem;font-weight:800;line-height:1.25}.ls-course-tagline{color:var(--muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:2px;font-size:.84rem;line-height:1.4;display:-webkit-box;overflow:hidden}.ls-course-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;font-size:.78rem;font-weight:600;display:flex}.ls-course-side{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;gap:6px;display:flex}.ls-progress-track{background:var(--primary-soft);border:1px solid var(--border);border-radius:99px;flex:1;height:8px;overflow:hidden}.ls-progress-track span{background:linear-gradient(90deg, var(--primary), var(--secondary));height:100%;transition:width .9s var(--bounce);border-radius:99px;display:block}.ls-progress-pct{text-align:right;min-width:42px;font-size:.85rem;font-weight:700}.ls-course-head{border-radius:var(--radius);background:var(--card);border:1px solid var(--border);animation:lsFadeUp .4s var(--bounce) both;flex-wrap:wrap;align-items:center;gap:20px;max-width:100%;margin-bottom:24px;padding:24px;display:flex;overflow:hidden}.ls-course-head-icon{background:color-mix(in srgb, var(--ls-color,var(--primary)) 14%, transparent);border:1px solid color-mix(in srgb, var(--ls-color,var(--primary)) 32%, transparent);border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:68px;height:68px;font-size:2.1rem;display:flex}.ls-course-head-info{flex:220px;min-width:0}.ls-course-head-info h3{margin-bottom:4px;font-size:1.45rem;font-weight:800}.ls-course-head-info>p{color:var(--muted);margin-bottom:12px;font-size:.92rem}.ls-course-head-actions{flex-direction:column;align-items:stretch;gap:10px;display:flex}.ls-course-back{align-self:flex-start}.ls-level-chip{color:var(--muted);background:var(--primary-soft);border:1px solid var(--border);white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;gap:8px;padding:6px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.ls-lessons-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.ls-lesson-card{border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);cursor:pointer;transition:transform .22s var(--bounce), border-color .22s, box-shadow .22s;animation:lsFadeUp .45s var(--bounce) both;align-items:center;gap:16px;min-width:0;padding:18px;display:flex;position:relative;overflow:hidden}.ls-lesson-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-soft);transform:translateY(-3px)}.ls-lesson-card:active{transform:translateY(-1px)scale(.99)}.ls-lesson-num{background:var(--primary-soft);width:46px;height:46px;color:var(--text);border:1px solid var(--border);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:800;display:flex;position:relative}.ls-lesson-num .ls-state-ico{background:var(--bg-alt);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;display:flex;position:absolute;bottom:-6px;right:-6px}.ls-lesson-info{flex:1;min-width:0}.ls-lesson-info h5{text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:.98rem;font-weight:700;overflow:hidden}.ls-lesson-info p{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.8rem;display:flex}.ls-lesson-arrow{color:var(--muted);flex-shrink:0;font-size:1.05rem;transition:transform .2s,color .2s}.ls-lesson-card:hover .ls-lesson-arrow{color:var(--primary);transform:translate(4px)}.ls-lesson-card.ls-locked{opacity:.62;cursor:not-allowed;filter:grayscale(.35)}.ls-lesson-card.ls-locked:hover{border-color:var(--border);box-shadow:none;transform:none}.ls-lesson-card.ls-locked:active{transform:none}.ls-lesson-card.ls-locked:hover .ls-lesson-arrow{color:var(--muted);transform:none}.ls-lesson-card.ls-locked .ls-lesson-num{background:var(--bg-alt)}.ls-lesson-card.ls-completed{border-color:color-mix(in srgb, var(--success) 35%, transparent)}.ls-lesson-card.ls-completed .ls-lesson-num{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);border-color:color-mix(in srgb, var(--success) 30%, transparent)}.ls-lesson-card.ls-completed .ls-state-ico{color:var(--success)}.ls-lesson-card.ls-current{border-color:color-mix(in srgb, var(--primary) 55%, transparent);box-shadow:var(--glow)}.ls-lesson-card.ls-current .ls-lesson-num{background:color-mix(in srgb, var(--primary) 16%, transparent);color:var(--primary);border-color:color-mix(in srgb, var(--primary) 40%, transparent)}.ls-lesson-card.ls-current .ls-state-ico{color:var(--primary)}.ls-lesson-card.ls-current:after{content:"Joriy dars";color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:99px;padding:2px 8px;font-size:.68rem;font-weight:700;position:absolute;top:10px;right:14px}.ls-viewer-wrap{width:100%;max-width:min(1280px,100%);animation:lsFadeUp .4s var(--bounce) both;margin:0 auto}.ls-viewer-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.ls-back-btn{color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:99px;align-items:center;gap:8px;padding:9px 16px;font-size:.9rem;font-weight:600;transition:color .2s,border-color .2s,transform .2s;display:inline-flex}.ls-back-btn:hover{color:var(--text);border-color:var(--border-focus);transform:translate(-3px)}.ls-viewer-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.ls-viewer-hero{border-bottom:1px solid var(--border);background:linear-gradient(140deg, color-mix(in srgb, var(--ls-color,var(--primary)) 12%, transparent) 0%, color-mix(in srgb, var(--ls-color,var(--primary)) 4%, transparent) 100%);padding:32px 44px 26px}.ls-viewer-hero .ls-viewer-crumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:.85rem;display:flex}.ls-viewer-crumb .ls-chip{background:color-mix(in srgb, var(--ls-color,var(--primary)) 14%, transparent);border:1px solid color-mix(in srgb, var(--ls-color,var(--primary)) 30%, transparent);color:var(--text);border-radius:99px;padding:4px 12px;font-weight:600}.ls-viewer-hero h3{overflow-wrap:break-word;margin-bottom:10px;font-size:1.5rem;font-weight:800;line-height:1.3}.ls-viewer-meta{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.ls-viewer-meta span{align-items:center;gap:6px;display:inline-flex}.ls-viewer-body{padding:32px 44px}.ls-placeholder{text-align:center;padding:40px 20px}.ls-placeholder-ico{background:var(--primary-soft);border:1px solid var(--border);border-radius:24px;justify-content:center;align-items:center;width:92px;height:92px;margin:0 auto 20px;font-size:2.6rem;animation:3.2s ease-in-out infinite lsFloat;display:flex}.ls-placeholder h4{margin-bottom:8px;font-size:1.3rem;font-weight:800}.ls-placeholder p{color:var(--muted);max-width:420px;margin:0 auto;font-size:.95rem;line-height:1.6}.ls-content-block{margin-bottom:22px}.ls-content-block h5{align-items:center;gap:8px;margin-bottom:10px;font-size:1rem;font-weight:700;display:flex}.ls-content-block p{color:var(--text);white-space:pre-wrap;font-size:.95rem;line-height:1.7}.ls-content-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:pre-wrap;color:var(--secondary);padding:16px;font-family:Consolas,Monaco,monospace;font-size:.86rem;line-height:1.6;overflow-x:auto}.ls-content-task{background:color-mix(in srgb, var(--warning) 8%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:var(--radius-sm);padding:16px;font-size:.92rem;line-height:1.6}.ls-viewer-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:20px 44px;display:flex}.ls-complete-note{color:var(--muted);max-width:300px;font-size:.78rem}.ls-level-modal-body{flex-direction:column;gap:14px;padding:6px 2px 2px;display:flex}.ls-level-modal-body>p.ls-modal-sub{color:var(--muted);font-size:.92rem}.ls-level-option{text-align:left;border-radius:var(--radius-sm);background:var(--card-hover);border:1.5px solid var(--border);cursor:pointer;width:100%;transition:border-color .2s, transform .2s var(--bounce), box-shadow .2s;align-items:center;gap:16px;padding:18px;display:flex}.ls-level-option:hover{border-color:var(--primary);box-shadow:var(--glow);transform:translateY(-2px)}.ls-level-option.selected{border-color:var(--primary);background:var(--primary-soft)}.ls-level-emoji{background:var(--primary-soft);border:1px solid var(--border);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.5rem;display:flex}.ls-level-option h5{margin-bottom:4px;font-size:1rem;font-weight:800}.ls-level-option p{color:var(--muted);font-size:.85rem;line-height:1.5}.ls-level-option .ls-level-check{color:var(--primary);opacity:0;flex-shrink:0;margin-left:auto;font-weight:800;transition:opacity .2s}.ls-level-option.selected .ls-level-check{opacity:1}.ls-diagnostic-progress{color:var(--muted);margin:14px 0 8px;font-size:.82rem;font-weight:700}.ls-diagnostic-question{margin-bottom:14px;font-size:1.05rem;font-weight:800;line-height:1.45}.ls-diagnostic-options{gap:8px;display:grid}.ls-diagnostic-option{border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:11px 12px;display:flex}.ls-diagnostic-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.ls-diagnostic-option>span{color:var(--primary);min-width:22px;font-weight:800}.ls-diagnostic-feedback{color:var(--muted);margin-top:12px;font-size:.88rem}.ls-locked-body{text-align:center;padding:10px 4px}.ls-locked-ico{background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:22px;justify-content:center;align-items:center;width:84px;height:84px;margin:0 auto 16px;font-size:2.2rem;animation:.5s .15s lsShake;display:flex}.ls-locked-body h4{margin-bottom:8px;font-size:1.2rem;font-weight:800}.ls-locked-body p{color:var(--muted);margin-bottom:14px;font-size:.92rem;line-height:1.6}.ls-locked-prev{color:var(--text);background:var(--primary-soft);border:1px solid var(--border);border-radius:99px;align-items:center;gap:8px;margin-bottom:4px;padding:8px 14px;font-size:.85rem;display:inline-flex}.ls-settings-current{border-radius:var(--radius-sm);background:var(--primary-soft);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:.9rem;display:flex}.ls-settings-danger{border-top:1px dashed var(--border);margin-top:18px;padding-top:16px}.ls-empty{text-align:center;color:var(--muted);padding:60px 20px}.ls-empty .ls-empty-ico{margin-bottom:12px;font-size:3rem}.ls-empty h4{color:var(--text);margin-bottom:6px;font-weight:700}.ls-empty p{font-size:.9rem}@keyframes lsFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes lsFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes lsShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (width<=1024px){.ls-courses-grid,.ls-lessons-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.ls-courses-grid,.ls-lessons-grid{grid-template-columns:1fr}.ls-continue{flex-direction:column;align-items:stretch}.ls-continue-progress{max-width:none}.ls-course-head{flex-direction:column;align-items:stretch}.ls-course-head-actions{flex-flow:wrap}.ls-viewer-body,.ls-viewer-footer{padding:20px 18px}.ls-viewer-hero{padding:22px 18px 18px}}.ux-user-wrap{position:relative}.ux-user-dropdown{background:var(--card);min-width:250px;-webkit-backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:240;opacity:0;visibility:hidden;transform-origin:100% 0;transition:opacity .25s ease, transform .25s var(--bounce), visibility .25s;padding:8px;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-8px)scale(.98)}.ux-user-dropdown.active{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.ux-user-head{align-items:center;gap:12px;padding:10px 12px;display:flex}.ux-user-meta{flex-direction:column;min-width:0;display:flex}.ux-user-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.ux-user-meta span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.ux-user-sep{background:var(--border);height:1px;margin:6px 8px}.ux-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;align-items:center;gap:12px;padding:10px 12px;font-size:.9rem;font-weight:500;transition:background .2s,transform .2s,color .2s;display:flex}.ux-menu-item:hover{background:var(--card-hover);transform:translate(3px)}.ux-menu-item:active{transform:scale(.98)}.ux-menu-ico{text-align:center;width:24px;transition:transform .25s var(--bounce);flex-shrink:0;font-size:1.05rem}.ux-menu-item:hover .ux-menu-ico{transform:scale(1.15)}.ux-menu-danger{color:var(--danger)}.ux-menu-danger:hover{background:color-mix(in srgb, var(--danger) 10%, transparent)}.ux-logout-question{margin-bottom:6px;font-size:1.05rem;font-weight:700}.ux-logout-note{color:var(--muted);font-size:.88rem;line-height:1.55}.btn-success{background:linear-gradient(135deg, var(--success), #34d399);color:#fff}.btn-success:hover:not(:disabled){box-shadow:0 8px 22px color-mix(in srgb, var(--success) 35%, transparent);transform:translateY(-2px)}.btn-success:disabled{opacity:.75;cursor:default}.sidebar .nav-item .nav-icon{transition:transform .25s var(--bounce);display:inline-block}.sidebar .nav-item:hover .nav-icon{transform:scale(1.18)}.sidebar .nav-item.active .nav-icon{transform:scale(1.1)}.sidebar .nav-item.active:before{content:"";width:3px;animation:lsIndicatorIn .35s var(--bounce) both;background:#fffffff2;border-radius:99px;position:absolute;top:22%;bottom:22%;left:0}@keyframes lsIndicatorIn{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes lsPageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}#page-lessons.active .ls-section-head,#page-lessons.active .ls-courses-grid,#page-lessonCourse.active #lsCourseContainer,#page-lessonView.active #lsLessonContainer{animation:lsPageIn .5s var(--bounce) both}.ls-lesson-card.ls-shake{animation:.45s lsShakeCard}@keyframes lsShakeCard{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.ls-lesson-card.ls-current .ls-lesson-num{animation:2.8s ease-in-out infinite lsCurrentPulse}@keyframes lsCurrentPulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 0%, transparent)}50%{box-shadow:0 0 14px 3px color-mix(in srgb, var(--primary) 32%, transparent)}}.ls-course-head .ls-level-chip{animation:lsChipIn .5s var(--bounce) .15s both}@keyframes lsChipIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.ls-content-intro{background:var(--primary-soft);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);color:var(--text);margin-bottom:22px;padding:14px 16px;font-size:.93rem;line-height:1.65}.ls-content-section{border-bottom:1px dashed var(--border);animation:lsSectionIn .45s var(--bounce) both;margin-bottom:26px;padding-bottom:22px}.ls-content-section:last-of-type{border-bottom:none;margin-bottom:8px}.ls-content-sec-title{align-items:center;gap:10px;margin-bottom:14px;font-size:1.12rem;font-weight:800;display:flex}.ls-content-sec-title>span:last-child{overflow-wrap:break-word}.ls-sec-num{background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);width:28px;height:28px;color:var(--primary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:flex}.ls-sec-num.kp{background:color-mix(in srgb, var(--warning) 14%, transparent);border-color:color-mix(in srgb, var(--warning) 35%, transparent);color:var(--warning)}.ls-content-text{color:var(--text);overflow-wrap:break-word;font-size:1rem;line-height:1.8}.ls-inline-code{background:var(--bg-alt);border:1px solid var(--border);color:var(--secondary);white-space:nowrap;border-radius:6px;padding:1px 7px;font-family:Consolas,Monaco,monospace;font-size:.84em}.ls-content-codeblock{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);max-width:100%;margin:18px 0;overflow:hidden}.ls-code-lang{letter-spacing:.4px;color:var(--muted);background:color-mix(in srgb, var(--primary) 7%, transparent);border-bottom:1px solid var(--border);padding:8px 14px;font-size:.72rem;font-weight:700}.ls-content-code{color:var(--text);white-space:pre;-webkit-overflow-scrolling:touch;margin:0;padding:16px;font-family:Consolas,Monaco,monospace;font-size:.9rem;line-height:1.65;overflow-x:auto}.ls-content-codenote{color:var(--muted);border-top:1px dashed var(--border);padding:12px 14px;font-size:.85rem;line-height:1.6}.ls-content-codenote .ls-inline-code{color:var(--secondary)}.ls-content-result{background:color-mix(in srgb, var(--success) 8%, transparent);border:1px solid color-mix(in srgb, var(--success) 25%, transparent);border-radius:var(--radius-sm);margin:16px 0;padding:12px 14px;font-size:.88rem;line-height:1.6}.ls-content-result-label{color:var(--success);font-weight:800}.ls-content-note{background:color-mix(in srgb, var(--warning) 9%, transparent);border:1px solid color-mix(in srgb, var(--warning) 28%, transparent);border-radius:var(--radius-sm);margin-top:16px;padding:12px 14px;font-size:.88rem;line-height:1.6}.ls-content-keypoints{background:var(--card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:6px;padding:16px 18px}.ls-content-keypoints ul{flex-direction:column;gap:8px;list-style:none;display:flex}.ls-content-keypoints li{padding-left:22px;font-size:.9rem;line-height:1.6;position:relative}.ls-content-keypoints li:before{content:"✔";color:var(--success);font-weight:800;position:absolute;left:0}@keyframes lsSectionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ls-status-badge{white-space:nowrap;border-radius:99px;padding:4px 12px;font-size:.78rem;font-weight:700}.ls-status-badge.reading{color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent)}.ls-status-badge.ready{color:var(--secondary);background:color-mix(in srgb, var(--secondary) 12%, transparent);border:1px solid color-mix(in srgb, var(--secondary) 30%, transparent)}.ls-status-badge.done{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border:1px solid color-mix(in srgb, var(--success) 30%, transparent)}.ls-read-footer{border-top:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:20px 44px 26px;display:flex}.ls-read-hint{color:var(--muted);font-size:.9rem;line-height:1.55}.ls-read-hint.ok{color:var(--success);font-weight:600}.ls-btn-test{animation:lsPopIn .35s var(--bounce) both}.ls-btn-test:hover{transform:translateY(-2px)scale(1.02)}.ls-btn-test:active{transform:scale(.97)}@keyframes lsPopIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.ls-quiz-progress{align-items:center;gap:12px;max-width:380px;margin-top:14px;display:flex}.ls-quiz-progress .ls-progress-track{height:10px}.ls-quiz-progress-text{white-space:nowrap;font-size:.88rem;font-weight:800}.ls-quiz-questioncard{background:var(--card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:22px}.ls-anim-quiz{animation:lsQuizIn .35s var(--bounce) both}@keyframes lsQuizIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ls-quiz-qnum{color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:99px;margin-bottom:12px;padding:3px 12px;font-size:.75rem;font-weight:800;display:inline-block}.ls-quiz-question{white-space:pre-line;margin-bottom:18px;font-size:1.05rem;font-weight:700;line-height:1.6}.ls-quiz-options{flex-direction:column;gap:10px;display:flex}.ls-quiz-option{text-align:left;border-radius:var(--radius-sm);background:var(--card);border:1.5px solid var(--border);cursor:pointer;width:100%;color:var(--text);transition:border-color .2s ease, background .2s ease, transform .2s var(--bounce);align-items:center;gap:12px;padding:13px 15px;font-size:.93rem;display:flex}.ls-quiz-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);transform:translate(3px)}.ls-quiz-option:active:not(:disabled){transform:scale(.99)}.ls-quiz-option:disabled{cursor:default}.ls-opt-letter{background:var(--primary-soft);border:1px solid var(--border);width:30px;height:30px;color:var(--muted);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;transition:background .2s,color .2s,border-color .2s;display:flex}.ls-opt-text{flex:1;line-height:1.5}.ls-opt-mark{flex-shrink:0;font-size:1.05rem;font-weight:800}.ls-opt-mark.ok{color:var(--success)}.ls-opt-mark.bad{color:var(--danger)}.ls-quiz-option.ls-opt-correct{border-color:color-mix(in srgb, var(--success) 60%, transparent);background:color-mix(in srgb, var(--success) 12%, transparent);animation:.45s lsCorrectPulse}.ls-quiz-option.ls-opt-correct .ls-opt-letter{background:var(--success);border-color:var(--success);color:#fff}@keyframes lsCorrectPulse{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.ls-quiz-option.ls-opt-wrong{border-color:color-mix(in srgb, var(--danger) 60%, transparent);background:color-mix(in srgb, var(--danger) 10%, transparent);animation:.4s lsShakeOpt}.ls-quiz-option.ls-opt-wrong .ls-opt-letter{background:var(--danger);border-color:var(--danger);color:#fff}@keyframes lsShakeOpt{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.ls-quiz-actions{justify-content:flex-end;margin-top:18px;display:flex}.ls-quiz-hint{text-align:center;color:var(--muted);margin-top:16px;font-size:.85rem}.ls-result-hero{text-align:center;padding:34px 30px 28px}.ls-result-hero.pass{background:linear-gradient(140deg, color-mix(in srgb, var(--success) 14%, transparent), transparent 70%)}.ls-result-hero.fail{background:linear-gradient(140deg, color-mix(in srgb, var(--danger) 12%, transparent), transparent 70%)}.ls-result-emoji{animation:lsPopIn .5s var(--bounce) both;margin-bottom:10px;font-size:3.4rem}.ls-result-score{justify-content:center;align-items:baseline;gap:14px;margin:14px 0;display:flex}.ls-result-frac{color:var(--muted);font-size:1.5rem;font-weight:800}.ls-result-percent{background:linear-gradient(120deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;animation:lsPopIn .55s var(--bounce) .1s both;-webkit-background-clip:text;background-clip:text;font-size:2.6rem;font-weight:800}.ls-result-badge{animation:lsPopIn .5s var(--bounce) .2s both;border-radius:99px;padding:8px 22px;font-size:1rem;font-weight:800;display:inline-block}.ls-result-badge.ok{color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent);border:1px solid color-mix(in srgb, var(--success) 35%, transparent)}.ls-result-badge.bad{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent)}.ls-result-note{color:var(--muted);margin-top:12px;font-size:.9rem;line-height:1.6}.ls-reward-chips{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.ls-reward-chip{animation:lsChipPop .45s var(--bounce) both;border-radius:99px;padding:8px 18px;font-size:.95rem;font-weight:800}.ls-reward-chip.xp{color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);animation-delay:.3s}.ls-reward-chip.coin{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 35%, transparent);animation-delay:.45s}@keyframes lsChipPop{0%{opacity:0;transform:translateY(8px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}.ls-unlock-banner{text-align:center;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--success) 10%, transparent);border:1px dashed color-mix(in srgb, var(--success) 40%, transparent);color:var(--success);animation:lsPopIn .5s var(--bounce) .35s both;margin:0 30px;padding:14px;font-size:.95rem}.ls-review-title{margin-bottom:14px;font-size:1.05rem;font-weight:800}.ls-review-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);margin-bottom:12px;padding:14px 16px}.ls-review-item.wrong{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:color-mix(in srgb, var(--danger) 5%, transparent)}.ls-review-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.8rem;font-weight:700;display:flex}.ls-review-head .ok{color:var(--success)}.ls-review-head .bad{color:var(--danger)}.ls-review-num{color:var(--muted)}.ls-review-q{white-space:pre-line;margin-bottom:8px;font-size:.95rem;font-weight:700;line-height:1.55}.ls-review-line{color:var(--muted);margin-bottom:4px;font-size:.88rem;line-height:1.5}.ls-review-line.good{color:var(--success)}.ls-review-expl{background:var(--primary-soft);border:1px solid var(--border);border-radius:9px;margin-top:10px;padding:10px 12px;font-size:.87rem;line-height:1.6}.ls-result-actions{flex-wrap:wrap;justify-content:center}@media (prefers-reduced-motion:reduce){.ls-course-card,.ls-lesson-card,.ls-continue,.ls-course-head,.ls-viewer-wrap,.ls-section-head,.ls-courses-grid,#lsCourseContainer,#lsLessonContainer,.ls-level-chip,.ls-level-option,.ls-locked-ico,.ls-placeholder-ico,.ux-user-dropdown,.ux-menu-item,.ux-menu-ico,.ls-btn-arrow,.btn.ls-btn-continue,.sidebar .nav-item .nav-icon,.sidebar .nav-item.active:before,.ls-content-section,.ls-btn-test,.ls-anim-quiz,.ls-result-emoji,.ls-result-percent,.ls-result-badge,.ls-reward-chip,.ls-unlock-banner,.ls-quiz-option{transition:none!important;animation:none!important}.ls-progress-track span,.ls-continue-bar span,.ls-quiz-progress .ls-progress-track span{transition:none!important}.confetti-particle{display:none!important}}@media (width<=480px){.ls-viewer-body{padding:18px 14px}.ls-viewer-hero{padding:18px 14px 15px}.ls-viewer-footer,.ls-read-footer{padding:14px 14px 18px}.ls-viewer-hero h3{font-size:1.22rem}.ls-back-btn{white-space:nowrap;text-overflow:ellipsis;max-width:100%;padding:8px 13px;font-size:.82rem;overflow:hidden}.ls-content-text{font-size:.95rem}.ls-content-sec-title{font-size:1.02rem}.ls-content-code{padding:12px;font-size:.78rem}.ls-inline-code{white-space:normal;word-break:break-word}.ls-content-codenote,.ls-content-result,.ls-content-note{padding:11px 12px;font-size:.85rem}.ls-content-keypoints{padding:13px 14px}.ls-quiz-questioncard{padding:16px 14px}.ls-quiz-question{overflow-wrap:break-word;font-size:1rem}.ls-quiz-option{padding:12px;font-size:.9rem}.ls-quiz-option .ls-opt-text{overflow-wrap:break-word;min-width:0}.ls-complete-note{max-width:100%}}.topbar{gap:10px}.topbar-left{flex:auto;min-width:0}.topbar-left h2{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.topbar-right{flex-shrink:0}#page-lessons,#page-lessonCourse,#page-lessonView,#lsCourseContainer,#lsLessonContainer{width:100%;min-width:0;max-width:100%}.ls-courses-grid,.ls-lessons-grid,.ls-cpath{max-width:100%}.ls-courses-grid>*,.ls-lessons-grid>*,.ls-cpath>*{min-width:0;max-width:100%}.ls-viewer-hero{border-top-left-radius:calc(var(--radius) - 1px);border-top-right-radius:calc(var(--radius) - 1px)}.ls-viewer-footer,.ls-read-footer{border-bottom-left-radius:calc(var(--radius) - 1px);border-bottom-right-radius:calc(var(--radius) - 1px)}@supports (min-height:100svh){.main{min-height:100svh}}.topbar{padding-top:calc(16px + env(safe-area-inset-top,0px));padding-left:calc(24px + env(safe-area-inset-left,0px));padding-right:calc(24px + env(safe-area-inset-right,0px))}.content{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}@media (width<=480px){.topbar{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-left:calc(14px + env(safe-area-inset-left,0px));padding-right:calc(14px + env(safe-area-inset-right,0px))}.content{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.ls-continue:after,.ls-course-card:before,.ls-lesson-card.ls-current:after{max-width:100%}#lessonLockedModal,#lessonLevelModal,#lessonSettingsModal{overflow-y:auto}.ls-exercises{border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--primary) 5%, transparent);box-shadow:var(--glow);margin:26px 0 8px;padding:18px}.ls-ex-head{margin-bottom:10px;font-size:1.05rem;font-weight:700}.ls-ex-sub{color:var(--muted);font-size:.85rem;font-weight:400}.ls-ex-tracker{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.ls-ex-chip{border:1px solid var(--border);background:var(--bg-alt);color:var(--muted);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.82rem}.ls-ex-chip.done{border-color:color-mix(in srgb, var(--success) 50%, transparent);color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.ls-ex-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px;padding:16px}.ls-ex-card.done{border-color:color-mix(in srgb, var(--success) 35%, transparent)}.ls-ex-title{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.ls-ex-done-badge{color:var(--success)}.ls-ex-instruction{color:var(--text);overflow-wrap:anywhere;margin-bottom:12px;font-size:.92rem;line-height:1.55}.ls-ex-code{resize:vertical;border-radius:var(--radius-sm);border:1px solid var(--border-focus);background:var(--bg-alt);width:100%;min-height:160px;color:var(--text);tab-size:2;white-space:pre;padding:12px;font-family:Cascadia Code,Consolas,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.ls-ex-code:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.ls-ex-code-ro{resize:none;-webkit-user-select:text;user-select:text;min-height:auto}.ls-ex-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.ls-ex-actions .btn{min-height:42px}.ls-ex-preview-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ls-ex-preview-label{color:var(--muted);background:var(--bg-alt);border-bottom:1px solid var(--border);padding:6px 10px;font-size:.78rem}.ls-ex-preview{background:#fff;border:none;width:100%;height:140px;display:block}.ls-ex-feedback{border-radius:var(--radius-sm);overflow-wrap:anywhere;margin-top:10px;padding:10px 14px;font-size:.9rem;line-height:1.5}.ls-ex-feedback.ok{background:color-mix(in srgb, var(--success) 12%, transparent);border:1px solid color-mix(in srgb, var(--success) 40%, transparent);color:var(--success);font-weight:600}.ls-ex-feedback.bad{background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.ls-ex-count{color:var(--accent,#7dd3fc);border:1px solid var(--border);background:var(--card);white-space:nowrap;border-radius:999px;padding:6px 12px;font-weight:700}.ls-ex-status{color:var(--warning);border:1px dashed color-mix(in srgb, var(--warning) 40%, transparent);border-radius:999px;padding:6px 12px;font-size:.85rem}.ls-ex-status.ok{color:var(--success);border:1px solid color-mix(in srgb, var(--success) 40%, transparent)}.ls-ex-hint{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warning) 8%, transparent);border:1px dashed color-mix(in srgb, var(--warning) 35%, transparent);margin-top:10px;padding:10px 14px;font-size:.9rem}.ls-livedemo{border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);margin:14px 0;padding:14px}.ls-livedemo-head{margin-bottom:10px;font-size:.92rem;font-weight:700}@media (width<=640px){.ls-livedemo{padding:10px}}.ls-ex-explain{border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);color:var(--muted);overflow-wrap:anywhere;margin-top:8px;padding:10px 14px;font-size:.9rem}@media (width<=640px){.ls-ex-count,.ls-ex-status{padding:5px 10px;font-size:.78rem}}.ls-read-hint.locked{color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent);border:1px solid color-mix(in srgb, var(--warning) 35%, transparent);border-radius:var(--radius-sm);padding:10px 14px}.ls-open-playground{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--secondary) 50%, transparent);background:color-mix(in srgb, var(--secondary) 12%, transparent);min-height:42px;color:var(--secondary);letter-spacing:.3px;transition:background var(--transition), transform var(--transition), box-shadow var(--transition);margin-top:10px;padding:10px 16px;font-size:.85rem;font-weight:700}.ls-open-playground:hover{background:color-mix(in srgb, var(--secondary) 22%, transparent);box-shadow:var(--glow-cyan);transform:translateY(-1px)}.ls-open-playground:active{transform:translateY(0)scale(.98)}.ls-dnd-pool{border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-alt);flex-wrap:wrap;gap:8px;min-height:52px;padding:10px;display:flex}.ls-dnd-chip{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--primary) 40%, transparent);background:color-mix(in srgb, var(--primary) 12%, transparent);min-height:40px;color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform var(--transition), box-shadow var(--transition);overflow-wrap:anywhere;padding:8px 12px;font-family:Consolas,monospace;font-size:.82rem;display:inline-block}.ls-dnd-chip:hover{box-shadow:var(--glow);transform:translateY(-2px)}.ls-dnd-chip.selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 28%, transparent);box-shadow:var(--glow)}.ls-dnd-chip:active{cursor:grabbing}.ls-dnd-empty{color:var(--muted);font-size:.85rem}.ls-dnd-zone{border:2px dashed color-mix(in srgb, var(--primary) 35%, transparent);border-radius:var(--radius-sm);min-height:90px;transition:border-color var(--transition), background var(--transition);margin-top:12px;padding:10px}.ls-dnd-zone.dragover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.ls-dnd-placeholder,.ls-dnd-hint{color:var(--muted);padding:8px 4px;font-size:.85rem}.ls-dnd-order{flex-direction:column;gap:6px;display:flex}.ls-dnd-slot{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:8px;padding:8px 10px;font-family:Consolas,monospace;font-size:.82rem;display:flex}.ls-dnd-num{background:color-mix(in srgb, var(--primary) 16%, transparent);height:22px;color:var(--primary);border-radius:50%;flex:0 0 22px;place-items:center;font-size:.72rem;display:grid}.ls-dnd-remove{border:1px solid var(--border);height:30px;color:var(--danger);cursor:pointer;background:0 0;border-radius:8px;flex:0 0 30px;margin-left:auto;font-size:1rem;line-height:1}.ls-dnd-remove:hover{background:color-mix(in srgb, var(--danger) 14%, transparent)}.ls-dnd-chip.dragging{opacity:.45;cursor:grabbing}.ls-dnd-chip.selected{outline:2px solid var(--primary)}.ls-dnd-slot{transition:border-color var(--transition), background var(--transition), box-shadow var(--transition);min-height:40px}.ls-dnd-slot.over{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:var(--glow)}.ls-dnd-slot-empty{border:1px dashed color-mix(in srgb, var(--primary) 45%, transparent);color:var(--muted);background:0 0;min-height:44px}.ls-dnd-slot-empty.over{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--text)}.ls-dnd-slot.just-placed{animation:.25s ls-dnd-pop}@keyframes ls-dnd-pop{0%{opacity:.5;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.ls-dnd-zone.complete{border-style:solid;border-color:color-mix(in srgb, var(--ok,#22c55e) 45%, transparent)}@media (prefers-reduced-motion:reduce){.ls-dnd-slot.just-placed{animation:none}}.ls-ex-actions .btn{min-width:44px;min-height:44px}.ls-dnd-hint-box{border:1px solid color-mix(in srgb, var(--secondary,#06b6d4) 35%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--secondary,#06b6d4) 7%, transparent);color:var(--muted);flex-basis:100%;margin:2px 4px 8px;padding:8px 12px;font-size:.82rem}.ls-dnd-hint-tree{color:var(--text);white-space:pre;margin:6px 0;font-family:Consolas,monospace;font-size:.78rem;line-height:1.45;overflow-x:auto}.ls-dnd-hint-text code{font-size:.78rem}.ls-dnd-slot:hover{border-color:color-mix(in srgb, var(--primary) 60%, transparent)}.ls-dnd-slot.correct{border-color:var(--success,#10b981);background:color-mix(in srgb, var(--success,#10b981) 12%, transparent)}.ls-dnd-slot.correct .ls-dnd-num{background:var(--success,#10b981);color:#fff}.ls-dnd-slot.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);animation:.4s ls-dnd-wrong}.ls-dnd-slot.wrong .ls-dnd-num{background:var(--danger);color:#fff}@keyframes ls-dnd-wrong{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.ls-dnd-zone.success{border-style:solid;border-color:var(--success,#10b981);animation:.7s ls-dnd-success}@keyframes ls-dnd-success{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success,#10b981) 55%, transparent)}60%{box-shadow:0 0 0 14px color-mix(in srgb, var(--success,#10b981) 0%, transparent)}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.ls-dnd-slot.wrong,.ls-dnd-zone.success{animation:none}}.ls-review-cards{margin:14px 0}.ls-review-cards-title{color:var(--text);margin-bottom:8px;font-weight:700}.ls-review-cards-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;display:grid}.ls-review-card{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);flex-direction:column;gap:4px;padding:10px 12px;animation:.35s both ls-fade-up;display:flex}.ls-review-card code{color:var(--secondary);font-size:.8rem}.ls-review-card span{color:var(--muted);font-size:.78rem}.ls-img-preview{margin:12px 0}.ls-img-preview-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:100%;min-height:220px}.ls-img-caption{color:var(--muted);padding:6px 2px;font-size:.8rem}.ls-img-failed{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger);margin-top:6px;padding:8px 12px;font-size:.82rem}.ls-attr-demo{grid-template-columns:minmax(220px,320px) 1fr;gap:12px;margin:10px 0;display:grid}.ls-attr-controls{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-alt);flex-direction:column;gap:8px;padding:10px;display:flex}.ls-attr-row{align-items:center;gap:8px;display:flex}.ls-attr-row span{color:var(--secondary);flex:0 0 48px;font-family:Consolas,monospace;font-size:.78rem}.ls-attr-row input{border:1px solid var(--border);background:var(--bg);min-width:0;min-height:38px;color:var(--text);border-radius:8px;flex:1;padding:6px 10px;font-family:Consolas,monospace;font-size:.78rem}.ls-attr-row input:focus{border-color:var(--border-focus);outline:none}.ls-attr-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;min-height:40px;padding:4px 6px;transition:background .2s}.ls-attr-toggle:hover{background:color-mix(in srgb, var(--primary) 12%, transparent)}.ls-attr-toggle input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--primary);cursor:pointer;flex:none;margin:0;padding:0}.ls-attr-toggle .ls-attr-toggle-label{color:var(--text);flex:1;justify-content:space-between;align-items:center;font-family:Consolas,monospace;font-size:.8rem;font-weight:700;display:flex}.ls-attr-toggle .ls-attr-state{flex:none;font-size:.72rem;font-weight:800}.ls-alert-demo{margin-left:8px}.ls-attr-preview-wrap{min-width:0}.ls-attr-code{color:var(--secondary);border:1px dashed var(--border);border-radius:var(--radius-sm);white-space:pre;margin-bottom:8px;padding:8px 10px;font-family:Consolas,monospace;font-size:.75rem;overflow-x:auto}.ls-attr-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0b0f1d;width:100%;min-height:240px}.ls-motivation{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--primary) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, transparent), color-mix(in srgb, var(--secondary) 10%, transparent));margin:18px 0;padding:18px 20px;animation:.4s both ls-fade-up}.ls-motivation-title{margin-bottom:8px;font-size:1rem;font-weight:800}.ls-motivation-text{color:var(--text);font-size:.9rem;line-height:1.6}.ls-return-lesson-btn{margin-bottom:8px}@media (width<=640px){.ls-attr-demo{grid-template-columns:1fr}.ls-review-cards-grid{grid-template-columns:1fr 1fr}}@media (width<=380px){.ls-review-cards-grid{grid-template-columns:1fr}}@keyframes ls-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ls-review-card,.ls-motivation{animation:none}}.ls-ex-options{grid-template-columns:1fr;gap:8px;margin-top:12px;display:grid}.ls-ex-option{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);min-height:44px;color:var(--text);transition:border-color var(--transition), background var(--transition), transform var(--transition);overflow-wrap:anywhere;padding:12px 14px;font-size:.9rem}.ls-ex-option:hover{border-color:var(--primary);transform:translate(2px)}.ls-ex-option.correct{border-color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);font-weight:600}.ls-ex-option.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.ls-unlock-banner.master{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b8c;box-shadow:0 0 25px #f59e0b26}@media (width<=640px){.ls-exercises,.ls-ex-card{padding:12px}.ls-ex-code{min-height:140px;font-size:.78rem}.ls-ex-preview{height:120px}.ls-dnd-chip{padding:8px 10px;font-size:.76rem}.ls-ex-actions .btn{flex:auto}.ls-open-playground{width:100%}}.ls-td-tabs{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.ls-td-tab{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);min-height:44px;color:var(--muted);transition:all var(--transition);padding:10px 18px;font-size:.88rem;font-weight:600}.ls-td-tab.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:var(--glow)}.ls-td-panels{position:relative}.ls-td-panel{display:none}.ls-td-panel.active{display:block}.ls-td-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:100%;min-height:260px}.ls-games{flex-direction:column;gap:12px;margin:22px 0;display:flex}.ls-games-title{color:var(--text);margin-bottom:2px;font-size:1.05rem;font-weight:800}.ls-game-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);transition:border-color var(--transition), box-shadow var(--transition);padding:14px 16px}.ls-game-card:hover{border-color:var(--border-focus)}.ls-game-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ls-game-ico{font-size:1.4rem}.ls-game-name{font-weight:800}.ls-game-desc{color:var(--muted);flex:160px;font-size:.84rem}.ls-game-badge{border:1px solid color-mix(in srgb, var(--warning) 50%, transparent);color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent);white-space:nowrap;border-radius:999px;margin-left:auto;padding:5px 12px;font-size:.78rem;font-weight:700}.ls-game-badge.done{border-color:color-mix(in srgb, var(--success) 50%, transparent);color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.ls-game-body{margin-top:12px}.ls-game-note{color:var(--muted);margin:6px 0;font-size:.86rem}.ls-game-win{border-radius:var(--radius-sm);text-align:center;border:1px solid color-mix(in srgb, var(--success) 50%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent);color:var(--success);margin-bottom:8px;padding:14px;font-weight:700}.ls-game-win.hot{box-shadow:0 0 25px #f59e0b40}.ls-gh-round{color:var(--muted);margin-bottom:4px;font-size:.8rem}.ls-gh-q{margin-bottom:8px;font-weight:700}.ls-gh-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;padding:12px 14px;font-size:.88rem;overflow-x:auto}.ls-gh-gaps{flex-wrap:wrap;gap:8px;display:flex}.ls-gh-gap{border-radius:var(--radius-sm);border:1px dashed var(--border-focus);background:var(--primary-soft);min-height:44px;color:var(--text);transition:all var(--transition);padding:8px 14px;font-size:.84rem}.ls-gh-gap:hover{border-color:var(--primary)}.ls-gh-gap.correct{border-style:solid;border-color:var(--success);color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent)}.ls-gh-gap.wrong{border-color:var(--danger);color:var(--danger)}.ls-mem-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.ls-mem-card{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);min-height:64px;color:var(--muted);text-align:center;transition:all var(--transition);overflow-wrap:anywhere;justify-content:center;align-items:center;padding:6px;font-size:.82rem;font-weight:700;display:flex}.ls-mem-card:hover{border-color:var(--border-focus)}.ls-mem-card.open{border-color:var(--primary);color:var(--text);background:var(--primary-soft)}.ls-mem-card.matched{border-color:var(--success);color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent);opacity:.85}.ls-mem-card code{font-size:.82rem}.ls-mem-fb{margin-top:10px}.ls-run-track{align-items:center;gap:6px;margin-bottom:10px;padding:4px 0;display:flex;overflow-x:auto}.ls-run-cell{border:1px solid var(--border);background:var(--bg-alt);border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;display:flex}.ls-run-cell.here{border-color:var(--primary);box-shadow:var(--glow)}.ls-run-cell.finish{border-color:color-mix(in srgb, var(--success) 55%, transparent)}.ls-run-q{margin:8px 0;font-weight:700}.ls-run-opts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ls-run-opt{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-alt);min-height:48px;color:var(--text);text-align:left;transition:all var(--transition);overflow-wrap:anywhere;padding:10px 12px;font-size:.88rem}.ls-run-fb{min-height:10px;margin-top:10px}.ls-sixty-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.ls-sixty-timer{color:var(--warning);font-size:1.15rem;font-weight:800}.ls-sixty-score{color:var(--success);font-weight:700}.ls-streak-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px;display:flex}.ls-streak-flames{letter-spacing:2px;font-size:1.3rem}.ls-streak-flames.hot{text-shadow:0 0 18px #f59e0bcc;animation:1s ease-in-out infinite alternate lsStreakPulse}@keyframes lsStreakPulse{0%{transform:scale(1)}to{transform:scale(1.12)}}.ls-streak-count,.ls-streak-best{color:var(--muted);font-size:.88rem}.ls-duel-score{justify-content:center;align-items:center;gap:14px;font-weight:800;display:flex}.ls-duel-vs{color:var(--danger);font-size:.9rem}.ls-duel-round{color:var(--muted);text-align:center;margin:4px 0 10px;font-size:.82rem}.ls-duel-full{margin-top:10px}@media (prefers-reduced-motion:reduce){.ls-streak-flames.hot{animation:none}}.ls-project{margin:22px 0}.ls-project-hero{border:1px solid var(--border-focus);border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, transparent), color-mix(in srgb, var(--secondary) 10%, transparent));margin-bottom:14px;padding:18px}.ls-project-title{font-size:1.25rem;font-weight:900}.ls-project-sub{color:var(--muted);margin-bottom:8px;font-weight:600}.ls-project-intro{font-size:.9rem}.ls-project-steps{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.ls-step-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);padding:12px 14px}.ls-step-head{align-items:center;gap:10px;margin-bottom:4px;display:flex}.ls-step-num{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:800;display:flex}.ls-step-title{font-weight:800}.ls-step-note{color:var(--muted);margin-bottom:8px;font-size:.85rem}.ls-step-code{background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;max-height:220px;margin-bottom:8px;padding:10px 12px;font-size:.78rem;overflow-x:auto}.ls-step-code.css{border-left:3px solid #2965f1}.ls-step-code.js{border-left:3px solid #f7df1e}.ls-project-checklist-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);padding:14px 16px}.ls-checklist-title{margin-bottom:10px;font-weight:800}.ls-project-progress{height:10px}.ls-project-pct{color:var(--primary);margin:6px 0 10px;font-weight:800}.ls-checklist{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;display:grid}.ls-check-item{border:1px solid var(--border);background:var(--bg-alt);color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.84rem;display:flex}.ls-check-item.done{border-color:color-mix(in srgb, var(--success) 45%, transparent);color:var(--success)}#lsProjectParty{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--success) 50%, transparent);background:color-mix(in srgb, var(--success) 8%, transparent);color:var(--success);margin-top:10px;padding:10px}.ls-project-congrats p{margin:4px 0;font-size:.95rem}.ls-project-hero-pass{box-shadow:0 0 35px #10b9812e}@media (width<=640px){.ls-td-frame{min-height:200px}.ls-td-tab{flex:100%}.ls-game-head{align-items:flex-start}.ls-game-badge{margin-left:0}.ls-run-opts{grid-template-columns:1fr}.ls-run-cell{width:32px;height:32px;font-size:.85rem}.ls-mem-grid{grid-template-columns:repeat(3,1fr)}.ls-checklist{grid-template-columns:1fr}.ls-project-hero{padding:14px}.ls-step-code{max-height:180px;font-size:.72rem}}@media (width<=380px){.ls-mem-grid{grid-template-columns:repeat(2,1fr)}.ls-run-cell{width:28px;height:28px;font-size:.75rem}}.ls-games-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.ls-games-progress{color:#6366f1;white-space:nowrap;background:#6366f126;border-radius:999px;padding:4px 12px;font-size:.95em;font-weight:700}.ls-games-bar{background:#94a3b840;border-radius:999px;height:8px;margin:8px 0 16px;overflow:hidden}.ls-games-bar-fill{background:linear-gradient(90deg,#6366f1,#22c55e);border-radius:999px;height:100%;transition:width .4s}.ls-game-card.locked{opacity:.6;pointer-events:none;filter:grayscale(.6)}.ls-game-card.locked .ls-game-body{padding:0}.ls-game-locked-note{color:#94a3b8;text-align:center;background:#94a3b81f;border:1px dashed #94a3b880;border-radius:10px;padding:14px 16px;font-weight:600}.ls-game-replay-slot{margin-top:10px}.ls-game-stats{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:8px 0;font-size:.84rem;font-weight:600;display:flex}.ls-game-after{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.ls-game-replay-note{color:var(--success);margin-top:8px;font-size:.88rem;font-weight:700}.ls-game-replay-btn{white-space:nowrap}.ls-review-quiz{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin:14px 0;padding:14px}.ls-rq-sub{color:var(--muted);margin-top:4px;font-size:13px}.ls-rq-progress{color:var(--secondary);background:var(--primary-soft);border-radius:999px;margin:8px 0;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.ls-run-opt.correct{box-shadow:0 0 12px #10b98159;border-color:var(--success)!important}.ls-run-opt.wrong{box-shadow:0 0 12px #ef44444d;border-color:var(--danger)!important}.ls-wiz-row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.ls-wiz-label{color:var(--muted);min-width:84px;font-size:13px;font-weight:600}.ls-wiz-btn{border:1px solid var(--border);background:var(--card-hover);color:var(--text);transition:var(--transition);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}.ls-wiz-btn.sel{border-color:var(--secondary);box-shadow:var(--glow-cyan)}.ls-game-body .ls-content-code{max-width:100%;margin-top:10px;overflow-x:auto}.ls-game-body .ls-open-playground{margin-top:10px}@media (width<=430px){.ls-wiz-row{flex-direction:column;align-items:flex-start}.ls-wiz-label{min-width:0}.ls-td-frame{min-height:110px}}.ls-review-quiz{background:var(--card,#131a2e);border:1px solid #6366f159;border-radius:14px;margin:14px 0;padding:14px}.ls-rq-title{font-size:15px;font-weight:700}.ls-rq-sub{color:#94a3b8;margin:4px 0 10px;font-size:13px}.ls-rq-step{color:#6366f1;background:#6366f11f;border-radius:999px;margin-bottom:8px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.ls-rq-q{margin-bottom:10px;font-size:15px}.ls-rq-opts{flex-direction:column;gap:8px;display:flex}.ls-rq-opts .ls-run-opt{text-align:left;width:100%}.ls-rq-fb{margin-top:10px}.ls-rq-fb:empty{display:none}.ls-run-q{margin-bottom:10px;font-size:15px}.ls-run-opts{flex-direction:column;gap:8px;display:flex}.ls-run-opt{text-align:left;width:100%;min-height:48px;color:inherit;cursor:pointer;background:#94a3b80f;border:1px solid #94a3b840;border-radius:10px;padding:10px 14px;font-size:14px}.ls-run-opt:hover{border-color:#6366f1}.ls-run-fb{margin-top:10px}.ls-run-fb:empty{display:none}.ls-cstab-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.ls-cstab{min-height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #94a3b840;border-radius:10px;flex:140px;padding:10px 12px;font-size:14px;font-weight:600}.ls-cstab.active{background:#6366f126;border-color:#6366f1}.ls-cstab-panels{display:block}.ls-cstab-panel{display:none}.ls-cstab-panel.active{display:block}.ls-cstab-panel .ls-img-preview-frame{background:#0b0f1d;border:1px solid #94a3b833;border-radius:10px;width:100%;min-height:120px}.ls-cstab-code{color:#a5b4fc;white-space:pre;background:#0b0f1d;border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:12.5px;line-height:1.55;overflow-x:auto}.ls-wiz-row{flex-direction:column;gap:12px;display:flex}.ls-wiz-label{color:#94a3b8;margin-bottom:6px;font-size:13px;font-weight:700}.ls-wiz-btns{flex-wrap:wrap;gap:8px;display:flex}.ls-wiz-btn{min-height:44px;color:inherit;cursor:pointer;background:0 0;border:2px solid #94a3b84d;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}.ls-wiz-btn.active{background:#6366f126;border-color:#6366f1}.ls-wiz-preview{margin-top:12px}.ls-wiz-preview .ls-img-preview-frame{background:#0b0f1d;border:1px solid #94a3b833;border-radius:10px;width:100%;min-height:120px}@media (width>=720px){.ls-review-quiz,.ls-rq-opts{max-width:640px}.ls-wiz-row{flex-direction:row}.ls-wiz-group{flex:1}}.ls-section-head h3{letter-spacing:-.02em;margin-bottom:6px;font-size:1.5rem;font-weight:800}.ls-section-head p{max-width:640px;font-size:.95rem;line-height:1.5}.ls-topics-head{justify-content:space-between;align-items:center;gap:8px;margin:4px 0 16px;font-size:1.08rem;font-weight:800;display:flex}.ls-topics-count{color:var(--muted);font-size:.82rem;font-weight:600}.ls-overall{background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--secondary) 58%, var(--primary)));color:#fff;border:1px solid color-mix(in srgb, var(--primary) 45%, transparent);box-shadow:0 16px 40px color-mix(in srgb, var(--primary) 24%, transparent);animation:lsFadeUp .45s var(--bounce) both;border-radius:28px;flex-wrap:wrap;align-items:center;gap:22px;max-width:100%;margin:0 0 18px;padding:22px 26px;display:flex;position:relative;overflow:hidden}.ls-overall-info{z-index:1;flex:1;min-width:200px;position:relative}.ls-overall-label{letter-spacing:.07em;text-transform:uppercase;color:#ffffffc7;margin-bottom:4px;font-size:.75rem;font-weight:700;display:inline-block}.ls-overall-pct{color:#fff;letter-spacing:-.02em;font-size:2.4rem;font-weight:800;line-height:1.05}.ls-overall-pct small{margin-left:2px;font-size:.5em;font-weight:700}.ls-overall-stats{color:#ffffffd1;margin-top:4px;font-size:.86rem}.ls-overall-stats strong{color:#fff}.ls-overall-motive{color:#ffffffeb;margin-top:6px;font-size:.86rem;font-weight:600}.ls-overall-ring-wrap{z-index:1;flex-shrink:0;width:104px;height:104px;position:relative}.ls-overall-ring{width:100%;height:100%;display:block;transform:rotate(-90deg)}.ls-ring-bg{fill:none;stroke:#ffffff40;stroke-width:8px}.ls-ring-fill{fill:none;stroke:#fff;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s var(--bounce)}.ls-ring-pct{color:#fff;justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:flex;position:absolute;inset:0}.ls-ring-pct small{color:#fffc;margin-left:1px;font-size:.68em;font-weight:700}.ls-overall-robot{z-index:1;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.ls-overall-robot .mascot{--mascot-size:64px}.ls-course-state{flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex;position:relative}.ls-course-state svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ls-state-ring-bg{fill:none;stroke:color-mix(in srgb, var(--ls-color,var(--primary)) 16%, transparent);stroke-width:4.5px}.ls-state-ring-fill{fill:none;stroke:var(--ls-color,var(--primary));stroke-width:4.5px;stroke-linecap:round;transition:stroke-dashoffset .9s var(--bounce)}.ls-state-ring-pct{color:var(--text);font-size:.64rem;font-weight:800;position:relative}.ls-state-idle .ls-state-ring-pct{color:var(--muted)}.ls-state-done{background:var(--success);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--success) 35%, transparent);animation:lsStatePop .4s var(--bounce) both;border-radius:50%;font-size:1.25rem;font-weight:800}@keyframes lsStatePop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.ls-status{white-space:nowrap;border:1px solid #0000;border-radius:99px;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.ls-status-done{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border-color:color-mix(in srgb, var(--success) 30%, transparent)}.ls-status-active{color:var(--secondary);background:color-mix(in srgb, var(--secondary) 12%, transparent);border-color:color-mix(in srgb, var(--secondary) 30%, transparent)}.ls-status-idle{color:var(--muted);background:color-mix(in srgb, var(--muted) 10%, transparent);border-color:color-mix(in srgb, var(--muted) 24%, transparent)}.ls-course-finished{border-color:color-mix(in srgb, var(--success) 32%, transparent)}@media (width<=1024px){.ls-overall{gap:18px;padding:20px 22px}.ls-overall-ring-wrap{width:92px;height:92px}.ls-overall-pct{font-size:2rem}}@media (width<=640px){.ls-section-head{margin-bottom:16px}.ls-section-head h3{font-size:1.35rem}.ls-overall{border-radius:24px;gap:14px;margin-bottom:14px;padding:18px 16px}.ls-overall-ring-wrap{width:80px;height:80px}.ls-overall-pct{font-size:1.75rem}.ls-overall-info{flex-basis:calc(100% - 94px);min-width:0}.ls-overall-robot{display:none}.ls-continue{flex-direction:column;align-items:stretch;gap:14px}.ls-continue-progress{min-width:0;max-width:none}.ls-continue .ls-btn-continue,.ls-continue .btn.ls-btn-continue{justify-content:center;width:100%}.ls-continue-head{margin-bottom:8px}.ls-topics-head{margin:0 0 12px;font-size:1rem}.ls-course-card{border-radius:22px;gap:12px;padding:12px 14px}.ls-course-icon{border-radius:14px;width:44px;height:44px;font-size:1.3rem}.ls-course-id h4{font-size:1.02rem}.ls-course-tagline{font-size:.8rem}.ls-course-side{gap:4px}.ls-course-state{width:42px;height:42px}}@media (width<=360px){.ls-course-tagline{-webkit-line-clamp:2}}@media (prefers-reduced-motion:reduce){.ls-overall,.ls-topics-head,.ls-state-done{animation:none}.ls-ring-fill,.ls-state-ring-fill{transition:none!important}.ls-btn-continue{transition:none}}.ls-cpath{--road-w:5px;background:radial-gradient(1100px 480px at 12% 0%, color-mix(in srgb, var(--primary) 8%, transparent), transparent 62%), radial-gradient(900px 420px at 88% 100%, color-mix(in srgb, var(--secondary) 8%, transparent), transparent 62%), var(--card);border:1px solid var(--border);box-shadow:var(--shadow-soft);animation:lsFadeUp .45s var(--bounce) both;border-radius:32px;margin:18px 0 8px;padding:28px 10px 36px;position:relative;overflow-x:clip}.ls-cpath,.ls-cpath>*{min-width:0;max-width:100%}.ls-cpath-bg{border-radius:inherit;pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.ls-cpath-blob{filter:blur(46px);opacity:.55;border-radius:50%;position:absolute}.ls-cpath-blob--a{background:color-mix(in srgb, var(--primary) 13%, transparent);width:320px;height:320px;top:-90px;left:-100px}.ls-cpath-blob--b{background:color-mix(in srgb, var(--secondary) 12%, transparent);width:360px;height:360px;bottom:-130px;right:-120px}.ls-cpath-dots{background-image:radial-gradient(color-mix(in srgb, var(--text) 10%, transparent) 1px, transparent 1.4px);opacity:.32;background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.ls-cpath-chip{color:color-mix(in srgb, var(--primary) 60%, var(--text));background:color-mix(in srgb, var(--primary) 8%, transparent);border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);opacity:.8;border-radius:10px;padding:4px 9px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.72rem;font-weight:700;position:absolute}.ls-cpath-chip--html{top:26px;right:5%;transform:rotate(6deg)}.ls-cpath-chip--css{top:44%;left:3%;transform:rotate(-5deg)}.ls-cpath-chip--js{bottom:11%;right:4%;transform:rotate(4deg)}.ls-cpath-decor{opacity:.45;filter:saturate(.9);font-size:1.5rem;position:absolute}.ls-cpath-decor--laptop{bottom:16px;left:3.5%;transform:rotate(-8deg)}.ls-cpath-road{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ls-croad-base,.ls-croad-progress{fill:none;stroke-linecap:round;stroke-linejoin:round}.ls-croad-base{stroke:color-mix(in srgb, var(--muted) 32%, transparent);stroke-width:var(--road-w)}.ls-croad-progress{stroke:url(#lsRoadGrad);stroke-width:calc(var(--road-w) + 1px)}.ls-crow{z-index:2;grid-template-columns:minmax(0, var(--l,1fr)) 76px minmax(0, var(--r,1fr));animation:lsFadeUp .45s var(--bounce) both;align-items:center;padding:22px 0;display:grid;position:relative}.ls-cnode{--node-size:64px;width:var(--node-size);height:var(--node-size);cursor:pointer;background:var(--card);border:2px solid var(--border-focus);box-shadow:var(--shadow-soft);transition:transform .18s var(--bounce), box-shadow .18s ease, border-color .18s ease, background .18s ease;-webkit-tap-highlight-color:transparent;border-radius:50%;grid-area:1/2;justify-content:center;justify-self:center;align-items:center;font-family:inherit;display:flex}.ls-cnode:hover{box-shadow:var(--glow);transform:translateY(-3px)scale(1.05)}.ls-cnode:active{transform:scale(.94)}.ls-cnode:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.ls-cnode-face{color:var(--primary);font-size:1.15rem;font-weight:800;line-height:1}.ls-cnode--open{background:var(--bg-alt);border-color:var(--border)}.ls-cnode--open .ls-cnode-face{color:var(--muted)}.ls-cnode--done{background:color-mix(in srgb, var(--success) 16%, var(--card));border-color:color-mix(in srgb, var(--success) 45%, transparent)}.ls-cnode--done .ls-cnode-face{color:var(--success)}.ls-cnode--locked{background:var(--bg-alt);border-color:var(--border);cursor:not-allowed;opacity:.8}.ls-cnode--locked .ls-cnode-face{color:var(--muted);font-size:.95rem}.ls-cnode--current{--node-size:72px;background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 55%, var(--secondary)));box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 35%, transparent);border-color:#0000;animation:2.4s ease-in-out infinite lsCNodePulse}.ls-cnode--current .ls-cnode-face{color:#fff;font-size:1.3rem}@keyframes lsCNodePulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 35%, transparent), 0 8px 24px color-mix(in srgb, var(--primary) 30%, transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb, var(--primary) 0%, transparent), 0 8px 24px color-mix(in srgb, var(--primary) 30%, transparent)}}.ls-cnode.ls-shake,.ls-ccard.ls-shake{animation:.45s lsShakeCard}.ls-ccard{grid-row:1;grid-column:var(--card-col,3);justify-self:var(--card-just,start);background:var(--card);border:1px solid var(--border);width:min(380px,100%);max-width:100%;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .18s var(--bounce), box-shadow .18s ease, border-color .18s ease;-webkit-tap-highlight-color:transparent;border-radius:22px;padding:14px 18px 15px}.ls-ccard:hover{border-color:var(--border-focus);box-shadow:var(--glow);transform:translateY(-3px)}.ls-ccard:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.ls-ccard-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.ls-ccard-num{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.72rem;font-weight:800}.ls-ccard-status{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.68rem;font-weight:700}.ls-ccard-status--current{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent)}.ls-ccard-status--done{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent)}.ls-ccard-status--locked{color:var(--muted);background:var(--bg-alt)}.ls-ccard-status--open{color:var(--secondary);background:color-mix(in srgb, var(--secondary) 12%, transparent)}.ls-ccard-title{color:var(--text);overflow-wrap:break-word;word-break:normal;margin:0 0 4px;font-size:1rem;font-weight:800;line-height:1.3}.ls-ccard-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 8px;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.ls-ccard-meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:.74rem;font-weight:600;display:flex}.ls-ccard-action{color:var(--primary);align-items:center;gap:5px;margin-top:10px;font-size:.8rem;font-weight:800;display:inline-flex}.ls-ccard-action b{transition:transform .18s}.ls-ccard:hover .ls-ccard-action b{transform:translate(3px)}.ls-ccard-action--done{color:var(--success)}.ls-ccard--current{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--card)), var(--card));border-color:color-mix(in srgb, var(--primary) 30%, transparent)}.ls-ccard--done{background:linear-gradient(135deg, color-mix(in srgb, var(--success) 7%, var(--card)), var(--card));border-color:color-mix(in srgb, var(--success) 25%, transparent)}.ls-ccard--locked{opacity:.72;cursor:not-allowed}.ls-ccard--locked:hover{box-shadow:var(--shadow-soft);border-color:var(--border);transform:none}@media (width<=640px){.ls-cpath{border-radius:26px;padding:18px 6px 28px}.ls-crow{grid-template-columns:minmax(0, var(--lm,1fr)) 58px minmax(0, var(--rm,1fr));padding:16px 0}.ls-cnode{--node-size:52px}.ls-cnode--current{--node-size:58px}.ls-ccard{justify-self:var(--card-align,start);grid-area:2/1/auto/-1;width:min(288px,100%);margin-top:10px;padding:12px 14px 13px}.ls-ccard-title{font-size:.92rem}.ls-ccard-desc{font-size:.76rem}.ls-ccard-action{margin-top:8px;font-size:.76rem}.ls-cpath-chip{padding:3px 7px;font-size:.64rem}.ls-cpath-chip--css{display:none}.ls-cpath-decor--laptop{font-size:1.2rem;bottom:10px}}@media (width<=360px){.ls-ccard{width:min(264px,100%)}.ls-cpath-chip--js{display:none}.ls-crow{padding:13px 0}}@media (width>=1280px){.ls-cpath{padding:34px 14px 42px}.ls-ccard{width:min(400px,100%)}}@media (prefers-reduced-motion:reduce){.ls-crow,.ls-cnode--current{animation:none!important}.ls-cnode,.ls-ccard,.ls-croad-progress{transition:none!important}}.ls-course-topbar{animation:lsFadeUp .4s var(--bounce) both;justify-content:flex-start;margin-bottom:14px;display:flex}.ls-back-btn{color:var(--text);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .2s var(--bounce), border-color .2s, box-shadow .2s;-webkit-tap-highlight-color:transparent;border-radius:14px;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:.9rem;font-weight:700;display:inline-flex}.ls-back-btn:hover{border-color:var(--border-focus);box-shadow:var(--shadow);transform:translateY(-2px)}.ls-back-btn:active{transform:scale(.98)}.ls-back-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ls-hero{border:1px solid color-mix(in srgb, var(--primary) 14%, transparent);box-shadow:0 18px 44px -20px color-mix(in srgb, var(--primary) 26%, transparent);background:linear-gradient(120deg,#f5f9ff 0%,#fff 46%,#eaf2ff 100%);border-radius:32px;align-items:center;gap:18px;padding:28px 30px;position:relative}.ls-hero-main{flex:auto;align-items:center;gap:18px;min-width:0;display:flex}.ls-hero .ls-course-head-icon{background:color-mix(in srgb, var(--ls-color,var(--primary)) 12%, #fff);width:76px;height:76px;box-shadow:0 10px 22px -12px color-mix(in srgb, var(--ls-color,var(--primary)) 55%, transparent);border-radius:20px;font-size:2.4rem}.ls-hero .ls-course-head-info h3{letter-spacing:-.02em;font-size:1.9rem}.ls-hero .ls-course-head-info>p{margin-bottom:14px}.ls-hero-countrow{min-width:0;animation:lsFadeUp .45s var(--bounce) 80ms both;align-items:center;gap:12px;display:flex}.ls-hero-count{color:var(--muted);white-space:nowrap;font-size:.86rem;font-weight:600}.ls-hero-count strong{color:var(--primary)}.ls-hero-countrow .ls-progress-track{max-width:220px}.ls-hero-tail-marker{display:none}.ls-hero-robot{animation:lsHeroRobotIn .6s var(--bounce) .12s both;flex:none;justify-content:center;align-items:center;padding:10px 26px 16px;display:flex;position:relative}@keyframes lsHeroRobotIn{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.ls-hero-robot .mascot{--mascot-size:150px}.ls-hero-badge{z-index:2;letter-spacing:.02em;box-shadow:0 8px 18px -8px color-mix(in srgb, var(--primary) 40%, transparent);pointer-events:none;border-radius:14px;justify-content:center;align-items:center;font-size:.78rem;font-weight:800;animation:3.6s ease-in-out infinite lsBadgeFloat;display:flex;position:absolute}.ls-hero-badge--code{color:#fff;background:linear-gradient(135deg, var(--primary), var(--secondary));border-radius:16px;width:52px;height:52px;font-size:1.05rem;top:-4px;left:0}.ls-hero-badge--tag{--badge-rot:6deg;color:var(--primary);border:1px solid var(--border);background:#fff;border-radius:9px;padding:5px 10px;animation-delay:.9s;top:0;right:0;transform:rotate(6deg)}@keyframes lsBadgeFloat{0%,to{transform:translateY(0) rotate(var(--badge-rot,0deg))}50%{transform:translateY(-6px) rotate(var(--badge-rot,0deg))}}.ls-hero-quote{min-width:0;color:var(--text);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-soft);animation:lsFadeUp .45s var(--bounce) .16s both;border-radius:18px;flex:0 250px;padding:18px 52px 18px 20px;font-size:.92rem;font-weight:600;line-height:1.55;position:relative}.ls-hero-quote p{margin:0}.ls-hero-quote-ico{font-size:1.45rem;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.ls-road-head{animation:lsFadeUp .4s var(--bounce) both;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin:26px 2px 4px;display:flex}.ls-road-title{align-items:flex-start;gap:12px;min-width:0;display:flex}.ls-road-ico{font-size:1.45rem;line-height:1.3}.ls-road-title h3{margin:0 0 4px;font-size:1.25rem;font-weight:800}.ls-road-title p{color:var(--muted);margin:0;font-size:.9rem}.ls-road-actions{flex-flow:wrap;align-items:center}@media (width<=1100px){.ls-hero{flex-wrap:wrap}.ls-hero-robot .mascot{--mascot-size:120px}.ls-hero-quote{flex:220px}}@media (width<=767px){.ls-course-topbar{margin-bottom:10px}.ls-back-btn{border-radius:12px;padding:8px 14px;font-size:.84rem}.ls-hero{border-radius:22px;gap:10px;padding:18px 16px}.ls-hero-main{gap:12px}.ls-hero .ls-course-head-icon{border-radius:15px;width:54px;height:54px;font-size:1.7rem}.ls-hero .ls-course-head-info h3{font-size:1.35rem}.ls-hero .ls-course-head-info>p{margin-bottom:10px;font-size:.86rem}.ls-hero-countrow{flex-wrap:wrap;row-gap:6px}.ls-hero-countrow .ls-progress-track{flex:120px;max-width:none}.ls-hero-robot{width:100%;padding:6px 0 8px}.ls-hero-robot .mascot{--mascot-size:96px}.ls-hero-badge--code{width:40px;height:40px;font-size:.85rem;top:-6px}.ls-hero-badge--tag{padding:4px 8px;font-size:.7rem}.ls-hero-quote{border-radius:15px;padding:14px 46px 14px 16px;font-size:.86rem}.ls-road-head{gap:10px;margin-top:18px}.ls-road-title h3{font-size:1.1rem}.ls-road-title p{font-size:.84rem}}@media (width<=360px){.ls-hero{padding:16px 13px}.ls-hero-robot .mascot{--mascot-size:84px}}@media (prefers-reduced-motion:reduce){.ls-course-topbar,.ls-hero,.ls-hero-quote,.ls-hero-robot,.ls-road-head,.ls-hero-countrow,.ls-hero-badge{animation:none!important}}.mascot{--mascot-size:96px;width:var(--mascot-size);height:calc(var(--mascot-size) * 1.08);pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;justify-content:flex-end;align-items:center;display:inline-flex;position:relative}.mascot-body{transform-origin:50% 96%;will-change:transform;z-index:2;justify-content:center;align-items:center;width:100%;height:92%;display:flex;position:relative}.mascot img{object-fit:contain;filter:drop-shadow(0 8px 24px #00c3ff73);width:100%;height:100%;display:block}.mascot.mascot-broken{display:none!important}.mascot-eyes{pointer-events:none;z-index:3;justify-content:space-between;align-items:center;width:36%;height:16%;padding:0 4%;display:flex;position:absolute;top:23%;left:32%}.mascot-eye{opacity:.9;transform-origin:50%;background:radial-gradient(circle,#00f2fe 30%,#00c6ff 100%);border-radius:50%;width:28%;height:65%;animation:4.2s ease-in-out infinite mascotEyeBlink,7s ease-in-out infinite mascotEyeGlance;position:relative;box-shadow:0 0 8px #00f2fe,0 0 16px #00d2ffd9}.mascot-eye--l{left:2%}.mascot-eye--r{right:2%}@keyframes mascotEyeBlink{0%,90%,to{opacity:.9;transform:scaleY(1)}94%{opacity:.3;transform:scaleY(.08)}}@keyframes mascotEyeGlance{0%,65%,to{transform:translate(0)}70%,82%{transform:translate(2.2px)}}.mascot-platform{z-index:1;background:radial-gradient(#0e1c3cf2,#060c1cfa);border:1.5px solid #00e5ffd9;border-radius:50%;justify-content:center;align-items:center;width:86%;height:13px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 16px #00e5ffb3,0 4px 14px #000000d9,inset 0 0 10px #00e5ff73}.mascot-platform-ring{border:1px solid #00f2fee6;border-radius:50%;width:68%;height:5px;box-shadow:0 0 8px #00f2fe}.mascot-platform-glow{pointer-events:none;background:radial-gradient(#00e5ff73,#0000 72%);width:105%;height:18px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.mascot-xs{--mascot-size:44px}.mascot-sm{--mascot-size:60px}.mascot-md{--mascot-size:88px}.mascot-lg{--mascot-size:140px}.mascot--idle .mascot-body{animation:3.4s ease-in-out infinite mascotIdle}@keyframes mascotIdle{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5px)rotate(-1deg)}}.mascot--thinking .mascot-body{animation:2s ease-in-out infinite mascotThink}.mascot--thinking .mascot-eye{animation:2s ease-in-out infinite mascotEyeThink;box-shadow:0 0 12px #00f2fe,0 0 20px #7c5cff}@keyframes mascotThink{0%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-3px)rotate(-5deg)}70%{transform:translateY(-3px)rotate(-2deg)}}@keyframes mascotEyeThink{0%,to{transform:translate(0)}50%{transform:translate(-1.5px,-2px)}}.mascot--success .mascot-body{animation:.65s cubic-bezier(.16,1,.3,1) mascotBounce}.mascot--success .mascot-eye{box-shadow:0 0 14px #00f2fe,0 0 24px #00f2fe}@keyframes mascotBounce{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-14px)scale(1.05)}60%{transform:translateY(0)scale(.97)}80%{transform:translateY(-4px)scale(1.02)}to{transform:translateY(0)scale(1)}}.mascot--error .mascot-body{animation:.48s ease-in-out mascotShake}.mascot--error .mascot-eye{background:radial-gradient(circle,#f05 30%,#ff5e62 100%);box-shadow:0 0 10px #f05,0 0 16px #ff0055b3}@keyframes mascotShake{0%,to{transform:translate(0)}20%{transform:translate(-5px)rotate(-3deg)}40%{transform:translate(5px)rotate(3deg)}60%{transform:translate(-3px)rotate(-2deg)}80%{transform:translate(3px)rotate(2deg)}}.mascot--complete .mascot-body{animation:1.2s ease-in-out infinite mascotCelebrate}.mascot--complete .mascot img{filter:drop-shadow(0 8px 28px #00e5ffb3)drop-shadow(0 0 16px #7c5cff99)}@keyframes mascotCelebrate{0%,to{transform:translateY(0)rotate(0)scale(1)}25%{transform:translateY(-12px)rotate(-5deg)scale(1.04)}50%{transform:translateY(0)rotate(0)scale(.98)}75%{transform:translateY(-12px)rotate(5deg)scale(1.04)}}.mascot--rocket .mascot-body,.mascot--newLesson .mascot-body{animation:2s ease-in-out infinite mascotRocket}@keyframes mascotRocket{0%{transform:translate(0)rotate(0)}40%{transform:translate(6px,-8px)rotate(4deg)}60%{transform:translate(8px,-10px)rotate(5deg)}80%{transform:translate(3px,-3px)rotate(2deg)}to{transform:translate(0)rotate(0)}}.mascot-xp{color:#fbbf24;text-shadow:0 0 12px #fbbf24e6;pointer-events:none;white-space:nowrap;z-index:10;font-size:14px;font-weight:800;animation:1.3s ease-out forwards mascotXpFloat;position:absolute;top:-6px;left:50%;transform:translate(-50%)}@keyframes mascotXpFloat{0%{opacity:0;transform:translate(-50%,8px)scale(.7)}20%{opacity:1;transform:translate(-50%,-8px)scale(1.1)}to{opacity:0;transform:translate(-50%,-60px)scale(1)}}.mascot-bubble{display:none!important}.hero-mascot-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0e1c8c;border:1px solid #00e5ff40;border-radius:18px;align-items:center;gap:12px;width:fit-content;max-width:100%;margin-top:14px;padding:8px 14px 8px 8px;display:flex;box-shadow:0 0 20px #00e5ff33}.hero-mascot-card .mascot{--mascot-size:68px}.hero-mascot-say{display:none!important}.mascot-ai{--mascot-size:34px;margin-right:6px}.q-mascot-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.q-mascot-row .mascot{--mascot-size:48px}.q-mascot-text{display:none!important}#resultHero .mascot{--mascot-size:80px}.ls-mascot-intro{background:linear-gradient(135deg,#101830bf,#0a1024d9);border:1px solid #00e5ff38;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:16px 22px;display:flex;overflow:visible;box-shadow:0 8px 28px #00000059}.ls-mascot-intro .mascot{--mascot-size:135px;order:2}.ls-mascot-intro-text{flex:auto;order:1;min-width:0}.ls-mascot-intro-text h4{color:#fff;margin:0 0 6px;font-size:18px;font-weight:800}.ls-mascot-intro-text p{color:#e2e8f0d9;margin:0;font-size:14px;line-height:1.5}.ls-quiz-hero .mascot,.ls-result-hero .mascot{--mascot-size:60px}.ls-quiz-hero{flex-wrap:wrap;align-items:center;gap:10px;display:flex}@media (width<=640px){.mascot{--mascot-size:60px}.mascot-sm{--mascot-size:48px}.mascot-lg{--mascot-size:96px}.hero-mascot-card .mascot{--mascot-size:48px}.hero-mascot-card{margin-inline:auto;padding:6px 10px 6px 6px}.ls-mascot-intro{text-align:center;flex-direction:column;gap:12px;padding:14px 12px}.ls-mascot-intro .mascot{--mascot-size:110px;order:2;margin-inline:auto}.ls-mascot-intro-text{order:1}.ls-mascot-intro-text h4{font-size:16px}.ls-mascot-intro-text p{font-size:13px}#resultHero .mascot{--mascot-size:64px}.mascot-ai{--mascot-size:26px}}@media (width<=360px){.mascot{--mascot-size:50px}.mascot-sm{--mascot-size:42px}.hero-mascot-card .mascot{--mascot-size:40px}.ls-mascot-intro .mascot{--mascot-size:92px}}[data-theme=light] .mascot img{filter:drop-shadow(0 6px 20px #2563eb66)brightness(1.02)contrast(1.04)}[data-theme=light] .mascot-platform{background:radial-gradient(#dcebfff2,#c8dcfafa);border:1.5px solid #2563ebb3;box-shadow:0 0 16px #2563eb66,0 4px 12px #00000026,inset 0 0 8px #2563eb4d}[data-theme=light] .mascot-platform-ring{border-color:#2563ebcc;box-shadow:0 0 6px #2563eb99}[data-theme=light] .ls-mascot-intro{background:#ffffffd9;border-color:#6366f140;box-shadow:0 6px 20px #6366f11f}[data-theme=light] .ls-mascot-intro-text h4{color:#0f172a}[data-theme=light] .ls-mascot-intro-text p{color:#475569}@media (prefers-reduced-motion:reduce){.mascot-body,.mascot-eye,.mascot--idle .mascot-body,.mascot--thinking .mascot-body,.mascot--complete .mascot-body,.mascot--rocket .mascot-body,.mascot--newLesson .mascot-body,.mascot--error .mascot-body,.mascot--success .mascot-body{animation:none!important}.mascot-xp{animation-duration:.6s!important}}.m-dash{display:none}@media (width<=767px){:root{--m-accent:#7c5cff;--m-accent-2:#4f8cff;--m-glass:#12182cc2;--m-glass-2:#1a203aa6;--m-border:#7c5cff3d;--m-radius:18px;--m-radius-sm:12px}html,body{box-sizing:border-box;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;padding:0;width:100%!important;max-width:100vw!important;overflow-x:hidden!important}*,:before,:after{box-sizing:border-box}input,select,textarea{touch-action:manipulation;font-size:16px!important}button,a,.btn,.icon-btn,.nav-item,.m-chip,.m-course-card,.m-stat-card,[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:active,.btn:active,.m-course-card:active,.m-chip:active{transition:transform .1s;transform:scale(.98)}#app,.app{flex-direction:column;display:flex;width:100%!important;min-width:0!important;max-width:100vw!important;margin:0!important;padding:0!important;overflow-x:hidden!important}.main,.main .content{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important}.main .page{width:100%!important;min-width:0!important;max-width:100%!important;padding:12px 12px calc(32px + env(safe-area-inset-bottom,0px))!important;box-sizing:border-box!important;margin:0!important}.topbar{z-index:80!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:54px!important;padding:8px 12px!important;padding-top:calc(8px + env(safe-area-inset-top,0px))!important;background:var(--itt-topbar-bg,#0b0f1ee0)!important;-webkit-backdrop-filter:blur(18px)saturate(180%)!important;border-bottom:1px solid var(--m-border)!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;margin:0!important;display:flex!important;position:sticky!important;top:0!important;box-shadow:0 4px 20px #00000059!important}.topbar-left{flex:auto!important;align-items:center!important;gap:10px!important;min-width:0!important;display:flex!important}.topbar .hamburger{background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;cursor:pointer!important;border-radius:12px!important;flex-direction:column!important;flex:0 0 40px!important;justify-content:center!important;align-items:center!important;gap:4.5px!important;width:40px!important;min-width:40px!important;height:40px!important;display:inline-flex!important}.topbar .hamburger span{background:var(--itt-text,#e6e9ff)!important;border-radius:2px!important;width:18px!important;height:2px!important}.topbar-left h2,#pageTitle{letter-spacing:-.2px!important;color:var(--itt-text,#f8fafc)!important;white-space:nowrap!important;text-overflow:ellipsis!important;max-width:calc(100vw - 190px)!important;margin:0!important;font-size:17px!important;font-weight:700!important;overflow:hidden!important}.topbar-right{flex:none!important;align-items:center!important;gap:6px!important;display:flex!important}.topbar .icon-btn{background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;cursor:pointer!important;border-radius:12px!important;flex:0 0 44px!important;justify-content:center!important;align-items:center!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;font-size:16px!important;display:inline-flex!important}.topbar .user-chip{cursor:pointer!important;background:0 0!important;border:none!important;padding:0!important}.topbar .user-chip #topbarUsername{display:none!important}.topbar .user-avatar{background:linear-gradient(135deg, var(--m-accent), var(--m-accent-2))!important;color:#fff!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;width:36px!important;min-width:36px!important;height:36px!important;font-size:13px!important;font-weight:700!important;display:flex!important;box-shadow:0 0 0 2px #7c5cff66!important}.notif-dropdown,.ux-user-dropdown{top:calc(56px + env(safe-area-inset-top,0px))!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;border:1px solid var(--m-border)!important;z-index:100!important;background:#0e1224f5!important;border-radius:16px!important;width:min(320px,100vw - 20px)!important;max-width:calc(100vw - 20px)!important;position:fixed!important;left:auto!important;right:10px!important;box-shadow:0 12px 36px #0009!important}.sidebar{-webkit-backdrop-filter:blur(22px)saturate(190%)!important;border-right:1px solid var(--m-border)!important;z-index:95!important;-webkit-overflow-scrolling:touch!important;background:#0c1020f5!important;flex-direction:column!important;width:min(82vw,300px)!important;max-width:300px!important;padding:0 0 24px!important;transition:transform .28s cubic-bezier(.16,1,.3,1)!important;display:flex!important;position:fixed!important;top:0!important;bottom:0!important;left:0!important;overflow-y:auto!important;transform:translate(-105%)!important;box-shadow:14px 0 45px #0000008c!important}.sidebar.active{transform:translate(0)!important}.sidebar-overlay{-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important;opacity:0!important;pointer-events:none!important;z-index:94!important;background:#040610ad!important;transition:opacity .26s!important;position:fixed!important;inset:0!important}.sidebar-overlay.active{opacity:1!important;pointer-events:auto!important}.sidebar-header{border-bottom:1px solid #ffffff0f!important;justify-content:space-between!important;align-items:center!important;padding:16px 14px 12px!important;display:flex!important}.sidebar-logo{color:#fff!important;align-items:center!important;gap:6px!important;font-size:18px!important;font-weight:800!important;display:flex!important}.sidebar-close{background:var(--m-glass-2)!important;border:1px solid var(--m-border)!important;color:#fff!important;cursor:pointer!important;border-radius:10px!important;justify-content:center!important;align-items:center!important;width:36px!important;height:36px!important;font-size:16px!important;display:flex!important}.sidebar-nav{flex-direction:column!important;flex:auto!important;gap:3px!important;padding:10px 8px!important;display:flex!important}.sidebar .nav-item{border-radius:12px!important;align-items:center!important;gap:12px!important;min-height:46px!important;margin:1px 0!important;padding:10px 14px!important;font-size:14px!important;font-weight:600!important;display:flex!important}.sidebar .nav-item.active{box-shadow:inset 0 0 0 1px var(--m-border)!important;color:#fff!important;background:#7c5cff2e!important}.sidebar-footer{border-top:1px solid #ffffff0f!important;padding:10px 12px!important}#page-dashboard .welcome-banner,#page-dashboard .stats-grid,#page-dashboard .dash-grid{display:none!important}.m-dash{width:100%!important;max-width:100%!important;display:block!important}.m-hero{border-radius:var(--m-radius)!important;border:1px solid var(--m-border)!important;background:linear-gradient(135deg,#2a1858eb,#141a38eb)!important;align-items:stretch!important;gap:8px!important;width:100%!important;padding:16px 14px!important;display:flex!important;position:relative!important;overflow:hidden!important;box-shadow:0 8px 30px #4a2fbd40!important}.m-hero-content{z-index:1!important;flex-direction:column!important;flex:auto!important;align-items:flex-start!important;gap:6px!important;min-width:0!important;display:flex!important}.m-hero-flame{color:#ffb86b!important;background:#ffa84c24!important;border:1px solid #ffa84c59!important;border-radius:999px!important;padding:3px 9px!important;font-size:11px!important;font-weight:700!important}.m-hero-course{color:#fff!important;word-break:break-word!important;margin:2px 0 0!important;font-size:19px!important;font-weight:800!important;line-height:1.25!important}.m-hero-lesson{color:#b9b3d9!important;word-break:break-word!important;margin:0!important;font-size:12.5px!important}.m-hero-progress{background:#ffffff1a!important;border-radius:999px!important;width:100%!important;height:7px!important;margin-top:3px!important;overflow:hidden!important}.m-hero-progress-fill{background:linear-gradient(90deg, var(--m-accent), var(--m-accent-2))!important;border-radius:999px!important;height:100%!important}.m-hero-pct{color:#cfc7f5!important;font-size:11.5px!important;font-weight:600!important}.m-hero-btn{background:linear-gradient(135deg, var(--m-accent), var(--m-accent-2))!important;color:#fff!important;cursor:pointer!important;border:none!important;border-radius:12px!important;justify-content:center!important;align-items:center!important;min-height:42px!important;margin-top:6px!important;padding:10px 18px!important;font-size:14px!important;font-weight:700!important;display:inline-flex!important;box-shadow:0 4px 16px #7c5cff66!important}.m-hero-btn:active{transform:scale(.97)!important}.m-hero-art{border:1px solid var(--m-border)!important;z-index:1!important;background:#7c5cff2e!important;border-radius:16px!important;flex:0 0 54px!important;justify-content:center!important;align-self:center!important;align-items:center!important;width:54px!important;height:54px!important;display:flex!important}.m-hero-art-code{color:#c9b8ff!important;font-family:monospace!important;font-size:18px!important;font-weight:800!important}.m-stats{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:10px!important;display:grid!important}.m-stat{background:var(--m-glass)!important;border:1px solid #ffffff12!important;border-radius:14px!important;flex-direction:column!important;align-items:center!important;gap:2px!important;min-width:0!important;padding:10px 6px!important;display:flex!important}.m-stat-ico{font-size:16px!important}.m-stat-val{color:#fff!important;font-size:17px!important;font-weight:800!important}.m-stat-lbl{color:#94a3b8!important;text-align:center!important;font-size:10.5px!important}.m-section-head{justify-content:space-between!important;align-items:center!important;gap:8px!important;margin:16px 0 8px!important;display:flex!important}.m-section-head h3{color:#fff!important;margin:0!important;font-size:15px!important;font-weight:700!important}.m-link{color:#a68cff!important;cursor:pointer!important;background:0 0!important;border:none!important;padding:4px 6px!important;font-size:12px!important;font-weight:600!important}.m-chips{-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;gap:6px!important;padding:2px 0 6px!important;display:flex!important;overflow-x:auto!important}.m-chips::-webkit-scrollbar{display:none!important}.m-chip{color:#b9b3d9!important;background:var(--m-glass-2)!important;cursor:pointer!important;border:1px solid #ffffff14!important;border-radius:999px!important;flex:none!important;min-height:34px!important;padding:6px 14px!important;font-size:12px!important;font-weight:600!important}.m-chip.active{color:#fff!important;background:linear-gradient(135deg, var(--m-accent), var(--m-accent-2))!important;border-color:#0000!important}.m-courses{flex-direction:column!important;gap:9px!important;margin-top:4px!important;display:flex!important}.m-course-card{background:var(--m-glass)!important;cursor:pointer!important;border:1px solid #ffffff12!important;border-radius:16px!important;align-items:center!important;gap:10px!important;width:100%!important;padding:12px!important;display:flex!important}.m-course-card:active{border-color:var(--m-border)!important;transform:scale(.985)!important}.m-course-icon{border:1px solid var(--m-border)!important;background:#7c5cff24!important;border-radius:12px!important;flex:0 0 42px!important;justify-content:center!important;align-items:center!important;width:42px!important;height:42px!important;font-size:20px!important;display:flex!important}.m-course-body{flex-direction:column!important;flex:auto!important;gap:3px!important;min-width:0!important;display:flex!important}.m-course-title{color:#fff!important;white-space:nowrap!important;text-overflow:ellipsis!important;font-size:14.5px!important;font-weight:700!important;overflow:hidden!important}.m-course-desc{color:#8f8aa8!important;white-space:nowrap!important;text-overflow:ellipsis!important;font-size:11.5px!important;overflow:hidden!important}.m-course-meta{color:#8f8aa8!important;align-items:center!important;gap:8px!important;font-size:10.5px!important;display:flex!important}.m-course-progress{background:#ffffff14!important;border-radius:999px!important;width:100%!important;height:4px!important;overflow:hidden!important}.m-course-progress span{background:linear-gradient(90deg, var(--m-accent), var(--m-accent-2))!important;height:100%!important;display:block!important}.m-course-arrow{color:#fff!important;background:#7c5cff33!important;border-radius:10px!important;flex:0 0 32px!important;justify-content:center!important;align-items:center!important;width:32px!important;height:32px!important;font-size:14px!important;display:flex!important}.ls-courses-grid{grid-template-columns:1fr!important;gap:10px!important;display:grid!important}.ls-course-card{padding:14px 12px!important}.ls-course-head{flex-direction:column!important;gap:12px!important;padding:14px 12px!important}.ls-course-head-actions{flex-direction:column!important;gap:8px!important;width:100%!important;display:flex!important}.ls-course-head-actions .btn{width:100%!important}.ls-lessons-grid{grid-template-columns:1fr!important;gap:8px!important;display:grid!important}.ls-lesson-card{padding:12px 14px!important}.ls-viewer-wrap{padding:0!important}.ls-viewer-card{border-radius:16px!important;padding:12px!important}.ls-viewer-hero{padding:12px 0 8px!important}.ls-viewer-hero h3{font-size:17px!important;line-height:1.3!important}.ls-mascot-intro{text-align:center!important;flex-direction:column!important;gap:8px!important;padding:12px!important}.ls-mascot-intro .mascot{--mascot-size:110px!important}.ls-content-section{padding:12px 0!important}.ls-content-codeblock{border-radius:12px!important;margin:8px 0!important}pre.ls-content-code,.ls-content-code{white-space:pre!important;border-radius:10px!important;max-width:100%!important;padding:10px 12px!important;font-size:12.5px!important;overflow-x:auto!important}.ls-open-playground{width:100%!important;min-height:40px!important;margin-top:6px!important}.ls-img-preview-frame,.ls-livedemo-frame,.ls-ex-preview{border-radius:12px!important;width:100%!important;height:200px!important}.ls-quiz-options{flex-direction:column!important;gap:8px!important;display:flex!important}.ls-quiz-option{text-align:left!important;align-items:center!important;gap:10px!important;width:100%!important;min-height:48px!important;padding:10px 12px!important;font-size:14px!important;display:flex!important}.ls-viewer-footer{flex-direction:column!important;gap:8px!important;display:flex!important}.ls-viewer-footer .btn{width:100%!important}.coding-header{border-radius:16px!important;flex-direction:column!important;gap:8px!important;margin-bottom:10px!important;padding:10px 12px!important;display:flex!important}.coding-header-left{flex-direction:column!important;gap:6px!important;width:100%!important;display:flex!important}.coding-editor-tabs{gap:4px!important;width:100%!important;display:flex!important}.coding-tab{white-space:nowrap!important;text-align:center!important;border-radius:10px!important;flex:1 1 0!important;min-height:36px!important;padding:6px 4px!important;font-size:12.5px!important;font-weight:700!important}.coding-select-wrap{width:100%!important}#codingLangSelect{border-radius:10px!important;width:100%!important;min-height:38px!important;font-size:13px!important}.coding-toolbar-controls{flex-direction:column!important;gap:8px!important;width:100%!important;display:flex!important}.auto-run-switch{display:none!important}.coding-actions{grid-template-columns:1fr 1fr!important;gap:6px!important;width:100%!important;display:grid!important}.coding-actions #aiPanelToggle,.coding-actions #codingRunBtn{white-space:nowrap!important;grid-column:span 1!important;min-height:42px!important;font-size:13.5px!important;font-weight:700!important}.coding-actions #codingRunBtn{color:#fff!important;background:linear-gradient(135deg,#10b981,#059669)!important;box-shadow:0 4px 14px #10b98166!important}.coding-actions #codingOpenBrowserBtn,.coding-actions #codingSaveBtn,.coding-actions #codingProjectsBtn,.coding-actions #codingResetBtn,.coding-actions #codingDownloadBtn{white-space:nowrap!important;text-align:center!important;justify-content:center!important;min-height:36px!important;padding:6px 8px!important;font-size:11.5px!important}.coding-workspace{flex-direction:column!important;gap:10px!important;width:100%!important;display:flex!important}.coding-editor-panel{border-radius:16px!important;width:100%!important;overflow:hidden!important}.editor-header{padding:8px 12px!important}.editor-shortcuts{display:none!important}.editor-body{height:240px!important;min-height:220px!important;max-height:300px!important}.editor-container{height:100%!important;display:flex!important}.line-numbers{width:30px!important;min-width:30px!important;padding:8px 2px!important;font-size:11.5px!important}.editor-surface{flex:auto!important;min-width:0!important;height:100%!important;position:relative!important}.code-textarea,.editor-highlight{white-space:pre!important;padding:8px 10px!important;font-size:13px!important;line-height:1.5!important;overflow-x:auto!important}.coding-output-panel{border-radius:16px!important;width:100%!important;overflow:hidden!important}.output-tabs{border-bottom:1px solid #ffffff14!important;gap:4px!important;padding:6px 8px!important;display:flex!important}.output-tab{white-space:nowrap!important;border-radius:8px!important;flex:1 1 0!important;min-height:34px!important;padding:4px 6px!important;font-size:12px!important}#view-preview iframe,#codingIframe{border:none!important;width:100%!important;height:240px!important;min-height:200px!important}#view-console,#view-errors{height:200px!important;overflow-y:auto!important}.ai-panel{-webkit-backdrop-filter:blur(24px)!important;backdrop-filter:blur(24px)!important;border-top:1px solid var(--m-border)!important;z-index:93!important;background:#0e1224fa!important;border-radius:20px 20px 0 0!important;width:100%!important;max-height:75vh!important;padding:14px!important;position:fixed!important;inset:auto 0 0!important;overflow-y:auto!important;box-shadow:0 -10px 40px #000000b3!important}.projects-head{flex-direction:column!important;gap:10px!important;margin-bottom:12px!important;display:flex!important}.projects-head .btn{width:100%!important;min-height:42px!important}.projects-grid{grid-template-columns:1fr!important;gap:10px!important;display:grid!important}.page-toolbar{flex-direction:column!important;gap:8px!important}.search-box{width:100%!important}.filter-chips{gap:6px!important;width:100%!important;padding-bottom:4px!important;display:flex!important;overflow-x:auto!important}.subject-cards{grid-template-columns:1fr!important;gap:10px!important;display:grid!important}.test-header{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:8px!important}.test-body{flex-direction:column!important;gap:12px!important;display:flex!important}.question-area{width:100%!important}.navigator-area{width:100%!important;margin-top:10px!important}.question-nav{grid-template-columns:repeat(5,1fr)!important;gap:6px!important;display:grid!important}.test-nav-buttons{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:6px!important;margin-top:12px!important;display:flex!important}.test-nav-buttons .btn{min-height:44px!important;padding:8px 12px!important}.duel-lobby{flex-direction:column!important;gap:10px!important;display:flex!important}.duel-welcome{padding:14px 12px!important}.duel-welcome h1{font-size:19px!important}.duel-mode-chips,.duel-diff-chips{flex-wrap:wrap!important;gap:6px!important;display:flex!important}.duel-chip{flex:calc(50% - 6px)!important;min-height:38px!important;font-size:12.5px!important}.tow-visualizer{gap:6px!important;padding:10px 8px!important}.tow-player{min-width:0!important}.tow-username{white-space:nowrap!important;text-overflow:ellipsis!important;max-width:60px!important;font-size:12px!important;overflow:hidden!important}.duel-options{flex-direction:column!important;gap:8px!important;display:flex!important}.duel-options .btn,.duel-options button{width:100%!important;min-height:46px!important;padding:10px 12px!important;font-size:13.5px!important}.duel-result-players-scores{justify-content:space-around!important;align-items:center!important;gap:6px!important;display:flex!important}.store-hero{flex-direction:column!important;gap:10px!important;padding:14px 12px!important}.store-layout{flex-direction:column!important;gap:12px!important;display:flex!important}.store-preview{width:100%!important}.store-avatar-stage{height:120px!important}.store-tabs{gap:6px!important;padding-bottom:4px!important;display:flex!important;overflow-x:auto!important}.store-tab{flex:none!important;min-height:34px!important;padding:6px 12px!important;font-size:12px!important}.store-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important;display:grid!important}.store-card{padding:10px!important}.profile-header{text-align:center!important;flex-direction:column!important;align-items:center!important;padding:16px 12px!important}.profile-stats{grid-template-columns:1fr 1fr!important;gap:8px!important;display:grid!important}.profile-actions .btn{width:100%!important;min-height:42px!important}.setting-row{flex-direction:column!important;align-items:flex-start!important;gap:8px!important;padding:10px 0!important}.setting-row .btn{width:100%!important}.achievement-grid{grid-template-columns:1fr!important;gap:8px!important;display:grid!important}.leaderboard{flex-direction:column!important;gap:6px!important;display:flex!important}.modal-overlay{padding:10px!important}.modal{border-radius:18px!important;width:min(480px,100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:88vh!important;margin:auto!important;padding:16px!important;overflow-y:auto!important}.modal-footer{flex-direction:column!important;gap:8px!important;display:flex!important}.modal-footer .btn{width:100%!important;min-height:42px!important}}@media (width<=360px){.topbar-left h2,#pageTitle{max-width:calc(100vw - 165px)!important;font-size:15px!important}.m-hero-art{display:none!important}.m-hero-course{font-size:17px!important}.m-stat-val{font-size:15px!important}.coding-actions,.store-grid{grid-template-columns:1fr!important}}@media (width<=320px){.main .page{padding:8px 8px 24px!important}.m-hero{padding:12px 10px!important}.m-hero-btn{width:100%!important}.m-stats{grid-template-columns:1fr!important}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}#onboardingRoot{display:none}#onboardingRoot.open{z-index:1200;background:var(--bg);-webkit-overflow-scrolling:touch;animation:.35s obFadeIn;display:block;position:fixed;inset:0;overflow:hidden auto}body.ob-lock{overflow:hidden}@keyframes obFadeIn{0%{opacity:0}to{opacity:1}}.ob-bg{pointer-events:none;z-index:0;position:fixed;inset:0}.ob-orb{filter:blur(90px);opacity:.16;border-radius:50%;position:absolute}.ob-orb-1{background:radial-gradient(circle, var(--primary), transparent 70%);width:420px;height:420px;top:-140px;left:-120px}.ob-orb-2{background:radial-gradient(circle, var(--secondary), transparent 70%);width:360px;height:360px;bottom:-120px;right:-100px}.ob-orb-3{background:radial-gradient(circle, var(--primary-hover), transparent 70%);opacity:.08;width:260px;height:260px;top:40%;left:55%}.ob-shell{z-index:1;box-sizing:border-box;flex-direction:column;width:100%;max-width:1100px;min-height:100%;margin:0 auto;padding:20px 24px 0;display:flex;position:relative}.ob-header{align-items:center;gap:14px;display:flex}.ob-back{border:1px solid var(--border);background:var(--card);width:42px;height:42px;color:var(--text);cursor:pointer;transition:border-color var(--transition), background var(--transition), transform .15s ease;border-radius:12px;flex-shrink:0;font-size:18px;line-height:1}.ob-back:hover{border-color:var(--border-focus);background:var(--card-hover)}.ob-back:active{transform:scale(.96)}.ob-logo{letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:800;overflow:hidden}.ob-logo b{color:var(--secondary);font-weight:800}.ob-step{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:13px;font-weight:700}.ob-skip{color:var(--muted);cursor:pointer;white-space:nowrap;transition:color var(--transition), background var(--transition);background:0 0;border:none;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:600}.ob-skip:hover{color:var(--text);background:var(--card)}.ob-progress{background:var(--card);border:1px solid var(--border);border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.ob-progress-fill{background:linear-gradient(90deg, var(--primary), var(--secondary));width:0;height:100%;box-shadow:var(--glow-cyan);transition:width .45s var(--bounce);border-radius:999px;display:block}.ob-body{flex:1;grid-template-columns:300px 1fr;align-items:center;gap:40px;padding:28px 0 12px;display:grid}.ob-side{flex-direction:column;align-items:center;gap:14px;display:flex}.ob-mascot-host{--mascot-size:150px}.ob-speech{background:var(--card);border:1px solid var(--border);max-width:250px;color:var(--text);text-align:center;box-shadow:var(--shadow-soft);overflow-wrap:break-word;border-radius:14px;padding:10px 16px;font-size:13.5px;font-weight:600;position:relative}.ob-speech:before{content:"";background:var(--card);border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:3px 0 0;width:12px;height:12px;position:absolute;top:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.ob-stage{min-width:0}.ob-screen{animation:obIn .45s var(--bounce);flex-direction:column;gap:10px;display:flex}.ob-screen.ob-out{pointer-events:none;animation:.4s forwards obOut}@keyframes obIn{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:translate(0)}}@keyframes obOut{to{opacity:0;transform:translate(-26px)}}.ob-mini-mascot{--mascot-size:72px;justify-content:center;display:none}.ob-title{letter-spacing:-.02em;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none;font-size:clamp(22px,3.4vw,32px);font-weight:800;line-height:1.22}.ob-title--final{text-align:center}.ob-sub{color:var(--muted);overflow-wrap:break-word;font-size:14.5px;line-height:1.5}.ob-title--final+.ob-sub{text-align:center}.ob-webnote{color:var(--secondary);background:var(--primary-soft);border:1px solid var(--border-focus);overflow-wrap:break-word;border-radius:10px;margin:2px 0 0;padding:8px 12px;font-size:13px;font-weight:600}.ob-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px;display:grid}.ob-choices--track,.ob-choices--level{grid-template-columns:repeat(2,minmax(0,1fr))}.ob-choices--daily{grid-template-columns:repeat(3,minmax(0,1fr))}.ob-choice{box-sizing:border-box;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:border-color .2s,background .2s,box-shadow .2s,transform .15s;display:flex}.ob-choice:hover{border-color:var(--border-focus);background:var(--card-hover)}.ob-choice:active{transform:scale(.98)}.ob-choice:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.ob-choice.selected{border-color:var(--secondary);background:var(--primary-soft);box-shadow:var(--glow-cyan)}.ob-choice-icon{background:var(--primary-soft);border:1px solid var(--border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;display:flex}.ob-choice-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ob-choice-text strong{overflow-wrap:break-word;font-size:14.5px;font-weight:700;line-height:1.3}.ob-choice-text small{color:var(--muted);overflow-wrap:break-word;font-size:12px;line-height:1.35}.ob-choice-check{color:#fff;background:linear-gradient(135deg, var(--primary), var(--secondary));opacity:0;width:22px;height:22px;transition:opacity .2s ease, transform .2s var(--bounce);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:12px;font-weight:800;display:flex;transform:scale(.5)}.ob-choice.selected .ob-choice-check{opacity:1;transform:scale(1)}.ob-summary{border-radius:var(--radius);background:var(--card);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);margin:14px auto 0;padding:8px 18px}.ob-summary-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;font-size:14.5px;font-weight:600;display:flex}.ob-summary-row:last-child{border-bottom:none}.ob-summary-ico{flex-shrink:0;font-size:18px}.ob-summary-text{overflow-wrap:break-word;word-break:normal}.ob-footer{z-index:2;background:linear-gradient(to top, var(--bg) 65%, transparent);flex-direction:column;align-items:center;gap:8px;padding:14px 0 18px;display:flex;position:sticky;bottom:0}.ob-error{color:var(--danger);text-align:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}.ob-cta{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;letter-spacing:.2px;cursor:pointer;width:100%;max-width:420px;min-height:48px;box-shadow:var(--glow);border:none;border-radius:14px;font-size:16px;font-weight:700;transition:transform .15s,box-shadow .2s,opacity .2s,filter .2s}.ob-cta:hover:not(:disabled){box-shadow:var(--glow-cyan);filter:brightness(1.06);transform:translateY(-1px)}.ob-cta:active:not(:disabled){transform:scale(.98)}.ob-cta:focus-visible{outline:2px solid var(--secondary-hover);outline-offset:2px}.ob-cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}@media (width<=767px){.ob-shell{max-width:100%;padding:14px 16px 0;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.ob-header{gap:10px}.ob-back{width:40px;height:40px}.ob-logo{font-size:15px}.ob-skip{padding:6px 8px;font-size:12px}.ob-body{grid-template-columns:1fr;align-items:start;gap:0;padding:16px 0 8px}.ob-side{display:none}.ob-mini-mascot{display:flex}.ob-screen{gap:8px;animation-name:obInMobile}.ob-screen.ob-out{animation-name:obOutMobile}.ob-title{font-size:21px}.ob-sub{font-size:13.5px}.ob-choices,.ob-choices--track,.ob-choices--level,.ob-choices--daily{grid-template-columns:1fr}.ob-choice{min-height:50px}@media (width>=390px){.ob-choices--daily,.ob-choices--reason{grid-template-columns:repeat(2,minmax(0,1fr))}}.ob-footer{padding:12px 0 calc(14px + env(safe-area-inset-bottom))}.ob-cta{max-width:100%;min-height:50px}}@keyframes obInMobile{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes obOutMobile{to{opacity:0;transform:translateY(-20px)}}@media (width>=1600px){.ob-shell{max-width:1200px}.ob-mascot-host{--mascot-size:170px}}@media (width>=768px) and (width<=1024px){.ob-body{grid-template-columns:240px 1fr;gap:28px}.ob-mascot-host{--mascot-size:120px}.ob-choices--daily{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){#onboardingRoot.open,.ob-screen,.ob-screen.ob-out,.ob-progress-fill,.ob-choice-check,.ob-choice,.ob-back,.ob-cta,.ob-choice.selected .ob-choice-check{transition:none!important;animation:none!important}}.ds-screen-overlay{z-index:1050;padding:18px;padding-top:max(18px, env(safe-area-inset-top));padding-bottom:max(18px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px)saturate(140%);background:radial-gradient(560px 340px at 50% -12%,#2563eb29,#0000 70%),radial-gradient(420px 260px at 50% 112%,#38bdf81f,#0000 70%),#f6f9fef5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden auto}.ds-screen-card{text-align:center;box-sizing:border-box;background:radial-gradient(420px 210px at 50% -8%,#2563eb14,#0000 70%),#fff;border:1px solid #94afe259;border-radius:30px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:30px 22px;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 48px -14px #1e40af38,0 0 0 6px #2563eb0d}.ds-screen-badge{letter-spacing:.09em;color:#2563eb;text-transform:uppercase;background:#2563eb14;border:1px solid #2563eb47;border-radius:999px;align-items:center;gap:6px;margin-bottom:16px;padding:5px 14px;font-size:.72rem;font-weight:800;display:inline-flex}.ds-screen-title{color:#0f172a;margin:0 0 8px;font-size:clamp(1.12rem,4.6vw,1.35rem);font-weight:800;line-height:1.3}.ds-screen-sub{color:#64748b;max-width:36ch;margin:0 0 16px;font-size:clamp(.85rem,3.6vw,.93rem);line-height:1.5}.ds-mascot-box{z-index:1;justify-content:center;align-items:center;width:clamp(118px,34vw,140px);height:clamp(118px,34vw,140px);margin:2px 0 10px;display:flex;position:relative}.ds-mascot-box .mascot{transform-origin:50%;transform:scale(.9)}.ds-mascot-fallback{font-size:3.4rem;line-height:1}.ds-blue-flame{filter:drop-shadow(0 4px 14px #2563eb66);flex-shrink:0;justify-content:center;align-items:center;animation:2.1s ease-in-out infinite dsFlameBreathe;display:inline-flex}.ds-fire-svg{width:100%;height:100%;display:block;overflow:visible}.ds-fire-glow{opacity:.6;animation:2s ease-in-out infinite dsGlowPulse}.ds-fire-outer{transform-origin:50% 90%;animation:1.7s ease-in-out infinite alternate dsOuterFlicker}.ds-fire-inner{transform-origin:50% 85%;animation:1.3s ease-in-out infinite alternate dsInnerFlicker}@keyframes dsFlameBreathe{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.07)translateY(-2px)}}@keyframes dsGlowPulse{0%,to{opacity:.45}50%{opacity:.9}}@keyframes dsOuterFlicker{0%{transform:scale(1)rotate(-1deg)}to{transform:scale(1.04)rotate(1.4deg)}}@keyframes dsInnerFlicker{0%{transform:scale(.94)translateY(1px)}to{transform:scale(1.06)translateY(-1px)}}.ds-streak-counter{z-index:1;justify-content:center;align-items:center;gap:10px;margin:2px 0 14px;display:flex;position:relative}.ds-streak-number{color:#0f172a;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(2.5rem,13vw,3.4rem);font-weight:800;line-height:1}.ds-streak-number.ds-blue-text{color:#2563eb}.ds-streak-unit{color:#64748b;text-align:left;max-width:8ch;font-size:clamp(.85rem,3.6vw,.95rem);font-weight:700;line-height:1.25}.ds-week-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;margin:0 0 18px;display:grid}.ds-week-day{background:#f1f5fb;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;padding:9px 0;display:flex}.ds-day-lbl{color:#64748b;font-size:.68rem;font-weight:700}.ds-day-dot{color:#94a3b8;font-size:.82rem;font-weight:800;line-height:1}.ds-day-done{background:linear-gradient(160deg,#2563eb24,#38bdf81a);border-color:#2563eb66}.ds-day-done .ds-day-dot{color:#2563eb}.ds-day-done .ds-day-lbl{color:#1e40af}.ds-day-freeze{background:#e0f2fe;border-color:#0ea5e973}.ds-day-today{background:#fff;border:2px solid #2563eb;box-shadow:0 0 0 3px #2563eb24}.ds-day-today .ds-day-dot{color:#2563eb}.ds-day-today .ds-day-lbl{color:#1e40af}.ds-day-missed,.ds-day-future{opacity:.55}.ds-screen-actions{flex-direction:column;gap:10px;width:100%;display:flex}.ds-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:16px;font-family:inherit;font-weight:700;transition:transform .15s,box-shadow .15s,background .2s}.ds-btn:active{transform:scale(.97)}.ds-btn-lg{width:100%;min-height:52px;font-size:.98rem}.ds-btn-primary{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 10px 22px -8px #2563eb8c}.ds-btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af)}.ds-btn-ghost{color:#2563eb;background:0 0;border:1.5px solid #2563eb59;min-height:46px;font-size:.92rem}.ds-btn-ghost:hover{background:#2563eb0f}.ds-perm-icon{background:linear-gradient(160deg,#2563eb1a,#38bdf814);border:1px solid #2563eb40;border-radius:22px;justify-content:center;align-items:center;width:68px;height:68px;margin:2px 0 14px;font-size:2rem;animation:2.6s ease-in-out infinite dsBellRing;display:flex}@keyframes dsBellRing{0%,82%,to{transform:rotate(0)}85%{transform:rotate(9deg)}89%{transform:rotate(-8deg)}93%{transform:rotate(5deg)}97%{transform:rotate(-3deg)}}.ds-freeze-chip{color:#0369a1;background:#e0f2fe;border:1px solid #0ea5e959;border-radius:999px;align-items:center;gap:6px;margin:-6px 0 12px;padding:5px 12px;font-size:.76rem;font-weight:700;display:inline-flex}.ds-freeze-toast{left:50%;bottom:max(18px, env(safe-area-inset-bottom));z-index:1080;box-sizing:border-box;background:#fff;border:1px solid #0ea5e973;border-radius:16px;align-items:center;gap:9px;max-width:calc(100vw - 32px);padding:11px 16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 30px -10px #0284c759,0 0 0 4px #38bdf81f}.ds-freeze-ico{font-size:1.25rem;line-height:1}.ds-freeze-txt{color:#334155;font-size:.84rem;line-height:1.35}.ds-freeze-txt b{color:#0369a1}.ds-freeze-n{color:#0369a1;font-weight:700}.ds-celeb-overlay{background:radial-gradient(620px 380px at 50% -10%,#2563eb33,#0000 70%),radial-gradient(460px 280px at 50% 112%,#38bdf829,#0000 70%),#f6f9fef7}.ds-celeb-card{border-color:#2563eb66;padding:32px 22px;box-shadow:0 26px 56px -14px #1e40af4d,0 0 0 6px #2563eb12}.ds-celeb-halo{pointer-events:none;background:radial-gradient(circle,#2563eb33,#0000 68%);border-radius:50%;width:240px;height:240px;animation:2.4s ease-in-out infinite dsGlowPulse;position:absolute;top:-46px;left:50%;transform:translate(-50%)}.ds-celeb-sub{color:#334155;z-index:1;margin:0 0 16px;font-size:clamp(.88rem,3.7vw,.96rem);line-height:1.5;position:relative}.ds-celeb-sub b{color:#f59e0b}.ds-celeb-auto-note{color:#94a3b8;margin-top:2px;font-size:.76rem;font-weight:600}.ds-particle{opacity:0;pointer-events:none;background:radial-gradient(circle,#38bdf8,#2563eb);border-radius:50%;width:7px;height:7px;animation:2.2s ease-in-out infinite dsParticleFloat;position:absolute;top:22%}.ds-particle.ds-p0{animation-delay:0s;left:14%}.ds-particle.ds-p1{animation-delay:.35s;left:26%}.ds-particle.ds-p2{animation-delay:.7s;left:40%}.ds-particle.ds-p3{animation-delay:.2s;left:62%}.ds-particle.ds-p4{animation-delay:.55s;left:76%}.ds-particle.ds-p5{animation-delay:.9s;left:87%}.ds-particle.ds-p6{animation-delay:1.15s;left:20%}.ds-particle.ds-p7{animation-delay:1.4s;left:70%}@keyframes dsParticleFloat{0%{opacity:0;transform:translateY(12px)scale(.5)}35%{opacity:.85}to{opacity:0;transform:translateY(-38px)scale(1)}}.ds-anim-in{animation:.34s cubic-bezier(.16,1,.3,1) forwards dsSlideUp}.ds-anim-out{animation:.26s forwards dsSlideDown}@keyframes dsSlideUp{0%{opacity:0;transform:translateY(22px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dsSlideDown{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(16px)scale(.97)}}@media (width<=359px){.ds-screen-card{border-radius:24px;padding:24px 14px}.ds-week-day{border-radius:11px;padding:7px 0}.ds-mascot-box{width:104px;height:104px}.ds-streak-number{font-size:2.3rem}}@media (width>=400px) and (width<=768px){.ds-screen-card{padding:34px 26px}}@media (prefers-reduced-motion:reduce){.ds-anim-in,.ds-anim-out,.ds-blue-flame,.ds-fire-glow,.ds-fire-outer,.ds-fire-inner,.ds-perm-icon,.ds-celeb-halo,.ds-particle,.ds-freeze-toast{transition:none!important;animation:none!important}}@media (width>=769px){.ds-screen-overlay,.ds-freeze-toast{visibility:hidden!important;opacity:0!important;pointer-events:none!important;display:none!important}}.auth-screen{--ab-0:#050816;--ab-1:#07111f;--ab-2:#08182a;--ab-acc:#2563eb;--ab-acc2:#4f46e5;--ab-acc3:#38bdf8;--ab-card:#07111fad;--ab-card-brd:#5a8cdc29;--ab-input:#060b16;--ab-input-brd:#608cc833;--ab-text:#f4f8ff;--ab-muted:#8ca3c3;--ab-label:#a9c0e2;--ab-chip-bg:#0d1c348c;--ab-chip-brd:#6096eb40;--ab-chip-text:#9db8df;--ab-grid:#3882f60f;--ab-halo:#2563eb52;--ab-part:#38bdf8;--ab-tabbg:#040a1699;--ab-shadow:0 32px 90px #010512a6;color:var(--ab-text);background:var(--ab-1);justify-content:center;align-items:center;min-height:100svh;display:flex;position:relative;overflow-x:hidden}[data-theme=light] .auth-screen{--ab-card:#ffffffc7;--ab-card-brd:#dce7f5;--ab-input:#f7faff;--ab-input-brd:#d7e3f4;--ab-text:#0b1b33;--ab-muted:#5a6b85;--ab-label:#33486b;--ab-chip-bg:#ffffffa8;--ab-chip-brd:#2563eb24;--ab-chip-text:#3b5a86;--ab-grid:#2563eb0d;--ab-halo:#6096ff47;--ab-part:#7fb2ff;--ab-tabbg:#eef4fd;--ab-shadow:0 32px 80px #1f3f8729}.auth-screen:before,.auth-screen:after{content:"";z-index:0;pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.auth-screen:before{background:radial-gradient(1100px 700px at 85% 110%, #2563eb29, transparent 60%), radial-gradient(900px 600px at 10% -10%, #4f46e52e, transparent 55%), linear-gradient(135deg, var(--ab-0) 0%, var(--ab-1) 45%, var(--ab-2) 100%);opacity:1}.auth-screen:after{opacity:0;background:radial-gradient(1000px 640px at 88% 108%,#2563eb1a,#0000 60%),radial-gradient(820px 560px at 8% -12%,#4f46e514,#0000 55%),linear-gradient(135deg,#fff 0%,#f7faff 48%,#eef5ff 100%)}[data-theme=light] .auth-screen:before{opacity:0}[data-theme=light] .auth-screen:after{opacity:1}.auth-screen .auth-bg{z-index:0;pointer-events:none;animation:1.4s backwards authBgFade;position:absolute;inset:0;overflow:hidden}@keyframes authBgFade{0%{opacity:0}to{opacity:1}}.auth-screen .orb{pointer-events:none;filter:blur(90px);opacity:.16;border-radius:50%;transition:opacity .5s;animation:14s ease-in-out infinite authOrbFloat;position:absolute}.auth-screen .orb-1{background:#4f46e5;width:520px;height:520px;top:-160px;left:-140px}.auth-screen .orb-2{background:#2563eb;width:420px;height:420px;animation-delay:-4s;bottom:-120px;right:-100px}.auth-screen .orb-3{opacity:.1;background:#38bdf8;width:300px;height:300px;animation-delay:-8s;top:38%;left:55%}[data-theme=light] .auth-screen .orb{opacity:.15;filter:blur(80px)}[data-theme=light] .auth-screen .orb-3{opacity:.08}@keyframes authOrbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-18px)scale(1.05)}66%{transform:translate(-18px,22px)scale(.96)}}.auth-screen .auth-grid{z-index:1;pointer-events:none;background-image:linear-gradient(var(--ab-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ab-grid) 1px, transparent 1px);background-size:56px 56px;transition:opacity .5s;position:absolute;inset:-2px;-webkit-mask-image:radial-gradient(95% 85% at 50% 45%,#000 25%,#0000 78%);mask-image:radial-gradient(95% 85% at 50% 45%,#000 25%,#0000 78%)}.auth-screen .auth-particles{z-index:2;pointer-events:none;color:var(--ab-part);transition:color .5s;position:absolute;inset:0}.auth-screen .auth-particles:before,.auth-screen .auth-particles:after{content:"";opacity:.55;background:currentColor;border-radius:50%;width:3px;height:3px;animation:22s linear infinite authParticleDrift;position:absolute;top:0;left:0;box-shadow:8vw 14vh,21vw 76vh 0 -1px,33vw 32vh,47vw 9vh 0 -1px,57vw 58vh,71vw 24vh 0 -1px,83vw 66vh,93vw 40vh 0 -1px,12vw 52vh,65vw 88vh 0 -1px,38vw 92vh,88vw 12vh 0 -1px}.auth-screen .auth-particles--b:before{opacity:.4;width:2px;height:2px;animation:30s linear infinite reverse authParticleDrift;box-shadow:15vw 24vh,28vw 66vh 0 -1px,42vw 18vh,52vw 82vh 0 -1px,63vw 44vh,76vw 74vh 0 -1px,91vw 88vh,6vw 88vh 0 -1px,97vw 60vh,35vw 6vh 0 -1px}[data-theme=light] .auth-screen .auth-particles{opacity:.5}@keyframes authParticleDrift{0%{transform:translate(0,0)}to{transform:translate(-10px,-36px)}}.auth-screen .auth-wave{z-index:1;pointer-events:none;opacity:.6;transition:opacity .5s;animation:16s ease-in-out infinite alternate authWaveDrift;position:absolute;overflow:visible}.auth-screen .auth-wave--l{color:#38bdf8;width:min(46vw,660px);top:-120px;left:-140px}.auth-screen .auth-wave--r{color:#2563eb;width:min(52vw,760px);animation-duration:20s;animation-delay:-6s;bottom:-140px;right:-140px}[data-theme=light] .auth-screen .auth-wave--l{opacity:.32}[data-theme=light] .auth-screen .auth-wave--r{opacity:.26}@keyframes authWaveDrift{0%{transform:translate(0,0)}to{transform:translate(26px,14px)}}.auth-screen .auth-robot{z-index:3;pointer-events:none;will-change:transform;width:min(30vw,480px);min-width:320px;height:74%;max-height:780px;transition:opacity .6s;animation:1.1s cubic-bezier(.16,1,.3,1) .15s backwards authRobotIn;position:absolute;bottom:0;left:2vw}@keyframes authRobotIn{0%{opacity:0;transform:scale(.92)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.auth-screen.auth-robot-peek .auth-robot-peeker{will-change:transform;animation:13s ease-in-out 1.6s infinite authRobotPeek}@keyframes authRobotPeek{0%,58%{transform:translate(0)translateY(0)}63%,78%{transform:translate(44px)translateY(-14px)}82%,to{transform:translate(0)translateY(0)}}.auth-screen .auth-robot-halo{aspect-ratio:1;background:radial-gradient(circle, var(--ab-halo) 0%, transparent 66%);filter:blur(30px);border-radius:50%;width:92%;transition:background .5s;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.auth-screen .auth-robot-inner{animation:6.5s ease-in-out infinite authRobotFloat;position:absolute;inset:0}@keyframes authRobotFloat{0%,to{transform:translate(0,0)}50%{transform:translateY(-16px)}}.auth-screen .auth-robot-img{object-fit:contain;object-position:center bottom;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;filter:brightness(.82)saturate(1.05)drop-shadow(0 30px 60px #02081a99);width:100%;height:100%;transition:filter .5s;position:absolute;inset:0}[data-theme=light] .auth-screen .auth-robot{--ab-halo:#6096ff4d}[data-theme=light] .auth-screen .auth-robot-img{filter:brightness(1.03)contrast(1.02)drop-shadow(0 26px 48px #2b5cb059)}.auth-screen .auth-robot-sweep{pointer-events:none;background:linear-gradient(115deg,#0000 40%,#a0d2ff24 50%,#0000 60%);animation:7s ease-in-out infinite authRobotSweep;position:absolute;inset:6% 18% 10%;transform:translate(-120%)}@keyframes authRobotSweep{0%,55%{transform:translate(-120%)}75%,to{transform:translate(120%)}}.auth-screen .auth-robot-glow{filter:blur(12px);background:radial-gradient(#388cff66,#0000 70%);border-radius:50%;width:58%;height:34px;transition:background .5s;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}[data-theme=light] .auth-screen .auth-robot-glow{background:radial-gradient(#4682eb4d,#0000 70%)}.auth-screen .auth-robot-broken{display:none}.auth-screen .auth-chips{z-index:4;pointer-events:none;will-change:transform;position:absolute;inset:0}.auth-screen .tech-chip{pointer-events:none;background:var(--ab-chip-bg);border:1px solid var(--ab-chip-brd);-webkit-backdrop-filter:blur(8px);color:var(--ab-chip-text);letter-spacing:.04em;white-space:nowrap;border-radius:14px;padding:9px 16px;font-size:14px;font-weight:700;transition:background .5s,border-color .5s,color .5s,box-shadow .5s;animation:8s ease-in-out infinite authChipFloat;position:absolute;box-shadow:0 14px 34px #02081a59}[data-theme=light] .auth-screen .tech-chip{box-shadow:0 12px 28px #2e5aaf1f}.auth-screen .tech-chip i{align-items:center;gap:6px;font-style:normal;display:inline-flex}.auth-screen .tech-chip.tc-1 i,.auth-screen .tech-chip.tc-2 i,.auth-screen .tech-chip.tc-3 i{color:var(--ab-acc3);font-family:Cascadia Code,Fira Code,Consolas,monospace;font-weight:600}[data-theme=light] .auth-screen .tech-chip.tc-1 i,[data-theme=light] .auth-screen .tech-chip.tc-2 i,[data-theme=light] .auth-screen .tech-chip.tc-3 i{color:#2563eb}.auth-screen .tc-1{animation-duration:7.5s;top:17%;left:6.5%}.auth-screen .tc-2{animation-duration:9s;animation-delay:-2s;top:37%;left:15%}.auth-screen .tc-3{animation-duration:8.5s;animation-delay:-4s;top:68%;left:5.5%}.auth-screen .tc-4{font-size:15px;animation-duration:10s;animation-delay:-1s;top:27%;left:22%}.auth-screen .tc-5{animation-duration:9.5s;animation-delay:-3.5s;top:55%;left:19%}.auth-screen .tc-6{animation-duration:8s;animation-delay:-2.5s;top:22%;right:9%}.auth-screen .tc-7{animation-duration:10.5s;animation-delay:-5s;top:47%;right:4.5%}.auth-screen .tc-8{animation-duration:9s;animation-delay:-1.5s;top:71%;right:11%}.auth-screen .tc-9{font-size:15px;animation-duration:8.8s;animation-delay:-3s;top:9%;right:22%}@keyframes authChipFloat{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translateY(-12px)rotate(-1.4deg)}}.auth-screen .auth-codehint{pointer-events:none;border:1px solid var(--ab-chip-brd);background:var(--ab-chip-bg);-webkit-backdrop-filter:blur(8px);color:var(--ab-chip-text);white-space:pre;opacity:.85;border-radius:12px;margin:0;padding:12px 16px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px;line-height:1.7;transition:background .5s,border-color .5s,color .5s;animation:11s ease-in-out -4s infinite authChipFloat;position:absolute;top:24%;right:16.5%}.auth-screen .auth-tagline{z-index:4;pointer-events:none;letter-spacing:.01em;color:var(--ab-muted);margin:0;font-size:19px;font-weight:600;line-height:1.55;transition:color .5s;animation:9s ease-in-out -2s infinite authChipFloat;position:absolute;bottom:9%;left:4.5vw}.auth-screen .auth-container{z-index:10;scrollbar-width:none;width:100%;max-width:480px;max-height:100svh;padding:24px 20px 40px;position:relative;overflow-y:auto}.auth-screen .auth-container::-webkit-scrollbar{display:none}.auth-screen .auth-brand{text-align:center;margin-bottom:26px;animation:.8s cubic-bezier(.16,1,.3,1) .1s backwards authFadeUp}.auth-screen .auth-logo{background:linear-gradient(135deg,#2563eb 0%,#4f46e5 55%,#38bdf8 130%);border-radius:22px;justify-content:center;align-items:center;width:76px;height:76px;margin:0 auto 18px;font-size:38px;animation:5s ease-in-out infinite authLogoFloat;display:flex;position:relative;box-shadow:0 18px 50px #2563eb6b,inset 0 1px #ffffff59}[data-theme=light] .auth-screen .auth-logo{box-shadow:0 18px 44px #2563eb4d,inset 0 1px #ffffff80}@keyframes authLogoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-screen .auth-brand h1{letter-spacing:-.6px;color:#fff;font-size:36px;font-weight:800}[data-theme=light] .auth-screen .auth-brand h1{color:#0b1b33}.auth-screen .auth-brand h1 span{background:linear-gradient(90deg,#6d8cff,#38bdf8);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=light] .auth-screen .auth-brand h1 span{background:linear-gradient(90deg,#2563eb,#4f46e5);-webkit-background-clip:text;background-clip:text}.auth-screen .auth-brand p{color:var(--ab-muted);margin-top:9px;font-size:14.5px;transition:color .5s}.auth-screen .auth-card{background:var(--ab-card);border:1px solid var(--ab-card-brd);width:100%;box-shadow:var(--ab-shadow);-webkit-backdrop-filter:blur(22px)saturate(160%);will-change:transform;border-radius:28px;padding:30px 28px 28px;transition:background .5s,border-color .5s,box-shadow .5s;animation:.9s cubic-bezier(.16,1,.3,1) .25s backwards authFadeUp;position:relative;overflow:hidden}[data-theme=light] .auth-screen .auth-card{background:#ffffffd1;box-shadow:0 30px 80px #1f3f8724,0 4px 18px #1f3f870f,inset 0 1px #ffffffe6}@keyframes authFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.auth-screen .auth-card-topline{pointer-events:none;background:linear-gradient(90deg,#0000,#63a0ff8c,#0000);height:1.5px;position:absolute;top:0;left:8%;right:8%}.auth-screen .auth-card:before{content:"";pointer-events:none;background:linear-gradient(#78aaff0f,#0000);height:45%;position:absolute;inset:0 0 auto}[data-theme=light] .auth-screen .auth-card:before{background:linear-gradient(#2563eb09,#0000)}.auth-screen .auth-tabs{background:var(--ab-tabbg);border:1px solid var(--ab-card-brd);border-radius:16px;gap:4px;margin-bottom:24px;padding:5px;transition:background .5s,border-color .5s;display:flex;position:relative}.auth-screen .auth-tab{min-height:44px;color:var(--ab-muted);border-radius:12px;flex:1;padding:10px;font-size:15px;font-weight:600;transition:color .3s,background .3s,box-shadow .3s}.auth-screen .auth-tab:hover:not(.active){color:var(--ab-text)}.auth-screen .auth-tab.active{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);box-shadow:0 6px 20px #2563eb6b}.auth-screen .auth-form{display:none}.auth-screen .auth-form.active{display:block}.auth-screen .form-group{margin-bottom:16px}.auth-screen .form-row{gap:12px;display:flex}.auth-screen .form-row .form-group{flex:1;min-width:0}.auth-screen .form-group label{color:var(--ab-label);margin-bottom:7px;font-size:13px;font-weight:600;transition:color .5s;display:block}.auth-screen .input-shell{position:relative}.auth-screen .form-group input{background:var(--ab-input);border:1px solid var(--ab-input-brd);width:100%;min-height:50px;color:var(--ab-text);transition:border var(--transition,.2s ease), box-shadow .25s ease, background .5s ease, color .5s ease;border-radius:14px;padding:13px 16px;font-size:15px}.auth-screen .input-shell .input-ico{width:20px;height:20px;color:var(--ab-muted);opacity:.7;pointer-events:none;transition:color .3s;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.auth-screen .input-shell .input-ico svg{width:100%;height:100%;display:block}.auth-screen .input-shell input{padding-right:46px}.auth-screen .form-group input:focus{border-color:#3882f6a6;outline:none;box-shadow:0 0 0 4px #2563eb29}.auth-screen .input-shell:focus-within .input-ico{color:var(--ab-acc3);opacity:1}.auth-screen .form-group input::placeholder{color:var(--ab-muted);opacity:.55}.auth-screen .pwd-wrap{position:relative}.auth-screen .pwd-wrap input{padding-right:52px}.auth-screen .pwd-toggle{width:40px;height:40px;color:var(--ab-muted);opacity:.85;transition:opacity var(--transition,.2s ease), color .2s ease, background .2s ease;border-radius:10px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.auth-screen .pwd-toggle svg{width:21px;height:21px;display:block}.auth-screen .pwd-toggle:hover{opacity:1;color:var(--ab-acc3);background:#3882f61a}.auth-screen .pwd-toggle:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}.auth-screen .auth-submit{letter-spacing:.01em;color:#fff;background:linear-gradient(135deg,#2563eb 0%,#4f46e5 100%);border-radius:16px;width:100%;min-height:52px;margin-top:4px;font-size:16px;font-weight:700;transition:transform .25s,box-shadow .25s,background .3s;box-shadow:0 14px 34px #2563eb66,inset 0 1px #ffffff38}.auth-screen .auth-submit:hover{transform:translateY(-2px);box-shadow:0 18px 42px #2563eb80,inset 0 1px #ffffff38}.auth-screen .auth-submit:active{transform:scale(.98)}.auth-screen .auth-submit:focus-visible{outline-offset:3px;outline:2px solid #7dd3fc}.auth-screen .btn-arrow{transition:transform .25s;display:inline-block}.auth-screen .auth-submit:hover .btn-arrow{transform:translate(4px)}.auth-screen .auth-theme-toggle{z-index:20;background:var(--ab-chip-bg);border:1px solid var(--ab-chip-brd);-webkit-backdrop-filter:blur(10px);width:44px;height:44px;color:var(--ab-text);border-radius:14px;justify-content:center;align-items:center;font-size:18px;transition:background .5s,border-color .5s,transform .25s,box-shadow .25s;display:inline-flex;position:absolute;top:18px;right:18px;box-shadow:0 8px 24px #02081a59}.auth-screen .auth-theme-toggle:hover{border-color:#63a0ff80;transform:translateY(-2px)}.auth-screen .auth-theme-toggle:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}.auth-screen .auth-theme-toggle .theme-icon-light,[data-theme=light] .auth-screen .auth-theme-toggle .theme-icon-dark{display:none}[data-theme=light] .auth-screen .auth-theme-toggle .theme-icon-light{display:inline}@media (width<=767px){.auth-screen{align-items:flex-start}.auth-screen .auth-container{max-width:500px;padding:20px 16px 32px}.auth-screen .auth-robot{opacity:.42;width:min(88vw,340px);min-width:0;height:250px;max-height:none;animation:none;inset:auto auto 0 50%;transform:translate(-50%)}.auth-screen .auth-robot-peek .auth-robot-peeker{animation:none}.auth-screen .auth-tagline,.auth-screen .tc-2,.auth-screen .tc-5,.auth-screen .tc-7{display:none}.auth-screen .tech-chip{opacity:.55;border-radius:11px;padding:6px 11px;font-size:11.5px}.auth-screen .tc-1{top:12%;left:5%}.auth-screen .tc-3{top:46%;left:3.5%}.auth-screen .tc-4{top:24%;left:4%}.auth-screen .tc-6{top:15%;right:5%}.auth-screen .tc-8{top:52%;right:4%}.auth-screen .tc-9{top:5.5%;right:6%}.auth-screen .auth-codehint{display:none}.auth-screen .auth-brand{margin-bottom:18px}.auth-screen .auth-logo{border-radius:18px;width:62px;height:62px;margin-bottom:13px;font-size:31px}.auth-screen .auth-brand h1{font-size:28px}.auth-screen .auth-brand p{margin-top:6px;font-size:13.5px}.auth-screen .auth-card{border-radius:24px;padding:22px 20px}.auth-screen .auth-tab{min-height:44px;font-size:14.5px}.auth-screen .form-group input{min-height:48px;font-size:15px}.auth-screen .auth-submit{min-height:50px;font-size:15.5px}.auth-screen .auth-theme-toggle{width:42px;height:42px;top:12px;right:12px}@media (width<=360px){.auth-screen .auth-robot{opacity:.35;width:96vw;height:215px}.auth-screen .auth-brand h1{font-size:25px}.auth-screen .auth-card{border-radius:22px;padding:20px 16px}.auth-screen .tech-chip.tc-4{display:none}}}@media (width<=767px) and (height<=620px){.auth-screen .auth-robot{opacity:.3;height:170px}.auth-screen .auth-brand{margin-bottom:12px}.auth-screen .auth-logo{width:50px;height:50px;margin-bottom:9px;font-size:25px}}@media (width>=768px){.auth-screen .auth-robot{width:min(38vw,470px);min-width:300px;height:70%;bottom:2vh;left:3vw}.auth-screen .auth-tagline{font-size:21px;bottom:10%;left:5vw}}@media (width>=1024px){.auth-screen .auth-container{max-width:500px;padding:32px 24px 48px}.auth-screen .auth-brand{margin-bottom:30px}.auth-screen .auth-brand h1{font-size:40px}.auth-screen .auth-robot{width:min(34vw,520px);min-width:360px;height:76%;max-height:820px;bottom:0;left:3.5vw}}@media (width>=1440px){.auth-screen .auth-container{max-width:500px}.auth-screen .auth-card{padding:32px 30px 30px}.auth-screen .auth-brand h1{font-size:42px}.auth-screen .auth-logo{width:82px;height:82px;font-size:41px}.auth-screen .auth-robot{width:min(30vw,540px);left:6vw}}@media (width>=1800px){.auth-screen .auth-robot{height:78%;left:9vw}.auth-screen .auth-tagline{font-size:23px;bottom:11%;left:7vw}}@media (width>=768px) and (width<=1023px){.auth-screen .auth-tagline{display:none}.auth-screen .auth-robot{opacity:.75}}.auth-screen .auth-tab:focus-visible,.auth-screen .auth-theme-toggle:focus-visible,.auth-screen .auth-submit:focus-visible,.auth-screen .pwd-toggle:focus-visible,.auth-screen .form-group input:focus-visible{outline:2px solid var(--ab-acc3);outline-offset:2px}@media (prefers-reduced-motion:reduce){.auth-screen .auth-bg,.auth-screen .orb,.auth-screen .auth-grid,.auth-screen .auth-particles:before,.auth-screen .auth-particles:after,.auth-screen .auth-wave,.auth-screen .auth-robot,.auth-screen .auth-robot-peek .auth-robot-peeker,.auth-screen .auth-robot-inner,.auth-screen .auth-robot-sweep,.auth-screen .auth-chips,.auth-screen .tech-chip,.auth-screen .auth-codehint,.auth-screen .auth-tagline,.auth-screen .auth-brand,.auth-screen .auth-card,.auth-screen .auth-logo{transition:none!important;animation:none!important}.auth-screen .auth-robot{opacity:.9}}@media print{.auth-screen .auth-bg,.auth-screen .auth-robot,.auth-screen .auth-chips,.auth-screen .auth-tagline,.auth-screen .auth-theme-toggle{display:none!important}}:root{--itt-primary:#2563eb;--itt-primary-hover:#3b82f6;--itt-primary-dark:#1d4ed8;--itt-primary-bright:#60a5fa;--itt-cyan:#38bdf8;--itt-primary-soft:#2563eb24;--itt-primary-soft-2:#2563eb14;--itt-bg:#050816;--itt-bg-alt:#08111f;--itt-surface:#0f172a;--itt-surface-2:#111c31;--itt-surface-3:#16233d;--itt-input-bg:#0b1628;--itt-sidebar-bg:#08111ff0;--itt-topbar-bg:#08111fe0;--itt-text:#f8fafc;--itt-muted:#94a3b8;--itt-faint:#64748b;--itt-border:#23314b;--itt-border-soft:#1b2740;--itt-border-strong:#2e4066;--itt-border-focus:#3b82f673;--itt-success:#22c55e;--itt-success-soft:#22c55e24;--itt-danger:#ef4444;--itt-danger-soft:#ef444424;--itt-warning:#f59e0b;--itt-warning-soft:#f59e0b24;--itt-streak:#38bdf8;--itt-streak-hot:#f97316;--itt-streak-soft:#38bdf829;--itt-freeze:#7dd3fc;--itt-freeze-soft:#7dd3fc29;--itt-xp:#facc15;--itt-xp-soft:#facc1524;--itt-purple:#8b5cf6;--itt-purple-soft:#8b5cf61f;--itt-shadow-xs:0 1px 3px #02061759;--itt-shadow-sm:0 4px 16px #02061747;--itt-shadow-md:0 8px 30px #0206176b;--itt-shadow-lg:0 20px 50px #0206178c;--itt-shadow-primary:0 6px 20px #2563eb52;--itt-shadow-primary-hover:0 10px 28px #2563eb6b;--itt-radius-xs:8px;--itt-radius-sm:12px;--itt-radius-md:14px;--itt-radius-lg:16px;--itt-radius-xl:20px;--itt-radius-2xl:24px;--itt-radius-hero:32px;--itt-radius-pill:999px;--itt-sp-1:4px;--itt-sp-2:8px;--itt-sp-3:12px;--itt-sp-4:16px;--itt-sp-5:20px;--itt-sp-6:24px;--itt-sp-8:32px;--itt-sp-10:40px;--itt-sp-12:48px;--itt-dur-fast:.18s;--itt-dur:.3s;--itt-dur-slow:.5s;--itt-ease:cubic-bezier(.4, 0, .2, 1);--itt-ease-spring:cubic-bezier(.16, 1, .3, 1);--itt-h1:clamp(26px, 2.6vw, 38px);--itt-h2:clamp(20px, 2vw, 27px);--itt-h3:clamp(17px, 1.6vw, 21px);--itt-body:15px;--itt-small:13px;--bg:#08111f;--bg-alt:#0b1628;--card:#0f172a;--card-hover:#111c31;--border:#23314b;--border-focus:#3b82f673;--primary:#2563eb;--primary-hover:#3b82f6;--primary-dark:#1d4ed8;--primary-soft:#2563eb24;--secondary:#38bdf8;--secondary-hover:#7dd3fc;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--text:#f8fafc;--muted:#94a3b8;--sidebar:#08111ff0;--shadow:0 8px 30px #0206176b;--shadow-soft:0 4px 16px #02061747;--glow:0 8px 30px #2563eb2e;--glow-cyan:0 8px 30px #38bdf829;--radius:16px;--radius-sm:12px;--transition:.25s ease;--glass:blur(12px) saturate(150%)}[data-theme=light]{--itt-primary:#2563eb;--itt-primary-hover:#1d4ed8;--itt-primary-dark:#1e40af;--itt-primary-bright:#3b82f6;--itt-cyan:#0ea5e9;--itt-primary-soft:#2563eb17;--itt-primary-soft-2:#2563eb0d;--itt-bg:#f8fafc;--itt-bg-alt:#f4f8ff;--itt-surface:#fff;--itt-surface-2:#f1f6ff;--itt-surface-3:#e8f0fc;--itt-input-bg:#fff;--itt-sidebar-bg:#fffffff0;--itt-topbar-bg:#ffffffe0;--itt-text:#0f172a;--itt-muted:#64748b;--itt-faint:#94a3b8;--itt-border:#dce8f7;--itt-border-soft:#e2e8f0;--itt-border-strong:#b9cced;--itt-border-focus:#2563eb59;--itt-success:#16a34a;--itt-success-soft:#16a34a1a;--itt-danger:#dc2626;--itt-danger-soft:#dc262614;--itt-warning:#d97706;--itt-warning-soft:#d977061a;--itt-streak:#0ea5e9;--itt-streak-hot:#ea580c;--itt-streak-soft:#0ea5e91f;--itt-freeze:#38bdf8;--itt-freeze-soft:#38bdf824;--itt-xp:#ca8a04;--itt-xp-soft:#ca8a041f;--itt-purple:#7c3aed;--itt-purple-soft:#7c3aed14;--itt-shadow-xs:0 1px 3px #0f172a0f;--itt-shadow-sm:0 4px 16px #0f172a0d;--itt-shadow-md:0 8px 30px #0f172a14;--itt-shadow-lg:0 20px 50px #0f172a1f;--itt-shadow-primary:0 6px 20px #2563eb38;--itt-shadow-primary-hover:0 10px 28px #2563eb4d;--bg:#f8fafc;--bg-alt:#f4f8ff;--card:#fff;--card-hover:#f1f6ff;--border:#dce8f7;--border-focus:#2563eb59;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-dark:#1e40af;--primary-soft:#2563eb17;--secondary:#0ea5e9;--secondary-hover:#38bdf8;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--text:#0f172a;--muted:#64748b;--sidebar:#fffffff0;--shadow:0 8px 30px #0f172a14;--shadow-soft:0 4px 16px #0f172a0d;--glow:0 8px 30px #2563eb1a;--glow-cyan:0 8px 30px #0ea5e91a}:root{--m-accent:#2563eb;--m-accent-2:#38bdf8;--m-glass:#08111feb;--m-glass-2:#0f172ad9;--m-border:#2563eb3d}[data-theme=light]{--m-accent:#2563eb;--m-accent-2:#0ea5e9;--m-glass:#fffffff0;--m-glass-2:#f1f6ffe6;--m-border:#2563eb2e}body{letter-spacing:.01em;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700;line-height:1.2}::selection{color:#fff;background:#2563eb59}.btn{border-radius:var(--itt-radius-md);letter-spacing:.01em;min-height:46px;transition:background var(--itt-dur) var(--itt-ease), color var(--itt-dur) var(--itt-ease), border-color var(--itt-dur) var(--itt-ease), box-shadow var(--itt-dur) var(--itt-ease), transform var(--itt-dur-fast) var(--itt-ease);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:active{transition:transform .1s!important;transform:scale(.97)!important}.btn:focus-visible{outline:2px solid var(--itt-primary-bright);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--itt-primary);color:#fff;box-shadow:var(--itt-shadow-primary)}.btn-primary:hover{background:var(--itt-primary-hover);box-shadow:var(--itt-shadow-primary-hover);transform:translateY(-1px)}.btn-ghost{background:var(--itt-surface);border:1px solid var(--itt-border-strong);color:var(--itt-primary);font-weight:600}.btn-ghost:hover{background:var(--itt-surface-2);border-color:var(--itt-primary);color:var(--itt-primary-hover);box-shadow:var(--itt-shadow-sm);transform:translateY(-1px)}.btn-danger{background:var(--itt-danger);color:#fff;box-shadow:0 6px 20px #ef444447}.btn-danger:hover{background:#f87171;transform:translateY(-1px);box-shadow:0 10px 28px #ef444461}.btn-lg{border-radius:var(--itt-radius-lg);min-height:52px;padding:14px 30px;font-size:16px}.btn-sm{border-radius:var(--itt-radius-xs);min-height:36px;padding:7px 14px;font-size:13px}.btn-buy{background:var(--itt-primary);color:#fff;border-radius:var(--itt-radius-md);box-shadow:var(--itt-shadow-primary);font-weight:600}.btn-buy:hover:not(:disabled){background:var(--itt-primary-hover);box-shadow:var(--itt-shadow-primary-hover);transform:translateY(-1px)}.btn-buy.owned{background:var(--itt-success);box-shadow:0 6px 20px #22c55e40}.btn-equip{background:var(--itt-primary);color:#fff;border-radius:var(--itt-radius-pill);font-weight:600}.btn-equip.equipped{background:var(--itt-success)}.btn-unequip{background:var(--itt-surface-2);border:1px solid var(--itt-border);color:var(--itt-muted);border-radius:var(--itt-radius-pill)}.btn-unequip:hover{border-color:var(--itt-danger);color:var(--itt-danger)}.btn-success{border-radius:var(--itt-radius-md);background:var(--itt-success)!important;color:#fff!important}.btn-success:hover:not(:disabled){filter:brightness(1.08);background:var(--itt-success)!important}.link-btn{color:var(--itt-primary);font-weight:600}@media (width<=768px){.btn{min-height:50px;padding:13px 22px}.btn-sm{min-height:40px}}.form-group input,.form-group select,.form-group textarea{background:var(--itt-input-bg);border:1px solid var(--itt-border);border-radius:var(--itt-radius-md);min-height:50px;color:var(--itt-text);transition:border-color var(--itt-dur) var(--itt-ease), box-shadow var(--itt-dur) var(--itt-ease), background var(--itt-dur) var(--itt-ease);padding:12px 16px;font-size:15px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--itt-primary);box-shadow:0 0 0 4px var(--itt-primary-soft);background:var(--itt-surface);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--itt-faint)}.form-group.error input,.form-group input.input-error,.form-group input.is-invalid{border-color:var(--itt-danger);box-shadow:0 0 0 4px var(--itt-danger-soft)}.form-group input.input-success,.form-group input.is-valid{border-color:var(--itt-success);box-shadow:0 0 0 4px var(--itt-success-soft)}a:focus-visible,.nav-item:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--itt-primary-bright);outline-offset:2px}.card{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-xl);box-shadow:var(--itt-shadow-sm);transition:border-color var(--itt-dur) var(--itt-ease), box-shadow var(--itt-dur) var(--itt-ease), transform var(--itt-dur) var(--itt-ease)}.card:hover{box-shadow:var(--itt-shadow-md);border-color:#2563eb59;transform:translateY(-2px)}.card-header{border-bottom:1px solid var(--itt-border-soft)}.card-header h3{font-size:16px;font-weight:700}.modal-overlay{-webkit-backdrop-filter:blur(6px);background:#0306129e}[data-theme=light] .modal-overlay{background:#0f172a61}.modal{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-2xl);box-shadow:var(--itt-shadow-lg);animation:slideUp .35s var(--itt-ease-spring)}.modal-header{border-bottom:1px solid var(--itt-border-soft)}.modal-footer{border-top:1px solid var(--itt-border-soft)}.modal-close{border-radius:var(--itt-radius-xs)}.modal-close:hover{background:var(--itt-surface-2);transform:rotate(90deg)}.toast{background:var(--itt-surface);border:1px solid var(--itt-border);border-radius:var(--itt-radius-md);box-shadow:var(--itt-shadow-md);animation:toastIn .3s var(--itt-ease-spring);font-weight:500}.toast.success{border-left:4px solid var(--itt-success);background:linear-gradient(135deg, var(--itt-success-soft), var(--itt-surface));box-shadow:0 8px 24px #22c55e2e}.toast.error{border-left:4px solid var(--itt-danger);background:linear-gradient(135deg, var(--itt-danger-soft), var(--itt-surface));box-shadow:0 8px 24px #ef44442e}.toast.info{border-left:4px solid var(--itt-primary);background:linear-gradient(135deg, var(--itt-primary-soft), var(--itt-surface));box-shadow:var(--itt-shadow-md)}.toast.freeze{border-left:4px solid var(--itt-freeze);background:linear-gradient(135deg, var(--itt-freeze-soft), var(--itt-surface))}.toast.streak{border-left:4px solid var(--itt-streak);background:linear-gradient(135deg, var(--itt-streak-soft), var(--itt-surface))}.nav-item{border-radius:var(--itt-radius-sm);transition:background var(--itt-dur-fast) var(--itt-ease), color var(--itt-dur-fast) var(--itt-ease)}.nav-item:hover{background:var(--itt-primary-soft-2);color:var(--itt-text)}.nav-item.active{background:var(--itt-primary-soft);color:var(--itt-primary-bright);font-weight:600}[data-theme=light] .nav-item.active{color:var(--itt-primary)}.sidebar{background:var(--itt-sidebar-bg)}.empty-state{background:var(--itt-surface);border:1px dashed var(--itt-border-strong);border-radius:var(--itt-radius-xl);padding:var(--itt-sp-8) var(--itt-sp-5)}.empty-state-icon{opacity:.9}.empty-state h3{font-size:17px;font-weight:700}.skeleton{background:linear-gradient(90deg, var(--itt-surface-2) 25%, var(--itt-surface-3) 50%, var(--itt-surface-2) 75%);border-radius:var(--itt-radius-xs);background-size:200% 100%;animation:1.5s infinite skeleton-loading}@keyframes ittFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ittPulseSoft{0%,to{opacity:1}50%{opacity:.65}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.itt-container{max-width:1440px;padding:var(--itt-sp-4);margin:0 auto}@media (width>=768px){.itt-container{padding:var(--itt-sp-5) var(--itt-sp-6)}}@media (width>=1280px){.itt-container{padding:var(--itt-sp-6) var(--itt-sp-10)}}@media (width<=768px){html,body,.app,.main,.content,.page{overflow-x:hidden}}.card,.modal,.toast,.sidebar{-webkit-backdrop-filter:none}.welcome-banner:before{filter:none;background:radial-gradient(circle,#ffffff1a 0%,#0000 68%)}.pulse-glow{animation:2s ease-in-out infinite ittPulseSoft}@media (hover:none){.option:hover,.card:hover,.card.glow-hover:hover,.btn-primary:hover,.btn-ghost:hover,.btn-danger:hover,.btn-buy:hover:not(:disabled),.btn-lg:hover,.nav-item:hover{transform:none!important}.card.glow-hover:hover{animation:none!important}}@media (pointer:coarse){*,:before,:after{-webkit-backdrop-filter:none!important}#authScreen,#authScreen *{-webkit-backdrop-filter:blur(8px)!important}.orb{filter:none!important;opacity:.08!important;animation:none!important}.ls-cpath-blob,.ls-cpath-blob--a,.ls-cpath-blob--b{filter:none!important}.ls-cpath-blob--a{background:radial-gradient(circle,#2563eb24 0%,#0000 70%)!important}.ls-cpath-blob--b{background:radial-gradient(circle,#38bdf81f 0%,#0000 70%)!important}}.orb{filter:blur(60px);will-change:auto}.question-area .options{contain:layout style}.hero-ring-glow{filter:blur(8px)}.certv-overlay{z-index:9999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#070a13d1;display:none;position:fixed;inset:0}.certv-overlay.open{flex-direction:column;display:flex}.certv-topbar{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.certv-actions{flex-wrap:wrap;gap:8px;display:flex}.certv-scroll{-webkit-overflow-scrolling:touch;flex:auto;justify-content:center;align-items:flex-start;padding:16px 16px 48px;display:flex;overflow-y:auto}.certv-body{justify-content:center;width:100%;display:flex}body.cert-modal-open{overflow:hidden}.cert-name-step{text-align:center;color:#0f2a52;background:#fff;border-radius:20px;width:100%;max-width:480px;margin:auto;padding:36px 28px;box-shadow:0 24px 64px #02081773}.cert-name-step h2{color:#0f2a52;margin:10px 0 6px;font-size:20px;font-weight:800}.cert-name-step .muted{color:#5a6b85;font-size:14px}.cert-name-emoji{font-size:44px;line-height:1}.cert-name-step form{text-align:left;margin-top:18px}.cert-name-step .input{color:#0f2a52;background:#f7faff;border:2px solid #dbe7fb;border-radius:12px;outline:none;width:100%;padding:13px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.cert-name-step .input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.cert-name-warn{color:#dc2626;min-height:20px;margin:6px 2px 8px;font-size:12.5px}.cert-name-submit{justify-content:center;width:100%}.cert-name-skip{justify-content:center;width:100%;margin-top:8px}.cert-paper{color:#0f2a52;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:radial-gradient(1200px 400px at 50% -8%,#2563eb0f,#0000 60%),radial-gradient(800px 300px at 100% 100%,#06b6d412,#0000 55%),linear-gradient(#fff,#f8fbff);border-radius:18px;flex-direction:column;width:min(1100px,100%);min-height:720px;padding:52px 64px 40px;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #02081780}.cert-border{pointer-events:none;border:2px solid #2563eb59;border-radius:12px;position:absolute;inset:12px}.cert-border:after{content:"";border:1.5px solid #d4a0178c;border-radius:8px;position:absolute;inset:6px}.cert-corner{pointer-events:none;opacity:.9;border:0 solid #d4a017;width:34px;height:34px;position:absolute}.cert-corner--tl{border-top-width:4px;border-left-width:4px;border-top-left-radius:8px;top:6px;left:6px}.cert-corner--tr{border-top-width:4px;border-right-width:4px;border-top-right-radius:8px;top:6px;right:6px}.cert-corner--bl{border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:8px;bottom:6px;left:6px}.cert-corner--br{border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:8px;bottom:6px;right:6px}.cert-preview-badge{color:#fff;letter-spacing:.08em;z-index:2;background:linear-gradient(135deg,#06b6d4,#2563eb);border-radius:999px;padding:6px 12px;font-size:10.5px;font-weight:800;position:absolute;top:22px;right:22px}.cert-head{flex-direction:column;align-items:center;gap:4px;display:flex}.cert-logo{color:#0f2a52;align-items:center;gap:10px;font-size:26px;font-weight:800;display:flex}.cert-logo-ico{font-size:30px}.cert-logo-text b{color:#2563eb}.cert-tagline{letter-spacing:.14em;text-transform:uppercase;color:#06b6d4;font-size:12.5px;font-weight:600}.cert-deco{width:150px;height:26px;margin-top:6px}.cert-title{letter-spacing:.22em;background:linear-gradient(120deg,#2563eb 10%,#06b6d4 55%,#d4a017 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:26px 0 6px;font-size:clamp(30px,4.6vw,44px);font-weight:900}.cert-sub{color:#5a6b85;font-size:15px}.cert-name{text-transform:uppercase;letter-spacing:.06em;color:#0f2a52;overflow-wrap:anywhere;border-bottom:2px solid #2563eb40;max-width:86%;margin:14px auto 10px;padding-bottom:12px;font-size:clamp(28px,4.4vw,46px);font-weight:900;line-height:1.15}.cert-body{color:#33415c;max-width:72%;margin:0 auto;font-size:15.5px;line-height:1.65}.cert-body strong{color:#2563eb}.cert-stats{grid-template-columns:repeat(4,1fr);gap:12px;max-width:86%;margin:28px auto 0;display:grid}.cert-stat{background:#2563eb0e;border:1px solid #2563eb24;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;display:flex}.cert-stat-ico{font-size:18px}.cert-stat-lbl{letter-spacing:.1em;text-transform:uppercase;color:#5a6b85;font-size:10.5px;font-weight:700}.cert-stat-val{color:#0f2a52;text-align:center;font-size:13.5px;font-weight:800}.cert-foot{justify-content:space-between;align-items:flex-end;gap:18px;margin-top:auto;padding-top:26px;display:flex}.cert-foot-col{text-align:left;flex-direction:column;gap:3px;min-width:150px;display:flex}.cert-foot-id{text-align:right;align-items:flex-end}.cert-foot-lbl{letter-spacing:.1em;text-transform:uppercase;color:#5a6b85;font-size:10.5px;font-weight:700}.cert-foot-val{color:#0f2a52;font-size:14.5px;font-weight:800}.cert-id-code{letter-spacing:.04em;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.cert-foot-qr{flex-direction:column;align-items:center;gap:4px;display:flex}.cert-foot-qr svg{background:#fff;border:1px solid #2563eb40;border-radius:8px;width:92px;height:92px;padding:5px}.cert-qr-cap{color:#5a6b85;font-size:10px}@keyframes certReveal{0%{opacity:0;transform:scale(.955)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes certShimmer{0%{transform:translate(-130%)skew(-18deg)}to{transform:translate(230%)skew(-18deg)}}.cert-reveal{animation:.9s cubic-bezier(.16,1,.3,1) both certReveal}.cert-paper:before{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#2563eb14,#0000);width:34%;animation:1.1s .15s both certShimmer;position:absolute;top:0;bottom:0;left:0}@media (prefers-reduced-motion:reduce){.cert-reveal{animation:none}.cert-paper:before{display:none}}.certv-verify .certv-body{align-items:flex-start}.verify-card{color:#0f2a52;text-align:center;background:#fff;border-radius:18px;width:100%;max-width:620px;margin:8vh auto 0;padding:30px 26px;box-shadow:0 24px 64px #02081773}.verify-hero{flex-direction:column;align-items:center;gap:6px;display:flex}.verify-emoji{font-size:44px;line-height:1}.verify-hero h2{font-size:21px;font-weight:800}.verify-hero p{color:#5a6b85;font-size:14px}.verify-status-pill{color:#059669;letter-spacing:.06em;background:#10b9811f;border:1px solid #10b98166;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:800;display:inline-block}.verify-fail .verify-emoji{filter:none}.verify-grid{text-align:left;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 16px;display:grid}.verify-grid>div{background:#f7faff;border:1px solid #e3ecfb;border-radius:10px;padding:10px 12px}.verify-grid .verify-wide{grid-column:1/-1}.verify-grid dt{letter-spacing:.08em;text-transform:uppercase;color:#5a6b85;font-size:10.5px;font-weight:700}.verify-grid dd{color:#0f2a52;overflow-wrap:anywhere;margin:2px 0 0;font-size:14.5px;font-weight:800}.verify-search{gap:8px;margin:6px 0 16px;display:flex}.verify-search .input{color:#0f2a52;background:#f7faff;border:2px solid #dbe7fb;border-radius:10px;outline:none;flex:1;padding:11px 12px;font-family:ui-monospace,Consolas,monospace;font-size:13.5px}.verify-search .input:focus{border-color:#2563eb}.certp-head h3{font-size:22px;font-weight:800}.certp-head p{color:var(--muted,#64748b);margin-top:2px}.certp-summary{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.certp-stat{background:var(--card,#ffffff0f);border:1px solid var(--border,#ffffff14);border-radius:12px;align-items:baseline;gap:8px;padding:10px 16px;display:flex}.certp-stat-num{color:var(--primary,#6366f1);font-size:22px;font-weight:900}.certp-stat-lbl{color:var(--muted,#64748b);font-size:13px;font-weight:600}.certp-preview-note{color:var(--secondary,#06b6d4);background:#06b6d41a;border:1px dashed #06b6d473;border-radius:999px;padding:7px 12px;font-size:12px}.certp-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.certp-controls .search-box{flex:260px;max-width:380px}.certp-filters{flex-wrap:wrap}.certp-namebar{margin-bottom:14px}.certp-namebar-inner{background:var(--card,#ffffff0f);border:1px solid var(--border,#ffffff14);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.certp-namebar-lbl{color:var(--muted,#64748b);font-size:12.5px}.certp-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;display:grid}.certp-card{background:var(--card,#ffffff0f);border:1px solid var(--border,#ffffff14);border-radius:16px;flex-direction:column;gap:8px;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.certp-card:hover{border-color:#6366f173;transform:translateY(-2px);box-shadow:0 8px 28px #0000002e}.certp-card.locked{opacity:.62}.certp-card-top{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.certp-course-ico{border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:inline-flex}.certp-course-name{font-size:15px;font-weight:800}.cert-status-badge{letter-spacing:.03em;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:10.5px;font-weight:800}.cert-status-badge.earned{color:#10b981;background:#10b98124;border:1px solid #10b98166}.cert-status-badge.preview{color:#06b6d4;background:#06b6d41f;border:1px solid #06b6d466}.cert-status-badge.locked{color:#94a3b8;background:#64748b29;border:1px solid #64748b59}.certp-lesson-num{color:var(--primary,#6366f1);text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:700}.certp-lesson-title{font-size:15px;font-weight:700;line-height:1.35}.certp-cert-id{color:var(--muted,#64748b);letter-spacing:.03em;font-family:ui-monospace,Consolas,monospace;font-size:11px}.certp-card-foot{margin-top:auto;padding-top:6px}.certp-card-foot .btn{justify-content:center;width:100%}.certp-empty{text-align:center;color:var(--muted,#64748b);grid-column:1/-1;padding:40px 0}.certp-progress{flex-direction:column;gap:6px;display:flex}.certp-progress-track{background:#94a3b838;border-radius:999px;height:8px;overflow:hidden}.certp-progress-bar{background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:999px;height:100%;transition:width .35s;display:block}.certp-card.locked .certp-progress-bar{background:linear-gradient(90deg,#64748b,#94a3b8)}.certp-card.earned .certp-progress-bar{background:linear-gradient(90deg,#10b981,#06b6d4)}.certp-progress-meta{color:var(--muted,#64748b);justify-content:space-between;align-items:center;font-size:11.5px;font-weight:700;display:flex}.profile-cert-card{margin-top:14px}@media (width<=900px){.cert-paper{min-height:640px;padding:44px 34px 30px}.cert-body{max-width:90%}}@media (width<=640px){.certv-scroll{padding:10px 10px 36px}.certv-topbar{flex-wrap:wrap}.certv-actions{width:100%}.certv-actions .btn{flex:1;justify-content:center}.cert-paper{border-radius:14px;padding:46px 22px 26px}.cert-name{font-size:clamp(24px,7.4vw,34px)}.cert-body{max-width:100%;font-size:14px}.cert-stats{grid-template-columns:repeat(2,1fr);gap:8px;max-width:100%}.cert-foot{text-align:center;flex-direction:column;align-items:center;gap:14px}.cert-foot-col,.cert-foot-id{text-align:center;align-items:center;min-width:0}.verify-grid{grid-template-columns:1fr}.verify-search{flex-direction:column}.certp-grid{grid-template-columns:1fr}}@media (width>=641px) and (width<=1024px){.cert-paper{min-height:680px}.cert-stats{max-width:96%}}@media print{@page{size:A4 landscape;margin:8mm}body.print-cert *{visibility:hidden!important}body.print-cert #certViewerOverlay,body.print-cert #certViewerOverlay *{visibility:visible!important}body.print-cert #certViewerOverlay{-webkit-backdrop-filter:none;backdrop-filter:none;display:block;position:absolute;inset:0;background:#fff!important}body.print-cert #certViewerOverlay .certv-topbar{display:none!important}body.print-cert #certViewerOverlay .certv-scroll{padding:0;display:block;overflow:visible}body.print-cert .cert-paper{border-radius:0;margin:0 auto;box-shadow:none!important;width:100%!important;min-height:0!important}body.print-cert .cert-preview-badge,body.print-cert .cert-paper:before{display:none!important}body.print-cert .cert-reveal{animation:none!important}}#page-home{background:var(--itt-bg-alt,#f4f8ff);display:none}#page-home.active{min-height:100%;display:block;overflow-x:hidden;padding:10px 14px calc(96px + env(safe-area-inset-bottom,0px))!important}body.ithome-active .topbar{display:none!important}.ih-top{justify-content:space-between;align-items:center;gap:10px;padding:6px 2px 12px;display:flex}.ih-brand{color:var(--itt-text,#0f172a);letter-spacing:-.02em;align-items:center;gap:8px;font-size:1.05rem;font-weight:800;display:inline-flex}.ih-brand-logo{background:linear-gradient(135deg, var(--itt-primary,#2563eb), var(--itt-cyan,#38bdf8));width:34px;height:34px;box-shadow:var(--itt-shadow-primary,0 6px 20px #2563eb52);border-radius:11px;justify-content:center;align-items:center;font-size:1.05rem;display:inline-flex}.ih-topchips{align-items:center;gap:8px;min-width:0;display:flex}.ih-chip{border:1px solid var(--itt-border,#dce8f7);background:var(--itt-surface,#fff);color:var(--itt-text,#0f172a);white-space:nowrap;cursor:pointer;box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.ih-chip b{font-weight:800}.ih-chip--streak b{color:var(--itt-streak,#0ea5e9)}.ih-chip--xp b{color:var(--itt-xp,#ca8a04)}.ih-search{background:var(--itt-surface,#fff);border:1px solid var(--itt-border,#dce8f7);box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);border-radius:16px;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.ih-search span[aria-hidden]{opacity:.7;font-size:.95rem}.ih-search input{min-width:0;color:var(--itt-text,#0f172a);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.92rem}.ih-search input::placeholder{color:var(--itt-faint,#94a3b8)}.ih-search-results{background:var(--itt-surface,#fff);border:1px solid var(--itt-border,#dce8f7);box-shadow:var(--itt-shadow-sm,0 4px 16px #0f172a0d);border-radius:14px;margin:-8px 0 14px;overflow:hidden}.ih-search-item{border:none;border-bottom:1px solid var(--itt-border-soft,#e2e8f0);width:100%;color:var(--itt-text,#0f172a);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:11px 14px;font-size:.88rem;display:flex}.ih-search-item:last-child{border-bottom:none}.ih-search-item:active{background:var(--itt-primary-soft,#2563eb17)}.ih-search-item small{color:var(--itt-muted,#64748b);font-size:.74rem}.ih-search-empty{color:var(--itt-muted,#64748b);padding:12px 14px;font-size:.84rem}.ih-quick{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.ih-quick-card{border:1px solid var(--itt-border,#dce8f7);background:var(--itt-surface,#fff);color:var(--itt-text,#0f172a);text-align:left;cursor:pointer;box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);transition:transform var(--itt-dur-fast,.18s) var(--itt-ease,ease);border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.ih-quick-card:active{transform:scale(.97)}.ih-quick-ico{background:var(--itt-primary-soft,#2563eb17);border:1px solid var(--itt-border,#dce8f7);border-radius:13px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.25rem;display:inline-flex}.ih-quick-name{font-size:.95rem;font-weight:700;line-height:1.25}.ih-quick-link{color:var(--itt-primary,#2563eb);font-size:.78rem;font-weight:600}.ih-banner{color:#fff;box-shadow:var(--itt-shadow-primary,0 6px 20px #2563eb52);background:radial-gradient(320px 160px at 92% 0,#38bdf873,#0000 65%),linear-gradient(120deg,#1d4ed8 0%,#2563eb 55%,#38bdf8 130%);border-radius:20px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:18px;display:flex;position:relative;overflow:hidden}.ih-banner h2{letter-spacing:-.01em;margin:0 0 4px;font-size:1.12rem;font-weight:800}.ih-banner p{opacity:.92;max-width:21ch;margin:0 0 12px;font-size:.8rem}.ih-banner button{color:#1d4ed8;cursor:pointer;background:#fff;border:none;border-radius:999px;padding:9px 16px;font-size:.8rem;font-weight:700}.ih-banner button:active{transform:scale(.97)}.ih-banner-art{background:#ffffff29;border:1px solid #ffffff4d;border-radius:50%;flex:none;justify-content:center;align-items:center;width:74px;height:74px;font-size:2.4rem;display:flex}.ih-continue{border:1px solid var(--itt-border-focus,#2563eb59);background:linear-gradient(135deg, var(--itt-primary-soft,#2563eb17), transparent 60%), var(--itt-surface,#fff);box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);border-radius:18px;margin-bottom:18px;padding:16px}.ih-continue-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.ih-continue-label{color:var(--itt-muted,#64748b);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.ih-xp-badge{color:var(--itt-xp,#ca8a04);background:var(--itt-xp-soft,#ca8a041f);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.ih-continue-title{color:var(--itt-text,#0f172a);margin:0 0 4px;font-size:1rem;font-weight:700}.ih-continue-sub{color:var(--itt-muted,#64748b);margin:0 0 10px;font-size:.8rem}.ih-progress{background:var(--itt-primary-soft,#2563eb17);border:1px solid var(--itt-border,#dce8f7);border-radius:999px;height:8px;margin-bottom:6px;overflow:hidden}.ih-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--itt-primary,#2563eb), var(--itt-cyan,#38bdf8));width:0%;height:100%;transition:width .8s var(--itt-ease-spring,cubic-bezier(.16, 1, .3, 1));display:block}.ih-progress-meta{color:var(--itt-muted,#64748b);justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:.76rem;display:flex}.ih-btn{color:#fff;background:linear-gradient(135deg, var(--itt-primary,#2563eb), var(--itt-primary-hover,#3b82f6));width:100%;box-shadow:var(--itt-shadow-primary,0 6px 20px #2563eb52);cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:13px 16px;font-family:inherit;font-size:.92rem;font-weight:700;display:flex}.ih-btn:active{transform:scale(.98)}.ih-continue-empty{color:var(--itt-muted,#64748b);align-items:center;gap:10px;font-size:.86rem;display:flex}.ih-section-title{color:var(--itt-text,#0f172a);margin:0 2px 10px;font-size:.95rem;font-weight:800}.ih-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;display:grid}.ih-grid-item{border:1px solid var(--itt-border,#dce8f7);background:var(--itt-surface,#fff);color:var(--itt-text,#0f172a);cursor:pointer;box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);transition:transform var(--itt-dur-fast,.18s) var(--itt-ease,ease);border-radius:16px;flex-direction:column;align-items:center;gap:7px;padding:14px 6px 12px;font-size:.74rem;font-weight:600;display:flex}.ih-grid-item:active{transform:scale(.95)}.ih-grid-ico{font-size:1.35rem;line-height:1}.ih-me{border:1px solid var(--itt-border,#dce8f7);background:var(--itt-surface,#fff);box-shadow:var(--itt-shadow-xs,0 1px 3px #0f172a0f);border-radius:18px;padding:16px}.ih-me h3{color:var(--itt-text,#0f172a);margin:0 0 4px;font-size:1.02rem;font-weight:800}.ih-me-sub{color:var(--itt-muted,#64748b);margin:0 0 12px;font-size:.8rem}.ih-me-row{align-items:center;gap:10px;display:flex}.ih-level-badge{color:var(--itt-primary,#2563eb);background:var(--itt-primary-soft,#2563eb17);border:1px solid var(--itt-border-focus,#2563eb59);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:.74rem;font-weight:800}.ih-me-xp{flex:1;min-width:0}.ih-me-xp-text{color:var(--itt-muted,#64748b);white-space:nowrap;margin-bottom:5px;font-size:.74rem;display:block}.ih-me .ih-progress{margin-bottom:0}.ih-bottomnav{z-index:70;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:var(--itt-topbar-bg,#ffffffe0);-webkit-backdrop-filter:blur(18px)saturate(180%);border-top:1px solid var(--itt-border,#dce8f7);justify-content:space-around;align-items:stretch;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #02061714}.ih-bottomnav button{color:var(--itt-faint,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;min-height:44px;padding:6px 2px;font-family:inherit;font-size:.66rem;font-weight:600;display:flex}.ih-bottomnav button .ih-nav-ico{font-size:1.25rem;line-height:1}.ih-bottomnav button.active{color:var(--itt-primary,#2563eb);font-weight:800}.ih-bottomnav button:active{transform:scale(.94)}@media (width<=340px){#page-home.active{padding-left:10px;padding-right:10px}.ih-quick{gap:9px}.ih-grid{gap:8px}.ih-chip{padding:7px 9px;font-size:.74rem}}
