.update-toast{position:fixed;left:16px;bottom:16px;z-index:95;display:flex;align-items:center;gap:12px;background:var(--ink, #0F1B2D);color:#fff;border-radius:16px;box-shadow:0 18px 40px #0f1b2d4d;padding:12px 14px;max-width:min(360px,calc(100vw - 32px));animation:updateToastIn .35s ease}@keyframes updateToastIn{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.update-toast-text{font-size:.85rem;font-weight:600;line-height:1.35}.update-toast-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.update-toast-btn{white-space:nowrap;padding:8px 14px;border-radius:999px;border:none;background:var(--blue, #2563EB);color:#fff;font-weight:700;font-size:.82rem;cursor:pointer;transition:transform .15s}.update-toast-btn:hover{transform:translateY(-1px)}.update-toast-dismiss{border:none;background:none;color:#94a3b8;font-size:.85rem;cursor:pointer;padding:4px;line-height:1}.update-toast-dismiss:hover{color:#fff}@keyframes driftCloud{0%{transform:translate(0)}to{transform:translate(140px)}}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes flap{0%,to{transform:rotate(0)}50%{transform:rotate(-35deg)}}@keyframes particleUp{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-30px) scale(.3)}}@keyframes growBar{to{width:var(--w)}}@keyframes fall{to{transform:translateY(110vh) rotate(400deg);opacity:.2}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.9)}50%{opacity:.95;transform:scale(1.15)}}@keyframes fireflyFloat{0%,to{transform:translate(0);opacity:.35}25%{transform:translate(12px,-16px);opacity:1}50%{transform:translate(-9px,-26px);opacity:.55}75%{transform:translate(10px,-12px);opacity:1}}@keyframes grassSway{0%,to{transform:skew(-.6deg)}50%{transform:skew(.6deg)}}@keyframes sunGlow{0%,to{filter:brightness(1)}50%{filter:brightness(1.08)}}@keyframes moteFloat{0%{transform:translate(0);opacity:0}15%{opacity:var(--mote-opacity, .55)}85%{opacity:var(--mote-opacity, .55)}to{transform:translate(var(--mote-drift, 14px),-160px);opacity:0}}@keyframes petalSway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes rainFall{0%{transform:translateY(0);opacity:.9}to{transform:translateY(720px);opacity:.4}}@keyframes rainSplash{0%,88%{transform:scale(.4);opacity:0}92%{transform:scale(1);opacity:.45}to{transform:scale(1.3);opacity:0}}@keyframes snowFall{0%{transform:translate(0) rotate(0);opacity:.9}to{transform:translate(20px,640px) rotate(80deg);opacity:.5}}:root{--blue: #2563EB;--blue-dark: #1D4ED8;--blue-soft: #DBEAFE;--green: #22C55E;--green-soft: #DCFCE7;--amber: #F59E0B;--red: #EF4444;--ink: #0F1B2D;--ink-soft: #5B6B82;--card: #FFFFFF;--sky-top: #BFE3FF;--sky-bottom: #EAF6FF;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 10px;--shadow-soft: 0 8px 24px rgba(15, 27, 45, .08);--shadow-card: 0 16px 40px rgba(15, 27, 45, .1)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{overflow-x:clip}html,body{touch-action:pan-y}@media (pointer: fine){html{scrollbar-gutter:stable}}@media (pointer: fine){html{scrollbar-width:thin;scrollbar-color:rgba(15,27,45,.25) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0f1b2d40;border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#0f1b2d66;background-clip:content-box}}body{font-family:Inter,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";color:var(--ink);background:#fff8f0;-webkit-font-smoothing:antialiased;overflow-x:clip;animation:pageFade .6s ease}h1,h2,h3,.display{font-family:Nunito,sans-serif}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none}@keyframes pageFade{0%{opacity:0}to{opacity:1}}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100lvh}.app-main{flex:1 0 auto}@media (pointer: fine){.app-main{padding-top:72px}}.header{position:sticky;top:0;z-index:50;height:72px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft);display:flex;align-items:center;justify-content:space-between;padding:0 32px}@media (pointer: fine){.header{position:fixed;left:0;right:0}}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-logo{width:40px;height:40px;flex-shrink:0;border-radius:30%;position:relative;top:-5px}.brand-name{font-family:Nunito,sans-serif;font-weight:800;font-size:22px;color:var(--blue);letter-spacing:-.02em}.main-nav{display:flex;align-items:center;gap:4px}.nav-link{display:flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;font-weight:700;font-size:14px;color:var(--ink-soft);transition:background .2s,color .2s}.nav-link:hover{background:#f1f5f9;color:var(--ink)}.nav-link.active{background:var(--blue-soft);color:var(--blue-dark)}.nav-icon{width:20px;height:20px;flex-shrink:0}.nav-dropdown{position:relative}.nav-link-btn{background:none;border:none;cursor:pointer}.chevron-sm{width:6px;height:6px;margin-left:1px;border-right-width:2px;border-bottom-width:2px}.mode-dropdown{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);display:flex;gap:12px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px;z-index:30;animation:pageFade .15s ease}.mode-card{position:relative;width:126px;padding:18px 10px 14px;border-radius:var(--radius-md);border:1px solid transparent;display:flex;flex-direction:column;align-items:center;gap:6px;font-family:Nunito,sans-serif;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.mode-card:hover:not(.locked){transform:translateY(-3px);box-shadow:var(--shadow-soft)}.mode-card.locked{cursor:not-allowed;opacity:.7}.mode-icon{font-size:24px;line-height:1}.mode-title{font-weight:800;font-size:12px;letter-spacing:.03em;text-align:center}.mode-sub{font-size:11px;font-weight:700;opacity:.95;text-align:center}.mode-lock{position:absolute;top:10px;right:10px;font-size:12px;opacity:.85}.mode-classic{background:var(--blue-soft)}.mode-classic:hover:not(.locked){border-color:var(--blue)}.mode-classic .mode-title{color:var(--blue-dark)}.mode-classic .mode-sub{color:#1d4ed8}.mode-timed{background:var(--green-soft)}.mode-timed:hover:not(.locked){border-color:var(--green)}.mode-timed .mode-title,.mode-timed .mode-sub{color:#15803d}.mode-sprint{background:#fef3e2}.mode-sprint:hover:not(.locked){border-color:var(--amber)}.mode-sprint .mode-title,.mode-sprint .mode-sub{color:#b45309}.mode-sudden-death{background:#fee2e2}.mode-sudden-death:hover:not(.locked){border-color:var(--red)}.mode-sudden-death .mode-title,.mode-sudden-death .mode-sub{color:#b91c1c}.mode-live{background:#ede9fe}.mode-live:hover:not(.locked){border-color:#8b5cf6}.mode-live .mode-title,.mode-live .mode-sub{color:#6d28d9}.mode-word-rain{background:#e2e8f0}.mode-word-rain:hover:not(.locked){border-color:#64748b}.mode-word-rain .mode-title{color:#334155}.mode-word-rain .mode-sub{color:#475569}.mode-create-class{background:var(--blue-soft)}.mode-create-class:hover:not(.locked){border-color:var(--blue)}.mode-create-class .mode-title{color:var(--blue-dark)}.mode-create-class .mode-sub{color:#1d4ed8}.mode-join-class{background:#fef3e2}.mode-join-class:hover:not(.locked){border-color:var(--amber)}.mode-join-class .mode-title,.mode-join-class .mode-sub{color:#b45309}.mode-my-class{background:var(--green-soft)}.mode-my-class:hover:not(.locked){border-color:var(--green)}.mode-my-class .mode-title,.mode-my-class .mode-sub{color:#15803d}.mode-student-dashboard{background:#ede9fe}.mode-student-dashboard:hover:not(.locked){border-color:#8b5cf6}.mode-student-dashboard .mode-title,.mode-student-dashboard .mode-sub{color:#6d28d9}@media (max-width: 900px){.mode-dropdown{position:fixed;top:80px;left:50%;right:auto;transform:translate(-50%);flex-wrap:wrap;justify-content:center;width:min(300px,calc(100vw - 24px))}.mode-card{width:118px}}.profile-menu{position:relative;flex-shrink:0}.nav-signin-btn{background:var(--blue);color:#fff;font-weight:700;font-size:14px;padding:9px 18px;border-radius:999px;box-shadow:0 6px 16px #2563eb4d;transition:transform .15s,box-shadow .15s}.nav-signin-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #2563eb61}.profile{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:999px;background:none;transition:background .2s}.profile:hover{background:#f1f5f9}.profile-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#60A5FA);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.profile-name{font-weight:600;font-size:14px;color:var(--ink)}.chevron{width:10px;height:10px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:rotate(45deg);margin-top:-4px;transition:transform .2s}.chevron.up{transform:rotate(-135deg);margin-top:4px}.settings-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:10px;min-width:230px;display:flex;flex-direction:column;gap:2px;z-index:20;animation:pageFade .15s ease;max-height:calc(100svh - 90px);overflow-y:auto}.settings-heading{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;padding:4px 10px 6px}.settings-option{text-align:left;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink);background:none;display:flex;align-items:center;gap:8px}.google-logo{flex-shrink:0}.settings-option:hover{background:#f1f5f9}.settings-option.active{background:var(--blue-soft);color:var(--blue-dark)}.settings-chip-row{display:flex;flex-wrap:wrap;gap:6px;padding:2px 6px 8px}.settings-chip{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;color:var(--ink);background:#f1f5f9;white-space:nowrap}.settings-chip:hover{background:#e2e8f0}.settings-chip.active{background:var(--blue-soft);color:var(--blue-dark)}@media (max-width: 900px){.nav-label{display:none}.nav-link{padding:9px 10px}}@media (max-width: 600px){.header{padding:0 16px}.brand-name{display:none}.main-nav{gap:0}.profile-name{display:none}}@media (max-width: 900px){.nav-desktop-only{display:none}}.header{max-width:100%}.main-nav{min-width:0;overflow-x:auto;touch-action:pan-x pan-y;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}@media (min-width: 901px){.main-nav{overflow-x:visible}}.app-sky{position:fixed;top:72px;left:0;right:0;height:calc(100vh - 72px);height:calc(100lvh - 72px);z-index:-1;overflow:hidden;pointer-events:none;contain:strict;--cloud: #FFF8F2;background:linear-gradient(180deg,#fde3c2,#fad4a5 38%,#f8c89a 62%,#fbf1e4 84%,#fff8f0);transition:background 4s ease,filter 4s ease}.app-sky.afternoon{--cloud: #FFFFFF;background:linear-gradient(180deg,#9dd3ff,#e7f5ff 60%,#fff8f0)}.app-sky.evening{--cloud: #FFF1E0;background:linear-gradient(180deg,#fcc091,#fdd4a8 45%,#fee9d3 75%,#fff8f0)}.app-sky.night{--cloud: #AFC1E8;background:linear-gradient(180deg,#0f1b3d,#1e2c58 45%,#8fa0c9 82%,#fff8f0)}.app-sky.night .cloud{opacity:.16}.sun{position:absolute;top:130px;right:11%;width:78px;height:78px;border-radius:50%;background:radial-gradient(circle,#ffe9b8,#ffd27a 45%,#ffc857 65%,#ffc85700);box-shadow:0 0 70px 26px #ffd27a8c;transition:right 4s ease,top 4s ease,background 4s ease,box-shadow 4s ease,opacity 4s ease;animation:sunGlow 7s ease-in-out infinite}@keyframes sunGlow{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.app-sky.afternoon .sun{top:32px;right:8%;background:radial-gradient(circle,#fff9de,#ffeda0 55%,#ffeda000);box-shadow:0 0 60px 20px #fff0aa80}.app-sky.evening .sun{top:180px;right:14%;background:radial-gradient(circle,#ffd9b0,#fca65b 60%,#fca65b00);box-shadow:0 0 70px 24px #fca65b73}.app-sky.night .sun{opacity:0}.moon{position:absolute;top:52px;right:10%;width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fffdf6,#f3eedd 55%,#ded6be);box-shadow:0 0 18px 4px #fffdf5a6,0 0 46px 16px #f6f1e366,0 0 90px 34px #d6dcf042,0 0 160px 70px #b4c3e624;opacity:0;transition:opacity 4s ease;pointer-events:none}.app-sky.night .moon{opacity:1}.star{position:absolute;border-radius:50%;background:#fff;opacity:.2;animation:twinkle 3s ease-in-out infinite;pointer-events:none}@keyframes twinkle{0%,to{opacity:.2;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 10px 4px #ffdc828c;animation:fireflyFloat 6s ease-in-out infinite;pointer-events:none;z-index:2}@keyframes fireflyFloat{0%,to{transform:translate(0);opacity:.4}25%{transform:translate(8px,-12px);opacity:1}50%{transform:translate(-6px,-6px);opacity:.55}75%{transform:translate(10px,3px);opacity:.9}}.cloud{position:absolute;background:var(--cloud);border-radius:100px;opacity:.75;filter:drop-shadow(0 6px 10px rgba(15,27,45,.06));transition:background 4s ease,opacity 4s ease,filter 4s ease}.cloud:before,.cloud:after{content:"";position:absolute;background:var(--cloud);border-radius:100px;transition:background 4s ease}.c1{width:120px;height:36px;top:70px;left:0;animation:driftCloud 320s linear infinite;animation-delay:-20s}.c1:before{width:60px;height:60px;top:-30px;left:14px}.c1:after{width:44px;height:44px;top:-20px;left:60px}.c2{width:90px;height:28px;top:130px;left:0;animation:driftCloud 320s linear infinite;animation-delay:-100s}.c2:before{width:46px;height:46px;top:-24px;left:10px}.c2:after{width:34px;height:34px;top:-16px;left:44px}.c3{width:150px;height:40px;top:40px;left:0;animation:driftCloud 320s linear infinite;animation-delay:-180s}.c3:before{width:70px;height:70px;top:-36px;left:20px}.c3:after{width:50px;height:50px;top:-22px;left:80px}.c4{width:100px;height:30px;top:100px;left:0;animation:driftCloud 320s linear infinite;animation-delay:-260s}.c4:before{width:50px;height:50px;top:-26px;left:12px}.c4:after{width:36px;height:36px;top:-18px;left:50px}@keyframes driftCloud{0%{transform:translate(-8vw)}to{transform:translate(110vw)}}.sky-bird{position:absolute;left:0;width:20px;height:8px;opacity:.5;pointer-events:none;z-index:1;animation:birdFly linear infinite}.sky-bird:before,.sky-bird:after{content:"";position:absolute;top:4px;width:10px;height:10px;border-top:2px solid rgba(55,60,70,.55);border-radius:50%;animation:birdWingFlap .8s ease-in-out infinite}.sky-bird:before{left:0;transform-origin:100% 0%}.sky-bird:after{right:0;transform-origin:0% 0%;animation-direction:reverse}@keyframes birdFly{0%{transform:translate(-8vw) translateY(0) scale(var(--bird-scale, 1));opacity:0}3%{opacity:.55}9%{transform:translate(12vw) translateY(-12px) scale(var(--bird-scale, 1))}16%{transform:translate(34vw) translateY(8px) scale(var(--bird-scale, 1))}23%{transform:translate(58vw) translateY(-10px) scale(var(--bird-scale, 1))}29%{transform:translate(82vw) translateY(6px) scale(var(--bird-scale, 1));opacity:.55}32%{transform:translate(108vw) translateY(0) scale(var(--bird-scale, 1));opacity:0}to{transform:translate(108vw) translateY(0) scale(var(--bird-scale, 1));opacity:0}}@keyframes birdWingFlap{0%,to{transform:rotate(10deg)}50%{transform:rotate(-25deg)}}.hills{position:absolute;bottom:0;left:0;width:100%;height:220px;transition:filter 4s ease}.hill-back{position:absolute;bottom:0;width:100%;height:180px;background:#bfe8a6;border-radius:50% 50% 0 0/100px 100px 0 0;transform:scaleX(1.3)}.hill-front{position:absolute;bottom:0;width:100%;height:130px;background:#a9d68a;border-radius:50% 50% 0 0/80px 80px 0 0;transform:scaleX(1.5) translate(-2%)}.grass{position:absolute;bottom:0;width:100%;height:26px;background:linear-gradient(180deg,#8fd483,#7bc96f);transform-origin:bottom center;animation:grassSway 9s ease-in-out infinite}@keyframes grassSway{0%,to{transform:scaleX(1) skew(0)}50%{transform:scaleX(1.008) skew(.4deg)}}.tree{position:absolute;bottom:120px;width:14px;height:60px;transform-origin:bottom center;--tree-scale: 1;animation:sway 5s ease-in-out infinite;transition:filter 4s ease}.tree .trunk{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:8px;height:26px;background:#8a5a3b;border-radius:3px}.tree .leaves{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:44px;height:44px;background:#5fae72;border-radius:50%;box-shadow:-12px 6px 0 -4px #6bbb7e,12px 6px 0 -4px #4e9c62}.t1{left:8%;bottom:150px;animation-delay:0s}.t2{left:16%;bottom:130px;animation-delay:-1.2s;--tree-scale: .8}.t3{left:82%;bottom:145px;animation-delay:-2.4s}.t4{left:90%;bottom:125px;animation-delay:-.6s;--tree-scale: .75}@keyframes sway{0%,to{transform:scale(var(--tree-scale)) rotate(0)}50%{transform:scale(var(--tree-scale)) rotate(2.5deg)}}.app-sky.night .hills,.app-sky.night .tree,.app-sky.night .flower{filter:brightness(.55) saturate(.8)}.flower{position:absolute;bottom:6px;width:6px;height:6px;border-radius:50%;background:#ffd27a;z-index:2;--flower-scale: 1;animation:petalSway 6s ease-in-out infinite;transform-origin:bottom center}.flower.pink{box-shadow:-6px 0 0 -1.5px #f5a0b5,6px 0 0 -1.5px #f5a0b5,0 -6px 0 -1.5px #f5a0b5,0 6px 0 -1.5px #f5a0b5}.flower.white{box-shadow:-6px 0 0 -1.5px #fff8f2,6px 0 0 -1.5px #fff8f2,0 -6px 0 -1.5px #fff8f2,0 6px 0 -1.5px #fff8f2}.flower.lavender{box-shadow:-6px 0 0 -1.5px #d8c9f0,6px 0 0 -1.5px #d8c9f0,0 -6px 0 -1.5px #d8c9f0,0 6px 0 -1.5px #d8c9f0}.flower.small{--flower-scale: .75}@keyframes petalSway{0%,to{transform:scale(var(--flower-scale)) rotate(0)}50%{transform:scale(var(--flower-scale)) rotate(7deg)}}.mote{position:absolute;border-radius:50%;background:radial-gradient(circle,#ffe2a8e6,#ffe2a800 70%);pointer-events:none;z-index:3;animation:moteFloat linear infinite}@keyframes moteFloat{0%{transform:translate(0);opacity:0}12%{opacity:var(--mote-opacity, .4)}50%{transform:translate(var(--mote-drift, 10px),-70px)}88%{opacity:var(--mote-opacity, .4)}to{transform:translateY(-130px);opacity:0}}.app-sky.afternoon .mote{background:radial-gradient(circle,#ffffffe6,#fff0 70%)}.app-sky.evening .mote{background:radial-gradient(circle,#ffc896e6,#ffc89600 70%)}.app-sky.night .mote{background:radial-gradient(circle,#d2dcffcc,#d2dcff00 70%)}.app-sky.weather-cloudy{filter:saturate(.75) brightness(.95)}.app-sky.weather-cloudy:not(.night) .sun,.app-sky.weather-cloudy .moon{opacity:.35}.app-sky.weather-cloudy .cloud{opacity:1;filter:drop-shadow(0 6px 10px rgba(15,27,45,.12)) brightness(.9)}.app-sky.weather-rain{filter:saturate(.6) brightness(.82)}.app-sky.weather-rain:not(.night) .sun,.app-sky.weather-rain .moon{opacity:.15}.app-sky.weather-rain .cloud{opacity:1;filter:drop-shadow(0 6px 10px rgba(15,27,45,.16)) brightness(.75)}.app-sky.weather-rain .flower{opacity:.5}.raindrop{position:absolute;top:-40px;width:2px;height:60px;background:linear-gradient(180deg,#cde0f500,#cde0f5ad);animation:rainFall linear infinite;pointer-events:none;will-change:transform;z-index:4}@keyframes rainFall{0%{transform:translateY(0)}to{transform:translateY(100vh)}}.rain-splash{position:absolute;bottom:22px;width:8px;height:3px;border-radius:50%;background:#d2e1f580;animation:rainSplash linear infinite;pointer-events:none;will-change:transform,opacity;z-index:4}@keyframes rainSplash{0%,84%{opacity:0;transform:scale(.4)}90%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.app-sky.weather-snow{filter:saturate(.8) brightness(1.02)}.app-sky.weather-snow:not(.night) .sun,.app-sky.weather-snow .moon{opacity:.5}.app-sky.weather-snow .hills,.app-sky.weather-snow .tree{filter:brightness(1.1) saturate(.7)}.app-sky.weather-storm{filter:saturate(.5) brightness(.68)}.app-sky.weather-storm:not(.night) .sun,.app-sky.weather-storm .moon{opacity:.08}.app-sky.weather-storm .cloud{opacity:1;filter:drop-shadow(0 6px 14px rgba(15,27,45,.22)) brightness(.55)}.app-sky.weather-storm .flower{opacity:.4}.lightning-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;z-index:5;animation:lightningFlicker linear infinite}@keyframes lightningFlicker{0%,92%{opacity:0}92.5%{opacity:.85}93%{opacity:.1}93.6%{opacity:.7}94.2%,to{opacity:0}}.snowflake{position:absolute;top:-12px;border-radius:50%;background:#fff;opacity:.85;animation:snowFall linear infinite;pointer-events:none;will-change:transform;z-index:4}@keyframes snowFall{0%{transform:translate(0) rotate(0)}to{transform:translate(16px,100vh) rotate(180deg)}}.hero-inner{position:relative;z-index:5;max-width:1180px;margin:0 auto;padding:40px 32px}.hero-title{text-align:center;font-weight:900;font-size:34px;color:var(--ink);margin:0 0 6px;letter-spacing:-.02em;transition:color 4s ease}.hero-sub{text-align:center;color:var(--ink-soft);font-size:15px;margin:0 0 32px;font-weight:500;transition:color 4s ease}.hero-inner.night .hero-title{color:#fdf9f0}.hero-inner.night .hero-sub{color:#c7d2e8}@media (max-width: 600px){.hero-inner{padding:32px 16px 24px}.hero-title{font-size:24px}.cloud.c2,.cloud.c4{display:none}}.app-sky.perf-lite,.app-sky.perf-lite.weather-cloudy,.app-sky.perf-lite.weather-rain,.app-sky.perf-lite.weather-snow,.app-sky.perf-lite.weather-storm,.app-sky.perf-lite .cloud{filter:none}.app-sky.perf-lite.weather-cloudy .cloud{filter:brightness(.9)}.app-sky.perf-lite.weather-rain .cloud{filter:brightness(.75)}.app-sky.perf-lite.weather-storm .cloud{filter:brightness(.55)}.app-sky.perf-lite .flower,.app-sky.perf-lite .grass,.app-sky.perf-lite .tree{animation:none}.app-sky.perf-lite .mote{display:none}.app-sky.perf-lite .sun{animation-timing-function:steps(84,end)}.app-sky.perf-lite .star{animation-timing-function:steps(45,end)}.scenery-fade-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;animation:sceneryLayerIn 4s ease both}@keyframes sceneryLayerIn{0%{opacity:0}to{opacity:1}}.sky-phase-layer{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;transition:opacity 4s ease}.sky-phase-layer.morning{background:linear-gradient(180deg,#fde3c2,#fad4a5 38%,#f8c89a 62%,#fbf1e4 84%,#fff8f0)}.sky-phase-layer.afternoon{background:linear-gradient(180deg,#9dd3ff,#e7f5ff 60%,#fff8f0)}.sky-phase-layer.evening{background:linear-gradient(180deg,#fcc091,#fdd4a8 45%,#fee9d3 75%,#fff8f0)}.sky-phase-layer.night{background:linear-gradient(180deg,#0f1b3d,#1e2c58 45%,#8fa0c9 82%,#fff8f0)}.app-sky:not(.afternoon):not(.evening):not(.night) .sky-phase-layer.morning,.app-sky.afternoon .sky-phase-layer.afternoon,.app-sky.evening .sky-phase-layer.evening,.app-sky.night .sky-phase-layer.night{opacity:1}.flower{transition:opacity 4s ease}.typing-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);max-width:900px;margin:0 auto;padding:40px 44px}.typing-card:has(.results-panel){padding-bottom:12px}.game-mode-banner{text-align:center;margin-top:-18px;margin-bottom:10px;font-size:12px;font-weight:800;color:var(--blue-dark);text-transform:uppercase;letter-spacing:.08em}.class-lock-badge{display:inline-flex;align-items:center;gap:4px;margin-left:10px;background:var(--blue-soft);color:var(--blue-dark);font-size:11px;font-weight:800;text-transform:none;letter-spacing:0;padding:3px 10px;border-radius:999px}.typing-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.typing-label{font-size:12px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.08em}.reset-btn{background:#f1f5f9;color:var(--ink-soft);font-size:12px;font-weight:600;padding:6px 14px;border-radius:999px;transition:background .2s,color .2s}.reset-btn:hover{background:var(--blue-soft);color:var(--blue)}.mode-switch{display:flex;align-items:center;gap:2px;background:#f1f5f9;padding:3px;border-radius:999px}.mode-btn{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;color:var(--ink-soft);transition:background .2s,color .2s}.mode-btn:hover{color:var(--ink)}.mode-btn.active{background:#fff;color:var(--blue-dark);box-shadow:0 2px 6px #0f1b2d14}.typing-text{position:relative;font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace;font-size:22px;line-height:2;font-weight:500;background:#f8fafc;border:2px solid #E2E8F0;border-radius:var(--radius-md);padding:24px 28px;outline:none;cursor:text;-webkit-user-select:none;user-select:none;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;transition:border-color .2s,box-shadow .2s;max-height:8em;overflow-y:hidden}.typing-text:focus-visible,.typing-text:focus,.typing-text:has(.mobile-typing-input:focus){border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft),var(--shadow-soft)}.mobile-typing-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;margin:0;border:0;background:transparent;color:transparent;caret-color:transparent;font-size:16px;opacity:0;z-index:1}.typing-text.code-mode{font-size:19px;letter-spacing:0}.typing-text .word-group{display:inline-block}.typing-text .word{display:inline-block;position:relative}.typing-text .letter{color:#a9b7ca;transition:all 40ms;position:relative}.typing-text .letter.space{border-radius:4px}.letter.correct{color:var(--ink);background:none}.letter.incorrect{color:#b91c1c;background:#fee2e2;border-radius:4px}.typing-text .letter.space.incorrect{background:#fee2e2;box-shadow:none}.letter.current{color:var(--ink)!important;background:var(--blue-soft);box-shadow:0 -6px 0 2px var(--blue-soft),0 6px 0 2px var(--blue-soft),0 0 0 1px var(--blue);border-radius:4px;animation:blink .6s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.55}}.typing-input-hint{margin-top:20px;font-size:13px;color:var(--ink-soft);text-align:center}.typing-input-hint b{color:var(--blue)}.typing-input-hint b.time-low{color:var(--red)}@media (max-width: 900px){.typing-card{padding:28px 24px}.typing-text{font-size:17px;padding:16px 18px}.mode-btn{padding:6px 9px;font-size:11px}}.mode-btn:disabled{opacity:.35;cursor:not-allowed}.mode-btn:disabled:hover{color:var(--ink-soft)}.lang-switch{border:1px solid #E2E8F0}@font-face{font-family:AnmolLipi;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/AnmolLipi-BFZoDBWr.ttf) format("truetype")}.typing-text.pa-mode,.typing-text.pa-mode .letter{font-family:AnmolLipi,GurbaniAkhar,Raavi,monospace;letter-spacing:.02em}.typing-text.pa-mode{font-size:24px}.typing-text.pa-mode .letter{color:#64748b}.typing-text.pa-mode .letter.correct{color:var(--ink)}.daily-btn{background:#fff7e6;color:#b45309}.daily-btn.active{background:#f59e0b;color:#fff;box-shadow:0 2px 6px #f59e0b59}.sound-btn{font-size:15px;padding:4px 8px;border-radius:999px;background:#f1f5f9;line-height:1;transition:background .2s}.sound-btn:hover{background:var(--blue-soft)}.wpm-graph{margin-top:18px;background:#f8fafc;border:1px solid #E2E8F0;border-radius:12px;padding:14px 16px 8px}.wpm-graph-head{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.wpm-graph-row1{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.wpm-graph-title{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.wpm-graph-wpm{font-size:13px;color:var(--blue)}.wpm-graph-stats{font-size:13px;color:var(--ink-soft)}.wpm-graph-stats b{color:var(--blue)}.wpm-graph svg{width:100%;height:90px;display:block}.results-panel{position:relative;margin-top:18px;padding-top:34px;animation:results-in .35s ease}.results-share-btn{position:absolute;top:0;right:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid #E2E8F0;border-radius:8px;background:#fff;color:#64748b;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.results-share-btn:hover{color:var(--blue, #2563EB);border-color:#bfdbfe;background:#f8faff}.results-share-btn:disabled{opacity:.6;cursor:default}.results-brand{position:absolute;top:0;left:0;font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:none;color:#cbd5e1;-webkit-user-select:none;user-select:none;pointer-events:none}.results-user{width:36px;height:36px;align-self:center}.results-user-pic{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #E2E8F0;box-shadow:0 1px 4px #0000001a;display:block}.results-user-initials{display:none;width:36px;height:36px;border-radius:50%;background:#f1f5f9;color:#475569;font-size:13px;font-weight:800;line-height:32px;text-align:center;border:2px solid #E2E8F0;box-sizing:border-box}.results-user-initials.show{display:block}.results-panel.results-died .results-headline{color:var(--red)}@keyframes results-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.results-headline{display:flex;align-items:center;justify-content:center;gap:8px;font-size:18px;font-weight:800;color:var(--ink);flex-wrap:wrap}.results-headline>span{white-space:nowrap}.results-medal{font-size:24px}.pb-tag{font-size:11px;font-weight:700;background:#fef3c7;color:#b45309;padding:4px 10px;border-radius:999px}.results-invalid-note{margin:10px auto 0;max-width:440px;text-align:center;font-size:13px;color:#b45309;background:#fffbeb;border:1px solid #FDE68A;border-radius:8px;padding:8px 14px}.guest-nudge{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin:12px auto 0;max-width:460px;text-align:center;font-size:13px;font-weight:600;color:var(--blue-dark);background:var(--blue-soft);border-radius:999px;padding:8px 10px 8px 16px}.guest-nudge-actions{display:flex;align-items:center;gap:6px}.guest-nudge-btn{font-size:12px;font-weight:700;color:#fff;background:var(--blue);padding:6px 14px;border-radius:999px;white-space:nowrap;transition:background .2s}.guest-nudge-btn:hover{background:var(--blue-dark)}.guest-nudge-dismiss{font-size:16px;line-height:1;color:var(--blue-dark);opacity:.6;padding:4px 6px}.guest-nudge-dismiss:hover{opacity:1}.results-stats{display:flex;justify-content:center;align-items:center;gap:28px;margin:14px 0 4px}.results-stat{text-align:center}.results-stat .val{font-size:26px;font-weight:800;color:var(--blue)}.results-stat .lab{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.results-stat.dim .val{color:var(--ink-soft)}.lab-short{display:none}@media (max-width: 560px){.results-stats{gap:16px}.results-stat .val{font-size:21px}.results-stat .lab{font-size:9.5px}.lab-full{display:none}.lab-short{display:inline}}.results-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:16px}.results-kbd-hint{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--ink-soft)}.results-kbd-hint kbd{font-family:inherit;font-size:11px;font-weight:700;color:var(--ink);background:#f1f5f9;border:1px solid #E2E8F0;border-radius:5px;padding:2px 6px;margin-right:4px}.results-kbd-sep{margin:0 6px;opacity:.6}.results-cross-promo{text-align:center;font-size:13px;color:var(--ink-soft);margin-top:14px}.results-cross-promo a,.results-cross-promo-link{color:var(--blue);font-weight:700;text-decoration:underline}.results-cross-promo-link{background:none;border:none;padding:0;font:inherit;cursor:pointer}.results-btn{font-size:14px;font-weight:700;padding:10px 22px;border-radius:999px;background:#f1f5f9;color:var(--ink);transition:background .2s,transform .1s}.results-btn:hover{background:#e2e8f0}.results-btn:active{transform:scale(.97)}.results-btn.primary{background:var(--blue);color:#fff}.results-btn.primary:hover{background:var(--blue-dark)}.ghost-bar{display:flex;align-items:center;gap:12px;background:#f5f3ff;border:1px solid #DDD6FE;border-radius:12px;padding:8px 14px;margin-bottom:12px;font-size:13px;font-weight:600;color:#6d28d9;animation:results-in .35s ease}.ghost-bar.ghost-done{opacity:.6}.ghost-label{white-space:nowrap;font-weight:800}.ghost-progress-wrap{flex:1;height:8px;border-radius:999px;background:#ede9fe;overflow:hidden}.ghost-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#a78bfa,#8b5cf6);transition:width .15s linear}.ghost-wpm{white-space:nowrap;min-width:64px;text-align:right;font-variant-numeric:tabular-nums}.ghost-delta{white-space:nowrap;min-width:86px;text-align:center;font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;transition:background .3s,color .3s}.ghost-delta.ahead{background:#dcfce7;color:#15803d}.ghost-delta.behind{background:#fee2e2;color:#b91c1c}.ghost-delta.tied{background:#f1f5f9;color:var(--ink-soft)}.typing-text .letter.ghost-pos{box-shadow:inset 0 -3px #8b5cf6;background:#8b5cf61f;border-radius:4px}.typing-text .letter.current.ghost-pos{box-shadow:0 -6px 0 2px var(--blue-soft),0 6px 0 2px var(--blue-soft),0 0 0 1px var(--blue),inset 0 -3px #8b5cf6}.typing-text .letter.ghost-pos:after{content:"👻";position:absolute;top:-1.35em;left:50%;transform:translate(-50%);font-size:.7em;line-height:1;pointer-events:none;opacity:.9}.ghost-result{margin-top:14px;padding:10px 16px;border-radius:12px;text-align:center;font-size:14px;font-weight:600;border:1px solid transparent}.ghost-result b,.ghost-result .diff{font-weight:800}.ghost-result.won{background:#dcfce7;border-color:#86efac;color:#166534}.ghost-result.tied{background:#fef3c7;border-color:#fde68a;color:#92400e}.ghost-result.lost{background:#fee2e2;border-color:#fecaca;color:#991b1b}.ghost-result.saved{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}.results-btn.ghost{background:#8b5cf6;color:#fff}.results-btn.ghost:hover{background:#7c3aed}.wpm-graph-ghost-key{color:#7c3aed;font-weight:700;margin-right:10px;font-size:12px}.practice-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px}.practice-tab{display:flex;align-items:center;gap:6px;background:var(--card);color:var(--ink-soft);font-size:13px;font-weight:700;padding:10px 16px;border-radius:999px;box-shadow:var(--shadow-soft);transition:background .2s,color .2s,transform .1s}.practice-tab:hover{color:var(--ink);transform:translateY(-1px)}.practice-tab.active{background:var(--blue);color:#fff}.practice-tab-icon{font-size:15px;line-height:1}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start;max-width:1180px;margin:0 auto}.practice-main{min-width:0}.practice-sidebar{display:flex;flex-direction:column;gap:16px}.practice-card{max-width:none;padding-top:22px}.practice-live-stats{display:flex;flex-wrap:nowrap;gap:16px;font-size:13px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow-x:auto;touch-action:pan-x pan-y;min-height:22px}.practice-live-stats span{flex-shrink:0}.practice-live-stats b{color:var(--blue);font-size:15px}@media (max-width: 480px){.practice-live-stats{gap:10px;font-size:12px}.practice-live-stats b{font-size:13px}}.practice-progress-wrap{height:8px;border-radius:999px;background:#eef2f7;overflow:hidden;margin-bottom:18px}.practice-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--blue-dark));transition:width .15s linear}.practice-clear-btn{margin-top:14px}.practice-textarea{width:100%;font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace;font-size:15px;line-height:1.6;padding:16px 18px;border:2px solid #E2E8F0;border-radius:var(--radius-md);resize:vertical;outline:none;transition:border-color .2s,box-shadow .2s;margin:14px 0 8px}.practice-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.practice-char-count{display:inline-block;font-size:12px;font-weight:700;color:var(--ink-soft);background:#f1f5f9;padding:4px 10px;border-radius:999px}.practice-options-card{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:20px 22px}.practice-options-card h3{font-size:13px;font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px}.practice-options-hint{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0}.lessons-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.lessons-header-row h3{margin:0}.lessons-reset-btn{background:none;border:none;padding:0;font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:none;letter-spacing:0}.lessons-reset-btn:hover{color:#dc2626;text-decoration:underline}.mode-progress{margin-top:14px;padding-top:14px;border-top:1px solid #EEF1F5;display:flex;flex-direction:column;gap:6px}.mode-progress-empty{margin-top:14px;padding-top:14px;border-top:1px solid #EEF1F5}.mode-progress-row{display:flex;justify-content:space-between;font-size:13px}.mode-progress-label{color:var(--ink-soft)}.mode-progress-value{font-weight:700;color:var(--ink)}.option-group-label{display:block;font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.option-group-buttons{display:flex;flex-wrap:wrap;gap:6px}.option-btn{background:#f1f5f9;color:var(--ink-soft);font-size:13px;font-weight:700;padding:7px 14px;border-radius:999px;transition:background .2s,color .2s}.option-btn:hover{color:var(--ink)}.option-btn.active{background:var(--blue);color:#fff}.lessons-list{display:flex;flex-direction:column;gap:4px}.lesson-item{display:flex;align-items:flex-start;gap:10px;text-align:left;background:transparent;padding:10px;border-radius:var(--radius-sm);transition:background .2s}.lesson-item:hover{background:#f1f5f9}.lesson-item.active{background:var(--blue-soft)}.lesson-check{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#cbd5e1;border:2px solid #E2E8F0;margin-top:1px}.lesson-check.done{background:var(--green);color:#fff;border-color:var(--green)}.lesson-copy{display:flex;flex-direction:column;gap:2px}.lesson-title{font-size:13px;font-weight:700;color:var(--ink)}.lesson-desc{font-size:12px;color:var(--ink-soft)}.practice-tip{background:var(--blue-soft);color:var(--blue-dark);font-size:13px;font-weight:600;line-height:1.5;padding:14px 16px;border-radius:var(--radius-md)}@media (max-width: 900px){.practice-layout{grid-template-columns:1fr}.practice-sidebar{order:-1}}.vk{margin:10px auto 2px;max-width:620px;-webkit-user-select:none;user-select:none}.vk-row{display:flex;justify-content:center;gap:3px;margin-bottom:3px}.vk-key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border-radius:6px;font-size:12px;font-weight:700;color:var(--ink-soft, #556);background:#f2f5fa;box-shadow:inset 0 -2px #00000014;text-transform:uppercase;position:relative;transition:transform .08s,background .12s,color .12s}.vk-key.vk-wide{min-width:52px;font-size:10px}.vk-key.vk-space{min-width:180px;font-size:10px}.vk-key.home-bump:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:10px;height:2px;border-radius:2px;background:currentColor;opacity:.5}.vk-key[data-finger=lp],.vk-legend-dot[data-finger=lp]{background:#fde8ec}.vk-key[data-finger=lr],.vk-legend-dot[data-finger=lr]{background:#fdf3dc}.vk-key[data-finger=lm],.vk-legend-dot[data-finger=lm]{background:#e6f6e9}.vk-key[data-finger=li],.vk-legend-dot[data-finger=li]{background:#e3f0fd}.vk-key[data-finger=ri],.vk-legend-dot[data-finger=ri]{background:#e9e9fc}.vk-key[data-finger=rm],.vk-legend-dot[data-finger=rm]{background:#e6f6e9}.vk-key[data-finger=rr],.vk-legend-dot[data-finger=rr]{background:#fdf3dc}.vk-key[data-finger=rp],.vk-legend-dot[data-finger=rp]{background:#fde8ec}.vk-key[data-finger=th],.vk-legend-dot[data-finger=th]{background:#f0f0f0}.vk-key.next{background:var(--blue, #2f7de1);color:#fff;transform:translateY(-2px);box-shadow:0 3px 8px #2f7de173;animation:vk-pulse .9s ease-in-out infinite}@keyframes vk-pulse{0%,to{box-shadow:0 3px 8px #2f7de173}50%{box-shadow:0 3px 14px #2f7de1bf}}.vk-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;font-size:11px;color:var(--ink-soft, #667)}.vk-legend-item{display:inline-flex;align-items:center;gap:4px}.vk-legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px #0000000f}@media (max-width: 640px){.vk{display:none}}.keyboard-toggle{margin-right:8px}.keyboard-toggle.on{color:var(--blue, #2f7de1)}.lesson-banner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:2px 0 10px;padding:8px 12px;border-radius:10px;background:#f4f8fe;font-size:13px;color:var(--ink-soft, #556);min-height:52px;align-content:flex-start}.lesson-banner b{color:var(--ink, #223)}.lesson-stars{color:#f5b301;letter-spacing:1px;font-size:12px}.lesson-stars.big{font-size:26px;letter-spacing:3px}.star-off{color:#d8dee7}.lesson-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.lesson-best{font-size:11px;color:var(--ink-soft, #778)}.lesson-result{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:10px}.lesson-result-note{font-size:12px;color:var(--ink-soft, #667)}.weak-keys{margin:12px auto;max-width:420px;text-align:center}.weak-keys-label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft, #667);margin-bottom:8px}.weak-keys-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;list-style:none;margin:0;padding:0}.weak-key-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;background:#fdecef;color:#c0334a;font-size:13px}.weak-key-chip strong{text-transform:uppercase}.weak-key-count{font-size:11px;opacity:.75}.weak-keys-btn{margin-top:10px}.vk{max-width:860px}.vk-flex{display:flex;align-items:center;justify-content:center;gap:12px}.vk-board{flex:0 1 auto;min-width:0}.vk-hand-col{flex:0 0 auto;display:flex;align-items:flex-end;padding-bottom:6px}.vk-hand{width:104px;height:auto}.vk-hand-col:first-child .vk-hand{transform:rotate(10deg)}.vk-hand-col:last-child .vk-hand{transform:rotate(-10deg)}.vk-caption-row{display:flex;justify-content:center;margin-top:6px;min-height:18px}@media (max-width: 920px){.vk-hand-col{display:none}}.vk-palm{fill:#f2f5fa;stroke:#dde4ee;stroke-width:1.5}.vk-finger{stroke:#dde4ee;stroke-width:1.5;transition:fill .12s}.vk-finger[data-finger=lp],.vk-finger[data-finger=rp]{fill:#fde8ec}.vk-finger[data-finger=lr],.vk-finger[data-finger=rr]{fill:#fdf3dc}.vk-finger[data-finger=lm],.vk-finger[data-finger=rm]{fill:#e6f6e9}.vk-finger[data-finger=li],.vk-finger[data-finger=ri]{fill:#e3f0fd}.vk-finger[data-finger=th]{fill:#f0f0f0}.vk-finger.active{fill:var(--blue, #2f7de1);stroke:var(--blue, #2f7de1);animation:vk-finger-pulse .9s ease-in-out infinite}@keyframes vk-finger-pulse{0%,to{opacity:1}50%{opacity:.65}}.vk-finger-caption{min-width:150px;text-align:center;font-size:13px;font-weight:700;color:var(--blue, #2f7de1)}.practice-card{position:relative}.practice-pin-btn{position:absolute;top:10px;right:12px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f2f5fa;font-size:14px;line-height:1;box-shadow:var(--shadow-soft);transition:transform .15s,background .15s,filter .15s;z-index:2;filter:grayscale(1) opacity(.55)}.practice-pin-btn:hover{filter:grayscale(.4) opacity(.85);transform:scale(1.08)}.practice-pin-btn.pinned{background:#fbf0f2;box-shadow:0 0 0 1.5px #e5484d4d inset,var(--shadow-soft);filter:saturate(.7);transform:rotate(-35deg)}.practice-pin-btn.pinned:hover{transform:rotate(-35deg) scale(1.08)}.cert-card{margin-top:16px;padding:14px;border-radius:14px;display:flex;align-items:flex-start;gap:12px}.cert-card-progress{background:#f1f5f9}.cert-card-done{background:linear-gradient(135deg,var(--blue-soft, #EFF6FF),#ECFDF5);border:1px solid rgba(37,99,235,.18)}.cert-card-done.cert-distinction{background:linear-gradient(135deg,#fef9c3,#fef3c7);border:1px solid rgba(217,119,6,.25)}.cert-icon{font-size:28px;line-height:1;flex-shrink:0}.cert-progress-line{margin:0 0 2px;font-size:13px;color:var(--ink)}.cert-progress-hint{margin:0;font-size:12px;color:var(--ink-soft);line-height:1.4}.cert-body{min-width:0;flex:1}.cert-title{margin:0 0 2px;font-weight:800;font-size:14px;color:var(--ink)}.cert-sub{margin:0 0 10px;font-size:12px;color:var(--ink-soft);line-height:1.4}.cert-actions{display:flex;flex-wrap:wrap;gap:8px}.cert-name-input{flex:1;min-width:140px;padding:8px 10px;border-radius:8px;border:1px solid rgba(15,27,45,.14);font-size:13px;font-family:inherit}.cert-download-btn{padding:8px 14px;border-radius:8px;background:var(--blue, #2563EB);color:#fff;font-weight:700;font-size:13px;white-space:nowrap}.cert-download-btn:hover{background:var(--blue-dark, #1D4ED8)}.cert-download-btn:disabled{opacity:.5;cursor:not-allowed}.cert-id-line{margin:8px 0 0;font-size:11px;color:var(--ink-soft)}.cert-tier-badge{color:var(--blue, #2563EB);font-weight:700}.cert-next-target{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:#2563eb14;color:var(--blue-dark, #1D4ED8);font-size:12px;font-weight:600}.race-row{max-width:1180px;margin:28px auto 40px;display:grid;grid-template-columns:1fr 300px;gap:24px;position:relative;z-index:5;padding:0 32px}.race-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px 32px}.race-title{font-weight:800;font-size:16px;margin:0 0 20px;color:var(--ink)}.lane-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.lane-row:last-child{margin-bottom:0}.lane-label{width:64px;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.lane-name{font-weight:700;font-size:13px;color:var(--ink);line-height:1}.lane-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;line-height:1.4}.lane-tag.you{background:var(--blue-soft);color:var(--blue-dark)}.lane-tag.ai{background:#f1f5f9;color:var(--ink-soft)}.lane{position:relative;height:64px;flex:1;border-radius:12px;background:#3a3f47;overflow:hidden}.lane:before{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-top:3px dashed rgba(255,255,255,.35);transform:translateY(-50%)}.finish{position:absolute;right:10px;top:6px;bottom:6px;width:8px;background:repeating-linear-gradient(45deg,#fff 0,#fff 6px,#1a1a1a 6px,#1a1a1a 12px);border-radius:3px}.bird{position:absolute;top:8px;left:0;width:48px;height:48px;transition:transform .4s cubic-bezier(.3,.6,.3,1);will-change:transform;filter:drop-shadow(0 4px 4px rgba(0,0,0,.25))}.bird svg{display:block;animation:bounce .6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.bird svg{width:100%;height:100%;display:block}.wing{transform-origin:60% 50%;animation:flap .35s ease-in-out infinite}.wing.still{animation:none}@keyframes flap{0%,to{transform:rotate(0)}50%{transform:rotate(-18deg)}}.trail{position:absolute;top:26px;height:4px;border-radius:4px;background:linear-gradient(90deg,#2563eb00,#2563eb80);left:0;transition:width .4s ease}.particle{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--green);animation:particleUp .7s ease-out forwards;pointer-events:none}@keyframes particleUp{0%{transform:translateY(0) scale(1);opacity:.9}to{transform:translateY(-24px) scale(.4);opacity:0}}@media (max-width: 900px){.race-row{grid-template-columns:1fr}}@media (max-width: 480px){.lane-label{width:46px}.lane-name{font-size:11px}.lane-tag{font-size:9px;padding:1px 6px}}.lane-ghost .bird{opacity:.75;filter:drop-shadow(0 0 6px rgba(139,92,246,.5))}.lane-ghost .trail{background:linear-gradient(90deg,#8b5cf600,#8b5cf680)}.lane-tag.pb{background:#ede9fe;color:#6d28d9}.mode-switch-section{max-width:1180px;margin:0 auto 44px;padding:0 32px}.mode-switch-heading{font-size:17px;font-weight:800;color:var(--ink, #0F172A);text-align:center;margin:0 0 12px}.mode-switch-intro{color:var(--ink-soft, #64748B);font-size:14px;line-height:1.6;max-width:62ch;margin:0 0 18px}.govt-typing-title,.govt-typing-intro{transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .govt-typing-title{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .govt-typing-intro{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.mode-switch-unverified{display:block;margin-top:6px;font-size:9.5px;font-weight:700;color:#b45309}.mode-switch-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}@media (max-width: 900px){.mode-switch-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.mode-switch-cards{grid-template-columns:repeat(2,1fr)}}.mode-switch-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:13px 12px 12px;background:#fff;border:1px solid #E2E8F0;border-radius:12px;text-align:center;transition:transform .15s,border-color .15s,box-shadow .15s}.mode-switch-card:hover:not(:disabled){transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 6px 16px #2563eb14}.mode-switch-card:disabled{opacity:.6;cursor:default}.mode-switch-card.active{border-color:var(--blue, #2563EB);box-shadow:0 0 0 2px #2563eb26}.mode-switch-icon{font-size:22px;line-height:1}.mode-switch-label{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--ink, #0F172A);white-space:nowrap}.mode-switch-sub{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft, #64748B);white-space:nowrap}.mode-switch-blurb{margin:4px 0 0;font-size:10.5px;line-height:1.4;color:var(--ink-soft, #64748B)}.mode-switch-now{position:absolute;top:-8px;right:8px;font-size:9px;font-weight:800;background:var(--blue, #2563EB);color:#fff;padding:2px 7px;border-radius:999px}.home-info,.home-faq{max-width:1180px;margin:0 auto 40px;padding:0 32px;position:relative;z-index:5}.home-info-title{font-weight:800;font-size:22px;color:var(--ink);margin:0 0 10px}.home-info-lede{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:760px;margin:0 0 24px}.home-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.home-info-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px 24px}.home-info-card h2{font-size:15px;font-weight:800;color:var(--ink);margin:0 0 8px}.home-info-card p{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin:0}.home-info-card a{color:var(--blue-dark);font-weight:600;text-decoration:underline;text-decoration-color:var(--blue-soft);text-underline-offset:2px}.home-info-card a:hover{text-decoration-color:var(--blue-dark)}.home-info-more{margin-top:6px}.home-info-more summary{font-size:12.5px;font-weight:700;color:var(--blue-dark);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:4px}.home-info-more summary::-webkit-details-marker{display:none}.home-info-more summary:after{content:"↓";font-size:11px;transition:transform .15s ease}.home-info-more[open] summary:after{transform:rotate(180deg)}.home-info-more p{margin-top:8px}.home-info-tips-list{max-width:760px;margin:12px 0 0;padding:0 0 0 20px;display:flex;flex-direction:column;gap:8px}.home-info-tips-list li{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}.home-info-tips-list a{color:var(--blue-dark);font-weight:600;text-decoration:underline;text-decoration-color:var(--blue-soft);text-underline-offset:2px}.home-info-tips-list a:hover{text-decoration-color:var(--blue-dark)}.home-faq-list{display:flex;flex-direction:column;gap:10px;max-width:760px}.home-faq-item{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:14px 18px}.home-faq-item summary{font-weight:700;font-size:14px;color:var(--ink);cursor:pointer;list-style:none}.home-faq-item summary::-webkit-details-marker{display:none}.home-faq-item summary:before{content:"+";display:inline-block;width:16px;color:var(--blue);font-weight:800}.home-faq-item[open] summary:before{content:"–"}.home-faq-item p{margin:10px 0 2px 16px;font-size:13.5px;line-height:1.6;color:var(--ink-soft)}@media (max-width: 900px){.home-info-grid{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.home-info,.home-faq{padding:0 16px}.home-info-grid{grid-template-columns:1fr}.home-info-title{font-size:19px}}.home-info-title,.home-info-lede{transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .home-info-title{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .home-info-lede{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.home-info-tips-list li{transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .home-info-tips-list li{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.gauge-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;display:flex;flex-direction:column;align-items:center}.gauge-wrap{position:relative;width:220px;height:130px}.gauge-needle{position:absolute;left:50%;bottom:0;width:4px;height:82px;background:var(--ink);border-radius:4px;transform-origin:bottom center;transform:translate(-50%) rotate(-90deg);transition:transform .5s cubic-bezier(.3,.7,.3,1)}.gauge-needle:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:var(--ink)}.gauge-stats{text-align:center;margin-top:6px}.wpm-big{font-family:Nunito,sans-serif;font-weight:900;font-size:40px;color:var(--ink);line-height:1}.wpm-label{font-size:12px;color:var(--ink-soft);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.stat-row{display:flex;gap:18px;margin-top:16px;width:100%;justify-content:center}.stat-chip{background:#f8fafc;border-radius:12px;padding:10px 16px;text-align:center;flex:1}.stat-chip .val{font-weight:800;font-size:18px;color:var(--ink)}.stat-chip .lab{font-size:11px;color:var(--ink-soft);font-weight:600}.stat-chip.acc .val{color:var(--green)}.stat-chip.combo .val{color:var(--amber)}.dashboard-wrap{max-width:1180px;margin:36px auto 60px;padding:0 32px;position:relative;z-index:5}.dashboard-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:32px}.dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dash-head-actions{display:flex;align-items:center;gap:12px}.dash-title{font-weight:800;font-size:20px;margin:0}.create-btn{background:var(--blue);color:#fff;font-weight:700;font-size:14px;padding:11px 20px;border-radius:12px;display:flex;align-items:center;gap:6px;box-shadow:0 6px 16px #2563eb4d;transition:transform .15s,box-shadow .15s}.create-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #2563eb61}table{width:100%;border-collapse:collapse}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}thead th{text-align:left;font-size:12px;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:0 14px 12px;white-space:nowrap}tbody tr{border-radius:14px;transition:background .2s}tbody tr:hover{background:#f8fafc}tbody td{padding:14px;font-size:14px;font-weight:600;color:var(--ink);vertical-align:middle;white-space:nowrap}.avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.progress-track{width:120px;height:8px;border-radius:999px;background:#edf1f6;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--green));animation:growBar 1.2s ease forwards;width:0}@keyframes growBar{0%{width:0}to{width:var(--w, 0)}}@media (max-width: 600px){.dashboard-wrap{padding:0 12px}.dashboard-card{padding:16px}.dash-head{flex-wrap:wrap;gap:12px}.dash-head-actions{flex-wrap:wrap;width:100%}.students-table thead th:nth-child(3),.students-table tbody td:nth-child(3),.students-table thead th:nth-child(6),.students-table tbody td:nth-child(6){display:none}thead th,tbody td{padding:10px}.progress-track{width:70px}}.page-top{padding-top:36px}.dash2-wrap{max-width:1080px;margin:0 auto;padding:32px 20px 60px}.dash2-header{margin-bottom:20px}.dash2-header h1{font-size:26px;margin:0 0 6px;transition:color 4s ease}.dash2-sub{color:var(--ink-soft);font-size:14px;margin:0;transition:color 4s ease}.dash2-header.night h1,.dash2-header.night .dash2-sub{color:#fdf9f0}.dash2-signin-nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.dash2-signin-nudge p{margin:0;font-size:14px;color:var(--ink)}.dash2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.dash2-card{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:20px 22px;display:flex;flex-direction:column}.dash2-card h3{font-size:15px;font-weight:800;margin:0 0 12px;color:var(--ink)}.dash2-stat-line{font-size:14px;color:var(--ink);margin:0 0 4px}.dash2-empty{color:var(--ink-soft);font-size:13px}.dash2-drill-table{width:100%;border-collapse:collapse;font-size:13px}.dash2-drill-table th{text-align:left;color:var(--ink-soft);font-weight:700;padding:6px 8px;border-bottom:1px solid #EEF1F5}.dash2-drill-table td{padding:8px;border-bottom:1px solid #F3F5F8}.dash2-cert-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash2-cert-history li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;background:#f8fafc;font-size:13px}.dash2-cert-history-name{font-weight:700}.dash2-cert-history-meta{color:var(--ink-soft)}.heatmap-empty{color:var(--ink-soft);font-size:13px}.key-heatmap-board{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.heatmap-row{display:flex;gap:4px}.heatmap-key{flex:1;min-width:0;text-align:center;text-transform:uppercase;font-size:12px;font-weight:700;padding:8px 0;border-radius:6px;background:#eef1f5;color:var(--ink-soft)}.heatmap-space{flex:6}.heatmap-key.hk-0{background:#eef1f5;color:var(--ink-soft)}.heatmap-key.hk-1{background:#fef3c7;color:#92400e}.heatmap-key.hk-2{background:#fed7aa;color:#9a3412}.heatmap-key.hk-3{background:#fdba74;color:#7c2d12}.heatmap-key.hk-4{background:#f87171;color:#fff}.heatmap-top-list{display:flex;flex-direction:column;gap:6px}.heatmap-top-label{font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}.heatmap-top-chips{display:flex;flex-wrap:wrap;gap:6px}.heatmap-top-chip{padding:4px 10px;border-radius:999px;background:#fef2f2;color:#b91c1c;font-size:12px;font-weight:600}.dash2-card-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.dash2-card-head-row h3,.dash2-card-head-row .dash2-stat-line{margin:0}.dash2-jump-btn{background:var(--blue-soft, #EFF6FF);color:var(--blue-dark, #1D4ED8);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;border:none;white-space:nowrap}.dash2-jump-btn:hover{background:#dbeafe}.dash2-head-actions{display:flex;align-items:center;gap:8px}.dash2-reset-btn{background:transparent;color:#94a3b8;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #E2E8F0;white-space:nowrap;cursor:pointer}.dash2-reset-btn:hover{background:#f8fafc;color:#64748b}.dash2-drill-row{cursor:pointer}.dash2-drill-row:hover{background:#f8fafc}.dash2-card-wide{grid-column:span 2}@media (max-width: 1100px){.dash2-card-wide{grid-column:span 1}}.dash2-card-wide .dash2-class-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;align-content:start}.dash2-class-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash2-class-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:8px;background:#f8fafc}.dash2-class-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash2-class-name{font-weight:700;font-size:13px;color:var(--ink)}.dash2-class-meta{font-size:12px;color:var(--ink-soft)}.dash2-empty-block{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.dash2-empty-block .dash2-empty{margin:0}.dash2-drill-single{cursor:pointer}.dash2-drill-single-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.dash2-drill-single-name{font-weight:800;font-size:14px;color:var(--ink)}.dash2-drill-dots{display:flex;gap:5px}.dash2-dot{width:6px;height:6px;border-radius:50%;background:#e2e8f0;transition:background .2s}.dash2-dot.active{background:var(--blue, #2563EB)}.dash2-drill-single-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.dash2-drill-single-stats>div{background:#f8fafc;border-radius:8px;padding:10px;text-align:center;min-width:0;overflow-wrap:break-word}.dash2-drill-single-stats b{display:block;font-size:15px;color:var(--blue, #2563EB)}.dash2-drill-single-stats span{display:block;font-size:11px;color:var(--ink-soft);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.dash2-next-drill-btn{display:block;width:100%;margin-top:10px;text-align:center}.dash2-progress-row{margin-top:auto;padding-top:14px}.dash2-progress-track{width:100%;height:8px;border-radius:999px;background:#edf1f6;overflow:hidden}.dash2-progress-label{display:block;margin-top:6px;font-size:11px;color:var(--ink-soft);text-align:right}.leaderboard-page.dashboard-wrap{margin-top:0}.leaderboard-page.page-top{padding-top:0}.leaderboard-title{margin-top:20px;margin-bottom:10px}.leaderboard-intro{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:760px;margin:0 0 20px}.leaderboard-intro a{color:var(--blue);text-decoration:underline;text-decoration-color:var(--blue-soft)}.leaderboard-intro a:hover{text-decoration-color:var(--blue-dark)}.leaderboard-title,.leaderboard-intro{transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .leaderboard-title{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .leaderboard-intro{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.app-sky.night~main .leaderboard-intro a{color:#93c5fd}.lb-tabs{display:flex;gap:6px;background:#edf1f6;border-radius:12px;padding:4px}.lb-tab{background:transparent;color:var(--ink-soft);font-weight:700;font-size:13px;padding:8px 16px;border-radius:9px;transition:background .15s,color .15s}.lb-tab.active{background:#fff;color:var(--blue);box-shadow:0 2px 6px #0f1b2d14}.lb-status{color:var(--ink-soft);font-size:14px;padding:24px 4px;text-align:center}.lb-guest-nudge{margin-top:-8px;margin-bottom:16px}.lb-error{color:var(--red)}.lb-rank{font-weight:800;font-size:16px;width:48px}.lb-player{display:flex;align-items:center;gap:12px}.lb-wpm{font-weight:800;color:var(--blue)}.lb-meta{color:var(--ink-soft);font-weight:600;text-transform:capitalize}.lb-you-badge{display:inline-block;margin-left:8px;background:var(--blue-soft);color:var(--blue-dark);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px}tr.lb-row-me{background:#f0f7ff}tr.lb-row-me:hover{background:#e4f0ff}.lb-my-rank-body{border-top:2px dashed #D7E1EC}tr.lb-divider td{padding:10px 4px 4px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border:none}@media (max-width: 600px){.dash-head{flex-wrap:wrap;gap:12px}thead th:nth-child(5),tbody td:nth-child(5){display:none}}.cls-page-layout{display:flex;gap:24px;min-height:360px}.cls-page-sidebar{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:190px;border-right:1px solid rgba(15,27,45,.08);padding-right:16px}.cls-side-tab{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:transparent;color:var(--ink-soft);font-weight:700;font-size:14px;text-align:left;transition:background .15s,color .15s}.cls-side-tab:hover{background:#2563eb0f;color:var(--ink)}.cls-side-tab.active{background:var(--blue-soft);color:var(--blue-dark)}.cls-side-tab-icon{font-size:18px}.cls-page-content{flex:1;min-width:0}.cls-panel{max-width:420px}.cls-panel-loading{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 16px}.cls-spinner{width:36px;height:36px;border-radius:50%;border:3px solid #E2E8F0;border-top-color:var(--blue, #2563EB);animation:cls-spin .7s linear infinite;margin-bottom:16px}@keyframes cls-spin{to{transform:rotate(360deg)}}.cls-panel-wide{max-width:640px}.cls-create-layout.cls-panel-wide{max-width:880px}.cls-panel-title{font-size:20px;margin:0 0 6px}.cls-panel-sub{color:var(--ink-soft);font-size:14px;margin:0 0 16px}.cls-create-layout{display:grid;grid-template-columns:1fr 280px;gap:28px;align-items:stretch}.cls-create-fields{min-width:0}.cls-create-summary{position:sticky;top:12px;display:flex;align-self:stretch;box-sizing:border-box}.cls-create-summary .cls-summary-box{flex:1;display:flex;flex-direction:column;box-sizing:border-box;height:100%}.cls-create-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.cls-create-header-icon{font-size:30px;line-height:1;flex-shrink:0;width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--blue-soft)}.cls-create-header .cls-panel-title{font-size:22px;margin-bottom:2px}.cls-create-header .cls-panel-sub{margin-bottom:0}.cls-step{margin-bottom:16px}.cls-step:last-of-type{margin-bottom:10px}.cls-step-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.cls-step-badge{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center}.cls-step-title{font-size:15.5px;font-weight:700;color:var(--ink);cursor:default}label.cls-step-title{cursor:text}.cls-step-desc{color:var(--ink-soft);font-size:13px;margin:-2px 0 8px}.cls-step-input{width:100%;font-family:inherit;font-size:15px;font-weight:500;color:var(--ink);padding:12px 14px;border-radius:var(--radius-sm);border:1px solid rgba(15,27,45,.14);background:#fff}.cls-step-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.cls-field-card{border:1px solid rgba(15,27,45,.1);border-radius:var(--radius-md);background:#fff}.cls-field-row-2{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.cls-field-card .cls-field{margin-bottom:0;padding:8px 16px;gap:3px;border-right:1px solid rgba(15,27,45,.08)}.cls-field-card .cls-field:last-child{border-right:none}.cls-field-card .cls-field-center{align-items:center;text-align:center}.cls-field-card .cls-field-hint{color:var(--ink-soft);margin:0}.cls-field-card .cls-field>.cls-field-hint:first-child{margin-top:0}.cls-field-card .cls-field-hint-center{text-align:center}@media (max-width: 700px){.cls-field-row-2{grid-template-columns:1fr}.cls-field-card .cls-field{border-right:none;border-bottom:1px solid rgba(15,27,45,.08)}.cls-field-card .cls-field:last-child{border-bottom:none}}.cls-dropdown{position:relative;display:flex;align-items:center;border:1px solid rgba(15,27,45,.14);border-radius:var(--radius-sm);background:#fff;height:44px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.cls-dropdown:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.cls-dropdown .cls-dropdown-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;pointer-events:none;z-index:1}.cls-dropdown .cls-dropdown-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none!important;background:transparent!important;font-family:inherit;font-weight:700;font-size:14px;color:var(--ink);padding:0 30px 0 38px!important;margin:0;border-radius:inherit;cursor:pointer;text-overflow:ellipsis}.cls-dropdown .cls-dropdown-select:focus{outline:none;box-shadow:none}.cls-dropdown .cls-dropdown-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--ink-soft);pointer-events:none;z-index:1}.cls-segmented{display:flex;align-items:center;gap:2px;height:44px;background:var(--green-soft);border:1px solid #BEEACB;border-radius:999px;padding:4px}.cls-segment{flex:1;height:100%;border:none;background:transparent;border-radius:999px;font-family:inherit;font-weight:700;font-size:13px;color:var(--ink-soft);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap;padding:0 10px}.cls-segment.active{background:#fff;color:#15803d;box-shadow:0 1px 4px #0f1b2d1f}.cls-segment:disabled{opacity:.4;cursor:not-allowed}.cls-summary-box{border:2px dashed #C7D2E8;border-radius:var(--radius-md);padding:22px 18px 20px;background:#fafbff}.cls-summary-eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--blue-dark);margin-bottom:14px}.cls-summary-illustration{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;background:linear-gradient(180deg,#fde9c8,#f8d9a6);display:flex;align-items:center;justify-content:center;font-size:34px}.cls-summary-name{font-size:17px;font-weight:800;color:var(--ink);margin-bottom:14px;text-align:center;word-break:break-word}.cls-summary-code-box{display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px dashed #B9C6E8;border-radius:var(--radius-sm);background:#fff;padding:10px 12px;margin-bottom:16px}.cls-summary-code-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.cls-summary-code-value{font-size:13px;font-weight:700;color:var(--blue-dark)}.cls-summary-list{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}.cls-summary-list li{display:flex;align-items:center;justify-content:space-between;font-size:13px}.cls-summary-label{color:var(--ink-soft);font-weight:600}.cls-summary-value{font-weight:700;color:var(--ink)}.cls-summary-btn{width:100%;margin-top:auto}.cls-summary-footnote{text-align:center;font-size:11.5px;font-weight:600;color:var(--ink-soft);margin:10px 0 0}@media (max-width: 760px){.cls-create-layout{grid-template-columns:1fr}.cls-create-summary{position:static}}.cls-pill-row{display:flex;flex-wrap:wrap;gap:8px}.cls-pill{background:#f1f5f9;color:var(--ink-soft);font-weight:700;font-size:13px;padding:8px 14px;white-space:nowrap;border-radius:999px;border:1.5px solid transparent;transition:all .15s}.cls-pill:hover:not(:disabled){background:var(--blue-soft);color:var(--blue-dark)}.cls-pill.active{background:var(--blue-soft);color:var(--blue-dark);border-color:var(--blue)}.cls-pill:disabled{opacity:.4;cursor:not-allowed}.cls-mode-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}@media (max-width: 640px){.cls-mode-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}.cls-mode-grid .mode-card{width:auto;border-width:1px;padding-top:10px;padding-bottom:10px;gap:2px}.cls-mode-grid .mode-card .mode-title,.cls-mode-grid .mode-card .mode-sub{line-height:1.15}.cls-mode-grid .mode-card.selected{border:1.5px solid var(--blue);box-shadow:var(--shadow-soft)}.cls-field-row{display:grid;grid-template-columns:auto 1fr;gap:28px;margin-bottom:14px}.cls-field-row .cls-field{margin-bottom:0;align-items:center}.cls-field-row .cls-field span:first-child{text-align:center}.cls-field-row .cls-pill-row{flex-wrap:nowrap;justify-content:center}@media (max-width: 560px){.cls-field-row{grid-template-columns:1fr;gap:14px}.cls-field-row .cls-pill-row{flex-wrap:wrap;justify-content:flex-start}.cls-field-row .cls-field span:first-child{text-align:left}}.cls-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;font-weight:700;color:var(--ink-soft)}.cls-field-note{font-size:12px;font-weight:500;color:var(--ink-soft);line-height:1.4;margin:8px 0 0}.cls-field input,.cls-field select{font-family:inherit;font-size:15px;font-weight:500;color:var(--ink);padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(15,27,45,.12);background:#fff}.cls-field input:focus,.cls-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.cls-code-input{letter-spacing:.3em;text-transform:uppercase;font-weight:700}.cls-code-reveal{font-size:40px;font-weight:800;letter-spacing:.25em;text-align:center;color:var(--blue, #2563EB);background:var(--blue-soft, #EFF6FF);border-radius:14px;padding:20px 12px;margin:16px 0 20px}.cls-code-display{font-size:32px;font-weight:800;letter-spacing:.25em;color:var(--blue-dark);background:var(--blue-soft);border-radius:var(--radius-sm);padding:16px;text-align:center;margin-bottom:16px}.btn-primary{background:var(--blue-soft);color:var(--blue-dark);font-weight:700;font-size:14px;padding:11px 20px;border-radius:12px;box-shadow:0 4px 10px #2563eb1f;transition:transform .15s,box-shadow .15s,background .15s}.btn-primary:hover{background:#cde0ff;transform:translateY(-2px);box-shadow:0 8px 16px #2563eb2e}.btn-primary:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}.btn-ghost{background:transparent;color:var(--blue-dark);font-weight:700;font-size:14px;padding:10px 16px;border-radius:12px;border:1px solid var(--blue-soft)}.btn-ghost:hover{background:var(--blue-soft)}.btn-ghost-sm{padding:6px 12px;font-size:12px}.cls-signin-prompt{max-width:420px;text-align:center;padding:32px 16px}.cls-signin-icon{font-size:32px;margin-bottom:8px}.cls-signin-title{font-size:18px;margin:0 0 6px}.cls-signin-msg{color:var(--ink-soft);font-size:14px;margin:0 0 18px}.cls-signin-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.cls-signin-error{color:var(--red);font-size:13px;margin:-6px 0 12px}.cls-list{display:flex;flex-direction:column;gap:12px}.cls-card{background:#fafbff;border:1px solid rgba(15,27,45,.08);border-radius:var(--radius-sm);padding:14px 16px}.cls-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.cls-card-name{font-weight:700;font-size:15px}.cls-card-code{font-family:monospace;letter-spacing:.15em;background:var(--blue-soft);color:var(--blue-dark);font-weight:700;padding:2px 8px;border-radius:6px;font-size:13px}.cls-card-meta{display:flex;gap:16px;color:var(--ink-soft);font-size:13px;margin-bottom:8px}.cls-roster{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(15,27,45,.12)}.cls-roster-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cls-roster-head h4{margin:0;font-size:15px}@media (max-width: 720px){.cls-page-layout{flex-direction:column}.cls-page-sidebar{flex-direction:row;width:100%;border-right:none;border-bottom:1px solid rgba(15,27,45,.08);padding-right:0;padding-bottom:12px;overflow-x:auto;touch-action:pan-x pan-y}.cls-side-tab{flex:1;justify-content:center;white-space:nowrap}}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.class-card{background:var(--card);border:2px solid rgba(15,27,45,.06);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:12px;text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;align-items:center;gap:10px;min-width:0}.class-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #0f1b2d1f}.class-card.selected{border-color:var(--blue);box-shadow:0 14px 30px #2563eb29}.class-card-body{min-width:0}.class-badge{width:36px;height:36px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Nunito,sans-serif;font-weight:800;font-size:15px;flex-shrink:0;text-transform:uppercase}.class-badge.lg{width:52px;height:52px;font-size:17px}.class-name{font-size:16px;font-weight:800;margin:0 0 2px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-meta{font-size:12.5px;color:var(--ink-soft);margin:0;font-weight:600;overflow-wrap:break-word}.class-meta.no-gap{margin-top:2px}.class-tag{display:inline-block;margin-top:6px;background:#f1f5f9;color:var(--ink-soft);font-size:11px;font-weight:800;text-transform:capitalize;padding:4px 10px;border-radius:999px}.roster-card{border-top:1px solid rgba(15,27,45,.08);padding-top:20px}.class-detail-head{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:18px}.class-detail-title{font-size:18px;font-weight:800;margin:0}.class-code-chip{margin-left:auto;background:var(--blue-soft);color:var(--blue-dark);font-family:Nunito,sans-serif;font-weight:800;font-size:15px;letter-spacing:.18em;padding:8px 14px;border-radius:10px}.class-code-chip-btn{border:none;cursor:pointer;transition:background .15s,transform .1s}.class-code-chip-btn:hover{background:#dbeafe}.class-code-chip-btn:active{transform:scale(.97)}.class-detail-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-start-typing{background:linear-gradient(90deg,var(--green),#16A34A);color:#fff;font-weight:800;font-size:14px;letter-spacing:.02em;padding:10px 18px;border-radius:12px;box-shadow:0 6px 16px #22c55e4d;transition:transform .15s,box-shadow .15s}.btn-start-typing:hover{transform:translateY(-2px);box-shadow:0 10px 20px #22c55e59}.btn-del{background:var(--red);color:#fff;font-weight:700;font-size:13px;padding:10px 16px;border-radius:12px;transition:transform .15s,box-shadow .15s}.btn-del:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #ef44444d}.btn-del:disabled{opacity:.6;cursor:default;transform:none}.btn-del-sm{background:#fef2f2;color:var(--red);font-weight:700;font-size:12px;padding:6px 12px;border-radius:8px;border:1px solid #FECACA;transition:background .15s,border-color .15s}.btn-del-sm:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.btn-del-sm:disabled{opacity:.6;cursor:default}.roster-stats{margin-bottom:16px;justify-content:flex-start}.cls-roster-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.cls-roster-hint{font-size:12.5px;color:var(--ink-soft);font-weight:600}.roster-name{font-weight:700}.roster-edit-name-btn{background:none;border:none;padding:0 0 0 6px;font-size:12px;opacity:.5;vertical-align:middle}.roster-edit-name-btn:hover{opacity:1}.roster-tag{display:inline-block;margin-left:8px;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.roster-tag.guest{background:var(--blue-soft);color:var(--blue-dark)}.roster-tag.roll{background:var(--green-soft);color:#15803d;text-transform:none;letter-spacing:0}.empty-roster{color:var(--ink-soft);font-size:14px;font-weight:500;text-align:center;padding:20px 0 8px}.student-stats{max-width:420px}@media (max-width: 700px){.class-detail-actions{margin-left:0;width:100%}}@media (max-width: 700px){.classes-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.class-code-chip{margin-left:0}.class-detail-head{flex-wrap:wrap}}.cls-page .cls-panel,.cls-page .cls-signin-prompt{margin-left:auto;margin-right:auto}.cls-scroller-wrap{position:relative;margin:14px 0 20px}.cls-scroller{display:flex;gap:14px;overflow-x:auto;touch-action:pan-x pan-y;scroll-snap-type:x proximity;padding:4px 2px 10px;-webkit-overflow-scrolling:touch}.cls-card{display:flex;gap:12px;align-items:flex-start;min-width:250px;max-width:290px;flex-shrink:0;scroll-snap-align:start;text-align:left;font:inherit;padding:14px;background:var(--card);border:2px solid #E2E8F0;border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s,box-shadow .15s}.cls-card:hover{border-color:#bfdbfe}.cls-card.selected{border-color:var(--blue);box-shadow:0 6px 18px #2563eb26}.cls-card-body{min-width:0}.cls-card-name{margin:0 0 2px;font-size:1rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cls-card.selected .cls-card-name{color:var(--blue)}.cls-card-code{margin:0;font-size:.8rem;font-weight:700;color:var(--ink-soft);letter-spacing:.04em}.cls-card-meta{margin:2px 0 6px;font-size:.78rem;color:var(--ink-soft)}.cls-card-count{margin:0;font-size:.8rem;color:var(--ink-soft)}.cls-scroller-arrow{position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1px solid #E2E8F0;background:var(--card);box-shadow:var(--shadow-soft);font-size:1.3rem;line-height:1;color:var(--ink-soft);cursor:pointer}.cls-scroller-arrow:hover{color:var(--blue);border-color:#bfdbfe}.cls-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start;margin-bottom:18px}.cls-layout.no-sidebar{grid-template-columns:minmax(0,1fr)}.cls-roster-full{width:100%}.cls-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}.cls-toolbar-title{min-width:0}.cls-toolbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.cls-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.cls-action-delete{margin-left:6px}.cls-action-btn{font:inherit;font-size:.84rem;font-weight:600;padding:8px 10px;border:1px solid #CBD5E1;border-radius:var(--radius-sm);background:var(--card);color:var(--ink-soft);cursor:pointer;white-space:nowrap}.cls-action-btn:hover:not(:disabled){color:var(--blue);border-color:var(--blue)}.cls-action-btn:disabled{opacity:.5;cursor:default}.cls-action-btn.danger{color:var(--red);border-color:#fecaca}.cls-action-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:var(--red);color:var(--red)}.cls-stats-insights{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:16px}@media (min-width: 1100px){.cls-stats-insights{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.cls-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}.cls-stat{border-radius:var(--radius-sm);padding:12px 10px;text-align:center;border:1px solid transparent}.cls-stat .cls-stat-ico{font-size:1rem}.cls-stat .val{font-size:1.35rem;font-weight:800;color:var(--ink);line-height:1.3}.cls-stat .lab{font-size:.72rem;color:var(--ink-soft)}.cls-stat.c-blue{background:#eff6ff;border-color:#dbeafe}.cls-stat.c-purple{background:#f5f3ff;border-color:#ede9fe}.cls-stat.c-green{background:#f0fdf4;border-color:#dcfce7}.cls-stat.c-gold{background:#fffbeb;border-color:#fef3c7}.cls-stat.c-teal{background:#f0fdfa;border-color:#ccfbf1}.cls-stat.c-rose{background:#fff1f2;border-color:#ffe4e6}.cls-stat-of{font-size:.6em;font-weight:700;color:var(--ink-soft);margin-left:1px}.cls-insights{background:var(--card);border:1px solid #E2E8F0;border-radius:var(--radius-md);padding:12px 14px;position:relative}.cls-insights-title{margin:0 0 10px;font-size:.9rem;color:var(--ink)}.cls-insights.is-empty{border-style:dashed;background:transparent}.cls-insights.is-empty .cls-insight-ico{filter:grayscale(1);opacity:.45}.cls-insights.is-empty .cls-insight-lab{opacity:.7}.cls-insight-name.muted{color:var(--ink-soft);opacity:.6;font-weight:700}.cls-insights-empty-note{margin:10px 0 0;font-size:.8rem;line-height:1.5;color:var(--ink-soft)}.cls-insights-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.cls-insight{display:flex;gap:8px;align-items:center}.cls-insight-ico{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}.cls-insight-ico.gold{background:#fffbeb}.cls-insight-ico.purple{background:#f5f3ff}.cls-insight-ico.teal{background:#f0fdfa}.cls-insight-lab{font-size:.68rem;color:var(--ink-soft)}.cls-insight-name{font-size:.88rem;font-weight:700;color:var(--ink)}.cls-insight-val{font-size:.76rem;font-weight:700;color:var(--ink-soft)}.cls-insight-val.green{color:#16a34a}.cls-insight-val.teal{color:#0d9488}.cls-insights-bird{margin-left:auto;font-size:1.8rem;opacity:.9}.cls-search{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid #CBD5E1;border-radius:var(--radius-sm);padding:6px 10px;flex:1 1 200px;max-width:280px}.cls-search input{border:none;outline:none;font:inherit;font-size:.86rem;width:100%;background:transparent;color:var(--ink)}.cls-sort{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}.cls-sort select{font:inherit;font-size:.84rem;padding:6px 8px;border:1px solid #CBD5E1;border-radius:7px;background:var(--card);color:var(--ink)}.cls-table thead th{padding-left:10px;padding-right:10px}.cls-table tbody td{padding:12px 10px}.cls-table thead th:last-child,.cls-table tbody td:last-child{position:sticky;right:0;background:var(--card);box-shadow:-8px 0 10px -8px #0f1b2d29}.cls-table tbody tr:hover td:last-child{background:#f8fafc}.cls-table .cls-rank{color:var(--ink-soft);font-size:.82rem}.cls-student-cell{display:flex;align-items:center;gap:8px}.cls-code-cell{font-weight:600;letter-spacing:.03em;color:var(--ink-soft)}.cls-num{font-weight:700;color:var(--ink)}.cls-best{font-weight:800;color:#16a34a}.cls-bar{height:5px;width:90px;max-width:100%;background:#e2e8f0;border-radius:3px;margin-top:4px;overflow:hidden}.cls-bar-fill{height:100%;background:#22c55e;border-radius:3px}.cls-bar-fill.acc{background:#10b981}.cls-last-active{font-size:.8rem;color:var(--ink-soft);white-space:nowrap}.cls-sidebar{display:grid;gap:14px}.cls-side-card{background:var(--card);border:1px solid #E2E8F0;border-radius:var(--radius-md);padding:16px}.cls-side-title{margin:0 0 4px;font-size:.95rem;color:var(--blue)}.cls-side-sub{margin:0 0 10px;font-size:.82rem;color:var(--ink-soft);line-height:1.5}.cls-invite-row{display:flex;gap:8px;align-items:center}.cls-invite-code{flex:1;text-align:center;font-size:1.1rem;font-weight:800;letter-spacing:.1em;color:var(--ink);background:#f8fafc;border:1px dashed #CBD5E1;border-radius:var(--radius-sm);padding:8px}.cls-invite-copy{font:inherit;font-size:.8rem;font-weight:700;padding:9px 12px;border:none;border-radius:var(--radius-sm);background:var(--blue);color:#fff;cursor:pointer;white-space:nowrap}.cls-invite-copy:hover{background:var(--blue-dark)}.cls-side-note{margin:10px 0 0;font-size:.76rem;color:var(--ink-soft);line-height:1.5}.cls-side-link{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:0;border:none;background:none;font:inherit;font-size:.82rem;font-weight:700;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.cls-side-link:hover{color:var(--blue-dark)}.cls-side-link-inline{padding:0;border:none;background:none;font:inherit;font-weight:700;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.cls-side-link-inline:hover{color:var(--blue-dark)}.cls-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b2d73;display:flex;align-items:center;justify-content:center;z-index:80;padding:32px 16px;overflow-y:auto}.cls-modal{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:22px;width:100%;max-width:420px;margin:auto;max-height:calc(100vh - 64px);overflow-y:auto}.cls-modal-title{margin:0 0 14px;font-size:1.1rem;color:var(--ink)}.cls-field{display:block;font-size:.8rem;font-weight:600;color:var(--ink-soft);margin-bottom:12px}.cls-field input,.cls-field select{display:block;width:100%;margin-top:5px;font:inherit;font-size:.95rem;padding:9px 11px;border:1px solid #CBD5E1;border-radius:var(--radius-sm);background:var(--card);color:var(--ink)}.cls-field input:focus,.cls-field select:focus{outline:2px solid var(--blue-soft);border-color:var(--blue)}.cls-modal-note{font-size:.76rem;color:var(--ink-soft);line-height:1.55;background:#f8fafc;border-radius:var(--radius-sm);padding:9px 11px;margin:0 0 12px}.cls-modal-note.danger{background:#fef2f2;color:#991b1b;border:1px solid #FECACA}.btn-danger-solid{font:inherit;font-size:.86rem;font-weight:700;padding:9px 16px;border:none;border-radius:var(--radius-sm);background:var(--red);color:#fff;cursor:pointer}.btn-danger-solid:disabled{opacity:.45;cursor:default}.btn-danger-solid:not(:disabled):hover{background:#dc2626}.cls-modal-error{color:var(--red);font-size:.82rem;margin:0 0 10px}.cls-label-hint{font-weight:400;color:var(--ink-soft);font-size:.82em}.cls-wpm-input{width:100%;max-width:160px;padding:10px 12px;font:inherit;font-size:.95rem;font-weight:700;border:1px solid var(--line);border-radius:var(--radius-sm)}.cls-add-tabs{display:flex;gap:4px;margin-bottom:12px;background:#f1f5f9;border-radius:var(--radius-sm);padding:3px}.cls-add-tab{flex:1;font:inherit;font-size:.78rem;font-weight:700;padding:7px 8px;border:none;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--ink-soft);cursor:pointer}.cls-add-tab.active{background:var(--card);color:var(--blue-dark);box-shadow:0 1px 3px #0f1b2d1a}.cls-import-head{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px}.cls-import-list{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px;margin-bottom:12px}.cls-import-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.cls-import-row:hover{background:#2563eb0d}.cls-import-row em{font-style:normal;color:var(--ink-soft)}.cls-add-textarea{width:100%;resize:vertical;min-height:84px;font-family:inherit;font-size:.9rem;line-height:1.6;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm)}.cls-add-results{margin:4px 0 12px;max-height:240px;overflow-y:auto}.cls-add-results-title{margin:8px 0 6px;font-size:.85rem;font-weight:800;color:var(--green-dark, #15803D)}.cls-add-results-title.warn{color:#b45309}.cls-add-list{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px}.cls-add-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.85rem;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-soft, rgba(37, 99, 235, .04))}.cls-add-list li em{font-style:normal;color:var(--ink-soft)}.cls-add-reused{margin-left:6px;font-size:.72rem;font-weight:700;color:var(--blue-dark);background:var(--blue-soft);border-radius:999px;padding:1px 7px}.cls-add-list li small{color:#b45309;font-size:.78rem}.cls-add-list li code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.06em;color:var(--blue-dark)}.cls-modal-actions{display:flex;justify-content:flex-end;gap:8px}.cls-save-btn{font:inherit;font-size:.88rem;font-weight:700;padding:9px 18px;border:none;border-radius:var(--radius-sm);background:var(--blue);color:#fff;cursor:pointer}.cls-save-btn:hover:not(:disabled){background:var(--blue-dark)}.cls-save-btn:disabled{opacity:.5;cursor:default}@media (max-width: 900px){.cls-layout{grid-template-columns:1fr}.cls-toolbar-actions{width:100%}.cls-bar{width:60px}}.cls-field-hint{display:block;margin-top:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft);line-height:1.5}.confetti-piece{position:fixed;top:-20px;width:8px;height:14px;border-radius:2px;opacity:.9;animation:fall linear both;z-index:0;will-change:transform;pointer-events:none}@keyframes fall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(110vh) rotate(360deg)}}.typing-card,.race-card,.gauge-card,.live-card{position:relative;z-index:2}.coming-soon{min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(180deg,var(--sky-top),var(--sky-bottom))}.coming-soon-card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:48px;max-width:440px;text-align:center}.coming-soon-badge{display:inline-block;background:var(--blue-soft);color:var(--blue-dark);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:16px}.coming-soon-card h1{font-size:28px;font-weight:800;color:var(--ink);margin:0 0 12px}.coming-soon-card p{font-size:15px;color:var(--ink-soft);margin:0;line-height:1.5}.site-footer{padding:36px 24px 28px;font-size:13px;color:#ffffffd9;background:#1c30268c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-top:1px solid rgba(255,255,255,.15)}.footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(200px,1.3fr) repeat(4,minmax(120px,1fr));gap:20px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.18)}.footer-col,.footer-brand{min-width:0}.footer-logo{font-size:17px;font-weight:800;color:#fff;letter-spacing:.01em}.footer-tagline{margin:8px 0 0;line-height:1.55;color:#ffffffb3;max-width:280px}.footer-col{display:flex;flex-direction:column;gap:8px}.footer-heading{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#ffffffa6;margin-bottom:2px}.site-footer a{color:#ffffffeb;font-weight:600;text-decoration:none;width:fit-content}.site-footer a:hover{color:#fff;text-decoration:underline}.footer-feedback-link{background:none;border:none;padding:0;text-align:left;color:#ffffffeb;font-weight:600;font-size:15px;width:fit-content;font-family:inherit}.footer-feedback-link:hover{color:#fff;text-decoration:underline}.feedback-modal-card{max-width:420px;text-align:left}.feedback-modal-title{font-size:20px;font-weight:800;margin:0 0 6px}.feedback-modal-sub{color:var(--ink-soft);font-size:14px;margin:0 0 16px}.feedback-type-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.feedback-type-chip{padding:8px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink);background:#f1f5f9;border:none}.feedback-type-chip:hover{background:#e2e8f0}.feedback-type-chip.active{background:var(--blue-soft);color:var(--blue-dark)}.feedback-modal-card textarea{width:100%;border-radius:10px;border:1px solid rgba(15,27,45,.12);padding:10px 12px;font-family:inherit;font-size:14px;resize:vertical}.feedback-modal-actions{display:flex;align-items:center;gap:10px;margin-top:6px}@media (max-width: 900px){.footer-grid{grid-template-columns:1fr 1fr 1fr}.footer-brand{grid-column:1 / -1}}@media (max-width: 560px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-bottom{max-width:1080px;margin:0 auto;padding-top:18px;display:flex;justify-content:center;font-size:12.5px;font-weight:600;color:#fff9}.legal-page{max-width:720px;line-height:1.65}.legal-page h2{font-size:16px;font-weight:800;color:var(--ink);margin:28px 0 8px}.legal-page p,.legal-page ul{color:var(--ink-soft);font-size:14px}.legal-page ul{padding-left:20px;margin:8px 0}.legal-page li{margin-bottom:6px}.legal-page a{color:var(--blue);font-weight:700;text-decoration:none}.legal-page a:hover{text-decoration:underline}.blog-index-sub{color:var(--ink-soft);font-size:14px;margin-top:6px}.blog-layout{display:flex;align-items:flex-start;gap:24px}.blog-sidebar-ad{display:none}@media (min-width: 1300px){.blog-sidebar-ad{display:flex;justify-content:center;flex:1;min-width:0;position:sticky;top:112px}.blog-sidebar-ad .sponsor-block{max-width:300px;margin:0}}.blog-search{display:flex;align-items:center;gap:12px;margin:20px 0 24px}.blog-search-input{flex:1;min-width:0;padding:12px 16px;border-radius:999px;border:1px solid rgba(15,27,45,.15);font-size:15px;font-family:inherit;color:var(--ink);background:#fff}.blog-search-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.blog-search-count{flex:none;font-size:13px;color:var(--ink-soft);white-space:nowrap}.blog-search-empty{color:var(--ink-soft);font-size:15px;padding:32px 0;text-align:center}.blog-card-snippet{font-size:13px;color:var(--ink-soft);font-style:italic;margin-top:4px;line-height:1.5}.blog-search-clear{background:none;border:none;padding:0;color:var(--blue);text-decoration:underline;font:inherit;cursor:pointer}.blog-card-list{display:grid;gap:14px;margin-top:20px}.blog-card{display:block;padding:18px 20px;border:1px solid rgba(15,27,45,.1);border-radius:var(--radius-sm, 10px);background:#fff;text-decoration:none!important;transition:border-color .15s,box-shadow .15s,transform .15s}.blog-card:hover{border-color:var(--blue);box-shadow:0 4px 14px #2563eb1f;transform:translateY(-1px)}.blog-card-cat{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft, rgba(37, 99, 235, .08));padding:3px 8px;border-radius:999px}.blog-card-title{font-size:17px;font-weight:800;color:var(--ink);margin:10px 0 6px}.blog-card-desc{color:var(--ink-soft);font-size:13.5px;line-height:1.55;margin:0}.blog-card-meta{display:block;color:var(--ink-soft);opacity:.75;font-size:12px;margin-top:10px}.blog-article{max-width:760px}.blog-breadcrumb{font-size:13px;margin-bottom:14px}.blog-post-title{font-size:26px;font-weight:800;line-height:1.25;margin:10px 0 4px}.blog-body h2{font-size:19px;margin-top:32px}.blog-body h3{font-size:16px;font-weight:800;color:var(--ink);margin:22px 0 6px}.blog-body p{margin:10px 0}.blog-body ol{padding-left:22px;margin:8px 0;color:var(--ink-soft);font-size:14px}.blog-body ol li{margin-bottom:8px}.blog-body code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9em;background:#0f1b2d0f;padding:1px 5px;border-radius:4px}.blog-body blockquote{margin:16px 0;padding:10px 16px;border-left:3px solid var(--blue);background:var(--blue-soft, rgba(37, 99, 235, .06));border-radius:0 8px 8px 0;color:var(--ink);font-size:14px}.blog-body a.blog-btn{display:inline-block;white-space:nowrap;margin-left:6px;margin-bottom:4px;padding:4px 12px;border-radius:999px;background:var(--blue);color:#fff!important;font-weight:700;font-size:12.5px;text-decoration:none!important;vertical-align:middle;transition:transform .15s,box-shadow .15s,background .15s}.blog-body a.blog-btn:hover{background:var(--blue-dark, #1d4ed8);transform:translateY(-1px);box-shadow:0 4px 10px #2563eb40}.mode-card-list{display:flex;flex-direction:column;gap:10px;margin:18px 0}.mode-card-list .mode-card{display:flex;flex-direction:row;align-items:center;gap:16px;width:auto;padding:14px 18px;border-radius:12px;border:1px solid rgba(15,27,45,.08);background:#fff}.mode-card-icon{flex-shrink:0;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px}.mode-card-text{flex:1;min-width:0}.mode-card-title{font-size:15.5px;font-weight:800;margin-bottom:2px}.mode-card-desc{font-size:13px;color:var(--ink-soft);line-height:1.4}.mode-card-btn{flex-shrink:0;padding:8px 16px;border-radius:999px;font-weight:700;font-size:13px;white-space:nowrap;text-decoration:none!important;border:1.5px solid transparent;transition:transform .15s,box-shadow .15s}.mode-card-btn:hover{transform:translateY(-1px)}.mode-card-blue .mode-card-icon{background:#dbeafe}.mode-card-blue .mode-card-title{color:#1d4ed8}.mode-card-blue .mode-card-btn{color:#2563eb;border-color:#2563eb}.mode-card-blue .mode-card-btn-filled{background:#2563eb;color:#fff!important}.mode-card-purple .mode-card-icon{background:#ede9fe}.mode-card-purple .mode-card-title{color:#6d28d9}.mode-card-purple .mode-card-btn{color:#7c3aed;border-color:#7c3aed}.mode-card-purple .mode-card-btn-filled{background:#7c3aed;color:#fff!important}.mode-card-green .mode-card-icon{background:#d1fae5}.mode-card-green .mode-card-title{color:#047857}.mode-card-green .mode-card-btn{color:#059669;border-color:#059669}.mode-card-green .mode-card-btn-filled{background:#059669;color:#fff!important}.mode-card-orange .mode-card-icon{background:#ffedd5}.mode-card-orange .mode-card-title{color:#c2410c}.mode-card-orange .mode-card-btn{color:#ea580c;border-color:#ea580c}.mode-card-orange .mode-card-btn-filled{background:#ea580c;color:#fff!important}.mode-card-footer{background:var(--blue-soft, rgba(37, 99, 235, .06));border-color:#2563eb26}@media (max-width: 560px){.mode-card-list .mode-card{flex-wrap:wrap}.mode-card-btn{flex-basis:calc(100% - 64px);min-width:0;margin-left:64px;box-sizing:border-box;white-space:normal;text-align:center}}.blog-table-wrap{overflow-x:auto;margin:14px 0;touch-action:pan-x pan-y}.blog-table-wrap table{border-collapse:collapse;width:100%;font-size:13.5px}.blog-table-wrap th,.blog-table-wrap td{border:1px solid rgba(15,27,45,.12);padding:8px 10px;text-align:left;color:var(--ink-soft);vertical-align:top;transition:color 4s ease,border-color 4s ease,text-shadow 4s ease}.blog-table-wrap th{background:#0f1b2d0a;color:var(--ink);font-weight:800;white-space:nowrap}.app-sky.night~main .home-info .blog-table-wrap th,.app-sky.night~main .home-info .blog-table-wrap td{color:#c9d4ea;border-color:#f4f7ff2e;text-shadow:0 1px 6px rgba(8,14,32,.5)}.app-sky.night~main .home-info .blog-table-wrap th{background:#f4f7ff14;color:#f4f7ff}.blog-table-wrap tbody tr:hover{background:transparent}.blog-figure{margin:18px 0}.blog-figure img{display:block;width:100%;height:auto;border-radius:var(--radius-sm, 10px);border:1px solid rgba(15,27,45,.1)}.blog-figure figcaption{margin-top:6px;font-size:12.5px;color:var(--ink-soft);opacity:.8;text-align:center}.blog-inline-img{max-width:100%;height:auto;border-radius:6px;vertical-align:middle}.blog-toc{margin:20px 0;padding:16px 20px;border:1px solid rgba(15,27,45,.1);border-radius:10px;background:#0f1b2d06}.blog-toc h2{margin:0 0 8px;font-size:14px}.blog-toc ul{margin:0;padding-left:18px;list-style:none}.blog-toc li{margin-bottom:7px;padding-left:2px}.blog-toc li:before{content:"→";color:var(--blue);margin-right:6px}.blog-toc a{color:var(--ink-soft);font-size:13.5px;text-decoration:none}.blog-toc a:hover{color:var(--blue);text-decoration:underline}.blog-byline{display:flex;gap:14px;align-items:flex-start;margin:32px 0 8px;padding:16px 18px;border:1px solid rgba(15,27,45,.1);border-radius:10px;background:#0f1b2d05}.blog-byline-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--blue-soft, rgba(37, 99, 235, .12));color:var(--blue-dark, #1d4ed8);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}.blog-byline-name{margin:0 0 4px;font-weight:700;font-size:14px;color:var(--ink)}.blog-byline-bio{margin:0 0 6px;font-size:13px;color:var(--ink-soft);line-height:1.5}.blog-byline-updated{margin:0;font-size:12px;color:var(--ink-soft);opacity:.75}.blog-faq-cta{margin-top:16px;padding:16px 20px;border-radius:10px;background:var(--blue-soft, rgba(37, 99, 235, .06));border:1px solid rgba(37,99,235,.15);text-align:center}.blog-faq-cta p{margin:0 0 10px;font-size:14px;color:var(--ink-soft)}.blog-more .blog-card-list{margin-top:14px}.blog-faqs{display:grid;gap:8px;margin-top:10px}.blog-faq{border:1px solid rgba(15,27,45,.1);border-radius:8px;background:#fff;padding:0 14px}.blog-faq summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--ink);padding:12px 22px 12px 0;list-style:none;position:relative}.blog-faq summary::-webkit-details-marker{display:none}.blog-faq summary:after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);color:var(--blue);font-weight:800}.blog-faq[open] summary:after{content:"−"}.blog-faq p{margin:0 0 12px}.blog-more{margin-top:28px;padding-top:6px;border-top:1px solid rgba(15,27,45,.08)}@media (max-width: 600px){.blog-post-title{font-size:21px}.blog-body h2{font-size:17px}}.blog-pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-top:28px}.blog-page-btn{border:1.5px solid rgba(37,99,235,.35);background:#fff;color:#2563eb;font:inherit;font-weight:600;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .15s ease,color .15s ease}.blog-page-btn:hover:not(:disabled){background:#2563eb14}.blog-page-btn:disabled{opacity:.45;cursor:default}.blog-page-num.active{background:#2563eb;color:#fff;border-color:#2563eb}@media (max-width: 600px){.blog-page-btn{padding:7px 11px;font-size:.9rem}}.blog-keyboard{margin:22px 0 26px}.blog-keyboard-board{display:grid;gap:4px}.blog-keyboard-board .keymap-row{display:flex;gap:4px}.blog-keyboard-board .keymap-key{height:46px}.blog-keyboard-board .keymap-key-base{font-size:15px}.blog-keyboard-board .keymap-key-shift,.blog-keyboard-board .keymap-key-altgr{font-size:10px}.blog-keyboard-board .keymap-key-label{font-size:8px}.blog-keyboard-board .keymap-mod-label{font-size:8.5px}.blog-keyboard-board .keymap-key.is-dead{border-style:dashed;border-color:#a78bfa}.blog-keyboard-legend{font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin:10px 0 0}.kb-l-shift{color:#2563eb;font-weight:700}.kb-l-altgr{color:#d97706;font-weight:700}.kb-l-dead{color:#7c3aed;font-weight:700}@media (max-width: 560px){.blog-keyboard{overflow-x:auto;-webkit-overflow-scrolling:touch}.blog-keyboard-board{min-width:560px}}.weather-modal-overlay{position:fixed;top:0;left:0;right:0;height:100vh;height:100svh;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f1b2d73;animation:pageFade .2s ease}.weather-modal-card{width:100%;max-width:360px;background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px 24px 20px;text-align:center}.weather-modal-icon{font-size:40px;line-height:1;margin-bottom:10px}.weather-modal-title{margin:0 0 10px;font-size:19px;color:var(--ink)}.weather-modal-body{margin:0 0 20px;font-size:14px;line-height:1.5;color:var(--ink-soft)}.weather-modal-actions{display:flex;gap:10px;justify-content:center}.weather-modal-skip,.weather-modal-allow{flex:1;padding:10px 14px;border-radius:var(--radius-sm);font-weight:600;font-size:14px}.weather-modal-skip{background:var(--blue-soft);color:var(--blue-dark)}.weather-modal-skip:hover{background:#cfe4fd}.weather-modal-allow{background:var(--blue);color:#fff}.weather-modal-allow:hover{background:var(--blue-dark)}@media (max-width: 420px){.weather-modal-actions{flex-direction:column}}.live-wrap{width:min(960px,100%);margin:0 auto;display:flex;flex-direction:column;gap:14px}.live-lang-row{display:flex;align-items:center;gap:8px}.live-lang-btn{border:1px solid rgba(255,255,255,.28);background:#0f1b2d80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border-radius:999px;padding:6px 14px;font-weight:700;cursor:pointer;transition:background .15s ease,transform .1s ease}.live-lang-btn:hover{transform:translateY(-1px)}.live-lang-btn.active{background:#fff;color:#1d4ed8;border-color:#fff}.live-quota{margin-left:auto;font-size:.85rem;font-weight:700;color:#ffffffeb;background:#0f1b2d99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:5px 12px}.live-card{background:#ffffffeb;border-radius:20px;padding:22px;box-shadow:0 18px 40px #0f1b2d40;color:#1e2a3d}.live-hero-card{text-align:center}.live-next-label{font-size:.9rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.live-countdown{font-size:clamp(2.6rem,8vw,4.2rem);font-weight:900;font-variant-numeric:tabular-nums;color:#1d4ed8;line-height:1.1;margin:4px 0 12px}.live-countdown.big{font-size:clamp(4rem,14vw,7rem);color:#0f1b2d}.live-countdown.pulsing{animation:livePulse 1s ease-in-out infinite;color:#dc2626}@keyframes livePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.live-perches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px auto 12px;max-width:560px}.live-perch{border:2px dashed #cbd5e1;border-radius:12px;padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:58px;background:#f8fafc}.live-perch.taken{border-style:solid;border-color:#93c5fd;background:#eff6ff;animation:perchLand .35s ease}.live-perch.you{border-color:#1d4ed8;box-shadow:0 0 0 2px #1d4ed833}@keyframes perchLand{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.live-perch-bird{line-height:1;min-height:24px;display:flex;align-items:flex-end;font-size:1.35rem}.live-perch-name{font-size:.68rem;font-weight:700;color:#475569;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-seats-line{font-weight:700;color:#475569;margin-bottom:12px}.live-reserve-btn{font-size:1.05rem;padding:12px 26px}.live-reserved-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.live-reserved-badge{background:#dcfce7;color:#166534;font-weight:800;border-radius:999px;padding:8px 16px}.live-signin p{margin:0 0 10px;color:#475569}.live-signin-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.live-notice{background:#0f1b2dd9;color:#fff;border-radius:12px;padding:10px 16px;font-weight:600;text-align:center}.live-room{cursor:text}.live-startline{text-align:center;padding:6px 0 10px}.live-startline-label{font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.live-startline-hint{color:#64748b;font-weight:600}.live-text{position:relative;margin:10px 0 14px}.live-text.blurred{filter:blur(7px);pointer-events:none;-webkit-user-select:none;user-select:none}.live-race-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-weight:800;margin-bottom:4px}.live-rank{background:#1d4ed8;color:#fff;border-radius:999px;padding:4px 12px}.live-stat{color:#334155;font-variant-numeric:tabular-nums}.live-lanes{display:flex;flex-direction:column;gap:2px}.live-lane-flag{position:absolute;right:6px;top:50%;transform:translateY(-50%)}.live-results-title{margin:0 0 6px;font-size:1.3rem}.live-your-line{color:#334155;font-weight:600;margin:0 0 14px}.live-podium{display:flex;justify-content:center;align-items:flex-end;gap:14px;margin:10px 0 22px}.live-podium-spot{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:108px}.live-podium-spot.p1{order:2}.live-podium-spot.p2{order:1}.live-podium-spot.p3{order:3}.live-podium-block{width:100%;border-radius:12px 12px 5px 5px;display:flex;justify-content:center;color:#fff;font-weight:900;font-size:1.5rem;padding-top:6px;margin-top:4px;box-shadow:inset 0 -8px #0f1b2d24,0 8px 18px #0f1b2d29;transform-origin:bottom;animation:podiumRise .55s cubic-bezier(.2,.9,.3,1.15) backwards;text-shadow:0 1px 2px rgba(15,27,45,.25)}.live-podium-spot.p1 .live-podium-block{height:98px;background:linear-gradient(180deg,#fcd34d,#f59e0b);animation-delay:.45s}.live-podium-spot.p2 .live-podium-block{height:72px;background:linear-gradient(180deg,#e2e8f0,#94a3b8);animation-delay:.25s}.live-podium-spot.p3 .live-podium-block{height:54px;background:linear-gradient(180deg,#fdba74,#ea7c1e);animation-delay:.1s}@keyframes podiumRise{0%{transform:scaleY(0)}}.live-podium-emoji{font-size:2rem;line-height:1;animation:birdLand .45s ease .85s backwards}@keyframes birdLand{0%{transform:translateY(-26px) scale(.7);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.live-podium-crown{position:absolute;top:-20px;font-size:1.15rem;animation:birdLand .45s ease 1.1s backwards}.live-podium-spot.you .live-podium-block{outline:3px solid #1d4ed8;outline-offset:2px}.live-podium-spot.you .live-podium-name{color:#1d4ed8}.live-podium-name{font-weight:800;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:birdLand .45s ease .95s backwards}.live-podium-wpm{color:#64748b;font-weight:700;font-size:.82rem;font-variant-numeric:tabular-nums;animation:birdLand .45s ease .95s backwards}.live-standings{list-style:none;counter-reset:place;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}.live-standings li{counter-increment:place;display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#e0eaff var(--pct, 0%),#f8fafc var(--pct, 0%));border-radius:10px;padding:8px 12px}.live-standings li:before{content:counter(place);font-weight:900;color:#94a3b8;min-width:1.4em}.live-standings li.you{background:linear-gradient(90deg,#c7dbff var(--pct, 0%),#eff6ff var(--pct, 0%));outline:1px solid #93c5fd}.live-standing-name{font-weight:700}.live-standing-meta{margin-left:auto;color:#64748b;font-weight:600;font-variant-numeric:tabular-nums}.live-next-btn{width:100%}.live-empty{color:#64748b}.live-schedule-label{display:inline-block;font-weight:800;color:#fff;background:#0f1b2d99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:4px 12px;margin-bottom:6px}.live-schedule-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.live-slot{background:#0f1b2d8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:8px 10px;text-align:center;color:#fff;text-shadow:0 1px 2px rgba(15,27,45,.4)}.live-slot-time{display:block;font-weight:800}.live-slot-state{font-size:.72rem;font-weight:700;opacity:.85}.live-slot.done{color:#ffffff8c;background:#0f1b2d66}.live-slot.live{background:#dc2626d9;border-color:transparent}.live-slot.focused{outline:2px solid rgba(255,255,255,.85)}.live-banner{display:flex;align-items:center;gap:10px;width:min(960px,calc(100% - 32px));margin:14px auto 0;background:#0f1b2db8;color:#fff;border-radius:999px;padding:10px 18px;text-decoration:none;font-weight:600;transition:transform .12s ease,background .15s ease}.live-banner:hover{transform:translateY(-1px);background:#0f1b2dd9}.live-banner-main{display:flex;align-items:center;gap:10px;min-width:0}.live-banner-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;flex:none}.live-banner.is-live .live-banner-dot{background:#ef4444;animation:livePulse 1.2s infinite}.live-banner-text strong{font-variant-numeric:tabular-nums}.live-banner-cta{margin-left:auto;font-weight:800;white-space:nowrap}.live-toast{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;align-items:center;gap:12px;background:#fff;color:#1e2a3d;border-radius:16px;box-shadow:0 18px 40px #0f1b2d4d;padding:14px 16px;max-width:min(360px,calc(100vw - 32px));animation:toastIn .35s ease}@keyframes toastIn{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.live-toast.urgent{outline:2px solid #dc2626;animation:toastIn .35s ease,livePulse 1.4s ease-in-out infinite}.live-toast-emoji{font-size:1.6rem}.live-toast-title{font-weight:800}.live-toast-sub{color:#64748b;font-weight:600;font-size:.85rem;font-variant-numeric:tabular-nums}.live-toast-cta{white-space:nowrap;padding:8px 14px}.live-toast-close{position:absolute;top:6px;right:8px;border:none;background:none;color:#94a3b8;font-size:.85rem;cursor:pointer;padding:2px 4px}.live-toast-close:hover{color:#334155}@media (max-width: 640px){.live-perches{grid-template-columns:repeat(5,minmax(0,1fr))}.live-perch-name{display:none}.live-banner{border-radius:16px;flex-wrap:wrap}.live-banner-cta{margin-left:auto}.live-podium{gap:6px}.live-podium-spot{min-width:0;flex:1 1 0;max-width:108px}.live-podium-name{max-width:100%;font-size:.78rem}.live-podium-wpm{font-size:.72rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-podium-block{font-size:1.2rem}.live-podium-emoji{font-size:1.6rem}}.live-rank.spectating{background:#64748b}.lane-tag.live{background:#fee2e2;color:#b91c1c}.live-results-actions{display:flex;gap:10px;flex-wrap:wrap}.live-results-actions .live-next-btn{flex:1;min-width:200px;width:auto}.live-share-btn{white-space:nowrap}.live-last-race-btn{align-self:center;border:1px solid rgba(255,255,255,.28);background:#0f1b2d8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-weight:700;border-radius:999px;padding:8px 18px;cursor:pointer;transition:background .15s ease,transform .1s ease}.live-last-race-btn:hover{background:#0f1b2dbf;transform:translateY(-1px)}.species-icon{display:inline-block;vertical-align:-2px}.live-slot-reserve{margin-top:5px;width:100%;border:none;background:#ffffffeb;color:#1d4ed8;font-weight:800;font-size:.72rem;border-radius:8px;padding:4px 0;cursor:pointer}.live-slot-reserve:hover:not(:disabled){background:#fff}.live-slot-reserve:disabled{opacity:.5;cursor:default}.live-slot-booked{display:block;margin-top:5px;background:#dcfce7;color:#166534;font-weight:800;font-size:.72rem;border-radius:8px;padding:4px 0;text-align:center}.hero-inner.live-hero{padding-top:14px}.hero-inner.live-hero .hero-sub{margin-bottom:16px}.hero-inner.live-hero .live-hero-card{padding:16px 22px}.hero-inner.live-hero .live-countdown{margin:2px 0 8px;font-size:clamp(2.4rem,6.5vw,3.4rem)}.hero-inner.live-hero .live-countdown.big{font-size:clamp(4rem,14vw,7rem)}.hero-inner.live-hero .live-perches{margin:8px auto 10px}.hero-inner.live-hero .live-perch{min-height:52px;padding:6px 4px 5px}.hero-inner.live-hero .live-seats-line{margin-bottom:10px}.exam-page{max-width:900px;margin:0 auto;padding:24px 16px 64px;color:var(--ink)}.exam-head h1{font-size:clamp(1.1rem,2.4vw,1.4rem);margin:0 0 6px}.exam-sub{color:var(--ink-soft);margin:0 0 20px;line-height:1.6}.exam-rules-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:#e2e8f0;border:1px solid #e2e8f0;border-radius:var(--radius-md);overflow:hidden;margin-bottom:12px}.exam-rules-strip div{background:var(--card);padding:8px 12px;display:flex;flex-direction:column;gap:2px}.exam-rules-strip span{font-size:.76rem;color:var(--ink-soft)}.exam-rules-strip strong{font-size:1rem}.exam-intro{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:24px;margin-bottom:24px}.exam-intro h2{margin:0 0 12px;font-size:1.15rem}.exam-intro ul{margin:0 0 20px;padding-left:20px;line-height:1.8;color:var(--ink-soft)}.exam-intro kbd{background:#f1f5f9;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:.85em;font-family:ui-monospace,monospace;color:var(--ink)}.exam-passage-pick{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-size:.92rem}.exam-passage-pick select{font:inherit;padding:8px 12px;border:1px solid #cbd5e1;border-radius:var(--radius-sm);background:#fff}.exam-start-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.exam-start-row .exam-passage-pick{margin-bottom:0}@media (max-width: 520px){.exam-start-row{flex-direction:column;align-items:stretch;gap:12px}}.exam-start,.exam-finish{font:inherit;font-weight:700;padding:12px 24px;border:none;border-radius:var(--radius-sm);background:var(--blue);color:#fff;cursor:pointer;margin-top:16px}.exam-start-row .exam-start{margin-top:0}.exam-start:hover{background:var(--blue-dark)}.exam-finish{background:#fff;color:var(--ink-soft);border:1px solid #cbd5e1;font-weight:600;margin-top:16px}.exam-finish-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.exam-chunk-keyhint{font-size:.82rem;color:var(--ink-soft);margin-top:16px}.exam-chunk-keyhint kbd{font:inherit;font-size:.78rem;padding:2px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#f8fafc}.exam-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:16px}.exam-stats .stat{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:8px 12px;display:flex;flex-direction:column}.exam-stats span{font-size:.74rem;color:var(--ink-soft)}.exam-stats strong{font-size:1.25rem;font-variant-numeric:tabular-nums}.exam-stats .stat.urgent strong{color:var(--red)}.exam-info-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}@media (max-width: 720px){.exam-info-row{grid-template-columns:repeat(3,1fr)}}.exam-info-row .stat{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:8px 12px;display:flex;flex-direction:column}.exam-info-row span{font-size:.72rem;color:var(--ink-soft)}.exam-info-row strong{font-size:.88rem;font-variant-numeric:tabular-nums;white-space:nowrap}.exam-info-row .stat.urgent strong{color:var(--red)}.exam-typing{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px}.exam-chunk-text,.exam-input{font-family:Noto Sans Gurmukhi,Noto Sans Devanagari,sans-serif;font-size:1.35rem;line-height:2.1;letter-spacing:.01em;word-break:break-word}.exam-chunk-text{margin:0 0 18px;padding:18px;background:#f8fafc;border-radius:var(--radius-md);border:1px solid #e2e8f0;max-height:129px;overflow-y:hidden;scrollbar-width:none}.exam-chunk-text::-webkit-scrollbar{display:none}.exam-chunk-text .pending{color:var(--ink-soft)}.exam-chunk-text .ok{color:var(--ink)}.exam-chunk-text .bad{color:var(--red);background:#fee2e2;border-radius:3px}.exam-chunk-text .cursor{color:var(--ink)!important;background:var(--blue-soft);box-shadow:0 -6px 0 2px var(--blue-soft),0 6px 0 2px var(--blue-soft),0 0 0 1px var(--blue);border-radius:4px;animation:exam-cursor-blink .6s infinite}@keyframes exam-cursor-blink{0%,50%{opacity:1}51%,to{opacity:.55}}.exam-input{height:22vh;max-height:220px;overflow-y:auto;padding:16px 18px;border:2px solid #cbd5e1;border-radius:var(--radius-md);background:#fff;outline:none;cursor:text;white-space:pre-wrap}.exam-input:focus{border-color:var(--blue)}.exam-placeholder{color:#94a3b8}.exam-chunk-bar{position:relative;margin-top:14px;height:26px;background:#f1f5f9;border-radius:999px;overflow:hidden;display:flex;align-items:center}.exam-chunk-fill{position:absolute;inset:0 auto 0 0;background:var(--blue-soft);transition:width .15s linear}.exam-chunk-bar span{position:relative;padding:0 14px;font-size:.8rem;color:var(--ink-soft)}.exam-result{margin-top:24px;padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:var(--card);border-top:5px solid var(--red)}.exam-result.pass{border-top-color:var(--green)}.exam-result h2{margin:0 0 14px;font-size:1.6rem}.exam-result.pass h2{color:var(--green)}.exam-result.fail h2{color:var(--red)}.exam-warn{background:#fef3c7;border-left:3px solid var(--amber);padding:10px 14px;border-radius:var(--radius-sm);font-size:.9rem;line-height:1.6;margin:0 0 16px}.exam-breakdown{width:100%;table-layout:fixed;border-collapse:collapse;margin-bottom:20px;font-size:.94rem}.exam-breakdown th,.exam-breakdown td{text-align:left;padding:9px 10px;border-bottom:1px solid #e2e8f0}.exam-breakdown th{font-weight:600;color:var(--ink-soft);width:40%}.exam-breakdown td{font-variant-numeric:tabular-nums}.exam-breakdown th,.exam-breakdown td{overflow-wrap:anywhere}.exam-formula-cell{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88rem;color:var(--ink-soft)}.exam-breakdown tr.ok td:first-of-type{color:var(--green);font-weight:700}.exam-breakdown tr.bad td:first-of-type{color:var(--red);font-weight:700}.exam-note{margin-top:28px;font-size:.84rem;line-height:1.7;color:var(--ink-soft);border-top:1px solid #e2e8f0;padding-top:16px;transition:color 4s ease,text-shadow 4s ease}.exam-note p{margin:0 0 8px}.app-sky.night~main .exam-note{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.exam-info{margin-top:40px;padding-top:8px;line-height:1.8}.exam-info h2{font-size:1.25rem;margin:32px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--blue-soft)}.exam-info h3{font-size:1.02rem;margin:22px 0 8px}.exam-info p{margin:0 0 14px}.exam-info-warn{background:#fef3c7;border-left:3px solid var(--amber);padding:12px 16px;border-radius:var(--radius-sm)}.exam-info-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:0 0 18px;font-size:.94rem;background:var(--card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft)}.exam-info-table th,.exam-info-table td{overflow-wrap:anywhere}.exam-info-table th,.exam-info-table td{text-align:left;padding:11px 14px;border-bottom:1px solid #e2e8f0}.exam-info-table tr:last-child th,.exam-info-table tr:last-child td{border-bottom:none}.exam-info-table th{font-weight:600;color:var(--ink-soft);width:38%}.exam-info-table thead th{background:#f8fafc;color:var(--ink);width:auto}.exam-info-table.aiims-posts-table td{white-space:normal}.exam-info-table.aiims-posts-table th:nth-child(1),.exam-info-table.aiims-posts-table td:nth-child(1){width:50%}.exam-info-table.aiims-posts-table th:nth-child(2),.exam-info-table.aiims-posts-table td:nth-child(2){width:35%}.exam-info-table.aiims-posts-table th:nth-child(3),.exam-info-table.aiims-posts-table td:nth-child(3){width:15%}.exam-info-table.vowels .vowel{font-family:Noto Sans Gurmukhi,sans-serif;font-size:1.35rem;font-weight:600}.exam-info-table.vowels .wrong{font-family:Noto Sans Gurmukhi,sans-serif;color:var(--red);text-decoration:line-through;text-decoration-color:#ef444473}.exam-info kbd{background:#f1f5f9;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:5px;padding:2px 8px;font-size:.85em;font-family:ui-monospace,monospace;white-space:nowrap}.exam-info-list{margin:0 0 16px;padding-left:20px}.exam-info-list li{margin-bottom:8px}.exam-faq div{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:14px 18px;margin-bottom:10px}.exam-faq dt{font-weight:700;margin-bottom:6px}.exam-faq dd{margin:0;color:var(--ink-soft)}.exam-info-links{margin-top:24px;font-size:.92rem;transition:color 4s ease,text-shadow 4s ease}.exam-info-links a{color:var(--blue)}.app-sky.night~main .exam-info-links{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.app-sky.night~main .exam-info-links a{color:#93c5fd}.exam-mobile-note{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid var(--amber);border-radius:var(--radius-md);padding:18px 20px;margin-bottom:24px;line-height:1.7}.exam-mobile-note h2{margin:0 0 8px;font-size:1.08rem}.exam-mobile-note p{margin:0 0 8px}.exam-mobile-note p:last-child{margin-bottom:0}.exam-focus-warn{display:block;width:100%;margin-top:12px;padding:12px 16px;font:inherit;font-weight:600;text-align:left;color:#92400e;background:#fef3c7;border:1px solid var(--amber);border-radius:var(--radius-sm);cursor:pointer}.exam-focus-warn:hover{background:#fde68a}.exam-explain{margin:20px 0;padding:16px 18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-sm)}.exam-explain h3{margin:0 0 8px;font-size:1.05rem}.exam-explain-headline{margin:0 0 14px;font-size:.92rem;color:var(--ink-soft);line-height:1.55}.exam-explain-gate{border-left:3px solid var(--c);background:#fff;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:10px}.exam-explain-gate:last-child{margin-bottom:0}.exam-explain-gate.ok{--c: #16a34a}.exam-explain-gate.bad{--c: #ef4444}.exam-explain-gate-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.exam-explain-gate-icon{color:var(--c);font-weight:800}.exam-explain-gate-title{font-weight:700;font-size:.92rem}.exam-explain-gate-vs{margin-left:auto;font-size:.82rem;color:var(--ink-soft)}.exam-explain-calc{margin:8px 0 0;padding-left:20px;font-size:.82rem;font-family:ui-monospace,SF Mono,Menlo,monospace;line-height:1.7;color:var(--ink-soft)}.exam-explain-note{margin:8px 0 0;font-size:.86rem;line-height:1.6;color:var(--ink-soft)}.exam-review{margin:24px 0 8px;padding-top:20px;border-top:1px solid #e2e8f0}.exam-review h3{margin:0 0 12px;font-size:1.05rem}.exam-review-clean{color:var(--green);font-weight:600;margin:0}.exam-review-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.exam-review-summary .tag{font-size:.82rem;font-weight:600;padding:4px 10px;border-radius:999px}.tag.wrong,li.wrong{--c: #ef4444;--bg: #fee2e2}.tag.missing,li.missing{--c: #64748b;--bg: #f1f5f9}.tag.extra,li.extra{--c: #8b5cf6;--bg: #ede9fe}.tag.spacing,li.spacing{--c: #d97706;--bg: #fef3c7}.exam-review-summary .tag{color:var(--c);background:var(--bg)}.exam-review-tip{font-size:.86rem;line-height:1.65;color:var(--ink-soft);background:#f8fafc;border-left:3px solid var(--amber);padding:10px 14px;border-radius:var(--radius-sm);margin:0 0 14px}.exam-review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}.exam-review-list li{border-left:3px solid var(--c);background:var(--bg);border-radius:var(--radius-sm);padding:9px 12px}.exam-review-label{margin-right:6px}.exam-review-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px}.exam-review-kind{font-size:.8rem;font-weight:700;color:var(--c)}.exam-review-cost{font-size:.74rem;color:var(--ink-soft)}.exam-review-words{display:flex;gap:18px;flex-wrap:wrap;font-family:Noto Sans Gurmukhi,sans-serif;font-size:1rem;line-height:1.9}.exam-review-expected,.exam-review-typed{font-size:.86rem;color:var(--ink-soft)}.exam-review-words b{font-size:1.05rem;color:var(--ink)}.exam-review-words i{color:#94a3b8;font-size:.86rem}.exam-keymap-toggle{font:inherit;font-weight:600;font-size:.88rem;padding:8px 16px;margin-bottom:16px;border:1px solid #cbd5e1;border-radius:var(--radius-sm);background:var(--card);color:var(--ink-soft);cursor:pointer}.exam-keymap-toggle:hover{background:#f1f5f9;color:var(--ink)}.keymap-panel{position:fixed;z-index:60;background:var(--card);border:1px solid #cbd5e1;border-radius:var(--radius-md);box-shadow:0 12px 32px #0f172a38;-webkit-user-select:none;user-select:none;overflow:hidden}.keymap-bar{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 10px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;cursor:grab;touch-action:none}.keymap-bar:active{cursor:grabbing}.keymap-grip{color:#94a3b8;font-size:.9rem;letter-spacing:-1px}.keymap-title{flex:1;font-size:.78rem;font-weight:700;color:var(--ink-soft)}.keymap-close{border:none;background:none;color:var(--ink-soft);font-size:.85rem;line-height:1;padding:4px 6px;border-radius:5px;cursor:pointer}.keymap-close:hover{background:#e2e8f0;color:var(--ink)}.keymap-viewport{padding:8px;overflow:hidden}.keymap-board{width:600px;transform-origin:top left}.keymap-zoom{display:flex;align-items:center;gap:2px;margin-right:2px}.keymap-zoom button{width:20px;height:20px;padding:0;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:var(--ink-soft);font-size:.8rem;line-height:1;cursor:pointer}.keymap-zoom button:hover{background:#e2e8f0;color:var(--ink)}.keymap-zoom span{min-width:34px;text-align:center;font-size:.66rem;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}.keymap-resize{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,#cbd5e1 50%,#cbd5e1 60%,transparent 60%,transparent 70%,#cbd5e1 70%,#cbd5e1 80%,transparent 80%)}.keymap-row{display:flex;gap:3px;margin-bottom:3px}.keymap-key{position:relative;height:36px;min-width:0;border:1px solid #e2e8f0;border-bottom-width:2px;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center}.keymap-mod{background:#f1f5f9;border-color:#e2e8f0}.keymap-mod-label{font-size:.6rem;font-weight:600;color:#94a3b8;letter-spacing:.01em}.keymap-mod.hot{background:#fff7ed;border-color:#fed7aa}.keymap-mod.hot .keymap-mod-label{color:#d97706;font-weight:700}.keymap-key-label{position:absolute;top:1px;left:4px;font-size:.58rem;color:#94a3b8;font-weight:700}.keymap-key-base{font-family:Noto Sans Gurmukhi,sans-serif;font-size:1rem;color:var(--ink);line-height:1}.keymap-key-shift{position:absolute;top:1px;right:3px;font-family:Noto Sans Gurmukhi,sans-serif;font-size:.62rem;color:var(--blue);line-height:1}.keymap-key-altgr{position:absolute;bottom:1px;right:3px;font-family:Noto Sans Gurmukhi,sans-serif;font-size:.62rem;color:#d97706;line-height:1}.keymap-note{margin:8px 2px 0;font-size:.68rem;color:var(--ink-soft);line-height:1.5}.keymap-legend-shift{color:var(--blue);font-weight:700}@media (max-width: 560px){.keymap-panel{display:none}}@media (max-width: 560px){.exam-info-table:not(.vowels):not(.aiims-posts-table) th,.exam-info-table:not(.vowels):not(.aiims-posts-table) td,.exam-breakdown th,.exam-breakdown td{display:block;width:100%;padding:8px 14px}.exam-info-table:not(.vowels):not(.aiims-posts-table) th,.exam-breakdown th{padding-bottom:0;border-bottom:none;font-size:.8rem}.exam-info-table.aiims-posts-table,.exam-info-table.vowels{display:block;overflow-x:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;table-layout:auto;white-space:nowrap}.exam-page{padding-left:12px;padding-right:12px}}.exam-review-unreached{background:#eff6ff;border-left:3px solid var(--blue);padding:10px 14px;border-radius:var(--radius-sm);font-size:.88rem;line-height:1.65;color:var(--ink-soft);margin:0 0 12px}.exam-note-inline{font-size:.78rem;color:var(--ink-soft)}.keymap-print{border:1px solid #cbd5e1;background:#fff;color:var(--ink-soft);font:inherit;font-size:.66rem;font-weight:700;padding:3px 7px;border-radius:4px;cursor:pointer;white-space:nowrap;margin-right:2px}.keymap-print:hover{background:#eff6ff;color:var(--blue);border-color:var(--blue)}.exam-head h1,.exam-sub{transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .exam-head h1{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .exam-sub{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.exam-info h2,.exam-info h3,.exam-info p,.exam-info li{transition:color 4s ease,text-shadow 4s ease,border-color 4s ease}.app-sky.night~main .exam-info h2,.app-sky.night~main .exam-info h3{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .exam-info h2{border-bottom-color:#c9d4ea59}.app-sky.night~main .exam-info p:not(.exam-info-warn),.app-sky.night~main .exam-info li{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.keymap-page{max-width:1040px}.keymap-page-title{font-size:26px;margin:20px 0 8px}.keymap-page-intro{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:74ch;margin:0 0 18px}.keymap-page-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 20px}.keymap-page-board{display:grid;gap:5px;margin-bottom:14px}.keymap-page-board .keymap-row{display:flex;gap:5px}.keymap-page-board .keymap-key.is-dead{border-style:dashed;border-color:#a78bfa}.keymap-page-legend{font-size:13px;color:var(--ink-soft);line-height:1.7;margin:0 0 28px}.keymap-legend-shift{color:#2563eb;font-weight:700}.keymap-legend-altgr{color:#d97706;font-weight:700}.keymap-legend-dead{color:#7c3aed;font-weight:700}.keymap-page h2{font-size:19px;margin:30px 0 10px}.keymap-page h3{font-size:15.5px;margin:20px 0 6px}.keymap-page p{color:var(--ink-soft);font-size:15px;line-height:1.7;max-width:74ch;margin:0 0 12px}.keymap-page kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;font-weight:700;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:#f8fafc;color:var(--ink)}.keymap-page-note{font-size:13.5px;padding-top:8px;border-top:1px solid var(--line)}.app-sky.night~main .keymap-page-title{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .keymap-page h2,.app-sky.night~main .keymap-page h3{color:#eaf0fb}.app-sky.night~main .keymap-page-intro,.app-sky.night~main .keymap-page p{color:#c9d4ea}.keymap-faq{display:grid;gap:8px;margin:0 0 26px;max-width:74ch}.keymap-faq details{border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 14px;background:var(--card)}.keymap-faq summary{cursor:pointer;font-weight:700;font-size:14.5px;color:var(--ink)}.keymap-faq details[open] summary{margin-bottom:8px}.keymap-faq p{margin:0;font-size:14px}@media (max-width: 780px){.keymap-page-board,.blog-keyboard{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}.keymap-page-board .keymap-row,.blog-keyboard-board .keymap-row{min-width:660px}.keymap-page-board .keymap-key,.blog-keyboard-board .keymap-key{height:52px}.keymap-page-board .keymap-key-base,.blog-keyboard-board .keymap-key-base{font-size:17px}.keymap-page-board .keymap-key-label,.blog-keyboard-board .keymap-key-label{font-size:8px}.keymap-page-board .keymap-key-shift,.keymap-page-board .keymap-key-altgr,.blog-keyboard-board .keymap-key-shift,.blog-keyboard-board .keymap-key-altgr{font-size:10.5px}.keymap-page-board .keymap-mod,.blog-keyboard-board .keymap-mod{overflow:hidden}.keymap-page-board .keymap-mod-label,.blog-keyboard-board .keymap-mod-label{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:clip;padding:0 2px}.keymap-scroll-hint{display:block}}.keymap-scroll-hint{display:none;font-size:12px;color:var(--ink-soft);margin:0 0 10px}.wpm-calc-page{max-width:640px}.wpm-calc-page h1{transition:color 4s ease,text-shadow 4s ease}.wpm-calc-sub{color:var(--ink-soft);margin:8px 0 28px;line-height:1.6;transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .wpm-calc-page h1{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .wpm-calc-sub,.app-sky.night~main .wpm-calc-info{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.app-sky.night~main .wpm-calc-info h2{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .wpm-calc-info a{color:#93c5fd}.wpm-calc-card{background:var(--card);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-card);padding:24px;display:flex;flex-direction:column;gap:16px}.wpm-calc-field{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;color:var(--ink)}.wpm-calc-field input{font-family:inherit;font-size:16px;font-weight:500;padding:10px 14px;border-radius:10px;border:1px solid rgba(15,27,45,.15);color:var(--ink)}.wpm-calc-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.wpm-calc-time-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wpm-calc-reset{align-self:flex-start;background:none;border:none;color:var(--ink-soft);font-size:13px;text-decoration:underline;cursor:pointer;padding:0}.wpm-calc-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.wpm-calc-result{background:var(--card);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-card);padding:18px 8px;text-align:center}.wpm-calc-result strong{display:block;font-size:28px;font-weight:800;color:var(--blue)}.wpm-calc-result span{font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}.wpm-calc-info{margin-top:32px;line-height:1.7;color:var(--ink-soft);transition:color 4s ease,text-shadow 4s ease}.wpm-calc-info h2{color:var(--ink);font-size:20px;margin-bottom:12px;transition:color 4s ease,text-shadow 4s ease}.wpm-calc-info p{margin:0 0 10px}.wpm-calc-info a{color:var(--blue);text-decoration:underline}@media (max-width: 480px){.wpm-calc-results{grid-template-columns:1fr}}.word-rain-page.dashboard-wrap{margin-top:26px;margin-bottom:50px}.word-rain-sub{color:var(--ink-soft);margin:8px 0 20px;line-height:1.6;transition:color 4s ease,text-shadow 4s ease}.app-sky.night~main .word-rain-side h1{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .word-rain-sub{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.word-rain-lang-select{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:13px;color:var(--ink-soft);transition:color 4s ease}.app-sky.night~main .word-rain-lang-select{color:#c9d4ea}.word-rain-lang-btn{background:#0f1b2d0f;border:1px solid rgba(15,27,45,.12);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;color:var(--ink-soft);cursor:pointer;transition:color 4s ease,background-color 4s ease,border-color 4s ease}.word-rain-lang-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.word-rain-lang-btn:disabled{opacity:.5;cursor:not-allowed}.app-sky.night~main .word-rain-lang-btn:not(.active){background:#f4f7ff1f;border-color:#f4f7ff40;color:#f4f7ff}.word-rain-raavi-note{font-size:12px;color:#92400e;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:6px 10px;margin:-8px 0 20px}@media (max-width: 480px){.word-rain-lang-btn.lang-pa-raavi,.word-rain-lang-btn.lang-hi{display:none}}.word-rain-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:32px;align-items:start}.word-rain-side{padding-top:4px}.word-rain-side h1{margin-top:0;transition:color 4s ease,text-shadow 4s ease}@media (max-width: 860px){.word-rain-layout{grid-template-columns:1fr;gap:0}}.word-rain-arena{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-lg, 16px);background:linear-gradient(180deg,#bfe0ff,#e8f5ff 70%,#dff3d8);box-shadow:var(--shadow-card);cursor:pointer;touch-action:pan-y}.word-rain-input{position:absolute;top:4px;left:4px;width:1px;height:1px;opacity:0;border:none;padding:0;pointer-events:none}.word-rain-hud{position:absolute;top:10px;left:12px;right:12px;display:flex;gap:16px;font-weight:800;font-size:13px;color:#0f1b2d;z-index:5}.word-rain-hud span{background:#ffffffbf;padding:4px 10px;border-radius:999px}.word-rain-lives{display:inline-flex;gap:2px}.word-rain-egg.is-broken{animation:wordRainCrack .4s ease;display:inline-block}@keyframes wordRainCrack{0%{transform:scale(1.3) rotate(0);filter:brightness(1.6)}25%{transform:scale(1.1) rotate(-12deg)}50%{transform:scale(1.15) rotate(10deg)}75%{transform:scale(1.05) rotate(-6deg)}to{transform:scale(1) rotate(0);filter:brightness(1)}}.word-rain-hud-grid{position:absolute;top:10px;left:12px;right:12px;z-index:5;display:grid;grid-template-columns:1fr auto;grid-template-areas:"stats controls" "progress progress";gap:8px 10px}.word-rain-stat-cards{grid-area:stats;display:flex;flex-wrap:nowrap;gap:8px;min-width:0}.word-rain-controls{grid-area:controls;display:flex;gap:8px;align-self:start}.word-rain-level-progress{grid-area:progress}.word-rain-stat-card{background:#ffffffd9;border-radius:12px;padding:6px 10px;display:flex;align-items:center;gap:6px;min-width:0;box-shadow:0 2px 6px #0f1b2d1a}.word-rain-stat-icon{font-size:16px;flex:none}.word-rain-stat-card div{display:flex;flex-direction:column;line-height:1.1;min-width:0}.word-rain-stat-label{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.word-rain-stat-value{font-size:15px;font-weight:800;color:#0f1b2d}.word-rain-lives-card{flex-direction:column;align-items:flex-start;gap:2px}.word-rain-lives-card .word-rain-lives{font-size:15px}.word-rain-combo-banner{position:absolute;top:106px;left:50%;transform:translate(-50%);background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;font-weight:800;font-size:13px;padding:4px 14px;border-radius:999px;z-index:6;animation:wordRainComboPop .25s ease}@keyframes wordRainComboPop{0%{transform:translate(-50%) scale(.6)}60%{transform:translate(-50%) scale(1.15)}to{transform:translate(-50%) scale(1)}}.word-rain-level-progress{background:#ffffff73;border-radius:10px;padding:4px 10px;display:flex;align-items:center;gap:8px;box-shadow:0 2px 6px #0f1b2d1a}.word-rain-level-progress-head{display:none}.word-rain-level-progress-track{flex:1;height:5px;border-radius:999px;background:#0f1b2d1f;overflow:hidden}.word-rain-level-progress-fill{height:100%;background:var(--blue);border-radius:999px;transition:width .3s ease}.word-rain-level-progress-gift{font-size:13px;flex:none;line-height:1}.word-rain-icon-btn{width:32px;height:32px;border-radius:50%;border:none;background:#ffffffd9;font-size:15px;font-weight:700;color:#0f1b2d;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #0f1b2d26}.word-rain-icon-btn:hover{background:#fff}@media (max-width: 480px){.word-rain-hud-grid{gap:6px 6px}.word-rain-stat-cards{gap:4px}.word-rain-stat-card{padding:4px 5px;gap:3px;flex:1}.word-rain-stat-icon{font-size:11px}.word-rain-stat-label{font-size:7px}.word-rain-stat-value,.word-rain-lives-card .word-rain-lives{font-size:11px}.word-rain-controls{gap:4px}.word-rain-icon-btn{width:24px;height:24px;font-size:11px}.word-rain-level-progress{padding:3px 8px;gap:5px}.word-rain-level-progress-gift{font-size:11px}}@media (min-width: 640px){.word-rain-level-progress{flex-wrap:wrap;padding:5px 10px}.word-rain-level-progress-head{display:flex;justify-content:space-between;width:100%;font-size:11px;font-weight:700;color:#334155;line-height:1.2}}.word-rain-pause-overlay{z-index:9}.word-rain-topscores-widget{position:fixed;right:16px;bottom:16px;z-index:20;background:#1e232ae0;color:#e2e8f0;font-size:12px;padding:8px 14px;border-radius:10px;display:flex;flex-direction:column;gap:3px;box-shadow:0 4px 14px #00000040}.word-rain-topscores-widget strong{color:#fff;font-weight:700}@media (max-width: 480px){.word-rain-topscores-widget{font-size:11px;padding:6px 10px;right:10px;bottom:10px}}.word-rain-topscore-banner{position:relative;background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;font-weight:800;font-size:15px;padding:10px 16px;border-radius:12px;margin:14px 0;overflow:hidden}.word-rain-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.word-rain-confetti-piece{position:absolute;top:-20px;left:calc(20% * var(--i));font-size:18px;animation:wordRainConfettiFall 1.6s ease-in forwards;animation-delay:calc(var(--i) * .08s)}@keyframes wordRainConfettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(90px) rotate(200deg);opacity:0}}.word-rain-nudge-banner{background:#2563eb1f;border:1px solid rgba(37,99,235,.3);color:#1e3a8a;font-size:13px;padding:8px 14px;border-radius:10px;margin:10px 0}.word-rain-nudge-link{background:none;border:none;padding:0;color:var(--blue);font-weight:700;text-decoration:underline;cursor:pointer;font:inherit}.word-rain-best-hud{position:absolute;top:10px;right:12px;left:auto;z-index:5}.word-rain-best-hud span{background:#ffffffd9;font-weight:800;color:#b45309}.word-rain-bird-catch{position:absolute;transform:translate(-50%,-50%);font-size:26px;pointer-events:none;animation:wordRainBirdCatch .6s ease-out forwards;z-index:6}@keyframes wordRainBirdCatch{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-15deg)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(5deg)}to{opacity:0;transform:translate(-50%,-140%) scale(.9) rotate(0)}}.word-rain-word{position:absolute;transform:translate(-50%);font-weight:700;font-size:18px;color:#0f1b2d;background:#ffffffd9;padding:4px 12px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 6px #0f1b2d26}.word-rain-word.is-target{background:#fff;box-shadow:0 0 0 2px var(--blue),0 4px 10px #2563eb40}.word-rain-word .matched{color:var(--blue)}.word-rain-arena.pa-mode .word-rain-word{font-family:AnmolLipi,GurbaniAkhar,Raavi,monospace;font-size:20px;letter-spacing:.02em}.word-rain-word.is-golden{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#4a2e00;box-shadow:0 0 0 2px #f59e0b,0 0 14px #f59e0b99;animation:wordRainGoldenPulse 1.2s ease-in-out infinite}.word-rain-word.is-golden.is-target{background:linear-gradient(135deg,#fef3c7,#fbbf24)}@keyframes wordRainGoldenPulse{0%,to{box-shadow:0 0 0 2px #f59e0b,0 0 10px #f59e0b80}50%{box-shadow:0 0 0 2px #f59e0b,0 0 20px #f59e0bd9}}.word-rain-sparkle{position:absolute;top:-14px;right:-6px;font-size:14px;animation:wordRainSparkleSpin 1.5s linear infinite}@keyframes wordRainSparkleSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.3)}to{transform:rotate(360deg) scale(1)}}.word-rain-powerup-toast{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);background:#0f1b2dd9;color:#fff;font-weight:800;font-size:22px;padding:10px 24px;border-radius:999px;z-index:8;pointer-events:none;animation:wordRainToast 1.4s ease forwards}@keyframes wordRainToast{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}25%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70%) scale(1)}}.word-rain-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#0f1b2deb;color:#fff;padding:24px;z-index:10}.word-rain-overlay h2{font-size:26px;margin:0 0 8px;letter-spacing:.02em}.word-rain-overlay p{margin:0 0 18px;font-size:15px}.word-rain-gameover-stats{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:12px 18px;margin:4px 0 22px;max-width:380px}.word-rain-gameover-stats div{display:flex;flex-direction:column;align-items:center}.word-rain-gameover-stats strong{font-size:22px;font-weight:800;color:#fff}.word-rain-gameover-stats span{font-size:11px;font-weight:700;color:#ffffffbf;text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.word-rain-btn{background:var(--blue);color:#fff;font-weight:800;font-size:15px;border:none;padding:12px 28px;border-radius:999px;cursor:pointer}.word-rain-btn:hover{filter:brightness(1.08)}.word-rain-btn-secondary{background:#ffffff24;color:#fff;font-weight:800;font-size:15px;border:1px solid rgba(255,255,255,.4);padding:12px 28px;border-radius:999px;cursor:pointer}.word-rain-btn-secondary:hover{background:#ffffff38}.word-rain-gameover-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.word-rain-info{margin-top:0;line-height:1.7;color:var(--ink-soft);transition:color 4s ease,text-shadow 4s ease}.word-rain-info h2{color:var(--ink);font-size:18px;margin-bottom:8px;transition:color 4s ease,text-shadow 4s ease}.word-rain-info a{color:var(--blue);text-decoration:underline}.app-sky.night~main .word-rain-info{color:#c9d4ea;text-shadow:0 1px 6px rgba(8,14,32,.5)}.app-sky.night~main .word-rain-info h2{color:#f4f7ff;text-shadow:0 1px 8px rgba(8,14,32,.55)}.app-sky.night~main .word-rain-info a{color:#93c5fd}@media (max-width: 480px){.word-rain-word{font-size:15px;padding:3px 9px}}.sponsor-block{margin:36px auto;max-width:728px;padding-top:18px;border-top:1px solid var(--line, #e5e9f0);text-align:center;transition:border-color 4s ease}.sponsor-block-label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft, #94A3B8);margin-bottom:10px;transition:color 4s ease}.app-sky.night~main .sponsor-block{border-top-color:#ffffff24}.app-sky.night~main .sponsor-block-label{color:#93a0bd}@media (max-width: 560px){.sponsor-block{margin:24px auto;padding-top:14px}}
