/* Correct legacy runtime asset paths */
.farm-scene::before{background-image:url("assets/runtime/grass-tile.png")!important}
.plot{background-image:url("assets/runtime/soil-tile.png")!important}
/* Harvest Haven V2 */
.icon-btn{width:42px;height:42px;border:3px solid #71411f;border-radius:12px;background:#fff6d2;cursor:pointer;font-size:19px;box-shadow:0 3px 0 #60381d}.status-pill.festival{background:#ffd66f;animation:festivalGlow 1.8s ease-in-out infinite}.event-card{margin-top:9px;background:rgba(231,246,200,.8)}
.page-backdrop{filter:blur(4px) saturate(.9) brightness(.78)}
.farm-scene{min-height:760px;background:linear-gradient(#92dbf1 0 24%,#79b75c 24% 100%)}
.scene-building{position:absolute;z-index:2;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 7px 5px rgba(43,39,19,.3));transition:transform .2s ease,filter .2s ease}.scene-building img{display:block;width:100%;height:100%;object-fit:contain}.scene-building>span{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);white-space:nowrap;padding:3px 8px;border:2px solid #714521;border-radius:9px;background:rgba(255,244,196,.94);color:#52331f;font-size:9px;font-weight:900;box-shadow:0 3px 0 rgba(83,48,24,.25)}.scene-building:hover,.scene-building:focus-visible{transform:translateY(-5px) scale(1.035);filter:drop-shadow(0 11px 7px rgba(43,39,19,.36)) brightness(1.06)}.scene-building[data-tier="2"]::after,.scene-building[data-tier="3"]::after{content:"✦";position:absolute;right:2px;top:4px;color:#ffe568;font-size:24px;text-shadow:0 2px 3px #6b421f;animation:sparkle 1.6s infinite}.scene-building[data-tier="3"]::after{content:"✦✦"}
.prop-farmhouse{left:3%;top:43px;width:175px;height:150px}.prop-barn{right:4%;top:55px;width:142px;height:130px}.prop-windmill{left:26%;top:42px;width:155px;height:135px}.prop-well{left:2%;top:230px;width:88px;height:84px}.prop-market{left:25%;top:214px;width:112px;height:100px}.prop-coop{right:23%;top:205px;width:110px;height:95px}.prop-scarecrow{left:48%;top:220px;width:61px;height:88px}.prop-pond{right:1%;bottom:16px;width:174px;height:100px}.prop-kitchen{right:37%;top:46px;width:160px;height:135px}
.weather-fx{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}.weather-fx.rainy::before,.weather-fx.rainy::after{content:"";position:absolute;inset:-40%;background-image:repeating-linear-gradient(105deg,transparent 0 18px,rgba(216,246,255,.52) 19px 21px,transparent 22px 40px);animation:rainFall .65s linear infinite}.weather-fx.rainy::after{animation-duration:.9s;opacity:.45;transform:translateX(60px)}.weather-fx.breeze::before{content:"🍃  ·  🍃   ·   🍃";position:absolute;top:15%;left:-30%;font-size:18px;white-space:nowrap;animation:breezePass 8s linear infinite}.festival-day .farm-scene{box-shadow:0 0 0 5px rgba(255,214,91,.72),var(--shadow)}.festival-day .farm-scene::before{filter:saturate(1.2)}body[data-phase="evening"] .farm-scene::after{background:linear-gradient(rgba(255,157,75,.16),rgba(90,45,70,.22))}body[data-phase="night"] .farm-scene::after{background:linear-gradient(rgba(16,38,82,.42),rgba(10,26,51,.52));mix-blend-mode:multiply}body[data-phase="night"] .scene-building{filter:drop-shadow(0 7px 5px rgba(8,12,27,.6)) brightness(.82)}
.view-banner-art{width:120px;height:82px;object-fit:contain;filter:drop-shadow(0 5px 4px rgba(45,31,16,.25))}.workshop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.workshop-card{position:relative;padding:13px;border:4px solid var(--wood-dark);border-radius:16px;background:#fff1c7;box-shadow:inset 0 0 0 3px var(--wood-light),var(--shadow);overflow:hidden}.workshop-card.locked{filter:grayscale(.8);opacity:.72}.workshop-hero{display:flex;align-items:center;gap:9px}.workshop-hero img{width:108px;height:88px;object-fit:contain}.workshop-hero span{font-size:9px;color:#72543d;font-weight:900}.workshop-hero h3{margin:1px 0;font-size:17px}.workshop-hero p{margin:0;color:#765a44;font-size:9px;line-height:1.35}.job-list{display:grid;gap:6px;margin:10px 0}.job-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:7px;padding:6px;border-radius:10px;background:#e6cc92}.job-row>span{font-size:25px}.job-row b,.job-row small{display:block}.job-row b{font-size:10px}.job-row small{font-size:8px;color:#76543c}.recipe-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.recipe-btn{display:grid;grid-template-columns:31px 1fr;grid-template-rows:auto auto;gap:1px 6px;padding:7px;border:2px solid #79502d;border-radius:10px;background:#fff9d8;text-align:left;cursor:pointer}.recipe-btn>span{grid-row:1/3;font-size:27px}.recipe-btn b{font-size:10px}.recipe-btn small{font-size:7px;color:#75543b;line-height:1.25}.recipe-btn:disabled{filter:grayscale(.7);opacity:.55;cursor:not-allowed}.workshop-lock{position:absolute;inset:0;display:grid;place-items:center;background:rgba(68,54,36,.46);color:#fff7d4;font-weight:900;text-shadow:0 2px #4a2d19}.empty-state.compact{padding:7px;font-size:9px}
.town-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.npc-card{display:grid;grid-template-columns:145px 1fr;min-height:230px;border:4px solid var(--wood-dark);border-radius:17px;background:#fff1c7;box-shadow:inset 0 0 0 3px var(--wood-light),var(--shadow);overflow:hidden}.npc-portrait-wrap{position:relative;overflow:hidden;background:linear-gradient(#e8d4a4,#b8d98a)}.npc-portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;filter:drop-shadow(0 5px 4px rgba(40,30,20,.18))}.npc-copy{padding:14px}.npc-copy>span{font-size:9px;color:#806047;font-weight:900}.npc-copy h3{margin:2px 0;font-size:22px}.npc-copy p{min-height:45px;margin:6px 0;color:#70523b;font-size:10px;line-height:1.45}.heart-track{height:10px;border:2px solid #74461f;border-radius:99px;background:#d4b887;overflow:hidden}.heart-track span{display:block;height:100%;background:linear-gradient(90deg,#ff9d97,#e75570)}.npc-meta{display:flex;justify-content:space-between;margin:4px 0 9px;font-size:9px}.npc-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.npc-actions .secondary-btn:disabled{opacity:.55}.quiet-label{font-size:8px;color:#79604a}.npc-order{grid-template-columns:80px 1fr auto}.npc-order-portrait{width:72px!important;height:90px!important;border-radius:12px;object-fit:cover!important;object-position:50% 15%;background:#d6e6a7}.npc-line{display:flex;gap:7px;align-items:center}.npc-line span{font-size:8px;color:#7e6149}.emoji-art{display:inline-grid;place-items:center;width:30px;font-size:24px}.emoji-card{display:grid!important;place-items:center;font-size:48px}.modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.modal-item{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:6px;padding:8px;border-radius:10px;background:#f4dfac}.modal-item img{width:34px;height:34px;object-fit:contain}.summary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.summary-stats span{padding:9px;border-radius:10px;background:#f4dfac;font-weight:900;font-size:10px}
@keyframes rainFall{to{transform:translate(110px,170px)}}@keyframes breezePass{to{transform:translateX(180%) rotate(8deg)}}@keyframes sparkle{50%{transform:scale(1.25);opacity:.55}}@keyframes festivalGlow{50%{filter:brightness(1.18);transform:translateY(-1px)}}
@media(max-width:1250px){.workshop-grid{grid-template-columns:1fr 1fr}.prop-kitchen{display:none}.scene-building>span{font-size:8px}}
@media(max-width:900px){.farm-scene{min-height:760px}.scene-building{transform:scale(.84)}.scene-building:hover{transform:translateY(-3px) scale(.88)}.town-grid,.workshop-grid{grid-template-columns:1fr}.npc-card{grid-template-columns:120px 1fr}.view-banner-art{display:none}}
@media(max-width:620px){.scene-building{display:none}.farm-scene{min-height:700px}.field-zone{left:3%;right:3%;width:auto;bottom:225px}.pasture-zone{left:3%;right:3%;top:auto;bottom:70px;width:auto;min-height:140px}.orchard-zone,.river-zone{display:none}.town-grid{grid-template-columns:1fr}.npc-card{grid-template-columns:96px 1fr;min-height:200px}.workshop-grid{grid-template-columns:1fr}.workshop-hero img{width:88px}.card-grid{grid-template-columns:1fr 1fr}}
.npc-emoji{display:grid;place-items:center;font-size:42px}.npc-emoji-large{display:grid;place-items:center;font-size:74px;text-shadow:0 5px 8px rgba(50,35,20,.18)}
