.activity-home{min-height:360px;overflow:hidden}.activity-home.match-home{background:#fff0cb}.activity-home.memory-home{background:#ede5fa}.activity-home .mode-card-copy{position:relative;z-index:1}.activity-home .activity-home-art{position:absolute;right:2%;top:35px;width:41%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;transform:rotate(8deg);opacity:.9}.activity-home-art>.picnic-fruit-art{width:100%;height:auto;aspect-ratio:1;border-radius:18px;background:#fff9;padding:5px}.activity-home .memory-home-art{grid-template-columns:repeat(2,1fr);width:34%;right:4%;gap:10px}.tiny-card{border:3px solid #fff;border-radius:15px;background:#fff7de;box-shadow:0 5px 0 #8f76a829;aspect-ratio:.8;display:grid;place-items:center;overflow:hidden}.tiny-card .picnic-fruit-art{width:80%;height:80%}.tiny-card-1{font-size:40px;color:#fff;background:repeating-linear-gradient(45deg,#bda1d9,#bda1d9 9px,#b496d3 9px,#b496d3 18px)}
.home-shell .activity-home{min-height:450px}.home-shell .activity-home .activity-home-art{position:relative;right:auto;top:auto;width:210px;height:145px;max-width:80%;margin:25px auto 20px;flex-shrink:0}.home-shell .activity-home .memory-home-art{width:145px}.home-shell .activity-home .mode-card-copy{max-width:none}.home-shell .memory-home .go{background:#e1d4f1;border-color:#cbb6e1;color:#8462a0}.home-shell .match-home .go{background:#f7e5ab;border-color:#dfc586;color:#9c7d3b}
.collection-entry{width:100%;margin:25px 0 20px;padding:22px 25px;display:flex;align-items:center;gap:20px;text-align:left;border:2px solid #fff;border-radius:28px;background:linear-gradient(120deg,#ffefbf,#fff9e9 60%,#fce6d6);box-shadow:0 5px 0 #dec38444;color:#456c56}.collection-entry>span:nth-child(2){display:grid;gap:6px;flex:1}.collection-entry strong{font-size:27px}.collection-entry small{font-size:15px;color:#9c7b37}.collection-entry>span>span{font-size:16px}.collection-entry>b{font-size:30px}.collection-book-mark{width:84px;height:100px;background:#fffdf7;border:2px solid #e5ce97;border-radius:8px 22px 22px 8px;box-shadow:-6px 0 0 #d9b974;display:grid;place-items:center;transform:rotate(-7deg);padding:7px}.collection-book-mark .picnic-fruit-art{width:100%;height:100%}
.activity-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:25px 0}.activity-heading h1{font-size:clamp(29px,4vw,39px);margin-top:12px;color:#377c79}.activity-player{display:flex;gap:10px;align-items:center;white-space:nowrap;background:#fffdf3;padding:7px 17px 7px 7px;border-radius:60px;border:2px solid white;font-size:20px}.activity-intro{text-align:center;background:#fffdf2f2;border:2px solid white;border-radius:30px;padding:25px;margin:25px 0}.activity-intro-art{display:flex;justify-content:center;height:90px;gap:16px;margin:2px 0 17px}.activity-intro-art svg{width:85px;height:85px}.activity-intro-art svg:nth-child(2){transform:translateY(-10px) rotate(-9deg)}.activity-intro h2{font-size:28px;color:#497e62}.activity-intro p{font-size:20px;line-height:1.8;margin:15px 0}.activity-note{display:block;font-size:16px;line-height:1.8;color:#627c65;text-align:center;margin:17px 0}.wide{width:100%}.activity-resume{margin:7px 0 23px}.activity-subtitle{font-size:26px;color:#497e62;margin:26px 0 18px}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.challenge-card{padding:24px 14px;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:230px;border:2px solid #fff;border-bottom:5px solid #c9d79d;border-radius:28px;background:#fffbee;box-shadow:0 7px 18px #617b4720}.challenge-card>span{font-size:46px}.challenge-card>b{font-size:25px;color:#5a8050}.challenge-card>small{font-size:16px}.challenge-card>em{font-size:15px;color:#978046;font-style:normal}.challenge-card:nth-child(2){background:#f0f5dd}.challenge-card:nth-child(3){background:#fbe6ed}.challenge-card .challenge-number{font-size:48px;color:#c57e52}.challenge-number small{font-size:19px}.next-discovery{margin:28px 0;background:#fffdf3ed;border:2px dashed #debd72;border-radius:25px;display:grid;grid-template-columns:80px 1fr;column-gap:18px;padding:21px}.next-discovery>span{grid-column:1/-1;color:#927b48;font-size:15px}.next-discovery>svg{grid-column:1;grid-row:2/4;width:80px;height:85px;align-self:center}.next-discovery>strong{font-size:26px;margin-top:8px}.next-discovery>p{font-size:17px;line-height:1.6;margin-top:7px}
.mini-game-shell{max-width:1000px}.mini-game-shell .activity-heading{margin:20px 0}.mini-goal{display:flex;align-items:center;gap:14px;padding:17px 20px;background:#fffdf3;border:2px solid white;border-radius:25px;margin:15px 0 22px;box-shadow:0 5px 0 #bed5bc66}.mini-goal>div{display:flex;align-items:center;gap:12px;flex:1}.mini-goal svg{width:66px;height:66px}.mini-goal small{display:block;font-size:15px;color:#8c8b60}.mini-goal strong{display:block;font-size:25px;color:#527b54;margin-top:5px}.goal-leaf{font-size:43px}.moves-badge{display:grid;text-align:center;font-size:14px;border-radius:20px;padding:7px 12px;background:#ffefc5;min-width:74px}.moves-badge>b{font-size:30px;color:#af7641}.points-badge{font-size:20px;color:#ba8350}.match-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:760px;margin:0 auto;background:#a7cb78;border:5px solid #fff9e3;outline:3px solid #e4b88f;border-radius:28px;padding:12px;box-shadow:0 10px 0 #6a9d4922}.match-tile{position:relative;aspect-ratio:1;padding:8px;min-width:0;display:grid;place-items:center;background:#fffaf0;border:2px solid #ead3ab;border-bottom:5px solid #dbc995;border-radius:20px;touch-action:manipulation}.match-tile svg{width:100%;height:100%;max-height:92px;filter:drop-shadow(0 3px 0 #d9b38c18)}.match-tile.selected{outline:4px solid #e785ac;outline-offset:-2px;transform:translateY(-3px);background:#fff0da;box-shadow:0 0 0 4px #fff9}.match-tile.has-grass{background:#dbedaa;border-color:#a2c65a;border-bottom-color:#90b947}.tile-grass{position:absolute;bottom:0;left:7px;right:7px;font-size:26px;line-height:20px;color:#6a9c42;pointer-events:none}.activity-instruction{text-align:center;line-height:1.6;font-size:19px;color:#447975;margin:20px auto;background:#fffdf3ed;border-radius:17px;padding:10px 12px}.mini-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:20px 0}.mini-actions .pill{font-size:17px;min-height:50px}
.memory-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:15px;border:3px solid white;border-radius:28px;background:#fff9e9e8;box-shadow:0 7px 0 #d8ca9c66}.memory-board.count-60{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:12px}.memory-card{position:relative;min-width:0;height:clamp(86px,10vw,118px);border:2px solid #fff;border-bottom:5px solid #80a489;border-radius:17px;background:repeating-linear-gradient(45deg,#abd0b3,#abd0b3 11px,#a0c7aa 11px,#a0c7aa 22px);display:grid;place-items:center;transition:background .15s,transform .15s;padding:14px 8px 6px;box-shadow:0 2px 4px #5d875122}.count-40 .memory-card{height:clamp(68px,8.4vw,90px)}.count-60 .memory-card{height:clamp(64px,7.8vw,82px);border-radius:13px}.memory-card.is-open{background:#fffcf0;border-color:#eddbb3;border-bottom-color:#d5c591}.memory-card.is-matched{opacity:1;background:#eef2d5;border-color:#c5d48d;box-shadow:none;cursor:default}.memory-card.is-matched svg{opacity:.72}.memory-card svg{width:100%;height:100%;max-height:80px}.memory-card-back{font-size:38px;color:#f7ffec;text-shadow:0 3px #80a98a;line-height:1}.count-60 .memory-card-back{font-size:30px}.memory-card-number{position:absolute;top:4px;left:7px;font-size:12px;color:#426d51}.memory-check{position:absolute;right:5px;top:3px;font-size:16px;color:#6a924a}.is-peeking .memory-card{opacity:1}.fruit-reward{display:flex;align-items:center;gap:17px;width:100%;padding:18px;margin:20px 0;background:#fff3cb;border:2px solid #e5c56f;border-radius:24px;text-align:left}.fruit-reward>svg{width:86px;height:86px;flex-shrink:0}.fruit-reward>span{display:grid;gap:7px}.fruit-reward small{font-size:15px;color:#9e7a30}.fruit-reward strong{font-size:30px;color:#617e4c}.fruit-reward span span{font-size:16px}.activity-complete-note{background:#f0f4db;border-radius:20px;padding:15px}
.collection-progress{position:relative;background:#fff9e8f5;border:2px solid white;border-radius:28px;padding:28px 25px;overflow:hidden}.collection-progress>div:first-child{position:relative;z-index:1;padding-right:25%}.collection-progress strong{font-size:48px;color:#bf8b44}.collection-progress strong small{font-size:22px}.collection-progress h2{font-size:25px;margin:12px 0}.collection-progress p{font-size:18px;line-height:1.7}.collection-progress-art{position:absolute;right:25px;top:25px;width:23%;height:140px;transform:rotate(8deg)}.collection-progress-art svg{width:100%;height:100%}.collection-progress progress{appearance:none;width:100%;height:17px;border:0;border-radius:20px;overflow:hidden;margin-top:22px;background:#e9dec2}.collection-progress progress::-webkit-progress-bar{background:#e9dec2}.collection-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#87b869,#d7cf76);border-radius:20px}.basket-editor{padding:24px;margin:25px 0;background:#fffdf3f2;border:2px solid white;border-radius:28px}.basket-editor h2{font-size:26px}.basket-editor p{font-size:17px;line-height:1.65;margin:10px 0}.basket-slots{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:20px 0}.basket-slots>button{position:relative;width:91px;display:grid;gap:8px;justify-items:center;border:2px solid #d7c89f;border-radius:20px;background:#fff9e8;padding:10px 7px;font-size:15px}.basket-slots svg{width:65px;height:65px}.basket-slots>button>b{position:absolute;right:-5px;top:-8px;background:#e992a3;color:white;width:24px;height:24px;border-radius:50%;font-size:20px;line-height:21px}.basket-count{text-align:center;color:#8b7958}.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.collection-tile{min-width:0;background:#fffdf4;border:2px solid #fff;border-radius:23px;overflow:hidden;box-shadow:0 6px 0 #95b58726}.collection-open{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding:20px 12px 13px;background:transparent;border:0}.collection-index{position:absolute;left:10px;top:8px;color:#a6af88;font-size:13px}.collection-open svg{width:110px;height:110px;max-width:100%}.collection-open h3{font-size:24px;margin:10px 0 6px;color:#4d7c5b}.collection-open>span:last-child{font-size:13px;color:#8c906d}.is-unfound{background:#f5f7e6}.is-unfound .collection-open svg{filter:saturate(.38);opacity:.65}.collection-how{font-size:13px;line-height:1.6;text-align:center;padding:3px 7px 15px;color:#859274}.basket-toggle{width:100%;min-height:43px;border:0;border-top:1px dashed #d1dbb6;background:#f7efdb;color:#a18346;font-size:14px;padding:9px 4px}.basket-toggle.in-basket{background:#e3efc6;color:#668444}.fruit-card-dialog{max-width:690px;width:min(690px,94vw);padding:27px;overflow:auto;max-height:92dvh}.fruit-story-card h2{font-size:37px;margin:20px 0 8px}.fruit-story-card h2 small{font-size:17px;display:block;margin-top:7px;color:#8a936f;font-family:Garden,sans-serif}.fruit-card-portrait{height:240px;display:grid;place-items:center;margin:16px auto;max-width:320px;border-radius:50%;background:radial-gradient(circle,#fffaf0 20%,var(--fruit-accent,#d6e9b9) 160%)}.fruit-card-portrait svg{width:220px;height:220px;max-width:90%}.fruit-introduction{font-size:24px!important;line-height:1.8!important;color:#5d7e58!important}.fruit-discovery-record{display:flex;align-items:center;gap:13px;text-align:left;background:#f2f3e3;border-radius:20px;padding:15px;margin:20px 0}.fruit-discovery-record>span:last-child{display:grid;gap:6px}.fruit-discovery-record b{font-size:18px}.fruit-discovery-record span span{font-size:15px;color:#7a8b6d}.fruit-facts{display:grid;gap:13px;text-align:left;margin:18px 0}.fruit-facts>div{background:#f3f5e6;border-radius:17px;padding:15px 18px}.fruit-facts dt{font-size:19px;color:#a08748;margin-bottom:7px}.fruit-facts dd{margin:0;font-size:20px;line-height:1.7;color:#4c7659}.fruit-region-note{font-size:13px!important;line-height:1.6!important;color:#8c987e!important}.fruit-observation>svg{width:100%;height:auto;max-height:250px}.garden-discovery-note{font-size:17px;line-height:1.6;text-align:center;margin:10px auto 14px;background:#fff4dcee;color:#937340;border-radius:15px;padding:9px 14px}.picnic-basket-preview{border:2px solid white;border-radius:25px;background:#fff8e4;margin:25px 0;padding:22px;display:grid;grid-template-columns:1fr auto;gap:16px}.picnic-basket-preview strong{font-size:24px;display:block}.picnic-basket-preview span{display:block;font-size:15px;color:#8b8063;margin-top:8px}.picnic-basket-fruits{display:flex;align-items:center;gap:6px;grid-row:2;grid-column:1/-1;justify-content:center}.picnic-basket-fruits svg{width:clamp(35px,8vw,75px);height:70px}.picnic-basket-preview>p{grid-column:1/-1;margin:0;font-size:15px;text-align:center;color:#7b906c}
@media(min-width:1050px) and (orientation:landscape){.memory-board.count-40{grid-template-columns:repeat(8,minmax(0,1fr))}.memory-board.count-60{grid-template-columns:repeat(10,minmax(0,1fr))}.count-40 .memory-card,.count-60 .memory-card{height:82px}.match-board{max-width:min(700px,calc(100dvh - 330px));min-width:420px}.match-tile{padding:5px;border-radius:13px}.mini-game-shell .activity-heading h1{font-size:29px}.mini-game-shell .activity-heading{margin:13px 0}.mini-game-shell .mini-goal{margin:10px 0 18px;padding:12px 16px}}
@media(max-width:650px){.activity-heading{gap:8px}.activity-player{font-size:16px;padding-right:11px}.activity-player .avatar{width:46px;height:46px}.activity-heading h1{font-size:30px}.activity-heading .smalltag{font-size:12px}.activity-intro{padding:20px 14px}.activity-intro h2{font-size:24px}.activity-intro p{font-size:18px}.challenge-grid{gap:9px}.challenge-card{padding:20px 8px;gap:9px;border-radius:22px}.challenge-card>b{font-size:20px}.challenge-card>small,.challenge-card>em{font-size:13px}.match-board{padding:7px;gap:4px;border-radius:20px}.match-tile{border-radius:12px;padding:3px;border-width:1px;border-bottom-width:3px}.match-tile.selected{outline-width:3px;box-shadow:none}.mini-goal{padding:12px;gap:9px}.mini-goal strong{font-size:19px}.mini-goal small{font-size:12px}.mini-goal svg{width:44px;height:44px}.points-badge{display:none}.moves-badge{font-size:12px;min-width:60px}.moves-badge>b{font-size:25px}.memory-board{gap:6px;padding:8px}.memory-board.count-60{gap:5px;padding:7px}.memory-card{height:85px;padding:16px 5px 7px;border-radius:13px}.count-40 .memory-card{height:72px}.count-60 .memory-card{height:65px;padding:14px 3px 5px}.memory-card-number{font-size:10px;left:5px;top:3px}.memory-card-back{font-size:29px}.count-60 .memory-card-back{font-size:24px}.activity-instruction{font-size:17px}.collection-entry{gap:14px;padding:20px 17px}.collection-entry strong{font-size:23px}.collection-entry>span>span{font-size:14px}.collection-book-mark{width:66px;height:85px;flex-shrink:0}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.collection-open{padding:21px 7px 10px}.collection-open svg{height:86px}.collection-open h3{font-size:20px}.collection-open>span:last-child,.basket-toggle,.collection-how{font-size:11px}.collection-progress{padding:23px 18px}.collection-progress h2{font-size:22px}.collection-progress p{font-size:16px}.basket-editor{padding:20px 14px}.fruit-card-dialog{padding:22px 17px}.fruit-introduction{font-size:21px!important}.fruit-facts dd{font-size:18px}.fruit-card-portrait{height:210px}.fruit-card-portrait svg{height:185px;width:185px}.garden-discovery-note{font-size:15px}.picnic-basket-preview{grid-template-columns:1fr;padding:19px}.picnic-basket-preview>.pill{grid-row:3}.picnic-basket-preview strong{font-size:23px}}
@media(max-width:420px){.activity-player b{display:none}.activity-heading h1{font-size:27px}.challenge-grid{grid-template-columns:1fr}.challenge-card{min-height:120px;display:grid;grid-template-columns:70px 1fr;text-align:left;column-gap:14px;justify-items:start;padding:16px 20px}.challenge-card>span{grid-column:1;grid-row:1/4;justify-self:center}.challenge-card>small,.challenge-card>em{font-size:15px}.memory-board.count-60{grid-template-columns:repeat(5,minmax(0,1fr))}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.basket-slots{gap:10px}.basket-slots>button{width:78px}.basket-slots svg{width:54px;height:54px}.activity-home .activity-home-art{opacity:.6}.activity-home .mode-card-copy{max-width:90%}.mini-game-shell .activity-heading .smalltag{max-width:210px;line-height:1.6}.fruit-reward>svg{width:65px;height:65px}}
.collection-complete{margin:28px 0;padding:25px;border:2px solid #fff;border-radius:25px;background:#f5f8e3;text-align:center}.collection-complete>span{font-size:48px}.collection-complete h2{font-size:27px;margin:12px 0}.collection-complete p{font-size:18px;line-height:1.7}.picnic-fruit-reward{display:flex;align-items:center;justify-content:center;gap:18px;padding:15px;margin:12px 0;border:2px solid #e6d28e;background:#fff4d2;border-radius:24px}.picnic-fruit-reward>svg{width:72px;height:72px}.picnic-fruit-reward>span{display:grid;gap:6px;text-align:left}.picnic-fruit-reward strong{font-size:25px}.picnic-fruit-reward small,.picnic-fruit-reward span span{font-size:15px;color:#8c814d}.match-tile.is-grown svg{animation:fruit-grown .32s ease-out}@keyframes fruit-grown{from{transform:translateY(-12px) scale(.78);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}
@media(min-width:1050px) and (orientation:landscape){.count-60 .memory-card{height:clamp(56px,calc((100dvh - 565px)/6),82px)}.count-40 .memory-card{height:clamp(62px,calc((100dvh - 555px)/5),90px)}}
@media(prefers-reduced-motion:reduce){.memory-card{transition:none}.match-tile.is-grown svg{animation:none}}

/* The hint belongs to the two fruit pieces, with tools and readable rules nearby. */
.match-shell{padding-top:16px;padding-bottom:max(18px,env(safe-area-inset-bottom))}
.match-shell .topbar{padding:6px 12px;min-height:60px}
.match-shell .match-fruit-roster{margin-bottom:12px;padding:8px 12px;gap:12px}.match-shell .match-fruit-roster svg{width:34px;height:34px}.match-shell .match-fruit-roster>div>span{gap:2px}
.match-shell .activity-heading{margin:12px 0;gap:12px}.match-shell .activity-heading h1{font-size:30px;margin-top:0}.match-shell .activity-heading .smalltag{margin-bottom:5px;padding:4px 11px;font-size:12px}
.match-shell .activity-player{padding:4px 13px 4px 4px;font-size:17px}.match-shell .activity-player .avatar{width:49px;height:49px}
.match-shell .mini-goal{margin:10px 0 13px;padding:10px 16px;min-height:76px}.match-shell .mini-goal svg{width:48px;height:48px}.match-shell .mini-goal strong{font-size:22px}.match-shell .moves-badge>b{font-size:25px}
.match-play-area{display:grid;justify-items:center;gap:16px}.match-shell .match-board{width:min(100%,680px,max(320px,calc(100dvh - 610px)));max-width:100%;min-width:0;gap:6px;padding:10px}
.match-tile.is-hinted{z-index:1;background:#fff2c6;border-color:#dca629;box-shadow:inset 0 0 0 3px #ffe27b,0 0 0 3px #e4a731;animation:match-hint-glow 1.4s ease-in-out infinite}
.match-tile.is-hinted.selected{outline:4px solid #df79a2;outline-offset:-3px;background:#fff0df}
.match-hint-arrow{position:absolute;z-index:2;bottom:1px;right:1px;width:clamp(21px,3.5vw,29px);height:clamp(21px,3.5vw,29px);display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:#d67843;color:#fff;box-shadow:0 2px 3px #9b712d55;pointer-events:none}
.match-hint-arrow svg{width:85%;height:85%;filter:none}.match-hint-arrow[data-direction=left] svg{transform:rotate(180deg)}.match-hint-arrow[data-direction=down] svg{transform:rotate(90deg)}.match-hint-arrow[data-direction=up] svg{transform:rotate(-90deg)}
.match-support{width:min(100%,680px);padding:12px 18px 14px;background:#fffdf4;border:2px solid white;border-radius:24px;box-shadow:0 5px 0 #a8c89e33}
.match-support .activity-instruction{font-size:18px;line-height:1.55;color:#416958;margin:0;padding:0;background:transparent;min-height:28px;word-break:keep-all}
.match-actions{flex-wrap:nowrap;gap:18px;margin:10px 0 12px}.match-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:86px;min-height:74px;padding:8px 13px;border:2px solid #dfc580;border-bottom:4px solid #ceb565;border-radius:21px;background:#fff0ba;color:#97732d;touch-action:manipulation}
.match-action svg{width:31px;height:31px;flex:none}.match-action span{font:18px/1.2 Garden,Pretendard,sans-serif}.match-action-book{background:#e8f3d7;border-color:#b7d391;border-bottom-color:#91b76d;color:#65864a}.match-action-rest{background:#eee5f6;border-color:#d2bce3;border-bottom-color:#b69acb;color:#8b6ba6}
.match-rules{display:flex;justify-content:center;align-items:center;gap:15px;padding:10px 0 0;border-top:1px dashed #d5dbb9;color:#526e54;font-size:17px;line-height:1.55;text-align:center;word-break:keep-all}.match-rules strong{color:#42774c;font-weight:600}.match-rules p+p{padding-left:15px;border-left:1px solid #dde3ca}.match-rules .match-grass-rule{color:#6d8643}
@keyframes match-hint-glow{0%,100%{box-shadow:inset 0 0 0 3px #ffe27b,0 0 0 3px #e4a731}50%{box-shadow:inset 0 0 0 3px #ffe27b,0 0 0 4px #f7c643,0 0 13px #ffdf75}}
@media(min-width:900px) and (orientation:landscape){.match-shell{max-width:1120px;padding:12px 25px 20px}.match-shell .activity-heading{margin:8px 0}.match-shell .activity-heading .smalltag{display:none}.match-shell .activity-player .avatar{width:42px;height:42px}.match-shell .mini-goal{min-height:65px;margin:8px 0;padding:7px 15px}.match-shell .mini-goal small{font-size:13px}.match-shell .mini-goal strong{font-size:21px}.match-shell .mini-goal svg{width:43px;height:43px}.match-play-area{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:24px;max-width:1000px;margin:auto}.match-shell .match-board{width:min(100%,max(350px,calc(100dvh - 340px)));justify-self:end}.match-support{align-self:center;padding:19px 14px}.match-actions{gap:9px;margin:17px 0}.match-action{width:72px;min-height:76px;padding:8px}.match-rules{display:block;font-size:18px;line-height:1.7}.match-rules p+p{padding:11px 0 0;margin-top:10px;border:0;border-top:1px dashed #d5dbb9}.match-support .activity-instruction{font-size:20px;line-height:1.6}}
@media(max-width:650px){.match-shell{padding:12px 17px 20px}.match-shell .activity-heading{margin:9px 0}.match-shell .activity-heading h1{font-size:27px}.match-shell .activity-heading .smalltag{display:none}.match-shell .activity-player .avatar{width:43px;height:43px}.match-shell .mini-goal{min-height:64px;padding:8px 11px;margin:9px 0 12px}.match-shell .mini-goal strong{font-size:19px}.match-shell .mini-goal svg{width:41px;height:41px}.match-shell .match-board{gap:4px;padding:7px;width:min(100%,max(300px,calc(100dvh - 420px)))}.match-support{padding:11px 12px 13px;border-radius:21px}.match-support .activity-instruction{font-size:17px}.match-actions{gap:16px;margin:10px 0}.match-action{width:75px;min-height:69px}.match-action svg{width:28px;height:28px}.match-action span{font-size:17px}.match-rules{font-size:16px;gap:10px}.match-rules p+p{padding-left:10px}.match-play-area{gap:13px}}
@media(max-width:420px){.match-rules{display:block;font-size:16px}.match-rules p+p{border:0;padding:7px 0 0}.match-rules br{display:none}.match-shell .mini-goal small{font-size:12px}.match-shell .activity-heading h1{font-size:25px}.match-shell .match-board{border-radius:18px}.match-hint-arrow{width:21px;height:21px}}
@media(prefers-reduced-motion:reduce){.match-tile.is-hinted{animation:none}}

/* Three small harvest baskets and examples of the new match shapes. */
.match-shell .match-goals{padding:10px 14px;gap:12px;align-items:center}
.match-goals .match-goal-summary{display:block;flex:1;min-width:0}
.match-goal-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.match-shell .match-goal-caption>strong{font-size:16px;margin:0;color:#657d4f}.match-grass-progress{font-size:14px;color:#718c47;background:#e6f0c9;padding:4px 9px;border-radius:12px}.match-grass-progress.is-complete{background:#d6edc0;color:#487742}
.match-target-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.match-target{display:flex;align-items:center;gap:8px;position:relative;min-width:0;padding:7px 9px;background:#fff5d9;border:1px solid #e5d4a0;border-radius:17px;color:#9a7844}
.match-shell .match-target svg{width:43px;height:43px;flex:none}.match-target>span:not(.match-target-check){display:grid;gap:3px;min-width:0}.match-shell .match-target small{font-size:14px;white-space:nowrap;color:#687750}.match-target b{font:22px/1.2 Garden,Pretendard,sans-serif;white-space:nowrap}
.match-target.is-complete{background:#e9f4d9;border-color:#aecb87;color:#548549}.match-target-check{position:absolute;top:-6px;right:-4px;display:grid;place-items:center;border:2px solid #fff;width:22px;height:22px;border-radius:50%;background:#82ac5e;color:white;font-size:14px}
.match-goals .match-round-record{display:flex;flex:0 0 auto;flex-direction:column;gap:4px;align-items:center}.match-goals .points-badge{display:block;font-size:16px}.match-goals .moves-badge{min-width:65px;font-size:12px;padding:5px 8px}
.match-shape-rules{gap:20px;padding-top:9px}.match-patterns{flex:1;min-width:0}.match-pattern-caption{display:block;color:#477647;font-size:16px;margin-bottom:3px}.match-patterns>div{display:flex;justify-content:center;gap:15px}.match-pattern{display:grid;justify-items:center;gap:1px}.match-pattern svg{width:48px;height:45px}.match-pattern small{font-size:13px;white-space:nowrap;color:#718054}.match-shape-rules>p{flex:1;font-size:16px}.match-rules .match-grass-rule{font-size:14px}
.match-shell:has(.match-goals) .match-board{width:min(100%,680px,max(320px,calc(100dvh - 685px)))}
@media(min-width:900px) and (orientation:landscape){.match-shell:has(.match-goals) .match-board{width:min(100%,max(350px,calc(100dvh - 385px)))}.match-shell .match-goals{min-height:100px}.match-shape-rules{display:block}.match-patterns>div{gap:15px}.match-shape-rules>p{font-size:17px;padding-top:12px;margin-top:10px;border-top:1px dashed #d5dbb9}.match-target-list{max-width:700px}}
@media(max-width:650px){.match-shell .match-goals{padding:8px 10px;gap:7px}.match-target{flex-direction:column;gap:3px;padding:6px 4px}.match-target>span:not(.match-target-check){text-align:center;gap:2px}.match-shell .match-target svg{width:33px;height:33px}.match-shell .match-target small{font-size:12px}.match-target b{font-size:19px}.match-target-list{gap:6px}.match-goal-caption{margin-bottom:7px}.match-shell .match-goal-caption>strong{font-size:14px}.match-goals .moves-badge{min-width:48px;padding:5px 6px}.match-grass-progress{font-size:12px}.match-goals .points-badge{font-size:13px}.match-shape-rules{gap:12px}.match-patterns>div{gap:10px}.match-pattern small{font-size:12px}.match-shape-rules>p{font-size:15px}.match-shell:has(.match-goals) .match-board{width:min(100%,max(300px,calc(100dvh - 490px)))}}
@media(max-width:420px){.match-patterns>div{gap:22px}.match-shape-rules>p{padding-top:7px}.match-goal-caption>strong{max-width:190px}.match-target b{font-size:18px}.match-target-check{width:19px;height:19px;font-size:12px}.match-shell .match-target small{font-size:11px}}

/* Keep choosing and swapping fruit together, with room for ten kinds. */
@media(min-width:900px) and (orientation:landscape){.match-shell:has(.match-grass-progress){padding-bottom:12px}}
.basket-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.basket-capacity{flex:none;padding:13px 16px;border:2px solid #e5cc92;border-radius:22px;background:#fff1cc;color:#9e7637;font:32px/1.2 Garden,Pretendard,sans-serif;white-space:nowrap}
.basket-capacity small{font-size:18px}
.basket-editor .basket-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:620px;margin:23px auto 18px}
.basket-editor .basket-slots>button{width:100%;min-width:0;min-height:106px;font-size:16px}
.basket-editor .basket-slots svg{width:60px;height:60px;max-width:100%}
.basket-slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed #e0d7bb;border-radius:20px;background:#f9f6e9;color:#b3ad8c;min-height:106px}
.basket-slot-empty b{font-size:25px;font-weight:400}.basket-slot-empty small{font-size:14px}
.basket-editor .basket-count{font-size:17px;line-height:1.6;padding:12px 15px;border-radius:17px;background:#edf4df;color:#648351;margin:0 0 23px}
.basket-editor .basket-count.needs-fruit{background:#fff0d3;color:#9a753a}
.basket-picker{border-top:1px dashed #d9d6b6;padding:23px 0 8px}
.basket-picker h3,.basket-uses h3,.match-basket-note h2{font:25px/1.4 Garden,Pretendard,sans-serif;color:#507b59}
.basket-picker>p{font-size:16px;margin:7px 0 16px;color:#7a8868}
.basket-pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:11px}
.basket-pick{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:131px;padding:10px 7px;border:2px solid #e1d2ab;border-bottom-width:4px;border-radius:20px;background:#fffaf0;color:#7f784f}
.basket-pick svg{width:64px;height:64px;max-width:100%}.basket-pick strong{font-size:16px;font-weight:600}.basket-pick>span{font-size:14px}
.basket-pick.chosen{border-color:#9fc578;background:#edf6da;color:#527d40}
.basket-pick:hover{border-color:#c9a253}.basket-pick:focus-visible{outline:3px solid #df9a55;outline-offset:3px}
.basket-uses{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}
.basket-uses>section{display:flex;flex-direction:column;align-items:flex-start;padding:21px 18px;border-radius:23px;background:#fff0ed;border:1px solid #f1cfd0}
.basket-uses>section+section{background:#edf5df;border-color:#d6e5b7}
.basket-uses h3{font-size:23px}.basket-uses p{font-size:17px;line-height:1.65;margin:10px 0 18px}
.basket-uses button{width:100%;font-size:16px;padding:12px 9px;margin-top:auto;white-space:normal;word-break:keep-all}
.collection-tile .basket-toggle{font-size:15px;min-height:48px}
.picnic-basket-fruits{flex-wrap:wrap}.picnic-basket-fruits svg{flex:0 0 auto;width:clamp(40px,7vw,65px);height:65px}
.match-basket-note{padding:24px;margin:24px 0;border:2px solid white;border-radius:25px;background:#fff9e7;text-align:center}
.match-basket-note .picnic-basket-fruits{margin:17px 0}.match-basket-note p{font-size:18px;line-height:1.8;margin:15px 0;color:#6b7f59}
.match-basket-note .pill{font-size:17px}
.match-fruit-roster{max-width:760px;margin:0 auto 18px;padding:12px 16px;border:1px solid #e2ddba;border-radius:20px;background:#fffbea;display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}
.match-fruit-roster>span{font-size:16px;color:#8d8057}.match-fruit-roster>div{display:flex;justify-content:center;gap:7px}
.match-fruit-roster>div>span{display:grid;justify-items:center;gap:4px;width:clamp(34px,9vw,53px)}
.match-fruit-roster svg{width:40px;height:40px;max-width:100%}.match-fruit-roster small{font-size:11px;color:#7d8666;text-align:center;word-break:keep-all}
@media(max-width:650px){.basket-heading{gap:9px}.basket-capacity{font-size:27px;padding:11px}.basket-capacity small{font-size:15px}.basket-editor .basket-slots{gap:9px}.basket-editor .basket-slots>button{font-size:14px}.basket-uses{grid-template-columns:1fr}.basket-uses>section{padding:18px}.basket-uses button{min-height:54px}.basket-pick-list{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}.match-basket-note{padding:20px 16px}.match-basket-note p{font-size:17px}.collection-tile .basket-toggle{font-size:13px}.match-fruit-roster{gap:8px;padding:10px 8px}}
@media(max-width:420px){.basket-heading h2{font-size:23px}.basket-editor .basket-slots{gap:7px}.basket-editor .basket-slots>button{padding:9px 3px;min-height:83px;font-size:12px;border-radius:15px}.basket-editor .basket-slots svg{height:43px;width:43px}.basket-slot-empty{min-height:83px;border-radius:15px}.basket-slot-empty small{font-size:11px}.basket-editor .basket-slots>button>b{width:21px;height:21px;font-size:18px}.basket-editor .basket-count{font-size:15px}.basket-heading p{font-size:16px}.basket-capacity{padding:10px 8px;font-size:25px}.basket-pick strong{font-size:15px}.basket-pick>span{font-size:13px}.basket-picker h3{font-size:23px}}
/* Harvest feedback shares the fruit artwork and never blocks board input. */
.match-harvest-layer{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden}
.match-harvest-flight{position:absolute;left:var(--flight-x);top:var(--flight-y);width:44px;height:44px;margin:-22px 0 0 -22px;filter:drop-shadow(0 3px 2px #75965d45);animation:harvest-to-basket .62s cubic-bezier(.22,.65,.25,1) var(--flight-delay) both;will-change:transform,opacity}
.match-harvest-flight>svg{display:block;width:100%;height:100%}
.match-target.just-harvested{animation:harvest-basket-pop .72s ease-out}
@keyframes harvest-to-basket{0%{transform:translate(0,0) scale(1.12);opacity:1}18%{transform:translate(calc(var(--flight-dx)*.1),-17px) scale(1.18);opacity:1}88%{opacity:1}100%{transform:translate(var(--flight-dx),var(--flight-dy)) scale(.42);opacity:0}}
@keyframes harvest-basket-pop{0%,38%,100%{transform:scale(1)}64%{transform:scale(1.06);box-shadow:0 0 0 5px #f5d97080}82%{transform:scale(.98)}}
@media(prefers-reduced-motion:reduce){.match-harvest-layer{display:none}.match-target.just-harvested{animation:none;outline:3px solid #e1bb48;outline-offset:2px}}

/* Fruit introductions teach before discovery; speaker controls never flip cards. */
.fruit-introduction-panel,.collection-complete{margin:28px 0;padding:28px;border:2px solid #fff;border-bottom:5px solid #d7dcb0;border-radius:30px;background:#fffbed;box-shadow:0 8px 22px #78915918}
.fruit-introduction-panel>header h2,.collection-complete h2{font:29px/1.4 Garden,Pretendard,sans-serif;color:#557f58;margin:13px 0 8px}
.fruit-introduction-panel>header p,.collection-complete p{font-size:18px;line-height:1.65;color:#7a8465}
.fruit-introduction-body{display:grid;grid-template-columns:minmax(145px,.7fr) minmax(0,1.5fr);gap:25px;align-items:center;margin:24px 0 18px}
.fruit-introduction-art{display:grid;place-items:center;aspect-ratio:1;background:#f0f4d8;border:2px dashed #d4dfad;border-radius:45% 52% 45% 50%;padding:17px}
.fruit-introduction-art svg{width:100%;height:auto;max-height:210px;filter:drop-shadow(0 8px 0 #91a95e16)}
.fruit-name-row{display:flex;justify-content:space-between;align-items:center;gap:15px;text-align:left}
.fruit-name-row h3,.fruit-name-row h2{font:31px/1.3 Garden,Pretendard,sans-serif;color:#4d7c5b;margin:0}
.fruit-name-row small,.fruit-story-card .fruit-name-row h2 small{display:block;font:19px/1.4 Pretendard,sans-serif;font-weight:650;color:#8c7e57;margin-top:5px;overflow-wrap:anywhere}
.fruit-pronounce{display:grid;place-items:center;flex:0 0 50px;width:50px;height:50px;border:2px solid #d6be78;border-bottom-width:4px;border-radius:50%;background:#fff2bd;color:#7f713e;box-shadow:0 3px 0 #e8e0b643;cursor:pointer}
.fruit-pronounce svg{display:block;width:25px;height:25px}
.fruit-pronounce:hover{background:#ffe99c;transform:translateY(-1px)}
.fruit-pronounce:active{transform:translateY(1px);border-bottom-width:2px}
.fruit-pronounce:focus-visible,.fruit-introduction-panel nav button:focus-visible{outline:3px solid #ca9250;outline-offset:4px}
.fruit-intro-story{font-size:19px;line-height:1.7;color:#6a805d;margin:15px 0}
.fruit-picnic-facts{display:grid;gap:9px;text-align:left;margin:16px 0 0}
.fruit-picnic-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:13px;padding:11px 13px;background:#f0f4dc;border-radius:14px}
.fruit-picnic-facts>div:first-child{background:#fff0cf}
.fruit-picnic-facts dt{font:17px/1.55 Garden,Pretendard,sans-serif;color:#8c7847}
.fruit-picnic-facts dd{font-size:17px;line-height:1.55;color:#4f7256;margin:0;word-break:keep-all;overflow-wrap:anywhere}
.fruit-introduction-note{margin:20px 0;padding-top:16px;border-top:1px dashed #ddd9b5;font-size:16px;line-height:1.75;text-align:center;color:#88906c}
.fruit-introduction-panel nav{display:flex;align-items:center;justify-content:center;gap:12px}
.fruit-introduction-panel nav button{min-height:50px;font-size:17px;padding:10px 17px}
.fruit-introduction-panel nav button:nth-child(2){background:#e8f1d5;border-color:#c8dba6;color:#5f8150}
.collection-complete{text-align:center}.collection-complete>span{font-size:45px}
.collection-tile{display:flex;flex-direction:column;align-items:stretch}
.collection-tile .collection-english{display:block;font:600 16px/1.4 Pretendard,sans-serif;color:#8c7e57;text-align:center;overflow-wrap:anywhere;margin:0 0 9px}
.collection-tile>.fruit-pronounce{flex:none;align-self:center;width:48px;height:48px;margin:0 auto 13px}
.collection-tile>.basket-toggle,.collection-tile>.collection-how{margin-top:auto}
.fruit-story-card>.fruit-name-row{padding:20px 0 8px}
.fruit-story-card .fruit-picnic-facts{margin:18px 0}
.collection-tile.is-perfect-harvest{border-color:#d7ac50;background:linear-gradient(145deg,#fff9df,#fffdf4 55%,#fff0bd);box-shadow:inset 0 0 0 3px #fff6ce,0 5px 0 #bea0543b}
.collection-tile.is-perfect-harvest .collection-index{color:#a77929}
.fruit-perfect-medal{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;padding:5px 9px;margin:0 0 8px;border:1px solid #dfbd69;border-radius:12px;background:#fff1bc;color:#8a6124!important;font-size:14px!important;font-weight:800;line-height:1.3}
.fruit-perfect-medal>svg{width:22px;height:26px;flex:none}
.fruit-story-card.is-perfect-harvest{padding:18px;border:2px solid #d7ac50;border-radius:23px;background:linear-gradient(135deg,#fff9df,#fffdf5 45%,#fff6d9);box-shadow:inset 0 0 0 4px #fffdf2}
.fruit-perfect-keepsake{display:flex;align-items:center;gap:13px;margin:10px 0 20px;padding:14px;border:1px solid #e7cc83;border-radius:17px;background:#fff4cf;text-align:left}
.fruit-perfect-keepsake .fruit-perfect-medal{flex:none;flex-direction:column;gap:4px;margin:0;padding:8px;border:0;background:transparent}
.fruit-perfect-keepsake .fruit-perfect-medal>svg{width:36px;height:41px}
.fruit-perfect-keepsake p{margin:0!important;font-size:15px!important;line-height:1.6!important;color:#8a6d36!important;word-break:keep-all;overflow-wrap:break-word}
@media(max-width:650px){.collection-tile .fruit-perfect-medal{gap:3px;padding:4px 5px;font-size:12px!important}.collection-tile .fruit-perfect-medal>svg{width:18px;height:22px}.fruit-story-card.is-perfect-harvest{padding:12px}.fruit-perfect-keepsake{padding:11px;gap:8px}.fruit-perfect-keepsake p{font-size:14px!important}}
@media(max-width:650px){.fruit-introduction-panel,.collection-complete{padding:22px 17px}.fruit-introduction-panel>header h2{font-size:25px}.fruit-introduction-panel>header p{font-size:16px}.fruit-introduction-body{grid-template-columns:105px minmax(0,1fr);gap:15px;align-items:start}.fruit-introduction-art{padding:9px;margin-top:9px}.fruit-name-row{gap:8px}.fruit-name-row h3{font-size:26px}.fruit-name-row small{font-size:17px}.fruit-introduction-copy .fruit-picnic-facts{margin-left:-120px}.fruit-intro-story{font-size:17px}.fruit-picnic-facts>div{grid-template-columns:97px minmax(0,1fr);gap:9px;padding:11px}.fruit-picnic-facts dt,.fruit-picnic-facts dd{font-size:16px}.fruit-introduction-panel nav{gap:8px}.fruit-introduction-panel nav button{font-size:15px;padding:10px 12px}.fruit-introduction-note{font-size:15px}.collection-tile .collection-english{font-size:14px}.fruit-story-card .fruit-name-row h2{font-size:32px}}
@media(max-width:420px){.fruit-introduction-body{grid-template-columns:85px minmax(0,1fr);gap:11px}.fruit-introduction-copy .fruit-picnic-facts{margin-left:-96px}.fruit-pronounce{flex-basis:46px;width:46px;height:46px}.fruit-name-row h3{font-size:24px}.fruit-introduction-panel nav button{padding:9px 8px;font-size:14px}.fruit-picnic-facts>div{grid-template-columns:91px minmax(0,1fr)}.fruit-picnic-facts dt,.fruit-picnic-facts dd{font-size:15px}}
@media(prefers-reduced-motion:reduce){.fruit-pronounce:hover,.fruit-pronounce:active{transform:none}}

/* Keep the way back visible even after scrolling through all thirty fruits. */
.collection-return{position:sticky;top:10px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;margin:0 0 22px;border:2px solid #d1dfb5;border-radius:20px;background:#fffdef;box-shadow:0 5px 16px #48613718}
.collection-return button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 15px;flex-shrink:0;background:#e7f0cf;color:#42684a;border:1px solid #c2d59f}
.collection-return button svg{width:21px;height:21px;flex-shrink:0}
.collection-return>span{font-size:14px;line-height:1.5;color:#748565;word-break:keep-all}
@media(max-width:650px){.collection-return{top:6px;padding:9px;gap:8px;flex-wrap:wrap}.collection-return button{width:100%;font-size:16px}.collection-return>span{width:100%;text-align:center;font-size:12px}}
