/* In-scene instruments and controls shared by the wilderness adventures. */
.wake-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.flight-distance i{width:0}.is-paused *{animation-play-state:paused!important}
.branch .wood,.carried-log{background-size:100% auto!important}
.scene{height:clamp(390px,54vh,650px)}
.scene-question{position:absolute;top:14px;left:18px;z-index:7;max-width:66%;padding:10px 15px;background:#0b2525e8;border:1px solid #fff0b266;border-radius:9px;font:600 21px/1.2 'Outfit';color:#fff2cc;pointer-events:none;box-shadow:0 4px 16px #00181945}
.play-progress{position:absolute;right:18px;top:24px;display:flex;gap:6px;z-index:7;pointer-events:none}.play-progress i{width:7px;height:7px;border:1px solid #fff0b280;border-radius:50%}.play-progress .done{background:var(--accent)}.play-progress .current{outline:2px solid var(--accent);outline-offset:2px}
.scene-note{top:auto;bottom:15px;z-index:8;background:#0e2828c9;padding:8px 13px;border-radius:6px}.scene-note:empty{display:none}
.play-tools{display:flex;align-items:center;gap:14px;margin:12px 0;padding:12px 15px;background:linear-gradient(100deg,#183d37,#102b2ae6);border:1px solid #cee3ba42;border-radius:12px}.play-tools:empty{display:none}.play-tools>p{margin:0;flex:1;color:#d3e1c7;font-size:11px;line-height:1.6}.play-tools .primary{padding:13px 18px;font-size:12px;min-height:46px}.steer-pad{display:flex;gap:4px}.steer-pad button{width:39px;height:43px;border:1px solid #b4d1ac73;border-radius:8px;background:#244a40;font-size:21px;color:#f3e6b8}.steer-pad button:active{background:#6a8059}.play-tools button{white-space:nowrap}
body[data-game=otter] .shade{background:repeating-linear-gradient(115deg,transparent 0 18%,#ccefe60a 21%,transparent 25%),linear-gradient(0deg,#073e4533,transparent 70%)}
body[data-game=otter] .actor{width:180px}.fish{transition:opacity .2s;z-index:3}.fish:focus-visible{outline-offset:0}.fish small{font-size:9px;background:#062d36dd}.fish-art{filter:drop-shadow(0 5px 3px #09292070)}
.dock-button{position:absolute;right:12px;top:8px;background:#485336;color:#fff0bf;border:1px solid #e8d59188;border-radius:6px;padding:6px 9px;font-size:9px;min-height:30px}.dam-build{top:22%;height:94px}.dam-build>span{max-width:50%;line-height:1.6}.carried-log{position:absolute;top:53%;left:27%;width:47%;height:13%;border-radius:28%;background:repeating-linear-gradient(178deg,#987347 0 3px,#614024 4px,#b9905e 6px);border:2px solid #443224;box-shadow:0 7px 6px #001d1c70;transform:rotate(-12deg)}.carried-log b{position:absolute;left:35%;bottom:105%;font:700 12px 'DM Sans';white-space:nowrap;color:#fff4d0;background:#102d20e0;padding:5px 8px;border-radius:5px}.dam-build:has(+.branch.collected){box-shadow:0 6px 26px #051a1c70}.branch{width:clamp(75px,12vw,160px)}
body[data-game=hawk] .scene{background-size:110% 110%;background-position:50% 30%}.flying{animation:canyon-flight 18s linear infinite}.flying .air-streams i{animation-duration:1s}.gust{position:absolute;border:2px dashed #e2eff0b8;border-radius:50%;background:repeating-linear-gradient(-12deg,transparent 0 12px,#d0ecf433 14px 17px,transparent 20px);color:#effcff;text-align:center;display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:.12em;text-shadow:0 2px 4px #061c20;pointer-events:none}.flight-distance{height:5px;background:#ffffff20;border-radius:8px;overflow:hidden;min-width:100px;flex:1}.flight-distance i{display:block;height:100%;background:#efdaa3}.flight-gate{transition:border-color .15s,background .15s}.bumped{box-shadow:inset 0 0 0 3px #edb294}.bumped .shade{background:#cf815332}.flight-gate.fly-gate{left:0;top:0;transform:translate(-50%,-50%);min-height:50px}.flying .actor.hawk{filter:drop-shadow(0 22px 12px #02192955)}
@keyframes canyon-flight{0%{background-position:50% 10%}100%{background-position:50% 90%}}.surveyed{background:#e4d78a99!important;box-shadow:inset 0 0 0 1px #fff3caaa}
.forage-patch{top:36%;height:38%}.forage-patch .patch-cover{position:absolute;inset:60% 7% 2%;border-radius:50%;background:repeating-linear-gradient(155deg,#62472b99 0 5px,#b08b4966 7px,#615c3299 12px);pointer-events:none;transition:opacity .3s}.forage-patch.scratched .patch-cover{opacity:0}.forage-patch .acorn.gathered{opacity:0;transform:translateY(-30px) scale(.5);transition:all .3s}.scratch-meter{height:6px;border:1px solid #dac28d55;border-radius:8px;overflow:hidden;width:100px;background:#11221980}.scratch-meter i{display:block;background:#e4c982;height:100%;width:0}.ridge-progress{display:none}.trail-pattern b{padding:4px 8px;background:#ffffff09;border-radius:6px}.equation-workbench{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1}.equation-workbench button{padding:9px 12px;border:1px solid #d6c8996b;border-radius:8px;background:#334638;min-height:42px;font-size:12px}.equation-workbench p{width:100%;margin:0;color:#e5dcbb;font-size:12px;line-height:1.5}
@media(max-width:600px){.scene{height:400px;min-height:400px}.scene-question{font-size:16px;left:10px;top:12px;padding:9px 10px;max-width:75%}.play-progress{top:69px;right:13px;gap:5px}.play-progress i{width:5px;height:5px}.play-tools{flex-wrap:wrap;gap:9px;padding:10px}.play-tools>p{flex-basis:100%;font-size:10px}.play-tools .primary{flex:1;padding:12px 10px;font-size:11px}.steer-pad button{width:34px;height:42px}.scene-note{font-size:8px;bottom:10px;width:auto;max-width:95%}.dock-button{right:7px;top:8px;max-width:48%;font-size:8px;padding:5px}.dam-build{top:23%}.dam-build>span{font-size:8px}.carried-log b{font-size:10px}body[data-game=otter] .actor{width:130px}.gust{font-size:8px}.forage-patch{top:35%;height:39%}.scratch-meter{width:70px}.equation-workbench button{font-size:11px;padding:8px}.flight-gate.fly-gate>strong{font-size:20px}}
@media(max-width:600px){.steer-pad button{width:44px;height:44px}.play-tools .primary{white-space:normal}}
@media(prefers-reduced-motion:reduce){.scene,.air-streams i{animation:none!important}.acorn,.patch-cover{transition:none!important}}

.ridge-log{position:absolute;top:74%;height:7%;left:4%;right:4%;border:2px solid #3a2b19;border-radius:45% 14% 25% 34%;background:repeating-linear-gradient(178deg,#72542f 0 3px,#46351e 4px 7px,#a17c42 8px 10px);box-shadow:0 8px 7px #1a1d0f80;pointer-events:none;z-index:4}.ridge-log::before{content:'';position:absolute;right:20%;top:-10px;width:42px;height:15px;background:#62492c;transform:rotate(-30deg);border-radius:9px}.ridge-log span{position:absolute;left:50%;top:35%;transform:translate(-50%,-50%);font:700 8px 'DM Sans';letter-spacing:.14em;white-space:nowrap;color:#ffe3a2;text-shadow:0 2px 3px #261905}.actor.turkey{z-index:5}
.branch .wood{top:7px;height:55px;border:0;border-radius:0;background:url('assets/wilderness/oak-log.webp') center/100% 150% no-repeat;box-shadow:none;filter:drop-shadow(0 6px 2px #071c2555);transform:scaleX(var(--length-scale,1))}.branch .wood::before,.branch .wood::after,.ridge-log::before{display:none}.carried-log{height:25%;top:49%;background:url('assets/wilderness/oak-log.webp') center/100% 190% no-repeat;border:0;box-shadow:none;border-radius:0}.carried-log b{transform:scaleX(var(--facing,1))}.ridge-log{height:13%;top:71%;border:0;border-radius:0;background:url('assets/wilderness/oak-log.webp') center/100% 180% no-repeat;box-shadow:none;filter:drop-shadow(0 7px 3px #191c0a80)}.ridge-log span{top:62%}
@media(min-width:900px) and (min-height:650px){
 .is-playing .nav{padding:10px 24px;height:52px}.is-playing footer{display:none}.is-playing .game{display:grid;grid-template-rows:auto auto minmax(220px,1fr) auto auto auto auto;gap:7px;height:calc(100dvh - 52px);padding:10px 24px;max-width:1450px}.is-playing .game-top{margin:0;min-height:37px}.is-playing .game-top .eyebrow{font-size:8px}.is-playing .question-row{margin:0;padding:9px 16px}.is-playing .question-row h2{font-size:25px;margin:0}.is-playing .question-row .eyebrow{font-size:7px;margin-bottom:3px}.is-playing .question-row p:last-child{display:none}.is-playing .readout strong{font-size:25px;margin-top:3px}.is-playing .scene{height:100%;min-height:0}.is-playing .scene-question{font-size:17px;top:10px;padding:7px 12px}.is-playing .play-tools{margin:0;padding:7px 12px;min-height:48px}.is-playing .play-tools button{min-height:35px;padding:7px 12px}.is-playing .steer-pad button{height:35px;width:36px;padding:4px}.is-playing .visual-model{margin:0;padding:8px 12px;min-height:33px}.is-playing .answer-controls{margin:0;gap:8px}.is-playing .answer-controls button{min-height:36px;padding:6px 14px}.is-playing .answer-controls strong{font-size:21px}.is-playing .play-bottom{min-height:43px;gap:12px}.is-playing .play-bottom p{margin:0;font-size:11px}.is-playing .play-bottom .text-button{font-size:10px;padding:5px 0}.is-playing .play-bottom .primary{min-height:39px;padding:10px 18px}.is-playing #gameNote{display:none}.is-playing .actor{width:165px}.is-playing .actor.hawk{width:180px}.is-playing .actor.turkey{width:150px}.is-playing .fish{width:65px;height:65px}.is-playing .dam-build{top:23%;height:78px;padding:9px 14px}.is-playing .branch{height:53px}.is-playing .branch b{font-size:10px;top:2px}.is-playing .branch .wood{height:45px}.is-playing .forage-patch{top:29%;height:45%}.is-playing .forage-patch>strong{font-size:30px}.is-playing .forage-patch>span{font-size:8px}.is-playing .equation-workbench{gap:6px}.is-playing .equation-workbench p{width:auto;font-size:10px}.is-playing .equation-workbench button{min-height:30px;padding:5px 8px;font-size:10px}
}

/* One place to read the next move, act, and review the result. */
.command-deck{background:linear-gradient(120deg,#173d35,#0c2725);border:1px solid #d4dfb36b;border-radius:14px;padding:13px 17px;box-shadow:0 12px 32px #001a1738;display:flex;flex-direction:column;gap:9px}
.command-deck #instructions{margin:0;font-size:15px;line-height:1.5;color:#fff1c9;font-weight:600;border-left:3px solid #e6cd8b;padding-left:12px;display:block!important}
.command-deck .play-tools{order:2;margin:0;padding:0;border:0;background:none;min-height:0;gap:10px;flex-wrap:wrap}
.command-deck .play-tools>p{font-size:12px;line-height:1.45}
.command-deck .visual-model{order:1;margin:0;padding:7px 10px;min-height:0;background:#ffffff06;border-color:#ffffff12}
.command-deck .answer-controls{order:2;margin:0}
.command-deck .answer-controls:empty{display:none}
.command-deck .play-bottom{order:3;align-items:center;gap:12px;min-height:0;margin:0}
.command-deck .play-bottom p{font-size:14px;line-height:1.5;margin:0 0 4px;color:#f2e7c8}
.command-deck .play-bottom p:empty{display:none}
.command-deck .play-bottom .text-button{font-size:12px;margin-right:16px;min-height:35px;padding:5px 0}
.command-deck .actions{display:flex;gap:8px;flex-shrink:0}
.control-row{order:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.control-row .play-tools{flex:1}.control-row .answer-controls{flex:1 0 100%}.control-row .actions:not(:has(button:not([hidden]))){display:none}
.control-row .play-tools{order:1}.control-row .answer-controls{order:2}.control-row .actions{order:3}
[data-task=angle] .control-row .play-tools{flex:0 1 auto}[data-task=angle] .control-row{gap:16px}
.control-row .play-tools [data-turn]{flex:0 0 auto;white-space:nowrap!important;font-size:12px;padding:12px}
.command-deck .primary{min-height:46px;font-size:14px;padding:11px 20px}
.command-deck .steer-pad button{min-width:44px;min-height:44px}
.command-deck .flight-distance{max-width:180px}
.command-deck .scratch-meter{width:100px}
.help-dialog{width:min(720px,94vw);max-height:90dvh;padding:28px;border:1px solid #d9cf96;border-radius:18px;background:#12362f;color:#f5f0d8}
.help-steps{list-style:none;padding:0;margin:18px 0;display:grid;gap:14px}.help-steps li{display:flex;gap:13px;font-size:15px;line-height:1.6}.help-steps li>b{font-size:21px;color:#edce8e;min-width:30px}.help-dialog .primary{margin-top:16px;width:100%;min-height:48px}
#helpPractice{background:#071f1c99;padding:16px;border-radius:10px}#helpPractice:empty{display:none}#helpPractice h3{margin:0 0 6px}#helpPractice p{font-size:14px;line-height:1.5}
@media(min-width:900px) and (min-height:650px){
 .is-playing .game{grid-template-rows:auto auto minmax(250px,1fr) auto;gap:9px}
 .is-playing .command-deck{gap:6px;padding:10px 15px}
 .is-playing .command-deck #instructions{font-size:14px;line-height:1.4}
 .is-playing .command-deck .play-tools{padding:0;min-height:0;margin:0}
 .is-playing .command-deck .play-tools>p{font-size:12px}
 .is-playing .command-deck .play-tools button{min-height:40px}
 .is-playing .command-deck .visual-model{padding:5px 9px}
 .is-playing .command-deck .play-bottom p{font-size:13px}
 .is-playing .command-deck .play-bottom .primary{min-height:44px;font-size:14px}
 .is-playing .command-deck .answer-controls button{min-height:44px}
}
@media(max-width:600px){
 .is-playing .game{padding:10px;gap:9px}.is-playing .question-row{margin:8px 0;padding:10px}.is-playing .question-row h2{font-size:21px}.is-playing .game-top{margin-bottom:8px}
 .command-deck{padding:12px;gap:10px}.command-deck #instructions{font-size:14px}.command-deck .play-bottom{flex-direction:column;align-items:stretch}.command-deck .actions{width:100%;justify-content:stretch}.command-deck .actions>button{flex:1}.command-deck .visual-model{flex-wrap:wrap}.command-deck .visual-model>b{font-size:12px}
 .command-deck .play-tools>p{font-size:12px}.command-deck .play-tools button{white-space:normal}.command-deck .answer-controls{gap:6px}.command-deck .answer-controls button{min-height:48px}
 .help-dialog{padding:20px}.help-steps li{font-size:14px}.help-steps{gap:10px}
}
@media(max-width:600px){body.is-playing footer{display:none}body.is-playing .scene{height:330px;min-height:330px}}
.fish.chasing{outline:2px solid #ffe7a1;outline-offset:2px;filter:drop-shadow(0 0 8px #ffeeb180)}.branch.chasing .wood{filter:drop-shadow(0 0 7px #ffe7a1)}.branch.chasing b{background:#e6cc89;color:#172b22}
.fraction-reefs{position:absolute;inset:22% 5% 25%;display:grid;grid-template-columns:repeat(3,1fr);gap:6%}.fraction-reef{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:linear-gradient(180deg,#113e4bdc,#073438ba);border:1px solid #b5e0d385;border-radius:45% 45% 16px 16px;color:#fff0bd;box-shadow:0 15px 24px #082f3780;min-width:0;transition:border-color .2s,box-shadow .2s}.fraction-reef>span{font-size:10px;letter-spacing:.15em}.fraction-reef svg{width:min(140px,70%);max-height:65%;filter:drop-shadow(0 4px 4px #001c2355)}.fraction-reef strong{font-size:clamp(23px,3vw,36px);font-family:'Outfit';font-variant-numeric:tabular-nums}.fraction-reef:hover,.fraction-reef[aria-pressed=true]{border:2px solid #ffdfa0;box-shadow:0 0 30px #b4efd35c}.fraction-reef:disabled{opacity:1}.fraction-reef:disabled:not([aria-pressed=true]){opacity:.65}body[data-game=otter] .actor{z-index:6}.actor.turkey.feeding{z-index:8;filter:drop-shadow(0 8px 4px #1e210b99)}.forage-patch.scratched .acorn{box-shadow:0 0 9px #ffe4a799}.forage-patch.scratched .acorn.gathered{opacity:0;transform:translateY(-20px) scale(.2)}
@media(max-width:600px){.fraction-reefs{inset:24% 4% 26%;gap:4%}.fraction-reef{gap:6px}.fraction-reef>span{font-size:8px}.fraction-reef svg{width:88%}.fraction-reef strong{font-size:24px}.forage-patch .acorn{width:19px;height:28px}body[data-game=otter] .readout{max-width:90px}body[data-game=otter] .readout strong{font-size:18px}}
.dam-build .dock-label{position:absolute;right:10px;top:10px;max-width:46%;font-size:9px;letter-spacing:.07em;text-align:right;color:#e1d6a9;pointer-events:none}
@media(max-width:600px){.dam-build .dock-label{font-size:7px;right:7px;top:12px}}
.forage-patch:disabled[aria-pressed=true]{opacity:1}.forage-patch.scratched .acorn{width:24px;height:31px;filter:drop-shadow(0 0 4px #e2c185)}
