:root{--cream:#f4fbff;--cream-2:#e4f4ff;--paper:#f0f8ff;--ink:#353541;--ink-2:#4b4b5c;--ink-3:#7a7a8c;--line:#cfe6f2;--sky-1:#bfe6fb;--sky-2:#e7f6ff;--cloud:#fff;--surface:#f0f8ff;--surface-2:#e4f4ff;--surface-hover:#d5edff;--sidebar-bg:#f0f8ffe0;--grass:#f17575;--grass-deep:#e54341;--grass-light:#ff9a9a;--dirt:#de7e4f;--dirt-deep:#c66a3e;--dirt-darker:#bd6341;--tan:#fa9f72;--tan-deep:#de7e4f;--red:#f17575;--red-deep:#e54341;--blue:#419fdd;--blue-deep:#2b7fbf;--green:#2ecc71;--green-deep:#20b860;--orange:#faba2d;--orange-deep:#e28f2b;--purple:#9b6fe0;--purple-deep:#7a4fc9;--yellow:#ffc845;--coin:#faba2d;--coin-deep:#e28f2b;--heart:#f17575;--heart-deep:#e54341;--pop-1:0 3px 0 var(--ink);--pop-2:0 5px 0 var(--ink);--shadow-sm:0 2px 0 #3535411f;--shadow-btn:0 5px 0 var(--ink);--shadow-card:0 6px 0 #35354124;--shadow-pop:0 18px 44px #35354147;--shadow-depth:0 5px 0 var(--ink), 0 14px 28px #35354138;--glow-gold:0 0 24px #faba2d8c;--glow-green:0 0 24px #2ecc718c;--glow-red:0 0 24px #f175758c;--glow-blue:0 0 24px #419fdd8c;--sky-gradient:linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 100%);--sunset-gradient:linear-gradient(180deg, #f7b267 0%, #f79d65 40%, #f4845f 100%);--radius-sm:12px;--radius:16px;--radius-lg:22px;--radius-xl:30px;--font-display:"Fredoka", "Outfit", system-ui, -apple-system, sans-serif;--font-body:"Nunito", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--bg-cream:var(--cream);--bg-card:var(--paper);--bg-overlay:#3535418c;--text-dark:var(--ink);--text-medium:var(--ink-2);--text-light:var(--ink-3);--text-white:#fff;--z-base:1;--z-dropdown:10;--z-modal:100;--z-overlay:200;--z-toast:300}[data-theme=dark]{--cream:#1a2a1a;--cream-2:#1f3320;--paper:#1e2d1e;--ink:#e8e4d8;--ink-2:#c4bfa8;--ink-3:#8a856e;--line:#3a4a35;--sky-1:#1a2a1a;--sky-2:#1f3320;--cloud:#ffffff08;--surface:#243524;--surface-2:#1f3320;--surface-hover:#2d4a2d;--sidebar-bg:#1e2d1eeb;--red:#f08080;--red-deep:#f17575;--blue:#6fb5e5;--blue-deep:#419fdd;--green:#46e087;--green-deep:#2ecc71;--orange:#ffd466;--orange-deep:#faba2d;--purple:#b088d4;--purple-deep:#9b6fe0;--yellow:#ffd466;--grass:#ff9a9a;--grass-deep:#f17575;--shadow-sm:0 2px 0 #00000040;--shadow-btn:0 5px 0 #00000059;--shadow-card:0 6px 0 #0003;--shadow-pop:0 18px 44px #00000073;--pop-1:0 3px 0 #0000004d;--pop-2:0 5px 0 #0000004d;--shadow-depth:0 5px 0 #0000004d, 0 14px 28px #0006;--glow-gold:0 0 24px #ffd46673;--glow-green:0 0 24px #46e08773;--glow-red:0 0 24px #f0808073;--glow-blue:0 0 24px #6fb5e573;--sky-gradient:linear-gradient(180deg, #14231a 0%, var(--sky-2) 100%);--sunset-gradient:linear-gradient(180deg, #3d2b3d 0%, #4a2e3e 50%, #542f35 100%);--bg-cream:var(--cream);--bg-card:var(--paper);--bg-overlay:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.game-sprite{flex-shrink:0;display:inline-block}.gs-float{animation:3s ease-in-out infinite gs-float}.gs-bounce{animation:2s ease-in-out infinite gs-bounce}.gs-spin{animation:4s linear infinite gs-spin}.gs-shake{animation:.5s ease-in-out gs-shake}.gs-pop{animation:.4s cubic-bezier(.34,1.56,.64,1) gs-pop}.gs-idle{animation:2.5s ease-in-out infinite gs-idle}.gs-walk{animation:.6s steps(2,end) infinite gs-walk}@keyframes gs-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gs-bounce{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-16px)scale(1.05)}60%{transform:translateY(-16px)scale(1.05)}}@keyframes gs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gs-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes gs-pop{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes gs-idle{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-3px)rotate(-1deg)}75%{transform:translateY(-3px)rotate(1deg)}}@keyframes gs-walk{0%{transform:translate(0)}50%{transform:translate(2px)}}.sprite-floater{pointer-events:none;z-index:0;opacity:.18;animation:ease-in-out infinite gs-float;position:absolute}.platform-ground{flex-direction:column;display:flex}.parallax-bg .parallax-layer{transition:opacity .5s}*{box-sizing:border-box}html,body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background:radial-gradient(120px 60px at 12% 16%, var(--cloud) 60%, transparent 62%), radial-gradient(160px 70px at 18% 14%, var(--cloud) 60%, transparent 62%), radial-gradient(120px 56px at 72% 10%, var(--cloud) 60%, transparent 62%), radial-gradient(180px 80px at 80% 20%, var(--cloud) 58%, transparent 60%), radial-gradient(140px 64px at 46% 6%, var(--cloud) 60%, transparent 62%), linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 60%, var(--sky-2) 100%);background-attachment:fixed;min-height:100vh}#root{z-index:var(--z-base);min-height:100vh;position:relative}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}::selection{color:var(--ink);background:#2ecc7140}:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--blue);font-weight:700;text-decoration:none}a:hover{color:var(--blue-deep)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:700;line-height:1.2}.btn{font-family:var(--font-display);border:3px solid var(--ink);white-space:nowrap;border-radius:14px;align-items:center;gap:8px;padding:11px 18px;font-size:14px;font-weight:600;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)!important}.btn-primary{background:var(--grass);color:#fff;box-shadow:0 5px 0 var(--ink)}.btn-accent{background:var(--coin);color:var(--ink);box-shadow:0 5px 0 var(--ink)}.btn-accent:active{box-shadow:0 1px 0 var(--ink)!important}.btn-green{background:var(--green);color:#fff;box-shadow:0 5px 0 var(--ink)}.btn-green:active{box-shadow:0 1px 0 var(--ink)!important}.btn-ghost{background:var(--paper);color:var(--ink);box-shadow:0 5px 0 var(--ink)}.btn-ghost:hover{background:var(--cream-2)}.btn-lg{border-radius:16px;padding:14px 24px;font-size:16px}.icon-btn{background:var(--paper);border:3px solid var(--ink);width:46px;height:46px;box-shadow:0 4px 0 var(--ink);border-radius:13px;place-items:center;font-size:18px;transition:transform 80ms,box-shadow 80ms;display:grid}.icon-btn:hover{background:var(--cream-2)}.icon-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.tag{background:var(--cream-2);border:2px solid var(--ink);color:var(--ink-2);border-radius:100px;align-items:center;gap:6px;padding:4px 11px;font-size:11px;font-weight:800;display:inline-flex}.tag.math{color:var(--blue-deep);background:#d9ecfb}.tag.sci{color:var(--green-deep);background:#d6f5e3}.tag.ela{color:var(--red-deep);background:#ffe0e0}.tag.soc{color:var(--purple-deep);background:#ebe0fb}.tag.art{color:var(--coin-deep);background:#feefc9}.dot{background:var(--green);border:1.5px solid var(--ink);border-radius:50%;width:9px;height:9px;display:inline-block}.badge{border:2px solid var(--ink);border-radius:100px;align-items:center;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.badge-green{color:var(--green-deep);background:#d6f5e3}.badge-red{color:var(--red-deep);background:#ffe0e0}.badge-blue{color:var(--blue-deep);background:#d9ecfb}.badge-orange{color:var(--coin-deep);background:#feefc9}.badge-purple{color:var(--purple-deep);background:#ebe0fb}.input,.select{border:3px solid var(--ink);background:var(--paper);width:100%;color:var(--ink);border-radius:13px;padding:13px 15px;font-size:14px;font-weight:600;transition:box-shadow .1s}.input:focus,.select:focus{outline:none;box-shadow:0 0 0 4px #2ecc714d}input,select,textarea{font-family:var(--font-body);background:var(--paper);border:3px solid var(--ink);color:var(--ink);border-radius:13px;width:100%;padding:13px 15px;font-size:14px;font-weight:600;transition:box-shadow .1s}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 4px #2ecc714d}input::placeholder,textarea::placeholder{color:var(--ink-3)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237A7A8C' d='M6 8.825L1.175 4 2.238 2.938 6 6.7 9.763 2.938 10.825 4z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}select option{background:var(--paper);color:var(--ink)}.loading-spinner{border:4px solid var(--line);border-top-color:var(--green);border-radius:50%;width:40px;height:40px;animation:.7s linear infinite spin}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes pop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(420px)rotate(540deg)}}@keyframes scorePopup{0%{opacity:0;transform:translateY(0)scale(.5)}30%{opacity:1;transform:translateY(-20px)scale(1.2)}to{opacity:0;transform:translateY(-50px)scale(1)}}.mobile-menu-btn{z-index:201;background:var(--surface);border:3px solid var(--ink);width:44px;height:44px;box-shadow:var(--pop-1);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:20px;transition:transform 80ms,box-shadow 80ms;display:none;position:fixed;top:14px;left:14px}.mobile-menu-btn:hover{background:var(--cream-2)}.mobile-menu-btn:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:300;width:280px;height:100vh;box-shadow:none;transition:transform .3s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:16px 0 48px #00000026}.mobile-backdrop{z-index:299;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;animation:.2s fadeIn;display:none;position:fixed;inset:0}.mobile-backdrop.show{display:block}.mobile-menu-btn{display:flex}.main{padding-top:64px}.topbar{padding-left:54px}}html,body,.sidebar,.btn-ghost,.icon-btn,.section,input,select,textarea,.modal,.data-table,.tag{transition:background .3s,color .3s,border-color .3s,box-shadow .3s}[data-theme=dark] body{background:radial-gradient(120px 60px at 12% 16%, var(--cloud) 60%, transparent 62%), radial-gradient(160px 70px at 80% 20%, var(--cloud) 58%, transparent 60%), linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 100%);background-attachment:fixed}[data-theme=dark] .btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:0 4px #0000004d}[data-theme=dark] .btn-ghost:hover{background:var(--surface-hover)}[data-theme=dark] .btn-primary{background:var(--green);color:#fff;border-color:var(--green-deep);box-shadow:0 5px #0000004d}[data-theme=dark] .icon-btn{background:var(--surface);border-color:var(--line);box-shadow:0 4px #0000004d}[data-theme=dark] .icon-btn:hover{background:var(--surface-hover)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface);border-color:var(--line);color:var(--ink)}[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px #2ecc7133}[data-theme=dark] select option{background:var(--surface);color:var(--ink)}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--cream)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--line)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}[data-theme=dark] ::selection{color:var(--ink);background:#2ecc714d}[data-theme=dark] .loading-spinner{border-color:var(--line);border-top-color:var(--green)}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-right:4px solid var(--ink);background:#ffffffdb;flex-direction:column;gap:18px;height:100vh;padding:22px 18px;display:flex;position:sticky;top:0;overflow:hidden}.brand{border-bottom:3px dashed var(--line);align-items:center;gap:12px;padding:6px 8px 14px;display:flex}.brand-mark{background:var(--tan);color:#fff;width:44px;height:44px;font-family:var(--font-display);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:14px;place-items:center;font-size:22px;font-weight:800;display:grid;position:relative;transform:rotate(-3deg)}.brand-text{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;font-weight:800;line-height:1}.brand-text small{font-family:var(--font-body);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:700;display:block}.nav{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex;overflow-y:auto}.nav-section{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:14px 10px 6px;font-size:11px;font-weight:700}.nav-item{font-family:var(--font-display);color:var(--ink-2);text-align:left;border:3px solid #0000;border-radius:12px;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;font-weight:700;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:flex}.nav-item:hover{background:#3535410a}.nav-item.active{background:var(--grass);color:#fff;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);font-weight:800}.nav-item.active:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.nav-icon{place-items:center;width:22px;height:22px;font-size:16px;display:grid}.sidebar-footer{flex-direction:column;gap:10px;margin-top:auto;display:flex}.classroom-card{background:var(--cream-2);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:0 4px 0 var(--ink);padding:14px}.classroom-card .label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10px;font-weight:800}.classroom-card .name{font-family:var(--font-display);margin:4px 0 8px;font-size:16px;font-weight:800}.classroom-card .meta{color:var(--ink-2);gap:8px;font-size:12px;display:flex}.classroom-card .meta span{background:var(--paper);border-radius:100px;padding:3px 8px;font-weight:700}.user-row{cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:8px;display:flex}.user-row:hover{background:#3535410a}.user-avatar{background:var(--sky-2);width:36px;height:36px;color:var(--ink);font-family:var(--font-display);border:3px solid var(--ink);border-radius:12px;place-items:center;font-size:14px;font-weight:800;display:grid}.user-name{font-size:13px;font-weight:700}.user-role{color:var(--ink-3);font-size:11px;font-weight:700}.main{min-width:0;padding:28px 36px 80px}.topbar{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.topbar h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:32px;font-weight:800;line-height:1.1}.topbar .greeting{color:var(--ink-3);margin-top:4px;font-size:14px;font-weight:700}.hero-grid{grid-template-columns:1.5fr 1fr 1fr;gap:18px;margin-bottom:28px;display:grid}.hero-card{background:var(--paper);border-radius:var(--radius-lg);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink);padding:24px;position:relative;overflow:hidden}.hero-card.dark{background:var(--blue);color:var(--cream);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink)}.hero-card .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:800}.hero-card.dark .eyebrow{color:#ffffffbf}.hero-card .stat{font-family:var(--font-display);letter-spacing:-.04em;margin:14px 0 6px;font-size:56px;font-weight:800;line-height:1}.hero-card .stat-sub{color:var(--ink-3);font-size:13px;font-weight:700}.hero-card.dark .stat-sub{color:#ffffffb3}.hero-card .delta{background:var(--cream-2);color:var(--green-deep);border:2px solid var(--ink);border-radius:100px;align-items:center;gap:4px;margin-top:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.hero-card .corner-badge{border:3px solid var(--ink);width:38px;height:38px;box-shadow:0 3px 0 var(--ink);border-radius:12px;place-items:center;font-size:18px;display:grid;position:absolute;top:18px;right:18px}.hero-card.feature{background:linear-gradient(135deg, var(--tan) 0%, var(--tan-deep) 100%);color:#fff;border:3px solid var(--ink);min-height:200px;box-shadow:0 6px 0 var(--ink);flex-direction:column;justify-content:space-between;display:flex}.hero-card.feature .eyebrow{color:#fffc}.hero-card.feature h3{font-family:var(--font-display);letter-spacing:-.02em;max-width:280px;margin:12px 0 0;font-size:28px;font-weight:800;line-height:1.1}.hero-card.feature:before,.hero-card.feature:after{content:"";background:var(--dirt-deep);border:2px solid var(--ink);border-radius:50%;width:9px;height:9px;position:absolute}.hero-card.feature:before{top:10px;left:10px}.hero-card.feature:after{top:10px;right:10px}.hero-card.feature .pattern{background:radial-gradient(circle,#ffffff2e 0%,#fff0 60%);border-radius:50%;width:220px;height:220px;position:absolute;bottom:-40px;right:-40px}.feature-cta{background:var(--paper);color:var(--ink);font-family:var(--font-display);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:14px;align-self:flex-start;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:800;display:inline-flex}.feature-cta:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.section{margin-bottom:36px}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800}.section-link{color:var(--ink-2);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);border-radius:100px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:700;transition:transform .1s,box-shadow .1s;display:inline-flex}.section-link:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.game-tile{border-radius:var(--radius-lg);cursor:pointer;color:#fff;border:3px solid var(--ink);min-height:200px;box-shadow:0 6px 0 var(--ink);text-align:left;flex-direction:column;justify-content:space-between;padding:20px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.game-tile:hover{box-shadow:0 9px 0 var(--ink);transform:translateY(-3px)}.game-tile:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.game-tile .tile-emoji{filter:drop-shadow(0 3px #35354147);width:56px;height:56px;line-height:1}.game-tile .tile-emoji img{width:56px;height:56px;display:block}.game-tile h3{font-family:var(--font-display);letter-spacing:-.02em;color:inherit;margin:0 0 4px;font-size:22px;font-weight:800}.game-tile p{opacity:.85;color:inherit;margin:0;font-size:13px;font-weight:700;line-height:1.4}.game-tile .tile-bottom{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.game-tile .tile-pill{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:2px solid var(--ink);color:var(--ink);background:#ffffffeb;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:700}.game-tile .tile-arrow{background:var(--paper);width:32px;height:32px;color:var(--ink);border:2px solid var(--ink);border-radius:50%;place-items:center;transition:transform .15s;display:grid}.game-tile:hover .tile-arrow{transform:translate(2px)}.tile-action-btn{border:2px solid var(--ink);cursor:pointer;opacity:0;background:#fff3;border-radius:8px;place-items:center;width:28px;height:28px;font-size:13px;transition:all .15s;display:grid}.game-tile:hover .tile-action-btn{opacity:1}.tile-action-btn:hover{background:#ffffff73;transform:scale(1.15)}.lib-menu-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;padding:10px 14px;font-size:13px;font-weight:700;transition:background .1s;display:block}.lib-menu-item:hover{background:var(--surface-2,#f3f4f6)}.tile-quiz{background:linear-gradient(140deg,#ff7e7e,#f17575)}.tile-memory{background:linear-gradient(140deg,#5fb6ec,#419fdd)}.tile-boss{background:linear-gradient(140deg,#b08cec,#9b6fe0)}.tile-scramble{color:var(--ink);background:linear-gradient(140deg,#ffcb5e,#faba2d)}.tile-scramble p{color:#353541a6}.tile-speed{background:linear-gradient(140deg,#46e087,#2ecc71)}.tile-spin{color:var(--ink);background:linear-gradient(140deg,#faba2d,#e28f2b)}.tile-spin p{color:#353541a6}.tile-spin .tile-pill,.tile-spin .tile-arrow{color:var(--ink);border-color:var(--ink);background:#3535411f}.tile-board{background:linear-gradient(140deg,#de7e4f,#c66a3e)}.tile-trivia{background:linear-gradient(140deg,#5fb6ec,#2b7fbf)}.tile-pattern{pointer-events:none;background:radial-gradient(circle,#ffffff29 0%,#fff0 65%);border-radius:50%;width:160px;height:160px;position:absolute;top:-30px;right:-30px}.list-card{background:var(--paper);border-radius:var(--radius-lg);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink);overflow:hidden}.list-row{border-bottom:2px solid var(--line);grid-template-columns:50px 1.5fr 1fr 1fr 1fr auto;align-items:center;gap:16px;padding:14px 20px;transition:background .1s;display:grid}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--cream)}.list-row.list-head{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--cream-2);border-bottom:3px solid var(--ink);font-size:11px;font-weight:800}.list-row.list-head:hover{background:var(--cream-2)}.list-icon{border:3px solid var(--ink);border-radius:12px;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.list-game{font-size:14px;font-weight:700}.list-meta{color:var(--ink-3);margin-top:2px;font-size:12px;font-weight:700}.list-cell{color:var(--ink-2);font-size:13px;font-weight:700}.list-cell.num{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:800}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#3535418c;place-items:center;padding:24px;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--sky-2);border-radius:var(--radius-xl);border:4px solid var(--ink);width:min(960px,100%);max-height:90vh;box-shadow:var(--shadow-pop);flex-direction:column;animation:.25s popIn;display:flex;overflow:hidden}.modal-head{border-bottom:3px solid var(--ink);background:var(--paper);justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.modal-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800}.close-btn{background:var(--cream-2);cursor:pointer;border:3px solid var(--ink);width:38px;height:38px;box-shadow:0 3px 0 var(--ink);border-radius:12px;place-items:center;font-size:16px;font-weight:800;transition:transform .1s,box-shadow .1s;display:grid}.close-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.modal-body{flex:1;padding:28px;overflow-y:auto}.modal-foot{background:var(--paper);border-top:3px solid var(--ink);justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.data-table-wrap{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius-lg);box-shadow:0 6px 0 var(--ink);overflow:hidden}.data-table-header{border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.data-table-header h3{font-family:var(--font-display);font-size:18px;font-weight:800}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--line);background:var(--cream-2);padding:12px 24px;font-size:11px;font-weight:800}.data-table td{border-bottom:2px solid var(--line);color:var(--ink-2);padding:12px 24px;font-size:14px;font-weight:700}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--cream)}.form-group{margin-bottom:18px}.form-group label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:12px;font-weight:800;display:block}.form-row{grid-template-columns:1fr 1fr;gap:18px;display:grid}.stat-card{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius-lg);box-shadow:0 4px 0 var(--ink);padding:24px;position:relative;overflow:hidden}.stat-card:before{content:"";border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:4px;position:absolute;top:0;left:0;right:0}.stat-card.red:before{background:linear-gradient(90deg, var(--red), var(--orange))}.stat-card.green:before{background:linear-gradient(90deg, var(--green), #7ec45a)}.stat-card.blue:before{background:linear-gradient(90deg, var(--blue), #7bbde8)}.stat-card.orange:before{background:linear-gradient(90deg, var(--orange), var(--yellow))}.stat-card.purple:before{background:linear-gradient(90deg, var(--purple), #b893d6)}.stat-card .stat-icon{border-radius:var(--radius-sm);border:3px solid var(--ink);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:14px;font-size:22px;display:flex}.stat-card.red .stat-icon{background:#e855551a}.stat-card.green .stat-icon{background:#63a63e1a}.stat-card.blue .stat-icon{background:#5ba3d91a}.stat-card.orange .stat-icon{background:#e8a13c1a}.stat-card.purple .stat-icon{background:#9b6ec61a}.stat-card .stat-value{font-family:var(--font-display);margin-bottom:4px;font-size:36px;font-weight:800;line-height:1}.stat-card .stat-label{color:var(--ink-3);font-size:13px;font-weight:700}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.empty-state .empty-icon{margin-bottom:18px;font-size:56px}.empty-state .empty-title{font-family:var(--font-display);margin-bottom:8px;font-size:22px;font-weight:800}.empty-state .empty-desc{color:var(--ink-3);max-width:360px;margin-bottom:24px;font-size:14px;font-weight:700}.lang-selector{background:var(--paper);border:2px solid var(--ink);cursor:pointer;border-radius:100px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:700;display:flex}.lang-selector:hover{background:var(--cream-2)}.fab{z-index:50;background:var(--grass);color:#fff;border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 12px 30px #3535414d;font-family:var(--font-display);border-radius:100px;align-items:center;gap:10px;padding:16px 24px;font-size:15px;font-weight:800;display:inline-flex;position:fixed;bottom:28px;right:28px}.fab:active{box-shadow:0 2px 0 var(--ink), 0 6px 16px #3535414d;transform:translateY(4px)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-bottom:28px;display:grid}.page-header{border-bottom:3px solid var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-dropdown);background:#e7f6ffd9;justify-content:space-between;align-items:center;padding:20px 28px;display:flex;position:sticky;top:0}.page-header h1{font-family:var(--font-display);font-size:24px;font-weight:800}.page-header .header-subtitle{color:var(--ink-3);margin-top:2px;font-size:13px;font-weight:700}.page-header .header-actions{align-items:center;gap:10px;display:flex}.page-body{padding:28px 36px}.main-content{flex:1;min-height:100vh;margin-left:260px}.app-layout{min-height:100vh;display:flex}@media (width<=1100px){.hero-grid{grid-template-columns:1fr 1fr}.hero-card.feature{grid-column:span 2}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.hero-grid{grid-template-columns:1fr}.hero-card.feature{grid-column:auto}}@media (width<=1024px){.sidebar{z-index:var(--z-dropdown);transition:transform .3s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}@media (width<=768px){.page-body{padding:18px}.page-header{padding:16px 18px}.form-row{grid-template-columns:1fr}.main{padding:16px 14px 60px}.topbar h1{font-size:24px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:16px}.stat-card .stat-value{font-size:28px}.stat-card .stat-icon{width:38px;height:38px;margin-bottom:10px;font-size:18px}.data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{min-width:520px}.data-table th,.data-table td{padding:10px 14px;font-size:12px}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.game-tile{min-height:160px;padding:14px}.game-tile h3{font-size:17px}.game-tile .tile-emoji{font-size:32px}.list-row{grid-template-columns:40px 1fr auto;gap:10px;padding:10px 14px}.list-row .list-cell:nth-child(n+4){display:none}.modal{border-radius:16px;width:min(100%,100vw);max-height:100vh}.modal-head{padding:14px 18px}.modal-body{padding:18px}.modal-foot{padding:14px 18px}.fab{padding:12px 18px;font-size:14px;bottom:16px;right:16px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}.hero-card .stat{font-size:40px}.topbar{flex-direction:column;align-items:flex-start;gap:8px}}[data-theme=dark] .sidebar{background:var(--sidebar-bg);border-right-color:var(--line)}[data-theme=dark] .brand-mark{background:var(--green)}[data-theme=dark] .nav-item:hover{background:var(--surface-hover)}[data-theme=dark] .nav-item.active{background:var(--surface);color:var(--green);border-color:var(--line);box-shadow:none}[data-theme=dark] .section,[data-theme=dark] .stat-card,[data-theme=dark] .hero-card{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card)}[data-theme=dark] .game-tile{border-color:var(--line);box-shadow:var(--shadow-card)}[data-theme=dark] .game-tile:hover{border-color:var(--green)}[data-theme=dark] .data-table th{background:var(--cream-2);border-color:var(--line)}[data-theme=dark] .data-table td{border-color:var(--line)}[data-theme=dark] .data-table tr:hover td{background:var(--surface-hover)}[data-theme=dark] .modal-backdrop{background:var(--bg-overlay)}[data-theme=dark] .modal{background:var(--paper);border:4px solid var(--line)}[data-theme=dark] .modal-head{border-bottom-color:var(--line);background:var(--surface)}[data-theme=dark] .modal-foot{border-top-color:var(--line);background:var(--surface)}[data-theme=dark] .list-card{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card)}[data-theme=dark] .list-row{background:var(--surface);border-color:var(--line)}[data-theme=dark] .list-row:hover{background:var(--surface-hover)}[data-theme=dark] .empty-state{background:var(--surface);border-color:var(--line)}[data-theme=dark] .tab-bar button{color:var(--ink-3)}[data-theme=dark] .tab-bar button.active{color:var(--ink);border-bottom-color:var(--green)}[data-theme=dark] .form-group label{color:var(--ink-2)}[data-theme=dark] .fab{background:var(--green);box-shadow:0 6px 0 var(--green-deep);border-color:var(--line)}[data-theme=dark] .close-btn{background:var(--surface);border-color:var(--line);box-shadow:0 3px #0000004d}[data-theme=dark] .data-table-wrap{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card)}[data-theme=dark] .stat-card .stat-icon{border-color:var(--line)}[data-theme=dark] .classroom-card{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card)}[data-theme=dark] .user-avatar,[data-theme=dark] .lang-selector{background:var(--surface);border-color:var(--line)}[data-theme=dark] .page-header{border-bottom-color:var(--line);background:#1e2d1ed9}.gm-screen{z-index:200;color:var(--ink);background:radial-gradient(1200px 600px at 90% -10%, var(--sky-2) 0%, transparent 50%), radial-gradient(900px 500px at -10% 100%, #d4f0dc 0%, transparent 55%), var(--cream);flex-direction:column;padding:18px 28px 28px;display:flex;position:fixed;inset:0;overflow:hidden}.gm-screen.dark{color:#fff;background:radial-gradient(1400px 700px at 50% -10%, #2d74ff 0%, var(--ink) 60%)}.gm-screen.purple{background:radial-gradient(1400px 700px at 50% -10%, #2ecc71 0%, var(--ink) 60%);color:#fff}.gm-screen.crimson{background:radial-gradient(1400px 700px at 50% -10%, #ff4d5e 0%, var(--ink) 60%);color:#fff}.gm-screen.green{color:#fff;background:radial-gradient(1400px 700px at 50% -10%,#1fb573 0%,#0e3d2a 60%)}.gm-screen.gold{color:var(--ink);background:radial-gradient(1400px 700px at 50% -10%,#ffc845 0%,#ff8a1f 60%)}.gm-top{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.gm-top .live-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:inherit;background:#ffffff1f;border:3px solid #fff3}.gm-screen:not(.dark):not(.purple):not(.crimson):not(.green):not(.gold) .gm-top .live-pill{background:var(--paper);color:var(--ink);border:3px solid var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 3px 0 var(--ink)}.gm-stat{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:3px solid #fff3;border-radius:100px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.gm-screen:not(.dark):not(.purple):not(.crimson):not(.green):not(.gold) .gm-stat{background:var(--paper);border:3px solid var(--ink);color:var(--ink-2);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 3px 0 var(--ink)}.gm-stat strong{font-family:var(--font-display);font-size:16px;font-weight:800}.gm-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;min-height:0;display:flex}.mm-board{grid-template-columns:repeat(4,minmax(120px,180px));grid-auto-rows:minmax(100px,160px);gap:12px;width:100%;max-width:800px;padding:0 12px;display:grid}.mm-card{perspective:1000px;cursor:pointer}.mm-inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:18px;transition:transform .5s;position:relative}.mm-card.flipped .mm-inner,.mm-card.matched .mm-inner{transform:rotateY(180deg)}.mm-face{backface-visibility:hidden;text-align:center;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);word-break:break-word;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;padding:8px;font-size:12px;font-weight:700;display:flex;position:absolute;inset:0;overflow:hidden}.mm-face.back{background:linear-gradient(135deg, var(--green), var(--blue));color:#fff;font-family:var(--font-display);font-size:36px}.mm-face.front{background:var(--paper);color:var(--ink);font-family:var(--font-display);gap:4px;font-size:11px;line-height:1.3;transform:rotateY(180deg)}.mm-card.matched .mm-face.front{border:3px solid var(--green);box-shadow:0 5px 0 var(--green-deep);background:linear-gradient(135deg,#ddf5e8,#b8e8c8)}.mm-q{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;font-size:9px;font-weight:600}.bb-arena{grid-template-columns:1fr 1fr;align-items:end;gap:28px;width:100%;max-width:980px;display:grid}.bb-fighter{text-align:center}.bb-portrait{border:3px solid var(--ink);width:220px;height:220px;box-shadow:0 8px 0 var(--ink);border-radius:36px;place-items:center;margin:0 auto;font-size:120px;transition:transform .2s;display:grid;position:relative}.bb-portrait.player{background:linear-gradient(135deg,#2d74ff,#5ba0ff)}.bb-portrait.boss{background:linear-gradient(135deg,#c8313f,#ff4d5e)}.bb-portrait.hit{animation:.4s hitShake}@keyframes hitShake{0%,to{transform:translate(0)}25%{transform:translate(-12px,4px)rotate(-3deg)}75%{transform:translate(12px,-4px)rotate(3deg)}}.bb-name{font-family:var(--font-display);letter-spacing:-.01em;margin-top:14px;font-size:22px;font-weight:800}.bb-hp{border:3px solid var(--ink);background:#3535414d;border-radius:100px;height:20px;margin-top:10px;position:relative;overflow:hidden}.bb-hp-fill{background:linear-gradient(90deg, var(--green), #4fd89a);border-radius:100px;height:100%;transition:width .5s}.bb-hp-fill.boss{background:linear-gradient(90deg, var(--red), #ff8a1f)}.bb-hp-fill.low{background:linear-gradient(90deg, var(--red), #c8313f)}.bb-hp-text{font-family:var(--font-display);color:#fff;text-shadow:0 1px 2px #35354180;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;inset:0}.bb-vs{text-align:center;font-family:var(--font-display);color:var(--yellow);text-shadow:0 5px 0 var(--ink);font-size:48px;font-weight:800}.bb-damage{font-family:var(--font-display);color:var(--yellow);text-shadow:0 5px 0 var(--orange-deep);pointer-events:none;z-index:5;font-size:56px;font-weight:800;animation:1s ease-out forwards damageFly;position:absolute}@keyframes damageFly{0%{opacity:0;transform:translateY(0)scale(.5)}30%{opacity:1;transform:translateY(-30px)scale(1.2)}to{opacity:0;transform:translateY(-100px)scale(1)}}.bb-explosion{pointer-events:none;font-size:80px;animation:.6s ease-out forwards explode;position:absolute}@keyframes explode{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2)}}.ws-stage{--tileW:clamp(64px, calc(min(88vw, 1040px) / var(--tiles,8) - 14px), 132px);flex-direction:column;align-items:center;gap:clamp(22px,4.5vh,44px);width:100%;display:flex}.ws-prompt{font-family:var(--font-display);text-align:center;max-width:min(860px,92vw);color:var(--ink);background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-depth,0 5px 0 var(--ink));border-radius:24px;padding:clamp(18px,3vh,30px) clamp(24px,4vw,44px);font-size:clamp(22px,2.6vw,32px);font-weight:800;line-height:1.35}.ws-slots{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.ws-slot{width:var(--tileW,64px);height:calc(var(--tileW,64px) * 1.22);background:color-mix(in srgb, var(--paper) 55%, transparent);border:3px dashed color-mix(in srgb, var(--ink) 45%, transparent);font-family:var(--font-display);font-weight:800;font-size:calc(var(--tileW,64px) * .52);color:var(--ink);text-transform:uppercase;border-radius:16px;place-items:center;display:grid}.ws-slot.filled{background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink)}.ws-slot.correct{background:var(--green);color:#fff;border:3px solid var(--ink);box-shadow:0 5px 0 var(--green-deep)}.ws-slot.wrong{background:var(--red);color:#fff;border:3px solid var(--ink);box-shadow:0 5px 0 var(--red-deep);animation:.4s shake}.ws-tray{flex-wrap:wrap;justify-content:center;gap:12px;max-width:min(920px,92vw);display:flex}.ws-tile{width:calc(var(--tileW,64px) * .86);height:var(--tileW,64px);background:linear-gradient(180deg, #fff, var(--sky-2));color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:calc(var(--tileW,64px) * .44);text-transform:uppercase;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);cursor:pointer;border-radius:14px;transition:transform .1s}.ws-tile:hover:not(:disabled){transform:translateY(-2px)}.ws-tile:active:not(:disabled){box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.ws-tile:disabled{opacity:.25;cursor:default}.sm-card-stack{width:360px;height:460px;position:relative}.sm-card{background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:0 8px 0 var(--ink);border-radius:28px;flex-direction:column;justify-content:space-between;padding:28px;transition:transform .4s,opacity .4s;display:flex;position:absolute;inset:0}.sm-card .sm-q-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:700}.sm-card .sm-q-text{font-family:var(--font-display);letter-spacing:-.01em;margin-top:10px;font-size:22px;font-weight:700;line-height:1.3}.sm-divider{background:var(--sky-1);border-radius:2px;height:3px;margin:18px 0}.sm-card .sm-a-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:700}.sm-card .sm-a-text{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-top:8px;font-size:36px;font-weight:800;line-height:1.1}.sm-card.swipe-right{opacity:0;transform:translate(420px)rotate(20deg)}.sm-card.swipe-left{opacity:0;transform:translate(-420px)rotate(-20deg)}.sm-stamp{font-family:var(--font-display);letter-spacing:.1em;opacity:0;border:3px solid;border-radius:14px;padding:8px 16px;font-size:14px;font-weight:800;position:absolute;top:24px;right:24px;transform:rotate(-12deg)}.sm-card.choose-right .sm-stamp.match{opacity:1;color:var(--green-deep);border-color:var(--green)}.sm-card.choose-left .sm-stamp.nope{opacity:1;color:var(--red-deep);border-color:var(--red);top:24px;left:24px;right:auto;transform:rotate(12deg)}.sm-controls{gap:24px;margin-top:12px;display:flex}.sm-btn{cursor:pointer;border:3px solid var(--ink);border-radius:50%;place-items:center;width:84px;height:84px;font-size:36px;transition:transform .1s,box-shadow .1s;display:grid}.sm-btn.no{background:var(--red);color:#fff;box-shadow:0 5px 0 var(--ink)}.sm-btn.yes{background:var(--green);color:#fff;box-shadow:0 5px 0 var(--ink)}.sm-btn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.spin-stage{grid-template-columns:1fr 1fr;align-items:center;gap:36px;width:100%;max-width:1100px;display:grid}.spin-wheel-wrap{width:460px;height:460px;margin:0 auto;position:relative}.spin-pointer{background:var(--ink);clip-path:polygon(50% 100%,0 0,100% 0);z-index:3;filter:drop-shadow(0 5px #3535414d);width:40px;height:60px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.spin-wheel{width:100%;height:100%;transition:transform 4s cubic-bezier(.16,1,.3,1)}.spin-center{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.spin-center-disc{background:var(--ink);width:110px;height:110px;color:var(--cream);font-family:var(--font-display);text-align:center;border:3px solid #ffffff4d;border-radius:50%;place-items:center;font-size:14px;font-weight:800;line-height:1.1;display:grid;box-shadow:0 0 0 8px #ffffff80}.spin-side{flex-direction:column;gap:16px;display:flex}.spin-multiplier-display{background:var(--paper);color:var(--ink);border:3px solid var(--ink);text-align:center;box-shadow:0 6px 0 var(--ink);border-radius:28px;padding:28px}.spin-multi-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:700}.spin-multi-val{font-family:var(--font-display);letter-spacing:-.04em;background:linear-gradient(135deg, var(--green), var(--red));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:8px 0;font-size:96px;font-weight:800;line-height:1}.spin-q-card{background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);border-radius:22px;padding:22px 24px}.spin-q-text{font-family:var(--font-display);font-size:18px;font-weight:700;line-height:1.3}.spin-q-options{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.spin-opt{background:var(--sky-2);border:3px solid var(--ink);text-align:left;cursor:pointer;box-shadow:0 3px 0 var(--ink);border-radius:12px;padding:10px 14px;font-size:14px;font-weight:600;transition:transform .1s,box-shadow .1s}.spin-opt:hover{box-shadow:0 4px 0 var(--ink);transform:translateY(-1px)}.spin-opt.correct{background:var(--green);color:#fff;border-color:var(--ink);box-shadow:0 3px 0 var(--green-deep)}.spin-opt.wrong{background:var(--red);color:#fff;border-color:var(--ink);box-shadow:0 3px 0 var(--red-deep)}.btn-spin{background:var(--ink);width:100%;color:var(--cream);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border:3px solid var(--ink);border-radius:18px;padding:18px 22px;font-size:18px;font-weight:800;box-shadow:0 6px #35354180}.btn-spin:disabled{opacity:.4;cursor:not-allowed}.qb-grid{grid-template-columns:repeat(5,1fr);gap:12px;width:100%;max-width:1200px;display:grid}.qb-cat{background:var(--ink);color:var(--yellow);text-align:center;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border:3px solid #ffc8454d;border-radius:16px;place-items:center;min-height:70px;padding:18px 14px;font-size:15px;font-weight:800;line-height:1.2;display:grid}.qb-cell{color:var(--yellow);text-align:center;font-family:var(--font-display);letter-spacing:-.01em;cursor:pointer;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink), inset 0 1px 0 #ffffff26;text-shadow:0 2px 4px #3535414d;background:linear-gradient(#2d74ff,#1b4fcc);border-radius:16px;min-height:90px;padding:22px 12px;font-size:32px;font-weight:800;transition:transform .1s,box-shadow .1s}.qb-cell:hover:not(:disabled){box-shadow:0 7px 0 var(--ink);transform:translateY(-2px)}.qb-cell:active:not(:disabled){box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.qb-cell:disabled{color:#ffffff26;cursor:default;box-shadow:none;text-shadow:none;background:#ffffff0a;border-color:#ffffff0f}.qb-teams{gap:12px;margin-bottom:18px;display:flex}.qb-team{background:#ffffff14;border:3px solid #ffffff2e;border-radius:16px;flex:1;align-items:center;gap:14px;padding:14px 18px;display:flex}.qb-team.active{border-color:var(--yellow);background:#ffc8452e;box-shadow:0 0 0 3px #ffc8454d}.qb-team-emoji{font-size:28px}.qb-team-name{font-family:var(--font-display);font-size:14px;font-weight:700}.qb-team-score{font-family:var(--font-display);color:var(--yellow);margin-top:2px;font-size:28px;font-weight:800;line-height:1}.qb-card-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#353541d9;place-items:center;padding:24px;animation:.2s fadeIn;display:grid;position:absolute;inset:0}.qb-card{color:#fff;border:3px solid var(--ink);text-align:center;width:min(820px,100%);box-shadow:0 8px 0 var(--ink);background:linear-gradient(#2d74ff,#1b4fcc);border-radius:28px;padding:48px;animation:.3s popIn}.qb-card-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);font-size:13px;font-weight:700}.qb-card-clue{font-family:var(--font-display);letter-spacing:-.02em;margin-top:18px;font-size:40px;font-weight:800;line-height:1.2}.qb-options{grid-template-columns:1fr 1fr;gap:14px;margin-top:30px;display:grid}.qb-points-pill{background:var(--yellow);color:var(--ink);border:3px solid var(--ink);font-family:var(--font-display);box-shadow:0 3px 0 var(--ink);border-radius:100px;margin-top:12px;padding:8px 18px;font-size:22px;font-weight:800;display:inline-block}.gm-screen.in-scene{background:0 0}.bb-hp-fill{z-index:2;position:relative}.bb-hp .fx-hp-ghost{z-index:1}.bb-hp-text{z-index:3}.bb-sprite{filter:drop-shadow(0 6px 4px #18142559)}.bb-portrait.bb-attack{animation:.55s cubic-bezier(.34,1.56,.64,1) bbLungeRight}.bb-portrait.bb-attack-left{animation:.55s cubic-bezier(.34,1.56,.64,1) bbLungeLeft}@keyframes bbLungeRight{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(52px)rotate(4deg)}}@keyframes bbLungeLeft{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-52px)rotate(-4deg)}}@media (prefers-reduced-motion:reduce){.bb-portrait.bb-attack,.bb-portrait.bb-attack-left{animation:none}}.gm-screen.in-scene .bb-name{color:var(--ink);text-shadow:0 1px #ffffff73}.mm-card.mm-shake{animation:.45s mmShake}@keyframes mmShake{0%,to{transform:translate(0)}25%{transform:translate(-8px)rotate(-1.5deg)}50%{transform:translate(7px)rotate(1.5deg)}75%{transform:translate(-5px)}}@media (prefers-reduced-motion:reduce){.mm-card.mm-shake{animation:none}}.sm-card{will-change:transform, opacity}.sm-card.swipe-right{opacity:0;transition:transform .45s cubic-bezier(.5,-.2,.75,.4),opacity .45s;transform:translate(480px,-40px)rotate(28deg)}.sm-card.swipe-left{opacity:0;transition:transform .45s cubic-bezier(.5,-.2,.75,.4),opacity .45s;transform:translate(-480px,-40px)rotate(-28deg)}.sm-card.choose-right .sm-stamp.match{animation:.22s cubic-bezier(.34,1.8,.64,1) smStampSlam}.sm-card.choose-left .sm-stamp.nope{animation:.22s cubic-bezier(.34,1.8,.64,1) smStampSlamTilt}@keyframes smStampSlam{0%{opacity:0;transform:scale(2.4)rotate(-14deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes smStampSlamTilt{0%{opacity:0;transform:scale(2.4)rotate(-6deg)}to{opacity:1;transform:scale(1)rotate(12deg)}}@media (prefers-reduced-motion:reduce){.sm-card.choose-right .sm-stamp.match,.sm-card.choose-left .sm-stamp.nope{animation:none}}.ws-slots.solved-wave .ws-slot{animation:.55s both wsWave;animation-delay:calc(var(--i,0) * 70ms)}@keyframes wsWave{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-16px)scale(1.12)}}.ws-slot.wrong{animation:.45s mmShake}@media (prefers-reduced-motion:reduce){.ws-slots.solved-wave .ws-slot,.ws-slot.wrong{animation:none}}.trivia-grid-game.in-scene{background:0 0}.tg-cell-coin{opacity:.35;filter:saturate(.6);width:30px}.spin-pointer.kick{animation:.12s ease-out spinKick}@keyframes spinKick{0%{transform:translate(-50%)rotate(0)}40%{transform:translate(-50%)rotate(-16deg)}to{transform:translate(-50%)rotate(0)}}.spin-multi-val.landed{animation:.5s cubic-bezier(.34,1.7,.64,1) multLand}@keyframes multLand{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.spin-pointer.kick,.spin-multi-val.landed{animation:none}}.bbx-root{z-index:200;color:var(--ink);background:linear-gradient(#c2633f 0%,#a94e33 60%,#93422c 100%);flex-direction:column;display:flex;position:fixed;inset:0}.bbx-arena{flex:54%;min-height:0;position:relative}.bbx-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.bbx-loading{font-family:var(--font-display);color:var(--ink);place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.bbx-hud{z-index:3;margin-bottom:0;padding:14px 20px;position:absolute;top:0;left:0;right:0}.bbx-hp-row{z-index:3;justify-content:space-between;gap:20px;padding:0 4%;display:flex;position:absolute;bottom:10px;left:0;right:0}.bbx-hp-block{width:42%}.bbx-hp-block .bb-name{color:var(--ink);background:color-mix(in srgb, var(--paper) 88%, transparent);border:2.5px solid var(--ink);box-shadow:0 2px 0 var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:100px;align-items:center;margin-top:0;margin-bottom:6px;padding:3px 14px;font-size:14px;display:inline-flex}.bbx-question-zone{flex-direction:column;flex:46%;justify-content:center;align-items:center;gap:14px;padding:12px 20px 22px;display:flex;overflow-y:auto}@media (width<=820px){.bbx-arena{flex-basis:44%}.bbx-question-zone{flex-basis:56%}.bbx-hp-block .bb-name{font-size:12px}}.login-page{background:radial-gradient(900px 450px at 20% 30%, var(--cloud) 0%, transparent 60%), radial-gradient(700px 350px at 75% 60%, var(--cloud) 0%, transparent 55%), linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-floaters{pointer-events:none;z-index:0;position:absolute;inset:0}.floater{opacity:.09;font-size:40px;animation:3s ease-in-out infinite float;position:absolute}.login-lang-bar{z-index:10;position:fixed;top:18px;right:18px}.login-card{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:0 6px 0 var(--ink);text-align:center;z-index:1;padding:40px 32px;animation:.5s popIn;position:relative}.login-logo{margin-bottom:14px}.login-logo-icon{background:var(--tan);border:3px solid var(--ink);width:72px;height:72px;box-shadow:0 4px 0 var(--ink);border-radius:20px;justify-content:center;align-items:center;font-size:36px;animation:2s ease-in-out infinite wiggle;display:inline-flex;position:relative}.login-logo-icon:after{content:"";border:2px dashed #ffffff40;border-radius:16px;position:absolute;inset:4px}.login-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin-bottom:4px;font-size:32px;font-weight:900}.login-subtitle{color:var(--ink-3);margin-bottom:28px;font-size:14px;font-weight:700}.login-divider{align-items:center;gap:14px;margin-bottom:24px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);border-radius:2px;flex:1;height:3px}.login-divider span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:11px;font-weight:800}.login-roles{flex-direction:column;gap:10px;display:flex}.role-btn{border-radius:var(--radius);border:3px solid var(--ink);background:var(--paper);cursor:pointer;text-align:left;box-shadow:0 4px 0 var(--ink);align-items:center;gap:16px;padding:14px 18px;transition:all .15s;display:flex}.role-btn:hover{box-shadow:0 6px 0 var(--ink);transform:translateY(-2px)}.role-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.role-btn .role-icon{border-radius:var(--radius-sm);border:3px solid var(--ink);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex}.role-btn .role-name{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:800;display:block}.role-btn .role-desc{color:var(--ink-3);margin-top:2px;font-size:12px;font-weight:700;display:block}.role-admin:hover{border-color:var(--orange)}.role-admin .role-icon{background:#faba2d26}.role-school:hover{border-color:var(--blue)}.role-school .role-icon{background:#419fdd26}.role-classroom:hover{border-color:var(--green)}.role-classroom .role-icon{background:#2ecc7126}.login-footer-text{color:var(--ink-3);margin-top:24px;font-size:12px;font-weight:700}[data-theme=dark] .login-page{background:radial-gradient(1200px 600px at 90% -10%, #63a63e1a 0%, transparent 50%), radial-gradient(900px 500px at -10% 100%, #5ba3d914 0%, transparent 55%), var(--cream)}[data-theme=dark] .login-card{background:var(--surface);border-color:var(--ink)}[data-theme=dark] .role-btn{background:var(--cream-2);border-color:var(--ink)}[data-theme=dark] .login-logo-icon{background:var(--green)}
