.blast-vocab-picker{max-width:580px;margin:0 auto;padding:8px 0 12px}.blast-vocab-picker .large-title{font-size:clamp(40px,11vw,62px);line-height:.95;margin:10px 0 15px}.blast-picker-note{font:700 17px/1.45 'Nunito',sans-serif;margin:0 0 15px}.blast-review-note{font:600 13px/1.5 'Nunito',sans-serif;opacity:.76;margin:0 0 15px}.blast-level-label{display:flex;justify-content:space-between;align-items:center;gap:15px;font:800 14px/1.3 'Nunito',sans-serif;margin:14px 0}.blast-level-label select{font:800 15px/1.3 'Nunito',sans-serif;border:1px solid #a96e4c66;background:#fff5e3;color:#352521;padding:10px 12px;border-radius:9px;min-height:44px}.blast-word-grid{display:grid;grid-template-columns:1fr;gap:10px}.blast-word-option{appearance:none;width:100%;text-align:left;border:2px solid #b58d6c44;border-radius:15px;background:#fbf1de;color:#382923;padding:15px 16px;display:flex;flex-direction:column;gap:5px;cursor:pointer;touch-action:manipulation}.blast-word-option.is-selected{border-color:#a3482b;background:#f7e1bd;box-shadow:0 0 0 1px #a3482b}.blast-word-option:focus-visible{outline:3px solid #9c442a;outline-offset:3px}.blast-word-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.blast-word-top strong{font:900 24px/1.2 'Nunito',sans-serif}.blast-word-top b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#dfc4a3;font-size:20px}.is-selected .blast-word-top b{background:#a3482b;color:#fff1db}.blast-word-meaning{font:800 16px/1.35 'Nunito',sans-serif}.blast-word-example{font:700 16px/1.5 'Nunito',sans-serif;color:#705343;border-top:1px solid #ab805b33;padding-top:8px;margin-top:4px}.blast-word-example mark,.blast-context-model mark{background:#edcb87;color:#34251f;border-radius:4px;padding:0 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.blast-word-option small{font:800 10px/1.5 'Nunito',sans-serif;letter-spacing:.07em;opacity:.65;margin-top:3px}.blast-pick-footer{position:sticky;bottom:0;background:#fff3ddf5;backdrop-filter:blur(12px);padding:12px 10px max(8px,env(safe-area-inset-bottom));border-top:1px solid #ad805b55;margin:18px -2px 0;display:flex;flex-direction:column;gap:8px;z-index:6;border-radius:14px 14px 0 0;color:#382923}.blast-pick-footer>strong{text-align:center;font:900 17px/1.2 'Nunito',sans-serif}.blast-pick-footer .primary{min-height:52px;margin:0}.blast-pick-footer .primary[disabled]{opacity:.45;cursor:default}.blast-pick-footer .link{font-size:13px;min-height:35px}.blast-selected-five{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:5px 0 18px}.blast-selected-five span{border:1px solid #b17b4b77;background:#fff2d915;color:inherit;padding:7px 12px;border-radius:30px;font:800 16px/1.2 'Nunito',sans-serif}.blast-focus-label{font:800 14px/1.4 'Nunito',sans-serif;margin:0 0 10px!important;color:inherit;opacity:.8}.blast-context-model{font:800 17px/1.45 'Nunito',sans-serif;margin:12px 0 0!important;color:inherit;overflow-wrap:anywhere}.blast-page .blast-prompt h1{font-size:clamp(32px,8vw,48px)}
@media(min-width:650px){.blast-word-grid{grid-template-columns:1fr 1fr}.blast-word-example{font-size:15px}}

/* Dedicated picker namespace keeps the retired in-game picker rules out. */
.blast-vocab-picker{width:100%;min-width:0;padding:8px 18px 16px;border:0;border-radius:0;background:transparent;text-align:left}
.blast-vocab-picker .large-title{font-size:clamp(32px,8.5vw,44px);line-height:1.08;letter-spacing:-.8px;margin:10px 0 12px}
.blast-vocab-picker .blast-picker-note{font-size:16px;line-height:1.45}
.blast-vocab-picker .blast-level-label{flex-wrap:wrap;gap:8px;font-size:15px}
.blast-vocab-picker .blast-level-label select{font-size:16px;max-width:100%}
.blast-word-grid{grid-template-columns:minmax(0,1fr)}
.blast-word-option{position:relative;min-width:0;max-width:100%;height:auto;white-space:normal;padding:14px;text-align:left}
.blast-word-option>span{position:static;inset:auto;min-width:0;width:100%;white-space:normal;overflow-wrap:break-word}
.blast-word-top{width:100%;min-width:0;align-items:flex-start}
.blast-word-top strong{min-width:0;overflow-wrap:anywhere;font-size:23px;line-height:1.25}
.blast-word-top b{flex:0 0 30px;line-height:1.2}
.blast-word-meaning,.blast-word-example{display:block;white-space:normal;overflow-wrap:anywhere}
.blast-word-example{font-size:16px;line-height:1.5}
.blast-vocab-picker .blast-pick-footer{display:flex;grid-template-columns:none;gap:10px;margin:14px 0 0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:#f7f2e9;border-radius:0;backdrop-filter:none}
.blast-pick-footer .primary{width:100%;padding:13px 16px;font-size:17px;min-height:50px;flex-shrink:0}
.blast-pick-footer .primary>span{position:static;inset:auto;min-width:0;white-space:normal}
.blast-pick-footer .link{align-self:center;min-height:44px;padding:8px 10px;font-size:14px}
@media(max-width:350px){.blast-vocab-picker{padding-inline:14px}.blast-word-option{padding:12px}.blast-word-top strong{font-size:21px}}

/* v108: keep the round actions inside the phone's usable screen. The content
   reserves the bar's space, so small screens/large text can still scroll clear. */
body[data-screen="blast"] .blast-page{
 --blast-pad-height:clamp(104px,17svh,132px);
 padding:10px 20px calc(96px + env(safe-area-inset-bottom,0px));
 scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));
}
body[data-screen="blast"] .blast-scoreboard{padding:8px 4px}
body[data-screen="blast"] .blast-scoreboard strong{font-size:26px}
body[data-screen="blast"] .blast-prompt{height:104px;min-height:104px;flex:0 0 104px;margin:10px 0 0;overflow-y:auto;justify-content:safe center}
body[data-screen="blast"] .blast-prompt h1{font-size:clamp(26px,7vw,36px);margin-top:6px}
body[data-screen="blast"] .blast-context-model{font-size:16px;line-height:1.3;margin-top:7px!important}
body[data-screen="blast"] .blast-feedback{height:34px;min-height:34px;flex-shrink:0;font-size:13px}
body[data-screen="blast"] .blast-pads{grid-auto-rows:var(--blast-pad-height);gap:12px;padding:6px 0 12px}
body[data-screen="blast"] .blast-pad{height:var(--blast-pad-height);min-height:var(--blast-pad-height);padding:10px 8px 34px;border-bottom-width:7px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:clamp(21px,5.6vw,26px);line-height:1.15}
body[data-screen="blast"] .blast-strike{width:29px;height:37px;left:calc(50% - 14.5px);bottom:-2px}
body[data-screen="blast"] .blast-controls{
 position:fixed;z-index:30;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);
 width:calc(100% - 32px);max-width:488px;min-height:64px;margin:0;padding:6px 8px;
 display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:center;gap:8px;
 background:var(--dark,#101e45);border:2px solid #5378b0;border-radius:4px 14px 4px 14px;box-shadow:0 4px 0 #09152f,0 -4px 18px #09152f44;
}
body[data-screen="blast"] .blast-controls .link{width:100%;min-height:48px;justify-content:center;text-align:center;padding:8px 6px;font-size:14px;line-height:1.15;font-weight:700;color:#fff;background:#233763;border:1px solid #5873a4;border-radius:5px}
body[data-screen="blast"] .blast-controls .blast-gloves{height:44px;margin:0;gap:0}
body[data-screen="blast"] .blast-controls .blast-gloves img{width:27px;height:36px;filter:drop-shadow(0 2px 2px #0004)}
@media(min-width:700px){body[data-screen="blast"] .blast-controls{max-width:428px}}
@media(max-height:640px){
 body[data-screen="blast"]{--app-header:60px}
 body[data-screen="blast"] .blast-page{--blast-pad-height:clamp(96px,17svh,112px);padding-top:8px;padding-inline:16px}
 body[data-screen="blast"] .blast-scoreboard{padding:5px 4px}
 body[data-screen="blast"] .blast-scoreboard strong{font-size:24px;line-height:1.2}
 body[data-screen="blast"] .blast-prompt{height:88px;min-height:88px;flex-basis:88px;margin-top:6px}
 body[data-screen="blast"] .blast-prompt h1{font-size:26px;margin-top:4px}
 body[data-screen="blast"] .blast-context-model{font-size:15px;margin-top:5px!important}
 body[data-screen="blast"] .blast-feedback{height:28px;min-height:28px}
 body[data-screen="blast"] .blast-pads{gap:10px;padding:4px 0 10px}
 body[data-screen="blast"] .blast-pad{padding-top:6px;padding-bottom:30px;font-size:21px}
 body[data-screen="blast"] .blast-strike{width:25px;height:32px;left:calc(50% - 12.5px)}
}
