/* Farm controls keep HTML labels and generous hit areas over original illustrated plates. */
.painted-title{position:relative;display:inline-flex;align-items:center;width:min(100%,370px);min-height:78px}.painted-title img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;visibility:hidden}.painted-title.art-ready img{visibility:visible}.painted-title.art-ready .title-fallback{visibility:hidden}.adventure-welcome h1{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.adventure-welcome .title-map{font-size:21px;letter-spacing:.06em;margin:0}.first-map .painted-title{animation:title-bloom .65s cubic-bezier(.2,.8,.25,1.1) both}.adventure-welcome .guide-character{animation:none}
.game-pin .game-pin-label{background:transparent url('/app/assets/control-wood.webp') center/100% 100% no-repeat!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:13px 19px!important;gap:5px;min-width:112px;min-height:48px;color:#334b26!important}.game-pin .pin-open{width:19px;height:19px;font-size:14px}.game-pin.pin-in-season .game-pin-label{filter:drop-shadow(0 2px 0 #f4b845)}.game-pin.pin-in-season .pin-open{background:#bd6924}.game-pin.pin-closed .game-pin-label{filter:saturate(.45)}.game-pin .pin-saved{right:2px;top:23px}.game-pin:hover .game-pin-label{filter:drop-shadow(0 3px 0 #daab59)}.game-pin:active .game-pin-label{filter:brightness(.96)}
.basket-button,.stamp-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;isolation:isolate;border:0!important;background-color:transparent!important;background-repeat:no-repeat;background-size:100% 100%;box-shadow:none!important;text-decoration:none;color:#3b4e26!important;font-weight:900;line-height:1.5}.basket-button{background-image:url('/app/assets/control-basket.webp')!important;min-height:102px!important;padding:45px 22px 16px!important;font-size:17px!important}.basket-button:active{transform:translateY(4px) rotate(-1deg)}.stamp-button{background-image:url('/app/assets/control-stamp.webp');min-height:64px;padding:15px 23px;font-size:16px;cursor:pointer;width:100%;max-width:350px}.stamp-button svg{width:22px;height:22px}.stamp-button.is-recorded{color:#955329!important;filter:saturate(.7)}.stamp-button:active{transform:translateY(3px) scale(.97)}.stamp-button:disabled,.card-export:disabled{opacity:.6;cursor:default;transform:none}.stamp-button:focus-visible,.basket-button:focus-visible{outline:3px solid #356e46;outline-offset:3px;border-radius:12px}.save-button{width:46px;height:43px;border-radius:14px 14px 19px 19px;box-shadow:0 3px 0 #b6aa73}.save-button.is-saved{background:#ffdb75}.save-button svg{width:25px;height:25px}
.season-guide{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;background:#ffefb0;border:2px solid #b9a55d;border-radius:14px;padding:9px 12px;margin:3px 0 15px;color:#755622}.season-guide>span{font-size:13px;font-weight:800}.season-guide>div{display:flex;gap:8px;flex-wrap:wrap}.season-guide button{border:0;background:none;padding:5px 2px;font-size:14px;font-weight:900;text-decoration:underline;text-underline-offset:4px;color:#456632;min-height:32px}
.discovery-ribbon{display:flex;align-items:center;text-align:left;gap:13px;max-width:760px;width:100%;border:2px solid #6c9953;border-radius:12px 27px 27px 12px;background:#f0facf;box-shadow:0 4px 0 #bed899;padding:13px 18px;margin:0 0 25px;color:#355b33}.ribbon-icon{display:grid;place-items:center;width:44px;height:48px;background:#ffdf78;border:2px solid #648e45;border-radius:9px;transform:rotate(-5deg);flex-shrink:0}.ribbon-icon svg{width:31px;height:31px}.discovery-ribbon b{display:block;font-size:17px;line-height:1.5}.discovery-ribbon small{display:block;font-size:14px;font-weight:500;margin-top:2px}.discovery-ribbon strong{margin-left:auto;font-size:21px;white-space:nowrap;color:#8d4c18}.discovery-ribbon:active{transform:translateY(3px);box-shadow:none}
.journal-nav{display:flex;gap:9px;margin:10px 0 27px;max-width:650px}.journal-nav button{flex:1;min-height:48px;border:2px solid #5d8751;border-radius:13px 13px 5px 5px;background:#fff9dc;box-shadow:0 3px 0 #c8d39c;padding:9px 12px;font-size:16px;font-weight:800;color:#416237}.journal-nav button[aria-current]{background:#ffdb78;box-shadow:0 4px 0 #6f8544;transform:translateY(-2px)}.journal-status,.journal-error{padding:20px;border:2px dashed #bdc89e;border-radius:17px;margin-bottom:20px;background:#fff9e6;font-size:16px;line-height:1.8}.journal-error button{margin-top:12px}.record-feedback{font-size:15px;line-height:1.7;color:#536e35;font-weight:800}.record-feedback:empty{display:none}.journal-feedback:not(:empty){background:#fff0be;border-left:4px solid #d5963e;padding:13px 17px;margin:0 0 20px}.mission-board{border:3px solid #6e9855;border-radius:28px;background:#f4fbdc;box-shadow:0 6px 0 #c5daa3;padding:27px;overflow:hidden}.mission-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.mission-heading h2{font-size:29px;line-height:1.5;color:#3d6637;font-weight:900}.mission-heading .eyebrow{font-size:13px;letter-spacing:.06em}.mission-counter{font-weight:900;font-size:44px;white-space:nowrap;line-height:1;color:#a75d22}.mission-counter small{font-size:20px;color:#658447;margin-left:4px}.mission-progress{display:flex;gap:11px;margin-top:21px;max-width:550px}.mission-progress>span,.visit-stamps>span{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;border:2px dashed #9eaf7c;border-radius:17px;background:#fffff7;padding:13px 8px;color:#708260;min-height:80px}.mission-progress svg,.visit-stamps svg{width:27px;height:27px}.mission-progress b,.visit-stamps b{font-size:14px}.mission-progress>.complete,.visit-stamps>.complete{border:2px solid #cf9241;background:#ffdf8a;color:#89501d;transform:rotate(-2deg);box-shadow:0 3px 0 #d7b964}.mission-progress>.complete:nth-child(2),.visit-stamps>.complete:nth-child(2){transform:rotate(2deg)}.mission-intro{font-size:16px;margin:23px 0 19px;color:#557447}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mission-card{border:2px solid #a0bc7c;background:#fffdf3;border-radius:20px;overflow:hidden;min-width:0;box-shadow:0 4px 0 #d3dfb8}.mission-card.complete{border-color:#d4953e}.mission-photo{position:relative;aspect-ratio:1.8;overflow:hidden}.mission-photo img{width:100%;height:100%;object-fit:cover}.mission-photo>span{position:absolute;left:12px;bottom:11px;background:#fff4c4;border:2px solid #769357;border-radius:9px;padding:3px 10px;font-size:14px;font-weight:900}.mission-copy{padding:19px 17px}.mission-copy h3{font-size:20px;line-height:1.55;color:#3d6539}.mission-copy p{font-size:16px;line-height:1.8;color:#57754e;margin:10px 0 18px;min-height:86px}.mission-note{font-size:14px;line-height:1.85;color:#5e7752;margin:20px 0 0}.mission-finish{display:flex;align-items:center;justify-content:center;gap:18px;padding:22px 15px 4px}.mission-finish img{width:90px;height:100px;object-fit:contain;flex-shrink:0}.mission-finish b{font-size:23px;color:#935023}.mission-finish p{font-size:16px;margin-top:5px;color:#586f40}.mission-finish button{margin-top:14px}
.discovery-album{margin-top:40px}.discovery-album .list-heading h2{font-size:25px}.album-intro{font-size:16px;color:#5c774e;margin:-1px 0 20px}.album-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.album-entry{position:relative;border:2px solid #c4cda2;background:#fffdf3;border-radius:18px;overflow:hidden;min-width:0;padding-bottom:12px}.album-entry.found{border-color:#ba8938;box-shadow:0 4px 0 #dec586}.discovery-open{display:block;width:100%;border:0;background:none;padding:0 0 12px;text-align:left}.discovery-open>img{width:100%;aspect-ratio:1.25;object-fit:cover}.discovery-open>b{display:block;font-size:18px;padding:14px 14px 4px;color:#3c6136;line-height:1.5}.discovery-open>small{display:block;padding:0 14px;font-size:13px;color:#657756;line-height:1.6}.album-sticker{position:absolute;top:11px;left:11px;font-size:13px;padding:4px 9px;border:2px solid #8b9e6c;border-radius:8px;background:#fffbe8;color:#586a3f;font-weight:800}.found .album-sticker{background:#ffdb7d;border-color:#a66a30;color:#7f481e;transform:rotate(-6deg)}.album-entry>.stamp-button{width:calc(100% - 16px);margin:0 8px;min-height:55px;font-size:14px;padding:12px 10px}.discovery-detail{padding:21px 0;margin:22px 0 8px;border-top:2px dashed #a5bb82;border-bottom:2px dashed #a5bb82}.discovery-detail>div>span{font-size:13px;font-weight:800;color:#97804b}.discovery-detail h3{font-size:21px;margin:5px 0}.discovery-detail>div>p{font-size:16px;line-height:1.8;color:#5b764e}.discovery-detail .stamp-button{margin:17px 0 9px}.discovery-detail .record-feedback{margin-top:10px}
.visit-card-area{max-width:660px;margin:0 auto;text-align:center}.card-date-picker{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:24px;font-size:15px;font-weight:700}.card-date-picker select{font:inherit;border:2px solid #85a96c;background:#fffbed;border-radius:10px;padding:10px 14px;min-height:46px;max-width:100%;color:#355b32}.visit-card{position:relative;background:#fff7d6;border:5px solid #6c944f;outline:2px solid #dfb05e;outline-offset:4px;border-radius:26px;box-shadow:0 10px 0 #dfd8aa;padding:32px 26px 24px;color:#3c6336;margin:10px 8px 30px}.visit-card-top>span{display:block;font-size:21px;letter-spacing:.16em;font-weight:900}.visit-card-top>b{display:block;font-size:30px;font-weight:900;line-height:1.5;margin:8px 0 7px}.visit-card-top>time{font-size:15px;font-weight:700}.visit-mascot{width:130px;height:145px;object-fit:contain;margin:18px auto 12px}.visit-stamps{display:flex;gap:12px;margin:0 auto 25px;max-width:410px}.visit-card h2{font-size:25px;color:#98632d;line-height:1.55}.visit-card>p{font-size:16px;margin-top:10px}.visit-photos{display:flex;justify-content:center;gap:12px;margin-top:21px}.visit-photos>div{flex:1;max-width:160px;min-width:0;background:#fffef3;border:2px solid #d1c28f;padding:6px;transform:rotate(-3deg)}.visit-photos>div:nth-child(2){transform:rotate(3deg)}.visit-photos img{width:100%;aspect-ratio:1;object-fit:cover}.visit-photos b{display:block;font-size:14px;line-height:1.5;padding-top:5px}.visit-card .visit-more{font-size:14px;line-height:1.8}.visit-card .card-caption{font-size:12px;margin-top:24px;color:#747f57}.card-save-note{font-size:14px;line-height:1.9;margin:17px auto 6px;max-width:460px;color:#5c7549}.card-export{min-width:240px}
.mission-card.pop-reveal,.album-entry.pop-reveal{animation:collection-place .5s calc(var(--entry-order,0)*50ms) both}.visit-card.pop-reveal{animation:letter-arrive .6s both}.discovery-celebrate .mission-progress>.complete{animation:stamp-imprint .5s both}.discovery-celebrate .mission-finish{animation:guide-answer .5s both}@keyframes stamp-imprint{0%{transform:scale(1.18) rotate(-8deg);opacity:.4}55%{transform:scale(.94) rotate(-2deg)}100%{transform:scale(1) rotate(-2deg)}}
@media(max-width:1000px){.album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mission-grid{gap:13px}.mission-copy{padding:17px 13px}.mission-copy h3{font-size:18px}}
@media(max-width:760px){.painted-title{width:235px;max-width:100%;min-height:55px}.adventure-welcome h1{gap:2px}.adventure-welcome .title-map{font-size:17px}.discovery-ribbon{gap:9px;padding:10px 12px;margin-bottom:21px}.ribbon-icon{width:35px;height:40px}.ribbon-icon svg{width:26px;height:26px}.discovery-ribbon b{font-size:15px}.discovery-ribbon small{font-size:12px}.discovery-ribbon strong{font-size:18px}.game-pin .game-pin-label{font-size:14px;padding:12px 13px!important;min-width:101px;min-height:47px}.game-pin .pin-open{width:17px;height:17px;font-size:13px}.season-guide{gap:2px 9px;padding:7px 10px}.journal-nav{gap:7px;margin-top:6px}.journal-nav button{font-size:14px;padding:8px 6px}.mission-board{padding:20px 16px;border-radius:23px}.mission-heading h2{font-size:23px}.mission-counter{font-size:37px}.mission-counter small{font-size:17px}.mission-progress{gap:8px;margin-top:18px}.mission-progress>span,.visit-stamps>span{padding:10px 5px;min-height:75px}.mission-progress b,.visit-stamps b{font-size:13px}.mission-intro{font-size:16px;margin:20px 0 14px}.mission-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:0 3px 12px;scrollbar-width:thin;scrollbar-color:#9cb376 #e5efcf}.mission-card{flex:0 0 86%;scroll-snap-align:center}.mission-copy{padding:17px}.mission-copy h3{font-size:20px}.mission-copy p{min-height:86px}.mission-note{font-size:13px;margin-top:12px}.mission-finish{gap:11px;padding:21px 0 0}.mission-finish img{width:64px;height:90px}.mission-finish b{font-size:19px}.mission-finish p{font-size:15px}.mission-finish button{font-size:15px;padding:12px}.discovery-album{margin-top:30px}.discovery-album .list-heading h2{font-size:23px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}.discovery-open>b{font-size:17px;padding:13px 10px 5px}.discovery-open>small{padding:0 10px;font-size:12px}.album-entry>.stamp-button{font-size:14px;gap:3px;padding:12px 7px;min-height:51px}.album-entry>.stamp-button svg{width:18px;height:18px}.visit-card{padding:26px 16px 22px;margin-inline:6px}.visit-card-top>b{font-size:24px}.visit-stamps{gap:8px}.visit-card h2{font-size:21px}.visit-photos{gap:8px}.visit-photos b{font-size:12px}.visit-card>p{font-size:15px}.basket-button{min-height:94px!important;font-size:16px!important;padding-top:41px!important}.discovery-detail h3{font-size:20px}}
@media(max-width:370px){.painted-title{width:208px;min-height:49px}.discovery-ribbon b{font-size:14px}.discovery-ribbon small{font-size:12px}.discovery-ribbon strong{font-size:16px}.mission-heading h2{font-size:21px}.mission-board{padding-inline:13px}.album-entry>.stamp-button{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
