*{box-sizing:border-box}:root{--ink:#294445;--muted:#7a847b;--gold:#d7b77b}body{margin:0;background:#f6f3eb;color:var(--ink);font-family:Arial,sans-serif}button,select{font:inherit}button{border:1px solid #ced3c6;border-radius:6px;background:transparent;color:inherit;padding:11px 15px;font-size:12px;cursor:pointer}button:hover{background:#e4e6dc}button:disabled{opacity:.4;cursor:default}header{height:82px;border-bottom:1px solid #dedfd5;padding:0 4%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;letter-spacing:3px;font-weight:bold;font-size:20px}.brand b{border:1px solid #bba26e;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-family:Georgia;color:#ac925f}.brand small{font-size:8px;color:var(--muted);letter-spacing:2px;margin-left:10px}nav button{border:0}main{max-width:1500px;padding:30px 4% 15px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:2px;color:#9b875b;font-weight:bold}h1{font:36px Georgia,serif;margin:12px 0}.sub{font-size:14px;color:var(--muted);margin:0}#badge{font-size:9px;letter-spacing:1.5px;border:1px solid #d3d7ca;border-radius:25px;padding:11px 15px}#scene{height:min(56vw,535px);min-height:380px;border-radius:12px;overflow:hidden;position:relative;background:#244558 url('assets/river.png') center/cover;color:#fff;box-shadow:0 12px 30px #203a431c}#scene:after{content:'';position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#10263888);pointer-events:none}#snow,#boats,#fog{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#fog{background:linear-gradient(10deg,#dce6ddb0,transparent 85%);opacity:0;transition:opacity 3s}#scene.noisy #fog{opacity:1}.overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#10283b66;padding:20px}.overlay h2{font:30px/1.55 Georgia,serif;margin:13px 0}.overlay p{font-size:13px;color:#dee5df}.overlay .eyebrow{font-size:9px;color:#dfc18b}.overlay button{color:white;border-color:#ffffff50;margin:17px 4px 12px}.primary{background:var(--gold)!important;border-color:var(--gold)!important;color:#253d3d!important;font-weight:bold}.overlay small{font-size:10px;color:#bdccce}#finish h2{font-size:70px;color:#edcf91;letter-spacing:4px}#status{position:absolute;z-index:2;top:22px;left:50%;transform:translateX(-50%);border:1px solid #ffffff33;border-radius:25px;background:#183548cc;padding:11px 20px;font-size:12px;white-space:nowrap}.sceneFooter{position:absolute;z-index:4;bottom:20px;left:25px;right:25px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#d7e1dc}.below{display:grid;grid-template-columns:2fr 1fr;gap:50px;padding:26px 0}.row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.row b,.bottom b{font-size:9px;letter-spacing:1.5px;color:var(--ink)}.track,.meter{height:5px;background:#dfe4d9;border-radius:5px;margin:14px 0 10px;position:relative}.track i,.meter i{display:block;height:100%;width:0;background:#7f9b84;border-radius:5px}.meter em{position:absolute;left:30%;top:-5px;height:15px;width:2px;background:#ad915c}.milestones{display:flex;justify-content:space-between;font-size:10px;color:#879085}.bottom{border-top:1px solid #dedfd5;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:30px}.bottom p{font-size:12px;line-height:1.8;max-width:670px;margin:0;color:#728071}.bottom b{display:block;color:#9e8758;margin-bottom:3px}.bottom>div{display:flex;gap:6px;flex-shrink:0}#demoTools{display:flex;gap:15px;align-items:center;font-size:11px;color:#8e794e}#error{color:#a54534;font-size:13px}dialog{background:#f6f3eb;border:1px solid #d4dacb;border-radius:12px;padding:26px;color:var(--ink);width:420px;max-width:95vw}dialog::backdrop{background:#102a3d99}dialog h2{font:25px Georgia}dialog .row button{border:0}label{display:block;font-size:13px;margin:22px 0 8px}select{display:block;width:100%;margin-top:8px;border:1px solid #cbd2c3;border-radius:5px;padding:10px;background:#fff;color:var(--ink)}input{width:100%;margin-top:15px;accent-color:#58766a}output{float:right;color:#9e8758}dialog p{font-size:11px;line-height:1.7;color:#7b8378}.boat{position:absolute;width:27%;max-width:310px;filter:drop-shadow(0 7px 5px #061d3a66)}.boat img{width:100%;animation:bob 4s ease-in-out infinite}.boat:nth-child(2) img{animation-delay:-2s}@keyframes bob{50%{transform:translateY(4px) rotate(1deg)}}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){.boat img{animation:none}}@media(max-width:760px){header{height:65px}.brand{font-size:15px;letter-spacing:2px}.brand small{display:none}nav button{font-size:10px;padding:6px}h1{font-size:27px}#badge{display:none}#scene{min-height:420px}.overlay h2{font-size:23px}.below{grid-template-columns:1fr;gap:17px}.bottom{flex-direction:column;align-items:flex-start;gap:16px}#demoTools{flex-wrap:wrap}.boat{width:38%}}

.boat{width:38%;max-width:480px}@media(max-width:760px){.boat{width:38%}}

.sprite{width:100%;aspect-ratio:1.5;background-image:url('assets/fleet.png');background-size:200% 200%;background-repeat:no-repeat;animation:bob 4s ease-in-out infinite}.durham-one .sprite{background-position:0 0}.durham-two .sprite{background-position:100% 0}.cannon-one .sprite{background-position:0 100%}.cannon-two .sprite{background-position:100% 100%}@media(prefers-reduced-motion:reduce){.sprite{animation:none}}

.sceneLogo{position:absolute;top:18px;left:18px;width:90px;height:90px;overflow:hidden;border-radius:9px;z-index:5;box-shadow:0 3px 12px #061c3540;pointer-events:none}.sceneLogo img{position:absolute;width:260.163%;max-width:none;height:146.342%;left:-80.081%;top:-23.171%}@media(max-width:760px){.sceneLogo{width:60px;height:60px;top:12px;left:12px}#status{top:85px}}

.sceneLogo{overflow:visible;border-radius:0;box-shadow:none}.sceneLogo img{position:static;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px #0006)}
.sessionBar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:17px 0;border-bottom:1px solid #dedfd5;font-size:11px}.sessionBar label{margin:0;font-size:9px;letter-spacing:1px;display:flex;align-items:center;gap:9px}.sessionBar select{width:145px;margin:0;padding:8px}.sessionBar #saveStatus{color:#788478}.sessionBar #rewardBanner{flex:1;color:#967946;font-weight:bold}.sessionBar button{padding:8px 10px}#settings{max-height:88vh;overflow:auto}input[type=text]{border:1px solid #cbd2c3;border-radius:5px;padding:10px;font:inherit;color:var(--ink);background:white}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}#camp{position:absolute;left:1%;top:36%;width:30%;height:100px;z-index:1;pointer-events:none}.campItem{position:absolute;width:23%;height:45px;animation:unload 1.8s ease-out}.campItem>div{width:100%;aspect-ratio:1.5;background:url('assets/camp.png') 0 0/200% 200% no-repeat}.campItem.soldiers>div{background-position:100% 0}.campItem.supply>div{background-position:0 100%}.campItem.artillery>div{background-position:100% 100%}@keyframes unload{from{opacity:0;transform:translate(15px,10px)}to{opacity:1;transform:none}}#arrival,#discovery{position:absolute;z-index:6;left:50%;transform:translateX(-50%);background:#173447eb;color:#eee1bf;border:1px solid #bfa36a66;border-radius:7px;padding:12px 18px;font-size:12px;text-align:center;max-width:80%;pointer-events:none}#arrival{bottom:48px}#discovery{top:72px;max-width:60%;line-height:1.6}.weather-fog:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#b8cbd344,transparent 80%);z-index:2;pointer-events:none}.finalArrival{filter:drop-shadow(0 0 9px #eac57177)}#victoryFlag{position:absolute;z-index:4;left:12%;top:20%;color:#e3c786;font-size:45px;animation:raiseFlag 3s ease-out}#victoryFlag span{display:block;font-size:8px;letter-spacing:1.2px;background:#17394c;padding:7px;border-left:2px solid #c2a570}@keyframes raiseFlag{from{transform:translateY(80px);opacity:0}to{transform:none;opacity:1}}#finishStats{color:#d5dfdb;font-size:12px;margin:12px}#finishReward{color:#edce8e;font-weight:bold}.reportRow{display:flex;justify-content:space-between;gap:30px;padding:12px 0;border-bottom:1px solid #dedfd5;font-size:13px}#reportContent>p{line-height:1.7;font-size:13px}.celebrating #finish h2{animation:huzzah 1s ease-out}@keyframes huzzah{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:760px){.sessionBar{gap:12px}#discovery{top:125px;max-width:88%;width:88%;font-size:10px}#arrival{font-size:10px;width:80%}#camp{top:40%;width:40%}#finish h2{font-size:52px}#victoryFlag{top:15%}}@media(prefers-reduced-motion:reduce){.campItem,#victoryFlag,.celebrating #finish h2{animation:none}}
.raisedFlag{width:80px;height:50px;background:repeating-linear-gradient(to bottom,#a94a3e 0,#a94a3e 3.846px,#f6e7c3 3.846px,#f6e7c3 7.692px);border-left:3px solid #bfa16a;transform-origin:left center;animation:flagWave 3s ease-in-out infinite}.raisedFlag i{display:block;background:#183c54;width:36px;height:27px;font-size:8px;line-height:9px;letter-spacing:2px;font-style:normal;color:#ead7a8;text-align:center}@keyframes flagWave{50%{transform:skewY(3deg)}}@media(prefers-reduced-motion:reduce){.raisedFlag{animation:none}}
.raisedFlag i{position:relative}.raisedFlag i b{position:absolute;font-size:4px;line-height:4px;letter-spacing:0;transform:translate(-50%,-50%)}.campItem.supply{filter:drop-shadow(0 0 4px #d9a45377)}

#duration{display:block;width:100%;border:1px solid #cbd2c3;border-radius:5px;padding:11px;font:inherit;color:var(--ink);background:#fff}
.crossingCounts{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.crossingCounts strong{font-size:12px;letter-spacing:1px;color:#edd3a0}@media(max-width:760px){.crossingCounts strong{font-size:9px}.sceneFooter{letter-spacing:1px;font-size:7px}}

.timeAdjust{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 0 0;font-size:11px}.timeAdjust b{font-size:9px;letter-spacing:1px}.timeAdjust label{display:flex;gap:8px;align-items:center;margin:0;font-size:11px}.timeAdjust input{width:90px;padding:8px;margin:0;border:1px solid #cbd2c3;border-radius:5px;background:#fff;font:inherit}.timeAdjust button{padding:8px 11px}#adjustNotice{font-size:10px;color:#7a847b;width:100%}.timeAdjust input:disabled{opacity:.5}

/* A complete edge-to-edge crossing for classroom projection. */
body.presentation{overflow:hidden;background:#10283b}body.presentation>header{display:none}body.presentation main{padding:0;max-width:none}body.presentation main>*:not(#scene){display:none!important}body.presentation #scene{position:fixed;inset:0;width:100vw;height:100dvh;min-height:0;border-radius:0;box-shadow:none}body.presentation .sceneLogo{width:clamp(60px,8vw,110px);height:clamp(60px,8vw,110px)}body.presentation .sceneFooter{bottom:25px;font-size:clamp(9px,1vw,15px)}body.presentation .crossingCounts strong{font-size:clamp(13px,1.5vw,22px)}body.presentation #status{top:24px}body.presentation #discovery{top:85px}body.presentation #arrival{bottom:85px}
#screenHud{position:absolute;z-index:6;left:25px;bottom:85px;display:flex;flex-direction:column;gap:6px;background:#10283bd9;border:1px solid #ffffff33;border-radius:10px;padding:14px 20px;color:#eee1bf;pointer-events:none}#screenTime{font-size:clamp(28px,4vw,56px);font-variant-numeric:tabular-nums}#screenVolume{font-size:12px}#screenReveal{position:absolute;right:18px;top:18px;z-index:8;background:#10283bd9;color:white;border-color:#ffffff55}#screenTools{position:absolute;z-index:8;top:65px;right:18px;max-width:calc(100% - 36px);display:flex;flex-wrap:wrap;gap:8px;background:#10283bf5;padding:12px;border:1px solid #ffffff55;border-radius:9px}#screenTools button{color:white;border-color:#ffffff55}#screenTools button:hover,#screenReveal:hover{background:#35576a}#screenTools button:focus-visible,#screenReveal:focus-visible{outline:3px solid #edcf91;outline-offset:2px}
@media(max-width:600px){body.presentation #status{top:90px;font-size:10px}body.presentation #discovery{top:140px}#screenHud{left:15px;bottom:95px;padding:8px 12px}body.presentation .overlay h2{font-size:22px}body.presentation #finish h2{font-size:50px}}

/* Keep projector information above the river and boats. */
body.presentation #screenHud{top:18px;bottom:auto;left:150px;padding:10px 18px}
body.presentation .sceneFooter{top:18px;bottom:auto;left:auto;right:135px;padding:16px 20px;background:#10283bd9;border:1px solid #ffffff33;border-radius:10px}
body.presentation .sceneFooter>span{display:none}
body.presentation #status{top:135px}
body.presentation #discovery{top:190px}
body.presentation #screenTools{top:135px}
@media(max-width:760px){body.presentation #screenHud{left:100px;padding:8px 12px}body.presentation #screenTime{font-size:32px}body.presentation .sceneFooter{top:78px;right:18px;padding:10px 14px}body.presentation #status{top:165px}body.presentation #discovery{top:215px}body.presentation #screenTools{top:135px}}
@media(max-width:400px){body.presentation #screenHud{left:85px}body.presentation #screenVolume{font-size:10px}body.presentation .crossingCounts strong{font-size:12px}}

#screenMeter{position:relative;height:12px;min-width:160px;background:#ffffff26;border-radius:8px;margin-top:5px}#screenLevel{display:block;width:0;height:100%;background:#a7cfa5;border-radius:8px;transition:width .12s linear,background .2s}#screenTarget{position:absolute;top:-4px;bottom:-4px;width:3px;background:#ffe1a0;left:30%}#screenTargetLabel{font-size:10px;color:#eee1bf}
#noiseWarning{position:absolute;z-index:7;top:125px;left:50%;transform:translateX(-50%);width:max-content;max-width:85%;text-align:center;padding:12px 20px;border:1px solid #b7cf9d66;border-radius:9px;background:#153f39eb;color:#e7f5db;font-size:13px;line-height:1.5;pointer-events:none}#noiseWarning[data-kind="warning"]{background:#65491af2;border-color:#f0cc7a;color:#fff0c5}#noiseWarning[data-kind="danger"]{background:#71352cf5;border-color:#f4a08d;color:#fff2e4;font-weight:bold}
body.presentation #screenHud{min-width:200px}body.presentation #status{top:180px}body.presentation #noiseWarning{top:180px;font-size:clamp(14px,1.3vw,20px)}body.presentation #status:not([hidden]){visibility:hidden}body.presentation #discovery{top:265px}body.presentation #screenTools{top:180px}
@media(max-width:760px){body.presentation #screenHud{min-width:0;max-width:calc(100% - 215px)}#screenMeter{min-width:90px}body.presentation #screenTime{font-size:28px}body.presentation #noiseWarning{top:200px;max-width:94%;width:94%;font-size:12px}body.presentation #discovery{top:290px}body.presentation #screenTools{top:150px}#noiseWarning{top:155px;font-size:11px}}

/* Make History Fun storefront palette: white, charcoal, navy, heritage accents. */
:root{--ink:#121212;--muted:#656565;--gold:#d6952c;--navy:#242833;--rust:#b94c13}
body{background:#fff;color:var(--ink)}header{background:#fff;border-color:#e4e4e4}.brand{color:#242833}.brand b{color:#b94c13;border-color:#b94c13}.brand small{color:#656565}.eyebrow{color:#a44717}.sub{color:#656565}button{border-color:#d4d4d4}button:hover{background:#f0f0f0}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d6952c;outline-offset:3px}.primary{background:#121212!important;border-color:#121212!important;color:#fff!important}.overlay .primary{background:#f4dfb4!important;border-color:#f4dfb4!important;color:#242833!important}#badge{color:#242833;border-color:#d7d7d7}.sessionBar,.bottom{border-color:#e4e4e4}.sessionBar #saveStatus,#adjustNotice,.milestones,.bottom p,.row,dialog p{color:#656565}.sessionBar #rewardBanner,.bottom b{color:#a44717}.track,.meter{background:#e6e6e6}.track i{background:#242833}.meter em{background:#b94c13}.timeAdjust input,select,input[type=text],#duration{border-color:#ccc;color:#121212;background:#fff}dialog{background:#fff;border-color:#ddd;color:#121212}dialog::backdrop{background:#242833aa}output{color:#a44717}.reportRow{border-color:#e4e4e4}#demoTools{color:#a44717}#screenHud,#screenTools,#screenReveal,body.presentation .sceneFooter{background:#242833ed;border-color:#ffffff40}#screenTools button:hover,#screenReveal:hover{background:#414755}

.hushBrandLogo{display:block;width:265px;max-width:40vw;height:auto}header{min-height:100px;height:auto;padding-top:8px;padding-bottom:8px}@media(max-width:760px){header{min-height:75px}.hushBrandLogo{width:190px;max-width:42vw}}
