:root{--night:#102b2a;--deep:#143d38;--forest:#1e5b4a;--lime:#c5f178;--grass:#a4d487;--cream:#f6f3e9;--paper:#fffefa;--warm:#ffe2b4;--orange:#ff8159;--gray:#667e74;--line:#dce4d7;--shadow:0 16px 40px rgba(11,35,33,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.5 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--night);background:var(--cream)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid #5d9dfa;outline-offset:3px}.hidden{display:none!important}.mobile-only{display:none}.topbar{height:78px;padding:12px clamp(16px,2.2vw,38px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--paper);border-bottom:1px solid #e8ece2}.brand{display:flex;align-items:center;gap:12px;cursor:pointer}.brand-emblem{background:var(--lime);border:2px solid var(--night);border-radius:12px;width:51px;height:50px;display:grid;place-items:center;font-size:28px;font-weight:1000;line-height:1;box-shadow:3px 3px var(--night);position:relative}.brand-emblem span{position:absolute;font-size:13px;background:var(--orange);border:2px solid var(--night);border-radius:50%;width:19px;height:19px;display:grid;place-items:center;right:-6px;bottom:-5px}.brand strong{display:block;font-size:20px;letter-spacing:-1.1px;line-height:1.1;font-weight:1000}.brand b{color:#fa6e50}.brand small{display:block;font-weight:900;font-size:10px;letter-spacing:1.5px;color:var(--gray);margin-top:5px}.top-actions{display:flex;gap:11px;align-items:center}.top-free{font-size:11px;font-weight:900;white-space:nowrap;color:var(--forest);margin-right:7px}.top-free i{background:#16b879;width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.head-btn{background:var(--night);border:2px solid var(--night);border-radius:12px;color:white;padding:10px 16px;font-size:12px;font-weight:900}.head-btn.outline{background:white;color:var(--night)}.head-btn:hover,.primary-action:hover,.cardbtn:hover{filter:brightness(.94)}.announcement{background:var(--night);color:white;display:flex;align-items:center;justify-content:center;gap:13px;padding:10px 14px;min-height:46px;font-size:12px}.announcement strong{color:var(--lime);font-weight:950;letter-spacing:.065em}.announcement button{padding:7px 12px;border:0;border-radius:7px;background:var(--lime);font-size:11px;font-weight:1000;color:var(--night);white-space:nowrap}
.town-layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:18px;margin:18px auto 0;max-width:1720px;padding:0 18px}.world-panel{min-width:0}.world-hud{background:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-radius:18px 18px 0 0;border:1px solid var(--line);border-bottom:0}.world-heading{display:flex;align-items:center;gap:11px}.sun-ico{font-size:27px;color:#ffbc4e}.world-heading b{display:block;font-size:17px;font-weight:1000;letter-spacing:-.5px}.world-heading small{display:block;color:var(--gray);font-size:11px;font-weight:700}.town-state{display:flex;align-items:center;gap:7px}.hud-chip{font-size:12px;font-weight:900;background:#f0f4e9;border:1px solid #dce8d2;padding:8px 11px;border-radius:30px;white-space:nowrap}.hud-chip.cash{background:var(--lime);border-color:#b1d775}.hud-chip.iconbtn{cursor:pointer;background:white}.world-stage{position:relative;overflow:auto;overscroll-behavior-x:contain;scrollbar-color:#9bba8e #e7efe3;scrollbar-width:thin;background:#97cb9c;border:3px solid white;border-top:0;border-bottom:0;box-shadow:0 8px 28px rgba(9,60,45,.1);max-height:min(71vh,750px)}#townMap{width:100%;height:auto;min-width:940px;display:block;touch-action:pan-x pan-y;user-select:none}#townMap [data-loc],#townMap [data-ad]{cursor:pointer;outline:none}#townMap [data-loc]:hover .loc-plate,#townMap [data-loc]:focus .loc-plate{fill:var(--lime)}#townMap [data-loc].active .loc-plate{fill:#ffde78}#townMap .loc-plate{fill:#fffefa;stroke:#143d38;stroke-width:2.5}#townMap .hotspot-pulse{animation:pulse 2.1s ease-in-out infinite;transform-box:fill-box;transform-origin:center}#townMap [data-ad]:hover .ad-plate{fill:#fff2c9}#townMap .maptext{font-weight:950;font-size:13px;fill:#143d38;paint-order:stroke;stroke:rgba(255,255,255,.65);stroke-width:2}#townMap .billboard-text{font-size:15px;font-weight:1000;fill:#fff}#townMap .ambient{animation:floaty 3s ease-in-out infinite alternate}.map-hint{position:sticky;bottom:14px;left:14px;display:table;margin:-52px 0 16px 16px;z-index:4;background:rgba(255,255,255,.94);box-shadow:0 5px 17px rgba(0,0,0,.12);border:1px solid #e2e9dc;border-radius:40px;padding:8px 14px;font-size:11px;font-weight:800;pointer-events:none}.world-bottom{border:1px solid var(--line);background:var(--paper);padding:15px 18px;display:flex;align-items:center;gap:10px;justify-content:space-between;border-radius:0 0 17px 17px}.bottom-prompt{display:flex;gap:12px;align-items:center;min-width:0}.quest-icon{border:2px solid var(--night);border-radius:12px;background:var(--warm);width:49px;height:49px;display:grid;place-items:center;flex-shrink:0;font-size:22px}.bottom-prompt small{font-size:10px;color:var(--forest);font-weight:1000;letter-spacing:.08em;display:block}.bottom-prompt strong{font-size:17px;font-weight:1000;display:block;letter-spacing:-.4px;line-height:1.2}.bottom-prompt span{display:block;font-size:11px;color:var(--gray)}.primary-action{white-space:nowrap;background:var(--lime);color:var(--night);font-weight:1000;font-size:12px;padding:13px 17px;border:2px solid var(--night);border-radius:12px;box-shadow:3px 3px var(--night)}.billboard-footer{min-height:85px;margin-top:15px;background:linear-gradient(110deg,#24483c,#132a2c);border-radius:17px;color:white;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 23px;position:relative;overflow:hidden}.billboard-footer:after{content:'◢';font-size:160px;color:rgba(197,241,120,.12);position:absolute;right:80px;top:-110px}.sponsor-stamp{position:absolute;right:13px;top:6px;color:#cee0d5;font-size:9px;letter-spacing:.06em}.billboard-footer-message{display:flex;gap:14px;align-items:center;z-index:1}.billboard-footer-message>span{font-size:37px}.billboard-footer-message b{font-size:15px;display:block}.billboard-footer-message small{display:block;color:#bbd0cb;font-size:11px}.sponsor-cta{background:transparent;color:var(--lime);border:1px solid var(--lime);border-radius:9px;padding:9px 13px;font-size:11px;font-weight:900;white-space:nowrap;z-index:1}
.sidebar{display:flex;flex-direction:column;gap:14px}.player-card,.activity-card{border:1px solid var(--line);border-radius:17px;background:var(--paper);padding:16px;box-shadow:0 3px 12px rgba(28,53,41,.03)}.player-card-head{display:flex;align-items:center;gap:9px;padding-bottom:14px;border-bottom:1px solid var(--line)}.player-portrait{font-size:30px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#ffe0a5;border:2px solid var(--night)}.player-card-head>div:nth-child(2){min-width:0;flex:1}.player-card-head small{display:block;font-size:9px;letter-spacing:.07em;color:var(--gray);font-weight:950}.player-card-head strong{font-size:14px;font-weight:950;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-card-head button{padding:0;border:0;background:transparent;color:var(--forest);font-size:11px;font-weight:850;text-decoration:underline}.live-pill{background:#e2f9cf;color:#226246;border-radius:100px;padding:5px 8px;font-size:8px;font-weight:1000;white-space:nowrap}.statline{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:12px;font-weight:750}.statline>span:first-child{width:76px;flex-shrink:0}.statline strong{margin-left:auto;font-size:17px;font-weight:1000}.statline b{width:21px;text-align:right;font-size:11px}.meter{height:9px;flex:1;border-radius:10px;background:#e8eee1;overflow:hidden}.meter span{display:block;width:50%;height:100%;background:#fca85a;border-radius:10px;transition:width .4s}.progress-note{background:#eff8e3;color:#3e6245;border-radius:9px;font-size:11px;font-weight:850;padding:10px;text-align:center}.ad-card{border:0;text-align:left;color:white;border-radius:17px;min-height:248px;overflow:hidden;position:relative;padding:18px;background:linear-gradient(145deg,#ff8a62 0%,#ec5d5e 57%,#cc484d 100%);box-shadow:var(--shadow)}.ad-mini{display:block;font-size:9px;letter-spacing:1px;font-weight:900;background:rgba(255,255,255,.2);padding:5px 9px;border-radius:40px;width:fit-content}.ad-card strong{font-size:25px;letter-spacing:-1px;line-height:1.03;font-weight:1000;position:relative;z-index:1;display:block}.ad-card p{font-size:11px;position:relative;z-index:1;max-width:210px}.ad-link{background:white;color:#c95355;display:inline-block;font-size:11px;font-weight:950;border-radius:7px;padding:7px 10px;z-index:1;position:relative}.ad-graphics{height:63px;position:relative;display:grid;place-items:center;font-size:43px}.ad-orb{position:absolute;width:115px;height:115px;border-radius:50%;background:rgba(255,255,255,.25);right:-10px;top:-46px}.ad-orb.two{height:67px;width:67px;left:-12px;top:30px}.activity-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.activity-title b{font-size:12px;font-weight:1000}.activity-title span{font-size:9px;font-weight:950;color:var(--forest);background:#e2f7d1;padding:4px 8px;border-radius:20px}.places-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.place-pill{border:1px solid #dbe5d6;background:#f7fbf1;border-radius:9px;padding:9px 5px;font-size:11px;font-weight:830;text-align:center;color:var(--night)}.place-pill:hover{background:#e8f8d5}.activity-card p{font-size:10px;color:var(--gray);margin:12px 0 0}.site-footer{max-width:1720px;margin:22px auto 0;padding:22px 22px 36px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #dbe2d7;font-size:11px;color:#678077}.site-footer>b{font-weight:1000;font-size:13px;color:var(--night)}.site-footer button{font-size:11px;border:0;background:transparent;text-decoration:underline;color:var(--forest);font-weight:800;margin-left:12px}
.dialog-shade{position:fixed;inset:0;z-index:20;background:rgba(8,30,28,.65);display:flex;align-items:center;justify-content:center;padding:14px;backdrop-filter:blur(4px)}.dialog{background:var(--paper);border:2px solid var(--night);border-radius:20px;box-shadow:0 24px 85px #0006;width:min(530px,100%);max-height:min(90vh,850px);overflow-y:auto;overscroll-behavior:contain}.dialog-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 17px}.dialog-top span{font-size:11px;color:var(--forest);font-weight:1000;letter-spacing:.1em}.close-dialog{border:0;background:#ecf2e7;width:34px;height:34px;border-radius:50%;font-weight:900;color:var(--night)}.dialog-content{padding:20px 22px 24px}.dialog-content h2{font-size:clamp(26px,5vw,35px);letter-spacing:-1.4px;line-height:1.08;font-weight:1000;margin:0 0 10px}.dialog-content p{font-size:14px;color:#526b61;margin:0 0 15px}.dialog-illustration{margin:0 0 16px;min-height:96px;border-radius:13px;background:linear-gradient(110deg,#d5ebb1,#fcdfaa);display:flex;align-items:center;justify-content:space-around;overflow:hidden;font-size:50px;border:1px solid #bad4b4}.dialog-illustration span:nth-child(2){font-size:72px}.dialog-illustration span:nth-child(3){font-size:41px}.cardbtn{display:block;text-align:left;width:100%;border:1.5px solid #b4c6b5;border-radius:13px;background:#f8faf6;padding:13px 14px;margin:9px 0;color:var(--night)}.cardbtn strong{display:block;font-size:14px;font-weight:950}.cardbtn small{display:block;font-size:12px;color:var(--gray);margin-top:4px}.cardbtn.primary{background:var(--lime);border:2px solid var(--night);text-align:center;padding:14px;font-weight:1000;box-shadow:3px 3px var(--night);font-size:14px}.cardbtn.secondary{background:#fff;border:1.5px solid #c9d8c6;text-align:center;font-weight:900}.feedback-emoji{font-size:54px;text-align:center;margin-bottom:8px}.gain{color:#117348!important}.loss{color:#ba513b!important}.dialog-result{background:#eff7e6;padding:13px;border-radius:12px;margin:12px 0;font-size:13px;color:#274a38}.stats-mini{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.stats-mini span{padding:6px 9px;background:#e9f2e1;font-size:11px;font-weight:900;border-radius:8px}.progress-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:900;margin:8px 0}.puzzle-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfcf6;margin:9px 0}.puzzle-card button{border:1px solid var(--night);border-radius:9px;background:var(--warm);font-weight:900;padding:7px 10px;margin-top:6px}.price-slider{width:100%;accent-color:var(--forest);margin:15px 0}.slider-value{font-size:30px;font-weight:1000;letter-spacing:-1px;text-align:center}.game-note{background:#f8ebd3;border-left:4px solid #eda96c;color:#795728;padding:10px 12px;font-size:12px;border-radius:8px;margin:14px 0}.score-hero{background:linear-gradient(125deg,#193f35,#1f5745);color:white;text-align:center;padding:25px;border-radius:14px;margin:15px 0}.score-hero small{letter-spacing:.1em;color:var(--lime);font-weight:1000;font-size:10px}.score-hero strong{display:block;font-size:64px;font-weight:1000;letter-spacing:-3px;line-height:1.25}.score-hero b{font-size:14px}.score-hero p{color:#e6f3e8;margin:4px}.name-input{width:100%;border:2px solid #aac4b2;padding:13px;border-radius:10px;margin:8px 0 13px;background:white}.share-preview{border:2px dashed #c9d6c4;border-radius:12px;white-space:pre-wrap;font-size:12px;padding:15px;background:#f6faf1;color:#324e3a;margin:13px 0}.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,30px);background:var(--night);color:white;padding:11px 19px;border-radius:10px;opacity:0;pointer-events:none;z-index:40;font-size:12px;font-weight:900;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes floaty{0%{transform:translateY(0)}100%{transform:translateY(-7px)}}
@media(max-width:1180px){.town-layout{grid-template-columns:minmax(0,1fr) 280px}.top-free{display:none}.ad-card{min-height:236px}.world-stage{max-height:65vh}}
@media(max-width:950px){.town-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.activity-card{grid-column:1/-1}.ad-card{min-height:250px}.world-stage{max-height:unset}}
@media(max-width:650px){.topbar{height:67px;padding:10px 13px}.brand strong{font-size:15px}.brand small{font-size:8px}.brand-emblem{width:40px;height:40px;font-size:24px}.top-actions .outline{display:none}.head-btn{font-size:10px;padding:9px 10px}.announcement{min-height:51px;flex-wrap:wrap;justify-content:flex-start;gap:6px;font-size:11px}.announcement strong{font-size:10px}.announcement button{margin-left:auto}.announcement span:nth-of-type(2){display:none}.town-layout{padding:0 8px;margin-top:9px;gap:11px}.world-hud{border-radius:13px 13px 0 0;padding:9px}.world-heading b{font-size:14px}.world-heading small{font-size:9px}.sun-ico{font-size:20px}.hud-chip{font-size:9px;padding:7px 8px}.world-stage{max-height:600px}#townMap{min-width:1040px}.mobile-only{display:inline}.world-bottom{padding:10px;align-items:center}.bottom-prompt strong{font-size:13px}.bottom-prompt small{font-size:9px}.bottom-prompt span{font-size:9px}.quest-icon{width:38px;height:38px;font-size:18px}.primary-action{font-size:10px;white-space:normal;padding:9px 10px;max-width:103px}.billboard-footer{padding:16px 13px}.billboard-footer-message>span{font-size:22px}.billboard-footer-message b{font-size:11px}.billboard-footer-message small{font-size:9px}.sponsor-cta{font-size:9px;padding:7px}.sidebar{grid-template-columns:1fr 1fr;gap:9px}.player-card{grid-column:1/-1}.ad-card{grid-column:1/-1;min-height:190px}.ad-graphics{height:38px}.ad-card strong{font-size:21px}.activity-card{grid-column:1/-1}.site-footer{margin-top:12px;padding:19px 12px}.site-footer button{margin:0 8px 0 0}.dialog-content{padding:17px}.dialog-illustration{min-height:83px}.dialog-illustration span:nth-child(2){font-size:51px}.dialog-content h2{font-size:28px}.map-hint{font-size:10px}.share-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* v3: an evolving neighbourhood instead of a seven-step quiz */
.week-badge{color:#1d5d40;background:#ebf6d9;padding:7px 10px;border-radius:8px;font-size:10px;font-weight:1000;text-align:center;margin-top:8px;letter-spacing:.1em}
.chapter-track{height:7px;border-radius:9px;background:#e4ebdf;margin:10px 2px;overflow:hidden}.chapter-track span{display:block;width:0;height:100%;background:#64b76d;transition:width .35s}
.growth-line{display:flex;gap:6px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:10px 0;font-size:11px}.growth-line span{color:#536f63}.growth-line b{white-space:nowrap;font-size:11px}
.game-hub{border-radius:17px;border:1px solid #c6d7bb;background:linear-gradient(140deg,#e9f4d9,#fdfbef);padding:14px}
.hub-heading{display:flex;justify-content:space-between;gap:7px;align-items:center;font-size:11px;font-weight:950;letter-spacing:.04em;margin-bottom:12px}.hub-heading b{font-size:9px;background:#d8f1ba;border-radius:20px;padding:5px 7px;color:#255f42}
.hub-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hub-buttons button{background:#fff;border:1.5px solid #c9dfbd;border-radius:11px;min-height:92px;padding:10px 8px;color:#173c33;text-align:left;font-size:19px;transition:transform .18s,background .18s}.hub-buttons button:hover{transform:translateY(-2px);background:#f7ffe7}.hub-buttons b{display:block;font-size:12px;margin-top:4px}.hub-buttons small{display:block;font-size:9px;color:#627c6c;margin-top:2px}
.upgrade-row{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #dce6d4;background:#f8faf4;border-radius:12px;margin:9px 0}.upgrade-row.already{background:#edf5e6}.up-icon{display:grid;place-items:center;background:#e5eddb;min-width:45px;height:45px;border-radius:10px;font-size:24px}.up-copy{flex:1;min-width:0}.up-copy strong{display:block;font-size:12px}.up-copy small{display:block;font-size:11px;color:#687b6a;margin-top:2px}.up-copy span{display:block;font-size:10px;color:#22734c;font-weight:800;margin-top:4px}.upgrade-row>button{max-width:112px;background:#c5f178;color:#15362c;border:1.5px solid #264638;border-radius:9px;padding:9px 8px;font-weight:950;font-size:10px;white-space:nowrap}.upgrade-row>button:disabled{opacity:.6;background:#e8eee2;cursor:default}
.room-scene{height:188px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;overflow:hidden;border:3px solid #f4dfad;border-radius:13px;background:linear-gradient(#f6d7aa 0 65%,#c5a17e 65% 100%);margin-bottom:17px}.room-wall{font-size:43px;margin-top:15px;display:flex;gap:30px}.room-wall span{font-size:24px}.room-items{font-size:34px;line-height:1.3;letter-spacing:6px;white-space:nowrap}.room-floor{font-size:10px;font-weight:950;color:#523b2a;padding:8px;letter-spacing:.08em}
.achievement-grid{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 20px}.achievement{font-size:10px;font-weight:900;border:1px solid #e0e8db;color:#84958b;padding:7px 10px;border-radius:30px;background:#f3f5f0;opacity:.55}.achievement.on{border-color:#94c284;background:#e3f9ce;color:#245b3a;opacity:1}
.diary{max-height:280px;overflow-y:auto;border-radius:12px;background:#f5f8f0;padding:5px 12px}.diary-entry{border-bottom:1px solid #dae6d4;padding:11px 3px}.diary-entry:last-child{border:0}.diary-entry b{display:block;font-size:12px}.diary-entry span{display:block;font-size:11px;color:#658071;margin-top:3px}
@media(max-width:650px){.hub-buttons button{min-height:84px}.hub-heading{flex-wrap:wrap}.upgrade-row{flex-wrap:wrap}.upgrade-row>button{margin-left:auto}}

.grid-appliances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.grid-appliances .appliance{background:#f3f6e9;border:2px solid #d5e3c6;min-height:85px;margin:0;display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center}.grid-appliances .appliance.selected{background:#dcf9c1;border-color:#256b50;box-shadow:inset 0 0 0 2px #9fdf7b}.appliance span{font-size:26px}.appliance b{font-size:12px}.appliance small{font-size:10px;color:#5d7365}.power-meter{margin:17px 0 8px;background:#e4eae1;height:15px;border-radius:15px;overflow:hidden}.power-meter>div{height:100%;width:0;background:#79bc68;transition:width .3s,background .3s}
