:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f8fc;--surface:#fff;--surface-soft:#eef5ff;--ink:#172033;--muted:#64748b;--line:#dbe4f0;--blue:#2563eb;--blue-dark:#1d4ed8;--green:#15803d;--green-soft:#eaf8ef;--amber:#b45309;--amber-soft:#fff7ed;--red:#b91c1c;--red-soft:#fff1f2;--shadow:0 14px 34px #1b335214}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);letter-spacing:0;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input{font:inherit}button{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-weight:800;display:inline-flex}button:hover{background:var(--blue-dark)}button:disabled{cursor:not-allowed;opacity:.62}button:focus-visible,input:focus-visible{outline-offset:3px;outline:4px solid #bfdbfe}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:40px;line-height:1.08}h2{font-size:21px}.app-shell{grid-template-rows:auto 1fr;min-width:0;min-height:100vh;display:grid;overflow-x:clip}.app-shell>*{min-width:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffdb;align-items:center;gap:16px;min-height:76px;padding:14px 22px;display:flex;position:sticky;top:0}.brand-button{color:var(--ink);background:0 0;min-height:48px;padding:0;font-size:24px}.brand-button:hover{color:var(--blue);background:0 0}.brand-mark{background:var(--blue);color:#fff;border-radius:8px;place-items:center;width:40px;height:40px;font-weight:900;display:inline-grid}.brand-line{color:var(--blue);align-items:center;gap:10px;font-size:30px;font-weight:900;display:inline-flex}.topnav{flex:1;gap:8px;display:flex;overflow-x:auto}.topnav button,.secondary-button{color:var(--blue);background:#fff;border:1px solid #bfdbfe}.topnav button:hover,.secondary-button:hover{color:var(--blue-dark);background:#eaf2ff}.topnav button.active{background:var(--surface-soft);border-color:var(--blue)}.session-pill,.score-pill,.hero-badge{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:850;display:inline-flex}.home-page,.content-page,.play-page{width:min(1240px,100%);margin:0 auto;padding:24px}.home-page{align-content:center;gap:24px;display:grid}.hero-row{justify-content:space-between;align-items:end;gap:18px;display:flex}.lead{color:var(--muted);max-width:780px;margin-bottom:0;font-size:20px;line-height:1.45}.eyebrow{color:var(--blue);text-transform:uppercase;margin-bottom:8px;font-size:13px;font-weight:900}.role-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.role-card,.class-card,.module-card,.stat-card,.qr-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.role-card{align-content:space-between;gap:14px;min-height:220px;padding:20px;display:grid}.role-card strong,.module-card strong,.class-card strong{font-size:24px;line-height:1.15}.role-card span,.class-card span,.module-card span,.muted{color:var(--muted)}.primary-card{background:var(--blue);color:#fff;border-color:var(--blue)}.primary-card span{color:#dbeafe}.primary-card button{color:var(--blue);background:#fff}.role-icon,.page-icon,.module-icon{background:var(--surface-soft);width:48px;height:48px;color:var(--blue);border-radius:8px;place-items:center;display:grid}.primary-card .role-icon{color:#fff;background:#ffffff29}.center-page{place-items:center;min-height:calc(100vh - 76px);padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);width:min(520px,100%);box-shadow:var(--shadow);border-radius:8px;padding:26px}.login-panel h1{margin-top:18px}.login-panel p{color:var(--muted);line-height:1.45}.login-mode-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.login-mode-row button{border:1px solid var(--line);min-height:46px;color:var(--ink);background:#fff;justify-content:center;align-items:center;gap:8px;display:inline-flex}.login-mode-row button[aria-pressed=true]{color:#fff;background:#2563eb;border-color:#2563eb}label{margin:16px 0 8px;font-weight:850;display:block}.input-row{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:56px;padding:0 12px;display:flex}.input-row svg{color:var(--muted);flex:none}.input-row input{background:0 0;border:0;outline:0;width:100%;min-height:52px;font-size:18px}.full-button{width:100%;min-height:58px;margin-top:20px}.notice,.form-status{color:#334155;background:#eef4ff;border:1px solid #c7d2fe;border-radius:8px;margin-top:16px;padding:14px;font-weight:750}.page-title,.student-header,.play-header,.section-head,.action-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.page-title{justify-content:flex-start;margin-bottom:20px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-card{padding:16px}.stat-card strong{font-size:31px;display:block}.stat-card span{color:var(--muted);font-weight:760}.surface,.table-surface{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:18px}.table-surface{padding:0;overflow:hidden}.table-surface .section-head{border-bottom:1px solid var(--line);padding:16px}.section-head h2,.surface h2{margin-bottom:0}.two-column,.split-layout,.teacher-class-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.teacher-class-layout{grid-template-columns:320px minmax(0,1fr)}.class-grid,.module-grid,.module-mini-grid,.qr-grid{gap:16px;display:grid}.class-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.class-card{gap:14px;min-height:166px;padding:18px;display:grid}.card-actions,.action-row{flex-wrap:wrap}.student-list{gap:8px;margin-top:14px;display:grid}.student-row,.info-line,.toggle-line{border-top:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-weight:800;display:flex}.student-row:first-child,.info-line:first-of-type,.toggle-line:first-of-type{border-top:0}.student-row em,.info-line span{color:var(--muted);font-style:normal;font-weight:750}.toggle{background:var(--amber-soft);min-width:70px;color:var(--amber);text-align:center;border-radius:999px;padding:6px 10px}.toggle.active{background:var(--green-soft);color:var(--green)}.module-mini-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.module-mini{border:1px solid var(--line);background:#fbfdff;border-radius:8px;padding:14px}.progress-bar{background:#e2e8f0;border-radius:999px;width:100%;height:12px;overflow:hidden}.progress-bar span{background:var(--green);height:100%;display:block}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #edf2f7;padding:14px}th{color:#475569;background:#f8fafc;font-size:14px}.student-mode .topbar{background:#fff}.student-dashboard{gap:18px;display:grid}.student-header h1{color:var(--blue);font-size:50px}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-card{gap:14px;min-height:218px;padding:18px;display:grid}.module-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.module-card-top span{font-weight:850}.tile-preview{border:1px solid var(--line);width:min(176px,100%);min-height:74px;color:var(--ink);background:#f8fbff;border-radius:8px;overflow:hidden}.plus-preview{color:var(--blue);align-content:center;gap:4px;padding:10px;font-size:20px;font-weight:900;display:grid}.dots-preview{grid-template-columns:repeat(5,13px);place-content:center;gap:7px;display:grid}.dots-preview i{background:#fff;border:2px solid #cbd5e1;border-radius:999px;width:13px;height:13px}.dots-preview i.on{background:var(--blue);border-color:var(--blue)}.word-preview{color:var(--blue);justify-content:center;align-items:center;gap:8px;font-size:26px;display:flex}.word-preview b{border-bottom:4px solid var(--blue)}.grammar-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px;display:grid}.grammar-preview span,.grammar-preview b{color:var(--blue);border:1px solid #bfdbfe;border-radius:999px;place-items:center;min-width:0;font-size:12px;display:grid}.grammar-preview b{background:#fff;grid-column:1/-1;font-size:14px}.snake-preview{grid-template-columns:repeat(3,1fr);gap:3px;padding:7px;display:grid}.snake-preview span{border:1px solid var(--line);background:#fff;border-radius:6px;place-items:center;font-size:12px;font-weight:900;display:grid}.snake-preview span:nth-child(4),.snake-preview span:nth-child(5),.snake-preview span:nth-child(6){background:var(--green);color:#fff}.vault-preview{grid-template-columns:repeat(4,1fr);place-items:center;padding:8px;font-size:22px;display:grid}.qr-page{max-width:1180px}.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-card{border-width:2px;grid-template-columns:minmax(0,1fr) 142px;align-items:center;gap:14px;min-height:182px;padding:18px;display:grid}.qr-card.state-ready{border-color:#b7e3c3}.qr-card.state-paused{border-color:#fed7aa}.qr-card-text{gap:8px;min-width:0;display:grid}.qr-card-text strong{font-size:34px;line-height:1.05}.qr-card-text span{color:var(--muted);font-weight:760}.qr-card-text b{font-size:18px}.qr-card-text em{border:1px solid var(--line);color:var(--green);background:var(--green-soft);border-radius:999px;justify-self:start;padding:5px 10px;font-style:normal;font-weight:850}.qr-image-box{border:1px solid var(--line);background:#fff;border-radius:8px;place-items:center;width:136px;height:136px;display:grid}.qr-image-box img{width:126px;height:126px;display:block}.play-page{grid-template-rows:auto 1fr;gap:18px;display:grid}.play-header h1{font-size:36px}.play-progress{gap:8px;width:230px;display:grid}.play-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px;display:grid}.task-area,.play-side{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.task-area{gap:18px;display:grid}.task-label{color:var(--muted);font-size:20px;font-weight:900}.question-visual,.twenty-field,.snake-board,.vault-visual{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;min-height:240px}.question-visual{text-align:center;color:var(--blue);place-items:center;padding:18px;font-size:74px;font-weight:900;display:grid}.question-visual.word,.question-visual.sentence{font-size:54px}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.answer-grid button{min-height:86px;font-size:30px}.twenty-field{grid-template-columns:repeat(5,42px);grid-auto-rows:42px;place-content:center;gap:14px;display:grid}.twenty-field span{background:#fff;border:3px solid #cbd5e1;border-radius:999px}.twenty-field span.filled{border-color:var(--blue);background:var(--blue)}.snake-board{grid-template-columns:repeat(5,48px);grid-auto-rows:48px;place-content:center;gap:8px;display:grid;position:relative}.snake-board span{background:#fff;border:1px solid #dbe4f0;border-radius:8px;place-items:center;font-weight:900;display:grid}.snake-board span.snake{background:var(--green);border-color:var(--green)}.snake-board span.target{background:var(--amber-soft);color:var(--amber);border-color:#f59e0b}.snake-board strong{color:var(--blue);font-size:28px;position:absolute;top:14px;left:14px}.vault-visual{justify-content:center;align-items:center;gap:14px;display:flex}.vault-visual span{color:#fff;background:#172033;border-radius:8px;place-items:center;width:72px;height:72px;font-size:34px;font-weight:900;display:grid}.play-side{align-content:start;gap:12px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px}.metric strong{font-size:32px;display:block}.metric span{color:var(--muted);font-weight:850}.feedback{border-radius:8px;align-items:center;gap:10px;min-height:54px;padding:0 16px;font-size:20px;font-weight:900;display:flex}.feedback.correct{background:var(--green-soft);color:var(--green)}.feedback.wrong{background:var(--red-soft);color:var(--red)}.scope-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.scope-tabs button{color:var(--ink);border:1px solid var(--line);background:#fff}.scope-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}.text-page p{max-width:820px;font-size:18px;line-height:1.65}.legacy-game-page{gap:14px;width:100%;min-width:0;max-width:1180px;margin:0 auto;padding:16px;display:grid}.legacy-header-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.legacy-header-row h1{display:none}.legacy-back,.legacy-light-button,.legacy-reset{border:1px solid var(--line);color:var(--ink);background:#fff}.legacy-back:hover,.legacy-light-button:hover,.legacy-reset:hover{color:var(--blue);background:#f8fafc}.legacy-auth-segment,.legacy-segment{border:1px solid var(--line);background:#fff;border-radius:999px;min-width:0;max-width:100%;display:inline-flex;overflow:hidden;box-shadow:0 8px 22px #0f172a0f}.legacy-auth-segment button,.legacy-segment button{min-height:44px;color:var(--ink);white-space:nowrap;background:0 0;border:0;border-radius:0;padding:0 14px;font-size:16px}.legacy-auth-segment button[aria-pressed=true],.legacy-segment button[aria-pressed=true]{background:var(--blue);color:#fff}.legacy-card{background:#fff;border:2px solid #94a3b8;border-radius:8px;min-width:0;min-height:430px;padding:18px;position:relative;overflow:hidden;box-shadow:0 10px 30px #0f172a14}.legacy-card.feedback-ok{border-color:var(--green);background:linear-gradient(#fff 0%,#f0fdf4 100%)}.legacy-card.feedback-bad{border-color:var(--red);background:linear-gradient(#fff 0%,#fff1f2 100%)}.legacy-task-wrap{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:center;gap:18px;min-width:0;min-height:390px;display:grid}.plus-equation{min-width:0;min-height:260px;color:var(--ink);grid-template-columns:minmax(0,auto) auto minmax(90px,auto);justify-content:center;align-items:center;gap:24px;font-size:76px;font-weight:900;display:grid}.plus-equation strong{min-width:112px;min-height:100px;color:var(--blue);background:#f8fbff;border:4px solid #cbd5e1;border-radius:8px;place-items:center;display:inline-grid}.legacy-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0;display:grid}.legacy-keypad button,.blitz-answer-grid button{border:1px solid var(--line);min-height:76px;color:var(--ink);background:#fff;border-radius:16px;font-size:30px;box-shadow:0 8px 22px #0f172a12}.legacy-keypad button:hover,.blitz-answer-grid button:hover{background:var(--surface-soft);color:var(--blue)}.legacy-status{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.legacy-pill{border:1px solid var(--line);min-height:42px;color:var(--ink);white-space:nowrap;background:#f8fafc;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-weight:800;display:inline-flex}.legacy-pill strong{font-size:18px}.legacy-rank{min-width:min(360px,100%)}.legacy-rankbar{background:#e2e8f0;border-radius:999px;width:130px;height:11px;overflow:hidden}.legacy-rankbar span{background:var(--green);height:100%;display:block}.legacy-rank em{color:var(--muted);font-style:normal}.blitz-card{grid-template-columns:minmax(280px,1fr) minmax(280px,460px);align-items:center;gap:20px;min-width:0;display:grid}.twenty-flash-field{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;grid-template-columns:repeat(5,52px);grid-auto-rows:52px;place-content:center;gap:16px;min-width:0;min-height:310px;display:grid}.twenty-flash-field span{background:#fff;border:4px solid #cbd5e1;border-radius:999px}.twenty-flash-field .filled{border-color:var(--blue);background:var(--blue)}.blitz-answer-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:0;display:grid}.silben-card{border:2px solid var(--game-grid-strong);background-color:var(--game-card);width:100%;min-width:0;max-width:1060px;min-height:430px;box-shadow:var(--game-shadow);border-radius:8px;grid-template-rows:1fr auto;gap:18px;margin:0 auto;padding:18px;transition:border-color .45s,background-color .45s;display:grid;position:relative;overflow:hidden}.silben-card.ok{border-color:var(--game-success)}.silben-card.err{border-color:var(--game-error)}.silben-word{border:1px dashed color-mix(in srgb, var(--game-accent) 24%, #bfdbfe 76%);background-color:color-mix(in srgb, var(--game-bg) 6%, #f8fbff 94%);border-radius:8px;align-content:center;place-items:center;gap:8px;min-height:250px;display:grid}.silben-word span{font-size:clamp(82px,12vw,148px);line-height:1}.silben-word strong{color:var(--game-fg);font-size:clamp(38px,5vw,62px);font-weight:900}.silben-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-width:0;display:grid}.silben-choices button{border:1px solid var(--game-grid);background:var(--game-card);min-height:96px;color:var(--game-fg);box-shadow:var(--game-shadow);border-radius:16px;place-items:center;gap:7px;transition:background-color .16s,border-color .16s,color .16s,transform 50ms;display:grid}.silben-choices button:hover{color:var(--game-accent);background:#f8fafc}.silben-choices button:active{transform:scale(.98)}.silben-choices button.ok{border-color:var(--game-success);background:var(--game-success);color:#fff}.silben-choices button.err{border-color:var(--game-error);background:var(--game-error);color:#fff}.silben-choices button:disabled{cursor:default}.silben-answer-arcs,.silben-choice-arcs{justify-content:center;align-items:center;display:flex}.silben-answer-arcs{min-height:54px;color:var(--game-accent);gap:8px}.silben-choice-arcs{color:currentColor;gap:4px;min-height:36px}.silben-arc{opacity:.9;border:4px solid;border-top:0;border-radius:0 0 999px 999px;width:54px;height:26px}.silben-choice-arcs .silben-arc{border-width:3px;width:clamp(28px,4vw,46px);height:clamp(15px,2.3vw,23px)}.silben-choices button strong{font-size:32px}.wortarten-card{grid-template-rows:auto 1fr auto;gap:16px;display:grid}.word-type-palette{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.word-type-palette button{min-height:42px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:999px}.word-type-palette button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}.sentence-board{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:230px;padding:20px;display:flex}.sentence-board span{border:2px solid #0000;border-radius:12px;padding:10px 12px;font-size:42px;font-weight:900}.sentence-board .target{border-color:var(--blue);color:var(--blue);background:#fff}.legacy-action-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.legacy-action-row strong{min-height:48px;color:var(--blue);align-items:center;font-size:20px;display:inline-flex}.snake-card{grid-template-rows:auto 1fr auto;gap:14px;display:grid}.snake-hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.snake-hud strong{color:var(--blue);font-size:32px}.snake-hud span{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:9px 12px;font-weight:900}.snake-grid{aspect-ratio:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;width:min(100%,520px);min-width:0;margin:0 auto;display:grid}.snake-cell{aspect-ratio:1;min-height:0;color:var(--ink);background:#fff;border:1px solid #dbe4f0;border-radius:10px;padding:0;font-size:22px}.snake-cell:disabled{opacity:1}.snake-body{background:var(--green);border-color:var(--green)}.snake-target{background:var(--amber-soft);color:var(--amber);border-color:#f59e0b}.snake-controls{grid-template-columns:repeat(4,64px);justify-content:center;gap:10px;min-width:0;display:grid}.snake-controls button{min-height:56px;color:var(--blue);background:#fff;border:1px solid #bfdbfe;font-size:24px}.tresor-card{align-content:center;justify-items:center;gap:16px;display:grid}.vault-grid{justify-content:center;gap:clamp(4px,1.3vw,10px);width:min(100%,540px);min-width:0;display:grid}.vault-grid button{aspect-ratio:1;min-height:0;color:var(--ink);border:2px solid var(--line);background:#fff;padding:0;font-size:clamp(16px,5vw,28px)}.vault-grid .vault-missing{border-color:var(--blue);box-shadow:0 0 0 4px #2563eb1f}.vault-palette{flex-wrap:wrap;justify-content:center;gap:12px;max-width:100%;display:flex}.vault-palette button{border:1px solid var(--line);background:#fff;min-width:60px;min-height:58px;font-size:28px}.vault-palette button[aria-pressed=true]{border-color:var(--blue);background:var(--surface-soft)}.game-page{--game-bg:#f6f7fb;--game-fg:#111;--game-muted:#666;--game-accent:#2563eb;--game-grid:#e2e8f0;--game-grid-strong:#94a3b8;--game-pill-bg:color-mix(in srgb, var(--game-bg) 6%, #f8fafc 94%);--game-pill-border:color-mix(in srgb, var(--game-grid-strong) 14%, #e2e8f0 86%);--game-panel-bg:color-mix(in srgb, var(--game-bg) 4%, #fff 96%);--game-panel-border:color-mix(in srgb, var(--game-grid-strong) 12%, #e2e8f0 88%);--game-card:#fff;--game-shadow:0 10px 30px #00000014;--game-success:#16a34a;--game-error:#dc2626;background-color:var(--game-bg);width:100%;min-width:0;max-width:100vw;min-height:100vh;color:var(--game-fg);padding:16px;transition:background-color .9s,color .45s;overflow-x:clip}.game-container{justify-items:center;gap:14px;max-width:1180px;margin:0 auto;display:grid}.game-header{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;width:100%;min-width:0;max-width:1060px;display:flex}.game-header h1{display:none}.game-account-row{justify-content:center;align-items:center;gap:8px;display:inline-flex}.game-back{color:#991b1b;min-height:38px;box-shadow:var(--game-shadow);background:#fff1f2;border:1px solid #fecaca;border-radius:999px;padding:0 12px;font-size:14px;font-weight:650}.game-back:hover{color:#7f1d1d;background:#ffe4e6}.game-segment{border:1px solid var(--game-grid);background:var(--game-card);max-width:100%;box-shadow:var(--game-shadow);border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.game-segment button{min-height:38px;color:inherit;white-space:nowrap;background:0 0;border:0;border-radius:0;padding:0 14px;font-size:15px}.game-header button{letter-spacing:0;font-size:15px;font-weight:750;line-height:1}.game-segment button:hover{background:#f8fafc}.game-segment button[aria-pressed=true]{background:var(--game-accent);color:#fff}.game-auth{box-shadow:none;background:0 0;border:0;overflow:visible}.game-auth button[aria-pressed=true]{color:#14532d;min-height:38px;box-shadow:var(--game-shadow);pointer-events:none;background:#bbf7d0;border:1px solid #4ade80;border-radius:999px;padding:0 12px}.blitz20-card{border:2px solid var(--game-grid-strong);background-color:var(--game-card);width:100%;min-width:0;max-width:1060px;box-shadow:var(--game-shadow);border-radius:8px;margin:0 auto;padding:18px;transition:border-color .9s,background-color .45s;position:relative}.blitz20-card.ok{border-color:var(--game-success)}.blitz20-card.err{border-color:var(--game-error)}.blitz20-field{border:2px solid var(--game-grid-strong);background-color:var(--game-card);border-radius:8px;grid-template-columns:repeat(10,minmax(0,1fr));grid-auto-rows:1fr;gap:10px;width:100%;padding:20px;transition:border-color .9s,background-color .45s;display:grid;position:relative}.blitz20-field:before{content:"";background-color:var(--game-grid-strong);border-radius:3px;width:3px;transition:background-color .9s;position:absolute;top:10px;bottom:10px;left:calc(50% - 1.5px)}.blitz20-card.ok .blitz20-field{border-color:var(--game-success)}.blitz20-card.err .blitz20-field{border-color:var(--game-error)}.blitz20-card.ok .blitz20-field:before{background:var(--game-success)}.blitz20-card.err .blitz20-field:before{background:var(--game-error)}.blitz20-cell{aspect-ratio:1;border:1px solid var(--game-grid);background-color:#f8fafc;border-radius:8px;min-width:0;transition:border-color .9s,background-color .45s;position:relative}.blitz20-dot{aspect-ratio:1;opacity:1;border-radius:50%;width:58%;transition:transform 60ms ease-in-out,opacity 70ms;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(1)}.blitz20-field:not(.hidden) .blitz20-dot{animation:60ms ease-out both blitz-dot-in}@keyframes blitz-dot-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.blitz20-dot.top{background:#e11d48}.blitz20-dot.bottom{background:#2563eb}.blitz20-field.hidden .blitz20-dot{opacity:0;transform:translate(-50%,-50%)scale(.2)}.blitz20-keypad{width:100%;margin-top:14px;display:grid}.blitz20-keypad.range10{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.blitz20-keypad.range20{grid-template-columns:repeat(10,minmax(0,1fr));gap:22px 10px}.blitz20-keypad button{border:1px solid var(--game-grid);background:var(--game-card);width:100%;min-width:0;min-height:56px;color:var(--game-fg);box-shadow:var(--game-shadow);touch-action:manipulation;border-radius:8px;padding:12px;font-size:18px;transition:background-color .12s,border-color .12s,color .12s,transform 50ms}.blitz20-keypad.range10 button{min-height:68px;font-size:26px}.blitz20-keypad button:active{transform:scale(.98)}.blitz20-keypad button.ok{background:var(--game-success);border-color:var(--game-success);color:#fff}.blitz20-keypad button.err{background:var(--game-error);border-color:var(--game-error);color:#fff}.blitz20-ampel{opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.blitz20-ampel.show{opacity:1}.blitz20-lamps{background:#00000059;border-radius:20px;flex-direction:column;justify-content:space-between;align-items:center;width:clamp(44px,8vw,84px);padding:12px 10px;display:flex;position:absolute;top:28px;bottom:104px;left:50%;transform:translate(-50%)}.blitz20-lamps span{aspect-ratio:1;opacity:.4;background:#333;border-radius:50%;width:clamp(22px,4vw,38px)}.blitz20-lamps .red.on{opacity:1;background:#ef4444}.blitz20-lamps .yellow.on{opacity:1;background:#f59e0b}.blitz20-lamps .green.on{opacity:1;background:#22c55e}.game-status{z-index:5;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:clamp(4px,1vw,12px);width:100%;max-width:1060px;margin:-22px auto 0;padding:34px 8px 0;display:flex;position:relative;overflow:visible}.game-pill{border:1px solid var(--game-pill-border);background-color:var(--game-pill-bg);color:#111827;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:clamp(4px,.7vw,8px);min-height:38px;padding:6px clamp(7px,.9vw,10px);font-size:15px;font-weight:500;transition:background-color .9s,border-color .9s,color .35s;display:inline-flex;overflow:visible}.game-pill strong{margin-left:4px;font-weight:500}.game-mobile-correctwrong{display:none}.game-rank{--game-rank-xp-width:8.5ch;grid-template-columns:auto minmax(170px, 1fr) var(--game-rank-xp-width);z-index:7;flex:0 520px;justify-content:stretch;min-width:0;display:grid;position:relative;overflow:visible}.game-rank-xp{width:var(--game-rank-xp-width);min-width:var(--game-rank-xp-width);font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:flex-end;font-size:14px;font-weight:500;display:inline-flex}.game-badge{border:1px solid var(--game-grid-strong);background-color:#fff;border-radius:999px;justify-content:center;align-items:center;padding:4px 8px;font-weight:800;transition:border-color .9s,background-color .45s;display:inline-flex}.game-progress-wrap{z-index:8;min-width:120px;display:block;position:relative;overflow:visible}.game-progress{background-color:color-mix(in srgb, var(--game-bg) 2%, #fff 98%);border:1px solid #d1d5db;border-radius:999px;width:100%;height:12px;transition:background-color .9s,border-color .9s;position:relative;overflow:hidden}.game-progress-fill{z-index:1;background:var(--game-accent);height:100%;transition:width .25s;display:block;position:relative}.game-progress-overlay{z-index:2;border-radius:inherit;opacity:0;transition:opacity .25s;position:absolute;inset:0}.game-progress-overlay.ok{background:#22c55e38}.game-progress-overlay.err{background:#dc262638}.game-progress-overlay.bonus{background:#f59e0b4d}.game-progress-overlay.show{opacity:1}.game-xp-bubble{z-index:5;box-shadow:var(--game-shadow);pointer-events:none;opacity:1;border:1px solid #0000;border-radius:999px;padding:6px 20px;font-size:16px;font-weight:900;position:absolute;top:-28px;left:50%;transform:translate(-50%,-8px)}.game-xp-bubble.positive{color:#1e3a8a;background:#dbeafe;border-color:#60a5fa}.game-xp-bubble.streak{color:#92400e;background:#fef3c7;border-color:#facc15}.game-xp-bubble.negative{color:#991b1b;background:#fee2e2;border-color:#fecaca}.game-xp-bubble.neutral{color:#475569;background:#f8fafc;border-color:#e2e8f0}.game-xp-bubble.enter{animation:.18s both blitz-xp-fade}.game-xp-bubble.pulse-ok{animation:.45s ease-out blitz-xp-pulse-ok}.game-xp-bubble.pulse-err{animation:.45s ease-out blitz-xp-pulse-err}.game-xp-bubble.enter.pulse-ok{animation:.18s both blitz-xp-fade,.45s ease-out blitz-xp-pulse-ok}.game-xp-bubble.enter.pulse-err{animation:.18s both blitz-xp-fade,.45s ease-out blitz-xp-pulse-err}@keyframes blitz-xp-fade{0%{opacity:0}to{opacity:1}}@keyframes blitz-xp-pulse-ok{0%{background-color:#dbeafe}40%{background-color:#bbf7d0}to{background-color:#dbeafe}}@keyframes blitz-xp-pulse-err{0%{background-color:#fee2e2}40%{background-color:#fca5a5}to{background-color:#fee2e2}}.game-flames{pointer-events:none;z-index:30;height:110px;position:absolute;top:-60px;left:0;right:0;overflow:visible}.game-flames i{z-index:31;left:var(--left);font-style:normal;font-size:var(--size);animation:blitz-flame-rise var(--duration) ease-out var(--delay) forwards;position:absolute;top:70px}@keyframes blitz-flame-rise{0%{opacity:0;transform:translateY(36px)scale(.9)}20%{opacity:1}to{opacity:0;transform:translateY(-36px)scale(1.06)}}.game-stats,.game-info{width:100%;max-width:1060px;margin:18px auto 0}.game-stats details,.game-info details{border:1px solid var(--game-panel-border);background-color:var(--game-panel-bg);border-radius:8px;padding:12px;transition:background-color .9s,border-color .9s}.game-stats summary,.game-info summary{cursor:pointer;font-weight:750}.game-stats table{border-collapse:separate;border-spacing:0;border-radius:8px;width:100%;margin-top:8px;font-size:13px;overflow:hidden}.game-stats th,.game-stats td{text-align:left;border-bottom:1px solid #e5e7eb;padding:8px 10px}.game-stats thead th{color:#334155;background:#eef2f7;font-weight:700}.game-stats tbody tr:nth-child(2n){background:#f8fbff}.game-reset-row{justify-content:flex-end;margin-top:10px;display:flex}.game-danger,.game-light,.game-confirm{border:1px solid var(--game-grid);border-radius:8px;min-height:36px;padding:0 12px;font-size:13px}.game-danger{color:#991b1b;background:#fee2e2;border-color:#ef4444;font-weight:800}.game-light{color:#111827;background:#f8fafc}.game-confirm{color:#fff;background:#dc2626;border-color:#dc2626;font-weight:900}.game-info{margin-bottom:28px;padding:0 14px}.game-info details{box-shadow:none;background:0 0;border-color:#0000}.game-info summary{color:#64748b;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;list-style:none;display:flex}.game-info summary::-webkit-details-marker{display:none}.game-info summary span{border:1px solid;border-radius:999px;place-items:center;width:18px;height:18px;font-size:12px;line-height:1;display:inline-grid}.game-info details[open] summary{margin-bottom:10px}.game-info div{color:#475569;max-width:820px;margin:0 auto;line-height:1.55}.game-info h2{color:var(--game-fg);margin:14px 0 6px;font-size:16px}.game-info h2:first-child{margin-top:0}.game-info p{margin:0 0 10px}.game-toast{z-index:10001;color:#fff;box-shadow:var(--game-shadow);background:#111;border-radius:999px;padding:8px 12px;font-size:13px;position:fixed;top:16px;left:50%;transform:translate(-50%)translateY(6px)}.game-modal{z-index:10000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-dialog{border:1px solid var(--game-grid);background:var(--game-card);width:min(520px,92vw);color:var(--game-fg);box-shadow:var(--game-shadow);border-radius:8px;gap:12px;padding:16px;font-size:14px;display:grid;position:relative}.game-dialog h2{margin:0;font-size:18px}.game-dialog p{margin:0}.game-dialog label{align-items:center;gap:8px;display:flex}.game-dialog input{width:18px;height:18px}.game-dialog-x{border:1px solid var(--game-grid);background:var(--game-card);width:28px;min-height:28px;color:var(--game-fg);border-radius:999px;padding:0;position:absolute;top:10px;right:10px}.game-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.plusminus-page{--plus-slot-bg:color-mix(in srgb, var(--game-bg) 15%, #fff 85%);--plus-slot-border:color-mix(in srgb, var(--game-grid-strong) 60%, #cbd5e1 40%)}.plusminus-page .game-segment button:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.25)}.plusminus-card{border:2px solid var(--game-grid-strong);background-color:var(--game-card);width:100%;min-width:0;max-width:1060px;box-shadow:var(--game-shadow);border-radius:8px;margin:0 auto;padding:18px;transition:border-color .9s,background-color .45s;position:relative}.plusminus-card.ok{border-color:var(--game-success)}.plusminus-card.err{border-color:var(--game-error)}.plusminus-task-wrap{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:center;gap:18px;min-width:0;display:grid}.plusminus-task-area{justify-content:center;align-items:center;min-width:0;min-height:220px;display:flex;overflow:hidden}.plusminus-equation{--plus-equation-scale:1;min-width:0;max-width:100%;color:var(--game-fg);letter-spacing:0;white-space:nowrap;transform:scale(var(--plus-equation-scale));transform-origin:50%;justify-content:center;align-items:center;gap:clamp(10px,1.7vw,16px);font-size:clamp(44px,7.6vw,84px);font-weight:850;line-height:1;transition:transform .18s;display:flex;overflow:visible}.plusminus-equation.three{gap:clamp(8px,1.3vw,12px);font-size:clamp(34px,6.5vw,74px)}.plusminus-lhs{text-overflow:clip;font-variant-numeric:tabular-nums;flex:none;min-width:max-content;overflow:visible}.plusminus-eq{opacity:.8}.plusminus-answer-slot{border:2px solid var(--plus-slot-border);background-color:var(--plus-slot-bg);width:clamp(96px,12vw,140px);height:clamp(96px,12vw,140px);color:var(--game-accent);font-size:inherit;font-variant-numeric:tabular-nums;border-radius:16px;flex:none;justify-content:center;align-items:center;font-weight:900;line-height:1;transition:border-color .9s,background-color .45s,transform .12s;display:inline-flex;position:relative;overflow:hidden}.plusminus-answer-slot.tight{font-size:.74em}.plusminus-answer-slot:before{content:"";opacity:.9;background:#94a3b8;border-radius:999px;height:3px;position:absolute;bottom:12px;left:12px;right:12px}.plusminus-answer-slot:after{content:"";z-index:0;border-radius:inherit;opacity:0;transition:opacity .22s;position:absolute;inset:0}.plusminus-answer-slot.ok{border-color:var(--game-success)}.plusminus-answer-slot.err{border-color:var(--game-error)}.plusminus-answer-slot.ok:after{opacity:1;background:#22c55e2e}.plusminus-answer-slot.err:after{opacity:1;background:#dc26262e}.plusminus-answer-slot>*{z-index:1;position:relative}.plusminus-keypad{-webkit-user-select:none;user-select:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;min-width:0;display:grid}.plusminus-keypad.disabled{pointer-events:none;filter:grayscale(.15);opacity:.9}.plusminus-keypad button{border:1px solid var(--game-grid);background:var(--game-card);width:100%;min-width:0;min-height:76px;color:var(--game-fg);box-shadow:var(--game-shadow);touch-action:manipulation;border-radius:16px;padding:16px;font-size:30px;transition:background-color .12s,border-color .12s,color .12s,transform 50ms}.plusminus-keypad button:hover{color:var(--game-accent);background:#f8fafc}.plusminus-keypad button:active{transform:scale(.98)}.plusminus-keypad .ok{border-color:var(--game-accent);background:var(--game-accent);color:#fff}.plusminus-keypad .ok:hover{color:#fff;background:#1d4ed8}.plusminus-keypad .del{background:#f1f5f9}.plusminus-keypad .disabled{opacity:.6;filter:grayscale(.2)}@media (width>=701px) and (width<=900px){.game-status{grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:6px;padding-left:0;padding-right:0;display:grid;overflow:visible}.game-pill{min-width:0;padding:6px 8px;font-size:14px}.game-rank{grid-template-columns:auto minmax(0, 1fr) var(--game-rank-xp-width);gap:8px;width:100%}.game-rank-xp{font-size:14px}.game-badge{padding:4px 7px}.game-progress-wrap{min-width:0}.plusminus-card{padding:16px}.plusminus-task-wrap{grid-template-columns:minmax(0,1fr);gap:14px}.plusminus-task-area{min-height:150px}.plusminus-equation{gap:10px;width:100%;font-size:clamp(42px,8vw,64px)}.plusminus-equation.three{font-size:clamp(32px,6vw,52px)}.plusminus-answer-slot{width:clamp(82px,13vw,112px);height:clamp(82px,13vw,112px)}.plusminus-keypad{gap:10px}.plusminus-keypad button{border-radius:12px;min-height:54px;padding:10px;font-size:24px}}@media (width<=700px){.game-page{padding:12px}.game-header{grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:10px;display:grid}.game-account-row,.game-segment{width:100%}.game-account-row{grid-template-columns:minmax(0,auto) minmax(0,1fr);display:grid}.game-segment{border-radius:8px;grid-auto-flow:column;display:grid;overflow-x:auto}.game-segment button{min-width:max-content}.game-difficulty{grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:visible}.game-difficulty button{min-width:0;padding:0 6px;font-size:13px}.blitz20-card{padding:14px}.blitz20-field{gap:7px;padding:12px}.blitz20-keypad.range20{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:12px}.blitz20-keypad.range20 button{min-height:54px;font-size:20px}.game-status{padding:0 0 calc(4px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr);place-items:center stretch;gap:6px;margin:6px auto 0;display:grid;overflow:visible}.game-pill{width:100%;min-height:32px;box-shadow:none;white-space:nowrap;text-align:center;border-radius:10px;justify-content:center;gap:6px;padding:6px 8px;font-size:13px;line-height:1.15}.game-correct,.game-wrong{display:none}.game-mobile-correctwrong{order:2;display:flex}.game-streak{order:3}.game-rank{grid-template-columns:auto minmax(96px, 1fr) var(--game-rank-xp-width);order:1;justify-content:normal;place-items:center stretch;gap:8px;display:grid}.game-rank-xp{width:var(--game-rank-xp-width);min-width:var(--game-rank-xp-width);color:#0f172a;justify-content:flex-end;font-size:13px;font-weight:500}.game-badge{border-color:var(--game-grid);padding:3px 7px;font-size:13px;font-weight:700;line-height:1.1;box-shadow:0 1px 2px #0f172a0d}.game-progress-wrap{width:100%;min-width:96px}.game-progress{background:#e5e7eb;border-color:#cbd5e1;width:100%;height:18px}.game-progress-fill{border-radius:999px}.game-xp-bubble{z-index:12;padding:3px 12px;font-size:12px;font-weight:800;line-height:1;top:-2px;transform:translate(-50%,-50%)scale(.96)}.game-stats,.game-info{margin-top:12px}.plusminus-range{grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:visible}.game-header button{font-size:14px;font-weight:750}.plusminus-card{padding:14px}.plusminus-task-wrap{grid-template-columns:minmax(0,1fr);gap:14px}.plusminus-task-area{min-height:172px}.plusminus-equation{gap:8px;width:100%;font-size:clamp(38px,13vw,60px)}.plusminus-equation.three{font-size:clamp(28px,9vw,46px)}.plusminus-answer-slot{border-radius:12px;width:clamp(76px,24vw,104px);height:clamp(76px,24vw,104px)}.plusminus-keypad{gap:10px}.plusminus-keypad button{border-radius:12px;min-height:62px;padding:10px;font-size:24px}}@media (width<=980px){h1{font-size:34px}.topbar,.hero-row,.student-header,.play-header{flex-direction:column;align-items:flex-start}.topnav{width:100%}.session-pill{display:none}.role-grid,.stats-grid,.module-grid,.module-mini-grid,.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column,.split-layout,.teacher-class-layout,.play-layout{grid-template-columns:1fr}.play-side{grid-template-columns:repeat(4,minmax(0,1fr))}.play-progress{width:100%}.legacy-task-wrap,.blitz-card{grid-template-columns:1fr}.legacy-card{min-height:0}.plus-equation{min-height:180px;font-size:54px}}@media (width<=620px){.home-page,.content-page,.play-page{padding:16px}.topbar{padding:12px 16px}.topnav button{width:100%;min-width:0}.topnav{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.role-grid,.stats-grid,.class-grid,.module-grid,.module-mini-grid,.qr-grid,.play-side{grid-template-columns:1fr}.student-header h1{font-size:40px}.qr-card{grid-template-columns:minmax(0,1fr) 96px;min-height:150px;padding:14px}.qr-card-text strong{font-size:26px}.qr-image-box{width:92px;height:92px}.qr-image-box img{width:84px;height:84px}.answer-grid{grid-template-columns:1fr}.answer-grid button{min-height:72px}.question-visual,.twenty-field,.snake-board,.vault-visual{min-height:190px}.question-visual,.question-visual.word,.question-visual.sentence{font-size:42px}.twenty-field{grid-template-columns:repeat(5,28px);grid-auto-rows:28px;gap:8px}.snake-board{grid-template-columns:repeat(5,34px);grid-auto-rows:34px}.vault-visual span{width:54px;height:54px;font-size:26px}.legacy-game-page{max-width:100vw;padding:12px;overflow-x:clip}.legacy-header-row{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;display:grid}.legacy-header-row>*{width:auto;min-width:0}.legacy-auth-segment,.legacy-segment{border-radius:14px;grid-auto-flow:column;width:100%;display:grid;overflow-x:auto}.legacy-auth-segment button,.legacy-segment button{border-radius:0;min-width:max-content}.legacy-card{border-radius:8px;padding:14px}.plus-equation{grid-template-columns:1fr;gap:8px;min-height:180px;font-size:42px}.plus-equation strong{width:100%;min-width:0;min-height:72px}.legacy-status{grid-template-columns:minmax(0,1fr);display:grid}.legacy-pill,.legacy-reset{white-space:normal;text-align:center;justify-content:center;width:100%;min-width:0}.legacy-rank{grid-template-columns:minmax(0,1fr);justify-items:center;display:grid}.legacy-keypad button,.blitz-answer-grid button{min-height:62px;font-size:24px}.twenty-flash-field{grid-template-columns:repeat(5,32px);grid-auto-rows:32px;gap:9px;min-height:210px}.blitz-answer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.silben-word strong{font-size:42px}.silben-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.sentence-board span{font-size:28px}.snake-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.vault-palette button{min-width:52px}table,thead,tbody,th,td,tr{display:block}thead{display:none}tr{border-bottom:1px solid #edf2f7;padding:10px 0}td{white-space:normal;border:0;justify-content:space-between;gap:12px;display:flex}td:before{content:attr(data-label);color:var(--muted);font-weight:850}}@media print{body{background:#fff}.topbar,.no-print,.page-title{display:none!important}.content-page{max-width:none;padding:0}.qr-grid{grid-template-columns:repeat(2,1fr);gap:8mm;display:grid}.qr-card{min-height:48mm;box-shadow:none;break-inside:avoid;border-color:#94a3b8}}
