.simplified-practice .practice-view{display:block;max-width:760px;margin-inline:auto}.simplified-practice .word-panel{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:0 0 14px;margin-bottom:18px;border:0;border-bottom:1px solid var(--line)}.simplified-practice .word-panel h1{margin:0;font-size:64px;line-height:1}.simplified-practice .word-panel h1.concealed{font-size:20px;padding:0}.simplified-practice .speech-button{width:auto;margin:0;margin-left:auto;min-height:44px}.simplified-practice #voice-note{flex-basis:100%;margin:0}.simplified-practice .semantic-cue,.simplified-practice .oral-prompt{display:none}.simplified-practice .step-rail{margin-bottom:16px}.simplified-practice .grid-shell{width:min(100%,420px)}#teacher-word-options{display:block}.character-options{border:1px solid var(--line);border-radius:9px;padding:10px;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.character-options legend{font-size:18px;padding:0 6px}.character-options .word-option{font-size:14px}.teacher-selection #teacher-selection-total{font-weight:700;color:var(--green)}
.feedback-line #feedback{display:flex;align-items:center;gap:8px}.feedback-line #feedback-text{font-size:16px}.feedback-line #feedback-icon{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--soft);font-size:17px;font-weight:700}.feedback-line [data-kind^="complete-"] #feedback-icon{background:var(--green);color:#fff}
:root{--paper:#f6f3e9;--card:#fffdf6;--ink:#243d32;--green:#214b3b;--muted:#677568;--line:#d9dece;--soft:#e9eddf;--warm:#ba642d;--sans:"PingFang HK","Noto Sans TC","Microsoft JhengHei",sans-serif;--serif:"Noto Serif TC","Songti TC","PMingLiU",serif;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:17px;line-height:1.65;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,textarea,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--warm);outline-offset:4px}button svg,svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.app-header{gap:12px;flex-wrap:wrap;max-width:1280px;margin:auto;padding:26px 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{color:var(--green);display:flex;gap:13px;text-decoration:none;align-items:center;font-size:25px;letter-spacing:3px;font-weight:800;line-height:1.15}.brand svg{width:41px;height:41px;stroke-width:2}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:2px;margin-top:9px}.header-actions{display:flex;gap:22px;align-items:center}.device-tag,.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}.device-tag{border:1px solid var(--line);padding:5px 12px;border-radius:5px;color:var(--muted)}main{max-width:1160px;margin:auto;padding:46px 34px 32px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,3.2vw,40px);line-height:1.45;letter-spacing:1px;margin-bottom:13px}h2{font-size:24px;line-height:1.5;margin-bottom:7px}h3{font-size:19px}.eyebrow{color:var(--muted);margin-bottom:12px}.intro-line{display:flex;align-items:center;justify-content:space-between;gap:20px}.paper-seal{border:1.5px solid #98a78c;color:#688461;line-height:1.55;padding:13px 18px;border-radius:50%;font-size:15px;letter-spacing:3px;transform:rotate(8deg);flex:none}.word-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.word-card{appearance:none;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;color:var(--ink);position:relative;box-shadow:0 4px 0 #e4e6d944;transition:border-color .15s,transform .15s}.word-card:hover{border-color:#77977c;transform:translateY(-2px)}.word-card .word-name{display:block;font-family:var(--serif);font-size:clamp(80px,14vw,200px);font-weight:700;letter-spacing:0;line-height:1;text-align:center}.word-card svg{width:min(100%,280px);height:auto;aspect-ratio:1;justify-self:center;stroke-width:2;stroke:#728765;background:#eff1e5;border-radius:50%;padding:10px}.word-card .word-photo,.semantic-cue .word-photo{display:block;background:#fff;object-fit:contain;border-radius:10px}.word-card .word-photo{width:min(100%,280px);height:auto;aspect-ratio:1;justify-self:center}.word-card:only-child{grid-column:1/-1;width:100%;max-width:640px;justify-self:center}.word-card:only-child .word-name{font-size:clamp(96px,26vw,200px)}.word-card:disabled{opacity:.75}.word-card .stamp{grid-column:1/-1;justify-self:center;font-family:var(--sans);color:#536d4c;border:1px solid #8a9c7c;padding:2px 10px;font-size:12px;border-radius:5px}.journey-preview{display:flex;align-items:center;gap:17px;flex-wrap:wrap;padding:27px 0 21px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.journey-preview span{display:flex;align-items:center;gap:8px}.journey-preview b{display:inline-grid;place-items:center;background:var(--soft);border-radius:50%;width:27px;height:27px;font-size:12px;color:var(--green)}.journey-preview i{font-style:normal;color:#9aab97}.journey-note{margin-left:auto;font-size:13px}.choice-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px}.choice-footer p{margin:0;color:var(--muted);font-size:14px}.button{min-height:48px;border-radius:9px;border:1px solid transparent;padding:10px 19px;font-size:15px;line-height:1.5;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;white-space:nowrap}.primary{background:var(--green);color:#fffdf6;box-shadow:0 3px 0 #102f25}.primary:hover{background:#163e2e}.secondary{background:#fbfaf3;border-color:#c6cfbd;color:var(--green)}.secondary:hover{background:#e9eddf}.quiet{background:transparent;color:var(--green)}.quiet:hover{background:#e9eddf}.large{font-size:17px;min-height:54px;padding-inline:25px}.button svg{width:23px;height:23px;stroke-width:1.8}.practice-view{display:grid;grid-template-columns:235px minmax(0,1fr);gap:46px}.word-panel{padding:8px 27px 0 0;border-right:1px solid var(--line)}.semantic-cue svg{width:min(100%,260px);height:auto;aspect-ratio:1;stroke-width:1.8;stroke:#728765;background:var(--soft);padding:14px;border-radius:50%;margin:8px 0 20px}.semantic-cue .word-photo{width:min(100%,260px);aspect-ratio:1;margin:8px 0 20px}.word-panel h1{font-family:var(--serif);font-size:64px;line-height:1;letter-spacing:0;overflow-wrap:anywhere;margin-bottom:13px}.word-panel h1.concealed{font-family:var(--sans);font-size:20px;letter-spacing:1px;padding:9px 0}.speech-button{width:100%;margin-bottom:10px}.small{font-size:12px;line-height:1.8}.muted{color:var(--muted)}.oral-prompt{display:flex;align-items:flex-start;gap:9px;margin-top:28px;padding-top:23px;border-top:1px solid var(--line);font-size:15px}.oral-prompt>span{font-size:25px;line-height:1.2;color:#a27042}.oral-prompt p{margin-bottom:8px}.step-rail{display:flex;list-style:none;padding:0;margin:0 0 25px;gap:0;justify-content:space-between;font-size:13px;color:#778571}.step-rail li{border-bottom:2px solid var(--line);padding-bottom:12px;flex:1;text-align:center}.step-rail b{display:inline-grid;place-items:center;border-radius:50%;height:25px;width:25px;background:#e7ebdf;margin-right:6px;font-size:12px}.step-rail li.active{color:var(--green);border-color:var(--green);font-weight:700}.step-rail li.active b{color:var(--card);background:var(--green)}.step-rail li.done{border-color:#9fb08f}.practice-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.practice-heading h2{font-size:24px}.practice-heading p{font-size:14px;color:var(--muted);margin-bottom:20px}.board-row{display:flex;justify-content:center}.grid-shell{width:min(100%,388px);aspect-ratio:1;background:#fffdf8;border:1.5px solid #aebba4;position:relative;border-radius:6px;overflow:hidden;box-shadow:0 3px 0 #e1e3d8}.grid-lines{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent calc(50% - .5px),#d7dcca calc(50% - .5px),#d7dcca calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#d7dcca calc(50% - .5px),#d7dcca calc(50% + .5px),transparent calc(50% + .5px))}.grid-lines:before,.grid-lines:after{content:"";position:absolute;top:50%;left:-21%;width:142%;border-top:1px dashed #e2e5d8;transform:rotate(45deg)}.grid-lines:after{transform:rotate(-45deg)}.writer{position:absolute;inset:0;touch-action:none;user-select:none;-webkit-user-select:none}.writer>svg{position:absolute;inset:0}.start-overlay{pointer-events:none;width:100%;height:100%}.board-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;background:#fffdf5ed;z-index:2;font-size:17px;white-space:pre-line}.demo-controls,.writing-controls{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:20px}.demo-controls .button,.writing-controls .button{min-height:46px;padding:9px 13px;font-size:14px}.feedback-line{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-top:16px;min-height:45px;font-size:13px;color:var(--muted)}.feedback-line p{margin:0;color:var(--green)}.next-row{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;justify-content:flex-end;gap:14px}.app-footer{max-width:1160px;margin:auto;padding:21px 34px 25px;color:#7e8a78;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:11px;letter-spacing:1px}.summary-view{max-width:920px;margin:0 auto}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.stat{padding:19px 15px;background:var(--soft);border-radius:10px}.stat b{font-family:var(--serif);display:block;font-size:30px}.stat span{font-size:12px}.summary-row{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 22px;margin-bottom:12px;display:grid;grid-template-columns:130px 1fr;gap:18px}.summary-word{font-family:var(--serif);font-size:24px;letter-spacing:2px}.char-record{display:flex;gap:12px;align-items:start;font-size:14px;padding:5px 0}.char-record strong{font-family:var(--serif);font-size:22px;line-height:1.4;min-width:25px}.record-label{color:var(--green)}.attempt-detail{font-size:11px;color:var(--muted);display:block;margin-top:3px}.summary-footer{display:flex;gap:20px;justify-content:space-between;align-items:center}dialog{border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);padding:30px;max-width:640px;width:calc(100% - 34px);max-height:90dvh;overflow:auto;box-shadow:0 24px 100px #1633242b;font-size:14px}dialog::backdrop{background:#20372db3;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.dialog-heading .eyebrow{margin-bottom:4px}.icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:28px;line-height:1}.field-label{display:block;font-size:15px;font-weight:700;margin-top:22px}.field-label span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin:4px 0 8px}textarea{display:block;width:100%;border:1px solid #acb8a2;border-radius:8px;background:#fffefb;padding:13px 16px;resize:vertical;line-height:1.9;min-height:130px}.field-error{color:#9d4424;font-size:13px;min-height:20px;margin:6px 0}.teacher-selection{border:0;border-top:1px solid var(--line);padding:15px 0;margin-top:24px}.teacher-selection legend{font-size:16px;font-weight:700;padding:0 8px 0 0}#teacher-word-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}.word-option{display:flex;align-items:center;gap:9px;min-height:48px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.word-option:has(input:checked){background:var(--soft);border-color:#77977c}.word-option input{width:19px;height:19px;accent-color:var(--green)}.teacher-active{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.teacher-active .button{font-size:13px;margin-bottom:8px}details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}summary{cursor:pointer;font-weight:700;min-height:36px}details p{font-size:12px;color:var(--muted);margin:12px 0}details a{font-size:12px;color:var(--green)}.history-item{border-bottom:1px solid var(--line);padding:11px 0;font-size:12px}.history-item button{margin-top:8px}.notice{font-size:13px;padding:12px 25px;background:#f0dfc4;color:#6a451f;text-align:center}.storage-notice{max-width:1280px;margin:auto}[hidden]{display:none!important}@media(min-width:1150px){.practice-view{gap:60px;grid-template-columns:260px 1fr}.grid-shell{width:390px}}@media(max-width:800px){.app-header{padding:20px 24px}main{padding:30px 24px}.practice-view{grid-template-columns:170px 1fr;gap:23px}.word-panel{padding-right:18px}.step-rail{font-size:11px}.step-rail b{width:21px;height:21px;margin-right:3px}.practice-heading h2{font-size:21px}.button{padding-inline:13px}.demo-controls{gap:2px}.demo-controls .button{font-size:12px}.journey-note{display:none}.app-footer{padding-inline:24px}.header-actions{gap:9px}.device-tag{display:none}}@media(max-width:570px){.app-header{padding:17px 18px}.brand{font-size:23px;gap:8px}.brand svg{width:32px}.brand small{font-size:9px;letter-spacing:1px}.header-actions .button{font-size:12px;padding:7px 9px;min-height:42px}main{padding:28px 18px 20px}h1{font-size:27px}.paper-seal{font-size:11px;padding:12px;letter-spacing:2px}.intro-line{gap:10px}.word-cards{gap:12px;grid-template-columns:1fr}.word-card{padding:12px;gap:8px}.word-card .word-name,.word-card:only-child .word-name{font-size:clamp(96px,28vw,160px)}.journey-preview{gap:9px;font-size:12px;padding-top:22px}.journey-preview i{font-size:10px}.journey-preview b{width:23px;height:23px}.choice-footer .button{font-size:12px}.choice-footer p{font-size:12px}.practice-view{display:block}.word-panel{border:0;padding:0 0 17px;display:grid;grid-template-columns:1fr auto;column-gap:10px}.semantic-cue{display:none}.word-panel h1{grid-column:1;margin:0}.speech-button{grid-column:2;grid-row:1;width:auto;align-self:center;margin:0;font-size:12px;min-height:44px}.word-panel .small{font-size:10px;grid-column:1/-1;margin:3px 0}.oral-prompt{display:none}.step-rail{margin-bottom:17px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}.practice-heading h2{font-size:22px}.practice-heading p{font-size:12px;min-height:20px;margin-bottom:14px}.grid-shell{width:min(100%,360px)}.demo-controls .button{font-size:12px;min-height:44px;padding:8px 10px}.writing-controls .button{font-size:12px;padding:8px 11px}.feedback-line{font-size:12px;min-height:43px}.next-row .large{font-size:15px}.app-footer{padding:17px 18px;font-size:9px;letter-spacing:.4px}.summary-stats{gap:7px;grid-template-columns:repeat(2,1fr)}.stat{padding:13px}.stat b{font-size:25px}.summary-row{padding:15px;grid-template-columns:1fr;gap:6px}.summary-word{font-size:25px}.summary-footer{align-items:start;flex-direction:column}dialog{padding:23px}.dialog-heading h2{font-size:23px}.button{min-height:46px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.app-header,.app-footer,.header-actions,.summary-footer,dialog,.notice{display:none!important}body{background:white}.summary-view{display:block!important}.choose-view,.practice-view{display:none!important}main{padding:0}.summary-row{break-inside:avoid}}
.app-header{padding-block:12px}.brand{letter-spacing:1px}.choice-footer{justify-content:flex-end}.app-footer{justify-content:flex-start}.practice-heading h2{margin-bottom:6px}.simplified-practice .step-rail{display:none}.simplified-practice .word-panel{margin-bottom:12px;padding-bottom:10px}.simplified-practice #feedback[data-kind="instruction"]{display:none}#voice-note:empty{display:none}@media(max-width:570px){.practice-heading{flex-wrap:wrap}}
.practice-heading{display:block;text-align:center}
.practice-heading h2{font-size:calc(24px + 10pt);line-height:1.2;margin:0 0 4px}
.practice-heading #practice-instruction{font-size:calc(16px + 10pt);line-height:1.3;color:var(--ink);margin:0 0 6px}
.practice-body,.practice-side{min-width:0}
.simplified-practice .app-header{padding-block:0}
.simplified-practice main{padding-block:0}
.simplified-practice .practice-view{max-width:1100px}
.simplified-practice .word-panel{gap:6px 10px;padding:0 0 2px;margin:0 0 2px;min-height:60px}

.simplified-practice .speech-button{margin-left:0}
.simplified-practice .grid-shell{width:min(100%,max(300px,calc(100svh - 490px)))}
.simplified-practice .demo-controls,.simplified-practice .writing-controls{margin-top:6px}
.simplified-practice #demo-controls{gap:8px}
.simplified-practice #play,.simplified-practice #pause{min-height:64px;font-size:22px}
.simplified-practice #play,.simplified-practice #pause{flex:1}
.simplified-practice .feedback-line{margin-top:6px;min-height:0}
.simplified-practice .next-row{padding-top:6px}
.simplified-practice #main-next{width:100%;min-height:72px;font-size:22px}
.simplified-practice .app-footer{padding-block:3px 4px}
@media(max-width:800px){.practice-heading h2{font-size:calc(21px + 10pt)}}
@media(max-width:570px){.practice-heading h2{font-size:calc(22px + 10pt)}.simplified-practice .word-panel{min-height:0}}
@media(min-width:760px) and (orientation:landscape){
  .simplified-practice .work-panel{display:grid;grid-template-columns:minmax(300px,1fr) minmax(260px,320px);grid-template-rows:auto minmax(0,1fr);gap:12px 16px}
  .simplified-practice .practice-heading{grid-column:2;grid-row:1}
  .simplified-practice .practice-body{display:contents}
  .simplified-practice .board-row{grid-column:1;grid-row:1/3;align-self:start}
  .simplified-practice .practice-side{grid-column:2;grid-row:2}
  .simplified-practice .grid-shell{width:min(100%,max(300px,calc(100svh - 217px)))}
  .simplified-practice .practice-side .demo-controls,.simplified-practice .practice-side .writing-controls,.simplified-practice .next-row{justify-content:flex-start}
}

.home-view{max-width:1000px;margin:28px auto;text-align:center}.mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}.mode-card{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:300px;padding:30px;border:2px solid #9eaf94;border-radius:24px;background:var(--card);color:var(--green)}.mode-card strong{font-size:clamp(58px,8vw,100px);line-height:1.3}.mode-card span{font-size:20px}.mode-card:hover{background:var(--soft)}.quiz-mark{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.quiz-circle{stroke:#248044;stroke-width:2}.quiz-mode #feedback[data-kind="quiz-complete"]{color:#186b35}.quiz-mode .semantic-cue,.quiz-mode.simplified-practice .semantic-cue{display:block;width:64px;flex:none}.quiz-mode .semantic-cue .word-photo,.quiz-mode .semantic-cue svg{width:64px;height:64px;margin:0;padding:0}.quiz-mode .step-rail{display:none}.quiz-mode #speak,.quiz-mode #voice-note{display:none}.quiz-mode .word-panel{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.quiz-mode .word-panel h1{margin:0}
.quiz-mode .semantic-cue svg{display:block}
@media(max-width:570px){.mode-cards{grid-template-columns:1fr;gap:16px}.mode-card{min-height:200px;padding:20px}.mode-card span{font-size:17px}.home-view{margin:14px auto}.quiz-mode.simplified-practice .grid-shell{width:min(100%,360px)}}
.quiz-clock{margin:10px 0 0 auto;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);text-align:right;width:fit-content;max-width:100%;font-variant-numeric:tabular-nums;line-height:1.4}.quiz-clock span{display:block;font-size:12px}.quiz-clock strong{font-size:22px}.quiz-mode .practice-side{display:flex;flex-direction:column;align-self:stretch}.quiz-mode .quiz-clock{margin-top:auto}.quiz-mode .next-row{margin-bottom:10px}.class-entry{margin-top:22px}#class-join-fields input{display:block;width:100%;padding:10px;border:1px solid #acb8a2;border-radius:8px;margin:8px 0 16px;background:#fffefb}#class-code{text-transform:uppercase;letter-spacing:3px}#class-dialog .button{margin:4px 4px 4px 0;white-space:normal}.quiz-results{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.class-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.podium-place{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:14px 8px;border-radius:10px;background:var(--soft);overflow-wrap:anywhere}.podium-place strong{color:var(--green)}.podium-place small{font-size:12px}.quiz-results table,#class-dialog table{width:100%;border-collapse:collapse;font-size:14px}.quiz-results th,.quiz-results td,#class-dialog th,#class-dialog td{text-align:left;padding:9px 5px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.quiz-results caption,#class-dialog caption{font-size:12px;text-align:left}.is-me{background:var(--soft)}#class-again{margin-top:20px}@media(max-width:570px){.class-podium{grid-template-columns:1fr}.quiz-results{padding:12px}.quiz-clock strong{font-size:20px}}
.leaderboard-page{max-width:980px}.leaderboard-page table{width:100%;border-collapse:collapse;font-size:17px}.leaderboard-page td,.leaderboard-page th{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.leaderboard-page caption{text-align:left;font-size:14px}#board-best{margin:22px 0;font-weight:700}.leaderboard-page .podium-place{padding:24px 12px;font-size:22px}.leaderboard-page .podium-place small{font-size:15px}.leaderboard-page .podium-place strong{font-size:28px}.standalone-class-note{display:none}body[data-standalone] #class-open,body[data-standalone] #teacher-class{display:none}body[data-standalone] .standalone-class-note{display:block}
.teacher-words-heading,.dictation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.teacher-words-heading{margin:18px 0 10px}.teacher-words-heading .field-label{margin:0 auto 0 0}.teacher-words-heading .button,.dictation-actions .button{min-height:64px;font-size:22px}#dictation-pending{display:block;width:100%;min-height:64px;border:1px solid #acb8a2;border-radius:8px;background:#fffefb;padding:10px 14px;font-size:22px;margin:8px 0}#dictation-review{margin-bottom:16px}#dictation-status{margin:8px 0}
.word-card .word-name,.word-card:only-child .word-name{display:flex;flex-wrap:wrap;justify-content:center;min-width:0;font-size:clamp(40px,calc(200px / var(--word-length)),160px);line-height:1.35}
.word-character{display:inline-block}
.demo-navigation{display:flex;gap:8px;margin-top:6px}.demo-navigation .button{flex:1;min-height:64px;font-size:22px;padding-inline:6px;white-space:nowrap}
@media(orientation:portrait){.simplified-practice.has-demo-navigation .grid-shell{width:min(100%,max(300px,calc(100svh - 564px)))}}
@media(min-width:571px) and (max-width:759px) and (orientation:portrait){
  .simplified-practice .grid-shell{width:min(100%,max(300px,calc(100svh - 525px)))}
  .simplified-practice.has-demo-navigation .grid-shell{width:min(100%,max(300px,calc(100svh - 630px)))}
}
.word-panel h1:not(.concealed),.simplified-practice .word-panel h1:not(.concealed){display:flex;flex-wrap:wrap;max-width:100%;font-size:clamp(32px,calc(256px / var(--word-length)),64px);line-height:1;letter-spacing:0}
#group-cards .mode-card span{overflow-wrap:anywhere}
@media(orientation:portrait),(max-width:759px){
  .quiz-mode.simplified-practice .practice-side{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .quiz-mode.simplified-practice .practice-side>*{grid-column:1/-1}
  .quiz-mode.simplified-practice .next-row{grid-column:1;margin-bottom:0}
  .quiz-mode.simplified-practice .quiz-clock{grid-column:2;margin:6px 0 0 8px;align-self:end}
}

#practice-stars{font-size:17px;white-space:nowrap;color:var(--green)}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#group-cards.curriculum-cards{grid-template-columns:minmax(0,1fr)}
#group-cards.curriculum-cards .mode-card{min-height:220px;padding:24px}
#group-cards.curriculum-cards strong{font-size:clamp(36px,6vw,64px);overflow-wrap:anywhere}

body.menu-view{min-height:100svh;display:flex;flex-direction:column}
body.writing-view{min-height:100svh;display:flex;flex-direction:column}
.writing-view .app-header{flex:none;width:100%;margin:0 auto}
.writing-view main{flex:none;width:100%;margin:0 auto}
.writing-view .app-footer{flex:none;width:100%;margin:auto auto 0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.writing-view #previous-step{min-width:200px;min-height:72px;font-size:24px}
.menu-view .app-header{flex:none;width:100%;margin:0 auto;padding-block:6px}
.menu-view main{flex:1;display:flex;width:100%;margin:0 auto;padding-block:12px}
.menu-view #group-view,.menu-view #choose-view{flex:1;min-width:0;width:100%;max-width:1000px;margin:0 auto;display:flex;flex-direction:column}
.menu-view .app-footer{padding-block:0}
.menu-view .choice-footer{flex:none;justify-content:flex-start;margin-top:auto;padding-top:12px;padding-bottom:env(safe-area-inset-bottom)}
.menu-view .choice-footer .button{min-height:72px;min-width:200px;font-size:24px}
.menu-view #group-cards{flex:1;gap:16px;margin-top:0;margin-bottom:12px}
.menu-view #group-cards .mode-card{min-height:160px;padding:20px;gap:12px}
.menu-view #word-cards{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:12px}
.menu-view .word-card{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto;gap:8px;min-height:0;padding:12px}
.menu-view .word-card .word-name{font-size:clamp(32px,calc(180px / var(--word-length)),100px);align-self:center}
.menu-view .word-card .word-photo,.menu-view .word-card svg{width:min(100%,max(140px,calc(100svh - 440px)),240px);height:auto;aspect-ratio:1}
.menu-view .word-card .stamp{grid-row:3}
@media(min-width:571px) and (orientation:portrait){
  .menu-view #word-cards{grid-template-columns:minmax(0,1fr)}
  .menu-view .word-card{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
  .menu-view .word-card .word-name{grid-column:1;grid-row:1;font-size:clamp(32px,calc(280px / var(--word-length)),min(160px,calc((100svh - 420px) / 5)))}
  .menu-view .word-card .word-photo,.menu-view .word-card svg{grid-column:2;grid-row:1/3;width:min(100%,calc((100svh - 360px) / 3),280px)}
  .menu-view .word-card .stamp{grid-column:1;grid-row:2}
}
@media(max-width:570px){
  .menu-view #word-cards,.menu-view #group-cards{grid-template-columns:minmax(0,1fr)}
  .menu-view .word-card{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
  .menu-view .word-card .word-name{font-size:clamp(32px,calc(150px / var(--word-length)),100px)}
}
.task-view{width:100%;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:0;text-align:center}.task-view h1{margin:0;font-size:36px}.task-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%}.task-options:empty{display:none}.task-option{min-height:160px;padding:20px;border:2px solid #9eaf94;border-radius:20px;background:var(--card);color:var(--green);display:flex;flex-direction:column;justify-content:center;gap:12px}.task-option strong{font-size:40px}.task-option:hover{background:var(--soft)}.menu-view:has(#task-view:not([hidden])) .app-footer{width:100%;justify-content:flex-start;padding:12px 24px}.menu-view #previous-step{min-width:200px;min-height:72px;font-size:24px}.work-card{width:100%;padding:18px;border:2px solid var(--line);border-radius:16px;background:var(--card);text-align:center}.work-card h2{margin:0 0 12px;font-size:26px}.work-card-body{display:grid;grid-template-columns:min(220px,28svh) minmax(0,1fr);align-items:center;gap:14px}.work-card-body>.word-photo,.work-card-body>svg{width:100%;aspect-ratio:1;object-fit:contain}.work-sentence{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0}.sentence-context{flex:0 0 auto;font-size:28px}.work-word{display:flex;flex:0 1 auto;min-width:0;width:min(calc(var(--word-length) * min(160px,27svh)),100%)}.work-slot{flex:1 1 0;min-width:0;container-type:inline-size}.work-glyph{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:min(110px,70cqw);color:var(--green)}.original-ink{display:block;width:100%;height:100%}.work-label{display:block;font-size:16px;overflow-wrap:anywhere}.summary-work{grid-column:1/-1;margin-top:14px}.help-emphasis{outline:4px solid #bf6c36;outline-offset:3px}#use-guidance{min-height:72px;width:100%;font-size:26px}.task-view #task-next{min-height:72px;font-size:24px}.has-recall #semantic-cue[hidden]{display:none!important}
@media(max-height:650px){.task-view{gap:10px}.task-view h1{font-size:30px}.task-option{min-height:130px;padding:14px}.task-option strong{font-size:34px}.work-card{padding:12px}.work-card h2{margin-bottom:8px}}

@media(orientation:portrait){.work-card-body{grid-template-columns:minmax(0,1fr);gap:8px}.work-card-body>.word-photo,.work-card-body>svg{width:min(220px,25svh);justify-self:center}}

.v4-practice.simplified-practice .semantic-cue{display:block;width:60px;flex:none}.v4-practice .semantic-cue .word-photo,.v4-practice .semantic-cue svg{display:block;width:60px;height:60px;margin:0;padding:0}.simplified-practice .speech-button{width:60px;min-width:60px;height:60px;min-height:60px;padding:12px;justify-content:center}.speech-button:focus-visible{outline:3px solid #bf6c36;outline-offset:3px}#undo-stroke,#reload-writer{min-height:64px;width:100%;font-size:22px}
.summary-stats{grid-template-columns:repeat(2,1fr)}
#group-cards.curriculum-cards.grade-cards{grid-template-columns:repeat(3,minmax(0,1fr))}#group-cards.grade-cards .mode-card{min-height:140px;padding:18px}#group-cards.grade-cards strong{font-size:clamp(30px,4vw,44px)}@media(max-width:570px){#group-cards.curriculum-cards.grade-cards{grid-template-columns:repeat(2,minmax(0,1fr))}#group-cards.grade-cards .mode-card{min-height:118px;padding:12px}}

#class-dialog{max-width:560px;max-height:calc(100dvh - 16px);padding:20px;font-size:18px}#class-dialog .dialog-heading{align-items:center;margin-bottom:12px}#class-dialog .dialog-heading h2{font-size:28px;margin:0}#class-dialog .icon-button{width:56px;height:56px;flex:none}#class-dialog .field-label{margin-top:12px}#class-dialog input{margin:6px 0 12px;min-height:56px;font-size:24px}#class-dialog .button{min-height:56px;font-size:22px}#class-dialog #class-join{width:100%;min-height:64px;margin:6px 0}#class-identity:empty,#class-status:empty{display:none}#class-dialog #class-identity,#class-dialog #class-status,#class-dialog #class-switch-note{margin:8px 0}@media(max-width:570px){#class-dialog{width:calc(100% - 16px);padding:14px}#class-dialog .dialog-heading h2{font-size:24px}}
