@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/dm-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/dm-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/nunito-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(assets/nunito-900.ttf) format('truetype');
}
:root{--ink:#243d39;--muted:#687772;--cream:#fcfaf4;--yellow:#ffcf50;--yellow-dark:#edb834;--green:#315e4c;--line:#e5e5d9;--soft:#f3f3e9;--font:'DM Sans',sans-serif;--round:'Nunito',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3269b9;outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--round)}button{border:0}button .icon{flex-shrink:0}.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.sprite{position:absolute;width:0;height:0;overflow:hidden}.skip{position:absolute;top:-60px;left:20px;z-index:10;background:var(--ink);color:#fff;padding:12px}.skip:focus{top:12px}.site-header{max-width:1280px;margin:auto;min-height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 44px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:900 28px/1 var(--round);letter-spacing:-1.2px}.brand-wordy{color:#a57811}.brand small{display:block;font:700 9px var(--font);letter-spacing:3.1px;margin-top:7px}.brand-mark{height:45px;width:45px;background:var(--yellow);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);display:grid;place-items:center;font:900 35px/1 var(--round);position:relative;padding-bottom:3px}.brand-mark>span{position:absolute;right:8px;top:6px;font-size:17px}.site-header nav{display:flex;align-items:center;gap:32px}.nav-item{background:none;padding:10px 0;color:var(--muted);font-size:14px;font-weight:600;position:relative}.nav-item.active{color:var(--ink)}.nav-item.active:after{content:'';position:absolute;bottom:1px;left:0;right:0;height:3px;background:var(--yellow);border-radius:2px}.teacher-nav{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.teacher-nav:hover{background:var(--soft)}.main{max-width:1192px;margin:auto;padding:0 0 20px}.intro{display:flex;align-items:center;justify-content:space-between;padding:40px 0 32px;gap:20px;position:relative}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;line-height:1.6;display:flex;align-items:center;gap:8px}.tiny-flower{font-size:18px;line-height:1;color:#aa7b12}.intro h1{font-size:44px;letter-spacing:-1.6px;font-weight:900;line-height:1.2;margin:10px 0 13px}.intro h1 span{color:#6a8067}.intro p{color:var(--muted);font-size:15px}.intro-bee{position:relative;width:230px;flex-shrink:0;height:154px}.intro-bee img{position:absolute;width:142px;right:37px;bottom:-5px;transform:rotate(9deg)}.bee-note{position:absolute;right:9px;top:5px;transform:rotate(8deg);font:700 14px var(--round);background:#f2edda;border-radius:12px 12px 12px 0;padding:7px 12px}.bee-trail{position:absolute;width:65px;height:38px;border:1.5px dashed #9a9f86;border-right:0;border-bottom:0;border-radius:60%;left:0;bottom:15px;transform:rotate(-15deg)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.game-panel{border:1px solid #e2e4d8;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 5px 20px #233d3903}.game-topbar{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.mode-tabs{display:flex;padding:4px;background:#f4f4ed;border-radius:10px;gap:4px}.mode-tab{display:flex;gap:8px;align-items:center;border-radius:7px;background:none;padding:8px 16px;color:var(--muted);font-size:13px;font-weight:600}.mode-tab .icon{width:17px;height:17px}.mode-tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px #243d3912}.icon-button{padding:8px;display:grid;place-items:center;background:transparent;border-radius:7px;width:38px;height:38px}.icon-button:hover{background:#efefe6}.sound-toggle[aria-pressed=false]{color:#909a93;position:relative}.sound-toggle[aria-pressed=false]:after{content:'';position:absolute;width:21px;height:2px;background:currentColor;transform:rotate(-45deg)}.game-body{padding:24px 26px 0}.round-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.level-label{background:#edf3e8;color:#527046;padding:5px 9px;border-radius:5px;font-size:9px;font-weight:700;letter-spacing:.9px}.game-heading{text-align:center;margin:20px 0 22px}.game-heading h2{font-size:25px;font-weight:800;letter-spacing:-.6px;line-height:1.3}.game-heading p{font-size:13px;color:var(--muted);margin-top:7px}.word-stage{min-height:153px;border:1.5px dashed #d5dbc8;border-radius:12px;background:#f8faf4;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;padding:22px 16px;position:relative;background-image:radial-gradient(#dce4d233 .9px,transparent .9px);background-size:12px 12px}.word-stage.success{border-color:#5c8b62;background-color:#f0f8eb}.stage-placeholder{text-align:center;pointer-events:none}.ghost-card{display:inline-grid;width:43px;height:57px;background:#eef1e6;border:1px solid #e0e5d7;border-radius:6px;margin:0 3px;place-items:center;color:#b4bfa5;font:800 27px var(--round);transform:rotate(-5deg)}.ghost-card:nth-child(2){transform:rotate(5deg)}.stage-placeholder p{font-size:12px;color:#7b8b70;margin-top:9px}.stage-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0 25px;font-size:11px;color:var(--muted);min-height:22px}.stage-tools>div{display:flex;align-items:center;gap:9px}.text-button{background:none;padding:3px 0;text-underline-offset:4px;font-size:12px;display:inline-flex;gap:6px;align-items:center;font-weight:600}.text-button:hover:not(:disabled){text-decoration:underline}.divider{color:#bcc3b6}.hand-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px}.hand-heading h3{font:700 13px var(--font)}.hand-heading h3 span{font-size:10px;background:var(--soft);padding:2px 6px;border-radius:5px;margin-left:5px;color:var(--muted)}.hand-heading>span{color:var(--muted);font-size:10px}.hand{display:flex;justify-content:center;gap:11px;flex-wrap:wrap;min-height:92px;padding:4px 0 9px}.letter-card{width:73px;height:89px;border:1.5px solid #e9bc3f;border-radius:9px;background:#ffe08a;box-shadow:0 4px 0 #d7ac38;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s,background .15s,box-shadow .15s;font-family:var(--round)}.letter-card:before{content:'';position:absolute;inset:5px;border:1px solid #ffffff60;border-radius:5px;pointer-events:none}.letter-card .token{font-size:35px;font-weight:700;line-height:1;letter-spacing:-1.4px;padding-bottom:5px}.letter-card .points{position:absolute;right:9px;bottom:5px;font:600 11px var(--font)}.letter-card .mini-token{position:absolute;left:9px;top:5px;font-size:10px;font-weight:700}.letter-card[data-group=true]{background:#f9cc5b}.letter-card[data-long=true] .token{font-size:25px}.letter-card:hover:not(:disabled){transform:translateY(-4px);background:#ffdb73;box-shadow:0 7px 0 #d7ac38}.letter-card.used{opacity:.36;background:#eee8cf;box-shadow:0 2px 0 #d7d0b6;transform:translateY(2px);border-color:#ded4b5}.letter-card.trade-selected{background:#f1a38e;box-shadow:0 4px 0 #b7634f;border-color:#b7634f}.word-stage .letter-card{width:63px;height:77px;background:#fff;border-color:#b7c8a9;box-shadow:0 3px 0 #adbea1}.word-stage .letter-card .token{font-size:31px}.word-stage .letter-card:hover{background:#f2f7ed;box-shadow:0 6px 0 #adbea1}.feedback{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0 19px;padding:8px 10px;min-height:37px;border-radius:7px;font-size:12px;color:#6a775f;text-align:center}.feedback .icon{width:16px;height:16px;flex-shrink:0}.feedback.good{color:#315e4c;background:#eff7ea}.feedback.error{color:#904735;background:#fff2e9}.feedback.hint{color:#776024;background:#fff7dc}.game-actions{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border-radius:8px;padding:12px 17px;font-size:12px;font-weight:700;min-height:43px;transition:background .15s,transform .15s}.btn-primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}.btn-primary:hover:not(:disabled){background:#3e6151;transform:translateY(-1px)}.btn-primary .icon{width:17px;height:17px}.btn-secondary{background:#fff;border:1px solid #dfe3d7}.btn-secondary:hover:not(:disabled){background:#f7f8f1}.btn-quiet{background:transparent;font-size:11px;color:#697669;padding:12px 8px}.btn-quiet:hover:not(:disabled){background:#f6f5ed}.round-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:13px 0;color:var(--muted);font-size:11px;gap:10px}.next-button{font-size:11px;color:var(--ink)}.next-button .icon{width:14px;height:14px}.sidebar{display:grid;gap:16px}.score-panel{background:#f7eab9;border:1px solid #eadca6;padding:22px;border-radius:14px;position:relative;overflow:hidden}.score-panel:after{content:'✳';position:absolute;right:-6px;bottom:30px;color:#dbca8b80;font-size:150px;line-height:1;transform:rotate(15deg);pointer-events:none}.score-panel>*{position:relative;z-index:1}.score-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.score-head h2{font:700 13px var(--font)}.score-head .icon{color:#9a7a26;width:19px;height:19px}.score-number{display:flex;align-items:baseline;gap:8px;margin-top:6px}.score-number>span:first-child{font:900 55px/1.3 var(--round);letter-spacing:-2px}.score-number>span:last-child{font-size:12px;color:#8b7940}.goal-label{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#7a6b3b;margin-top:9px}progress{width:100%;height:7px;display:block;border:0;border-radius:8px;overflow:hidden;margin-top:9px;background:#e6d79d}progress::-webkit-progress-bar{background:#e6d79d;border-radius:8px}progress::-webkit-progress-value{background:#73835d;border-radius:8px;transition:width .35s}progress::-moz-progress-bar{background:#73835d}.best-row{display:flex;gap:7px;align-items:center;padding-top:14px;margin-top:15px;border-top:1px solid #dbc985;font-size:10px;color:#7a6b3b}.best-row .icon{height:14px;width:14px}.best-row b{color:var(--ink);margin-left:5px}.wordbank-panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:20px 19px 0}.bank-head{display:flex;justify-content:space-between;gap:5px;align-items:center}.bank-head h2{font:800 17px var(--round);letter-spacing:-.3px}.bank-head>span{font-size:10px;color:var(--muted);padding:3px 6px;background:#f3f5eb;border-radius:4px;white-space:nowrap}.bank-subtitle{font-size:10px;color:var(--muted);margin-top:4px}.wordbank{min-height:138px;max-height:285px;overflow:auto;margin-top:15px;margin-bottom:14px}.empty-bank{text-align:center;padding:8px 0 4px}.sprout{width:36px;height:36px;display:block;margin:auto}.empty-bank p{font-size:11px;color:#87917e;line-height:1.8;margin-top:7px}.bank-row{display:flex;align-items:center;justify-content:space-between;padding:8px 1px;border-bottom:1px solid #edf0e6;gap:8px}.bank-word{font:700 17px var(--round);letter-spacing:.7px}.bank-row .word-audio{background:transparent;color:#6c8067;border-radius:5px;display:inline-grid;place-items:center;padding:5px;margin-left:3px}.word-audio .icon{width:14px;height:14px}.bank-row .bank-points{font-size:10px;font-weight:600;color:#4a7044;background:#f0f5e9;padding:3px 6px;border-radius:4px;white-space:nowrap}.bank-row.trade-row{font-size:11px;color:var(--muted)}.download-button{display:flex;justify-content:center;align-items:center;gap:7px;padding:13px 0;width:100%;background:none;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.download-button .icon{width:14px;height:14px}.download-button:hover:not(:disabled){color:var(--ink)}.tip-panel{background:#edf1e6;border-radius:12px;padding:17px 48px 18px 18px;position:relative;overflow:hidden}.tip-tag{font-size:8px;letter-spacing:1.4px;font-weight:700;color:#65805b}.tip-panel p{font-size:11px;color:#5c6e52;margin-top:5px;line-height:1.7}.tip-flower{position:absolute;color:#ced7ba;right:7px;bottom:8px;font-size:44px;line-height:1}.bottom-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:19px;padding:5px 0;font-size:11px;color:var(--muted)}.current-settings{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-dot{width:6px;height:6px;background:#86a177;border-radius:50%;flex-shrink:0}.current-settings .text-button{margin-left:4px;text-decoration:underline;font-size:10px}.no-rush{font-size:10px;font-style:italic}.bottom-strip>button{font-size:10px}.bottom-strip>button .icon{width:13px;height:13px}.footer{margin-top:27px;padding:18px 0 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;color:#909688;font-size:10px}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.modal{border:1px solid var(--line);border-radius:20px;background:var(--cream);color:var(--ink);max-width:610px;width:calc(100% - 32px);padding:27px 31px;box-shadow:0 25px 80px #162e392b;max-height:90vh;overflow:auto}.modal::backdrop{background:#243d397a;backdrop-filter:blur(4px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.modal h2{font-size:29px;font-weight:900;letter-spacing:-.7px;line-height:1.3}.modal>p{color:var(--muted);font-size:13px;margin-top:10px}.how-steps{counter-reset:steps;list-style:none;padding:0;margin:25px 0;display:grid;gap:20px}.how-steps li{position:relative;padding-left:44px;font-size:13px}.how-steps li:before{counter-increment:steps;content:counter(steps);display:grid;place-items:center;position:absolute;left:0;top:0;width:29px;height:29px;background:var(--yellow);border-radius:9px;font:800 15px var(--round)}.how-steps b{display:block;font-size:14px;margin-bottom:4px}.how-steps span{color:var(--muted);line-height:1.7}.modal-note{background:#ecf0e5;border-radius:10px;padding:13px 15px;font-size:11px;color:#59714c;line-height:1.7}.modal .small-note{font-size:11px;color:var(--muted);line-height:1.7;margin:16px 0}.source-link{font-size:11px;display:block;text-underline-offset:3px}.modal-bottom{margin-top:22px;width:100%}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.settings-modal label{display:block;font-size:12px;font-weight:600}.settings-modal select,.settings-modal textarea{display:block;width:100%;margin-top:7px;border:1px solid #d6dcce;border-radius:7px;padding:10px;color:var(--ink);background:#fff;font-size:13px;min-height:43px}.settings-modal textarea{resize:vertical;font-family:monospace;font-weight:400;font-size:13px}.deck-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin-bottom:18px}.deck-details summary{font-size:12px;font-weight:600;cursor:pointer}.deck-details label{margin-bottom:14px}.settings-error{color:#904735;font-size:12px;margin-bottom:10px}.small-modal{max-width:480px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}.finish-bee{display:block;width:145px;margin:-5px auto 10px}.spell-prompt{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:-7px 0 16px}.spell-prompt[hidden],*[hidden]{display:none!important}.btn-listen{background:#fff3cf;border:1px solid #e5c575;font-size:12px;padding:8px 13px}.spell-prompt>span{font-size:11px;color:var(--muted)}.partner-score{font-size:11px;margin-bottom:7px;color:#6b623f;display:flex;justify-content:space-between;gap:6px}.partner-score span{padding:4px 6px;border-radius:5px}.partner-score span.active{background:#fff8df;font-weight:700}.celebration{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.confetti{position:absolute;width:8px;height:10px;top:-10px;animation:fall 1.6s ease-in both;background:var(--yellow);border-radius:2px}.confetti:nth-child(3n){background:#a4ba8a}.confetti:nth-child(3n+1){background:#e6a18c}@keyframes fall{to{transform:translateY(105vh) rotate(350deg);opacity:0}}.storage-notice{color:#904735!important}.game-actions .btn-quiet[aria-pressed=true]{background:#fff0e6;color:#904735}.mode-tab:hover{color:var(--ink)}
@media(min-width:1400px){.main{max-width:1220px}.site-header{max-width:1308px}.intro{padding-top:46px;padding-bottom:35px}.game-body{padding:26px 30px 0}.word-stage{min-height:165px}.game-heading{margin-top:22px;margin-bottom:24px}.hand{gap:14px}.letter-card{width:78px;height:96px}.game-actions{margin-bottom:23px}.feedback{margin-top:20px;margin-bottom:21px}.score-panel{padding:24px}.tip-panel{padding-top:20px;padding-bottom:21px}}
@media(max-width:1279px){.main{margin:0 36px}.site-header{padding:0 36px}.play-layout{grid-template-columns:minmax(0,1fr) 282px;gap:20px}.letter-card{width:64px;height:82px}.hand{gap:10px}.game-body{padding:22px 22px 0}.intro h1{font-size:40px}.game-actions{gap:7px}.btn{padding:11px 13px}}
@media(max-width:1060px){.main{margin:0 25px}.site-header{padding:0 25px;min-height:90px}.intro h1{font-size:35px}.intro{padding:30px 0 25px}.intro-bee{width:160px}.intro-bee img{right:10px}.bee-note{right:0}.bee-trail{display:none}.intro p{font-size:13px}.play-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.game-body{padding:20px 18px 0}.game-topbar{padding:13px 16px}.mode-tab{padding:8px 12px;font-size:12px}.letter-card{width:56px;height:75px}.hand{gap:8px}.letter-card .token{font-size:30px}.game-heading h2{font-size:23px}.hand-heading>span{font-size:9px}.game-actions{gap:6px}.btn{font-size:11px;padding:11px 12px}.btn-quiet{font-size:10px}.score-panel{padding:20px}.wordbank-panel{padding:18px 16px 0}.no-rush{display:none}.eyebrow{font-size:9px}}
@media(max-width:820px){.play-layout{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr;gap:16px}.tip-panel{grid-column:1 / -1;min-height:70px;padding-right:60px}.tip-panel p{font-size:12px}.tip-flower{font-size:48px}.score-panel{align-self:start}.wordbank{min-height:127px;max-height:175px}.game-body{padding:22px 24px 0}.hand{gap:13px}.letter-card{width:70px;height:87px}.letter-card .token{font-size:35px}.game-topbar{padding:14px 23px}.game-actions .btn{font-size:12px}.intro-bee{height:130px;width:145px}.intro-bee img{width:118px}.intro h1{font-size:35px}.intro h1 span{display:block}.intro{padding:25px 0}.site-header nav{gap:22px}.teacher-nav{font-size:11px;padding:9px 11px}.nav-item{font-size:12px}.brand{font-size:24px}.brand-mark{width:39px;height:39px;font-size:31px}.game-heading{margin-top:20px}.hand-heading>span{font-size:10px}.sidebar{margin-top:2px}}
@media(max-width:580px){.site-header{padding:17px 18px;min-height:83px;gap:14px;align-items:center}.brand{font-size:22px;gap:7px}.brand small{font-size:8px;letter-spacing:2.2px}.brand-mark{width:34px;height:37px;font-size:29px}.brand-mark>span{right:5px}.site-header nav{gap:8px}.nav-item{font-size:11px}.nav-item:first-child{display:none}.teacher-nav{padding:8px;font-size:0;gap:0}.teacher-nav .icon{width:20px;height:20px}.main{margin:0 18px}.intro{padding:25px 0 24px;gap:5px}.intro .eyebrow{font-size:8px;letter-spacing:1px}.tiny-flower{display:none}.intro h1{font-size:29px;letter-spacing:-1px;margin-top:9px;margin-bottom:9px}.intro p{font-size:12px;max-width:265px}.intro-bee{width:85px;height:112px;margin-left:-18px;align-self:end}.intro-bee img{width:95px;right:0;bottom:-4px}.bee-note{display:none}.game-topbar{padding:12px 10px;gap:4px}.mode-tabs{gap:2px;padding:3px}.mode-tab{font-size:11px;padding:8px 10px;gap:5px}.mode-tab .icon{width:15px;height:15px}.sound-toggle{width:32px;height:32px;padding:6px}.game-body{padding:18px 16px 0}.game-heading{margin:20px 0 19px}.game-heading h2{font-size:22px}.game-heading p{font-size:11px}.word-stage{min-height:145px;padding:16px 10px;gap:8px}.word-stage .letter-card{width:53px;height:70px}.stage-tools{font-size:10px;margin-bottom:22px}.stage-tools .text-button{font-size:11px}.hand-heading{align-items:flex-start;gap:12px}.hand-heading>span{font-size:9px;text-align:right;max-width:160px}.hand{gap:9px;min-height:160px;align-content:center}.letter-card{width:60px;height:79px;border-radius:7px}.letter-card .token{font-size:33px}.game-actions{gap:8px;justify-content:space-between}.game-actions .btn-primary{flex:1}.game-actions .btn-secondary{flex:1}.game-actions .btn-quiet{width:100%;padding:7px;min-height:32px}.game-actions .btn{font-size:11px;padding:10px}.feedback{font-size:11px;line-height:1.6;margin:13px 0 16px;padding:9px 6px}.game-actions{margin-bottom:12px}.round-footer{padding:13px 0}.round-line{font-size:10px}.sidebar{grid-template-columns:1fr}.score-panel{padding:18px 20px}.score-number{float:left;margin:3px 17px 0 0;min-width:81px}.score-number>span:first-child{font-size:43px}.score-number>span:last-child{font-size:11px}.goal-label{padding-top:9px;font-size:10px}.best-row{padding-top:11px;margin-top:13px;clear:both}.score-panel:after{font-size:125px}.wordbank-panel{padding:19px 20px 0}.wordbank{min-height:105px;max-height:220px}.empty-bank{display:flex;justify-content:center;gap:14px;align-items:center;padding:18px 0}.empty-bank p{text-align:left;margin:0}.tip-panel{grid-column:auto}.bottom-strip{align-items:flex-start;gap:8px;font-size:10px}.current-settings{gap:6px;max-width:240px}.bottom-strip>button{white-space:nowrap}.footer{font-size:9px;align-items:flex-start;gap:15px;margin-top:22px;padding-bottom:12px}.footer a{max-width:170px;text-align:right}.modal{padding:22px;width:calc(100% - 24px);border-radius:16px}.modal h2{font-size:25px}.settings-grid{gap:14px 12px}.settings-modal select{font-size:12px;padding:9px 7px}.settings-modal label{font-size:11px}.dialog-actions .btn{font-size:12px}.spell-prompt{gap:8px}.partner-score{clear:both;padding-top:7px}.no-rush{display:none}}
@media(max-width:360px){.main{margin:0 12px}.site-header{padding:16px 12px}.intro h1{font-size:26px}.intro-bee{width:68px}.intro-bee img{width:83px}.intro .eyebrow{font-size:7px}.game-body{padding-left:12px;padding-right:12px}.mode-tab{padding:8px 7px;font-size:10px}.mode-tab .icon{display:none}.hand{gap:8px}.letter-card{width:57px;height:75px}.game-heading h2{font-size:20px}.stage-tools{font-size:9px}.settings-grid{grid-template-columns:1fr}.game-actions .btn{padding:10px 8px}.modal-header .eyebrow{font-size:8px}}
.practice-summary{font-size:11px!important;color:#65805b!important;margin-top:9px!important;line-height:1.6}
.assigned-words{margin:10px auto 0;max-width:520px;font-size:12px;color:#527046}
.assigned-words summary{cursor:pointer;text-underline-offset:3px;text-decoration:underline}
.assigned-words p{font-size:13px!important;line-height:1.9;overflow-wrap:anywhere}
.scope-note{background:#edf3e8;color:#527046;border-radius:9px;padding:12px 14px;font-size:12px;line-height:1.7;margin:0 0 19px}
.teacher-words-section{margin-bottom:19px}
.teacher-words-section .small-note{margin:7px 0;font-size:11px}
.settings-modal select:disabled{background:#f0f0e8;color:#87917e;cursor:default}
.full-deck-game .game-body{display:flex;flex-direction:column}
.full-deck-game .round-line{order:0}.full-deck-game .game-heading{order:1}.full-deck-game .spell-prompt{order:2}
.full-deck-game .word-stage{order:3}.full-deck-game .stage-tools{order:4;margin-bottom:0}
.full-deck-game .feedback{order:5;margin:12px 0}
.full-deck-game .game-actions{order:6;margin-bottom:15px}
.full-deck-game .round-footer{order:7;margin-bottom:18px}
.full-deck-game .hand-heading{order:8}.full-deck-game .hand{order:9}
.hand.full-deck{display:block;padding:0 0 22px;min-height:0}
.full-card-group+.full-card-group{margin-top:23px}
.full-card-group h4{font:600 11px var(--font);color:var(--muted);margin:0 0 12px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:13px 9px}
.full-deck .letter-card{width:100%;height:77px}.full-deck .letter-card .token{font-size:31px}
.full-deck .letter-card[data-long=true] .token{font-size:24px}
@media(max-width:580px){.practice-summary{font-size:10px!important}.card-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:12px 8px}.full-deck .letter-card{height:72px}.full-deck .letter-card .token{font-size:29px}.full-deck-game .game-actions .btn-primary,.full-deck-game .game-actions .btn-secondary{flex:1}.settings-modal select{white-space:normal}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* The word area grows with selected cards; placeholders are a starting cue. */
.stage-placeholder{width:100%;max-width:510px}
.placeholder-slots{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;padding:4px 0}
.placeholder-slots .ghost-card{width:38px;height:50px;margin:0}
.placeholder-slots .ghost-card:nth-child(even){transform:rotate(4deg)}
.more-cards{font:800 27px var(--round);color:#7b8b70}
.stage-placeholder p{font-size:13px;color:#5c6e52;margin:12px 0 4px}
.stage-guidance{display:block;font-size:11px;line-height:1.6;color:#64765b}
.dictionary-credit a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:580px){.placeholder-slots{gap:7px}.placeholder-slots .ghost-card{width:28px;height:38px;font-size:23px}.stage-placeholder p{font-size:12px}.stage-guidance{font-size:10px}.more-cards{font-size:22px}}

.hand-heading{align-items:flex-start}.hand-heading>span{max-width:65%;font-size:12px;line-height:1.5;text-align:right}
.word-stage .letter-card[data-long=true] .token{font-size:24px}

/* Keep both players and the current turn beside the game on every screen. */
.turn-scoreboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 20px;color:var(--ink);order:-1}
.turn-scoreboard .player-score{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:13px 16px;background:#f4f6ee;border:2px solid #e1e5d7;border-radius:12px}
.turn-scoreboard .player-score.active{background:#fff4c1;border-color:#b39527}
.turn-scoreboard .player-name{font-size:16px;font-weight:800}
.turn-scoreboard strong{grid-column:2;grid-row:1/3;align-self:center;font-size:27px;line-height:1.2}
.turn-scoreboard strong small{display:block;font-size:12px;font-weight:500}
.turn-scoreboard .turn-status{font-size:14px;font-weight:600}
.select-all-trade{align-self:flex-start;display:block;margin:0 0 12px;font-size:14px;order:8;text-decoration:underline}
.letter-card.trade-selected{outline:3px solid #91482f;outline-offset:3px}
.letter-card.trade-selected:after{content:'✓';position:absolute;top:3px;right:6px;color:#62301e;font-size:16px;font-weight:800}
@media(max-width:500px){.turn-scoreboard{gap:8px}.turn-scoreboard .player-score{padding:10px;gap:4px}.turn-scoreboard strong{font-size:24px}.turn-scoreboard .turn-status{font-size:12px}.round-footer{gap:12px}.round-footer>span{max-width:65%;line-height:1.5}}

/* One play surface: scores, word cards, and the hand share the viewport. */
.site-header{min-height:60px;padding:8px 24px;max-width:1248px}
.brand{font-size:24px}.brand-mark{width:36px;height:38px;font-size:30px}.brand small{margin-top:4px}
.site-header nav{gap:20px}.nav-item{padding:6px 0}.teacher-nav{padding:8px 12px}
.main{max-width:1200px;width:calc(100% - 48px);margin:0 auto;padding-bottom:10px}
.intro{padding:8px 0 10px;min-height:48px}.intro h1{font-size:21px;line-height:1.3;letter-spacing:-.4px;margin:0}.intro h1 span{display:inline}
.intro .eyebrow,.intro p,.intro-bee{display:none}
.play-layout{display:block}.game-panel{height:calc(100svh - 158px);min-height:500px;display:flex;flex-direction:column;border-radius:14px}
.game-topbar{padding:7px 16px;gap:8px;flex-shrink:0}.mode-tab{padding:6px 12px;font-size:14px}.mode-tabs{padding:3px}
.play-toolbar{display:flex;align-items:center;gap:12px}.garden-button{font-size:14px;min-height:36px;gap:6px}.garden-button .icon{width:20px;height:20px}
.game-panel .game-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:10px 18px 6px;overflow:hidden}
.game-body>*{flex-shrink:0}
.game-body .turn-scoreboard{order:0;margin:0 0 7px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.turn-scoreboard.solo-scoreboard{grid-template-columns:1fr}
.turn-scoreboard .player-score{padding:7px 13px;gap:0 12px;min-height:53px}
.turn-scoreboard .player-name{font-size:16px;padding:0}.turn-scoreboard .turn-status{font-size:13px;padding:0;line-height:1.4}
.turn-scoreboard strong{font-size:28px}.turn-scoreboard strong small{display:inline;font-size:14px}
.game-body .round-line{order:1;font-size:12px;min-height:22px}
.game-body .game-heading{order:2;margin:5px 0 7px}.game-heading h2{font-size:21px;line-height:1.2}.game-heading p{margin-top:3px;font-size:14px}
.game-heading .practice-summary{display:none}.assigned-words{margin-top:3px}.assigned-words p{max-height:54px;overflow:auto}
.game-body .spell-prompt{order:3;margin:0 0 6px;gap:8px}.spell-prompt>span{font-size:13px}.btn-listen{min-height:36px;padding:6px 12px;font-size:14px}
.game-body .word-stage{order:4;min-height:80px;height:clamp(88px,14svh,114px);flex-shrink:1;max-height:160px;overflow:auto;padding:8px;gap:7px;scrollbar-width:thin}
.word-stage .letter-card{width:57px;height:69px}.word-stage .letter-card .token{font-size:29px}
.stage-placeholder{max-width:none}.placeholder-slots{gap:7px;padding:0}.placeholder-slots .ghost-card{width:30px;height:38px;font-size:22px}
.stage-placeholder p{margin:5px 0 0;font-size:14px}.stage-guidance{display:none}
.game-body .stage-tools{order:5;min-height:26px;margin:4px 0 7px;font-size:13px}.stage-tools .text-button{font-size:14px}
.game-body .hand-heading{order:6;margin:0 0 6px;align-items:center}.hand-heading h3{font-size:14px}.hand-heading>span{font-size:12px;line-height:1.3}
.game-body .select-all-trade{order:7;margin:0 0 5px;min-height:24px}
.game-body .hand{order:8;flex:1;min-height:76px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;align-content:center;gap:8px;padding:6px 4px 9px}
.hand .letter-card{width:64px;height:78px}.hand .letter-card .token{font-size:31px}.hand .letter-card[data-long=true] .token{font-size:23px}
.game-body .hand.full-deck{display:block;align-content:initial;background:#f8faf4;border:1px solid #e2e7d9;border-radius:10px;padding:9px 10px 12px}
.full-card-group+.full-card-group{margin-top:13px}.full-card-group h4{font-size:14px;margin:0 0 7px}
.card-grid{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px}
.full-deck .letter-card{width:100%;height:67px}.full-deck .letter-card .token{font-size:29px}
.game-body .feedback{order:9;min-height:32px;max-height:54px;overflow:auto;font-size:13px;line-height:1.4;margin:6px 0;padding:5px 8px}
.game-body .game-actions{order:10;gap:8px;margin:0 0 5px;flex-wrap:nowrap}.game-actions .btn{font-size:14px;min-height:38px;padding:7px 14px}
.game-actions .btn-quiet{width:auto}.game-actions .btn-primary,.game-actions .btn-secondary{flex:initial}
.game-body .round-footer{order:11;margin:0;padding:6px 0 2px;font-size:12px;min-height:29px}.next-button{font-size:14px}
.bottom-strip{margin-top:6px;min-height:32px;padding:0;font-size:12px}.current-settings .text-button,.bottom-strip>button{font-size:13px}.no-rush{display:none}
.footer{margin-top:8px;padding-top:7px}
.garden-modal{max-width:620px}.garden-modal .sidebar{display:grid;grid-template-columns:1fr;gap:14px;margin:0}.garden-modal .wordbank{max-height:240px}
.garden-modal .score-panel{padding:14px 18px}.garden-modal .score-number>span:first-child{font-size:38px}.garden-modal .best-row{margin-top:8px;padding-top:8px}
@media(max-width:820px){.main{width:calc(100% - 24px)}.site-header{padding:8px 12px}.game-panel{height:calc(100svh - 158px)}.game-body .hand{gap:7px}.hand .letter-card{width:60px;height:72px}}
@media(max-width:580px){
  .site-header{min-height:54px;padding:7px 10px;gap:8px}.site-header nav{gap:10px}.brand{font-size:22px;gap:6px}.brand-mark{width:30px;height:33px;font-size:27px}.brand small{font-size:8px}
  .nav-item{font-size:12px}.teacher-nav{padding:7px;font-size:0}.main{width:calc(100% - 16px);padding-top:6px}.intro{display:none}
  .game-panel{height:calc(100svh - 116px);min-height:0;border-radius:11px}.game-topbar{padding:5px 7px;gap:4px}.mode-tab{font-size:12px;padding:6px 8px;gap:0;min-height:30px}.mode-tab .icon{display:none}
  .play-toolbar{gap:2px}.garden-button{width:30px;min-height:30px;justify-content:center}.garden-button span{display:none}.garden-button .icon{width:21px;height:21px}.sound-toggle{width:30px;height:30px;padding:5px}
  .game-panel .game-body{padding:7px 10px 4px}.game-body .turn-scoreboard{gap:6px;margin-bottom:5px}.turn-scoreboard .player-score{padding:5px 9px;min-height:46px;border-radius:8px;gap:0 4px}
  .turn-scoreboard .player-name{font-size:14px}.turn-scoreboard strong{font-size:24px}.turn-scoreboard strong small{display:block;font-size:12px}.turn-scoreboard .turn-status{font-size:12px;line-height:1.3}
  .game-body .round-line{font-size:11px;min-height:19px}.level-label{font-size:9px;padding:3px 6px}
  .game-body .game-heading{margin:0 0 3px}.game-heading h2,.game-heading>p{display:none}.assigned-words{font-size:12px;margin:2px 0}
  .game-body .spell-prompt{margin-bottom:4px}.spell-prompt>span{display:none}.btn-listen{min-height:32px;padding:5px 10px;font-size:13px}
  .game-body .word-stage{height:74px;min-height:72px;max-height:100px;padding:5px;gap:5px}.word-stage .letter-card{width:48px;height:59px}.word-stage .letter-card .token{font-size:27px}.word-stage .letter-card[data-long=true] .token{font-size:22px}
  .placeholder-slots{display:none}.stage-placeholder p{margin:0;font-size:14px}
  .game-body .stage-tools{margin:3px 0 5px;min-height:23px;font-size:12px;line-height:1.3}.stage-tools>span{max-width:65%;max-height:32px;overflow:auto}.stage-tools .text-button{font-size:13px}
  .game-body .hand-heading{margin-bottom:3px}.hand-heading h3{font-size:14px}.hand-heading>span{font-size:11px;max-width:60%}
  .game-body .hand{min-height:62px;gap:6px;padding:5px 2px 7px}.hand .letter-card{width:50px;height:61px;border-radius:7px}.hand .letter-card .token{font-size:28px}.hand .letter-card[data-long=true] .token{font-size:22px}.letter-card .mini-token{left:6px;top:3px;font-size:9px}.letter-card .points{right:6px;bottom:3px;font-size:10px}
  .game-body .hand.full-deck{padding:7px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:7px}.full-deck .letter-card{width:100%;height:61px}.full-card-group h4{font-size:13px}
  .game-body .feedback{min-height:29px;max-height:43px;font-size:12px;line-height:1.3;padding:4px 5px;margin:4px 0}
  .game-body .game-actions{gap:6px;margin-bottom:3px;justify-content:stretch}.game-actions .btn{font-size:13px;padding:6px 8px;min-height:35px;flex:1}.game-actions .btn .icon{width:15px;height:15px}.game-actions .btn-quiet{width:auto}
  .game-body .round-footer{padding:4px 0 1px;min-height:26px;gap:6px}.round-footer>span{font-size:11px;max-width:65%}.next-button{font-size:13px;white-space:nowrap}
  .bottom-strip{min-height:44px;gap:8px;margin-top:4px}.current-settings{gap:5px;max-width:75%}.current-settings>span:nth-child(2){display:none}.current-settings .status-dot{display:none}.current-settings .text-button{font-size:13px;margin:0}.bottom-strip>button{font-size:13px;white-space:nowrap}.footer{margin-top:4px;padding-top:5px;font-size:9px}
}
@media(max-height:560px){.game-panel{height:auto;min-height:480px}.game-body .hand{flex:initial;max-height:200px}.game-body .hand.full-deck{height:200px}}
@media(min-width:821px){
  .full-deck-game .game-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:auto auto auto 38px minmax(80px,1fr) auto auto auto auto;column-gap:18px}
  .full-deck-game .turn-scoreboard{grid-column:1/-1;grid-row:1}.full-deck-game .round-line{grid-column:1/-1;grid-row:2}.full-deck-game .game-heading{grid-column:1/-1;grid-row:3}
  .full-deck-game .spell-prompt{grid-column:1;grid-row:4}.full-deck-game .word-stage{grid-column:1;grid-row:5;height:auto;max-height:none;min-height:80px;align-content:center}
  .full-deck-game .stage-tools{grid-column:1;grid-row:6}.full-deck-game .feedback{grid-column:1;grid-row:7}.full-deck-game .game-actions{grid-column:1;grid-row:8}.full-deck-game .round-footer{grid-column:1;grid-row:9}
  .full-deck-game .hand-heading{grid-column:2;grid-row:4}.full-deck-game .hand{grid-column:2;grid-row:5/10;min-height:0}
}
@media(max-width:580px){
  .game-actions .btn-primary .icon{display:none}.game-actions .btn{white-space:nowrap}
  .game-panel:not(.full-deck-game) .hand-heading>span{display:none}
}

/* The supplied Bee Wordy artwork frames the game without covering the cards. */
body{min-height:100svh;background:radial-gradient(ellipse at top,#fffdf5 0%,#fff6d8 70%,#f7e9b8 100%);isolation:isolate}
body:before,body:after{content:'';position:fixed;z-index:-1;pointer-events:none;background-repeat:no-repeat;background-size:contain}
body:before{width:450px;height:475px;right:-55px;bottom:-45px;background-image:url('assets/honeycomb-gold.png');opacity:.17}
body:after{width:390px;height:410px;left:-165px;top:70px;background-image:url('assets/honeycomb-white.png');transform:rotate(180deg);opacity:.10}
.site-header{background:#fff8e8;border-bottom-color:#ead79b;border-radius:0 0 16px 16px}
.brand{display:block;line-height:0;flex-shrink:0}.brand-logo{display:block;width:156px;height:84px;object-fit:contain}
.intro{min-height:32px;padding:4px 0 6px}.intro h1{color:#3d4731}.intro h1 span{color:#8d691b}
.game-panel{border-color:#e4c76e;box-shadow:0 7px 22px #75571110;background:#fffefa}
.game-topbar{background:#fff5d4;border-bottom-color:#ead99f}.mode-tabs{background:#efdfa3}.mode-tab.active{background:#fffefa}
.game-body .game-heading{position:relative;padding:0 74px}
.play-bee{position:absolute;right:7px;top:-8px;width:62px;height:66px;object-fit:contain;pointer-events:none}
.turn-scoreboard .player-score{background:#eff9fa;border-color:#bedfe2}.turn-scoreboard .player-score.active{background:#fff1af;border-color:#c39c28}
.game-body .word-stage{background-color:#fffaf0;background-image:linear-gradient(#fffaf0eb,#fffaf0eb),url('assets/honeycomb-white.png');background-repeat:no-repeat;background-position:center,right -60px bottom -100px;background-size:auto,245px;border-color:#d8c57f}
.word-stage.success{background-color:#f0f8eb;background-image:linear-gradient(#f0f8ebeb,#f0f8ebeb),url('assets/honeycomb-white.png');border-color:#5c8b62}
.game-body .hand.full-deck{background:#fffcf2;border-color:#e7d8a7}
.garden-modal .score-panel{background:#fff0b4;border-color:#e3c972}.modal{background-color:#fffdf5}
.modal-header{position:relative}.finish-bee{width:120px;height:127px;object-fit:contain;margin:0 auto 10px}
@media(max-width:580px){
  .brand-logo{width:124px;height:66px}.site-header{border-radius:0 0 11px 11px}
  .game-body .game-heading{padding:0}.play-bee{display:none}
  body:before{width:260px;height:275px;right:-135px;bottom:-30px;opacity:.12}body:after{width:240px;height:250px;left:-150px;top:60px;opacity:.07}
  .game-body .word-stage{background-size:auto,180px;background-position:center,right -65px bottom -85px}
}

/* Fit the actual iframe, retaining the game controls and its own scrollable card tray. */
html.embedded{height:100%}
.embedded body{height:100svh;height:100dvh;min-height:0;display:flex;flex-direction:column}
.embedded .site-header{flex-shrink:0;width:100%;max-width:none;min-height:82px;height:82px;padding:4px 12px;border-radius:0}
.embedded .brand-logo{width:136px;height:73px}
.embedded .site-header nav{gap:12px}.embedded #play-nav{display:none}
.embedded .site-header .nav-item{font-size:14px}
.embedded .main{flex:1;min-height:0;display:flex;flex-direction:column;width:calc(100% - 16px);max-width:none;padding:6px 0;margin:0 auto}
.embedded .intro,.embedded .footer{display:none}
.embedded .play-layout{flex:1;min-height:0}
.embedded .game-panel{height:100%;min-height:0}
.embedded .bottom-strip{flex-shrink:0;min-height:26px;margin:4px 0 0;padding:0}
.embedded .game-body{overflow:auto;scrollbar-width:thin}
@media(max-height:700px){
  .embedded .game-topbar{padding:5px 10px}.embedded .mode-tab{padding:5px 8px}
  .embedded .game-body{padding:7px 10px 4px}
  .embedded .game-body .turn-scoreboard{margin-bottom:4px}
  .embedded .game-heading{padding:0;margin:0 0 3px}.embedded .game-heading h2,.embedded .game-heading>p,.embedded .play-bee{display:none}
  .embedded .word-stage{height:74px;min-height:72px;padding:5px;gap:5px}
  .embedded .word-stage .letter-card{width:48px;height:59px}.embedded .word-stage .letter-card .token{font-size:27px}
  .embedded .placeholder-slots{display:none}
  .embedded .game-body .stage-tools{min-height:22px;margin:2px 0 4px}
  .embedded .game-body .hand-heading{margin-bottom:3px}
  .embedded .game-body .hand{flex:1;min-height:62px;max-height:none;gap:6px}
  .embedded .hand .letter-card{width:54px;height:65px}.embedded .hand .letter-card .token{font-size:28px}
  .embedded .hand.full-deck .letter-card{width:100%}
  .embedded .feedback{min-height:29px;max-height:43px;margin:4px 0;padding:4px 5px}
  .embedded .game-actions .btn{min-height:35px;padding:6px 8px}
  .embedded .round-footer{padding:4px 0 1px;min-height:26px}
}
@media(max-width:580px){
  .embedded .main{width:calc(100% - 8px)}
  .embedded .game-body{padding-left:5px;padding-right:5px}
  .embedded .game-panel:not(.full-deck-game) .hand{scrollbar-gutter:auto;padding:4px 0 7px;gap:4px}
  .embedded .game-panel:not(.full-deck-game) .hand .letter-card{width:44px;height:57px}
  .embedded .game-panel:not(.full-deck-game) .hand .letter-card .token{font-size:26px}
  .embedded .game-panel:not(.full-deck-game) .hand .letter-card[data-long=true] .token{font-size:20px}
}
@media(max-height:620px){
  .embedded .site-header{height:68px;min-height:68px}.embedded .brand-logo{width:112px;height:60px}
  .embedded .main{padding:4px 0}
  .embedded .turn-scoreboard .player-score{padding:4px 10px;min-height:46px}
  .embedded .turn-scoreboard .player-name{font-size:14px}.embedded .turn-scoreboard .turn-status{font-size:12px;line-height:1.3}
  .embedded .turn-scoreboard strong{font-size:24px}
  .embedded .game-body .hand{min-height:80px}
}
