.play-root,.play-dialog{--background:#f7f9fc;--foreground:#25314a;--card:#fff;--primary:#376bdc;--muted-foreground:#5e6b80;--border:#dfe6ef;--color-input:var(--border);--color-muted:#eef2f7;--color-accent:#e8effc;--color-primary-foreground:#fff;--play-good:#1c7651;--play-wrong:#b33d45;--play-scale:1;color:var(--foreground);background:var(--background)}.play-root[data-play-theme=dark],.play-dialog[data-play-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#172031;--foreground:#edf2fb;--card:#202c40;--muted-foreground:#b6c3d7;--border:#41516a;--color-muted:#2b3950;--color-accent:#2e4262;--primary:#8fb5ff;--color-primary-foreground:#15243d;--play-good:#8bdfb0;--play-wrong:#ffabb1}.play-root[data-play-theme=readable],.play-dialog[data-play-theme=readable]{--background:#fff;--foreground:#14243c;--muted-foreground:#34455c;--border:#68778b;--primary:#164cb3}.play-root[data-play-accent=green],.play-dialog[data-play-accent=green]{--primary:#26745f;--color-accent:#e5f2ed}.play-root[data-play-accent=violet],.play-dialog[data-play-accent=violet]{--primary:#7152a2;--color-accent:#f0eaf8}.play-root[data-play-theme=dark][data-play-accent=green],.play-dialog[data-play-theme=dark][data-play-accent=green]{--primary:#8ed5bb;--color-accent:#294b45}.play-root[data-play-theme=dark][data-play-accent=violet],.play-dialog[data-play-theme=dark][data-play-accent=violet]{--primary:#cab0f5;--color-accent:#43395b}.play-root{min-height:100svh;font-size:calc(14px * var(--play-scale))}.play-header{justify-content:space-between;align-items:center;gap:16px;max-width:1280px;min-height:72px;margin:0 auto;padding:16px 32px;display:flex}.play-back,.play-library{min-height:40px;color:var(--muted-foreground);align-items:center;gap:8px;font-size:13px;display:inline-flex}.play-back:hover,.play-library:hover{color:var(--primary)}.play-header svg{width:18px;height:18px}.play-header-title{text-align:center;font-size:13px;font-weight:500}.play-main{width:min(100% - 48px,1040px);margin:0 auto;padding:24px 0 64px}.play-lobby{text-align:center;flex-direction:column;align-items:center;gap:24px;padding:24px 0 40px;display:flex}.play-lobby h1{letter-spacing:-1.2px;font-size:clamp(28px,4vw,42px);line-height:1.2}.play-lobby-description{color:var(--muted-foreground);max-width:560px;font-size:calc(15px * var(--play-scale));line-height:1.7}.play-preview{border:1px solid var(--border);background:var(--card);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:min(100%,640px);min-height:200px;padding:32px;display:flex}.play-preview-hanzi{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:calc(56px * var(--play-scale));color:var(--foreground);line-height:1.5}.play-preview-line{color:var(--muted-foreground);font-size:15px}.play-start-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.play-start-row [data-slot=button]{min-height:48px;padding-inline:32px}.play-round-summary{color:var(--muted-foreground);flex-wrap:wrap;justify-content:center;gap:8px 16px;font-size:13px;display:flex}.play-ai-note{color:var(--muted-foreground);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.play-ai-note svg{width:14px;height:14px;color:var(--primary)}.play-ai-note>span{flex-basis:100%}.play-muted{color:var(--muted-foreground);font-size:13px;line-height:1.7}.play-muted svg{width:14px;height:14px;margin-inline-end:4px;display:inline}.play-muted a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.play-error{width:100%;max-width:640px}.play-settings{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden}.play-settings-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 24px 16px;display:flex}.play-settings-heading h2{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.play-settings-heading svg{width:16px;height:16px}.play-save-status{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.play-save-status svg{width:13px;height:13px}.play-save-status button{text-decoration:underline}.play-settings [data-slot=tabs-list]{min-height:40px;margin:0 24px}.play-settings [data-slot=tabs-trigger]{min-height:36px;padding-inline:12px}.play-settings-body{border:0;min-width:0;padding:24px}.play-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px 32px;display:grid}.play-settings [data-slot=field-description]{font-size:12px}.play-settings [data-slot=field-label]{font-size:13px}.play-settings [data-slot=toggle-group-item]{min-height:40px}.play-settings [data-slot=input]{max-width:480px;min-height:40px}.play-settings [data-slot=select-trigger]{min-width:180px;min-height:40px}.play-settings-footer{border-top:1px solid var(--border);color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 24px;font-size:11px;display:flex}.play-ai-teaser{border:1px solid var(--border);background:var(--card);text-align:left;border-radius:16px;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;padding:24px;display:flex}.play-ai-teaser.compact{padding:16px}.play-ai-symbol{background:var(--color-accent);width:40px;height:40px;color:var(--primary);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.play-ai-symbol svg{width:20px;height:20px}.play-ai-teaser>div{flex:1;min-width:180px}.play-ai-teaser h3{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.play-ai-teaser p{color:var(--muted-foreground);max-width:560px;margin-top:4px;font-size:12px;line-height:1.6}.play-stage{flex-direction:column;gap:24px;display:flex}.play-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.play-toolbar-group{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.play-clock{font-variant-numeric:tabular-nums;min-width:56px;font-size:16px;font-weight:600}.play-clock.is-low{color:var(--play-wrong)}.play-board{background:var(--card);border:1px solid var(--border);border-radius:20px;min-height:360px;padding:32px;position:relative}.play-board .bg-white,.play-board .games-option,.play-board .games-flip-front{background-color:var(--card)}.play-board .text-slate-500,.play-board .text-slate-400{color:var(--muted-foreground)}.play-board .hanzi{font-size:max(1em, calc(1em * var(--play-scale)))}.play-board .games-prompt-zh{font-size:calc(36px * var(--play-scale))}.play-correction{border:1px solid var(--border);background:var(--card);border-radius:16px;align-items:center;gap:16px;padding:20px 24px;display:flex}.play-correction.is-correct{border-inline-start:4px solid var(--play-good)}.play-correction.is-wrong{border-inline-start:4px solid var(--play-wrong)}.play-correction>div{flex:1}.play-correction h3{font-size:14px;font-weight:600}.play-correction p{color:var(--muted-foreground);margin-top:4px;font-size:13px}.play-pause{background:var(--card);border-radius:inherit;z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.play-inline-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.play-empty{padding:40px 24px}.play-dialog{width:min(760px,100vw - 32px);max-height:min(90svh,900px);padding:32px;overflow-y:auto;max-width:760px!important}.play-result-title{letter-spacing:-.8px;margin-top:8px;font-size:28px;font-weight:600}.play-result-stats{grid-template-columns:repeat(3,1fr);gap:16px;padding:24px 0;display:grid}.play-result-stats strong{font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;display:block}.play-result-stats span{color:var(--muted-foreground);font-size:12px}.play-peer{background:var(--color-muted);border-radius:12px;padding:16px;font-size:13px;line-height:1.6}.play-review-list{flex-direction:column;gap:8px;margin-top:16px;display:flex}.play-review-row{border:1px solid var(--border);border-radius:12px;padding:16px}.play-review-row header{align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.play-review-answer{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px;display:flex}.play-review-answer .hanzi{font-size:calc(22px * var(--play-scale))}.play-review-wrong{color:var(--play-wrong);text-decoration:line-through}.play-review-key{color:var(--play-good)}.play-question{flex-direction:column;align-items:stretch;gap:24px;max-width:720px;margin-inline:auto;display:flex}.play-question-prompt{text-align:center;font-size:calc(26px * var(--play-scale));padding:16px 0;line-height:1.6}.play-question-prompt .hanzi{font-size:calc(40px * var(--play-scale));display:block}.play-answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.play-answer{text-align:start;border:1px solid var(--border);background:var(--card);border-radius:12px;align-items:center;gap:12px;min-height:72px;padding:16px;transition:border-color .15s,transform .15s;display:flex}.play-answer:not(:disabled):hover{border-color:var(--primary);transform:translateY(-1px)}.play-answer.is-selected{border:2px solid var(--primary)}.play-answer.is-correct{border-color:var(--play-good)}.play-answer.is-wrong{border-color:var(--play-wrong)}.play-answer-key{color:var(--muted-foreground);font-size:12px}.play-answer .hanzi{font-size:calc(24px * var(--play-scale))}.play-sentence-tiles{border:1px dashed var(--border);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:8px;min-height:72px;padding:16px;display:flex}.play-tile{border:1px solid var(--border);background:var(--card);border-radius:8px;min-height:44px;padding:12px 16px;font-size:20px}.play-template-tools{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.play-arcade{background:var(--color-muted);touch-action:manipulation;border-radius:16px;min-height:340px;position:relative;overflow:hidden}.play-arcade-target{border:1px solid var(--border);background:var(--card);border-radius:24px;place-items:center;gap:4px;width:96px;min-height:56px;padding:8px;font-size:18px;display:grid;position:absolute}.play-arcade-token{inset-inline-start:16px;background:var(--primary);width:40px;height:40px;color:var(--color-primary-foreground);border-radius:12px;place-items:center;display:grid;position:absolute;bottom:16px}.play-maze{gap:4px;max-width:440px;margin-inline:auto;display:grid}.play-maze-cell{background:var(--color-muted);border:1px solid #0000;border-radius:6px;place-items:center;min-height:64px;padding:4px;font-size:14px;display:grid}.play-maze-cell.is-wall{background:var(--border)}.play-maze-cell.is-player{border:2px solid var(--primary);color:var(--primary);font-weight:600}.play-wheel{border:12px solid var(--color-accent);outline:2px solid var(--primary);background:var(--card);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:240px;height:240px;margin-inline:auto;display:flex}.play-pair-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid;position:relative}.play-pair-column{flex-direction:column;gap:12px;display:flex}.play-pair-column button{border:1px solid var(--border);background:var(--card);border-radius:12px;min-height:68px;padding:12px}.play-pair-column button[aria-pressed=true]{border:2px solid var(--primary)}.play-pair-column button[data-matched=true]{border-color:var(--play-good);opacity:.55}.play-pair-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.play-pair-lines line{stroke:var(--play-good);stroke-width:2px}.play-diagram{background:var(--color-muted);border-radius:12px;width:100%;min-height:300px;position:relative}.play-diagram-marker{flex-direction:column;align-items:center;gap:4px;min-width:80px;display:flex;position:absolute}.play-catalog-search{align-items:center;gap:12px;margin-bottom:24px;display:flex}.play-catalog-search [data-slot=input]{max-width:520px;min-height:44px}.play-catalog-count{color:var(--muted-foreground);font-size:12px}.play-root[data-play-density=compact] .play-board{min-height:280px;padding:20px}.play-root[data-play-density=compact] .play-answer{min-height:56px;padding:12px}.play-root .player-layout{max-width:800px;margin-inline:auto;display:block}.play-root .player-main{width:100%}.play-root .exercise-content{padding-inline:0}.play-root .task-card{background:var(--card);border-color:var(--border)}.play-root .answer-option,.play-root .task-feedback{background:var(--card)}.play-root .task-feedback p{color:var(--foreground)}.play-kids .play-answer{min-height:88px}.play-reduce-motion *,.play-reduce-motion :before,.play-reduce-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.play-root button:focus-visible,.play-dialog button:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.play-root button:disabled,.play-dialog button:disabled{cursor:not-allowed}.play-card-reading{flex-direction:column;align-items:center;gap:4px;display:inline-flex}.play-card-reading>.hanzi{font-size:calc(24px * var(--play-scale));line-height:1.5}.play-card-reading small,.play-answer small,.play-moving-target small{color:var(--muted-foreground);font-size:12px}.play-question-prompt .play-card-reading>.hanzi{font-size:calc(48px * var(--play-scale))}.play-recall-clue{text-align:center;font-size:calc(32px * var(--play-scale));letter-spacing:8px;color:var(--primary)}.play-recall-clue>span{color:var(--muted-foreground)}.play-flash-face{border-block:1px solid var(--border);min-height:160px;font-size:calc(20px * var(--play-scale));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.play-tile.is-selected,.play-group-slot:focus-visible{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:2px}.play-tile small{color:var(--muted-foreground);margin-top:4px;font-size:11px;display:block}.play-boxes{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.play-boxes button{border:1px solid var(--border);border-bottom:4px solid var(--primary);background:var(--color-accent);min-height:96px;color:var(--primary);border-radius:12px;font-size:24px}.play-cover-tile{background:var(--color-accent);min-width:64px;min-height:80px;color:var(--primary);border:1px solid var(--border);border-radius:12px;place-items:center;font-size:32px;display:grid}.play-wheel>svg{width:40px;height:40px;color:var(--primary)}.play-wheel>span{text-align:center;max-width:180px;font-size:18px;line-height:1.5}.play-wheel.is-spinning>svg{animation:.9s ease-out play-spin}@keyframes play-spin{to{transform:rotate(1080deg)}}.play-study-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;display:grid}.play-study-card{border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;display:flex}.play-word-picture{background:var(--color-accent);color:var(--primary);border-radius:16px;place-items:center;min-height:112px;display:grid}.play-word-picture>svg{width:72px;height:72px}.play-question-picture{width:min(100%,320px);min-height:200px;margin-inline:auto}.play-question-picture>svg{width:128px;height:128px}.play-pair-column .play-pair-end{overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:84px;min-height:84px;font-size:14px;display:flex;overflow:auto}.play-pair-end small{color:var(--muted-foreground);font-size:11px}.play-pair-lines line{stroke:var(--primary)}.play-memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.play-memory-card{text-align:center;border:1px solid var(--border);min-height:100px;color:var(--primary);background:var(--color-accent);overflow-wrap:anywhere;border-radius:12px;justify-content:center;align-items:center;padding:12px;font-size:24px;display:flex}.play-memory-card.is-open{background:var(--card);color:var(--foreground);font-size:14px}.play-memory-card:disabled.is-open{opacity:1}.play-group-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px;display:grid}.play-group-slot{border:1px dashed var(--border);background:var(--color-muted);border-radius:12px;flex-direction:column;align-items:center;gap:16px;min-height:112px;padding:20px 12px;font-size:13px;display:flex}.play-group-slot .hanzi{font-size:16px;line-height:1.6}.play-diagram-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px;display:grid}.play-order-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.play-order-list li{border:1px solid var(--border);background:var(--card);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.play-order-list li>.hanzi{font-size:calc(24px * var(--play-scale))}.play-order-list li>span:not(.play-card-reading){text-align:center;flex:1}.play-crossword-scroll{max-width:100%;overflow-x:auto}.play-crossword{gap:4px;width:max-content;margin-inline:auto;display:grid}.play-crossword-cell{width:48px;height:52px;position:relative}.play-crossword-cell>small{pointer-events:none;color:var(--muted-foreground);font-size:10px;position:absolute;top:3px;left:4px}.play-crossword-cell [data-slot=input]{text-align:center;border-color:var(--border);border-radius:4px;width:48px;height:52px;padding:8px 0 0;font-size:24px}.play-crossword-clues{flex-wrap:wrap;gap:12px 24px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.play-crossword-clues strong{margin-inline-end:8px;display:inline-block}.play-flight-lanes{background:var(--color-muted);border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.play-flight-lane{border:1px solid var(--border);background:var(--card);border-radius:8px;align-items:center;gap:16px;min-height:64px;padding:12px 16px;display:flex}.play-flight-lane>span:first-child{width:32px;color:var(--primary);flex-shrink:0}.play-flight-lane svg{width:24px;height:24px}.play-flight-lane .hanzi{font-size:24px}.play-flight-lane.is-selected{border:2px solid var(--primary)}.play-target-field{background:var(--color-muted);border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:16px;min-height:360px;padding:32px 16px;display:grid;overflow:hidden}.play-target-slot{place-items:center;min-height:120px;display:grid}.play-moving-target{border:1px solid var(--border);background:var(--card);width:100%;max-width:152px;min-height:88px;color:var(--foreground);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;display:flex}.play-moving-target .hanzi{font-size:24px}.is-balloons .play-moving-target{animation:play-balloon var(--flight-duration) ease-in-out infinite alternate;border-radius:48% 48% 44% 44%}.is-fruit .play-moving-target{border-top:4px solid var(--primary);animation:play-fruit var(--flight-duration) ease-in-out infinite alternate;border-radius:40% 48% 44%}.is-moles .play-target-slot{border-bottom:8px solid var(--border);border-radius:50%}.is-moles .play-moving-target{border-radius:40% 40% 12px 12px}.play-moving-target.is-hidden{background:0 0;border-color:#0000;min-height:88px}.play-target-field.is-still .play-moving-target{animation:none}@keyframes play-balloon{0%{transform:translateY(16px)}to{transform:translateY(-24px)}}@keyframes play-fruit{0%{transform:translate(-8px,16px)rotate(-4deg)}to{transform:translate(8px,-20px)rotate(4deg)}}.play-word-picker{border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:8px;max-height:280px;padding:8px;display:flex;overflow-y:auto}.play-word-picker [data-slot=toggle-group-item]{border-inline-start-width:1px;border-radius:8px;flex-direction:column;gap:4px;height:auto;padding:8px 12px;display:flex}.play-word-picker small{white-space:normal;max-width:240px;font-size:11px}.play-saved-sets{flex-wrap:wrap;justify-content:center;gap:8px;max-width:640px;display:flex}.play-saved-sets h2{color:var(--muted-foreground);flex-basis:100%;font-size:13px;font-weight:500}.play-answer-saved{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:280px;display:flex}.play-saved-mark{background:var(--color-muted);width:56px;height:56px;color:var(--primary);border-radius:50%;place-items:center;font-size:24px;display:grid}.play-result-icon{width:32px;height:32px;color:var(--primary)}.play-review-heading{margin-bottom:16px;font-size:16px;font-weight:600}.play-inline-icon{width:14px;height:14px;margin-inline-end:4px;display:inline}.play-result-feedback{flex-direction:column;gap:16px;display:flex}.play-result-feedback h3{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.play-result-feedback h3 svg{width:16px;height:16px;color:var(--primary)}.play-result-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding-top:24px;display:flex}.play-app{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;min-height:0;display:grid;overflow:hidden}.play-app .play-header{border-bottom:1px solid var(--border);background:var(--card);grid-template-columns:1fr auto 1fr;width:100%;max-width:none;min-height:72px;padding:12px 32px;display:grid}.play-app .play-header-title{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:13px;font-weight:600;overflow:hidden}.play-app .play-library{justify-content:center;justify-self:end;min-width:40px}.play-app .play-main{width:min(100% - 48px,920px);min-height:0;padding:24px 0;display:flex;overflow:hidden}.play-lobby-shell{flex-direction:column;gap:20px;width:100%;height:min(100%,660px);min-height:0;margin:auto;display:flex}.play-lobby-heading{text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.play-lobby-heading h1{letter-spacing:-1px;font-size:clamp(28px,3vw,36px);font-weight:650;line-height:1.2}.play-lobby-heading .play-lobby-description{font-size:calc(14px * var(--play-scale));line-height:1.5}.play-settings-inline{background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;min-height:0;display:flex}.play-settings-inline>[data-slot=tabs]{flex:1;gap:16px;min-height:0}.play-settings-inline [data-slot=tabs-list]{background:var(--color-muted);border-radius:12px;flex-shrink:0;align-self:center;gap:4px;height:auto;min-height:44px;margin:0;padding:4px}.play-settings-inline [data-slot=tabs-trigger]{height:36px;min-height:36px;color:var(--muted-foreground);border:0;border-radius:8px;padding:8px 20px;font-size:13px}.play-settings-inline [data-slot=tabs-trigger]:after{display:none}.play-settings-inline [data-slot=tabs-trigger][aria-selected=true]{background:var(--card);color:var(--primary)}.play-settings-inline [data-slot=tabs-content]{overscroll-behavior:contain;border:1px solid var(--border);background:var(--card);border-radius:16px;min-height:0;overflow-y:auto}.play-settings-inline [data-slot=tabs-content].play-overview-panel{background:0 0;border:0;border-radius:0;overflow:hidden}.play-settings-inline .play-settings-footer{border:0;flex-shrink:0;gap:8px;min-height:36px;padding:8px 0 0}.play-settings-inline .play-settings-footer [data-slot=button]{min-height:32px}.play-settings-inline:has(.play-overview-panel) .play-settings-footer{justify-content:center;min-height:24px}.play-settings-inline:has(.play-overview-panel) .play-settings-footer [data-slot=button]{display:none}.play-settings-footer button:not([data-slot]){text-decoration:underline}.play-app .play-lobby-overview{grid-template-rows:minmax(0,1fr) auto;align-items:stretch;gap:16px;width:100%;height:100%;min-height:0;padding:0;display:grid}.play-app .play-preview{width:100%;height:100%;min-height:0;box-shadow:none;border-radius:16px;padding:24px}.play-app .play-preview-line{overflow-wrap:anywhere;text-align:center;max-width:100%}.play-warmup{grid-template-rows:auto minmax(0,1fr) auto;gap:12px;width:100%;height:100%;display:grid;position:relative}.play-warmup-label{color:var(--muted-foreground);text-align:left;justify-content:space-between;align-items:center;font-size:12px;display:flex}.play-warmup-label [data-slot=button]{min-width:36px;min-height:36px}.play-warmup-label svg{width:16px;height:16px}.play-warmup-body{grid-template-columns:1fr 1fr;align-items:center;gap:32px;min-height:0;display:grid}.play-warmup-word{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.play-warmup .play-preview-hanzi{font-size:calc(52px * var(--play-scale));overflow-wrap:anywhere;line-height:1.3}.play-warmup-prompt{color:var(--muted-foreground);font-size:12px;line-height:1.5}.play-warmup-choices{gap:12px;min-width:0;display:grid}.play-warmup-choice{border:1px solid var(--border);text-align:left;min-width:0;min-height:52px;font-size:calc(14px * var(--play-scale));background:var(--background);overflow-wrap:anywhere;border-radius:12px;align-items:center;gap:12px;padding:12px;line-height:1.3;transition:background-color .16s ease-out,border-color .16s ease-out;display:flex}.play-warmup-choice:hover{border-color:var(--primary);background:var(--color-accent)}.play-warmup-key{width:28px;height:28px;color:var(--primary);background:var(--card);border:1px solid var(--border);border-radius:8px;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.play-warmup-key svg{width:16px;height:16px}.play-warmup-feedback{min-height:18px;color:var(--muted-foreground);font-size:12px;line-height:1.5}.play-warmup-feedback[data-correct]{color:var(--play-good)}.play-app .play-round-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:min(100%,580px);margin-inline:auto;font-size:11px;display:grid}.play-app .play-round-summary span{flex-direction:column;gap:4px;display:flex}.play-app .play-round-summary span+span{border-inline-start:1px solid var(--border)}.play-round-summary strong{color:var(--foreground);font-size:13px;font-weight:600}.play-app .play-lobby[data-has-error] .play-preview{display:none}.play-app .play-lobby[data-has-error] .play-error{text-align:left;grid-row:1;align-self:center;width:100%;max-width:none;min-height:0;max-height:100%;overflow:auto}.play-error [data-slot=alert-description]{overflow-wrap:anywhere}.play-footer{border-top:1px solid var(--border);background:var(--card);padding:16px 32px max(16px, env(safe-area-inset-bottom))}.play-footer-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1040px;margin-inline:auto;display:flex}.play-footer-note{color:var(--muted-foreground);align-items:center;gap:8px;font-size:12px;line-height:1.5;display:flex}.play-footer-note svg{flex-shrink:0;width:16px;height:16px}.play-footer .play-start-row{flex:0 auto;justify-content:flex-end;gap:8px;min-width:0}.play-footer .play-start-row [data-slot=button]{padding-inline:20px}.play-footer .play-start-row>:last-child{background:var(--primary);min-width:168px;color:var(--color-primary-foreground);box-shadow:none;background-clip:border-box;border:0;border-radius:12px;font-weight:600}.play-footer .play-start-row>:last-child:not(:disabled):hover{background:color-mix(in srgb, var(--primary) 90%, var(--foreground))}.play-footer .play-start-row>:last-child>svg:not([data-slot=spinner]){fill:currentColor}.play-settings [data-slot=toggle-group-item][aria-pressed=true]{background:var(--color-accent);color:var(--primary);border-color:var(--primary)}.play-settings-details{border-top:1px solid var(--border);margin-top:8px;padding-top:12px}.play-settings-details>summary{cursor:pointer;min-height:40px;color:var(--foreground);padding-block:8px;font-size:13px;font-weight:500;display:list-item}.play-settings-details>:not(summary){margin-top:16px}.play-settings-details summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.play-sound-settings{border-bottom:1px solid var(--border);flex-direction:column;gap:12px;padding-bottom:20px;display:flex}.play-sound-previews{flex-wrap:wrap;gap:8px;display:flex}.play-sound-previews [data-slot=button]{min-height:40px}.play-selected-words{flex-wrap:wrap;gap:8px;display:flex}.play-selected-words span{background:var(--color-muted);border-radius:8px;align-items:center;min-height:36px;padding:4px 12px;font-size:16px;display:inline-flex}.play-settings .practice-setup-shell .panel,.play-settings .practice-setup-shell .bg-white,.play-settings .practice-setup-shell .filter-select{background:var(--card);color:var(--foreground);border-color:var(--border)}.play-settings .practice-setup-shell>.mb-6.flex{background:var(--color-muted);border-color:var(--border)}.play-settings .practice-setup-shell>.mb-6.flex>button:hover{background:var(--card);color:var(--primary)}.play-root[data-play-theme=dark] .practice-setup-shell :is(.bg-slate-50,.bg-slate-100,[class~=bg-slate-50\/60],[class~=bg-slate-50\/70]){background:var(--background)}.play-root[data-play-theme=dark] .practice-setup-shell :is(.bg-blue-50,.bg-violet-50,.bg-amber-50,.bg-rose-50,.bg-rose-100,.bg-emerald-100){background:var(--color-accent);color:var(--foreground)}.play-root[data-play-theme=dark] .practice-setup-shell :is(.text-slate-400,.text-slate-500,.text-slate-600){color:var(--muted-foreground)}.play-root[data-play-theme=dark] .practice-setup-shell :is(.text-blue-300,.text-blue-400,.text-blue-600,.text-blue-800,.text-violet-400,.text-violet-500,.text-violet-800){color:var(--primary)}.play-app a:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:8px}@media (max-width:640px){.play-app .play-header{gap:8px;min-height:64px;padding:8px 16px}.play-app .play-back{gap:4px;font-size:12px}.play-app .play-header-title{font-size:12px}.play-app .play-main{width:calc(100% - 32px);padding:16px 0}.play-lobby-shell{gap:12px}.play-lobby-heading h1{font-size:28px}.play-settings-inline>[data-slot=tabs]{gap:12px}.play-settings-inline [data-slot=tabs-trigger]{padding-inline:12px;font-size:12px}.play-app .play-lobby-overview{gap:12px}.play-app .play-preview{padding:16px}.play-warmup{gap:8px}.play-warmup-body{grid-template-columns:minmax(64px,1fr) minmax(0,2fr);gap:12px}.play-warmup .play-preview-hanzi{font-size:calc(40px * var(--play-scale))}.play-warmup-choices{grid-template-columns:1fr;gap:8px}.play-warmup-choice{gap:8px;min-height:48px;padding:8px}.play-warmup-key{width:24px;height:24px}.play-app .play-round-summary{gap:8px;font-size:10px}.play-round-summary strong{font-size:12px}.play-footer{padding:12px 16px max(12px, env(safe-area-inset-bottom))}.play-footer-inner{flex-direction:column-reverse;gap:8px}.play-footer-note{font-size:11px}.play-footer .play-start-row{flex-wrap:wrap;width:100%}.play-footer .play-start-row [data-slot=button]{flex:auto;min-width:0;padding-inline:12px}.play-settings-inline .play-settings-footer{font-size:10px}}@media (max-width:640px) and (max-height:700px){.play-lobby-heading .play-lobby-description{display:none}.play-app .play-main{padding-block:12px}.play-app .play-preview{padding:12px}.play-warmup-body{grid-template-columns:minmax(60px,1fr) minmax(0,2fr);gap:12px}.play-warmup-choices{grid-template-columns:1fr}.play-warmup-choice{min-height:40px}.play-warmup .play-preview-hanzi{font-size:calc(32px * var(--play-scale))}.play-warmup-prompt,.play-warmup-key{display:none}.play-warmup-feedback{font-size:11px}}@media (max-width:360px){.play-settings-inline [data-slot=tabs-trigger]{padding-inline:10px}.play-app .play-back span{max-width:48px;line-height:1.2}}@media (max-height:600px) and (min-width:641px){.play-app .play-header{min-height:56px;padding-block:8px}.play-app .play-main{padding-block:12px}.play-lobby-shell{grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:24px;display:grid}.play-lobby-heading{margin-block:auto}.play-settings-inline>[data-slot=tabs]{gap:8px}.play-settings-inline [data-slot=tabs-trigger]{padding-inline:16px}.play-app .play-lobby-overview{grid-template-rows:minmax(0,1fr)}.play-app .play-round-summary,.play-warmup-label{display:none}.play-warmup{grid-template-rows:minmax(0,1fr) auto;gap:8px}.play-warmup-body{gap:16px}.play-warmup .play-preview-hanzi{font-size:calc(32px * var(--play-scale))}.play-warmup-prompt{display:none}.play-warmup-choice{gap:8px;min-height:36px;padding:8px}.play-warmup-choices{gap:6px}.play-app .play-preview{padding:12px}.play-footer{padding-block:12px}}@media (prefers-reduced-motion:reduce){.play-root *,.play-root :before,.play-root :after,.play-dialog *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:640px){.play-header{gap:8px;min-height:64px;padding:12px 16px}.play-header-title{max-width:45%;font-size:12px}.play-main{width:calc(100% - 32px);padding-top:8px}.play-lobby{gap:20px;padding-top:24px}.play-preview{min-height:180px;padding:24px}.play-preview-hanzi{font-size:calc(40px * var(--play-scale))}.play-settings-heading{padding:20px 16px 12px}.play-settings [data-slot=tabs-list]{margin-inline:16px}.play-settings [data-slot=tabs-trigger]{padding-inline:8px;font-size:12px}.play-settings-body{padding:20px 16px}.play-settings-grid{grid-template-columns:1fr;gap:24px}.play-board{min-height:320px;padding:20px 16px}.play-correction{flex-wrap:wrap;padding:16px}.play-dialog{max-height:94svh;padding:24px 16px}.play-result-stats{gap:8px}.play-result-stats strong{font-size:24px}.play-answers{grid-template-columns:1fr}.play-pair-columns{gap:24px}.play-arcade-target{width:80px;font-size:16px}.play-memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.play-memory-card{min-height:88px;padding:8px}.play-diagram-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.play-target-field{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:24px 12px}.play-target-slot{min-height:112px}.play-order-list li{gap:8px;padding:8px}.play-maze-cell{overflow-wrap:anywhere;min-height:56px;font-size:13px}.play-maze-cell .hanzi{font-size:14px}}.practice-catalogue-note{color:var(--muted-foreground);background:0 0;padding:0;font-size:11px}.practice-exam-card{padding:16px}@media (max-width:640px){.practice-exam-card>:last-child{gap:0;font-size:0}}.practice-card.exercise-card{background:var(--card,#fff);border-color:var(--border);padding:20px}.practice-card.exercise-card:hover{border-color:#b9cdec}.practice-card .cat-tag{font-size:10px}.practice-card-caption{color:var(--muted-foreground);margin-top:6px;padding-right:12px;font-size:12px;line-height:1.5}.practice-card-arrow{width:14px;height:14px;color:var(--primary);position:absolute;bottom:24px;right:20px}.practice-miniature{--mini-surface:#fff;--mini-stroke:#d8e3ef;--mini-ink:#4a627e;--mini-blue:#376bdc;--mini-tint:#e9f0fd;--mini-good:#e6f5ec;background:#f5f8fc;border-radius:12px;place-items:center;width:100%;margin-block:16px;display:grid;overflow:hidden}.practice-miniature svg{width:100%;max-width:320px;height:132px;display:block}.practice-miniature text{fill:var(--mini-ink);font-family:inherit;font-size:13px}.mini-tile rect,.mini-paper,.mini-input{fill:var(--mini-surface);stroke:var(--mini-stroke);stroke-width:1.5px}.mini-tile.is-accent rect{fill:var(--mini-good);stroke:#badcca}.mini-tile.is-accent text{fill:#26704f}.practice-miniature .mini-character{font-size:44px}.practice-miniature .mini-word{font-size:21px}.practice-miniature .mini-caption{font-size:14px}.mini-tint{fill:var(--mini-tint)}.mini-highlight{fill:var(--mini-good)}.mini-guide{fill:none;stroke:var(--mini-stroke);stroke-width:2px;stroke-linecap:round;stroke-dasharray:4 5}.mini-connection,.mini-arrow{fill:none;stroke:var(--mini-blue);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.mini-wave{fill:var(--mini-blue);opacity:.7}.play-mechanic-preview{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:min(100%,500px);height:100%;min-height:0;display:flex}.play-mechanic-preview .practice-miniature{background:0 0;flex:1;min-height:0;max-height:260px;margin:0}.play-mechanic-preview .practice-miniature svg{max-width:460px;height:100%;max-height:240px}.play-mechanic-preview>p{color:var(--muted-foreground);text-align:center;font-size:13px}.play-root[data-play-theme=dark] .practice-miniature{--mini-surface:#27374f;--mini-stroke:#52647c;--mini-ink:#dbe7f6;--mini-blue:#8fb5ff;--mini-tint:#304766;--mini-good:#254b3e}.play-root[data-play-theme=dark] .mini-tile.is-accent text{fill:var(--play-good)}.play-root{--play-good-bg:#edf9f2;--play-good-border:#bddfcc;--play-wrong-bg:#fff1f3;--play-wrong-border:#f0c7ce}.play-root[data-play-theme=dark]{--play-good-bg:#223f35;--play-good-border:#4a7661;--play-wrong-bg:#442e39;--play-wrong-border:#946273}.play-warmup-choice[data-result=correct],.play-root .play-answer.is-correct,.play-root .play-correction.is-correct,.play-root .answer-option.correct,.play-root .task-feedback.correct{background:var(--play-good-bg);border-color:var(--play-good-border);color:var(--play-good)}.play-warmup-choice[data-result=retry],.play-root .play-answer.is-wrong,.play-root .play-correction.is-wrong,.play-root .answer-option.incorrect,.play-root .task-feedback.incorrect{background:var(--play-wrong-bg);border-color:var(--play-wrong-border);color:var(--play-wrong)}.play-root .games-tone-correct{color:var(--play-good);background:var(--play-good-bg)!important;border-color:var(--play-good-border)!important}.play-root .games-tone-wrong{color:var(--play-wrong);background:var(--play-wrong-bg)!important;border-color:var(--play-wrong-border)!important}.play-root :is(.games-slot-correct,.games-key-hit,.games-search-found,.games-clue-found,.games-grade-good),.play-root .games-flip-done .games-flip-front{background:var(--play-good-bg);border-color:var(--play-good-border);color:var(--play-good)}.play-root :is(.games-slot-wrong,.games-grade-bad){background:var(--play-wrong-bg);border-color:var(--play-wrong-border);color:var(--play-wrong)}.play-root .games-bubble-correct{background:var(--play-good-bg);color:var(--play-good)}.play-root .games-bubble-wrong{background:var(--play-wrong-bg);color:var(--play-wrong);opacity:1}.play-root .play-correction.is-correct,.play-root .play-correction.is-wrong{border-inline-start-width:1px}.play-celebration{pointer-events:none;z-index:3;width:0;height:0;position:absolute;top:50%;left:50%}.play-celebration-check{width:44px;height:44px;color:var(--play-good);background:var(--play-good-bg);border-radius:50%;place-items:center;animation:.65s ease-out both play-success-check;display:grid;position:absolute;top:-22px;left:-22px}.play-celebration-check svg{width:24px;height:24px}.play-celebration i{width:7px;height:7px;animation:play-success-particle .62s cubic-bezier(.16,.7,.3,1) var(--burst-delay) both;background:#8bcbaa;border-radius:2px;position:absolute;top:-3px;left:-3px}.play-celebration i:nth-child(3n){background:#91b5f2;border-radius:50%}.play-celebration i:nth-child(3n+1){background:#efbac5}@keyframes play-success-particle{0%{opacity:0;transform:translate(0)rotate(0)scale(.2)}18%{opacity:1}75%{opacity:1}to{opacity:0;transform:translate(var(--burst-x), var(--burst-y)) rotate(var(--burst-rotation)) scale(.7)}}@keyframes play-success-check{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.08)}45%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(.95)}}.play-reduce-motion .play-celebration{display:none}@media (prefers-reduced-motion:reduce){.play-celebration{display:none}}
