.game-page{background:var(--orange)}.challenge{position:relative;padding:24px 28px 36px;min-height:calc(100vh - 150px)}.game-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;width:min(1460px,100%);margin:0 auto 26px}.game-heading h1{font-size:clamp(2.8rem,5.1vw,5.1rem);line-height:.98}.game-heading p{font-size:clamp(1.15rem,2vw,1.8rem);font-weight:600;margin-top:8px}.score-sign{background:var(--navy);color:white;min-width:210px;text-align:center;padding:12px 26px;clip-path:polygon(13% 0,94% 0,100% 19%,88% 100%,6% 100%,0 79%);flex:none}.score-sign strong{display:block;font:800 4.5rem/.95 var(--display);color:var(--yellow);white-space:nowrap}.score-sign strong>span+span{color:white;font-size:3.2rem}.score-sign small{display:block;font-size:1.2rem;font-weight:600;margin-top:5px}.game-layout{display:grid;grid-template-columns:1.65fr 1fr;gap:28px;align-items:start;max-width:1460px;margin:auto}.map-column{background:var(--navy);border:4px solid var(--navy);border-radius:28px;overflow:hidden;box-shadow:0 7px 0 #b35100}.map-crop{overflow:hidden;position:relative;aspect-ratio:1;border-radius:22px;background:var(--navy)}.map-shell{position:relative;aspect-ratio:1;width:100%;isolation:isolate;container-type:inline-size;transform-origin:0 0}.map-shell>.board-art{display:block;width:100%;height:100%;object-fit:contain}.map-stations{position:absolute;inset:0;pointer-events:none}.station{position:absolute;transform:translate(-50%,-50%);width:10%;height:8%;display:grid;place-items:center;font:800 6cqw/1 var(--display);color:var(--navy);transition:color .25s;z-index:2}.station.is-done:after{content:'✓';position:absolute;right:-.4cqw;top:-.4cqw;display:grid;place-items:center;width:3.8cqw;height:3.8cqw;font:800 2.8cqw/1 var(--body);border:2px solid white;background:#15924a;color:white;border-radius:50%;box-shadow:0 2px 0 #065527}.station.is-current:before{content:'';position:absolute;inset:-1.3cqw -1.5cqw;border:3px solid var(--yellow);border-radius:2cqw;box-shadow:0 0 0 2px #fff;z-index:-1;background:#ffd60030}.map-token{position:absolute;width:11.5%;aspect-ratio:5/8;transform:translate(-50%,-105%);transform-origin:50% 82%;transition:left .5s ease,top .5s ease;z-index:5;pointer-events:none;filter:drop-shadow(3px 4px 2px #00152940)}.map-token .piece-sprite{width:100%;height:100%}.map-finish{position:absolute;left:10%;top:5%;width:15%;text-align:center;pointer-events:none;z-index:3}.map-finish>img{width:100%;height:auto;filter:drop-shadow(0 2px 2px #03201760)}.map-finish>strong,.map-start{font:800 3.3cqw/1.1 var(--display);background:var(--navy);color:white;border:2px solid white;padding:3px 7px;display:block;transform:rotate(-7deg);box-shadow:0 3px 0 #071b3e90}.map-finish>strong{margin-top:-4px;position:relative}.map-start{position:absolute;left:4%;top:53%;transform:rotate(-12deg);z-index:3}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:6px 20px 8px;color:white}.piece-picker{display:flex;align-items:center;gap:8px}.piece-picker>span{font-weight:600;font-size:1.05rem;margin-right:5px}.piece-option{width:47px;height:55px;position:relative;padding:0;border:3px solid transparent;background:none;border-radius:50%;overflow:hidden}.piece-option.is-selected{border-color:var(--yellow);background:#ffffff12}.piece-option:hover{background:#ffffff20}.piece-option .piece-sprite{position:absolute;width:67px;height:107px;left:50%;top:50%;transform:translate(-50%,-52%)}.round-reset{color:white;border:2px solid #b4c1d7;background:transparent;border-radius:6px;padding:9px 15px;font:600 1.1rem var(--body)}.round-reset:hover{background:#ffffff18}.question-panel,.win-panel{position:relative;border:4px solid var(--navy);border-radius:25px;background:#fffef9;padding:36px 24px 25px;box-shadow:5px 7px 0 #ae5900;min-width:0;display:flex;flex-direction:column;align-self:stretch;margin-top:12px}.panel-tab{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);background:var(--orange);font:800 1.5rem/1.1 var(--display);text-transform:uppercase;padding:8px 25px;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%);white-space:nowrap}.question-top{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:20px}.question-count{font:800 1.2rem/1.1 var(--display);text-transform:uppercase}.read-aloud{display:flex;align-items:center;gap:7px;white-space:nowrap;background:white;border:2px solid var(--navy);border-radius:7px;padding:7px 10px;color:var(--navy);font:600 1rem var(--body)}.read-aloud .icon{width:20px;height:20px}.read-aloud:hover{background:#fff0bc}.question-text{font-size:clamp(2rem,3vw,3.2rem);line-height:1.08;margin:0 0 24px;letter-spacing:-.012em;outline:none}.answer-list{display:grid;gap:14px}.answer-button{display:flex;align-items:center;gap:13px;background:#fffef9;border:3px solid var(--navy);border-radius:12px;padding:15px 13px;min-height:76px;text-align:left;color:var(--navy);font:700 clamp(1.1rem,1.6vw,1.5rem)/1.25 var(--body);transition:background .18s,transform .18s;overflow-wrap:anywhere}.answer-letter{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--orange);flex:none;font:800 2rem var(--display)}.answer-button:hover:not(:disabled){background:#fff0bf;transform:translateX(2px)}.answer-button.is-wrong{background:#fff0de;border-color:#9c6425;color:#754c24}.answer-button.is-wrong .answer-letter{background:#ecbe7d}.answer-button.is-correct{background:#e5f7eb;border-color:#137145}.answer-button.is-correct .answer-letter{background:#16824e;color:white}.answer-button.is-suggested{background:#fff0bc;border-color:#c58200}.answer-button:disabled:not(.is-wrong):not(.is-correct){opacity:.6}.answer-feedback{border-left:4px solid #d59600;background:#fff1be;padding:15px;margin-top:20px;font-size:1.1rem;line-height:1.35}.answer-feedback strong{display:block;margin-bottom:5px}.answer-feedback p{line-height:1.35}.feedback-correct{background:#e5f7eb;border-color:#137145}.question-actions{display:flex;margin-top:22px}.hint-button,.continue-button{width:100%;justify-content:center;font:700 1.45rem var(--display)}.hint-button{background:var(--yellow);color:var(--navy);border:3px solid var(--navy);border-radius:5px;padding:10px;display:flex;align-items:center;gap:10px;min-height:51px}.hint-button .icon{width:30px;height:30px}.hint-button:hover{background:#ffe444}.hint-button:disabled{opacity:.55}.question-reassurance{text-align:center;font-size:1.05rem;margin-top:18px}.round-progress{margin-top:auto;padding-top:20px}.round-progress>p{text-align:center;font-size:1rem;border-top:1px solid #9dafc6;padding-top:12px;margin-bottom:10px}.mini-progress{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;border-radius:12px;overflow:hidden;border:2px solid var(--navy);height:23px;background:#c3d1e2}.mini-progress>span{background:#a4bad3;color:transparent;font-size:0}.mini-progress>.is-earned{background:var(--orange);border:1px solid var(--navy);border-radius:3px}.mini-progress>.is-active{background:#e1e9f0}.win-panel{text-align:center;justify-content:center;align-items:stretch;padding:42px 30px 30px;background:radial-gradient(ellipse at 50% 42%,#fff0ac,white 64%)}.win-panel h2{font-size:4.5rem;outline:none}.win-trophy{width:min(85%,300px);aspect-ratio:1;object-fit:contain;margin:14px auto;animation:trophy-enter .6s both}.win-panel h3{font-size:2.1rem;margin-bottom:14px}.win-panel p{font-size:1.2rem}.win-panel .btn{margin-top:20px;width:100%;font-size:1.6rem}.win-panel .text-link{margin:18px 0;font-size:1.15rem}.win-panel .win-footnote{font-size:1rem}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:30}.falling-star{position:absolute;left:var(--left);top:-60px;font-size:var(--size);line-height:1;opacity:0;animation:star-fall var(--duration) var(--delay) cubic-bezier(.2,.4,.7,1) forwards;text-shadow:0 2px 2px #bb7a1830}.game-error{max-width:600px;text-align:center;background:white;padding:30px;border:3px solid var(--navy);border-radius:20px;margin:35px auto}.game-error p{margin:20px 0}.open-board{display:none}.reset-dialog,.help-dialog,.board-dialog{padding:28px;border:4px solid var(--navy);border-radius:20px;color:var(--navy);background:#fffef9;width:min(500px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:94dvh}.reset-dialog::backdrop,.help-dialog::backdrop,.board-dialog::backdrop{background:#03152ccd}.reset-dialog h2,.help-dialog h2{font-size:2.8rem;margin:14px 0 20px}.reset-dialog p,.help-dialog p{font-size:1.2rem;margin-bottom:22px}.reset-dialog .button-row{gap:12px}.reset-dialog .btn{font-size:1.2rem;padding:12px 18px}.help-dialog .label{margin-top:25px;font-size:1.15rem}.help-dialog ol{padding-left:23px;font-size:1.2rem;display:grid;gap:12px;margin-bottom:22px}.board-dialog{width:min(740px,calc(100vw - 20px));padding:18px}.board-dialog-header{padding-right:45px;margin-bottom:16px}.board-dialog-header h2{font-size:2rem}.board-dialog-header .dialog-close{top:15px}.board-dialog .map-shell{width:100%!important;transform:none!important}.board-dialog p{font-weight:600;text-align:center;margin-top:12px}.mobile-help{display:none}.game-page .site-footer .footer-inner{padding-block:16px}.token-cheer .piece-sprite{animation:cheer .45s ease}
@keyframes cheer{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes trophy-enter{from{transform:scale(.55);opacity:0}to{transform:scale(1);opacity:1}}@keyframes star-fall{0%{opacity:0;transform:translate3d(0,-5vh,0) rotate(0)}10%,85%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(300deg)}}
@media(min-width:1550px){.question-text{font-size:3.2rem}.answer-button{font-size:1.5rem;min-height:86px}.question-panel{padding:40px 28px 28px}.question-top{margin-bottom:26px}}
@media(max-width:1150px){.challenge{padding:24px 20px 30px}.game-heading{gap:20px;margin-bottom:24px}.game-heading h1{font-size:3.8rem}.score-sign{min-width:160px;padding:10px 20px}.score-sign strong{font-size:3.5rem}.score-sign strong>span+span{font-size:2.5rem}.score-sign small{font-size:1rem}.game-layout{grid-template-columns:1.25fr 1fr;gap:22px}.question-panel,.win-panel{padding:30px 18px 20px;border-width:3px;border-radius:20px}.panel-tab{font-size:1.25rem}.question-text{font-size:2.3rem;margin-bottom:20px}.question-top{gap:8px}.question-count{font-size:1rem}.read-aloud{font-size:.9rem;padding:6px}.read-aloud .icon{width:17px;height:17px}.answer-button{font-size:1.1rem;min-height:70px;padding:13px 10px;gap:10px}.answer-letter{width:34px;height:34px;font-size:1.6rem}.answer-list{gap:12px}.map-toolbar{padding:6px 10px;gap:10px}.piece-picker{gap:3px}.piece-picker>span{font-size:.95rem}.piece-option{width:39px;height:49px}.piece-option .piece-sprite{width:59px;height:94px}.round-reset{padding:8px 10px;font-size:.95rem}.question-reassurance{font-size:1rem}.answer-feedback{font-size:1rem}.win-panel h2{font-size:3.6rem}.game-heading p{font-size:1.35rem}.hint-button{font-size:1.35rem}.mini-progress{height:21px}}
@media(max-width:800px){.challenge{padding:20px 18px 30px}.game-layout{grid-template-columns:1fr;max-width:650px;gap:30px}.game-heading{max-width:650px;gap:15px}.game-heading h1{font-size:3rem}.game-heading p{font-size:1.1rem}.score-sign{min-width:130px;padding:10px 14px}.score-sign strong{font-size:2.9rem}.score-sign strong>span+span{font-size:2.1rem}.score-sign small{font-size:.9rem}.map-crop{aspect-ratio:auto;height:clamp(210px,46vw,280px);border-radius:19px}.map-shell{width:170%;transition:transform .6s cubic-bezier(.2,.7,.3,1);will-change:transform}.open-board{display:block;position:absolute;right:12px;bottom:12px;border:2px solid white;background:var(--navy);color:white;border-radius:6px;padding:8px 13px;font-weight:700;font-size:.95rem;box-shadow:0 2px 0 #04172950;z-index:8}.map-toolbar{padding:8px 15px}.piece-picker{gap:8px}.piece-picker>span{font-size:1rem}.piece-option{width:42px;height:50px}.round-reset{font-size:1rem}.question-panel,.win-panel{padding:32px 22px 24px;min-height:0;margin-top:0}.question-top{margin-bottom:20px}.question-count{font-size:1.2rem}.read-aloud{font-size:1rem;padding:7px 10px}.question-text{font-size:2.5rem}.answer-button{font-size:1.25rem;padding:15px;min-height:77px;gap:13px}.answer-letter{width:40px;height:40px;font-size:1.9rem}.hint-button{font-size:1.5rem;min-height:54px}.answer-feedback{font-size:1.15rem}.question-reassurance{font-size:1.1rem}.win-panel h2{font-size:4rem}.win-panel .win-trophy{width:230px;margin:10px auto}.win-panel h3{font-size:2rem}.mobile-help{display:block;width:min(650px,100%);margin:18px auto 0;border:0;background:none;color:var(--navy);text-decoration:underline;font-weight:600}.game-page .site-footer{margin-top:0}}
@media(max-width:480px){.challenge{padding:18px 12px 26px}.game-heading{gap:10px;align-items:start;margin-bottom:18px}.game-heading h1{font-size:2.65rem;max-width:250px}.game-heading p{font-size:1rem;line-height:1.25;max-width:250px}.score-sign{min-width:103px;padding:10px 10px;margin-top:3px}.score-sign strong{font-size:2.5rem}.score-sign strong>span+span{font-size:1.8rem}.score-sign small{font-size:.85rem;max-width:85px;line-height:1.1}.map-column{border-radius:20px;border-width:3px}.map-crop{height:210px;border-radius:17px}.map-toolbar{gap:6px;padding:7px 8px}.piece-picker{gap:3px}.piece-picker>span{font-size:.9rem;margin-right:0}.piece-option{width:35px;height:43px;border-width:2px}.piece-option .piece-sprite{width:51px;height:81px}.round-reset{font-size:.9rem;padding:8px}.game-layout{gap:27px}.question-panel,.win-panel{padding:30px 15px 20px;border-radius:18px}.panel-tab{font-size:1.3rem;padding:8px 22px}.question-count{font-size:1.1rem}.read-aloud{font-size:.95rem;padding:6px 8px}.question-text{font-size:2.15rem;line-height:1.09;margin-bottom:20px}.answer-button{font-size:1.1rem;min-height:72px;padding:13px 10px;border-width:2.5px;gap:10px}.answer-letter{width:35px;height:35px;font-size:1.65rem}.answer-feedback{font-size:1.05rem;padding:12px}.hint-button{font-size:1.4rem}.question-reassurance{font-size:1rem}.round-progress{padding-top:16px}.win-panel h2{font-size:3.8rem}.board-dialog-header h2{font-size:1.7rem}.board-dialog{padding:15px 9px;border-width:3px}.board-dialog p{font-size:1rem}}

/* Anchor the visible base (82% of the sprite canvas) to the actual tile surface. */
.map-token{width:9.3%;transform:translate(-49.5%,calc(-82% - 1.4cqw));transform-origin:49.5% 82%;filter:drop-shadow(2px 3px 1.5px #00152955)}
.station-number{display:block;transition:transform .25s,font-size .25s}
.station.has-pawn .station-number{transform:translateY(1.7cqw);font-size:4.7cqw}
.station.is-current:before{inset:-.5cqw -1.6cqw;border:2px solid #ffb000;border-radius:1.8cqw;box-shadow:inset 0 0 0 2px #ffe867,0 0 10px #ffb00055;background:#ffd60055}
/* The progress strip is an integral, high-contrast footer of the question card. */
.question-panel{--question-inset:clamp(16px,2vw,28px);padding:36px var(--question-inset) 0}
.round-progress{margin-inline:calc(-1 * var(--question-inset));margin-top:auto;padding:18px var(--question-inset) 22px;background:var(--navy);color:white;border-top:3px solid var(--orange);border-radius:0 0 19px 19px}
.question-reassurance{margin-bottom:26px}
.round-progress>p{border:0;margin:0 0 12px;padding:0;font:600 1.15rem/1.25 var(--body)}
.mini-progress{height:29px;gap:3px;padding:3px;background:#ffffff12;border:2px solid #fff8dc;border-radius:9px;box-shadow:0 3px 0 #00000025}
.mini-progress>span{background:#284264;border-radius:2px}
.mini-progress>.is-earned{background:linear-gradient(#ffc21b,#ff8200);border:1px solid #ffda63;border-radius:2px;box-shadow:inset 0 1px 0 #ffffff70}
.mini-progress>.is-active{background:#fff4ce;border:1px solid #ffca24}
.map-toolbar{padding-block:10px 12px;min-height:72px}
.piece-option.is-selected{box-shadow:0 0 0 2px #ffd60033}
@media(max-width:800px){
 .question-panel{padding-top:32px}
 .round-progress{padding-block:16px 18px;border-radius:0 0 16px 16px}
 .round-progress>p{font-size:1.1rem}
 .map-toolbar{min-height:64px}
}
@media(max-width:480px){
 .round-progress{border-radius:0 0 13px 13px}
 .mini-progress{height:27px;gap:2px}
}

/* Show the full pawn inside a roomy selection button, without circular clipping. */
.piece-picker{gap:8px}
.piece-option{width:48px;height:58px;flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:10px;overflow:visible}
.piece-option .piece-sprite{width:48px;height:76.8px;left:50%;top:50%;transform:translate(-49.5%,-53.3%);pointer-events:none;filter:drop-shadow(1px 2px 1px #00000044)}
.piece-option.is-selected{border-color:var(--yellow);background:#ffffff12;box-shadow:0 0 0 1px #ffd60035}
.piece-option:hover{background:#ffffff20}
.map-toolbar{flex-wrap:wrap}
@media(max-width:480px){
 .piece-picker{gap:6px}
 .piece-option{width:42px;height:52px;border-radius:9px}
 .piece-option .piece-sprite{width:41.4px;height:66.24px}
 .round-reset{margin-left:auto}
}
.question-scroll{min-width:0}

/* A desktop game fits the browser window, rather than growing with screen width.
   The square artwork keeps its aspect ratio; longer questions remain scrollable. */
@media(min-width:801px){
 .game-page .header-inner{min-height:68px}
 .game-page .brand-mark{width:34px;height:40px}
 .game-page .brand>span{font-size:1.8rem}
 .game-page .brand small{font-size:.65rem}
 .challenge{
  --game-height:clamp(420px,calc(100dvh - 180px),820px);
  --board-size:min(calc(var(--game-height) - 76px),calc((100vw - 72px) * .5));
  padding:16px 24px 24px;min-height:calc(100dvh - 68px)
 }
 .game-heading,.game-layout{width:min(100%,calc(var(--board-size) + 604px));max-width:none;margin-inline:auto}
 .game-heading{gap:20px;margin-bottom:18px;min-height:64px}
 .game-heading h1{font-size:clamp(2.35rem,3.5vw,3.5rem);line-height:1}
 .game-heading p{font-size:clamp(1rem,1.5vw,1.25rem);margin-top:5px;line-height:1.2}
 .score-sign{min-width:134px;padding:8px 20px}
 .score-sign strong{font-size:2.8rem;line-height:1}
 .score-sign strong>span:last-child{font-size:1.9rem}
 .score-sign small{font-size:.9rem;margin-top:2px}
 .game-layout{grid-template-columns:var(--board-size) minmax(0,1fr);gap:24px;height:var(--game-height)}
 .map-column{align-self:start}
 .map-crop{aspect-ratio:1;height:auto}
 .map-toolbar{padding:7px 10px;gap:8px;min-height:76px}
 .piece-picker{gap:5px}
 .piece-picker>span{font-size:.85rem}
 .piece-option{width:42px;height:54px}
 .piece-option .piece-sprite{width:43px;height:68.8px}
 .round-reset{padding:8px;font-size:.85rem;min-height:40px}
 .question-panel,.win-panel{height:calc(var(--game-height) - 12px);min-height:0;align-self:start;margin-top:12px;border-width:3px;border-radius:22px}
 .question-panel{--question-inset:clamp(16px,2vw,24px);padding:28px 0 0}
 .panel-tab{font-size:1.2rem;padding:6px 23px}
 .question-scroll{flex:1 1 0;min-height:0;overflow-y:auto;padding:0 var(--question-inset) 8px;scrollbar-gutter:stable;scroll-padding:12px;overscroll-behavior:contain;scrollbar-color:#c3ccda #fffef9;scrollbar-width:thin}
 .question-scroll:focus-visible{outline:2px solid #267ec6;outline-offset:-3px}
 .question-top{margin-bottom:12px;gap:8px}
 .question-count{font-size:1rem}
 .read-aloud{font-size:.9rem;min-height:38px;padding:6px 8px}
 .question-text{font-size:clamp(1.7rem,3.7vh,2.5rem);line-height:1.09;margin-bottom:16px}
 .answer-list{gap:8px}
 .answer-button{font-size:clamp(1rem,2.35vh,1.25rem);min-height:54px;padding:9px 11px;gap:10px;border-width:2px}
 .answer-letter{width:32px;height:32px;font-size:1.55rem}
 .answer-feedback{padding:11px;margin-top:12px;font-size:1rem}
 .question-actions{flex:none;margin:8px var(--question-inset) 0}
 .hint-button,.continue-button{min-height:44px;padding:7px 12px;font-size:1.25rem}
 .hint-button .icon{width:24px;height:24px}
 .question-reassurance{flex:none;font-size:.9rem;line-height:1.25;margin:7px var(--question-inset) 10px}
 .question-reassurance[hidden]+.round-progress{margin-top:12px}
 .round-progress{flex:none;margin:0;padding:10px var(--question-inset) 12px;border-radius:0 0 18px 18px}
 .round-progress>p{font-size:1rem;margin:0 0 8px}
 .mini-progress{height:24px}
 .win-panel{overflow-y:auto;justify-content:flex-start;padding:24px}
 .win-panel h2{font-size:clamp(2.4rem,5vh,3.3rem)}
 .win-panel .win-trophy{width:clamp(110px,20vh,190px);margin:10px auto}
 .win-panel h3{font-size:1.8rem;margin-bottom:8px}
 .win-panel p{font-size:1.05rem}
 .win-panel .btn{font-size:1.3rem;margin-top:14px;flex-shrink:0}
 .win-panel .text-link{margin:12px 0;font-size:1rem}
 .win-panel .win-footnote{font-size:.9rem}
}
