:root{--paper:#f7f4e9;--ink:#34463d;--muted:#909a85;--green:#3b624a;--line:#dfe4d3;--board-width:300px;--safe-top:max(env(safe-area-inset-top,0px),var(--host-top,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px),var(--host-bottom,0px),var(--platform-ad-space,0px));--safe-left:max(env(safe-area-inset-left,0px),var(--host-left,0px));--safe-right:max(env(safe-area-inset-right,0px),var(--host-right,0px));--play-height:calc(var(--viewport-height,100dvh) - var(--safe-top) - var(--safe-bottom));font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);background:radial-gradient(ellipse at 15% 90%,#e5ecd633,transparent 55%),var(--paper)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid #bbcc9a;outline-offset:3px}a{color:inherit;text-decoration:none}button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}h1,h2,p{margin:0}.app{height:var(--play-height);max-width:1400px;margin:auto;padding:0 36px;display:flex;flex-direction:column;min-height:0}
.masthead{height:76px;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-family:"Songti SC",STSong,serif;font-size:23px;font-weight:650;letter-spacing:2px;white-space:nowrap}.brand img{width:34px;height:34px}.brand small{display:block;font:7px/1.5 ui-monospace,monospace;letter-spacing:2px;color:var(--muted);margin-top:5px}.edition{font-size:10px;color:var(--muted);line-height:1.8;text-align:center}.edition span{display:block;font:8px ui-monospace,monospace;letter-spacing:1px;margin-top:6px}.top-actions,.round-actions{display:flex;align-items:center;gap:4px}.header-icon,.round-button{display:grid;place-items:center;border:0;width:44px;height:44px;padding:0;border-radius:9px;background:transparent;color:#6c8064;flex-shrink:0}.header-icon:hover,.round-button:hover{background:#e8eddd}.header-icon.muted{color:#b6bcae}.header-icon.muted:after{content:"";position:absolute;width:23px;height:1px;background:currentColor;transform:rotate(-45deg)}
.arcade{display:grid;grid-template-columns:minmax(170px,1fr) minmax(0,420px) minmax(170px,1fr);gap:clamp(26px,4vw,64px);flex:1;min-height:0;align-items:center;justify-content:center;padding:16px 0}.intro,.collection{max-width:240px;justify-self:center}.eyebrow{display:block;font:9px/1.6 ui-monospace,monospace;letter-spacing:1.8px;color:#9aa383}.intro h1{font:500 45px/1.3 "Songti SC",STSong,serif;letter-spacing:4px;margin:17px 0}.intro h1>span{color:#b7c09b}.intro>p{font-size:14px;line-height:2;color:#8f9a81}.how{margin-top:32px;border-top:1px solid var(--line);padding-top:18px}.how>span{font-size:11px;color:#647c55}.how p{font-size:11px;line-height:2;color:var(--muted);margin-top:9px}.key-hint{font-size:10px;color:#a0a88d;line-height:2.5;margin-top:22px}kbd{font:inherit;display:inline-grid;place-items:center;min-width:20px;border:1px solid #dde3cf;border-radius:4px;padding:0 4px}.collection h2{font:500 26px "Songti SC",STSong,serif;margin:14px 0}.collection>p{font-size:12px;line-height:1.9;color:var(--muted)}#fruit-family{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:15px 8px;margin:24px 0;padding:0}#fruit-family li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:9px;color:#adb49a;filter:grayscale(.7);opacity:.45}#fruit-family li.unlocked{filter:none;opacity:1;color:#708760}#fruit-family img{width:39px;height:39px;object-fit:contain}.collection .collection-note{font-size:10px;line-height:2;border-top:1px solid var(--line);padding-top:16px}
.game-column{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;position:relative}.scorebar{display:flex;align-items:center;gap:22px;min-height:58px;height:58px;padding:0 3px}.scorebar>div{min-width:0}.scorebar span{display:block;color:var(--muted);font-size:10px;line-height:1.5}.scorebar strong{display:block;font:650 30px/1.1 ui-rounded,-apple-system,sans-serif;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-top:2px}.scorebar .best{margin-right:auto}.scorebar .best strong{font-size:21px;font-weight:500;color:#839471}.round-actions{gap:0}.round-button{color:#809575}.orchard-ribbon{display:flex;align-items:center;gap:7px;height:34px;min-height:34px;font-size:10px;color:#919e7f;white-space:nowrap;padding:0 4px}.daily-dot{width:5px;height:5px;background:#bdc998;border-radius:50%;flex-shrink:0}.daily-meter{height:3px;flex:1;min-width:20px;max-width:80px;background:#e6eadb;border-radius:2px;margin-left:auto;overflow:hidden}.daily-meter i{display:block;background:#99b37b;height:100%;width:0;transition:width .3s}
.board{position:relative;isolation:isolate;width:var(--board-width);height:calc(var(--board-width) * 16 / 9);align-self:center;border:1px solid #d4dbc3;border-radius:16px;overflow:hidden;background:linear-gradient(#fffdf2,#f3f4db);box-shadow:0 10px 32px #79875a10;flex-shrink:0}#game-stage{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#game-stage>div,#game-stage canvas{max-width:100%;max-height:100%}#GameCanvas{display:block;touch-action:none;width:100%;height:100%;outline:none}.danger-label{position:absolute;left:0;right:0;top:13%;text-align:center;font-size:9px;letter-spacing:1px;color:#9da77c;pointer-events:none;opacity:.7}.overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:#f7f7e9ed;backdrop-filter:blur(6px)}.overlay-card{padding:24px 20px;text-align:center;width:100%;max-height:100%;overflow:auto}.hero-fruit{width:78px;height:78px;object-fit:contain;margin:0 auto 12px;display:block;filter:drop-shadow(0 7px 5px #82945b15)}.overlay-card .eyebrow{font-size:8px;letter-spacing:1px}.overlay-card h2{font:550 25px/1.5 "Songti SC",STSong,serif;margin:8px 0}.overlay-card p{font-size:12px;line-height:1.9;color:#8d9b7c;margin-bottom:18px;white-space:pre-line}.primary-button{display:block;min-height:44px;width:100%;max-width:220px;margin:12px auto 0;border:1px solid transparent;border-radius:9px;padding:10px 14px;color:#fffdf2;background:var(--green);font-size:12px;letter-spacing:1px}.primary-button:hover{background:#2e533c}.text-button{display:block;border:0;background:none;min-height:44px;padding:8px;font-size:11px;color:#718861;margin:6px auto 0}#load-status{display:block;font-size:10px;color:#9aa68b;margin-top:10px}.toast{position:absolute;bottom:14px;left:12px;right:12px;z-index:5;padding:10px 12px;background:#3c5845ed;color:#fffdf2;border-radius:8px;font-size:11px;text-align:center;line-height:1.6;pointer-events:none}
.orchard-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;height:52px;flex-shrink:0}.orchard-tools button{display:flex;align-items:center;gap:9px;text-align:left;min-width:0;min-height:48px;border:1px solid #e0e5d3;border-radius:9px;background:#edf1e2;padding:7px 11px;color:#688354}.orchard-tools button:last-child{background:#f8f5e8;border-color:#e5dfc8;color:#9a8a57}.orchard-tools strong{display:block;font-size:11px;font-weight:550;white-space:nowrap}.orchard-tools small{display:block;font-size:9px;color:#98a288;margin-top:3px;white-space:nowrap}.tool-glyph{font-size:21px;line-height:1;flex-shrink:0}.board-caption{display:flex;align-items:center;gap:5px;justify-content:center;font-size:9px;line-height:1.5;color:#a0aa8d;margin-top:8px;min-height:16px;height:16px;white-space:nowrap}.board-caption #merge-count{margin-left:auto}.live-dot{width:4px;height:4px;background:#a9ba89;border-radius:50%}.app>footer{height:34px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:9px;color:#a3ac93;border-top:1px solid var(--line)}
dialog{position:fixed;inset:calc(var(--safe-top) + 8px) 0 calc(var(--safe-bottom) + 8px);max-height:calc(var(--play-height) - 16px);margin:auto;overscroll-behavior:contain}#orchard-book{width:min(620px,calc(100% - 24px));overflow:auto;padding:25px;border:1px solid var(--line);border-radius:16px;background:#fbfaf0;color:var(--ink)}#orchard-book::backdrop{background:#2e413750;backdrop-filter:blur(4px)}.orchard-book-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.orchard-book-heading h2{font:500 23px "Songti SC",serif}.orchard-book-heading button{min-width:44px;min-height:44px;border:0;background:transparent;font-size:23px;color:#9aa58b}.orchard-intro,.orchard-theme-note{font-size:11px;color:#95a57e;line-height:1.8;margin:10px 0 18px}.orchard-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 0;border-block:1px solid var(--line)}.orchard-totals span{font-size:10px;color:var(--muted)}.orchard-totals b{display:block;font-size:23px;color:#628252;margin-top:7px;font-weight:500}.orchard-fruits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.orchard-fruits>div{text-align:center;background:#f1f3e6;padding:12px 3px;border-radius:9px}.orchard-fruits img{width:48px;height:48px;object-fit:contain}.orchard-fruits span,.orchard-fruits small{display:block;font-size:10px;margin-top:6px;color:#7a8e63}.orchard-fruits small{font-size:8px;color:#a8b093}.orchard-fruits .unknown{opacity:.35;filter:grayscale(1)}.orchard-goal{padding:14px;background:#eaf0df;border-radius:9px}.orchard-goal strong{font-size:13px;font-weight:500}.orchard-goal p{font-size:11px;color:#95a57e;line-height:1.8;margin-top:5px}.orchard-theme{--paper:#f0f5e9;--green:#42754d}
@media(max-width:1000px){.app{padding:0 20px}.arcade{grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:28px}.collection{display:none}.intro h1{font-size:36px}}
@media(max-width:800px){.app{padding:0 14px}.masthead{height:50px;min-height:50px;gap:8px}.brand{font-size:19px;gap:8px;letter-spacing:1px}.brand img{width:28px;height:28px}.brand small,.edition{display:none}.top-actions{gap:0}.arcade{display:flex;justify-content:center;padding:6px 0 8px}.intro,.collection,.app>footer{display:none}.game-column{max-width:420px;width:100%}.scorebar{height:48px;min-height:48px;gap:20px;padding:0 2px}.scorebar strong{font-size:27px}.scorebar .best strong{font-size:20px}.scorebar span{font-size:9px}.round-button{width:44px;height:44px}.orchard-ribbon{height:28px;min-height:28px;font-size:9px}.board{border-radius:12px}.orchard-tools{height:50px;margin-top:8px}.orchard-tools button{padding:6px 9px;min-height:48px}.board-caption{margin-top:6px;font-size:9px}.overlay-card{padding:14px}.hero-fruit{width:58px;height:58px;margin-bottom:8px}.overlay-card h2{font-size:21px}.overlay-card p{font-size:11px;line-height:1.7;margin-bottom:10px}.overlay-card .eyebrow{font-size:7px}.orchard-fruits{grid-template-columns:repeat(3,1fr)}#orchard-book{padding:18px}.orchard-book-heading h2{font-size:18px}}
@media(max-width:960px) and (max-height:500px) and (orientation:landscape){.app{padding:0 14px}.masthead{height:40px;min-height:40px}.brand{font-size:18px}.brand small,.edition,.intro,.collection,.app>footer{display:none}.arcade{display:flex;padding:4px 0 6px}.game-column{max-width:none;width:auto;display:grid;grid-template-columns:112px var(--board-width) 146px;grid-template-rows:1fr 1fr;gap:6px 12px;align-items:center}.board{grid-column:2;grid-row:1/3}.scorebar{grid-column:1;grid-row:1;height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 5px;padding:0;align-self:end}.scorebar .best{margin:0}.scorebar strong{font-size:24px}.scorebar .best strong{font-size:18px}.round-actions{grid-column:1/-1;gap:5px}.round-button{background:#eaf0df}.orchard-ribbon{grid-column:3;grid-row:1;height:auto;min-height:0;display:flex;flex-wrap:wrap;white-space:normal;gap:6px;align-self:end;font-size:10px}.daily-meter{flex-basis:100%;max-width:none;margin:0}.orchard-tools{grid-column:3;grid-row:2;display:flex;flex-direction:column;height:auto;margin:0;gap:6px;align-self:start}.orchard-tools button{min-height:48px}.board-caption{grid-column:1;grid-row:2;height:auto;white-space:normal;flex-wrap:wrap;align-self:start;justify-content:flex-start;font-size:9px;margin-top:8px}.board-caption #merge-count{width:100%;margin:0}.overlay-card{padding:8px}.hero-fruit,.overlay-card .eyebrow{display:none}.overlay-card h2{font-size:17px;margin:3px}.overlay-card p{font-size:10px;line-height:1.5;margin:4px 0}.primary-button,.text-button{min-height:40px;margin-top:4px;font-size:10px;padding:6px}.danger-label{font-size:7px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:960px) and (max-height:500px) and (orientation:landscape){.game-column{height:100%;min-height:0;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.scorebar{position:relative;align-self:start;padding-top:6px}.scorebar .round-actions{position:absolute;top:70px;left:0;right:0}.orchard-ribbon{align-self:start;padding-top:6px}.orchard-tools{height:94px;align-self:end}.orchard-tools button{height:44px;min-height:44px;padding:4px 9px}.board-caption{align-self:end;margin:0}.board{align-self:center}}

/* Orchard materials and clear reading contrast across the basket and fruit book. */
:root{--paper:#fbf7e9;--ink:#36503b;--muted:#718064;--green:#52783e;--line:#dfe3c9}body{background:radial-gradient(ellipse at 10% 90%,#e9efcf55,transparent 55%),var(--paper)}.board{border-color:#cdd8b6;background:linear-gradient(#fffdf1,#f2f4db);box-shadow:0 10px 32px #5b7a2e12}.scorebar span,.orchard-ribbon,.control-help{color:#72815f}.scorebar strong{color:#4f6c3b}.scorebar .best strong{color:#819164}.daily-meter{background:#e4e9cf}.daily-meter i{background:#8dab54}.header-icon,.round-button{color:#678350}.overlay-card h2{color:#4f6539;font-weight:550}.overlay-card p{color:#788365}.overlay-card #primary{background:#5c7d41;box-shadow:0 3px 0 #3f5d2d;color:#fffced}.overlay-card #primary:hover{background:#6a8a4b}.game-tools button{border-color:#d4dfba;background:#f3f5e3;color:#657d45}.game-tools button:last-child{background:#efe7cd;border-color:#dfd2a7;color:#8b7240}.game-tools small{color:#7f835f}.growth-entry .growth-brand small{color:#6c7f52}
#orchard-book{background:#fffcf0;border:1px solid #d9dfbe;border-radius:14px;box-shadow:0 24px 100px #38552325}#orchard-book::backdrop{background:#2e4b3566;backdrop-filter:blur(6px)}.orchard-book-heading{border-color:#e0e5ca}.orchard-book-heading h2{font-family:"Songti SC",STSong,serif;color:#4f693c}.orchard-book-heading button{width:44px;height:44px;border-radius:50%;background:#eef2dc;color:#6e8452;border:1px solid #d9e1c1}#orchard-content p{color:#72815d}#orchard-content h3{color:#4f6c39}
@media(max-width:650px){.overlay-copy,.overlay-card p{font-size:12px;line-height:1.75}.orchard-ribbon{font-size:10px}.game-tools button{font-size:11px}.game-tools small{font-size:9px}}

.fruit-album-title{display:flex;align-items:center;gap:18px;padding:18px 14px;background:linear-gradient(120deg,#eff1cf,#fff6dd);border-radius:12px;border:1px solid #dce1b8}.fruit-album-title img{width:66px;height:66px;transform:rotate(-8deg);filter:drop-shadow(0 4px 3px #82924c25)}.fruit-album-title small{font:8px ui-monospace,monospace;letter-spacing:1.5px;color:#89915b}.fruit-album-title h3{font:550 22px/1.5 "Songti SC",serif;letter-spacing:1px;margin:6px 0}.fruit-album-title p{font-size:11px;margin:3px 0}.orchard-fruits>div{border:1px solid #e4e5c8;border-radius:10px;background:#faf8e9;position:relative;padding:12px 5px}.orchard-fruits>div.found{background:#f3f5df;border-color:#cbd8a3;box-shadow:0 2px 7px #82924c09}.orchard-fruits>div img{filter:drop-shadow(0 3px 2px #7e934520)}.orchard-fruits>div.unknown img{filter:grayscale(.9);opacity:.4}.orchard-fruits small{color:#76855e;font-size:10px}.orchard-goal{border:1px solid #d2dcae;background:#eef1d6;border-radius:10px;padding:15px}.orchard-totals b{color:#688640}
@media(max-width:650px){.fruit-album-title{gap:10px;padding:12px}.fruit-album-title img{width:48px;height:48px}.fruit-album-title h3{font-size:19px}.fruit-album-title small{font-size:7px}}
.orchard-fruits>div.unknown{opacity:1;filter:none;color:#7f896e}.orchard-fruits>div.unknown img{filter:grayscale(.85);opacity:.35}.orchard-fruits>div.unknown small{color:#879174}

/* Keep iOS text sizing stable while the host changes orientation. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
