/* Shared generated raster skins supply all artwork; CSS only lays out and animates it. */
.vocabulary-mode #reading-exit,.vocabulary-mode .sound,.vocabulary-mode .reading-back{border-image-source:url('assets/writing/button-secondary.png');border-image-slice:55 125 fill}
.vocabulary-stage{width:100%;max-width:1000px;height:100%;max-height:780px;display:grid;grid-template-rows:auto minmax(0,1fr) 54px 25px;gap:10px;padding:8px 0 14px}
.vocabulary-enter{animation:reading-appear .2s ease}
.vocabulary-question{background:none;border:13px solid transparent;border-image:url('assets/reading/question-panel.png') 150 fill / 13px / 0 stretch;padding:4px 14px;text-align:center;min-width:0}
.vocabulary-question-meta{display:flex;justify-content:space-between;gap:10px;color:#516b42;font-size:10px;letter-spacing:.6px;line-height:1.4}
.vocabulary-question p{font-size:13px;margin:3px 0 4px;line-height:1.3}
.vocabulary-question h2{font-family:Verdana,Arial,sans-serif;font-size:25px;line-height:1.25;margin:0;color:#294830;outline:0}
.vocabulary-board{min-height:0;min-width:0;width:100%;display:flex;justify-content:center}
.vocabulary-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}
.vocabulary-slot{min-width:0;min-height:0;position:relative}
.vocabulary-picture{background:none;border:8px solid transparent;border-image:url('assets/reading/answer-a.png') 55 125 fill / 8px / 0 stretch;border-radius:0;box-shadow:none;width:100%;height:100%;min-height:44px;padding:5px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:transform .12s;touch-action:manipulation}
.vocabulary-picture:disabled{opacity:1;cursor:default}
.vocabulary-picture:hover:not(:disabled){transform:translateY(-1px)}
.vocabulary-picture:active:not(:disabled){transform:scale(.98)}
.vocabulary-picture.is-correct{border-image-source:url('assets/reading/answer-correct.png')}
.vocabulary-picture.is-incorrect{border-image-source:url('assets/reading/answer-incorrect.png')}
.vocabulary-art{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;pointer-events:none;user-select:none}
.vocabulary-pop{position:absolute;inset:0;pointer-events:none;display:block}
.pop-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;opacity:0;animation:vocabulary-frame .18s step-end both}
.pop-frame-1{animation-delay:.12s}.pop-frame-2{animation-delay:.27s}.pop-frame-3{animation-delay:.42s}.pop-frame-4{animation-delay:.57s;animation-duration:.15s}
.is-popping .vocabulary-art{animation:vocabulary-pop .72s ease both}
.is-highlighted{animation:vocabulary-highlight .65s ease}
.vocabulary-action-area{display:grid;grid-template-columns:1fr 148px;align-items:center;gap:14px;min-height:0}
.vocabulary-feedback{background:none;border:8px solid transparent;border-image:url('assets/reading/question-panel.png') 150 fill / 8px / 0 stretch;padding:1px 6px;font-size:13px;line-height:1.4;margin:0;align-self:stretch;display:flex;align-items:center;min-width:0}
.vocabulary-action-area .reading-next{min-height:48px;height:100%;margin:0}
.vocabulary-stage .reading-progress{min-height:0;height:100%;margin:0}
@keyframes vocabulary-pop{0%{transform:scale(1);opacity:1}20%{transform:scale(1.1);opacity:1}40%{transform:scale(.9);opacity:.8}55%,100%{transform:scale(.1);opacity:0}}
@keyframes vocabulary-frame{0%{opacity:1}100%{opacity:0}}
@keyframes vocabulary-highlight{0%,100%{opacity:1}40%{opacity:.7}}
@media(max-width:1100px){.vocabulary-stage{max-width:900px;gap:9px}.vocabulary-question h2{font-size:23px}.vocabulary-grid{gap:8px}}
@media(max-width:700px) and (orientation:portrait){
 .vocabulary-stage{max-height:none;grid-template-rows:auto minmax(0,1fr) 48px 20px;gap:8px;padding:4px 0 10px}
 .vocabulary-question{border-width:10px;border-image-width:10px;padding:2px 6px}
 .vocabulary-question-meta{font-size:8px;line-height:1.4;letter-spacing:.3px}.vocabulary-question p{font-size:12px;margin:3px 0}.vocabulary-question h2{font-size:20px}
 .vocabulary-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:6px}
 .vocabulary-picture{border-width:6px;border-image-width:6px;padding:3px}
 .vocabulary-action-area{grid-template-columns:1fr 110px;gap:8px}.vocabulary-feedback{font-size:11px;border-width:6px;border-image-width:6px;padding:1px 3px}
 .vocabulary-action-area .reading-next{min-height:44px;font-size:10px}
}
@media(max-width:700px) and (orientation:portrait) and (max-height:650px){
 .vocabulary-mode header{height:50px}
 .vocabulary-stage{grid-template-rows:auto minmax(0,1fr) 44px 18px;gap:5px;padding:2px 0 6px}
 .vocabulary-question{border-width:7px;border-image-width:7px;padding:1px 4px}.vocabulary-question-meta{font-size:8px}.vocabulary-question p{font-size:11px;margin:2px 0}.vocabulary-question h2{font-size:18px}
 .vocabulary-grid{gap:4px}.vocabulary-picture{border-width:5px;border-image-width:5px;padding:2px}
 .vocabulary-feedback{font-size:10px}.vocabulary-action-area{grid-template-columns:1fr 104px}
 .vocabulary-stage .reading-progress{gap:4px}
}
@media(orientation:landscape) and (max-height:600px){
 .vocabulary-stage{max-width:1000px;max-height:none;grid-template-rows:52px minmax(0,1fr) 44px 18px;gap:5px;padding:2px 0 5px}
 .vocabulary-question{display:grid;grid-template-columns:170px 1fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:10px;border-width:8px;border-image-width:8px;padding:1px 8px}
 .vocabulary-question-meta{grid-column:1;grid-row:1;font-size:8px;line-height:1;letter-spacing:0}.vocabulary-question p{grid-column:1;grid-row:2;font-size:11px;margin:0}.vocabulary-question h2{grid-column:2;grid-row:1/3;font-size:21px}
 .vocabulary-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:5px}.vocabulary-picture{border-width:5px;border-image-width:5px;padding:1px}
 .vocabulary-action-area{grid-template-columns:1fr 130px;gap:8px}.vocabulary-feedback{font-size:11px;border-width:5px;border-image-width:5px;padding:1px 6px}
 .vocabulary-action-area .reading-next{min-height:44px;font-size:10px}.vocabulary-stage .reading-progress{gap:5px}
}
@media(prefers-reduced-motion:reduce){.vocabulary-stage,.vocabulary-picture,.vocabulary-art,.pop-frame{animation:none!important;transition:none!important}.is-popping .vocabulary-art{opacity:0}.is-popping .pop-frame-2{opacity:1}}
