*{box-sizing:border-box}body{margin:0;color:#203e34;background:#f5f0dc;font:15px/1.45 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}button,a{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible{outline:3px solid #f28532;outline-offset:2px}button[hidden],[hidden]{display:none!important}header{background:#173c33;color:#fff3d0;border-bottom:3px solid #c5a66a}.top,main,footer{max-width:1080px;margin:auto}.top{height:59px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.06em}.brand img{width:33px;height:40px;object-fit:contain}.brand span{padding-left:12px;border-left:1px solid #95845d}.brand small{display:block;font-size:8px;letter-spacing:.18em;color:#e7c984}.top nav{display:flex;gap:21px;font-size:13px}main{display:grid;grid-template-columns:minmax(270px,.82fr) minmax(385px,1fr);align-items:center;gap:clamp(32px,6vw,88px);padding:25px 24px 30px}.kicker{display:flex;align-items:center;gap:9px;color:#856038;font-size:11px;letter-spacing:.13em;font-weight:800}.kicker i{width:23px;border-top:2px solid #ba7239}.kicker b{font-size:9px;border:1px solid #c3af87;padding:2px 6px;border-radius:10px}.story h1{font-size:clamp(40px,4.9vw,74px);line-height:1.1;margin:12px 0 0;font-weight:950;letter-spacing:-.07em}.story h1 span{color:#bd502d}.lead{font-size:19px;font-weight:700;margin:8px 0 17px}.manual h2{font-size:17px;margin:16px 0 4px}.manual p{color:#5c624f;font-size:13px;line-height:1.65;margin:4px 0}.manual b{color:#9f522d}.wallet{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:17px;border-top:1px solid #c9c7ac;padding-top:11px;font-size:13px}.wallet strong{font-size:18px}.wallet a{color:#526b50;font-weight:650}
.machine{width:100%;max-width:505px;justify-self:center;background:#fff8e4;border:2px solid #597356;border-radius:19px;box-shadow:0 4px 0 #b2ac87,0 14px 24px #4a513526;overflow:hidden}.machine-head{display:flex;align-items:center;justify-content:space-between;padding:7px 14px;background:#245347;color:#fff1ce;font-size:13px;font-weight:750}.machine-head>div{display:flex;gap:7px}.field i{display:inline-block;width:8px;height:8px;background:#faca65;border-radius:100%;margin-right:6px}.icon{width:27px;height:27px;text-align:center;padding:0;border:1px solid #a8ba8f;border-radius:50%;background:#325f50;color:#fff1c8}.icon[aria-pressed=false]{opacity:.55}.hud{padding:6px 15px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#5a624f}.hud strong{font-size:17px;font-variant-numeric:tabular-nums;color:#294d3e}.well{position:relative;margin:0 10px}.well:before{content:'';position:absolute;inset:0;border-radius:10px;background:#315546;box-shadow:inset 0 2px 5px #122e20aa}
#board{position:relative;width:100%;aspect-ratio:1;border:6px solid transparent;box-sizing:border-box;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;border-radius:12px}.tile{position:absolute;width:16.6666667%;height:16.6666667%;left:0;top:0;transition:transform .16s cubic-bezier(.22,.8,.35,1);padding:2px;background:none;border:0;touch-action:none;display:grid;place-items:stretch;line-height:1}.chip{width:100%;height:100%;display:grid;place-items:center;position:relative;border-radius:15%;border:1px solid #fff6;box-shadow:inset 0 -3px 0 #4b503826,inset 0 2px #ffffff89;background:var(--cell);transition:opacity .14s,transform .14s}.tile .produce-icon{width:84%;height:84%;filter:drop-shadow(0 2px 1px #4c47232d)}.tile[data-kind="0"]{--cell:#ffe4b9}.tile[data-kind="1"]{--cell:#d7edbb}.tile[data-kind="2"]{--cell:#ffdad0}.tile[data-kind="3"]{--cell:#dcdff1}.tile[data-kind="4"]{--cell:#f5e9ae}.tile.sel .chip{outline:3px solid #206c56;outline-offset:-4px;transform:scale(.92)}.tile.suggest .chip:after{content:'';position:absolute;inset:2px;border:3px dashed #238171;border-radius:13%;pointer-events:none}.tile.pop .chip{transform:scale(.30) rotate(-12deg);opacity:0}.controls{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;gap:7px}.controls button,.secondary{white-space:nowrap;border:1px solid #bdc4a1;border-radius:16px;background:#edf1d6;padding:5px 11px;font-size:12px;font-weight:750}.controls #cash{background:transparent;border-color:#d5c9ad}.controls span{flex:1;text-align:center;font-size:11px;color:#45644b}.confetti{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse,#ffdb798a,transparent 66%)}.confetti i{position:absolute;top:46%;left:50%;width:6px;height:10px;z-index:-1;background:var(--color);animation:scatter .8s ease-out forwards}@keyframes scatter{to{transform:translate(var(--dx),var(--dy)) rotate(190deg);opacity:0}}@keyframes stamp{from{transform:scale(1.35) rotate(-12deg);opacity:0}}footer{display:flex;justify-content:space-between;border-top:1px solid #d1caae;padding:12px 24px 19px;color:#74765f;font-size:11px}
dialog{z-index:8;border:3px double #bf9c59;border-radius:16px;padding:0;background:#fff7dd;color:#294c3b;max-width:min(365px,89vw);width:100%;box-shadow:0 15px 50px #102f2f55}dialog::backdrop{background:#163b32a1;backdrop-filter:blur(2px)}.paper{padding:24px 22px;text-align:center}.paper h2{margin:7px 0 9px;font-size:27px}.paper p{font-size:14px;white-space:pre-line;line-height:1.65;margin:0}.paper #payment{display:block;color:#916022;font-size:13px;margin-top:7px}.paper button,.paper a{display:block;margin:12px auto 0}.primary{border:2px solid #f9d587;border-radius:22px;padding:8px 28px;background:#265b46;color:#fff3c8;font-weight:bold}.paper a{font-size:12px;text-decoration:underline}
@media(max-width:745px){.top{height:47px;padding:0 13px}.brand{gap:7px;font-size:13px}.brand span{padding-left:7px}.brand img{width:25px;height:33px}.brand small{font-size:6px}.top nav{gap:13px;font-size:11px}main{display:flex;flex-direction:column;align-items:stretch;gap:0;max-width:530px;padding:11px 10px 18px}.story{display:contents}.kicker{font-size:9px}.story h1{font-size:35px;margin:4px 0 1px}.lead{font-size:12px;margin:0 0 9px}.machine{order:1;align-self:center}.wallet{order:2;margin:12px 0 0}.manual{order:3}.manual h2{margin-top:11px}.machine-head{padding:5px 10px}.well{margin:0 6px}.hud{padding:4px 10px}.tile{padding:1.5px}.controls{padding:7px}.controls button{font-size:11px;padding:4px 8px}.controls span{font-size:10px}.icon{height:25px;width:25px}.manual p{font-size:12px}footer{padding:10px 13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* The three glyphs share the baseline and contours of the supplied brand lockup. */
.glyph[data-letter="嘉"]{--glyph-x:0%}
.glyph[data-letter="盛"]{--glyph-x:50%}
.glyph[data-letter="汇"]{--glyph-x:100%}
.glyph:after{content:"";display:block;aspect-ratio:1;width:100%;background:var(--ink,currentColor);-webkit-mask:url('/luobo/match/brand-letters.webp') var(--glyph-x) center/300% 100% no-repeat;mask:url('/luobo/match/brand-letters.webp') var(--glyph-x) center/300% 100% no-repeat}
.specimen{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:174px;padding:12px 17px;text-align:left;border:1px solid #c1ac78;border-radius:8px;background:repeating-linear-gradient(118deg,transparent 0 5px,#a3874420 5px 5.4px,transparent 6px 11px),linear-gradient(120deg,#f1e7c9,#e4d2a4);box-shadow:inset 0 0 0 4px #efe0bd,inset 0 0 0 5px #bba26a}
.specimen:before,.specimen:after{content:"";position:absolute;left:10px;width:3px;height:3px;border-radius:50%;background:#9c834c}.specimen:before{top:10px}.specimen:after{bottom:10px}
.specimen img{width:60%;max-width:255px;height:100%;object-fit:contain;filter:drop-shadow(1px 5px 3px #6b501754)}
.spec-copy{flex:1;display:grid;justify-items:start;color:#3a4a37}.spec-copy small{font:700 8px/1.5 system-ui;letter-spacing:.14em;color:#695d3c}.spec-copy b{font:700 clamp(19px,2vw,27px)/1.3 Georgia,"Songti SC",serif;margin-top:9px;letter-spacing:.06em}.spec-copy>span{font-size:12px;letter-spacing:.16em;margin-top:3px;color:#615b42}.spec-copy em,.see-seal{font:650 11px/1.5 system-ui}.spec-copy em{margin-top:15px;border-bottom:1px solid #8f845e;font-style:normal}.specimen:hover img{filter:drop-shadow(1px 5px 4px #6b50176a)}
.album{background:linear-gradient(114deg,#f4e9cc,#f5ebd2 62%,#e9dcbb);border-bottom:1px solid #cbbd98;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.album-meta small,.paper>small{font-size:9px;font-weight:700;letter-spacing:.14em;color:#80643c}.album-meta h2{margin:1px 0;font-size:18px;line-height:1.18}.see-seal{background:none;border:0;border-bottom:1px solid #ad9668;color:#685836;padding:0;line-height:1.4}.see-seal:hover{color:#203f32}
.stamps{position:relative;display:flex;align-items:center;justify-content:center;gap:3px;padding:8px 15px;background:linear-gradient(145deg,#315345,#13372e);border:1px solid #956f38;border-radius:6px;box-shadow:inset 0 0 0 2px #254738,inset 0 0 0 3px #b29b69,0 2px 0 #cbb589}
.stamps:before,.stamps:after{content:"";background:#b29760;position:absolute;top:50%;width:3px;height:3px;transform:rotate(45deg)}.stamps:before{left:7px}.stamps:after{right:7px}
.stamps .glyph{width:clamp(31px,3.85vw,46px);--ink:#8fa291;transition:filter .22s}
.stamps .got{--ink:linear-gradient(160deg,#fff7d2 4%,#f6dc8f 58%,#dfbd72);filter:drop-shadow(0 1px 0 #67451d)}
.album-metric{display:grid;gap:2px;color:#745b33;text-align:right}.album-metric b{font:700 16px/1.2 Georgia,serif;letter-spacing:.06em}.album-metric small{font-size:10px;white-space:nowrap;font-weight:650}
.tile .mark,.fly{display:grid;place-items:center;background:linear-gradient(135deg,#476b53,#1a4538 52%,#14382d);border:1px solid #8b692d;border-radius:4px;box-shadow:inset 0 0 0 1px #edd29a,0 1px 2px #44371866;--ink:linear-gradient(145deg,#fff5ce,#e6c57e)}
.tile .mark{position:absolute;right:3%;bottom:3%;width:45%;height:45%;padding:3px;pointer-events:none}
.tile.stamped .chip{box-shadow:inset 0 0 0 2px #b29256,inset 0 0 0 3px #fff0bd,inset 0 -3px 0 #4b503826}
.tile.stamped .produce-icon{transform:translate(-7%,-7%) scale(.90)}
.fly{position:fixed;z-index:12;width:32px;height:32px;padding:3px;pointer-events:none}
.seal-detail{width:min(230px,84%);display:block;margin:0 auto 14px;filter:drop-shadow(0 4px 3px #79643540)}
.confetti{background:radial-gradient(ellipse,#fff0af96,transparent 75%)}.confetti .seal-reveal{display:grid;justify-items:center;width:61%;text-align:center;animation:imprint .45s ease-out both}
.seal-reveal img{width:100%;display:block;filter:drop-shadow(0 7px 8px #18312488)}.seal-reveal em{font:700 13px/1.4 system-ui;color:#fff2cf;background:#244b3c;border:1px solid #d1b373;border-radius:12px;padding:2px 12px;margin-top:4px}
@keyframes imprint{0%{transform:scale(1.19);opacity:0}70%{transform:scale(.97);opacity:1}100%{transform:scale(1)}}
@media(max-width:745px){.album{padding:6px 9px;gap:5px}.album-meta h2{font-size:15px}.album-meta small{font-size:8px}.stamps{padding:6px 12px;gap:1px}.stamps .glyph{width:clamp(27px,8vw,36px)}.album-metric b{font-size:14px}.specimen{order:4;margin-top:12px;height:137px}.spec-copy b{font-size:19px}.spec-copy em{margin-top:6px}.tile .mark{padding:2px}.see-seal{font-size:10px}}
@media(prefers-reduced-motion:reduce){.confetti .seal-reveal{animation:none}}


.tile .produce-icon,.tile .chip{pointer-events:none}.tile.dragging{z-index:4;transition:none;will-change:transform}.tile.drag-neighbor{z-index:3;transition:none;will-change:transform}.tile.dragging .chip{outline:3px solid #f2bc55;outline-offset:-3px;filter:brightness(1.05);transform:scale(1.035)}

.harvest-crate{margin:20px 0 0;overflow:hidden;border:1px solid #b6a479;border-radius:14px;background:#fff7e3;box-shadow:0 3px 0 #59492c14}
.crate-scene{min-height:96px;display:flex;align-items:flex-end;justify-content:space-between;gap:6px;padding:14px 16px;color:#fff8dd;background:linear-gradient(0deg,#163d32eb,transparent 98%),url('/luobo/farm/estate.webp') center 52%/cover}
.crate-scene h2{font:700 21px/1.2 Georgia,"Songti SC",serif;margin:0;color:inherit}.crate-scene span{font-size:12px;font-weight:700}
.harvest-crate ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:12px 8px;background:linear-gradient(#fff9e9,#f1e3bc)}
.harvest-crate li{display:grid;justify-items:center;gap:2px;color:#574b32;border-left:1px solid #c2a77755;font-size:11px}.harvest-crate li:first-child{border:0}.harvest-crate li .produce-icon{width:clamp(29px,3.6vw,42px);height:auto;aspect-ratio:1}.harvest-crate li b{font-size:16px;line-height:1.2;color:#75694d;font-variant-numeric:tabular-nums}.harvest-crate li.picked b{color:#205a3f}
@media(min-width:746px){main{align-items:start;row-gap:16px}.story{grid-column:1;grid-row:1/span 2}.machine,main>[data-benefit-shelf]{grid-column:2;width:100%;max-width:505px;justify-self:center}main>[data-benefit-shelf]{grid-row:2;margin:0}}
@media(max-width:745px){.harvest-crate{order:3;margin-top:12px}.crate-scene{min-height:67px}main>[data-benefit-shelf]{order:5}}

/* The painted booth and its live produce bins form one market counter. */
body:has(.harvest-crate){background-color:#f6eed8;background-image:radial-gradient(ellipse at 3% 78%,#c5864323,transparent 45%),repeating-linear-gradient(112deg,#936b2d05 0 1px,transparent 1px 6px)}
.harvest-crate{position:relative;border:1px solid #96653c;border-radius:13px 13px 6px 6px;box-shadow:0 5px 0 #80552d,0 11px 18px #67451d26;background:#a57144}
.crate-scene{position:relative;isolation:isolate;min-height:0;aspect-ratio:1.83;align-items:flex-end;padding:14px 16px;background:linear-gradient(0deg,#34200c77,transparent 37%),url('/luobo/match/market-stall.webp') center/cover}
.crate-scene h2{position:absolute;top:17px;left:13px;color:#fff4d0;background:#214e40;border:1px solid #ddb478;box-shadow:0 2px 0 #704620;padding:7px 10px;writing-mode:vertical-rl;letter-spacing:.14em;font-size:17px;border-radius:2px}
.crate-scene span{margin-left:auto;background:#284534ed;border:1px solid #deb77c;color:#fff1cd;padding:3px 9px;border-radius:3px}
.harvest-crate ul{gap:4px;padding:8px 7px 12px;border-top:5px ridge #c59359;background:repeating-linear-gradient(2deg,#966338 0 2px,#a77545 3px 9px,#b4834d 10px 12px)}
.harvest-crate li{position:relative;isolation:isolate;border:1px solid #794d2f!important;border-radius:4px;background:linear-gradient(#705236,#ad844d 51%,#e4bb7b 52%,#cd9a5d 98%);box-shadow:inset 0 2px 3px #49331a60,0 2px 0 #6d4b30;padding:7px 0 4px;gap:0;color:#452b18}
.harvest-crate li .produce-icon{width:clamp(30px,3.9vw,48px);filter:drop-shadow(1px 3px 1px #51381565)}
.harvest-crate li span{margin-top:2px;font-size:11px;font-weight:700}
.harvest-crate li b,.harvest-crate li.picked b{font:700 16px/1.3 Georgia,serif;color:#45321c}
@media(max-width:745px){.crate-scene{aspect-ratio:2.35}.crate-scene h2{font-size:14px;top:10px}.harvest-crate{margin-bottom:7px}}

@media(max-width:745px){
 main:has(.harvest-crate){display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);column-gap:7px;align-items:center}
 .story>.kicker,.story>h1,.story>.lead{grid-column:1;min-width:0}
 .story>.kicker{grid-row:1;font-size:8px;gap:4px}.story>h1{grid-row:2;font-size:clamp(24px,7.15vw,35px);white-space:nowrap}.story>.lead{grid-row:3;font-size:clamp(9px,2.6vw,12px)}
 .story>.harvest-crate{grid-column:2;grid-row:1/4;order:0;align-self:center;margin:0 0 6px;border:1px solid #c3ac76;border-radius:9px;background:#fff4d9;box-shadow:0 2px 0 #997c4536}
 .harvest-crate .crate-scene{position:static;aspect-ratio:auto;min-height:0;background:#285346;padding:4px 7px;align-items:center}
 .harvest-crate .crate-scene h2{position:static;writing-mode:horizontal-tb;font:700 10px/1.2 system-ui;letter-spacing:0;padding:0;border:0;box-shadow:none;background:none}
 .harvest-crate .crate-scene span{font-size:9px;padding:0;background:none;border:0}
 .harvest-crate ul{padding:4px 2px;gap:0;background:#fff1ce;border:0}
 .harvest-crate li{background:none;border:none!important;border-radius:0;box-shadow:none;padding:0}.harvest-crate li .produce-icon{width:clamp(18px,5.5vw,27px);filter:none}
 .harvest-crate li span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.harvest-crate li b,.harvest-crate li.picked b{font:700 11px/1.2 system-ui;color:#285346}
 main>.machine,main>[data-benefit-shelf],.story>.wallet,.story>.manual,.story>.specimen{grid-column:1/-1;width:100%}
 main>.machine{grid-row:4}main>[data-benefit-shelf]{grid-row:5;margin:12px 0 0}.story>.wallet{grid-row:6}.story>.manual{grid-row:7}.story>.specimen{grid-row:8}
}

.produce-icon{object-fit:contain;user-select:none;-webkit-user-drag:none}

.match-back{display:none}
@media(max-width:745px){
 header .top>.brand{display:none}
 header .top{min-height:52px;height:auto;flex-wrap:wrap;gap:2px 10px;padding-block:3px}
 header .top>.match-back{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 12px;border-radius:9px;background:#ffedba;color:#193c32;font:700 15px/1.2 system-ui;text-decoration:none}
 header .top>nav{flex-wrap:wrap;gap:8px}
}
