@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@400;500;600;700&display=swap');
:root{--ink:#17372f;--gold:#ffd779;--pine:#204d3f;--light:#fffbee;--muted:#6d7d73}*{box-sizing:border-box}body{margin:0;background:#102c2a;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #efac38;outline-offset:4px}h1,h2,h3,.wordmark{font-family:'Fredoka',sans-serif;font-weight:600;line-height:1.1}h1,h2,h3,p{margin-top:0}p{line-height:1.65}button{touch-action:manipulation}.primary,.secondary,.plain{border-radius:13px;padding:12px 20px;font-weight:700;display:inline-flex;justify-content:center;align-items:center;gap:9px}.primary{background:var(--gold);border:2px solid #c69b44;color:#443419;box-shadow:0 4px 0 #9f793744}.primary:hover{background:#ffe3a0;transform:translateY(-1px)}.secondary{background:#fffbee;border:2px solid #c5cdb3;color:var(--pine)}.plain{background:transparent;border:1px solid #ffffff40;color:inherit}.eyebrow{font-size:12px;letter-spacing:2.4px;font-weight:700;text-transform:uppercase}.muted{color:var(--muted);font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.title-screen{min-height:100svh;position:relative;background:#34554d url('memory.png') center/cover;display:flex;align-items:center;padding:7vw;overflow:hidden}.title-screen:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#092b2ee8,#12332cad 42%,#12332c05 80%)}.title-content{position:relative;max-width:600px;color:#fff9e5}.wordmark{font-size:34px;letter-spacing:6px;text-shadow:0 3px 0 #163b30}.title-content .eyebrow{color:#ffd98c;margin:25px 0 15px}.title-content h1{font-size:clamp(3.2rem,6.4vw,6.4rem);letter-spacing:-.035em;max-width:650px;text-shadow:0 5px 0 #16352e55;margin-bottom:25px}.title-content p{max-width:400px;font-size:18px;color:#edf2df}.title-content .actions{margin-top:30px}.title-credit{position:absolute;bottom:24px;left:7vw;color:#d5dfd3;font-size:12px}.title-right{position:absolute;right:30px;top:24px;color:#fffde9}.intro{min-height:100svh;background:#0b171a;color:white;position:relative;overflow:hidden}.cg-image{position:absolute;inset:6vh 0 16vh;background:url('memory.png') center/cover;transition:background-position 6s,transform 9s;animation:memory-in 1s ease-out}.cg-shade{position:absolute;inset:0;background:linear-gradient(#091b2466,transparent 30%,transparent 55%,#0b171a 89%)}.cg-top{position:absolute;top:25px;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;color:#ffe3ab}.cg-top>div{display:flex;gap:10px}.cg-caption{position:absolute;bottom:6vh;left:15%;right:15%;text-align:center}.cg-caption .speaker{color:#ffdc88;font-weight:700;font-size:15px;letter-spacing:1px;margin-bottom:13px}.cg-caption p{font-family:'Fredoka',sans-serif;font-size:clamp(21px,2.5vw,31px);line-height:1.5;max-width:880px;margin:0 auto 22px;font-weight:400}.cg-dots{display:flex;justify-content:center;gap:9px}.cg-dots i{width:6px;height:6px;background:#ffffff44;border-radius:50%}.cg-dots i.active{background:var(--gold)}.cg-bottom{position:absolute;bottom:15px;right:24px;font-size:12px;color:#c5d0c7}.name-card{background:#fffbeef2;color:var(--ink);border:2px solid #e6c379;padding:30px;border-radius:23px;max-width:440px;margin-top:25px;box-shadow:0 15px 50px #102c2a55}.name-card h2{font-size:28px}.name-card label{font-size:15px;font-weight:700;display:block;margin:12px 0}.name-card input{border:2px solid #b5c5b2;padding:13px;border-radius:11px;background:#fff;width:100%;color:var(--ink)}.name-card .primary{width:100%;margin-top:18px}.name-card p{color:var(--muted);font-size:13px;margin:12px 0 0}.name-card .validation{color:#ad4d29}
.game-shell{height:100svh;min-height:570px;display:flex;flex-direction:column;background:#122f29;color:var(--light)}.game-top{height:78px;flex-shrink:0;padding:14px 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff16}.game-logo .wordmark{font-size:22px;letter-spacing:4px}.game-logo small{display:block;color:#b9ccb9;font-size:11px;letter-spacing:1.4px;margin-top:5px}.top-tools{display:flex;gap:9px;align-items:center}.tool{border:1px solid #9ebb9b44;color:#ecf6df;background:#284b3f;border-radius:11px;padding:10px 14px;font-size:14px}.tool:hover{background:#3b6652}.player-label{font-size:14px;color:#d0e2c4;margin-right:12px}.world-wrap{position:relative;flex:1;min-height:0;overflow:hidden;isolation:isolate;background:#60874a;outline:none}.world{position:absolute;width:1536px;height:1024px;transform-origin:0 0;will-change:transform;background:url('world.png') center/100% 100%;overflow:hidden}.world:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #173c2466}.world.present{filter:saturate(.92)}.world.restored{filter:saturate(1.15)}.map-entity{position:absolute;transform:translate(-50%,-85%);padding:0;background:none;border:0;color:#19382c;z-index:5;width:100px;display:flex;flex-direction:column;align-items:center;isolation:isolate}.map-entity .sprite{width:80px;height:80px;transition:transform .2s;filter:drop-shadow(0 5px 3px #173d2730)}.map-entity:hover .sprite{transform:translateY(-7px)}.entity-label{font-size:13px;font-weight:700;background:#fffcebe8;border:1px solid #b7cba3;padding:5px 9px;border-radius:9px;white-space:nowrap;box-shadow:0 3px 0 #183d2519;max-width:170px}.map-entity.active .entity-label{background:#ffe8a3;border:2px solid #dba836}.quest-mark{position:absolute;top:-23px;left:38px;color:#754f19;background:#ffda70;border:2px solid #fff6c6;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-weight:800;font-size:18px;animation:marker-bob 1.6s ease-in-out infinite}.map-entity.memory .quest-mark{background:#d6e9ff;color:#3a6586}.sprite{display:inline-block;background-image:url('characters.png');background-repeat:no-repeat;background-size:600% 400%;width:90px;height:90px;flex-shrink:0;vertical-align:middle;mix-blend-mode:multiply;border-radius:3px}.sprite.old{background-image:url('organisms.png')}.player{position:absolute;z-index:20;width:70px;height:95px;transform:translate(-50%,-87%);pointer-events:none}.player .sprite{width:92px;height:92px;position:absolute;left:-11px;bottom:0;filter:drop-shadow(0 6px 3px #183f2544)}.player.walking .sprite{animation:walk .3s ease-in-out infinite}.player-shadow{position:absolute;bottom:2px;left:14px;width:42px;height:12px;border-radius:50%;background:#15382145}.player-pin{position:absolute;bottom:92px;left:0;right:0;text-align:center;color:#fff8ce;font-size:16px;text-shadow:0 2px 3px #193728}.destination{position:absolute;width:22px;height:12px;border:3px solid #fff8c1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:4}.quest-hud{position:absolute;z-index:30;top:22px;left:24px;background:#fffcebef;color:var(--ink);border:2px solid #d0b77a;border-radius:17px;padding:16px 18px;box-shadow:0 8px 30px #122d3d33;max-width:350px;pointer-events:none}.quest-hud .eyebrow{font-size:10px;color:#81835a}.quest-hud h2{font-size:22px;margin:7px 0 6px}.quest-hud p{font-size:14px;line-height:1.5;margin:0;max-width:300px}.chapter-ribbon{position:absolute;right:23px;top:24px;z-index:30;background:#21472ddb;border:1px solid #b9d38a88;border-radius:30px;padding:10px 17px;font-size:13px;color:#edf5d7}.interact-hint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:32;background:#15352bec;color:#fff6d7;border:1px solid #d6e4b455;border-radius:13px;padding:13px 20px;box-shadow:0 5px 22px #10332255;font-size:15px;white-space:nowrap;max-width:95%;text-align:center}.key{display:inline-grid;place-items:center;border:1px solid #9ab6a1;border-bottom-width:3px;border-radius:5px;min-width:27px;height:25px;margin-right:8px;color:#ffe6a0;background:#34583e;font-size:13px}.game-bottom{height:52px;flex-shrink:0;padding:12px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#bcd3bc;font-size:12px}.game-bottom .controls{display:flex;gap:15px}.game-bottom strong{color:#ffde95}.touch-pad{display:none;position:absolute;bottom:85px;left:17px;z-index:34;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,43px);gap:4px}.touch-pad button{background:#fff3c8d9;border:2px solid #5a7851;border-radius:12px;color:#254329;font-size:23px;touch-action:none}.zoom-tools{position:absolute;right:20px;bottom:30px;z-index:32;display:flex;gap:6px}.zoom-tools button{color:#25442e;background:#fff7dbea;border:1px solid #8eb477;border-radius:9px;width:35px;height:35px;font-size:20px}.world-status{position:absolute;pointer-events:none;font-size:24px;z-index:3;opacity:.7}.pond-pollution{position:absolute;left:600px;top:360px;width:440px;height:285px;border-radius:50%;background:#85b22033;pointer-events:none}.grove-alert{position:absolute;left:110px;top:310px;width:220px;height:230px;border:4px dashed #d7864880;border-radius:30%;pointer-events:none}.construction-strip{position:absolute;left:1030px;top:705px;width:185px;color:#faf4d8;background:#687148c9;font-size:14px;transform:rotate(-5deg);padding:8px;text-align:center}
dialog{padding:0;border:3px solid #c8ac6d;border-radius:24px;max-width:min(960px,94vw);width:760px;color:var(--ink);background:var(--light);box-shadow:0 20px 80px #081b2955;max-height:90svh;overflow:auto}dialog::backdrop{background:#0c242cb8;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 25px;border-bottom:1px solid #d8dec6}.dialog-top h2{font-size:27px;margin:0}.close{border:1px solid #becab7;background:#f1f2e6;border-radius:9px;width:35px;height:35px;font-size:23px;color:#486047;flex-shrink:0}.dialog-body{padding:25px}.dialog-footer{padding:0 25px 25px}.conversation{display:grid;grid-template-columns:135px 1fr;gap:25px;align-items:start}.portrait{background:#edf0d7;border:2px solid #c9d1ad;border-radius:20px;padding:10px}.portrait .sprite{width:110px;height:110px}.speaker-name{font-family:'Fredoka',sans-serif;font-size:26px;color:#315139;margin:3px 0 14px}.speech{font-size:19px;line-height:1.7;min-height:100px}.dialog-index{font-size:12px;color:#7d876c;letter-spacing:2px;margin-bottom:12px}.speech-tools{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:20px}.note{background:#eaf1df;border:1px solid #c4d3ad;border-radius:13px;padding:16px;font-size:15px;line-height:1.6;margin:18px 0}.note.warning{background:#fff0d6;border-color:#e4bd7c}.feedback{margin-top:18px;border:2px solid #acc898;background:#e6f4db;border-radius:13px;padding:15px;font-size:15px;line-height:1.55}.feedback.wrong{border-color:#dba577;background:#fff0de;color:#865226}.card-tray{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.life-card{background:#fff;border:2px solid #c0ccad;border-bottom:5px solid #a6b795;border-radius:15px;padding:8px 9px;color:#274632;min-width:95px;max-width:125px;display:flex;align-items:center;flex-direction:column;gap:5px;font-size:13px;font-weight:700;text-align:center}.life-card:hover{border-color:#d4a442;transform:translateY(-3px)}.life-card.selected{background:#fff0b8;border-color:#d6a848}.life-card .sprite{width:75px;height:75px}.chain-line{display:flex;align-items:center;gap:7px;background:#edf4e0;border:2px dashed #aabd8d;border-radius:18px;padding:20px 14px;overflow-x:auto;margin:18px 0;min-height:157px}.chain-step{text-align:center;display:flex;flex-direction:column;align-items:center;flex-shrink:0}.chain-step small{display:block;max-width:100px;margin-top:9px;font-size:12px;color:#4e6743;font-weight:700}.arrow-icon{width:47px;height:29px;color:#2b735d;flex-shrink:0}.empty-chain{min-width:95px;height:95px;display:grid;place-items:center;font-size:25px;color:#71825f;border:2px dashed #acbd8c;border-radius:14px;background:#f7faef}.film{background:linear-gradient(#dfeee9 65%,#c6d3a3 65%);height:225px;position:relative;overflow:hidden;border-radius:17px;margin-top:18px}.film-actor{position:absolute;bottom:15px;width:135px;text-align:center}.film-actor.food{left:18%}.film-actor.eater{left:65%;animation:feeding-eater 2.8s ease-in-out forwards}.film-actor .sprite{width:130px;height:130px}.film-actor.food{animation:feeding-food 2.8s ease-in-out forwards}.film-actor small{display:block;font-size:13px;background:#fffbed;border-radius:10px;padding:4px}.film-caption{text-align:center;font-weight:700;margin:15px 0}.film-energy{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:15px;font-size:14px}.film.invalid .film-actor.eater{animation:feeding-reject 2.8s ease-in-out forwards}.film.invalid .film-actor.food{animation:none}.film-tag{position:absolute;left:38%;top:30px;font-size:30px;font-family:'Fredoka',sans-serif;color:#345335;background:#fff7d5;border:2px solid #d2b768;padding:7px 12px;border-radius:15px;animation:tag-pop 2.8s ease-out forwards}.web-wrap{overflow:auto;border:2px solid #c0cfb0;border-radius:18px;background:linear-gradient(120deg,#f6f8e7,#e8f3ec);margin-top:20px}.web-canvas{width:880px;height:660px;position:relative}.web-canvas svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.web-node{position:absolute;transform:translate(-50%,-50%);width:101px;min-height:90px;background:#fffefa;border:2px solid #a4bf9d;border-bottom-width:4px;border-radius:14px;display:flex;flex-direction:column;align-items:center;padding:5px;font-size:12px;font-weight:700;color:#32523c}.web-node .sprite{width:56px;height:56px}.web-node.selected{outline:4px solid #f0bc50;background:#fff1c2}.web-node.blank{background:#eff7e6;border:2px dashed #8baf7b;padding:15px 6px;min-height:95px}.web-node.blank b{font-size:28px}.link-list{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.link-list button{font-size:12px;background:#ecf2df;border:1px solid #afc3a0;border-radius:7px;padding:7px 9px;color:#31553f}.mini-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.mini-heading p{margin:0}.pill{background:#e3edcf;border:1px solid #b5c893;border-radius:25px;padding:7px 13px;font-size:13px;white-space:nowrap}.options{display:grid;gap:12px;margin:20px 0}.option{background:white;border:2px solid #b7c8a4;border-radius:13px;padding:16px;text-align:left;color:#345235;font-weight:600}.option:hover{background:#f4edc9}.evidence-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:20px}.evidence-slot{min-height:135px;border:2px dashed #b6c69f;border-radius:14px;padding:16px;background:#f1f5e6;text-align:left;color:#385438}.evidence-slot b{display:block;margin-bottom:12px;font-size:17px}.evidence-slot span{font-size:13px}.evidence-slot.filled{background:#e4efcf;border-style:solid}.evidence-card{flex:1;min-width:160px;border:2px solid #c2cba9;background:white;border-radius:13px;padding:17px;text-align:left;color:#375438}.evidence-card strong{display:block}.evidence-card p{font-size:13px;margin:10px 0 0}.evidence-card.selected{border-color:#d2a438;background:#fff0c5}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.journal-page{border:1px solid #cfd7be;border-radius:15px;padding:18px;background:#fffef5}.journal-page h3{font-size:22px}.journal-page p{font-size:14px}.achievement{display:flex;gap:15px;border-bottom:1px solid #d5ddc5;padding:15px 0;align-items:center}.achievement .medal{font-size:27px;background:#f5e6b3;border-radius:50%;width:50px;height:50px;display:grid;place-items:center;flex-shrink:0}.achievement h3{font-size:18px;margin:0 0 5px}.achievement p{font-size:13px;margin:0;color:#6c7c61}.achievement.locked{opacity:.45}.rebuild{background:url('world.png') center 75%/cover;border-radius:18px;height:290px;position:relative;overflow:hidden}.rebuild .sprite{position:absolute;bottom:25px;width:125px;height:125px;animation:carry 3s ease-in-out infinite}.rebuild .sprite:nth-child(1){left:15%}.rebuild .sprite:nth-child(2){left:42%;animation-delay:-1s}.rebuild .sprite:nth-child(3){left:70%;animation-delay:-2s}.recovery-image{height:230px;background:url('world.png') center/cover;border-radius:15px;border:2px solid #c2cba8;display:flex;align-items:flex-end;padding:20px}.recovery-image b{background:#fff8dcdf;padding:10px 16px;border-radius:12px}.ending{text-align:center;background:linear-gradient(#fff9de,#fbfff3);padding:30px;border:5px double #bc9b50;border-radius:18px}.ending h1{font-size:42px;overflow-wrap:anywhere}.ending .seal{font-size:65px;margin:15px}.ending p{max-width:550px;margin:15px auto}.ending small{display:block;color:#758062}.ending .actions{justify-content:center}#toast{position:fixed;left:50%;top:95px;transform:translate(-50%,-30px);padding:15px 22px;background:#ffedb5;color:#4c431f;border:2px solid #c7a45e;border-radius:14px;z-index:100;opacity:0;pointer-events:none;transition:.3s;max-width:90vw;text-align:center;font-weight:700;box-shadow:0 7px 22px #0b241b44}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes marker-bob{50%{transform:translateY(-6px)}}@keyframes walk{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes memory-in{from{opacity:0}to{opacity:1}}@keyframes feeding-eater{0%,10%{left:65%}38%{left:36%;transform:rotate(-8deg)}50%,65%{transform:scale(1.1)}55%{transform:rotate(7deg)}80%,100%{left:35%;transform:scale(1)}}@keyframes feeding-food{0%,35%{opacity:1;transform:scale(1)}65%{opacity:.7;transform:scale(.5)}80%,100%{opacity:0;transform:scale(.01)}}@keyframes feeding-reject{0%{left:65%}40%{left:38%;transform:rotate(-10deg)}75%,100%{left:68%;transform:rotate(12deg)}}@keyframes tag-pop{0%,30%{opacity:0;transform:scale(.4)}50%,70%{opacity:1;transform:scale(1.1)}100%{opacity:0}}@keyframes carry{0%,100%{transform:translateX(-20px) rotate(-3deg)}50%{transform:translateX(25px) rotate(3deg)}}
@media(max-width:800px){.title-screen{padding:7vw;align-items:center}.title-screen:before{background:linear-gradient(90deg,#12322bde,#14382b66)}.title-content h1{font-size:52px}.title-content p{font-size:16px}.title-credit{font-size:10px;max-width:80%}.cg-caption{left:7%;right:7%;bottom:7vh}.cg-caption p{font-size:23px}.cg-top{left:20px;right:20px}.cg-top .eyebrow{font-size:10px}.cg-top button{padding:8px 10px;font-size:12px}.game-top{padding:12px 14px;height:72px}.game-logo .wordmark{font-size:19px;letter-spacing:3px}.game-logo small{font-size:9px}.player-label{display:none}.tool{font-size:12px;padding:9px}.quest-hud{left:13px;top:13px;max-width:275px;padding:12px 14px}.quest-hud h2{font-size:19px}.quest-hud p{font-size:12px;max-width:240px}.chapter-ribbon{display:none}.game-bottom{padding:10px 14px;height:46px;font-size:11px}.game-bottom .controls{gap:8px}.controls .desktop-controls{display:none}.touch-pad{display:grid}.interact-hint{font-size:12px;bottom:20px;max-width:85%;white-space:normal}.zoom-tools{right:12px;bottom:78px;flex-direction:column}.conversation{grid-template-columns:80px 1fr;gap:14px}.portrait{padding:5px}.portrait .sprite{width:65px;height:65px}.speaker-name{font-size:23px}.speech{font-size:16px;min-height:120px}.dialog-body{padding:19px}.dialog-top{padding:18px}.dialog-top h2{font-size:23px}.dialog-footer{padding:0 19px 19px}.speech-tools{flex-wrap:wrap}.journal-grid{grid-template-columns:1fr}.evidence-grid{grid-template-columns:1fr}.evidence-slot{min-height:100px}.title-right{right:15px;top:15px}.cg-image{inset:8vh 0 20vh;background-position:40% center}.name-card{padding:23px}.name-card h2{font-size:24px}.film-actor{width:100px}.film-actor .sprite{width:100px;height:100px}.film{height:190px}.life-card{min-width:85px}.life-card .sprite{width:67px;height:67px}.ending{padding:18px}.ending h1{font-size:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media print{body{background:white}.game-shell,#toast,.dialog-top,.ending .actions{display:none!important}dialog{position:static;border:0;max-height:none;max-width:100%;width:100%;box-shadow:none}.dialog-body{padding:0}.ending{break-inside:avoid}}
.map-entity{isolation:auto;mix-blend-mode:multiply}.player{mix-blend-mode:multiply}.map-entity.active .quest-mark{animation:none}.world-wrap{touch-action:manipulation}.game-shell .tool[aria-pressed="true"]{background:#3b6854}@media(max-width:600px){.game-top .tool{font-size:11px;padding:8px}.game-top{gap:8px}.top-tools{gap:5px}.game-logo small{max-width:125px;line-height:1.3}.quest-hud{max-width:240px}.quest-hud p{max-width:210px}.touch-pad{bottom:75px}.game-bottom{font-size:10px}.game-bottom>span{max-width:150px;text-align:right}.game-shell{min-height:540px}}@media(prefers-reduced-motion:reduce){.film-actor.food{opacity:1!important;transform:none!important}.film-actor.eater{left:65%!important}.film-tag{display:none}}
/* Readable characters, clear tasks and a living memory. */
.sprite,.map-entity,.player{mix-blend-mode:normal}.sprite.avatar-art{background-image:url('player-atlas.png');background-size:400% 200%}.map-entity{isolation:isolate;z-index:8}.map-entity .sprite{background-color:#fff;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 9px #16351d66;width:92px;height:92px}.map-entity .entity-label{background:#fffdf0;color:#173728;font-size:15px;border:2px solid #4e7051;white-space:normal;min-width:108px;text-align:center}.map-entity.active .sprite{outline:4px solid #ffd36b}.player .sprite{background-color:#fff;border:3px solid #e8b442;border-radius:50%;box-shadow:0 3px 12px #17382555}.royal-crown{position:absolute;z-index:3;top:-21px;left:50%;transform:translateX(-50%);font-size:39px;line-height:1;color:#f2b736;text-shadow:0 1px 0 #794f09,1px 0 0 #794f09,-1px 0 0 #794f09}.portrait{position:relative;overflow:visible;background:#fff;border:2px solid #78916f}.portrait .sprite{background-color:#fff}.map-entity:has(.royal-crown) .quest-mark{left:85px;top:-13px}.quest-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff9e7;color:#16372b;padding:12px 24px;flex-shrink:0;border-bottom:2px solid #cbaa65}.quest-bar strong{font-family:'Fredoka',sans-serif;font-size:20px}.quest-bar p{font-size:14px;line-height:1.4;margin:4px 0 0}.quest-bar .secondary{white-space:nowrap;font-size:14px;padding:10px 14px}.chapter-ribbon{display:none}.speech{color:#17372f;font-size:18px;line-height:1.75}.speaker-name{color:#17372f;font-weight:600}.dialog-index,.muted{color:#506650}.avatar-choices{display:flex;gap:16px;margin-top:20px}.avatar-choice{display:flex;flex:1;flex-direction:column;align-items:center;gap:8px;background:#fff;border:3px solid #bdcbae;border-radius:16px;padding:10px;color:#17372f;font-weight:700}.avatar-choice .sprite{width:110px;height:110px}.avatar-choice.selected{border-color:#bd8a1e;box-shadow:0 0 0 3px #ffdc85;background:#fff5d4}.voice-row{display:grid;grid-template-columns:110px minmax(0,1fr) 90px;align-items:center;gap:10px;margin:16px 0}.voice-row select{min-width:0;max-width:100%;padding:10px;background:white;color:#17372f;border:2px solid #a4b395;border-radius:9px;font:inherit}.voice-row button{padding:10px}.life-card[aria-pressed="true"]{background:#ffecae;border-color:#b67b13}.web-node span{overflow-wrap:anywhere}.web-node.blank{background:#fffaf0;color:#183e2b}.web-canvas svg{z-index:1}.web-node{z-index:2}.conversation.memory-dialog{background:linear-gradient(120deg,#fff0c7,#fffdf2);border-radius:20px;padding:20px;box-shadow:inset 0 0 32px #e7bb6455;animation:recall-appear 1.3s ease-out}.memory-dialog .portrait{animation:grandma-breathe 4s ease-in-out infinite}.cg-image{background-image:url('memory-scenery.png');filter:sepia(.12) saturate(.9);inset:0 0 24vh}.cg-cast{position:absolute;left:5%;right:5%;top:12vh;height:48vh;pointer-events:none;isolation:isolate}.cg-cast .sprite{width:clamp(100px,16vw,210px);height:clamp(100px,16vw,210px);mix-blend-mode:multiply}.cg-grandma{position:absolute;left:18%;bottom:0;animation:grandma-breathe 3s ease-in-out infinite;mix-blend-mode:multiply}.cg-child{position:absolute;left:39%;bottom:0;animation:child-arrives 7.5s ease-in-out both;mix-blend-mode:multiply}.cg-beaver{position:absolute;right:4%;bottom:17%;animation:beaver-carries 8s ease-in-out infinite;mix-blend-mode:multiply}.cg-beaver .sprite{width:clamp(75px,11vw,135px);height:clamp(75px,11vw,135px)}.carried-branch{position:absolute;font-size:85px;color:#634c21;left:45%;bottom:15%;transform:rotate(65deg)}.cg-cast[data-scene="1"] .cg-child,.cg-cast[data-scene="3"] .cg-child,.cg-cast[data-scene="5"] .cg-child{animation:child-listens 3s ease-in-out infinite}.cg-cast[data-scene="2"] .cg-child,.cg-cast[data-scene="4"] .cg-child{animation:child-points 2.5s ease-in-out infinite}.cg-cast.paused,.cg-cast.paused *{animation-play-state:paused!important}.cg-shade{pointer-events:none;background:linear-gradient(#091b2444,transparent 20%,transparent 44%,#0b171a 76%)}.cg-caption{bottom:5vh;left:10%;right:10%}.cg-caption p{font-size:clamp(19px,2.1vw,28px)}.cg-top{z-index:3}.memory-sun{position:absolute;top:-12vh;right:0;width:70%;height:60vh;background:linear-gradient(125deg,transparent,#ffe4a733,transparent);animation:sun-sway 6s ease-in-out infinite;pointer-events:none}
@keyframes child-arrives{0%{transform:translateX(120px) translateY(-10px)}15%{transform:translateX(85px) translateY(0) rotate(3deg)}30%{transform:translateX(45px) translateY(-10px) rotate(-3deg)}45%{transform:translateX(10px) translateY(0)}60%,100%{transform:translateX(0)}}@keyframes grandma-breathe{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-4px)}}@keyframes child-listens{50%{transform:rotate(-4deg) translateY(3px)}}@keyframes child-points{25%{transform:translateY(-10px) rotate(5deg)}70%{transform:rotate(-5deg)}}@keyframes beaver-carries{0%,100%{transform:translateX(0)}25%{transform:translateX(-45px) translateY(-7px) rotate(-3deg)}50%{transform:translateX(-90px)}75%{transform:translateX(-45px) translateY(-7px) rotate(3deg)}}@keyframes sun-sway{50%{opacity:.35;transform:translateX(-35px)}}@keyframes recall-appear{from{opacity:.4;filter:sepia(.65);transform:translateY(12px)}to{opacity:1;filter:sepia(0);transform:translateY(0)}}
@media(max-width:600px){.quest-bar{padding:10px 12px;gap:8px}.quest-bar strong{font-size:17px}.quest-bar p{font-size:12px}.quest-bar .secondary{font-size:12px;padding:9px}.game-logo small{display:none}.game-top{height:58px}.top-tools .tool{padding:8px 6px}.voice-row{grid-template-columns:1fr 90px}.voice-row label{grid-column:1/-1}.voice-row select{font-size:14px}.conversation.memory-dialog{padding:12px}.cg-top{flex-wrap:wrap;gap:10px}.cg-cast{height:42vh;top:14vh;left:0;right:0}.cg-grandma{left:5%}.cg-child{left:37%}.cg-beaver{right:0;bottom:29%}.cg-caption{left:6%;right:6%;bottom:5vh}.cg-caption p{font-size:20px}.cg-caption .actions{margin-bottom:9px!important}.cg-caption .speaker{margin-bottom:8px}.cg-grandma .sprite,.cg-child .sprite{width:125px;height:125px}.cg-caption .primary,.cg-caption .plain{padding:9px 15px}.speech{font-size:17px}.name-card{margin:60px 0 50px}.name-card p{color:#40593d}}
@media(prefers-reduced-motion:reduce){.cg-cast *,.memory-dialog,.memory-dialog .portrait{animation:none!important}}

/* Decorative overlays must never intercept explorer selection or navigation. */
.title-screen::before{pointer-events:none}
.title-screen>.name-card{position:relative;z-index:1}
/* A quiet illustrated memory, advanced by the reader. */
.still-memory .cg-image{background-image:url('memory.png');background-position:center;inset:0;transform:none;animation:none;transition:none;filter:sepia(.1)}
.still-memory .cg-shade{background:linear-gradient(transparent 25%,#193b3233 50%,#122f2b88)}
.memory-conversation{position:absolute;bottom:5vh;left:50%;transform:translateX(-50%);width:min(800px,90%);background:#fffbee;display:grid;grid-template-columns:95px 1fr;gap:22px;padding:25px;border:2px solid #d1b576;border-radius:22px;color:#17372f;box-shadow:0 12px 40px #16352d66}
.memory-conversation .speech{min-height:0;margin:12px 0 20px}.memory-conversation .speech-tools{margin-top:12px}.memory-conversation .portrait{align-self:start}.memory-dialog .portrait{animation:none}
/* White-backed sprite atlases blend into dialogue and activity surfaces, never the map. */
.portrait{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0}.portrait .sprite{background-color:transparent;mix-blend-mode:multiply;border:0;border-radius:0;box-shadow:none}
.dialog-body .sprite,.memory-conversation .sprite{mix-blend-mode:multiply;background-color:transparent;border:0;box-shadow:none}
.film-actor,.rebuild .sprite{mix-blend-mode:multiply}.conversation.memory-dialog{animation:none}
/* Keep the complete food web in view. Portrait phones read from plants down to predators. */
.web-wrap{overflow:auto;overscroll-behavior:contain}.web-canvas{width:100%;height:auto;aspect-ratio:880/660;min-width:0}.web-node{left:var(--node-x);top:var(--node-y);width:11.5%;min-height:0;padding:4px 2px;font-size:clamp(10px,1.25vw,12px);border-radius:10px}.web-node.blank{min-height:0;padding:12px 3px}.web-node .sprite{width:clamp(28px,5.8vw,56px);height:clamp(28px,5.8vw,56px)}.web-node span:not(.sprite){line-height:1.2}.web-mobile-lines{display:none}.web-desktop-lines{display:block}
@media(max-width:600px){.web-canvas{aspect-ratio:660/880}.web-node{left:var(--node-y);top:var(--node-x);width:17%;font-size:10px}.web-node .sprite{width:36px;height:36px}.web-node.blank{padding:12px 2px}.web-node.blank b{font-size:22px}.web-mobile-lines{display:block}.web-desktop-lines{display:none}.web-wrap{margin-top:12px}.mini-heading{align-items:flex-start}.mini-heading p{font-size:14px}.mini-heading .pill{font-size:11px;padding:5px 7px}.memory-conversation{width:94%;bottom:3vh;padding:18px;gap:10px;grid-template-columns:58px 1fr;max-height:72svh;overflow:auto}.memory-conversation .portrait .sprite{width:58px;height:58px}.memory-conversation .speaker-name{font-size:21px}.memory-conversation .speech{font-size:16px;line-height:1.55}.memory-conversation .speech-tools{gap:10px}.memory-conversation button{font-size:13px;padding:10px 12px}}

.narrator-conversation{grid-template-columns:1fr}.voice-used{display:block;font-size:11px;font-weight:400;line-height:1.4;margin-top:5px;color:#496447;overflow-wrap:anywhere}
