/* The interactive landscape is the opening scene. Controls remain live during every reveal. */
:root{--farm-outline:#345e30;--farm-sun:#ffcf59;--farm-leaf:#84c64c}
.loading-farm{position:relative;max-width:600px;margin:auto;max-height:70svh;overflow:hidden;border:4px solid #fff5c6;border-radius:25px;background:#aad36b}
.loading-farm>img{width:100%;height:auto}.loading-farm>p{position:absolute;inset:20px 15px auto;padding:15px;background:#fff8dc;border:2px solid #557d35;border-radius:18px;text-align:center;font-weight:900}
.farm-opening{display:grid;grid-template-columns:minmax(280px,430px) 104px minmax(0,1fr);gap:18px;min-height:110px;margin:0 0 18px;align-items:center}
.farm-opening .opening-title{min-width:0}.farm-opening .eyebrow{font-size:14px;letter-spacing:.06em;margin:0 0 3px}
.farm-opening .painted-title{width:340px;max-width:100%;min-height:75px}.farm-opening .title-map{font-size:18px;line-height:1.3;color:#446534}
.farm-opening .guide-character{width:104px;height:110px;transform:none;animation:none}
.farm-opening .welcome-instruction{font-size:20px;line-height:1.6;margin:0;padding:0;border:0;background:none;color:#2c6336;font-weight:900}
.farm-opening .guide-subline{font-size:15px;line-height:1.75;margin-top:4px;color:#506e43}
.farm-opening .opening-speech{border:2px solid #83a456;border-radius:24px 24px 24px 5px;background:#fff9d7;padding:13px 19px;box-shadow:0 4px 0 #d6e2aa}
.map-layout{grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:32px}.map-primary{min-width:0}
.filter-row{gap:7px;padding:2px 2px 9px;margin-bottom:6px}.filter-row button{border:0;border-radius:0;box-shadow:none;background:transparent url('/app/assets/control-wood.webp') center/100% 100% no-repeat;color:#37552c;padding:12px 16px;min-height:52px;flex-shrink:0;transition:filter .12s,transform .12s}
.filter-row button[aria-pressed=true]{background:transparent url('/app/assets/control-wood.webp') center/100% 100% no-repeat;box-shadow:none;color:#71390d;filter:drop-shadow(0 3px 0 #e1a943)}
.filter-row button[aria-pressed=true] svg{color:#ba6719}.filter-row button:active{transform:translateY(3px) rotate(-1deg);box-shadow:none;filter:brightness(.95)}
.game-map{border:5px solid #fff6d0;border-radius:28px;box-shadow:0 0 0 3px #4c7436,0 8px 0 #729c4c,0 18px 28px #3657291a}
.game-map .map-tools{padding:12px;gap:6px}.game-map .map-title-badge{border:0;background:#fff4c4;border-radius:5px 14px 14px 5px;padding:7px 10px;box-shadow:0 3px 0 #9b813e;font-size:13px}
.game-map .map-tools button{width:42px;height:42px;min-width:42px}.game-map .map-tools button[data-zoom=reset]{width:auto;min-width:50px;font-size:14px}
.game-map .map-foot{font-size:12px;padding:9px 12px;min-height:39px;background:#fff5d1;color:#4d6334;border-top:2px solid #a4b864}
.map-accuracy{font-size:12px;margin:18px 4px 16px;line-height:1.7}.discovery-ribbon{margin:20px 0 15px;background:#ffdf85;border:2px solid #8b7135;box-shadow:0 5px 0 #c5a151;border-radius:8px 26px 26px 8px;min-height:88px}
.discovery-ribbon .ribbon-icon{background:transparent url('/app/assets/fx-journal.webp?v=18') center/contain no-repeat;border:0;width:61px;height:57px;transform:rotate(-8deg)}.discovery-ribbon .ribbon-icon svg{visibility:hidden}.discovery-ribbon b{font-size:19px}.discovery-ribbon strong{font-size:26px;color:#844115}.discovery-ribbon:active{transform:translateY(4px) rotate(-.4deg)}
.season-guide{border-top:0;background:#e3f1bb;border:2px solid #a0bd6a;border-radius:17px;padding:12px 14px;margin:18px 0 24px}
.season-guide button{min-height:44px;padding:7px 11px;font-size:14px;border:0;border-radius:10px;background:#fffae7;color:#315331;box-shadow:0 3px 0 #afbe75;font-weight:800}
.next-discovery{margin:0 0 25px;background:#fff4cc;border:2px solid #b2924c;border-radius:7px 25px 25px 25px;overflow:hidden;box-shadow:0 5px 0 #e6d39a}
.next-discovery>div{padding:18px 21px 13px}.next-discovery>div>span{font-size:13px;font-weight:800;color:#8d6728}.next-discovery h2{font-size:20px;line-height:1.65;color:#375e30;margin:4px 0 0}
.next-discovery>button{width:100%;display:flex;align-items:center;gap:17px;text-align:left;border:0;border-top:2px dashed #d7bd7c;background:#fffdf2;padding:16px 20px;min-height:130px;color:#315c31}
.next-discovery>button>img{width:112px;height:108px;object-fit:cover;border-radius:13px;flex-shrink:0}.next-discovery>button>b{font-size:21px}.next-discovery>button span{min-width:0}.next-discovery b{display:block;font-size:21px;line-height:1.65}.next-discovery small{display:block;font-size:14px;line-height:1.75;margin-top:5px;color:#62744c}.next-discovery>button:active{transform:none;background:#f1f7d9}
.primary-button:not(.basket-button){background:#ffd064;color:#334f27;border:2px solid #718645;border-radius:8px 19px 8px 19px;box-shadow:0 5px 0 #b39643;font-weight:900}.secondary-button{border-radius:6px 16px 6px 16px}
.journal-nav button{border-radius:17px 17px 3px 3px;border-bottom-width:4px}.journal-nav button[aria-current]{background:#ffdc7b;border-color:#907335}.card-export{min-height:58px}
.stamp-button{min-height:68px}.stamp-button:active{transform:translateY(4px) rotate(-3deg) scale(.96)}.basket-button:active{transform:translateY(5px) rotate(-2deg) scale(.98)}
.album-complete{display:flex;gap:17px;align-items:center;padding:21px;background:#ffe298;border:2px solid #b58234;border-radius:22px;margin-bottom:24px;box-shadow:0 5px 0 #e4c676}.album-complete>img{width:95px;height:95px;object-fit:contain}.album-complete b{font-size:23px;color:#815322}.album-complete p{font-size:16px;line-height:1.8;margin:7px 0 15px;color:#5d6937}
.place-directions{background:#f0f6db;border:2px solid #91ae65;border-radius:7px 20px 20px 20px;padding:22px;margin:24px 0;box-shadow:0 4px 0 #d4e3b3}.place-directions>span{font-size:13px;font-weight:800;color:#687a43}.place-directions h3{font-size:21px;line-height:1.6;margin:6px 0 16px}.place-directions ol{padding-left:25px;margin:0}.place-directions li{font-size:17px;font-weight:800;line-height:1.9;padding:5px 0}.place-directions p{font-size:14px;line-height:1.85;margin:15px 0 10px;color:#5c7044}.place-directions a{font-size:14px;font-weight:800}
.event-empty-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:20px}.event-empty-actions a{font-size:15px}.event-empty p{font-size:16px}
.farm-fx{position:fixed;inset:auto;margin:0;padding:0;border:0;background:transparent;pointer-events:none!important;z-index:10020;overflow:visible;filter:drop-shadow(0 7px 3px #3b572e30);will-change:transform,opacity}.farm-fx>img{width:100%;height:100%;object-fit:contain;pointer-events:none}.farm-fx::backdrop{background:transparent;pointer-events:none}
.discovery-celebrate .mission-progress>.complete{animation:none}.discovery-celebrate .mission-progress>.just-recorded{animation:stamp-imprint .52s cubic-bezier(.2,.7,.3,1.1) both}
.first-map .opening-title{animation:opening-title .65s both}.first-map .painted-title{animation:none}.first-map .guide-character{animation:opening-mascot .65s .12s both}.first-map .opening-speech{animation:opening-speech .45s .28s both}.first-map .eyebrow,.first-map .welcome-instruction,.first-map .title-map{animation:none}
.map-arrival{animation:landscape-open .8s .08s cubic-bezier(.18,.75,.2,1) both;transform-origin:50% 10%}.map-arrival .game-pin{animation:sign-land .5s calc(.38s + var(--pin-delay)) cubic-bezier(.16,.8,.22,1.2) backwards}
@keyframes opening-title{from{transform:translateY(-12px) rotate(-2deg) scale(.94);opacity:.1}60%{transform:translateY(2px) rotate(.5deg) scale(1.02)}to{transform:none;opacity:1}}
@keyframes opening-mascot{from{transform:translateY(22px) rotate(-15deg) scale(.7);opacity:.2}65%{transform:translateY(-7px) rotate(5deg) scale(1.04)}to{transform:none;opacity:1}}
@keyframes opening-speech{from{transform:translateX(-12px) scale(.97);opacity:0}to{transform:none;opacity:1}}
@keyframes landscape-open{from{transform:perspective(1600px) rotateX(7deg) scale(.98);opacity:.4}to{transform:none;opacity:1}}
@media(max-width:1000px) and (min-width:761px){.farm-opening{grid-template-columns:minmax(280px,1fr) 100px minmax(200px,1fr);gap:10px}.farm-opening .welcome-instruction{font-size:18px}.farm-opening .opening-speech{padding:10px 13px}.next-discovery>button{gap:12px;padding:14px}.next-discovery>button>img{width:85px;height:100px}}
@media(max-width:760px){
 .app-header{height:65px}.brand b{font-size:21px}.brand small{font-size:12px}.brand-character{width:37px;height:43px}.header-meta{gap:10px}.header-meta .icon-button{width:42px;height:42px}
 main{padding:17px 15px 124px}.farm-opening{grid-template-columns:minmax(0,1fr) 73px;gap:0 8px;margin-bottom:11px;min-height:0;align-items:center}.farm-opening .opening-title{grid-column:1;grid-row:1}.farm-opening .guide-character{grid-column:2;grid-row:1;width:73px;height:89px}.farm-opening .painted-title{width:260px;min-height:55px}.farm-opening h1{gap:1px;line-height:1.2}.farm-opening .title-map{font-size:14px;letter-spacing:.05em}.farm-opening .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.02em;margin-bottom:2px}
 .farm-opening .opening-speech{grid-column:1/-1;padding:9px 13px;margin-top:7px;border-radius:5px 19px 19px 19px;box-shadow:0 3px 0 #d6e2aa}.farm-opening .welcome-instruction{font-size:16px;line-height:1.55}.farm-opening .guide-subline{font-size:14px;line-height:1.55;margin-top:2px}
 .map-layout{display:block}.filter-row{margin-bottom:6px;gap:6px;padding-bottom:7px}.filter-row button{min-height:48px;padding:11px 13px;font-size:14px;gap:4px}.filter-row button svg{width:20px;height:20px}.game-map{margin:0 2px;border-radius:24px;border-width:4px}.game-map .map-tools{padding:10px;gap:5px}.game-map .map-title-badge{font-size:12px;padding:6px 7px;max-width:125px}.game-map .map-tools>div{gap:5px}.game-map .map-tools button{width:40px;height:40px;min-width:40px}.game-map .map-tools button[data-zoom=reset]{min-width:43px;font-size:13px;padding:0 4px}
 .game-map .game-pin{padding-top:28px}.game-pin .game-pin-label{min-width:105px;min-height:49px;padding:13px!important;font-size:14px}.game-pin .pin-open{width:18px;height:18px}.game-map .map-foot{font-size:12px;gap:2px 9px;padding:8px 10px}.map-accuracy{margin:17px 4px 14px}.discovery-ribbon{min-height:83px;margin:18px 0 15px;padding:11px 12px;gap:9px}.discovery-ribbon .ribbon-icon{width:46px;height:48px}.discovery-ribbon b{font-size:16px}.discovery-ribbon small{font-size:13px}.discovery-ribbon strong{font-size:22px}.season-guide{margin:15px 0 26px;padding:11px;gap:9px}.next-discovery{margin:0 0 24px}.next-discovery>div{padding:16px 17px 12px}.next-discovery h2{font-size:19px}.next-discovery>button{gap:14px;padding:15px}.next-discovery>button>img{width:94px;height:104px}.next-discovery b{font-size:20px}.next-discovery small{font-size:14px}.album-complete{padding:18px 14px;gap:12px}.album-complete>img{width:68px;height:83px}.album-complete b{font-size:20px}.album-complete p{font-size:15px}.album-complete .primary-button{font-size:15px}.event-empty-actions{flex-direction:column;gap:12px}.event-empty-actions a{width:100%}.place-directions{padding:19px 17px}.place-directions h3{font-size:20px}.place-directions li{font-size:16px}.map-results{padding-top:0}.bottom-nav button{font-size:12px;min-width:0}.bottom-nav{gap:3px}
}
@media(max-width:370px){.farm-opening .painted-title{width:220px;min-height:49px}.farm-opening .guide-character{width:65px;height:82px}.farm-opening{grid-template-columns:minmax(0,1fr) 65px}.game-map .map-title-badge{max-width:104px;font-size:12px;line-height:1.5}.game-map .map-tools button{min-width:38px;width:38px}.game-pin .game-pin-label{min-width:96px;padding:12px 9px!important}.discovery-ribbon b{font-size:15px}.discovery-ribbon strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.farm-fx{display:none}}
