*,:before,:after{box-sizing:border-box}:root{--b1:99 102 241;--b2:20 184 166;--bg:#f6f8fb;--bg-soft:#eef2f7;--surface:#fff;--surface-2:#f1f5f9;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--brand:rgb(var(--b1));--brand-2:rgb(var(--b2));--brand-soft:rgb(var(--b1) / .1);--brand-text:#4f46e5;--grad:linear-gradient(135deg, var(--brand), var(--brand-2));--danger:#dc2626;--success:#059669;--shadow-sm:0 1px 2px #1410280f;--shadow:0 8px 24px -8px #28145a2e;--shadow-lg:0 20px 50px -12px #5028a059;--radius:16px;--ease:cubic-bezier(.2, .8, .2, 1);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0b1120;--bg-soft:#0f172a;--surface:#111a2e;--surface-2:#172238;--text:#e2e8f0;--muted:#94a3b8;--border:#233047;--brand-soft:rgb(var(--b1) / .16);--brand-text:#a5b4fc;--danger:#f87171;--success:#34d399;--shadow:0 8px 24px -8px #0009;--shadow-lg:0 20px 50px -12px rgb(var(--b1) / .22)}}body{background:var(--bg);min-height:100vh;margin:0}a{color:inherit}button{font:inherit;cursor:pointer;color:inherit}h1{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;line-height:1.15}h2,h3{letter-spacing:-.01em;margin:0}code{font-family:JetBrains Mono,ui-monospace,monospace}.icon{flex-shrink:0}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.center{place-items:center;min-height:100vh;display:grid}.center-text{text-align:center}.grad-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.link{color:var(--brand-text);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.error{color:var(--danger);margin:0;font-size:.9rem;font-weight:500}.success{color:var(--success);margin:0;font-size:.9rem;font-weight:600}.small-heading{font-size:1.05rem}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--brand-text);align-items:center;gap:6px;margin:0 0 8px;font-size:.8rem;font-weight:700;display:inline-flex}.notice{background:var(--brand-soft);color:var(--text);overflow-wrap:anywhere;border-radius:12px;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;font-size:.9rem;display:flex}.notice .icon{color:var(--brand-text);margin-top:1px}.pill{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.count{background:var(--brand-soft);color:var(--brand-text);border-radius:999px;margin-left:4px;padding:2px 8px;font-size:.75rem;font-weight:700}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-12px) rotate(var(--r,0deg))}}@keyframes blob{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-40px)scale(1.1)}66%{transform:translate(-25px,20px)scale(.92)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(var(--b2) / .55)}to{box-shadow:0 0 0 22px rgb(var(--b2) / 0)}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@keyframes eq{0%,to{height:30%}50%{height:100%}}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes logoPop{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.route{animation:fadeUp .45s var(--ease) both}.fade-up{animation:fadeUp .5s var(--ease) both}.stagger{animation:fadeUp .5s var(--ease) both;animation-delay:calc(min(var(--i,0), 12) * 55ms)}.shake{animation:.45s both shake}.splash .logo{animation:1.4s ease-in-out infinite logoPop}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s, border-color .2s;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--brand) 35%, var(--border));transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn.primary{color:#fff;background:var(--grad);box-shadow:0 8px 20px -8px rgb(var(--b1) / .6);border:0;position:relative;overflow:hidden}.btn.primary:after{content:"";transition:transform .7s var(--ease);background:linear-gradient(110deg,#0000 30%,#ffffff59 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.btn.primary:hover:after{transform:translate(120%)}.btn.primary:hover{box-shadow:var(--shadow-lg)}.btn.lg{padding:13px 18px;font-size:1rem}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.btn:disabled{opacity:.7;cursor:default;transform:none}.btn-spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.icon-btn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--muted);transition:color .2s, background .2s, transform .2s var(--ease), border-color .2s;border-radius:11px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--text);background:var(--surface-2);transform:translateY(-1px)}.icon-btn.danger:hover{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.link-btn{color:var(--brand-text);vertical-align:middle;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.85rem;font-weight:600;display:inline-flex}input{font:inherit;border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;min-width:0;padding:11px 14px;transition:border-color .2s,box-shadow .2s}input::placeholder{color:color-mix(in srgb, var(--muted) 70%, transparent)}input:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.field{flex-direction:column;gap:7px;display:flex}.field-label{font-size:.85rem;font-weight:600}.input-wrap{display:block;position:relative}.input-wrap .icon{color:var(--muted);pointer-events:none;transition:color .2s;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-wrap input{padding-left:40px}.input-wrap:focus-within .icon{color:var(--brand)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row input{flex:220px;width:auto}.row input.narrow{flex:0 200px}.stack{flex-direction:column;gap:16px;display:flex}.logo{letter-spacing:-.02em;align-items:center;gap:10px;font-weight:800;display:inline-flex}.logo-mark{background:var(--grad);color:#fff;width:34px;height:34px;box-shadow:0 6px 16px -6px rgb(var(--b1) / .7);border-radius:10px;place-items:center;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;display:grid}.logo-lg{gap:14px;font-size:1.5rem}.logo-lg .logo-mark{border-radius:14px;width:48px;height:48px;font-size:1rem}.auth{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.auth-hero{color:#fff;background:#0b1324;align-items:center;padding:48px;display:flex;position:relative;overflow:hidden}.blob{filter:blur(70px);opacity:.35;border-radius:50%;animation:14s ease-in-out infinite blob;position:absolute}.b1{background:rgb(var(--b1));width:420px;height:420px;top:-120px;left:-80px}.b2{background:rgb(var(--b2));width:360px;height:360px;animation-delay:-5s;bottom:-120px;right:-60px}.b3{opacity:.22;background:#0ea5e9;width:260px;height:260px;animation-delay:-9s;top:40%;left:45%}.auth-hero-inner{max-width:480px;animation:fadeUp .7s var(--ease) both;position:relative}.neural-net{width:100%;height:100%;display:block;position:absolute;inset:0}.spotlight{pointer-events:none;background:radial-gradient(360px circle at var(--mx,-500px) var(--my,-500px), rgb(var(--b2) / .16), transparent 60%);position:absolute;inset:0}.typewriter{white-space:nowrap}.caret{vertical-align:-.08em;background:linear-gradient(#a5b4fc,#5eead4);border-radius:2px;width:3px;height:.9em;margin-left:4px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.live-dot{vertical-align:1px;background:#34d399;border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.6s ease-out infinite livePulse;display:inline-block;box-shadow:0 0 #34d399b3}@keyframes livePulse{to{box-shadow:0 0 0 10px #34d39900}}.auth-form{position:relative;overflow:hidden}.auth-form-bg{opacity:.9;pointer-events:none;display:none;position:absolute;inset:0}.mobile-tagline{letter-spacing:-.01em;margin:14px 0 0;font-size:1.15rem;font-weight:800}.auth-form>:not(.auth-form-bg):not(.spotlight){position:relative}.form-spotlight{opacity:0;background:radial-gradient(420px circle at var(--mx,-500px) var(--my,-500px), rgb(var(--b1) / .18), transparent 65%);transition:opacity .4s}.auth-form:hover .form-spotlight{opacity:1}.auth-card{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);border-radius:22px;padding:32px}.auth-card:before,.auth-card:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;position:absolute;inset:-1px}.auth-card:before{background:radial-gradient(260px circle at var(--cx,50%) var(--cy,50%), rgb(var(--b2)), rgb(var(--b1)) 45%, transparent 75%);-webkit-mask-composite:xor;padding:1.5px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.auth-card:after{background:radial-gradient(300px circle at var(--cx,50%) var(--cy,50%), rgb(var(--b2) / .08), transparent 70%)}.auth-form:hover .auth-card:before,.auth-form:hover .auth-card:after{opacity:1}.auth-card>*{z-index:1;position:relative}.hero-chip{color:#e2e8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;margin-top:28px;padding:6px 12px;font-size:.8rem;font-weight:700;display:inline-block}.auth-hero h2{letter-spacing:-.03em;margin:16px 0 14px;font-size:clamp(2rem,3.4vw,3rem);font-weight:800;line-height:1.1}.auth-hero .grad-text{background:linear-gradient(90deg,#a5b4fc,#5eead4,#7dd3fc);background-size:200%;-webkit-background-clip:text;background-clip:text;animation:5s infinite gradientShift}.auth-hero p{color:#ffffffb8;margin:0;font-size:1.05rem;line-height:1.6}.snippets{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.snippets code{--r:calc((var(--i) - 2.5) * 1.5deg);color:#e2e8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeUp .6s var(--ease) both, float 6s ease-in-out infinite;animation-delay:calc(var(--i) * 90ms + .3s), calc(var(--i) * -.9s);background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:.88rem;font-weight:600}.auth-form{flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-mobile-logo{margin-bottom:24px;display:none}.auth-card{width:100%;max-width:440px;animation:fadeUp .55s var(--ease) both .1s;flex-direction:column;gap:18px;display:flex}.auth-card h1{margin-bottom:6px}.auth-card p{margin:0}.topbar{z-index:20;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 78%, transparent);-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;display:flex;position:sticky;top:0}.nav{align-items:center;gap:18px;display:flex}.brand-link{text-decoration:none}.nav-links{gap:4px;display:flex}.nav-links a{color:var(--muted);border-radius:10px;align-items:center;gap:7px;padding:8px 12px;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .2s,background .2s;display:inline-flex;position:relative}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.nav-links a.active{color:var(--brand-text);background:var(--brand-soft)}.user{align-items:center;gap:10px;display:flex}.avatar-link{border-radius:999px;align-items:center;gap:10px;padding:4px 10px 4px 4px;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-flex}.avatar-link:hover,.avatar-link.active{background:var(--surface-2)}.avatar{background:var(--grad);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:.8rem;font-weight:700;display:inline-grid}.avatar.sm{width:30px;height:30px;font-size:.75rem}.avatar.lg{width:56px;height:56px;font-size:1.2rem}.page{max-width:1200px;margin:0 auto;padding:32px 24px 64px}.page.narrow{max-width:560px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h1{margin:0}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:4px;padding:4px;display:flex}.tabs a{color:var(--muted);border-radius:9px;align-items:center;gap:6px;padding:8px 14px;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.tabs a:hover{color:var(--text)}.tabs a.active{background:var(--grad);color:#fff;box-shadow:0 6px 14px -6px rgb(var(--b1) / .6)}.hero{background:var(--surface);border:1px solid var(--border);border-radius:22px;margin-bottom:28px;padding:32px;position:relative;overflow:hidden}.hero>*{position:relative}.hero-glow{background:radial-gradient(circle, rgb(var(--b2) / .22), rgb(var(--b1) / .15) 40%, transparent 70%);border-radius:50%;width:460px;height:460px;animation:16s ease-in-out infinite blob;position:absolute;inset:-40% -10% auto auto}.hero p{margin:0}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.empty p{max-width:420px;margin:0}.empty-icon{background:var(--brand-soft);width:60px;height:60px;color:var(--brand-text);border-radius:18px;place-items:center;margin-bottom:6px;display:grid}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.playlist-card{transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.playlist-card:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-6px)}.thumb{aspect-ratio:16/9;background:var(--surface-2);display:block;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease);position:absolute;inset:0}.playlist-card:hover .thumb img{transform:scale(1.08)}.thumb:after{content:"";opacity:.8;background:linear-gradient(#0000 45%,#060a148c);transition:opacity .35s;position:absolute;inset:0}.thumb-play{z-index:1;color:#fff;background:var(--grad);opacity:0;width:56px;height:56px;transition:all .35s var(--ease);box-shadow:0 10px 30px -6px rgb(var(--b2) / .7);border-radius:50%;place-items:center;padding-left:3px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.6)}.playlist-card:hover .thumb-play{opacity:1;transform:translate(-50%,-50%)scale(1)}.thumb-badge{z-index:1;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.02em;background:#0b1120b3;border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;bottom:10px;left:10px}.card-body{flex-direction:column;gap:6px;padding:14px 16px 16px;display:flex}.card-body h3{font-size:1.02rem}.card-body h3 a{text-decoration:none}.card-body p{margin:0}.card-cta{color:var(--brand-text);align-items:center;gap:6px;font-size:.85rem;font-weight:700;display:inline-flex}.card-cta .icon{transition:transform .3s var(--ease)}.playlist-card:hover .card-cta .icon{transform:translate(4px)}.card-actions{gap:8px;margin-top:auto;padding:0 16px 16px;display:flex}.skeleton,.skeleton-card .thumb{background:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--surface-2) 40%, var(--border)) 37%, var(--surface-2) 63%);background-size:200% 100%;animation:1.3s linear infinite shimmer}.skeleton-card{pointer-events:none;padding-bottom:16px}.skeleton-card .line{margin:14px 16px 0}.line{border-radius:6px;height:12px}.line.short{width:55%}.skeleton-item{gap:10px;padding:8px;display:flex}.skeleton-lines{flex-direction:column;flex:1;gap:8px;padding-top:6px;display:flex}.add-form{flex-direction:column;gap:12px;margin-bottom:24px;padding:20px;display:flex}.add-form h2{align-items:center;gap:8px;font-size:1.1rem;display:flex}.add-form p{margin:0}.back{color:var(--muted);align-items:center;gap:6px;margin-bottom:12px;font-size:.88rem;font-weight:600;text-decoration:none;transition:color .2s,gap .2s;display:inline-flex}.back:hover{color:var(--brand-text);gap:9px}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;display:flex}.detail-head h2{font-size:1.5rem}.admin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:20px;display:grid}.admin-grid>.card{flex-direction:column;gap:14px;padding:20px;display:flex}.admin-grid h3{align-items:center;gap:8px;font-size:1.05rem;display:flex}.admin-grid p{margin:0}.members{margin:0;padding:0;list-style:none}.members li{border-top:1px solid var(--border);overflow-wrap:anywhere;align-items:center;gap:12px;padding:12px 0;display:flex}.member-info{flex:1;min-width:0}.video-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.video-list .item{text-decoration:none}.badge{background:var(--brand-soft);color:var(--brand-text);text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:2px 7px;font-size:.68rem;font-weight:700}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;margin:2px 4px 2px 0;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-block}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:14px 18px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);font-size:.74rem;font-weight:700}tbody tr{transition:background .2s}tbody tr:hover{background:var(--surface-2)}tr:last-child td{border-bottom:0}.user-cell{align-items:center;gap:10px;font-weight:600;display:inline-flex}.account-card{flex-direction:column;gap:22px;padding:24px;display:flex}.profile{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding-bottom:20px;display:flex}.layout{grid-template-columns:minmax(0,1fr) 360px;gap:24px;max-width:1400px;margin:0 auto;padding:24px;display:grid}.watch-main{min-width:0}.now-playing{animation:fadeUp .45s var(--ease) both;margin-top:18px}.now-playing .eyebrow{margin-bottom:4px}.now-playing h2{font-size:1.3rem}.side-list{align-self:start;position:sticky;top:76px;overflow:hidden}.side-head{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.side-head h3{font-size:1rem}.course-progress{background:var(--surface-2);border-radius:999px;height:5px;margin-top:4px;overflow:hidden}.course-progress span{background:var(--grad);border-radius:inherit;height:100%;transition:width .6s var(--ease);display:block}.side-list ul{max-height:calc(100vh - 220px);margin:0;padding:8px;list-style:none;overflow-y:auto}.item{text-align:left;width:100%;color:var(--text);transition:background .2s, transform .2s var(--ease);background:0 0;border:0;border-radius:12px;align-items:flex-start;gap:12px;padding:8px;display:flex}.item:hover{background:var(--surface-2);transform:translate(3px)}.item.active{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.thumb-sm{aspect-ratio:16/9;background:var(--surface-2);border-radius:9px;flex-shrink:0;width:124px;display:block;position:relative;overflow:hidden}.thumb-sm img{object-fit:cover;width:100%;height:100%;display:block}.item-text{overflow-wrap:anywhere;font-size:.88rem;font-weight:500;line-height:1.35}.item-num{color:var(--muted);margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;display:block}.item.active .item-num{color:var(--brand-text)}.eq{background:#0b11208c;justify-content:center;align-items:flex-end;gap:3px;padding-bottom:22%;display:flex;position:absolute;inset:0}.eq i{background:#fff;border-radius:2px;width:4px;animation:.9s ease-in-out infinite eq}.eq i:nth-child(2){animation-delay:-.3s}.eq i:nth-child(3){animation-delay:-.6s}.player{aspect-ratio:16/9;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-lg);background:#000;border-radius:18px;outline:none;position:relative;overflow:hidden}.player.fs{aspect-ratio:auto;border-radius:0;width:100vw;height:100vh}.player.idle{cursor:none}.stage{position:absolute;inset:0;overflow:hidden}.stage iframe{pointer-events:none;width:100%;height:140%;position:absolute;top:-20%;left:0}.shield{position:absolute;inset:0}.poster{background:#000;border:0;padding:0;position:absolute;inset:0}.poster img{object-fit:cover;opacity:.75;width:100%;height:100%;transition:transform .8s var(--ease), opacity .4s}.poster:hover img{opacity:.6;transform:scale(1.03)}.big-play{background:var(--grad);color:#fff;width:78px;height:78px;transition:transform .3s var(--ease);border-radius:50%;place-items:center;padding-left:5px;animation:1.8s ease-out infinite pulse;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.poster:hover .big-play{transform:translate(-50%,-50%)scale(1.1)}.spinner{border:4px solid #fff3;border-top-color:var(--brand-2);border-right-color:var(--brand);pointer-events:none;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;animation:.8s linear infinite spin;position:absolute;top:50%;left:50%}.controls{color:#fff;transition:opacity .3s, transform .3s var(--ease);background:linear-gradient(#0000,#060a14e0);padding:36px 14px 10px;position:absolute;bottom:0;left:0;right:0}.player.idle .controls{opacity:0;pointer-events:none;transform:translateY(8px)}.player.unstarted .controls{opacity:0;pointer-events:none}.bar{align-items:center;gap:2px;display:flex}.bar button{color:#fff;background:0 0;border:0;border-radius:10px;place-items:center;width:40px;height:40px;transition:background .2s,transform .15s;display:grid}.bar button:hover{background:#ffffff24}.bar button:active{transform:scale(.9)}.bar .play-btn{width:44px;height:44px}.bar .speed{width:auto;padding:0 10px;font-size:13px;font-weight:700}.time{font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.9;margin-left:8px;font-size:13px}.spacer{flex:1}.controls input[type=range]{appearance:none;cursor:pointer;width:100%;height:16px;box-shadow:none;background:0 0;border:0;margin:0;padding:0}.controls input[type=range]:focus{box-shadow:none}.controls input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--brand), var(--brand-2) var(--progress,0%), #ffffff47 var(--progress,0%));border-radius:4px;height:4px;transition:height .15s}.controls input[type=range]::-moz-range-track{background:#ffffff47;border-radius:4px;height:4px}.controls input[type=range]::-moz-range-progress{background:var(--grad);border-radius:4px;height:4px}.controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;box-shadow:0 0 0 4px rgb(var(--b2) / .35);background:#fff;border-radius:50%;margin-top:-5px;transition:transform .15s;transform:scale(0)}.controls input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:14px;height:14px;transition:transform .15s;transform:scale(0)}.controls:hover input[type=range]::-webkit-slider-thumb{transform:scale(1)}.controls:hover input[type=range]::-moz-range-thumb{transform:scale(1)}.seek{margin-bottom:4px!important}.seek:hover::-webkit-slider-runnable-track{height:6px}.volume{width:84px!important}@media (width<=960px){.auth{grid-template-columns:1fr}.auth-hero{display:none}.auth-mobile-logo,.auth-form-bg{display:block}.auth-card{padding:24px 20px}.auth-form{background:radial-gradient(600px 300px at 0% 0%, rgb(var(--b1) / .16), transparent 70%), radial-gradient(500px 300px at 100% 100%, rgb(var(--b2) / .14), transparent 70%)}.layout,.admin-grid{grid-template-columns:1fr}.layout{padding:16px}.side-list{position:static}.side-list ul{max-height:none}}@media (width<=560px){.page{padding:20px 16px 48px}.topbar{padding:10px 14px}.nav{gap:10px}.topbar .logo-text,.hide-sm{display:none}.hero{padding:24px 20px}.volume{display:none}.bar button{width:36px}.thumb-sm{width:104px}}.page.narrow-lg{max-width:640px}.game-head{text-align:center;margin-bottom:20px}.game-head p{margin:0}.game-stats{gap:12px;margin-bottom:16px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:6px;min-width:88px;padding:12px 16px;display:flex}.stat.grow{flex:1;justify-content:center}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.72rem;font-weight:700}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem;line-height:1}.bump{animation:bump .3s var(--ease);display:inline-block}@keyframes bump{40%{color:var(--brand-2);transform:scale(1.3)}}.timebar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.timebar span{border-radius:inherit;background:var(--grad);height:100%;transition:width .1s linear;display:block}.timebar span.low{background:linear-gradient(90deg,#f97316,#ef4444);animation:.6s step-end infinite blink}.board{-webkit-user-select:none;user-select:none;touch-action:manipulation;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px;display:grid;position:relative}.hole{aspect-ratio:1;background:radial-gradient(ellipse 60% 22% at 50% 78%, #00000059, transparent 70%), linear-gradient(160deg, var(--surface-2), var(--bg-soft));box-shadow:inset 0 -6px 0 #0000001f, inset 0 0 0 1px var(--border);border:0;border-radius:20px;transition:transform .1s;position:relative;overflow:hidden}.hole:active{transform:scale(.96)}.hole-key{color:var(--muted);opacity:.6;font-size:.7rem;font-weight:700;position:absolute;top:8px;left:10px}.critter{animation:popUp .22s var(--ease) both;cursor:pointer;place-items:center;font-size:clamp(2.4rem,11vw,3.6rem);display:grid;position:absolute;inset:0}.critter.gold{filter:drop-shadow(0 0 14px #facc15cc)}.critter.bomb{animation:popUp .22s var(--ease) both, wobble .5s ease-in-out infinite .22s}@keyframes popUp{0%{opacity:0;transform:translateY(70%)scale(.4)}to{opacity:1;transform:none}}@keyframes wobble{25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.pop{pointer-events:none;animation:floatUp .7s var(--ease) both;font-size:1.4rem;font-weight:800;position:absolute;top:30%;left:50%;transform:translate(-50%)}.pop.good{color:var(--success)}.pop.bad{color:var(--danger)}@keyframes floatUp{0%{opacity:1;transform:translate(-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-60px)scale(1.2)}}.board-overlay{border-radius:inherit;text-align:center;background:color-mix(in srgb, var(--surface) 80%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;animation:.3s both fadeIn;display:flex;position:absolute;inset:0}.board-overlay p{margin:0}.legend{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.legend span{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:.9rem}.final-label{color:var(--brand-text);font-weight:700}.final-score{background:var(--grad);color:#0000;animation:bump .5s var(--ease);-webkit-background-clip:text;background-clip:text;font-size:4rem;font-weight:800;line-height:1}.final-rank{font-size:1.2rem;font-weight:700}@media (width<=560px){.board{gap:10px;padding:12px}.stat{min-width:70px;padding:10px 12px}}@media (width<=380px){.nav{gap:6px}.nav-links a{padding:8px 9px}.avatar-link{padding:2px}.user{gap:6px}}.games-link{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:12px;padding:10px;font-size:.9rem;text-decoration:none;transition:all .2s;display:block}.games-link:hover{color:var(--text);border-color:var(--brand);background:var(--brand-soft)}.game-head .back{justify-content:center}.games-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.game-card{transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.game-card:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-6px)}.game-art{aspect-ratio:16/9;background:radial-gradient(circle at 30% 20%, rgb(var(--b1) / .45), transparent 60%), radial-gradient(circle at 80% 90%, rgb(var(--b2) / .45), transparent 60%), var(--surface-2);place-items:center;display:grid;position:relative;overflow:hidden}.game-art[data-game=memory]{background:radial-gradient(circle at 70% 20%, rgb(var(--b2) / .5), transparent 60%), radial-gradient(circle at 20% 90%, rgb(var(--b1) / .4), transparent 60%), var(--surface-2)}.game-art[data-game=snake]{background:radial-gradient(circle at 50% 50%, #22c55e59, transparent 65%), var(--surface-2)}.game-art[data-game=quiz]{background:radial-gradient(circle at 20% 30%, #facc154d, transparent 60%), radial-gradient(circle at 80% 80%, rgb(var(--b1) / .45), transparent 60%), var(--surface-2)}.game-emoji{transition:transform .45s var(--ease);filter:drop-shadow(0 8px 16px #0000004d);font-size:3.6rem}.game-card:hover .game-emoji{transform:scale(1.2)rotate(-8deg)}.game-art .thumb-badge{inset:10px 10px auto auto}.game-foot{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.game-card:hover .card-cta .icon{transform:translate(4px)}.cta-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding:20px 24px;display:flex}.cta-card p{margin:4px 0 0}.memory-board{grid-template-columns:repeat(4,1fr);gap:10px}.mem-card{aspect-ratio:1;perspective:700px;background:0 0;border:0;padding:0}.mem-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s var(--ease);display:block;position:relative}.mem-card.flipped .mem-inner{transform:rotateY(180deg)}.mem-face{backface-visibility:hidden;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.mem-back{background:var(--grad);color:#fff;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700;box-shadow:inset 0 -4px #00000026}.mem-card:not(.flipped):hover .mem-back{filter:brightness(1.1)}.mem-front{background:var(--surface-2);border:1px solid var(--border);transform:rotateY(180deg)}.mem-emoji{font-size:clamp(1.6rem,7vw,2.4rem)}.mem-label{color:var(--muted);font-size:.7rem;font-weight:700}.mem-card.matched .mem-front{border-color:var(--success);box-shadow:0 0 0 2px color-mix(in srgb, var(--success) 35%, transparent);animation:bump .4s var(--ease)}.snake-board{padding:10px;display:block}.snake-canvas{aspect-ratio:1;background:var(--surface-2);touch-action:none;border-radius:12px;width:100%;display:block}.dpad{grid-template-rows:repeat(2,56px);grid-template-columns:repeat(3,56px);justify-content:center;gap:8px;margin-top:16px;display:grid}.dpad button{border:1px solid var(--border);background:var(--surface);color:var(--text);touch-action:manipulation;border-radius:14px;place-items:center;transition:transform .1s,background .2s;display:grid}.dpad button:active{background:var(--brand-soft);transform:scale(.92)}.dpad .up{grid-area:1/2}.dpad .left{grid-area:2/1}.dpad .down{grid-area:2/2}.dpad .right{grid-area:2/3}@media (hover:hover) and (pointer:fine){.dpad{display:none}}.quiz-card{animation:fadeUp .4s var(--ease) both;flex-direction:column;gap:14px;padding:24px;display:flex}.quiz-intro{text-align:center;align-items:center}.quiz-intro p{margin:0}.quiz-tag{text-transform:uppercase;letter-spacing:.06em;background:var(--brand-soft);color:var(--brand-text);border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:.72rem;font-weight:700}.quiz-q{font-size:1.2rem}.quiz-code{color:#e2e8f0;background:#0b1324;border:1px solid #94a3b826;border-radius:12px;margin:0;padding:16px 18px;font-size:.95rem;line-height:1.55;overflow-x:auto}.quiz-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quiz-option{text-align:left;border:1.5px solid var(--border);background:var(--surface);animation:fadeUp .35s var(--ease) both;animation-delay:calc(var(--i) * 50ms);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;font-weight:600;transition:border-color .2s,background .2s,transform .15s,opacity .2s;display:flex}.quiz-option:not(:disabled):hover{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-2px)}.quiz-option:disabled{cursor:default}.opt-letter{background:var(--surface-2);border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:.8rem;display:grid}.quiz-option.correct{border-color:var(--success);background:color-mix(in srgb, var(--success) 14%, var(--surface));animation:bump .35s var(--ease)}.quiz-option.correct .opt-letter{background:var(--success);color:#fff}.quiz-option.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--surface));animation:.4s shake}.quiz-option.wrong .opt-letter{background:var(--danger);color:#fff}.quiz-option.dim{opacity:.5;animation:none}.quiz-feedback{animation:fadeUp .3s var(--ease) both;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;font-size:.92rem;display:flex}.quiz-feedback.good{background:color-mix(in srgb, var(--success) 12%, transparent)}.quiz-feedback.bad{background:color-mix(in srgb, var(--danger) 10%, transparent)}.quiz-feedback .btn{margin-left:auto}@media (width<=560px){.quiz-options{grid-template-columns:1fr}.memory-board{gap:7px;padding:10px}}.auth-quicklinks{z-index:2;flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex;top:18px;right:18px;position:absolute!important}.games-float{color:var(--text);background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid color-mix(in srgb, var(--brand) 45%, var(--border));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 0 0 rgb(var(--b2) / .5);transition:transform .2s var(--ease), background .2s;border-radius:999px;padding:8px 14px;font-size:.88rem;font-weight:700;text-decoration:none;animation:2.2s ease-out infinite livePulse}.games-float:hover{background:var(--brand-soft);transform:translateY(-2px)}.games-banner{background:linear-gradient(120deg, rgb(var(--b1) / .12), rgb(var(--b2) / .12)), var(--surface);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;align-items:center;gap:16px;margin-bottom:28px;padding:16px 20px;text-decoration:none;display:flex}.games-banner:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-3px)}.games-banner-emojis{letter-spacing:2px;white-space:nowrap;font-size:1.6rem}.games-banner:hover .games-banner-emojis{animation:.5s ease-in-out 2 wobble}.games-banner-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}@media (width<=560px){.games-banner{flex-wrap:wrap}.games-banner-emojis{font-size:1.3rem}.games-banner .btn{width:100%}.auth-quicklinks{top:12px;left:12px;right:12px}.games-float{padding:7px 12px;font-size:.84rem}}.snake-board .board-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;color:#e2e8f0;background:#0b11208c}.snake-board .board-overlay .muted{color:#cbd5e1}.compiler{flex-direction:column;gap:12px;max-width:1500px;height:calc(100dvh - 59px);margin:0 auto;padding:14px 20px 20px;display:flex}.compiler-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.file-tabs{gap:6px;display:flex;overflow-x:auto}.file-tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:9px 14px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.85rem;font-weight:500;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.file-tab:hover:not(:disabled){color:var(--text)}.file-tab.active{color:var(--text);border-color:color-mix(in srgb, var(--brand) 55%, var(--border));background:var(--brand-soft)}.file-tab:disabled{opacity:.5;cursor:not-allowed}.compiler-actions{align-items:center;gap:8px;display:flex}.run-btn{min-width:96px;padding:9px 18px}.run-btn.stop{color:#fff;background:#dc2626;border-color:#dc2626}.stop-square{background:currentColor;border-radius:2px;width:11px;height:11px}.compiler-panes{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;min-height:0;display:grid}.pane{border:1px solid var(--border);background:#0b1324;border-radius:14px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.editor-pane{box-shadow:var(--shadow)}.code-editor{flex:1;min-height:0}.code-editor .cm-editor{height:100%}.pane-head{color:#cbd5e1;background:#0f192e;border-bottom:1px solid #94a3b81f;align-items:center;gap:10px;padding:9px 14px;font-size:.85rem;font-weight:700;display:flex}.pane-hint{color:#64748b;font-weight:500}.pane-head .link-btn{color:#a5b4fc;margin-left:auto}.terminal{cursor:text;color:#e2e8f0;white-space:pre-wrap;word-break:break-word;flex:1;min-height:0;padding:14px 16px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.88rem;line-height:1.6;overflow:auto}.term-placeholder{color:#64748b;white-space:normal;font-family:Plus Jakarta Sans,system-ui,sans-serif}.term-err{color:#fca5a5}.term-in{color:#5eead4}.term-sys{color:#94a3b8;font-weight:600}.term-status{color:#94a3b8;font-style:italic;animation:1.2s ease-in-out infinite blink}.term-signin{white-space:nowrap;margin-top:10px;font-family:Plus Jakarta Sans,system-ui,sans-serif}.term-input{display:inline}.term-input input{width:auto;min-width:12ch;max-width:100%;box-shadow:none;color:#5eead4;font:inherit;caret-color:#5eead4;background:0 0;border:0;border-bottom:1px dashed #5eead480;border-radius:0;padding:0;display:inline-block}.term-input input:focus{box-shadow:none}.term-cursor{vertical-align:text-bottom;background:#94a3b8;width:8px;height:1.1em;animation:1s step-end infinite blink;display:inline-block}.stdin-box{color:#cbd5e1;border-top:1px solid #94a3b81f;flex-direction:column;gap:6px;padding:10px 14px 14px;display:flex}.stdin-box textarea{font:inherit;resize:vertical;color:#e2e8f0;background:#0f192e;border:1px solid #94a3b833;border-radius:8px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:.85rem}.compiler-banner .games-banner-emojis{letter-spacing:4px}@media (width<=860px){.compiler{height:auto;padding:12px}.compiler-panes{grid-template-columns:1fr}.editor-pane{height:55vh}.output-pane{min-height:40vh}}@media (width<=420px){.file-tab{padding:8px 10px;font-size:.78rem}.run-btn{min-width:0;padding:9px 14px}}.quick-links{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;display:grid}.quick-card{background:linear-gradient(135deg, rgb(var(--b1) / .1), rgb(var(--b2) / .08)), var(--surface);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;display:flex}.quick-card:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-4px)}.quick-emoji{transition:transform .4s var(--ease);margin-bottom:4px;font-size:1.8rem}.quick-card:hover .quick-emoji{transform:scale(1.15)rotate(-6deg)}@media (width<=720px){.quick-links{grid-template-columns:1fr}.quick-card{flex-flow:wrap;align-items:center;column-gap:12px}.quick-emoji{margin:0}.quick-card .muted{flex-basis:100%}}.cheat-page{max-width:1320px}.cheat-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.cheat-controls .tabs button{color:var(--muted);background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:8px 16px;font-size:.92rem;font-weight:700;transition:all .2s;display:inline-flex}.cheat-controls .tabs button.active{background:var(--grad);color:#fff;box-shadow:0 6px 14px -6px rgb(var(--b1) / .6)}.cheat-search{flex:260px;max-width:460px}.cheat-layout{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:20px;display:grid}.cheat-toc{flex-direction:column;gap:2px;max-height:calc(100vh - 96px);padding:10px;display:flex;position:sticky;top:76px;overflow-y:auto}.toc-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 8px 6px;font-size:.72rem;font-weight:700}.cheat-toc button{text-align:left;color:var(--text);background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:8px 10px;font-size:.88rem;font-weight:600;transition:background .2s,color .2s;display:flex}.cheat-toc button:hover{background:var(--brand-soft);color:var(--brand-text)}.toc-count{color:var(--muted);margin-left:auto;font-size:.72rem;font-weight:700}.cheat-content{flex-direction:column;gap:20px;min-width:0;display:flex}.cheat-topic{padding:20px 22px;scroll-margin-top:76px}.cheat-topic-head{align-items:center;gap:10px;display:flex}.cheat-topic-head h2{align-items:center;gap:10px;font-size:1.35rem;display:flex}.cheat-intro{margin:6px 0 14px}.cheat-table{border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.cheat-row{border-top:1px solid var(--border);grid-template-columns:120px minmax(150px,1fr) minmax(150px,1fr) minmax(0,2.2fr);align-items:start;gap:14px;padding:12px 14px;transition:background .2s;display:grid}.cheat-row:hover{background:var(--surface-2)}.cheat-row-head{background:var(--surface-2);text-transform:uppercase;letter-spacing:.05em;color:var(--brand-text);border-top:0;padding:10px 14px;font-size:.74rem;font-weight:700}.cheat-row-head:hover{background:var(--surface-2)}.cheat-cat{font-size:.88rem;font-weight:700}.cheat-op{color:var(--brand-text);background:var(--brand-soft);overflow-wrap:anywhere;border-radius:6px;justify-self:start;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:.82rem}.cheat-purpose{color:var(--text);font-size:.9rem}.cheat-example{flex-direction:column;gap:6px;min-width:0;display:flex}.code-wrap{position:relative}.code-block{color:#e2e8f0;background:#0b1324;border:1px solid #94a3b826;border-radius:10px;margin:0;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.55;overflow-x:auto}.tk-str{color:#86efac}.tk-com{color:#64748b;font-style:italic}.tk-num{color:#fbbf24}.tk-kw{color:#a5b4fc;font-weight:600}.tk-ann{color:#5eead4}.code-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex;position:absolute;top:6px;right:6px}.code-wrap:hover .code-actions,.code-wrap:focus-within .code-actions{opacity:1}@media (hover:none){.code-actions{opacity:1}}.mini-btn{color:#e2e8f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad9;border:1px solid #94a3b840;border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:700;transition:background .2s,color .2s}.mini-btn:hover{background:#1e293b}.mini-btn.try{color:#5eead4;border-color:#5eead466}.mini-note{color:#fbbf24;background:#0f172ad9;border:1px solid #fbbf244d;border-radius:6px;padding:3px 8px;font-size:.7rem;font-weight:700}.cheat-output{background:color-mix(in srgb, var(--success) 9%, var(--surface-2));border-left:3px solid var(--success);border-radius:8px;align-items:flex-start;gap:8px;padding:6px 10px;display:flex}.out-label{text-transform:uppercase;letter-spacing:.05em;color:var(--success);white-space:nowrap;padding-top:2px;font-size:.68rem;font-weight:800}.cheat-output pre{white-space:pre-wrap;word-break:break-word;margin:0;font-family:JetBrains Mono,monospace;font-size:.8rem}@media (width<=1100px){.cheat-row{grid-template-columns:110px minmax(0,1fr) minmax(0,1.6fr)}.cheat-row .cheat-example{grid-column:2/-1}.cheat-row-head span:last-child{display:none}}@media (width<=860px){.cheat-layout{grid-template-columns:1fr}.cheat-toc{flex-direction:row;max-height:none;padding:6px;position:static;overflow-x:auto}.toc-title,.toc-count{display:none}.cheat-toc button{white-space:nowrap}}@media (width<=620px){.cheat-topic{padding:16px 12px}.cheat-row-head{display:none}.cheat-row{grid-template-columns:1fr;gap:6px;padding:12px}.cheat-row .cheat-example{grid-column:auto}.cheat-cat:empty{display:none}.cheat-cat{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem}}@media (width<=420px){.hide-xs{display:none!important}}.cheat-output.ansi-out{color:#e2e8f0;background:#0b1324;border-left-color:#22d3ee}.cheat-output.ansi-out .out-label{color:#22d3ee}.compare-wrap{border:1px solid var(--border);border-radius:12px;margin:0 0 16px;overflow-x:auto}.compare-table{min-width:560px;font-size:.86rem}.compare-table th,.compare-table td{padding:10px 14px}.compare-table thead th{background:var(--grad);color:#fff;text-transform:none;letter-spacing:0;font-size:.86rem}.compare-table tbody th{text-align:left;background:var(--surface-2);color:var(--text);text-transform:none;letter-spacing:0;white-space:nowrap;font-size:.84rem;font-weight:700}.stage{--gold:#fcd34d;--neon:#5eead4;--neon-2:#a5b4fc;color:#e6e9ff;background:radial-gradient(700px 380px at 50% -8%,#6366f18c,#0000 62%),radial-gradient(420px 300px at 0 100%,#14b8a638,#0000 65%),radial-gradient(420px 300px at 100% 100%,#a855f733,#0000 65%),linear-gradient(#121634 0%,#070a1c 100%);border:1px solid #a5b4fc38;border-radius:22px;position:relative;overflow:hidden;box-shadow:0 30px 80px -30px #0a0828d9,inset 0 1px #ffffff0f}.stage:before{content:"";pointer-events:none;filter:blur(6px);background:conic-gradient(from 180deg at 50% 0,#0000 42%,#a5b4fc1f 47%,#0000 50%,#5eead41a 53%,#0000 58%);height:70%;animation:9s ease-in-out infinite alternate beams;position:absolute;inset:-40% 10% auto}@keyframes beams{to{transform:rotate(6deg)}}.stage>*{position:relative}.stage b{color:var(--gold)}.stage-back{color:#c7d2fe}.stage-center{text-align:center;padding:26px 22px 30px}.stage-logo{filter:drop-shadow(0 0 22px #5eead48c);font-size:3.4rem;animation:2.2s ease-in-out infinite logoPop}.stage-title{background:linear-gradient(90deg, var(--neon-2), var(--gold), var(--neon));color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0 4px;font-size:clamp(2rem,6vw,2.8rem)}.stage-sub{color:#c7d2fe;margin:4px 0}.stage-modes{grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;display:grid}.stage-mode{color:#fff;transition:transform .25s var(--ease), box-shadow .25s, border-color .25s;background:linear-gradient(#6366f147,#0f1230b3);border:1px solid #a5b4fc4d;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:18px 10px;display:flex}.stage-mode:hover{border-color:var(--neon);transform:translateY(-4px);box-shadow:0 0 28px #5eead459}.stage-mode-emoji{font-size:2rem}.stage-mode-best{color:#a5b4fc;font-size:.75rem}.stage-rules{text-align:left;color:#dbe2ff;background:#0a0e2899;border:1px solid #a5b4fc2e;border-radius:16px;flex-direction:column;gap:8px;margin:0;padding:16px 18px;font-size:.9rem;list-style:none;display:flex}.stage-page{max-width:1180px}.stage-game{grid-template-columns:minmax(0,1fr) 210px;display:grid}.stage-main{flex-direction:column;gap:16px;min-width:0;padding:20px 22px 22px;display:flex}.stage-hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stage-powerups{gap:10px;display:flex}.stage-power{color:#fff;width:66px;height:54px;transition:transform .2s var(--ease), box-shadow .2s;background:radial-gradient(circle at 50% 20%,#6366f18c,#12163ce6);border:1.5px solid #5eead499;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;box-shadow:0 0 14px #5eead440}.stage-power span{font-size:1.2rem;line-height:1}.stage-power small{color:#c7d2fe;font-size:.62rem;font-weight:700}.stage-power:hover:not(:disabled){transform:translateY(-2px)scale(1.04);box-shadow:0 0 22px #5eead480}.stage-power.used{opacity:.3;filter:grayscale();box-shadow:none}.stage-power:disabled{cursor:default}.stage-hud-right{align-items:center;gap:14px;display:flex}.stage-lives{letter-spacing:2px;font-size:1.25rem}.stage-lives .lost{filter:grayscale();opacity:.25}.stage-timer{flex-shrink:0;width:58px;height:58px;position:relative}.stage-timer svg{width:100%;height:100%;transform:rotate(-90deg)}.stage-timer circle{fill:none;stroke-width:3.2px}.stage-timer .track{stroke:#a5b4fc2e}.stage-timer .bar{stroke:var(--neon);stroke-dasharray:100;stroke-linecap:round;filter:drop-shadow(0 0 4px #5eead4cc);transition:stroke-dashoffset .2s linear}.stage-timer span{place-items:center;font-size:1.15rem;font-weight:800;display:grid;position:absolute;inset:0}.stage-timer.low .bar{stroke:#f87171;filter:drop-shadow(0 0 4px #f87171e6)}.stage-timer.low span{color:#f87171;animation:.6s step-end infinite blink}.stage-mini-track{display:none}.stage-question{text-align:center;animation:fadeUp .45s var(--ease) both;background:linear-gradient(#1c2054eb,#0e1130eb);border:1.5px solid #a5b4fc73;border-radius:20px;padding:18px 20px;box-shadow:0 0 34px #6366f159,inset 0 0 26px #6366f12e}.stage-q-meta{letter-spacing:.06em;text-transform:uppercase;color:#a5b4fc;margin:0 0 6px;font-size:.76rem;font-weight:700}.diff.d1{color:#6ee7b7}.diff.d2{color:#fcd34d}.diff.d3{color:#fca5a5}.stage-question h2{color:#fff;font-size:1.2rem;line-height:1.4}.stage-question .code-block{text-align:left;margin-top:12px;font-size:.86rem}.stage-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stage-opt{text-align:left;color:#fff;min-height:54px;animation:fadeUp .4s var(--ease) both;animation-delay:calc(var(--i) * 70ms + .12s);background:linear-gradient(#1e2258,#101334);border:1.5px solid #a5b4fc73;border-radius:999px;align-items:center;gap:12px;padding:8px 18px 8px 8px;transition:transform .15s,border-color .2s,box-shadow .2s,background .25s,opacity .25s;display:flex;box-shadow:inset 0 1px #ffffff0f}.stage-opt:hover:not(:disabled){border-color:var(--neon);transform:translateY(-2px);box-shadow:0 0 20px #5eead459}.stage-opt:disabled{cursor:default}.stage-opt-key{color:#111;background:linear-gradient(#fde68a,#f59e0b);border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.stage-opt-text{overflow-wrap:anywhere;font-family:JetBrains Mono,monospace;font-size:.92rem;font-weight:600}.stage-opt.right{background:linear-gradient(#16a34a,#0f7a37);border-color:#86efac;animation:.45s ease-in-out 3 rightFlash;box-shadow:0 0 26px #22c55e8c}.stage-opt.right .stage-opt-key{color:#15803d;background:#fff}.stage-opt.wrongpick{background:linear-gradient(#dc2626,#991b1b);border-color:#fca5a5;animation:.4s shake;box-shadow:0 0 22px #ef444480}.stage-opt.wrongpick .stage-opt-key{color:#b91c1c;background:#fff}.stage-opt.faded{opacity:.4;animation:none}.stage-opt.removed{visibility:hidden}@keyframes rightFlash{50%{filter:brightness(1.35)}}.stage-footer{justify-content:center;align-items:center;min-height:52px;display:flex}.stage-hint{color:#8b93c9;margin:0;font-size:.82rem}.stage-feedback{width:100%;animation:fadeUp .3s var(--ease) both;border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.stage-feedback.good{background:#22c55e24;border:1px solid #86efac59}.stage-feedback.bad{background:#ef44441f;border:1px solid #fca5a54d}.stage-feedback .btn{margin-left:auto}.stage-cta{color:#111!important;background:linear-gradient(90deg,#f59e0b,#fcd34d)!important}.stage-ghost{color:#e6e9ff;background:#0f1230b3;border-color:#a5b4fc59}.stage-ladder{background:#06081a80;border-left:1px solid #a5b4fc29;flex-direction:column;gap:3px;padding:16px 12px;display:flex}.stage-rung{color:#aab3e8;border-radius:999px;grid-template-columns:26px 26px 1fr;align-items:center;gap:4px;padding:5px 10px;font-size:.84rem;transition:background .3s;display:grid}.rung-num{font-weight:700}.rung-icon{text-align:center}.rung-xp{text-align:right;font-weight:700}.stage-rung.d1 .rung-xp{color:#6ee7b7}.stage-rung.d2 .rung-xp{color:#fcd34d}.stage-rung.d3 .rung-xp{color:#fca5a5}.stage-rung.done,.stage-rung.done .rung-xp{color:#5b6394}.stage-rung.current{color:#0b1020;background:linear-gradient(90deg,#5eead4e6,#a5b4fce6);box-shadow:0 0 18px #5eead48c}.stage-rung.current .rung-xp{color:#0b1020}.stage-result-title{color:#fff;margin:6px 0;font-size:1.5rem}.stage-badge{color:var(--gold);background:#fcd34d26;border:1px solid #fcd34d66;border-radius:999px;margin:4px 0;padding:4px 12px;font-weight:700;display:inline-block}.stage-xp{color:var(--gold);text-shadow:0 0 30px #fcd34d73;animation:bump .6s var(--ease);margin:4px 0 6px;font-size:clamp(2.6rem,9vw,3.6rem);font-weight:800}.stage-rank{margin:0;font-size:1.2rem;font-weight:700}.stage-stats{color:#aab3e8;flex-wrap:wrap;justify-content:center;gap:16px;margin:10px 0 0;font-size:.9rem;display:flex}.stage-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}@keyframes confettiFall{to{transform:translateY(120vh)rotate(540deg)}}@media (width<=860px){.stage-game{grid-template-columns:1fr}.stage-ladder{display:none}.stage-mini-track{color:#c7d2fe;align-items:center;gap:8px;font-size:.85rem;display:flex}.stage-mini-bar{background:#a5b4fc2e;border-radius:999px;flex:1;height:6px;overflow:hidden}.stage-mini-bar span{background:linear-gradient(90deg, var(--neon), var(--gold));height:100%;transition:width .4s var(--ease);display:block}.stage-modes{grid-template-columns:1fr}}@media (width<=560px){.stage-main{padding:14px 12px 18px}.stage-options{grid-template-columns:1fr}.stage-power{width:56px;height:50px}.stage-powerups{gap:6px}}.sound-toggle{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;transition:transform .2s var(--ease), background .2s;border-radius:50%;place-items:center;font-size:1.05rem;display:inline-grid}.sound-toggle:hover{background:var(--surface-2);transform:scale(1.08)}.stage .sound-toggle{background:#0f1230b3;border-color:#a5b4fc59}.game-topbar,.stage-topbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.game-topbar .back,.stage-topbar .back{margin-bottom:0}.game-head .game-topbar{margin-bottom:8px}.stage-topbar{margin-bottom:6px}.confetti-canvas{pointer-events:none;z-index:60;width:100vw;height:100vh;position:fixed;inset:0}
