:root{--color-canvas:#fefbf5;--color-ink:#183c6a;--color-primary:#3c91f6;--color-primary-ink:#2c86e6;--color-next:#ffd13a;--color-reveal:#ff6457;--color-soft:#eef7ff;--radius-card:28px;--radius-control:24px;--shadow-control:0 3px 0 rgb(38 66 95/9%);--canvas:var(--color-canvas);--ink:var(--color-ink);--blue:var(--color-primary);--blue-ink:var(--color-primary-ink);--yellow:var(--color-next);--coral:var(--color-reveal);--soft-blue:var(--color-soft);--radius-large:var(--radius-card);--control-shadow:var(--shadow-control)}*{box-sizing:border-box}body,html{min-height:100%;background:radial-gradient(circle at 50% 35%,#fffefb 0,var(--canvas) 66%,#fff6e9 100%);color:var(--ink);font-family:Microsoft YaHei UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}body{margin:0}a,button{font:inherit}a:focus-visible,button:focus-visible{outline:4px solid var(--ink);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none;transform:none}.visually-hidden{width:1px;height:1px;padding:0;margin:-1px;border:0;position:absolute;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.setup-page{min-height:100svh;padding:20px clamp(24px,4vw,56px)}.setup-shell{width:min(1180px,100%);min-height:calc(100svh - 40px);margin:0 auto;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr)}.setup-license{min-height:36px;position:absolute;top:12px;right:0;z-index:2;display:flex;justify-content:flex-end;gap:10px}.setup-license,.setup-license-status{align-items:center;font-size:14px;font-weight:800}.setup-license-status{min-height:44px;padding:6px 12px;border:2px solid rgb(78 156 245/42%);border-radius:999px;display:inline-flex;gap:5px;background:var(--canvas);color:var(--ink);cursor:pointer}.setup-license-status svg{color:#277653;font-size:17px}.setup-license-expiry,.setup-license-reminder{margin:0}.setup-license-expiry{color:var(--ink)}.setup-license-reminder{padding:5px 9px;border-radius:999px;background:var(--yellow);color:var(--ink)}.setup-brand{min-height:112px;margin:0;padding:4px min(360px,30vw) 14px 0;border-bottom:2px solid rgb(78 156 245/20%);display:flex;align-items:center;justify-content:flex-start;gap:18px}.setup-brand img{flex:0 0 auto;object-fit:contain}.completion-eyebrow,.feedback-kicker,.setup-eyebrow,.setup-intro{margin:0;font-weight:800}.setup-eyebrow{color:var(--blue-ink);font-size:17px;letter-spacing:.06em}.setup-brand h1{margin:0 0 3px;font-size:clamp(32px,3.4vw,46px);line-height:1.15}.setup-intro{color:rgb(38 66 95/78%);font-size:16px}.setup-card{width:min(980px,100%);margin:auto;padding:clamp(22px,4vh,36px) 0 20px;display:grid;grid-gap:clamp(14px,2vh,20px);gap:clamp(14px,2vh,20px);background:transparent}.setup-field{min-width:0;border:0;display:grid;grid-template-columns:170px minmax(0,1fr);grid-gap:20px;gap:20px}.setup-field,.setup-field-label{margin:0;padding:0;align-items:center}.setup-field-label{width:170px;display:flex;gap:8px;font-size:20px;font-weight:900}.setup-field-label svg{color:var(--blue);font-size:26px}.segmented-control{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.segmented-control--single{grid-template-columns:repeat(4,1fr)}.segmented-control button{min-height:60px;padding:10px 18px;border:2px solid rgb(78 156 245/42%);border-radius:20px;background:var(--canvas);color:var(--ink);cursor:pointer;font-size:18px;font-weight:900}.segmented-control button[aria-pressed=true]{border-color:var(--blue);background:linear-gradient(180deg,#f3faff,#e5f3ff);box-shadow:inset 0 1px 0 rgb(255 255 255/90%),inset 0 0 0 1px var(--blue)}.completion-actions a,.completion-actions button,.last-round-button,.start-challenge-button{min-height:66px;border:2px solid #a87500;border-radius:var(--radius-control);display:inline-flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(180deg,#ffdc55,#ffca2c);box-shadow:0 4px 0 #e8b214,inset 0 2px 0 rgb(255 255 255/35%);color:var(--ink);cursor:pointer;font-size:22px;font-weight:900;text-decoration:none}.start-challenge-button{min-height:72px;margin:6px 0 0 190px;font-size:24px}.last-round-button svg,.start-challenge-button svg{font-size:28px}.last-round-button{min-height:56px;margin-left:190px;border:2px solid rgb(78 156 245/42%);border-radius:var(--radius-control);display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--canvas);color:var(--ink);cursor:pointer;font-size:18px;font-weight:900}.feedback-entry{position:fixed;right:24px;bottom:24px;z-index:10}.feedback-trigger{width:44px;height:44px;padding:0;border:2px solid var(--blue);border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#4aa1ff,#368ff0);box-shadow:0 3px 0 #287ed8,0 7px 16px rgb(24 60 106/12%),inset 0 1px 0 rgb(255 255 255/42%);color:#fff;cursor:pointer;font-size:24px}.activation-page{min-height:100svh;padding:24px;display:grid;place-items:center}.activation-card{width:min(520px,100%);padding:clamp(28px,5vw,44px);border:2px solid rgb(78 156 245/36%);border-radius:var(--radius-large);background:linear-gradient(145deg,#fffefb,#fffaf4);box-shadow:0 8px 24px rgb(24 60 106/8%),inset 0 1px 0 rgb(255 255 255/92%)}.activation-brand{display:flex;align-items:center;gap:16px}.activation-brand img{flex:0 0 auto;object-fit:contain}.activation-brand h1{margin:0;font-size:clamp(30px,6vw,42px);line-height:1.2}.activation-brand p{margin:0 0 3px;color:var(--blue-ink);font-size:15px;font-weight:900;letter-spacing:.05em}.activation-form{margin-top:28px;display:grid;grid-gap:10px;gap:10px}.activation-form label{font-size:18px;font-weight:900}.activation-form input{min-height:58px;padding:12px 16px;border:2px solid rgb(78 156 245/58%);border-radius:20px;background:var(--canvas);color:var(--ink);font-size:20px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.activation-form input:focus-visible{outline:4px solid var(--blue);outline-offset:3px}.activation-error{margin:2px 0 0;color:#9a302c;font-weight:800}.activation-submit{min-height:62px;margin-top:8px;padding:12px 18px;border:2px solid #a87500;border-radius:var(--radius-control);display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(180deg,#ffdc55,#ffca2c);box-shadow:0 4px 0 #e8b214,inset 0 2px 0 rgb(255 255 255/35%);color:var(--ink);cursor:pointer;font-size:21px;font-weight:900}.activation-submit svg{font-size:25px}.activation-note{margin:20px 0 0;text-align:center;color:var(--ink);font-size:14px;font-weight:700;line-height:1.6}.feedback-popover{width:min(320px,calc(100vw - 48px));margin-bottom:12px;padding:22px;border:2px solid rgb(78 156 245/52%);border-radius:20px;position:relative;background:linear-gradient(145deg,#fffefb,#fffaf4);box-shadow:0 12px 30px rgb(24 60 106/12%),inset 0 1px 0 rgb(255 255 255/90%)}.feedback-popover h2{margin:2px 0 8px;font-size:24px}.feedback-popover>p:not(.feedback-kicker){margin:0;line-height:1.55}.feedback-kicker{color:var(--ink);font-size:14px}.feedback-popover ul{margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;list-style:none}.feedback-popover li{padding:7px 11px;border:2px solid var(--blue);border-radius:999px;background:var(--soft-blue);font-weight:800}.feedback-close{width:34px;height:34px;padding:0;border:0;position:absolute;top:12px;right:12px;display:grid;place-items:center;background:transparent;color:var(--ink);cursor:pointer;font-size:22px}.game-page{height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:132px minmax(0,1fr);background:radial-gradient(circle at 50% 42%,#fffefb 0,var(--canvas) 67%,#fff7ec 100%)}.game-header{width:100%;min-width:0;min-height:132px;padding:14px clamp(28px,2vw,40px);border-bottom:2px solid rgb(78 156 245/22%);position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:clamp(20px,3vw,44px);gap:clamp(20px,3vw,44px);background:linear-gradient(180deg,#fffdf9 0,var(--canvas) 100%)}.game-page[data-fullscreen=true] .game-header{grid-template-columns:minmax(0,1fr) auto}.game-header-left{min-width:0;display:block}.game-window-toolbar{position:absolute;top:50%;right:clamp(10px,1vw,20px);z-index:2;display:grid;grid-gap:8px;gap:8px;transform:translateY(-50%)}.game-exit,.game-fullscreen{min-width:116px;min-height:44px;padding:7px 12px;border:2px solid rgb(78 156 245/32%);border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:rgb(254 251 245/92%);box-shadow:0 3px 10px rgb(24 60 106/7%);color:var(--ink);cursor:pointer;font-size:16px;font-weight:800;text-decoration:none;white-space:nowrap}.game-fullscreen{border-color:rgb(78 156 245/56%);background:var(--soft-blue)}.game-brand{height:104px;min-width:0;display:flex;align-items:center;gap:12px}.game-brand img{width:165px;height:165px;margin-right:-38px;margin-left:-37px;object-fit:contain;transform:translateY(15px)}.game-brand p{margin:0;font-size:clamp(62px,4.55vw,86px);font-weight:900;letter-spacing:.01em;line-height:1.05;text-shadow:0 1px 0 rgb(255 255 255/80%);white-space:nowrap}.game-brand p span{color:var(--blue-ink)}.game-meta{justify-content:flex-end;gap:20px}.game-meta,.game-meta p{display:flex;align-items:center}.game-meta p{min-height:74px;margin:0;padding:10px 18px;border:2px solid rgb(78 156 245/42%);border-radius:24px;justify-content:center;gap:6px;background:linear-gradient(180deg,rgb(255 255 255/72%),rgb(234 245 255/55%));box-shadow:0 2px 6px rgb(24 60 106/4%),inset 0 1px 0 rgb(255 255 255/88%);font-size:clamp(18px,1.55vw,24px);font-weight:900;white-space:nowrap}.game-meta .game-progress{min-width:clamp(250px,21vw,400px);background:linear-gradient(180deg,#fffefb,#fffaf4)}.game-meta .game-difficulty{min-width:clamp(200px,14.1vw,270px)}.game-progress strong{margin:0 7px;color:var(--blue-ink);font-size:clamp(42px,3.35vw,64px);line-height:1}.game-difficulty svg{color:#f0b900;font-size:30px}.game-body{width:min(1720px,100%);min-height:0;margin:0 auto;padding:30px 30px 40px;display:grid;grid-template-rows:minmax(0,1fr) 116px;grid-gap:12px;gap:12px}.classroom-puzzle{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(88px,auto);grid-gap:10px;gap:10px}.puzzle-focus{min-height:0;display:grid;place-items:center}.equation-part,.puzzle-equation{display:flex;align-items:center}.puzzle-equation{justify-content:center;transform:translateY(-10px)}.equation-part,.puzzle-equation{gap:clamp(24px,2.5vw,48px)}.glyph-card{width:clamp(220px,min(37.5vh,22vw),404px);aspect-ratio:1;border:4px solid var(--blue);border-radius:28px;display:grid;place-items:center;background:linear-gradient(145deg,#fffefb,#fffaf5 62%,#fff8f0);box-shadow:0 8px 18px rgb(24 60 106/5%),inset 0 2px 0 rgb(255 255 255/94%);color:var(--ink);font-size:clamp(164px,29.5vh,318px);font-weight:900;line-height:1;text-shadow:0 2px 0 rgb(38 92 148/12%)}.puzzle-equation[data-component-count="3"],.puzzle-equation[data-component-count="3"] .equation-part{gap:clamp(10px,1.25vw,18px)}.puzzle-equation[data-component-count="3"] .glyph-card{width:clamp(126px,19vh,190px);font-size:clamp(78px,12vh,128px)}.puzzle-equation[data-component-count="4"],.puzzle-equation[data-component-count="4"] .equation-part{gap:clamp(8px,1vw,14px)}.puzzle-equation[data-component-count="4"] .glyph-card{width:clamp(104px,16vh,160px);font-size:clamp(66px,10vh,104px)}.puzzle-equation[data-component-count="3"] .equation-operator,.puzzle-equation[data-component-count="4"] .equation-operator{font-size:clamp(44px,6.2vh,64px)}.glyph-card--answer{border-color:var(--coral);background:linear-gradient(145deg,#fffefb,#fff8f3);color:var(--coral)}.glyph-card--revealed{background:linear-gradient(145deg,#fffaf6,#fff0eb);color:var(--ink)}.component-piece{transition:transform .8s ease;will-change:transform}.equation-operator{color:var(--blue);font-size:clamp(96px,13vh,136px);font-weight:900;line-height:1;text-shadow:0 2px 0 rgb(35 123 216/10%)}.puzzle-message{width:100%;min-height:88px;display:grid;place-items:center}.hint-message,.thinking-prompt{margin:0;text-align:center;font-weight:800}.thinking-prompt{color:rgb(38 66 95/70%);font-size:clamp(30px,2.2vw,38px)}.hint-message{width:min(1120px,100%);padding:16px 28px;border:2px solid rgb(78 156 245/48%);border-radius:20px;background:rgb(234 245 255/62%);font-size:clamp(34px,2.5vw,44px);line-height:1.35}.hint-message span{margin-right:16px;padding:6px 12px;border-radius:999px;display:inline-block;background:var(--yellow);font-size:clamp(24px,1.55vw,28px)}.answer-details{width:min(1120px,100%);min-height:88px;padding:12px 22px;border:2px solid rgb(255 122 110/50%);border-radius:20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:22px;gap:22px;background:rgb(255 122 110/5%)}.answer-details p{margin:0;font-size:clamp(17px,1.7vw,22px);font-weight:800}.answer-example,.answer-pinyin{display:flex;align-items:center;gap:8px}.answer-details svg{color:var(--coral);font-size:26px}.game-controls{width:min(75vw,1440px);min-height:116px;justify-self:center;display:grid;grid-template-columns:.97fr 1.2fr 1fr;align-items:stretch;grid-gap:clamp(44px,3.15vw,60px);gap:clamp(44px,3.15vw,60px)}.game-button{padding:12px 18px;border:2px solid transparent;border-radius:28px;display:flex;align-items:center;justify-content:center;gap:clamp(18px,1.3vw,26px);color:var(--ink);cursor:pointer;font-size:clamp(38px,2.9vw,58px);font-weight:900;letter-spacing:.01em;line-height:1;text-shadow:0 1px 0 rgb(255 255 255/18%)}.game-button svg{flex:0 0 auto;font-size:1.36em}.game-button--hint{padding-inline:8px;border-color:#2a7fd9;background:linear-gradient(180deg,#4aa1ff,#368ff0);box-shadow:0 5px 0 #287ed8,0 9px 18px rgb(24 60 106/8%),inset 0 2px 0 rgb(255 255 255/34%);color:#fff;gap:clamp(8px,.7vw,12px)}.game-button--hint span{white-space:nowrap}.game-button--hint:disabled{border-color:#aebbc7;background:linear-gradient(180deg,#d9e1e8,#c4ced8);box-shadow:0 3px 0 #aebbc7,inset 0 2px 0 rgb(255 255 255/42%);color:#607080;opacity:1}.game-button--reveal{border-color:#e84f46;background:linear-gradient(180deg,#ff786b,#ff5d52);box-shadow:0 5px 0 #e84f46,0 9px 18px rgb(24 60 106/8%),inset 0 2px 0 rgb(255 255 255/30%);color:#fff}.game-button--next,.game-button--next-weak{border-color:#e8b214;background:linear-gradient(180deg,#ffdc55,#ffca2c);box-shadow:0 5px 0 #e8b214,0 9px 18px rgb(24 60 106/8%),inset 0 2px 0 rgb(255 255 255/36%)}.game-button kbd{display:none}.fullscreen-help{min-height:52px;margin:0;padding:12px 22px;border:2px solid rgb(78 156 245/46%);border-radius:18px;position:fixed;top:16px;left:50%;z-index:40;background:rgb(24 60 106/92%);box-shadow:0 10px 28px rgb(24 60 106/18%);color:#fff;font-size:20px;font-weight:900;pointer-events:none;transform:translateX(-50%)}.skip-dialog-backdrop{padding:24px;position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgb(24 60 106/32%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.skip-dialog{width:min(520px,100%);padding:38px 34px 32px;border:2px solid rgb(78 156 245/42%);border-radius:28px;position:relative;background:linear-gradient(145deg,#fffefb,#fff8f2);box-shadow:0 22px 60px rgb(24 60 106/22%),inset 0 2px 0 rgb(255 255 255/92%);text-align:center}.skip-dialog-close{width:44px;height:44px;padding:0;border:0;border-radius:14px;position:absolute;top:14px;right:14px;display:grid;place-items:center;background:transparent;color:rgb(24 60 106/66%);cursor:pointer;font-size:24px}.skip-dialog-icon{width:76px;height:76px;margin:0 auto 14px;border-radius:24px;display:grid;place-items:center;background:rgb(255 100 87/12%);color:var(--coral);font-size:42px}.skip-dialog h2{margin:0;font-size:36px;line-height:1.2}.skip-dialog>p{margin:12px 0 26px;color:rgb(38 66 95/76%);font-size:20px;font-weight:800}.skip-dialog-actions{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:14px;gap:14px}.skip-dialog-actions button{min-height:64px;padding:10px 16px;border:2px solid transparent;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;font-size:20px;font-weight:900}.skip-dialog-actions svg{flex:0 0 auto;font-size:28px}.skip-dialog-reveal{border-color:#e84f46;background:linear-gradient(180deg,#ff786b,#ff5d52);box-shadow:0 4px 0 #e84f46,inset 0 2px 0 rgb(255 255 255/30%);color:#fff}.skip-dialog-skip{border-color:rgb(78 156 245/46%);background:#fffefb;color:var(--ink)}.completion-page{min-height:100svh;padding:32px;display:grid;place-items:center}.completion-card{width:min(680px,100%);padding:clamp(34px,6vw,64px);border:2px solid rgb(78 156 245/30%);border-radius:28px;background:linear-gradient(145deg,#fffefb,#fffaf4);box-shadow:0 12px 34px rgb(24 60 106/9%),inset 0 2px 0 rgb(255 255 255/92%);text-align:center}.completion-card img{object-fit:contain}.completion-eyebrow{margin-top:12px;color:var(--coral);font-size:18px}.completion-card h1{margin:4px 0 10px;font-size:clamp(44px,7vw,72px)}.completion-card>p:last-of-type{margin:0;font-size:20px;font-weight:700}.completion-actions{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.completion-actions .completion-secondary{background:var(--canvas);border-color:rgb(78 156 245/44%)}.game-loading{min-height:100svh;padding:32px;display:grid;place-content:center;justify-items:center;grid-gap:14px;gap:14px;text-align:center}.game-loading h1,.game-loading p{margin:0}.game-loading p{max-width:520px;font-size:20px;font-weight:800}.game-loading button{min-height:52px;margin-top:8px;padding:10px 20px;border:2px solid #a87500;border-radius:20px;background:var(--yellow);color:var(--ink);cursor:pointer;font-weight:900}.admin-login-page{min-height:100svh;padding:24px;display:grid;place-items:center;background:var(--soft-blue)}.admin-login-card{width:min(440px,100%);padding:42px;border:3px solid var(--ink);border-radius:var(--radius-large);background:var(--canvas);box-shadow:0 8px 0 var(--ink);text-align:center}.admin-login-icon{width:64px;height:64px;margin:0 auto 14px;border:3px solid var(--ink);border-radius:20px;display:grid;place-items:center;background:var(--yellow);color:var(--ink);font-size:32px}.admin-eyebrow{margin:0;color:var(--ink);font-size:14px;font-weight:900;letter-spacing:.08em}.admin-login-card h1{margin:5px 0 28px;font-size:34px}.admin-login-form{display:grid;grid-gap:10px;gap:10px;text-align:left}.admin-login-form label,.license-generator label{font-weight:900}.admin-login-form input,.license-generator input{min-height:52px;padding:10px 14px;border:3px solid var(--ink);border-radius:14px;background:white;color:var(--ink);font-size:18px}.admin-login-form button,.license-actions button,.license-devices button,.license-generator button,.one-time-codes button{min-height:46px;padding:9px 14px;border:2px solid var(--ink);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--yellow);color:var(--ink);cursor:pointer;font-weight:900}.admin-login-form button{min-height:56px;margin-top:8px;border-width:3px;font-size:18px}.admin-form-error{margin:8px 0;padding:10px 13px;border:2px solid var(--coral);border-radius:12px;background:#fff2ef;color:#8d2e29;font-weight:800}.admin-shell{min-height:100svh;background:var(--canvas)}.admin-header{min-height:68px;padding:10px clamp(20px,4vw,56px);border-bottom:3px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--soft-blue)}.admin-brand,.admin-exit{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-weight:900;text-decoration:none}.admin-brand{font-size:20px}.admin-brand svg{color:var(--blue);font-size:26px}.admin-exit{min-height:40px;padding:7px 12px;border:2px solid var(--ink);border-radius:12px;background:var(--canvas)}.admin-main{width:min(1180px,100%);margin:0 auto;padding:40px 28px 64px}.admin-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.admin-page-heading h1{margin:4px 0 8px;font-size:clamp(34px,4vw,48px)}.admin-page-heading>div:first-child>p:last-child{margin:0;font-weight:700}.license-generator{display:grid;grid-template-columns:90px 132px;align-items:end;grid-gap:8px 10px;gap:8px 10px}.license-generator label{grid-column:1/-1}.license-generator button{min-height:52px;background:var(--blue)}.one-time-codes{margin-top:28px;padding:24px;border:3px solid var(--ink);border-radius:22px;display:grid;grid-template-columns:1fr auto;grid-gap:18px;gap:18px;background:var(--yellow);box-shadow:0 5px 0 var(--ink)}.one-time-codes h2,.one-time-codes p{margin:0}.one-time-codes p{margin-top:5px;font-weight:800}.one-time-codes ol{margin:0;padding:18px 22px 18px 48px;border:2px solid var(--ink);border-radius:16px;grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px 28px;gap:9px 28px;background:var(--canvas);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px;font-weight:900;letter-spacing:.06em}.admin-empty{margin-top:28px;padding:28px;border:2px dashed var(--ink);border-radius:18px;text-align:center;font-weight:800}.license-list{margin-top:28px;display:grid;grid-gap:18px;gap:18px}.license-card{border:3px solid var(--ink);border-radius:22px;overflow:hidden;background:white;box-shadow:0 4px 0 rgb(38 66 95/18%)}.license-card-main{padding:22px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(420px,1.6fr);align-items:center;grid-gap:26px;gap:26px}.license-code{margin:0 0 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:19px;font-weight:900;letter-spacing:.04em}.license-status{padding:5px 10px;border:2px solid var(--ink);border-radius:999px;display:inline-block;background:var(--soft-blue);font-size:13px;font-weight:900}.license-status--active{background:#dff5e8}.license-status--disabled,.license-status--expired{background:#ffe6e1}.license-status--unactivated{background:var(--yellow)}.license-facts{margin:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.license-facts div{padding-left:14px;border-left:2px solid rgb(38 66 95/25%)}.license-facts dt{font-size:13px;font-weight:800}.license-facts dd{margin:4px 0 0;font-weight:900}.license-devices{margin:0;padding:14px 22px;border-top:2px solid rgb(38 66 95/18%);display:grid;grid-gap:8px;gap:8px;background:var(--soft-blue);list-style:none}.license-devices li{display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:900}.license-devices small{margin-left:10px;color:rgb(38 66 95/72%);font-weight:700}.license-devices button{min-height:38px;padding:6px 10px;background:var(--canvas)}.license-actions{padding:14px 22px 18px;border-top:2px solid rgb(38 66 95/18%);display:flex;flex-wrap:wrap;gap:10px}.license-actions button{background:var(--canvas)}.license-actions .license-action-danger{margin-left:auto;background:var(--coral)}.license-actions .license-action-enable{margin-left:auto;background:var(--blue)}@media (hover:hover){.completion-actions a:hover,.game-exit:hover,.game-fullscreen:hover,.segmented-control button:hover{background:var(--yellow)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.completion-actions button:hover,.game-button:not(:disabled):hover,.start-challenge-button:hover{transform:translateY(-2px)}}@media (max-width:1280px) and (min-width:901px){.game-header{padding-inline:16px;gap:12px}.game-brand{gap:6px}.game-brand img{width:96px;height:96px;margin:0 -12px 0 -10px;transform:translateY(4px)}.game-brand p{font-size:44px}.game-meta{gap:10px}.game-meta p{min-height:64px;padding:8px 12px;font-size:17px}.game-meta .game-progress{min-width:190px}.game-meta .game-difficulty{min-width:156px}.game-progress strong{font-size:42px}.game-exit,.game-fullscreen{min-width:104px;padding-inline:9px;font-size:14px}}@media (min-width:1600px) and (min-height:900px){.game-page{grid-template-rows:180px minmax(0,1fr)}.game-header{min-height:180px;padding:20px 40px}.game-brand img{width:205px;height:205px;margin-right:-36px;margin-left:-45px;transform:translateY(10px)}.game-brand{height:140px}.game-brand p{font-size:86px}.game-meta p{min-height:100px;padding:14px 32px;border-radius:30px;font-size:32px}.game-progress strong{font-size:64px}.game-difficulty svg{font-size:36px}.game-body{padding:30px 40px 58px;grid-template-rows:minmax(0,1fr) 162px;gap:16px}.equation-part,.puzzle-equation{gap:48px}.puzzle-equation{transform:translateY(-8px)}.glyph-card{width:clamp(220px,min(37.5vh,22vw),404px);font-size:318px}.equation-operator{font-size:136px}.game-controls{min-height:162px}}@media (max-width:900px){.setup-page{padding-inline:20px}.game-page{height:auto;min-height:100svh;overflow:visible;grid-template-rows:auto minmax(0,1fr)}.game-header{min-height:0;padding-block:12px;grid-template-columns:1fr;gap:10px}.game-header-left{display:flex;align-items:center;gap:12px}.game-window-toolbar{width:min(320px,100%);position:static;justify-self:center;grid-template-columns:1fr 1fr;transform:none}.game-brand img{width:64px;height:64px;margin:0;transform:none}.game-brand{height:auto}.game-meta{grid-column:auto;justify-content:center}.game-brand p{font-size:24px}.game-body{min-height:650px;padding-inline:16px}.glyph-card{width:clamp(92px,18vw,142px);font-size:clamp(58px,12vw,96px)}.answer-details{grid-template-columns:1fr;gap:4px;text-align:center}.answer-example,.answer-pinyin{justify-content:center}.admin-page-heading{align-items:stretch;flex-direction:column}.license-generator{width:min(320px,100%)}.license-card-main{grid-template-columns:1fr}}@media (max-width:650px){.setup-license{min-height:0;flex-wrap:wrap}.setup-brand{align-items:flex-start;padding-right:0}.setup-brand img{width:64px;height:64px}.segmented-control,.segmented-control--single{grid-template-columns:1fr}.setup-field{display:block}.setup-field-label{width:auto;margin-bottom:8px}.last-round-button,.start-challenge-button{margin-left:0}.game-header-left{flex-wrap:wrap}.game-meta{align-items:stretch;flex-direction:column}.game-meta p{min-height:52px;justify-content:center}.game-controls{width:100%;grid-template-columns:1fr}.game-body{min-height:900px;grid-template-rows:minmax(0,1fr) auto}.completion-actions{grid-template-columns:1fr}.admin-login-card{padding:30px 22px}.admin-header{align-items:flex-start;flex-direction:column}.admin-main{padding-inline:18px}.one-time-codes{grid-template-columns:1fr}.one-time-codes ol{grid-column:1}.license-facts,.one-time-codes ol{grid-template-columns:1fr}.license-actions .license-action-danger,.license-actions .license-action-enable{margin-left:0}}@media (max-height:700px) and (min-width:901px){.game-page{grid-template-rows:104px minmax(0,1fr)}.game-page[data-fullscreen=true]{grid-template-rows:92px minmax(0,1fr)}.game-header{min-height:104px;padding-block:8px}.game-page[data-fullscreen=true] .game-header{min-height:92px}.game-window-toolbar{gap:4px}.game-exit,.game-fullscreen{min-height:40px}.game-brand img{width:62px;height:62px;margin:0;transform:none}.game-brand{height:auto}.game-brand p{font-size:30px}.game-meta p{min-height:54px;padding-block:6px}.game-progress strong{font-size:36px}.game-body{grid-template-rows:minmax(0,1fr) 92px;padding-block:8px 12px}.classroom-puzzle{grid-template-rows:minmax(0,1fr) minmax(76px,auto);gap:4px}.glyph-card{width:clamp(170px,30vh,220px);font-size:clamp(110px,22vh,164px)}.puzzle-message{min-height:76px}.thinking-prompt{font-size:28px}.hint-message{padding:10px 20px;font-size:30px}.hint-message span{font-size:22px}.game-controls{min-height:92px}.game-button{gap:12px;font-size:clamp(28px,2.2vw,34px)}}@media (min-width:901px){.game-page[data-fullscreen=false] .game-header{padding-right:clamp(148px,8vw,168px);grid-template-columns:minmax(0,1fr) auto}}@media (min-width:901px) and (max-width:1500px){.game-page[data-fullscreen=false] .game-brand{gap:6px}.game-page[data-fullscreen=false] .game-brand img{width:96px;height:96px;margin:0 -12px 0 -10px;transform:translateY(4px)}.game-page[data-fullscreen=false] .game-brand p{font-size:44px}.game-page[data-fullscreen=false] .game-meta{gap:10px}.game-page[data-fullscreen=false] .game-meta p{min-height:64px;padding:8px 12px;font-size:17px}.game-page[data-fullscreen=false] .game-meta .game-progress{min-width:190px}.game-page[data-fullscreen=false] .game-meta .game-difficulty{min-width:156px}.game-page[data-fullscreen=false] .game-progress strong{font-size:42px}}@media (prefers-reduced-motion:no-preference){.completion-actions button,.game-button,.start-challenge-button{transition:transform .14s ease}.answer-details,.completion-card,.glyph-card--revealed,.hint-message{animation:gentle-arrival .18s ease-out}}@media (prefers-reduced-motion:reduce){.component-piece{transition-duration:1ms}}@keyframes gentle-arrival{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.feedback-options{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.feedback-options label{position:relative;cursor:pointer}.feedback-options input{position:absolute;opacity:0;pointer-events:none}.feedback-options span{min-height:42px;padding:8px 10px;border:2px solid var(--blue);border-radius:12px;display:grid;place-items:center;background:var(--soft-blue);font-weight:800;text-align:center}.feedback-options input:checked+span{border-color:var(--blue);background:var(--yellow)}.feedback-options input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px}.feedback-message-label{margin-top:14px;display:block;font-weight:900}.feedback-popover textarea{width:100%;margin-top:6px;padding:10px 12px;border:2px solid rgb(78 156 245/58%);border-radius:12px;resize:vertical;background:white;color:var(--ink);font:inherit;line-height:1.5}.feedback-character-count{margin:3px 0 0;text-align:right;font-size:12px;font-weight:700}.feedback-error{margin:8px 0 0;color:#8d2e29;font-weight:800}.feedback-submit,.feedback-success button{width:100%;min-height:46px;margin-top:12px;border:2px solid #a87500;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--yellow);color:var(--ink);cursor:pointer;font-weight:900}.feedback-success{padding-top:8px;text-align:center}.feedback-success>svg{color:#2c8b57;font-size:46px}.feedback-success h2{margin-top:8px}.admin-brand-group,.admin-brand-group nav{display:flex;align-items:center;gap:18px}.admin-brand-group nav{gap:6px}.admin-brand-group nav a{min-height:36px;padding:6px 9px;border-radius:10px;display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-size:14px;font-weight:800;text-decoration:none}.admin-brand-group nav a:hover{background:var(--canvas)}.admin-primary-action,.component-editor-heading button,.question-editor-actions button,.question-preview-heading button{min-height:44px;padding:8px 13px;border:2px solid var(--ink);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--yellow);color:var(--ink);cursor:pointer;font-weight:900;text-decoration:none}.question-admin-layout{margin-top:28px;display:grid;grid-template-columns:280px minmax(0,1fr);align-items:start;grid-gap:22px;gap:22px}.question-editor-panel,.question-list-panel{border:2px solid var(--ink);border-radius:20px;background:white}.question-list-panel{position:-webkit-sticky;position:sticky;top:18px;overflow:hidden}.question-filters{padding:14px;display:grid;grid-gap:9px;gap:9px;background:var(--soft-blue)}.component-editor-list label,.feedback-admin-filters label,.question-basic-fields label,.question-filters label{display:grid;grid-gap:5px;gap:5px;font-size:13px;font-weight:900}.component-editor-list input,.feedback-admin-filters input,.feedback-admin-filters select,.question-basic-fields input,.question-basic-fields select,.question-basic-fields textarea,.question-filters select{width:100%;min-height:42px;padding:7px 9px;border:2px solid rgb(38 66 95/45%);border-radius:10px;background:white;color:var(--ink);font:inherit}.question-list-panel .admin-empty{margin:14px;padding:16px}.question-list{max-height:68vh;margin:0;padding:8px;display:grid;grid-gap:6px;gap:6px;overflow-y:auto;list-style:none}.question-list button{width:100%;padding:10px;border:2px solid transparent;border-radius:12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:7px;gap:7px;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.question-list button[aria-current=true]{border-color:var(--ink);background:var(--yellow)}.question-list button strong{font-size:25px}.question-list button small{padding:3px 6px;border-radius:999px;background:var(--soft-blue);font-weight:800}.question-editor-panel{padding:20px}.question-editor-status{margin-bottom:16px;font-size:14px}.question-editor-status strong{padding:4px 8px;border-radius:999px;background:var(--yellow)}.question-basic-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.question-wide-field{grid-column:1/-1}.question-basic-fields textarea{resize:vertical}.question-basic-fields small{color:#8d2e29}.component-editor-heading,.question-preview-heading{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:14px}.component-editor-heading h2,.question-preview-heading h2{margin:0;font-size:21px}.component-editor-heading button{min-height:38px;background:var(--soft-blue)}.component-editor-list{margin-top:12px;display:grid;grid-gap:12px;gap:12px}.component-editor-list fieldset{margin:0;padding:14px;border:2px solid rgb(38 66 95/28%);border-radius:14px}.component-editor-list legend{padding-inline:6px;font-weight:900}.component-transform-grid{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.component-transform-grid>div{padding:10px;border-radius:10px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:7px;gap:7px;background:var(--soft-blue)}.component-transform-grid strong{grid-column:1/-1}.component-remove{min-height:36px;margin-top:10px;padding:6px 9px;border:0;display:inline-flex;align-items:center;gap:6px;background:transparent;color:#8d2e29;cursor:pointer;font-weight:800}.question-preview{margin-top:20px;padding:14px;border:2px solid var(--blue);border-radius:16px;background:var(--soft-blue)}.question-preview-heading{margin-top:0}.question-preview-heading h2{display:flex;align-items:center;gap:7px}.question-preview-heading>div{display:flex;flex-wrap:wrap;gap:6px}.question-preview-heading button{min-height:34px;padding:5px 8px;border-width:1px;background:white;font-size:12px}.question-preview-stage{height:420px;margin-top:12px;overflow:auto;border-radius:12px;background:var(--canvas)}.question-preview-stage .classroom-puzzle{min-width:720px;height:100%}.question-preview-stage .glyph-card{width:120px;font-size:76px}.question-preview-stage .answer-details{width:min(680px,94%)}.question-editor-actions{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}.question-editor-actions button:nth-child(2){background:var(--blue)}.question-editor-actions button:last-child{margin-left:auto;background:var(--coral)}.admin-form-success{margin:8px 0;padding:10px 13px;border:2px solid #3d9565;border-radius:12px;background:#e6f7ed;color:#246540;font-weight:800}.feedback-summary{margin-top:28px;display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px}.feedback-summary article{min-height:92px;padding:13px;border:2px solid var(--ink);border-radius:15px;display:flex;flex-direction:column;justify-content:space-between;background:var(--soft-blue)}.feedback-summary span{font-size:13px;font-weight:800}.feedback-summary strong{font-size:28px}.feedback-admin-filters{margin-top:18px;padding:14px;border:2px solid rgb(38 66 95/25%);border-radius:14px;display:grid;grid-template-columns:auto repeat(3,minmax(150px,1fr));align-items:end;grid-gap:10px;gap:10px;background:white}.feedback-admin-filters>svg{align-self:center;font-size:24px}.feedback-admin-list{margin:18px 0 0;padding:0;display:grid;grid-gap:10px;gap:10px;list-style:none}.feedback-admin-list li{padding:16px;border:2px solid rgb(38 66 95/25%);border-radius:14px;display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;background:white}.feedback-admin-list li>div{display:flex;flex-wrap:wrap;gap:6px}.feedback-admin-list li>div span{padding:4px 8px;border-radius:999px;background:var(--yellow);font-size:13px;font-weight:800}.feedback-admin-list time{font-size:13px;font-weight:700}.feedback-admin-list p{margin:0;grid-column:1/-1;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}@media (max-width:1000px){.question-admin-layout{grid-template-columns:1fr}.question-list-panel{position:static}.question-list{max-height:280px}.feedback-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.admin-brand-group{align-items:flex-start;flex-direction:column;gap:7px}.component-transform-grid,.component-transform-grid>div,.question-basic-fields{grid-template-columns:1fr}.question-preview-heading{align-items:flex-start;flex-direction:column}.feedback-admin-filters{grid-template-columns:1fr}.feedback-admin-filters>svg{display:none}.feedback-summary{grid-template-columns:1fr}}