.lesson-game{--d-good:oklch(53% .14 145);--d-good-soft:oklch(95% .045 145);--d-good-ink:oklch(34% .12 145);--d-bad:oklch(56% .19 27);--d-bad-soft:oklch(95% .05 27);--d-bad-ink:oklch(43% .15 27);background:var(--surface);border:2px solid var(--line);border-top:7px solid var(--lv);border-radius:var(--radius-card);box-shadow:0 22px 44px -36px var(--lv-deep);margin:38px 0;padding:32px 34px 30px;position:relative;overflow:hidden;container-type:inline-size}.lesson-game.is-success{border-color:var(--d-good,#2f8a4a);box-shadow:0 0 0 5px var(--d-good-soft,#e5f5e8)}.lesson-game.is-error{animation:.4s g-shake}.game-head{flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 6px;display:flex}.game-badge{background:var(--lv);color:#fff;font:800 15px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;box-shadow:0 3px 0 var(--lv-deep);border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 8px;display:inline-flex}.game-badge svg{flex:none;width:20px;height:20px}.lesson-game h3.game-title{color:var(--ink);font:600 clamp(24px,3vw,30px)/1.15 var(--serif);letter-spacing:-.01em;text-transform:none;background:0 0;margin:0;padding:0;display:block}.game-instructions{color:var(--ink-2);margin:10px 0 20px;font-size:18px;line-height:1.55}.game-status{background:var(--lv-tint);color:var(--lv-deep);font:800 16px/1 var(--sans);font-variant-numeric:tabular-nums;border-radius:999px;margin-left:auto;padding:6px 12px}.game-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.game-feedback{min-height:0;font:600 18px/1.5 var(--sans);color:var(--ink-2);margin:16px 0 0}.game-feedback:empty{display:none}.game-feedback.is-success,.game-feedback.is-error{border-radius:14px;align-items:flex-start;gap:10px;padding:12px 16px;display:flex}.game-feedback.is-success{background:var(--d-good-soft);color:var(--d-good-ink);animation:g-badge .5s var(--ease-bounce)}.game-feedback.is-error{background:var(--d-bad-soft);color:var(--d-bad-ink)}.game-feedback.is-success:before{content:"★";background:var(--sun);width:28px;height:28px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:16px;line-height:1;display:grid}.game-feedback.is-error:before{content:"↻";width:28px;height:28px;color:var(--d-bad-ink);background:#fff;border-radius:50%;flex:none;place-items:center;font-size:16px;line-height:1;display:grid}.g-key{border:2px solid var(--ink);border-radius:var(--radius-key);background:var(--surface);min-height:52px;color:var(--ink);font:700 19px/1.2 var(--sans);text-align:center;cursor:pointer;box-shadow:0 4px 0 var(--ink);transition:transform .14s var(--ease-bounce),box-shadow .14s ease,background-color .14s ease,color .14s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;gap:6px;padding:10px 16px;display:inline-flex}.g-key:hover:not(:disabled):not(.is-selected):not(.is-correct):not(.is-wrong){box-shadow:0 7px 0 var(--ink);background:var(--lv-tint);color:var(--lv-deep);transform:translateY(-3px)}.g-key:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(4px)}.g-key.is-selected{box-shadow:0 0 0 var(--lv-deep);background:var(--lv);color:#fff;border-color:var(--lv-deep);transform:translateY(4px)}.g-key.is-correct{border-color:var(--d-good);background:var(--d-good-soft);color:var(--d-good-ink);box-shadow:0 4px 0 var(--d-good);animation:g-pop .42s var(--ease-bounce)}.g-key.is-wrong{border-color:var(--d-bad);background:var(--d-bad-soft);color:var(--d-bad-ink);box-shadow:0 4px 0 var(--d-bad);animation:.4s g-shake}.g-key.is-correct:after{content:"✓";font-weight:800}.g-key.is-wrong:after{content:"✗";font-weight:800}.g-key:disabled{cursor:default}.g-key:focus-visible,.cw-cell input:focus-visible,.ws-cell:focus-visible,.rd-word:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.cw-layout{grid-template-columns:minmax(0,auto) minmax(240px,1fr);align-items:start;gap:28px;display:grid}.cw-grid{grid-template-columns:repeat(var(--cols),var(--cell));--cell:min(clamp(30px,5.2vw,46px),calc((100cqw - 16px - (var(--cols) - 1) * 3px) / var(--cols)));background:var(--lv-tint);border-radius:16px;gap:3px;width:max-content;max-width:100%;padding:8px;display:grid}.cw-cell{width:var(--cell);height:var(--cell);position:relative}.cw-cell.is-block{visibility:hidden}.cw-cell input{border:2px solid var(--ink);background:var(--surface);width:100%;height:100%;color:var(--ink);font:800 max(14px,calc(var(--cell) * .58))/1 var(--sans);text-align:center;text-transform:uppercase;caret-color:#0000;transition:background-color .12s ease,transform .12s var(--ease-bounce);border-radius:8px;padding:0}.cw-cell input.is-word{background:var(--sun-soft)}.cw-cell input.is-current{background:var(--sun);transform:scale(1.06)}.cw-cell input.is-correct{border-color:var(--d-good);background:var(--d-good-soft);color:var(--d-good-ink)}.cw-cell input.is-wrong{border-color:var(--d-bad);background:var(--d-bad-soft);color:var(--d-bad-ink)}.cw-cell input.is-revealed{color:var(--lv-deep);font-style:italic}.cw-num{z-index:1;color:var(--ink-2);font:800 max(10px,calc(var(--cell) * .26))/1 var(--sans);pointer-events:none;position:absolute;top:2px;left:4px}.cw-clues{gap:18px;display:grid}.cw-clues h4{color:var(--lv-deep);font:800 16px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}.cw-clues ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cw-clue{width:100%;color:var(--ink);font:500 18px/1.4 var(--sans);text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:12px;gap:10px;padding:8px 10px;display:flex}.cw-clue b{min-width:2.2em;color:var(--lv-deep);flex:none;font-weight:800}.cw-clue:hover{background:var(--lv-tint)}.cw-clue.is-current{border-color:var(--lv);background:var(--sun-soft)}.cw-clue.is-solved{color:var(--d-good-ink)}.cw-clue.is-solved b:after{content:" ✓"}.ws-layout{grid-template-columns:minmax(0,auto) minmax(200px,1fr);align-items:start;gap:28px;display:grid}.ws-grid{grid-template-columns:repeat(var(--size),var(--cell));--cell:min(clamp(28px,4.6vw,44px),calc((100cqw - 16px - (var(--size) - 1) * 2px) / var(--size)));background:var(--lv-tint);touch-action:none;user-select:none;border-radius:16px;gap:2px;width:max-content;max-width:100%;padding:8px;display:grid}.ws-cell{width:var(--cell);height:var(--cell);color:var(--ink);font:800 max(14px,calc(var(--cell) * .52))/1 var(--sans);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:background-color .1s,transform .1s;display:grid}.ws-cell:hover{background:var(--surface)}.ws-cell.is-anchor{background:var(--sun);transform:scale(1.12)}.ws-cell.is-path{background:var(--sun-soft)}.ws-cell.is-found{background:var(--found-color,var(--mint));color:var(--ink)}.ws-cell.is-revealed{box-shadow:inset 0 0 0 2px var(--lv)}.ws-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ws-list li{border:2px solid var(--lv-soft);font:700 18px/1.2 var(--sans);color:var(--ink);border-radius:999px;padding:8px 14px}.ws-list li .ws-hint{color:var(--ink-2);font-weight:500}.ws-list li.is-found{border-color:var(--d-good);background:var(--d-good-soft);color:var(--d-good-ink)}.ws-list li.is-found .ws-word{text-decoration:line-through 2px}.ws-list li.is-revealed{border-style:dashed}.mt-board{grid-template-columns:1fr 1fr;gap:12px 28px;display:grid}.mt-col{align-content:start;gap:12px;display:grid}.mt-col h4{color:var(--lv-deep);font:800 16px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;margin:0 0 2px}.mt-col .g-key{text-align:left;justify-content:flex-start;width:100%}.g-key.is-matched{border-color:var(--pair-color,var(--d-good));background:color-mix(in oklab,var(--pair-color,var(--d-good)) 22%,var(--surface));color:var(--ink);box-shadow:0 4px 0 var(--pair-color,var(--d-good));cursor:default;animation:g-pop .42s var(--ease-bounce)}.g-key.is-matched:before{content:attr(data-pair-mark);background:var(--pair-color,var(--d-good));color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:14px;display:inline-grid}.mm-board{perspective:900px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.mm-card{cursor:pointer;min-height:104px;transform-style:preserve-3d;transition:transform .45s var(--ease-out);background:0 0;border:0;padding:0;position:relative}.mm-card.is-flipped,.mm-card.is-matched{transform:rotateY(180deg)}.mm-face{border:2px solid var(--ink);border-radius:var(--radius-key);backface-visibility:hidden;font:700 19px/1.25 var(--sans);box-shadow:0 4px 0 var(--ink);place-items:center;padding:10px;display:grid;position:absolute;inset:0}.mm-back{background:repeating-linear-gradient(45deg,var(--lv) 0 12px,var(--lv-deep) 12px 24px);color:#fff;font-size:30px}.mm-front{background:var(--surface);color:var(--ink);transform:rotateY(180deg)}.mm-card.is-matched .mm-front{border-color:var(--d-good);background:var(--d-good-soft);color:var(--d-good-ink);box-shadow:0 4px 0 var(--d-good)}.mm-card.is-miss .mm-front{border-color:var(--d-bad);background:var(--d-bad-soft)}.so-tray{border:2px dashed var(--lv-soft);background:var(--lv-tint);border-radius:18px;flex-wrap:wrap;gap:10px;min-height:68px;margin-bottom:18px;padding:12px;display:flex}.so-tray:empty:before{content:"All sorted. Press Check.";color:var(--lv-deep);font:700 17px/1 var(--sans);align-self:center}.so-bins{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.so-bin{border:2px solid var(--ink);background:var(--surface);min-height:150px;box-shadow:0 4px 0 var(--ink);text-align:left;cursor:pointer;transition:transform .14s var(--ease-bounce),box-shadow .14s ease,background-color .14s ease;border-radius:18px;flex-direction:column;gap:10px;padding:14px;display:flex}.so-bin.is-ready{background:var(--lv-tint);box-shadow:0 7px 0 var(--lv-deep);border-color:var(--lv-deep);transform:translateY(-3px)}.so-bin-label{color:var(--lv-deep);font:800 18px/1.2 var(--sans);text-align:left;cursor:pointer;background:0 0;border:0;padding:4px 0}.so-bin-label:after{content:" ↓";opacity:.6}.so-bin-items{flex-wrap:wrap;gap:8px;display:flex}.so-bin-items .g-key{min-height:44px;padding:8px 12px;font-size:17px}.us-list{gap:18px;margin:0;padding:0;list-style:none;display:grid}.us-item{border:2px solid var(--line-2);border-radius:18px;padding:16px}.us-hint{color:var(--ink-2);margin:0 0 10px;font-size:17px}.us-answer{border:2px dashed var(--lv-soft);background:var(--lv-tint);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;min-height:62px;margin-bottom:10px;padding:8px 10px;display:flex}.us-answer.is-correct{border-style:solid;border-color:var(--d-good);background:var(--d-good-soft)}.us-answer.is-wrong{border-style:solid;border-color:var(--d-bad);background:var(--d-bad-soft);animation:.4s g-shake}.us-pieces{flex-wrap:wrap;gap:8px;display:flex}.us-pieces .g-key,.us-answer .g-key{min-height:46px;padding:8px 13px}.us-pieces .g-key:disabled{opacity:.28;box-shadow:none;transform:none}.us-letters .g-key{text-transform:uppercase;min-width:46px;padding:8px}.us-solution{color:var(--lv-deep);font:700 18px/1.4 var(--sans);margin:10px 0 0}.rd-meta{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.rd-meta span{background:var(--lv-tint);color:var(--lv-deep);font:700 15px/1.3 var(--sans);border-radius:999px;padding:5px 12px}.rd-text{background:var(--paper);border-left:6px solid var(--sun);max-width:66ch;font:400 21px/1.75 var(--serif);color:var(--ink);border-radius:18px;margin:0 0 6px;padding:22px 26px}.rd-text p{margin:0 0 14px}.rd-text p:last-child{margin-bottom:0}.rd-text h4{font:600 24px/1.2 var(--serif);margin:0 0 10px}.rd-word{color:inherit;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;margin:0 -1px;padding:1px 2px;transition:background-color .12s;display:inline}.rd-find .rd-word:hover{background:var(--lv-tint)}.rd-word.is-selected{background:var(--sun);box-shadow:0 2px 0 var(--ink)}.rd-word.is-correct{background:var(--d-good-soft);color:var(--d-good-ink);box-shadow:0 2px 0 var(--d-good)}.rd-word.is-wrong{background:var(--d-bad-soft);color:var(--d-bad-ink);text-decoration:line-through}.rd-word.is-missed{box-shadow:0 0 0 2px var(--lv);background:var(--lv-tint)}.rd-gloss{border-bottom:2px dotted var(--lv);cursor:help}.rd-tip{z-index:20;background:var(--ink);max-width:300px;color:var(--paper);font:500 16px/1.45 var(--sans);box-shadow:0 12px 26px -12px var(--ink);pointer-events:none;border-radius:12px;padding:10px 14px;position:absolute}.rd-task{border-top:2px dashed var(--line-2);margin:24px 0 0;padding-top:20px}.rd-task h4{color:var(--lv-deep);font:800 17px/1.2 var(--sans);letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px}.rd-q{margin:0 0 18px}.rd-q p{margin:0 0 10px;font-size:19px;font-weight:600}.rd-options{flex-wrap:wrap;gap:10px;display:flex}.lesson-map{border:2px solid var(--lv-soft);border-radius:var(--radius-card);background:var(--surface);margin:34px 0 8px;padding:18px 20px}.lesson-map-label{color:var(--lv-deep);font:800 15px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px}.lesson-map ol{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lesson-map a{border:2px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:600 16px/1.25 var(--sans);transition:transform .14s var(--ease-bounce),border-color .14s ease,background-color .14s ease;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;text-decoration:none;display:inline-flex}.lesson-map a:hover{border-color:var(--lv);background:var(--lv-tint);transform:translateY(-2px)}.lesson-map a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.lesson-map-n{background:var(--lv-tint);min-width:28px;height:28px;color:var(--lv-deep);font:800 14px/1 var(--sans);border-radius:50%;flex:none;place-items:center;display:inline-grid}.lesson-map-tag{background:var(--lv-tint);color:var(--lv-deep);font:800 14px/1.3 var(--sans);border-radius:999px;padding:2px 8px}.lesson-map .is-games a{border-color:var(--sun);background:var(--sun-soft)}.lesson-map .is-games .lesson-map-n{background:var(--sun);color:var(--ink)}.lesson-map .is-extra a{color:var(--ink-2);border-style:dashed}.is-teaching-mode .lesson-map{display:none}@media (width<=600px){.lesson-map{padding:14px 0 12px 14px}.lesson-map ol{scroll-snap-type:x proximity;scrollbar-width:thin;flex-wrap:nowrap;padding:2px 14px 8px 2px;overflow-x:auto}.lesson-map li{scroll-snap-align:start;flex:none}.lesson-map a{max-width:250px}.lesson-map-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}[id^=section-],[id^=production-ladder-]{scroll-margin-top:calc(var(--lesson-bar-height,56px) + 16px)}@keyframes g-pop{0%{transform:scale(.9)}45%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes g-badge{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{transform:none}}@keyframes g-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@media (width<=820px){.cw-layout,.ws-layout{grid-template-columns:1fr}.cw-grid,.ws-grid{margin:0 auto}}@media (width<=600px){.lesson-game{padding:24px 16px}.mt-board{gap:10px 12px}.mt-col .g-key{padding:8px 10px;font-size:16px}.rd-text{padding:16px;font-size:19px}}@media (prefers-reduced-motion:reduce){.lesson-game,.g-key,.mm-card,.cw-cell input,.ws-cell,.game-feedback{transition:none!important;animation:none!important}}@media print{.lesson-game{break-inside:avoid;box-shadow:none}.game-actions{display:none}}
