@import"https://fonts.googleapis.com/css2?family=Patrick+Hand+SC&family=Kalam:wght@400;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--ink:#343333;--red:#FF4F4F;--yellow:#FFBA49;--teal:#20A39E;--purple:#7D80DA;--paper:#FBFAF6;--paper2:#F3F0E6}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--ink);color:var(--paper);font-family:Kalam,cursive;min-height:100vh}.app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:2px dashed rgba(243,240,230,.2)}.topbar .brand{display:flex;align-items:center;gap:8px;font-family:Patrick Hand SC,cursive;font-size:16px;color:var(--yellow);letter-spacing:1px}.topbar .brand .logo{width:26px;height:26px;border:2.5px solid var(--yellow);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--yellow);font-family:Patrick Hand SC,cursive;font-size:16px}.topbar .level{font-family:Patrick Hand SC,cursive;font-size:14px;color:var(--paper);opacity:.7}.topbar .level .logout{margin-left:10px;cursor:pointer;opacity:.7;font-size:12px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.title{padding:8px 14px 0}.title h1{margin:0;font-family:Patrick Hand SC,cursive;font-size:22px;color:var(--yellow);letter-spacing:1px;font-weight:400}.title .sub{font-family:Kalam,cursive;font-size:12px;color:var(--paper);opacity:.7}.content{padding:12px 14px 24px;flex:1}.neon{border:2.5px solid var(--yellow);border-radius:12px;padding:10px 14px;background:var(--ink);box-shadow:4px 4px 0 var(--yellow);font-family:Patrick Hand SC,cursive;color:var(--yellow);font-size:16px;text-align:center;letter-spacing:1px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .05s ease,box-shadow .05s ease;display:inline-block}.neon:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--yellow)}.neon.big{padding:14px 18px;font-size:22px}.neon.full{width:100%;display:block}.neon.red{border-color:var(--red);color:var(--red);box-shadow:4px 4px 0 var(--red)}.neon.red:active{box-shadow:2px 2px 0 var(--red)}.neon.teal{border-color:var(--teal);color:var(--teal);box-shadow:4px 4px 0 var(--teal)}.neon.teal:active{box-shadow:2px 2px 0 var(--teal)}.neon.purple{border-color:var(--purple);color:var(--purple);box-shadow:4px 4px 0 var(--purple)}.neon.purple:active{box-shadow:2px 2px 0 var(--purple)}.neon.disabled{opacity:.4;cursor:not-allowed}.neon.disabled:active{transform:none;box-shadow:4px 4px 0 currentColor}.label{font-family:Kalam,cursive;font-size:12px;color:var(--paper);opacity:.6;margin-bottom:4px}.input{height:38px;border:2px solid var(--yellow);border-radius:8px;padding:0 10px;display:flex;align-items:center;font-family:Kalam,cursive;color:var(--paper);background:transparent;outline:none;width:100%;font-size:15px}.input:focus{border-color:var(--red)}.chiprow{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.chip{padding:2px 9px;border-radius:4px;font-family:Patrick Hand SC,cursive;font-size:12px;background:transparent;color:var(--paper);border:1.5px solid rgba(243,240,230,.33);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip.active{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.chip.locked{opacity:.4;cursor:not-allowed}.modepicker{display:flex;align-items:center;gap:8px;margin-bottom:12px}.modepicker .lbl{font-family:Patrick Hand SC,cursive;font-size:12px;color:var(--paper);opacity:.7;letter-spacing:1px;flex-shrink:0}.modepicker .opts{display:flex;flex:1;gap:6px}.modeopt{flex:1;padding:8px 10px;border:2.5px dashed currentColor;border-radius:8px;text-align:center;font-family:Patrick Hand SC,cursive;font-size:15px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.85}.modeopt.pinyin{color:var(--yellow)}.modeopt.hanzi{color:var(--purple)}.modeopt.active.pinyin{background:#ffba4921;border-style:solid;box-shadow:3px 3px #ffba4966;opacity:1}.modeopt.active.hanzi{background:#7d80da21;border-style:solid;box-shadow:3px 3px #7d80da66;opacity:1}.blockhead,.blockrow{display:grid;grid-template-columns:40px 1fr 60px 60px;gap:6px;padding:7px 4px;align-items:center}.blockhead{border-bottom:1.5px dashed rgba(243,240,230,.2);font-family:Patrick Hand SC,cursive;font-size:11px;color:var(--paper);opacity:.7;letter-spacing:1px}.blockrow{border-bottom:1px dashed rgba(243,240,230,.13);cursor:pointer}.blockrow.locked{opacity:.4;cursor:not-allowed}.blockrow .num{font-family:Patrick Hand SC,cursive;font-size:16px;color:var(--paper);opacity:.7}.blockrow .name{font-family:Patrick Hand SC,cursive;font-size:16px;color:var(--paper)}.blockrow .pscore{text-align:right;font-family:Patrick Hand SC,cursive;font-size:18px;color:var(--yellow)}.blockrow .hscore{text-align:right;font-family:Patrick Hand SC,cursive;font-size:18px;color:var(--purple)}.blockrow .empty{color:#f3f0e666}.hud{display:flex;align-items:stretch;gap:10px}.hud .box{flex:1;border:2.5px solid var(--yellow);border-radius:10px;padding:8px}.hud .box .lbl{font-family:Kalam,cursive;font-size:10px;color:var(--paper);opacity:.7}.hud .box .val{font-family:Patrick Hand SC,cursive;font-size:36px;line-height:1}.hud .box.time{border-color:var(--yellow)}.hud .box.time .val{color:var(--yellow)}.hud .box.score{border-color:var(--red)}.hud .box.score .val{color:var(--red)}.hud .box.combo{flex:0 0 64px;border-color:var(--teal);text-align:center}.hud .box.combo .lbl{font-size:9px}.hud .box.combo .val{font-size:26px;color:var(--teal)}.wordpanel{margin-top:14px;padding:18px;border-radius:12px;text-align:center;position:relative;border:3px dashed var(--yellow)}.wordpanel.hanzi{border-color:var(--purple)}.wordpanel .ask{font-family:Patrick Hand SC,cursive;font-size:11px;color:var(--paper);opacity:.5}.wordpanel .word-pinyin{font-family:Kalam,cursive;font-size:44px;color:var(--paper);font-weight:700;line-height:1.05;margin-top:6px}.wordpanel .word-hanzi{font-family:serif;font-size:76px;color:var(--paper);font-weight:700;line-height:1.05;margin-top:6px;letter-spacing:8px}.wordpanel .audio{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;border:2px solid var(--yellow);color:var(--yellow);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;background:transparent}.wordpanel.hanzi .audio{border-color:var(--purple);color:var(--purple)}.wordpanel .modetag{position:absolute;left:12px;top:12px;font-family:Patrick Hand SC,cursive;font-size:10px;color:var(--yellow);letter-spacing:1px}.wordpanel.hanzi .modetag{color:var(--purple)}.opts-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.opt{border-radius:10px;padding:12px 10px;background:var(--ink);font-family:Patrick Hand SC,cursive;font-size:18px;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:2.5px solid var(--yellow);color:var(--yellow);box-shadow:3px 3px #ffba4966}.opt[data-c="0"]{border-color:var(--red);color:var(--red);box-shadow:3px 3px #ff4f4f66}.opt[data-c="1"]{border-color:var(--yellow);color:var(--yellow);box-shadow:3px 3px #ffba4966}.opt[data-c="2"]{border-color:var(--teal);color:var(--teal);box-shadow:3px 3px #20a39e66}.opt[data-c="3"]{border-color:var(--purple);color:var(--purple);box-shadow:3px 3px #7d80da66}.opt[data-c="4"]{border-color:var(--red);color:var(--red);box-shadow:3px 3px #ff4f4f66}.opt[data-c="5"]{border-color:var(--yellow);color:var(--yellow);box-shadow:3px 3px #ffba4966}.opt:active{transform:translate(2px,2px);box-shadow:1px 1px 0 currentColor}.opt .num{font-size:11px;opacity:.6;margin-right:6px}.opt.right{background:#20a39e2e}.opt.wrong{background:#ff4f4f38}.opt.locked{pointer-events:none}.miss{text-align:center;margin-top:10px}.miss .big{font-family:Patrick Hand SC,cursive;font-size:56px;color:var(--red);letter-spacing:3px;line-height:1;text-shadow:3px 3px 0 rgba(255,79,79,.2)}.miss .sub{font-family:Kalam,cursive;font-size:12px;color:var(--paper);opacity:.7;margin-top:4px}.answerbox{margin-top:18px;padding:14px;border:2px dashed rgba(243,240,230,.33);border-radius:10px}.answerbox .lbl{font-family:Kalam,cursive;font-size:11px;color:var(--paper);opacity:.6}.answerbox .ans{font-family:Kalam,cursive;font-size:28px;color:var(--yellow);font-weight:700;margin-top:2px}.answerbox .ans .es{color:var(--paper)}.countdownrow{margin-top:16px;display:flex;align-items:center;gap:12px}.countdownrow .circle{width:70px;height:70px;border:3px solid var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Patrick Hand SC,cursive;font-size:36px;color:var(--red)}.countdownrow .barwrap{flex:1}.countdownrow .bar{height:12px;background:#f3f0e621;border-radius:6px;margin-top:6px;overflow:hidden;border:1.5px solid rgba(243,240,230,.33)}.countdownrow .bar>i{display:block;height:100%;background:repeating-linear-gradient(45deg,var(--red),var(--red) 6px,rgba(255,79,79,.7) 6px,rgba(255,79,79,.7) 12px)}.podium{display:flex;align-items:flex-end;gap:6px;justify-content:center;margin:8px 0 14px}.podium .col{text-align:center;flex:1}.podium .col .name{font-family:Patrick Hand SC,cursive;font-size:14px;color:var(--paper);margin-bottom:2px}.podium .col .score{font-family:Patrick Hand SC,cursive;font-size:13px;margin-bottom:4px}.podium .col .pillar{border:2.5px solid;border-radius:8px;padding:6px;background:var(--ink);display:flex;align-items:center;justify-content:center;font-family:Patrick Hand SC,cursive;font-size:36px}.ranklist{display:flex;flex-direction:column;gap:3px}.rankrow{display:grid;grid-template-columns:24px 1fr 90px 60px;gap:8px;padding:6px 8px;border-radius:6px;font-family:Kalam,cursive;font-size:12px;border:1.5px dashed rgba(243,240,230,.2);color:var(--paper);align-items:center}.rankrow.you{background:#ff4f4f24;border:1.5px solid var(--red);font-weight:700}.rankrow .rk{color:var(--yellow);font-family:Patrick Hand SC,cursive;font-size:14px}.rankrow .school{opacity:.6;font-size:11px}.rankrow .sc{text-align:right;font-family:Patrick Hand SC,cursive;font-size:14px;color:var(--yellow)}.searchrow{display:flex;gap:6px;margin-bottom:10px}.student-card{padding:12px;border:2.5px solid var(--red);border-radius:10px;display:flex;align-items:center;gap:12px}.student-card .avatar{width:50px;height:50px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;font-family:Patrick Hand SC,cursive;font-size:22px;color:var(--paper)}.student-card .info{flex:1}.student-card .name{font-family:Patrick Hand SC,cursive;font-size:18px;color:var(--paper)}.student-card .meta{font-family:Kalam,cursive;font-size:12px;color:var(--paper);opacity:.7}.student-card .total{text-align:right}.student-card .total .v{font-family:Patrick Hand SC,cursive;font-size:22px;color:var(--yellow);line-height:1}.student-card .total .l{font-family:Kalam,cursive;font-size:10px;color:var(--paper);opacity:.6}.reccol{display:grid;grid-template-columns:1fr 70px 70px 90px;gap:6px;padding:6px 4px;border-bottom:1px dashed rgba(243,240,230,.13);align-items:center;font-family:Kalam,cursive;font-size:13px;color:var(--paper)}.reccol.head{border-bottom:1.5px dashed rgba(243,240,230,.2);font-family:Patrick Hand SC,cursive;font-size:11px;opacity:.6;color:var(--paper)}.reccol .py{text-align:right;font-family:Patrick Hand SC,cursive;font-size:14px;color:var(--yellow)}.reccol .hz{text-align:right;font-family:Patrick Hand SC,cursive;font-size:14px;color:var(--purple)}.reccol .last{text-align:right;font-size:11px;opacity:.6}.reccol .empty{color:#f3f0e666}.live-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.livecard{padding:8px 10px;border-radius:8px;border:2px solid rgba(243,240,230,.4)}.livecard.top{border-color:var(--yellow);background:#ffba4912}.livecard.idle{opacity:.5;border-style:dashed}.livecard .top-row{display:flex;align-items:center;justify-content:space-between}.livecard .name{font-family:Patrick Hand SC,cursive;font-size:13px;color:var(--paper);line-height:1.1}.livecard .mode{font-family:Patrick Hand SC,cursive;font-size:11px;color:var(--yellow)}.livecard .mode.h{color:var(--purple)}.livecard .row2{display:flex;align-items:baseline;gap:6px;margin-top:2px}.livecard .sc{font-family:Patrick Hand SC,cursive;font-size:28px;color:var(--paper);line-height:1}.livecard.top .sc{color:var(--yellow)}.livecard .where{font-family:Kalam,cursive;font-size:11px;color:var(--paper);opacity:.6}.livecard .timebar{height:4px;background:#f3f0e621;border-radius:2px;margin-top:6px;overflow:hidden}.livecard .timebar>i{display:block;height:100%;background:var(--red)}.livecard.top .timebar>i{background:var(--yellow)}.nav{display:flex;gap:6px;padding:10px 14px;flex-wrap:wrap;border-top:2px dashed rgba(243,240,230,.2)}.nav .neon{padding:6px 10px;font-size:13px;box-shadow:2px 2px 0 currentColor}.nav .neon:active{box-shadow:1px 1px 0 currentColor}.hidden{display:none!important}button,a{font:inherit}button{border:0}a{color:inherit;text-decoration:none}button.blockrow{width:100%;background:transparent;color:inherit;text-align:left}.summary{text-align:center;padding-top:20px}.summary .big{font-family:Patrick Hand SC,cursive;font-size:56px;letter-spacing:3px}.summary .big.win{color:var(--yellow)}.summary .big.norm{color:var(--teal)}.summary .stats{margin-top:12px;display:flex;justify-content:center;gap:18px}.summary .stat{text-align:center}.summary .stat .v{font-family:Patrick Hand SC,cursive;font-size:28px;color:var(--paper)}.summary .stat .l{font-family:Kalam,cursive;font-size:11px;color:var(--paper);opacity:.6}.summary .actions{margin-top:22px;display:flex;gap:8px;justify-content:center}.control-bar{display:flex;gap:6px;margin-bottom:10px;align-items:stretch}.live-status{flex:1;padding:8px 12px;border:2px solid var(--red);border-radius:8px;display:flex;align-items:center;gap:8px}.live-status .dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.live-status .lbl{font-family:Patrick Hand SC,cursive;font-size:13px;color:var(--red)}.live-status .meta{font-family:Kalam,cursive;font-size:12px;color:var(--paper);opacity:.7}.footer-hint{font-family:Kalam,cursive;font-size:11px;color:var(--paper);opacity:.5;margin-top:12px;text-align:center}@media(min-width:1024px){.app-frame{display:grid;grid-template-columns:minmax(260px,340px) 520px minmax(260px,340px);justify-content:center;align-items:start;gap:24px;min-height:100vh;padding:0 24px}.app-frame.focus-game{grid-template-columns:520px}.app-frame.focus-game .side-panel{display:none}.app{width:520px}.side-panel{position:sticky;top:18px;padding-top:18px;display:flex;flex-direction:column;gap:12px}.side-card{border:2px dashed rgba(243,240,230,.24);border-radius:8px;padding:12px;background:#fbfaf606}.side-card h2{margin:0 0 8px;font-family:Patrick Hand SC,cursive;font-weight:400;font-size:18px;color:var(--yellow);letter-spacing:1px}.side-card p,.side-card li{font-size:12px;color:var(--paper);opacity:.72;margin:0}}@media(max-width:1023px){.side-panel{display:none}}.chart-card{margin-top:12px;border:2px dashed rgba(243,240,230,.24);border-radius:10px;padding:12px}.progress-tabs{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.small-muted{color:var(--paper);opacity:.66;font-size:12px}.access-card{margin:10px 0 14px;padding:12px;border:2px solid var(--teal);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#20a39e14}.access-title,.admin-section-title{font-family:Patrick Hand SC,cursive;color:var(--teal);font-size:16px;letter-spacing:1px}.access-copy{font-size:12px;color:var(--paper);opacity:.72}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.admin-metric{border:2px solid var(--yellow);border-radius:8px;padding:8px}.admin-metric.teal{border-color:var(--teal)}.admin-metric.red{border-color:var(--red)}.admin-metric.purple{border-color:var(--purple)}.admin-metric span{display:block;font-family:Patrick Hand SC,cursive;font-size:26px;color:var(--yellow);line-height:1}.admin-metric.teal span{color:var(--teal)}.admin-metric.red span{color:var(--red)}.admin-metric.purple span{color:var(--purple)}.admin-metric small{display:block;margin-top:4px;font-size:10px;color:var(--paper);opacity:.65}.admin-create{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;padding:12px;border:2px dashed rgba(243,240,230,.24);border-radius:8px}.admin-create .admin-section-title,.admin-create .admin-check{grid-column:1 / -1}.admin-create .neon{grid-column:2}.admin-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--paper);opacity:.8}.admin-check input{accent-color:var(--teal)}.admin-table{display:flex;flex-direction:column;gap:8px}.admin-row{display:grid;grid-template-columns:minmax(0,1fr) 54px auto;gap:8px;align-items:center;padding:10px;border:1.5px dashed rgba(243,240,230,.24);border-radius:8px}.admin-name{font-family:Patrick Hand SC,cursive;font-size:17px;color:var(--paper);line-height:1.1}.admin-meta{font-size:11px;color:var(--paper);opacity:.62;overflow-wrap:anywhere}.admin-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.admin-tags span{border:1px solid rgba(243,240,230,.28);border-radius:4px;padding:1px 5px;font-family:Patrick Hand SC,cursive;font-size:10px;color:var(--yellow)}.admin-score{text-align:right;font-family:Patrick Hand SC,cursive;font-size:22px;color:var(--yellow)}.admin-actions{display:flex;flex-direction:column;gap:5px}.admin-actions.wide{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.admin-actions button{border:1.5px solid var(--paper);border-radius:5px;background:transparent;color:var(--paper);font-family:Patrick Hand SC,cursive;font-size:11px;padding:3px 7px;cursor:pointer}.admin-actions button:disabled{opacity:.35;cursor:not-allowed}.admin-stat-row{display:grid;grid-template-columns:70px 1fr 1fr 1fr 70px;gap:8px;padding:8px;border-bottom:1px dashed rgba(243,240,230,.18);align-items:center;font-size:12px}.admin-stat-row span:first-child{font-family:Patrick Hand SC,cursive;font-size:18px;color:var(--yellow)}@media(max-width:560px){.access-card,.admin-row{grid-template-columns:1fr}.access-card{flex-direction:column;align-items:stretch}.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-create{grid-template-columns:1fr}.admin-create .neon{grid-column:1}.admin-score{text-align:left}.admin-actions{flex-direction:row;flex-wrap:wrap}.admin-stat-row{grid-template-columns:1fr 1fr}}.neon:focus-visible,.chip:focus-visible,.opt:focus-visible,.blockrow:focus-visible,.modeopt:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.input:focus-visible{outline:2px solid var(--teal);outline-offset:1px}a:focus-visible{outline:2px dotted var(--paper);outline-offset:2px}.level-stage{position:relative;width:100%;height:140px;margin:4px 0 12px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.05);pointer-events:none}@media(min-width:1024px){.level-stage{height:200px}}.level-stage canvas{display:block;width:100%!important;height:100%!important}.level-stage .stage-overlay{position:absolute;left:10px;bottom:8px;display:flex;align-items:center;gap:8px;background:#00000094;border:1px dashed currentColor;padding:4px 10px;border-radius:8px;font-family:Patrick Hand SC,cursive;letter-spacing:1px;pointer-events:none}.level-stage .stage-overlay .hanzi{font-size:20px;line-height:1}.level-stage .stage-overlay .lbl{font-size:12px;text-transform:uppercase;opacity:.9}.level-stage .stage-overlay .rank{font-size:11px;opacity:.85;letter-spacing:2px}.app-frame{position:relative;z-index:1}.back-button{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1.5px dashed rgba(243,240,230,.35);border-radius:8px;padding:6px 12px;color:var(--paper);opacity:.85;font-family:Patrick Hand SC,cursive;font-size:13px;letter-spacing:1px;cursor:pointer;margin-bottom:12px;transition:opacity .14s ease,border-color .14s ease,transform .1s ease}.back-button:hover{opacity:1;border-color:var(--yellow);color:var(--yellow)}.back-button:active{transform:translate(-2px)}.back-button.danger{border-color:var(--red);color:var(--red);opacity:1}.back-button.danger:hover{background:#ff4f4f1f;border-color:var(--red);color:var(--red)}@keyframes routeFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.route-fade{animation:routeFadeIn .22s ease-out;will-change:opacity,transform}@media(prefers-reduced-motion:reduce){.route-fade{animation:none}}
