*{box-sizing:border-box}body{margin:0;background:#edf4f2;color:#173c45;font:16px 'Segoe UI',sans-serif}button,a,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b993ed;outline-offset:3px}[hidden]{display:none!important}.game-header{height:78px;background:#173e47;color:#fff;display:flex;align-items:center;gap:18px;padding:12px 24px}.brand{display:flex;width:48px;height:48px;border-radius:12px;background:white;align-items:center;justify-content:center;flex-shrink:0}.brand img{width:40px;height:40px;object-fit:contain}.game-name{width:190px;display:grid;gap:3px}.game-name span,.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em}.game-name span{color:#a8d5d1}.game-name strong{font-size:19px}#missions{display:flex;justify-content:center;gap:10px;flex:1}#missions a{width:36px;height:36px;border:1px solid #74969c;background:#2b535c;border-radius:50%;color:white;text-decoration:none;display:grid;place-items:center;font-weight:800;font-size:14px}#missions a[aria-current]{background:#f3ca62;border:3px solid #b69441;color:#173e47}#missions a.done{background:#319b83;border-color:#60c8ae}.quiet{padding:10px 13px;border:1px solid #597a82;border-radius:9px;background:transparent;color:white;font-size:13px}.offline{font-size:11px;color:#c1e9dd;display:flex;gap:5px;align-items:center}.offline i{width:6px;height:6px;background:#6adeba;border-radius:50%}.expedition{padding:18px 24px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr);gap:20px;max-width:1540px;margin:auto}.world-panel,.learning-panel{border:1px solid #d3e3df;border-radius:18px;background:#fff;overflow:hidden}.world-heading{height:77px;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;gap:12px}.eyebrow{color:#7772a4}h1{font-size:23px;margin:5px 0 0;line-height:1.15}h2{font-size:22px;margin:5px 0 13px}.mission-badge{background:#edf6ef;border-radius:20px;padding:7px 10px;white-space:nowrap;font-size:12px;font-weight:800}.world{position:relative;overflow:hidden;background:radial-gradient(ellipse at 20% 10%,#ecf8ce,transparent 60%),#bcddcb;height:400px;margin:0 15px;border-radius:13px}.board{height:100%;width:100%;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);padding:16px;gap:7px}.tile{position:relative;display:grid;place-items:center;border-radius:12px;font-size:34px;color:#458678}.tile.trail{background:#fff4d5;box-shadow:inset 0 -3px #d3bc90,inset 0 0 0 1px #d6cba6}.tile.terrain:before{content:'';width:45%;height:65%;background:#47816b;clip-path:polygon(50% 0,90% 42%,70% 42%,100% 72%,58% 72%,58% 100%,42% 100%,42% 72%,0 72%,30% 42%,10% 42%);opacity:.45}.tile.terrain:nth-child(3n):before{transform:scale(.65);opacity:.28}.tile.marker{background:#d8dfca;box-shadow:inset 0 0 0 2px #c7ad6f}.tile.marker:after{content:'?';font-size:23px;font-weight:900;color:#737647}.tile.marker.cleared:after{content:'✓';color:#217865}.tile.marker.avoided:after{content:'↪';color:#885fc0}.tile.home:after{content:'⌂';font-size:38px;color:#238675}.tile.start:after{content:'START';font-size:10px;letter-spacing:.12em;color:#837b54}.pip{position:absolute;width:60px;height:70px;transform:translate(-50%,-57%);transition:left .4s ease,top .4s ease,filter .3s;pointer-events:none;z-index:2}.pip img{width:100%;height:100%}.pip.powerdown{filter:grayscale(1);transform:translate(-50%,-50%) rotate(-16deg)}.pip.scanning:after{content:'';position:absolute;inset:-14px;border:2px solid #6dcdcd;border-radius:50%;animation:scan 1.2s infinite}.world-overlay{position:absolute;inset:0;background:#eef8e7e8;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;z-index:3}.world-overlay img{height:110px;margin-bottom:12px}.world-overlay h2{margin:0;font-size:25px}.world-overlay p{margin:9px 0;color:#537570}.world-overlay.failure{background:#f7f1f5ed}.world-overlay.success{background:#e9fbf3ed}.playbar{min-height:87px;display:flex;align-items:center;gap:10px;padding:14px 16px;flex-wrap:wrap}.primary{background:#7656b4;color:white;border:0;border-radius:10px;padding:13px 20px;font-weight:800;box-shadow:0 3px #523b82}.secondary{background:#f1f6f5;color:#23505b;border:1px solid #c6dbd6;border-radius:10px;padding:12px 15px;font-weight:750}.playbar span{font-size:12px;flex:1;min-width:140px;color:#5e787b;line-height:1.4}.learning-panel{padding:19px;display:flex;flex-direction:column}.learning-heading{position:relative}.learning-heading h2{font-size:21px;margin-bottom:7px}.text-button{background:none;border:0;color:#7157aa;padding:3px 0;font-size:12px;font-weight:800}.text-button span{background:#ede7f7;border-radius:12px;padding:2px 7px;margin-left:5px}.photo-frame{background:#17333e;border-radius:12px;position:relative;overflow:hidden;margin:13px 0 7px}.photo-frame img{width:100%;height:214px;object-fit:contain;display:block}.zoom-photo{position:absolute;bottom:8px;right:8px;border:1px solid #afc5cc;border-radius:7px;background:#fff;color:#173e47;width:31px;height:31px;font-weight:900}.photo-credit{font-size:10px;color:#6d7b7e;line-height:1.3;min-height:22px}.label-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}.label-buttons button{border:1px solid #b2d5c9;border-radius:11px;background:#e7f6ee;padding:13px 8px;color:#23634e;font-weight:800;font-size:13px}.label-buttons button:last-child{background:#fff0e5;border-color:#eac1a3;color:#954e20}.train-counts{display:flex;gap:8px;margin-top:11px}.train-counts span{flex:1;background:#f3f6f5;border-radius:8px;padding:7px;font-size:11px;text-align:center;color:#57716c}.train-counts strong{font-size:17px;color:#325b56}.feedback{font-size:12px;line-height:1.5;color:#476d71;min-height:35px;margin-top:10px}.coach{margin-top:auto;padding-top:10px;display:flex;align-items:center;gap:10px;border-top:1px solid #e5eeeb}.coach img{height:43px;width:38px}.coach p{font-size:12px;line-height:1.45;margin:0;color:#648080}.decision{border-radius:10px;background:#edf6f0;padding:10px 12px;margin-top:9px;font-size:13px;font-weight:800}.decision.danger{background:#fff0e5;color:#964d23}.decision.unsure{background:#f3edfa;color:#7654a5}.neighbors{display:flex;gap:8px;margin-top:9px}.neighbors figure{margin:0;flex:1;text-align:center;min-width:0}.neighbors img{width:100%;height:45px;object-fit:cover;border-radius:6px}.neighbors figcaption{font-size:9px;margin-top:3px}.learning-summary{padding:17px;background:#f4f8f6;border-radius:12px;margin:15px 0;line-height:1.6;font-size:14px}.learning-summary strong{font-size:27px;color:#2d957e;display:block}.safety{max-width:1492px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;gap:13px;flex-wrap:wrap;text-align:center;padding:0 15px;color:#456e6b;font-size:11px}.safety strong{font-size:11px}.safety small{font-size:10px;width:100%;opacity:.9}.orchard{background:#dfe8be}.orchard .tile.terrain:before{clip-path:none;border-radius:50%;background:#77885e}.coast{background:linear-gradient(120deg,#ade3e7,#efe0b9)}.coast .tile.terrain:before{clip-path:none;border-radius:45%;height:20%;background:#759fa4}.hills{background:linear-gradient(140deg,#dbe9b3,#a5c5b0)}.twilight{background:#526876}.twilight .tile.terrain:before{background:#223e4a}.sunrise{background:linear-gradient(130deg,#ffe1a5,#bfdfc4)}dialog{border:1px solid #d4e2de;border-radius:19px;padding:22px;color:#20464e;width:min(780px,92vw);max-height:88vh;box-shadow:0 24px 90px #153b4344}dialog::backdrop{background:#153b4388}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:15px}.dialog-heading button{width:36px;height:36px;border:1px solid #d3e0dd;border-radius:9px;background:#f2f7f5;color:#20464e;font-size:22px;flex-shrink:0}dialog p,details{font-size:14px;line-height:1.65}dialog a{color:#7153a8}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:15px 0}.collection-card{border:1px solid #d5e4df;border-radius:10px;overflow:hidden}.collection-card img{width:100%;height:91px;object-fit:contain;background:#163340;display:block}.collection-card select{width:calc(100% - 10px);margin:5px;font-size:11px;border:1px solid #c8dad4;border-radius:6px;padding:5px;color:#20464e}.enlarged{display:block;width:100%;max-height:60vh;object-fit:contain;background:#17333e;border-radius:10px}summary{cursor:pointer;font-weight:800}.credit-item{font-size:11px;padding:7px;border-bottom:1px solid #e1ebe7}@keyframes scan{from{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.3)}}@media(min-width:1000px) and (max-height:780px){.expedition{padding:13px 20px;gap:16px}.world{height:calc(100vh - 256px);min-height:310px;max-height:425px}.world-heading{height:66px}.learning-panel{padding:15px}.photo-frame img{height:calc(100vh - 565px);min-height:150px;max-height:215px}.learning-heading h2{font-size:20px}.playbar{min-height:73px}.feedback{min-height:25px}.game-header{height:70px}}@media(min-width:1000px) and (min-height:850px){.world{height:510px}.photo-frame img{height:280px}}@media(max-width:850px){.game-header{padding:9px 12px;gap:10px;height:auto;flex-wrap:wrap}.game-name{width:auto;flex:1}.game-name strong{font-size:16px}.offline{display:none}#missions{order:5;flex-basis:100%;gap:15px;padding:3px}.expedition{padding:12px;grid-template-columns:1fr;gap:12px}.world{height:350px}.learning-panel{padding:16px}.photo-frame img{height:230px}.coach{margin-top:10px}.collection-grid{grid-template-columns:repeat(2,1fr)}h1{font-size:21px}}@media(prefers-reduced-motion:reduce){.pip{transition:none}.pip.scanning:after{animation:none}}
.rescue{margin-top:11px;width:100%}

.map-photo{border:0;background:#eef2e7;padding:2px;width:78%;height:78%;border-radius:9px;overflow:hidden}.map-photo img{width:100%;height:100%;object-fit:contain;display:block}.tile.marker:after{position:absolute;bottom:3px;right:4px;background:white;border-radius:50%;width:16px;height:16px;display:grid;place-items:center;font-size:11px;pointer-events:none}

/* Original local environment art keeps every route readable. */
.tile.terrain:before{width:72%;height:84%;clip-path:none!important;border-radius:0!important;background:url(../assets/cedar-guardians/environment/cedar.svg) center/contain no-repeat!important;opacity:.9}.tile.terrain:nth-child(3n):before{transform:scale(.75);opacity:.75}.orchard .tile.terrain:before{background-image:url(../assets/cedar-guardians/environment/olive.svg)!important}.coast .tile.terrain:before{height:84%;background-image:url(../assets/cedar-guardians/environment/pebbles.svg)!important}.hills .tile.terrain:before,.sunrise .tile.terrain:before{background-image:url(../assets/cedar-guardians/environment/flowers.svg)!important}.twilight .tile.terrain:before{filter:brightness(.75)}.tile.home:after{content:"";width:70%;height:87%;background:url(../assets/cedar-guardians/environment/base.svg) center/contain no-repeat}

#missions a.done[aria-current]{outline:3px solid #f3ca62;outline-offset:3px}

/* Keep the protective rule visible with the game at standard classroom heights. */
.safety{row-gap:3px}

/* Reference photos are the activity, with a small route to show consequences. */
.reference-stage{height:100%;padding:14px;display:flex;flex-direction:column}.large-photo{min-height:0;flex:1;position:relative;border-radius:11px;overflow:hidden;background:#183640;display:grid;place-items:center}.large-photo>img{width:100%;height:100%;min-height:0;object-fit:contain}.reference-stage .photo-credit{padding:7px 0 0;text-align:center;font-size:10px;color:#335750}
.world:not(.exploring) .board,.world:not(.exploring) .pip{display:none}.world.exploring .board{position:absolute;bottom:28px;right:22px;width:165px;height:165px;padding:6px;gap:3px;border-radius:10px;background:#ebf5eadf;box-shadow:0 3px 12px #183d4930;z-index:1}.world.exploring .tile{border-radius:5px}.world.exploring .map-photo{display:none}.world.exploring .pip{width:29px;height:35px;z-index:2}.world.exploring .pip.scanning:after{inset:-7px}.world.exploring .tile.start:after{font-size:6px}.world.exploring .tile.marker:after{width:11px;height:11px;font-size:8px}
.photo-prompt{background:#edf5f3;border:1px solid #d6e5df;padding:17px;border-radius:12px;margin:16px 0;font-size:15px;line-height:1.6}.photo-prompt p{font-size:14px;margin:8px 0 0;color:#5a7877}.label-buttons{grid-template-columns:1fr;margin-top:17px}.label-buttons button{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 17px;text-align:left}.label-buttons button span{font-size:19px}.label-buttons small{font-size:12px;font-weight:400;max-width:120px}.train-counts{margin-top:18px}.prediction-action{font-size:14px;line-height:1.7;color:#517175}.encounter-actions{display:grid;gap:10px;margin:15px 0}.why-prediction{margin:14px 0;font-size:12px}.why-prediction .neighbors img{height:76px}.training-gallery{height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:10px}.training-gallery figure{margin:0;min-height:0;background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.training-gallery img{width:100%;height:calc(100% - 28px);min-height:0;object-fit:contain;background:#163640}.training-gallery figcaption{height:28px;display:grid;place-items:center;font-size:12px;font-weight:700}
.world-overlay{inset:auto 0 0;height:auto;min-height:135px;background:#fffffff5;padding:17px 22px}.world-overlay img{height:43px;margin:0 0 5px}.world-overlay h2{font-size:22px}.world-overlay p{font-size:13px;margin:6px 0}.world-overlay.failure{background:#fff4f5f7}.world-overlay.success{background:#effbf5f7}
@media(min-width:851px){.expedition{grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr)}.world{height:calc(100dvh - 249px);max-height:560px;min-height:350px}.learning-panel{max-height:calc(100dvh - 135px);overflow:auto}.learning-heading h2{font-size:23px}.learning-summary{font-size:15px}.photo-frame img{height:260px}}
@media(max-width:850px){.world{height:420px}.world.exploring .board{width:125px;height:125px;right:17px;bottom:25px}.world.exploring .pip{width:24px;height:29px}.label-buttons{grid-template-columns:1fr 1fr}.label-buttons button{display:block;padding:14px}.label-buttons small{display:block;margin-top:5px}.learning-panel{order:0}.photo-prompt{margin:10px 0;padding:12px}}

/* Keep the robot and route readable alongside the large encounter photo. */
.world.exploring .board{width:205px;height:205px;bottom:32px;right:20px;border:2px solid #effbf7;padding:8px;gap:4px;box-shadow:0 5px 20px #173d4850}
.world.exploring .board:before{content:"Pip’s route";position:absolute;top:-23px;right:0;font-size:12px;font-weight:800;background:#f8fdf9;color:#23564e;border-radius:8px 8px 0 0;padding:4px 9px}
.world.exploring .pip{width:38px;height:45px}.world.exploring .tile[data-current]{outline:2px solid #348eac;outline-offset:1px}.world.exploring .tile.marker:after{width:14px;height:14px;font-size:10px}
@media(max-width:600px){.world.exploring .board{width:154px;height:154px;right:15px;bottom:28px}.world.exploring .pip{width:31px;height:37px}}
