/* V4: a closer, living storybook town. Original art and score. */
.world{min-width:1440px;width:1440px;image-rendering:pixelated}.world-viewport{height:min(66vh,650px);max-height:none}.play-surface{position:relative}.world-wrap{min-width:0}.world.overview{min-width:780px;width:100%}.map-title{pointer-events:none}.pin{opacity:.8;transform:translate(-50%,-100%) scale(.85)}.pin.near,.pin.target{opacity:1;transform:translate(-50%,-100%) scale(1)}.pin:not(.near):not(.target):not(.house) .pin-label{font-size:10px}#living-layer{position:absolute;inset:0;pointer-events:none}.town-person{position:absolute;width:48px;height:64px;transform:translate(-50%,-100%);border:0;background:none;padding:0;pointer-events:auto;z-index:8;filter:drop-shadow(0 4px 2px #15292180)}.npc-sprite{display:block;width:40px;height:54px;background-image:url('assets/walkers.png');background-size:164.55px 219.4px;image-rendering:pixelated}.npc-name{position:absolute;top:54px;left:50%;transform:translateX(-50%);font:700 10px monospace;background:#132f29;color:#fff0b5;padding:3px 6px;border-radius:4px}.npc-chat{position:absolute;right:-9px;top:-13px;padding:0 8px 4px;background:#fff3c9;border:2px solid #29443b;color:#203a31;border-radius:8px;font-weight:900;animation:bob 2s ease-in-out infinite}.town-person.near .npc-chat{background:#ffcf6d;box-shadow:0 0 15px #ffd26a99}.house-gloom{position:absolute;width:135px;height:115px;transform:translate(-50%,-100%);z-index:5;transition:opacity 1.8s,filter 1.8s;pointer-events:none}.cloud-art{position:absolute;inset:0 0 40%;background:url('assets/clouds.png') left center/200% 100% no-repeat;image-rendering:pixelated;animation:cloud-drift 5s ease-in-out infinite}.rain{position:absolute;top:52%;left:18%;width:65%;height:45%;background:repeating-linear-gradient(110deg,transparent 0 15px,#b3cdf1aa 16px 18px,transparent 19px 30px);mask-image:linear-gradient(transparent,#000,transparent);animation:rainfall .6s linear infinite}.rain-b{left:25%;animation-delay:-.3s;opacity:.4}.house-gloom.lighter{opacity:.6}.house-gloom.cleared,.personal-gloom.cleared{opacity:0;pointer-events:none}.personal-gloom{position:absolute;top:-39px;left:-9px;width:62px;height:48px;transition:opacity 1.5s;pointer-events:none}.personal-gloom .cloud-art{background-position:right center}.personal-gloom .rain{top:48%;height:50%}#traveler{z-index:12;filter:drop-shadow(0 4px 2px #16251d80)}#conversation{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);width:min(700px,92%);padding:18px;display:flex;gap:18px;z-index:30;background:#fff3d8;border:4px solid #273f36;border-radius:9px;box-shadow:0 8px 0 #14282180,0 20px 60px #08181180;color:#20352c}#conversation[hidden]{display:none}#conversation:before{content:'';position:absolute;top:-18px;left:46%;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:16px solid #273f36}.conversation-portrait{width:100px;height:115px;flex:none;background:url('assets/adventurers.webp') left center/300% auto;border:3px solid #bcaa7f;border-radius:7px;image-rendering:pixelated}.conversation-copy{flex:1}.conversation-copy strong{font-size:18px}.conversation-copy p{min-height:70px;font-size:17px;line-height:1.55;margin:7px 0 12px}.conversation-copy button{float:right}.talking .world-viewport{box-shadow:inset 0 0 90px #0a1d1590}.talking .activity{display:none}.talking{grid-template-columns:minmax(0,1fr)!important}.gloom-opening{width:min(1100px,96vw);max-width:none;padding:0;border:4px solid #9b895a;background:#102920;color:#fff6d6;overflow:hidden}.opening-scene{height:min(760px,90vh);min-height:520px;position:relative;background:linear-gradient(0deg,#071610 0%,transparent 70%),url('assets/apartment.png') center/cover;image-rendering:pixelated}.opening-caption{position:absolute;bottom:0;left:0;right:0;padding:30px;background:linear-gradient(transparent,#0a1915 25%);padding-top:65px}.opening-caption h2{font-size:clamp(28px,4vw,48px);color:#ffdf94;margin:9px 0}.opening-caption p{font-size:18px;max-width:700px;line-height:1.5}.collector{position:absolute;top:35%;left:85%;transform:scale(2.8);opacity:0}.collector .walk-sprite{background-position:-62px -1.8px}.gloom-opening[data-scene='1'] .collector{opacity:1;animation:collector-walk 3s ease-out forwards}.rent-coin{position:absolute;top:34%;left:30%;font:bold 22px monospace;color:#ffe0a5;opacity:0;background:#4b2820d9;padding:8px}.gloom-opening[data-scene='1'] .rent-coin{animation:coin-away 3s .8s both}.gloom-opening[data-scene='2'] .opening-scene{filter:saturate(.65)}.referral-dock{position:fixed;right:20px;bottom:20px;z-index:45;max-width:350px;background:#fff2d3;color:#21392f;border:3px solid #856a39;border-radius:12px;box-shadow:0 8px 32px #0005;padding:12px}.referral-dock summary{cursor:pointer;font-weight:800}.referral-person{display:flex;gap:14px;padding:18px 0;align-items:center}.referral-person img,.referral-placeholder{width:64px;height:74px;object-fit:cover;border-radius:9px;background:#dfd0a6;flex:none}.referral-placeholder{display:grid;place-items:center;font-size:35px}.referral-person strong,.referral-person span,.referral-person small{display:block}.referral-person a,.referral-lender a{display:inline-block;margin:7px 10px 0 0}.referral-lender{border-top:1px solid #b7a77c;padding-top:10px}.referral-lender strong{display:block}.campaign-workshop{max-width:1120px;margin:50px auto;padding:24px}.campaign-workshop>.eyebrow{display:block;margin-top:40px}.campaign-workshop h1{font-size:clamp(36px,6vw,65px);line-height:1.05}.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:30px}.campaign-grid section{padding:26px;background:#fff1d2;border:1px solid #c2b08a;border-radius:15px}.campaign-grid p{line-height:1.6}.import-label{display:block;margin:28px 0}.import-label input{display:block;margin-top:10px}.campaign-grid select{width:100%;padding:12px}.estate-card{border:2px solid #c6b184;border-radius:10px;overflow:hidden;margin:18px 0;background:#fff8e8}.estate-card .ending-home{height:125px;margin:0}.estate-card>div:not(.ending-home){padding:15px}.estate-numbers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.estate-numbers span{background:#e4ead9;padding:12px;border-radius:8px;font-size:12px}.estate-numbers b{display:block;font-size:20px;margin-top:4px}.scenario-picks{display:flex;gap:7px;flex-wrap:wrap}.scenario-picks button{flex:1;padding:12px 8px}.scenario-picks .selected{background:#284c3a;color:#fff3c8}.budget-ledger{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#ece8d5;padding:12px;border-radius:8px}.budget-ledger span{padding:5px}.budget-ledger b{display:block}.welcome-art{background-image:linear-gradient(0deg,#162b2480,transparent),url('assets/apartment.png')!important}.welcome-body h2{font-size:clamp(30px,4vw,48px)}.overview-button{white-space:nowrap}@keyframes cloud-drift{50%{transform:translateX(5px)}}@keyframes rainfall{to{background-position:-15px 20px}}@keyframes bob{50%{transform:translateY(-3px)}}@keyframes collector-walk{to{left:35%}}@keyframes coin-away{0%{opacity:0;transform:translateY(15px)}30%{opacity:1}100%{opacity:0;transform:translateY(-65px)}}@media(max-width:760px){.world{min-width:1200px;width:1200px}.world-viewport{height:59vh}.campaign-grid{grid-template-columns:1fr}.campaign-workshop{margin:10px auto}.conversation-portrait{width:65px;height:90px}#conversation{padding:12px;gap:10px;bottom:125px}.conversation-copy p{font-size:15px;min-height:90px}.opening-caption{padding:60px 20px 20px}.referral-dock{right:8px;bottom:8px;max-width:310px}.opening-scene{background-position:45% center}.map-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.cloud-art,.rain,.npc-chat,.collector,.rent-coin{animation:none!important}.gloom-opening[data-scene='1'] .rent-coin{opacity:1}.gloom-opening[data-scene='1'] .collector{left:35%}}
.estate-card,.estate-numbers,.budget-ledger,.campaign-grid section{color:#223a30}.estate-card .cost-list dt,.estate-card .cost-list dd,.estate-card h3,#activity-body .estate-card p{color:#223a30}.estate-card .secondary,.campaign-grid .secondary{background:#e4d5af;color:#20382b;border-color:#927e51}.estate-card .cost-list>div{border-color:#cbbd98}.campaign-grid h2,.campaign-grid h3,.campaign-grid label,.campaign-grid p,.campaign-grid a{color:#223a30}.campaign-grid .primary{color:#182b23}.campaign-grid .muted-note{color:#50614e!important}.referral-dock a,.referral-dock strong,.referral-dock small,.referral-dock span{color:#20392f}.conversation-copy p,.conversation-copy strong{color:#20392f!important}.estate-numbers b{color:#254a33}.talking .town-person.near{filter:drop-shadow(0 0 10px #ffda83)}
.world{width:max(1440px,100%)}.world-viewport{scroll-behavior:auto}.talking .world{width:max(1720px,100%);min-width:1720px}.sleep-z{position:absolute;left:17%;top:29%;font:bold 23px monospace;color:#ffdf97;animation:bob 2s infinite}.noise-note{position:absolute;right:7%;top:28%;color:#fff1d0;background:#263527cf;padding:8px 12px;border-radius:6px;font:700 13px monospace}.gloom-opening:not([data-scene='0']) .sleep-z,.gloom-opening:not([data-scene='0']) .noise-note{display:none}.firefly{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff399;box-shadow:0 0 9px #ffe97a;animation:firefly 4s ease-in-out infinite;pointer-events:none}.pond-ripple{position:absolute;border:2px solid #bee9df70;border-radius:50%;width:22px;height:7px;animation:ripple 4s ease-out infinite;pointer-events:none}@keyframes firefly{0%,100%{opacity:.1;transform:translateY(0)}50%{opacity:.95;transform:translate(7px,-13px)}}@keyframes ripple{to{transform:scale(2.4);opacity:0}}@media(prefers-reduced-motion:reduce){.firefly,.pond-ripple,.sleep-z{animation:none}}
