/* Scoped cosmetic skins preserve the portrait layout and tile hit areas. */
body[data-style-board="walnut"] .board-wrap,[data-style-board="walnut"].style-mini-board{background:repeating-linear-gradient(2deg,#6d452f 0,#885c3e 3px,#99704c 30px,#734c32 34px);border-color:#6e4a33;border-top-color:#aa7c55}
body[data-style-board="rosewood"] .board-wrap,[data-style-board="rosewood"].style-mini-board{background:repeating-linear-gradient(2deg,#9d5a45 0,#b9795c 4px,#ce936e 30px,#a7604a 34px);border-color:#8d513d;border-top-color:#d39978}
body[data-style-board="marble"] .board-wrap,[data-style-board="marble"].style-mini-board{background:repeating-linear-gradient(135deg,transparent 0 44px,#9aaca43b 45px,transparent 48px 80px),linear-gradient(115deg,#e8eadf,#fff8e7,#d1ded6);border-color:#96a497;border-top-color:#cbd6c8;box-shadow:inset 0 2px 7px #50665135,0 4px 0 #6d7e6b,0 6px 8px #55482c38}
body[data-style-background="sunrise"],.style-scene[data-style-background="sunrise"]{background-image:url('assets/bakery-portrait.png')!important;background-position:center;background-size:cover}
body[data-style-background="twilight"],.style-scene[data-style-background="twilight"]{background-image:linear-gradient(#34365e88,#583c6880),url('assets/bakery-wide.png')!important;background-position:center;background-size:cover}
body[data-style-background="linen"],.style-scene[data-style-background="linen"]{background-color:#efe3c4;background-image:repeating-linear-gradient(0deg,#79936c30 0 18px,transparent 18px 36px),repeating-linear-gradient(90deg,#79936c30 0 18px,transparent 18px 36px)!important;background-size:36px 36px}
body[data-style-frame="sage"] .game,[data-style-frame="sage"].style-mini-frame{background:linear-gradient(145deg,#edf0d8f5,#cbd8b8f5);border-color:#86986c;box-shadow:0 4px 0 #637553,0 10px 25px #3c1b1030}
body[data-style-frame="rose"] .game,[data-style-frame="rose"].style-mini-frame{background:linear-gradient(145deg,#ffeddef5,#efd0c5f5);border-color:#b98473;box-shadow:0 4px 0 #966454,0 10px 25px #3c1b1030}
body[data-style-frame="porcelain"] .game,[data-style-frame="porcelain"].style-mini-frame{background:radial-gradient(circle at 8px 8px,#7a9cba35 2px,transparent 3px) 0 0/20px 20px,linear-gradient(#f1f1e4f5,#d3e2e5f5);border-color:#7495aa;box-shadow:0 4px 0 #536e85,0 10px 25px #3c1b1030}
.style-wallet{font-size:12px!important;margin:8px 0 14px!important}.style-wallet b{color:#785524;font-size:20px}.style-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px}dialog .style-tabs button{font-size:11px;min-height:40px;margin:0;padding:8px 4px;border:1px solid #b39a6e;background:#f4e4bf;color:#644b32;box-shadow:0 2px #c0a16f}dialog .style-tabs button[aria-pressed="true"]{background:linear-gradient(#889b70,#627850);color:#fff9e5;border-color:#60734e}.style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}dialog .style-card{min-width:0;margin:0;padding:5px 5px 10px;background:#ffefce;color:#624932;border:1px solid #c4a16d;box-shadow:0 3px #b68f5f;border-radius:13px;text-align:center}.style-card strong{display:block;font-size:12px;line-height:1.35;margin-top:8px}.style-card>span{display:block;font-size:10px;color:#776040;margin-top:5px}.style-scene{height:100px;padding:10px 9px 13px;background:#96623d url('assets/supplied-background.png') center/cover;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden}.style-mini-frame{padding:9px 8px 12px;border-radius:8px;border:2px solid #b5824e;background:linear-gradient(#fff4d8,#f6dfb5);width:90%}.style-mini-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;border:3px solid #ac6c38;border-radius:6px;background:repeating-linear-gradient(2deg,#bd8249 0,#d39e66 18px,#ca9056 22px);box-shadow:inset 0 2px 4px #542c2140,0 2px #704422}.style-mini-board svg{display:block;width:100%;height:27px;overflow:visible;filter:drop-shadow(0 2px 1px #593c3d55)}.style-swatches{display:flex;justify-content:center;gap:7px;margin:8px 0 3px}.style-swatches i{width:18px;height:18px;border:2px solid #fff7df;border-radius:50%;box-shadow:0 1px 3px #65452b66}.style-detail{text-align:center}.style-detail h2{font-size:26px}.style-scene-large{height:230px;padding:20px}.style-scene-large .style-mini-frame{width:170px;padding:15px}.style-scene-large .style-mini-board svg{height:60px}.style-detail p{font-size:13px;line-height:1.5}.style-detail>button{min-height:44px}#confirmStyle{width:100%;margin:5px 0}#stylePurchaseMessage{color:#59733e;font-size:12px;min-height:18px}.style-note{font-size:11px!important;line-height:1.5!important;color:#80684b;margin:12px 0!important}@media(max-width:360px){.style-scene{padding:5px;height:92px}.style-card strong{font-size:11px}.style-grid{gap:10px 7px}.style-scene-large{height:215px}}
/* Keep catalog cards light so prices remain readable against the café controls. */
dialog .style-grid .style-card{margin:0;padding:5px 5px 10px;background:#ffefce;color:#624932;border:1px solid #c4a16d;box-shadow:0 3px #b68f5f;border-radius:13px}dialog .style-grid .style-card strong{color:#624932}dialog .style-grid .style-card>span{color:#776040}
/* A small top tray replaces the shop, revealing the actual paused game below. */
dialog #previewOnBoard{width:100%;min-height:44px;margin:0 0 8px;background:#fff5d9;color:#635033;border:2px solid #93a377;box-shadow:0 3px #c1a477}
dialog.style-live-preview{position:fixed;inset:8px 0 auto;margin:0 auto;width:calc(100% - 16px);max-width:440px;max-height:none;padding:12px 14px;border-radius:18px;overflow:visible;box-sizing:border-box;box-shadow:0 4px 0 #aa8051,0 7px 18px #49342238;animation:none;transform:none}
dialog.style-live-preview::backdrop{background:transparent;backdrop-filter:none}
.style-live-heading{padding-right:28px;text-align:left;line-height:1.35}.style-live-heading b{display:block;font-size:15px;color:#68482e}.style-live-heading small{display:block;font-size:10px;color:#7b654b;margin:3px 0 9px}
.style-live-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}dialog .style-live-actions button{margin:0;min-height:44px;font-size:13px;padding:8px 10px}dialog .style-live-actions #stylePreviewBack{background:#f5e4be;color:#665035;box-shadow:0 3px #bd9a66}dialog.style-live-preview .close{top:7px;right:8px}
.style-unlock{position:fixed;z-index:1000;top:16px;left:50%;width:max-content;max-width:calc(100vw - 32px);padding:12px 20px;display:flex;align-items:center;gap:12px;border:2px solid #d5a446;border-radius:18px;background:linear-gradient(135deg,#fff8db,#ffe8a6);box-shadow:0 4px 0 #ab7e36,0 8px 22px #59402630;color:#6b492a;pointer-events:none;transform:translateX(-50%);animation:style-unlocked 1.4s ease both}
dialog .style-unlock{position:fixed}.style-unlock b{display:block;font-size:19px}.style-unlock div>span{display:block;font-size:11px;margin-top:3px}.style-unlock-star{font-size:34px;color:#dfa32b;filter:drop-shadow(0 2px #a46c25);animation:style-star .55s ease-out}.style-unlock i{position:absolute;left:50%;top:50%;color:#e3a332;font-style:normal;font-size:15px;--angle:calc(var(--spark)*60deg);animation:style-spark .65s ease-out both}
@keyframes style-unlocked{0%{opacity:0;transform:translate(-50%,-10px) scale(.85)}18%{opacity:1;transform:translate(-50%,0) scale(1.04)}28%,78%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px)}}
@keyframes style-star{0%{transform:rotate(-35deg) scale(.4)}65%{transform:rotate(12deg) scale(1.25)}100%{transform:rotate(0) scale(1)}}
@keyframes style-spark{0%{opacity:0;transform:rotate(var(--angle)) translateX(20px) scale(.3)}25%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateX(85px) scale(.6)}}
@media(prefers-reduced-motion:reduce){.style-unlock,.style-unlock-star{animation:none}.style-unlock i{display:none}}
dialog.style-live-preview,dialog.style-live-preview::backdrop{touch-action:pan-y;user-select:none}
dialog.style-live-preview{padding:8px 12px 6px}
.style-compare{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:5px;padding-right:22px;margin-bottom:8px}
dialog .style-compare button{margin:0;padding:0;min-width:44px;min-height:44px;font-size:29px;line-height:1;background:#f8edcf;color:#765534;box-shadow:0 2px #bea174;border:1px solid #c4a474;border-radius:13px}
.style-compare .style-live-heading{padding:0;text-align:center;min-width:0}.style-compare .style-live-heading b{font-size:13px;line-height:1.2}.style-compare .style-live-heading small{font-size:10px;margin:2px 0}.style-preview-price{display:block;font-size:11px;font-weight:700;color:#866020}
dialog .style-swipe-tip{font-size:10px;line-height:1.2;text-align:center;margin:7px 0 0;color:#7b654b}
.style-live-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding-right:24px;margin-bottom:8px}
dialog .style-live-categories button{margin:0;min-height:44px;min-width:0;padding:4px 2px;border:1px solid #c4a474;border-radius:10px;background:#f8edcf;color:#765534;box-shadow:0 2px #bea174;font-size:11px;line-height:1.2}
dialog .style-live-categories button[aria-pressed="true"]{background:linear-gradient(#899c70,#61794e);color:#fff9e7;border-color:#63794f;box-shadow:0 2px #536744}
dialog .style-live-categories button:focus-visible{outline:2px solid #765534;outline-offset:2px}
dialog.style-live-preview .style-compare{padding-right:0}
@media(max-width:380px){dialog .style-live-categories button{font-size:10px}.style-live-categories{gap:3px}}
/* Picnic prints use the supplied artwork behind, never over, the playable board. */
.frame-pattern{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;overflow:hidden;z-index:-1;pointer-events:none;filter:saturate(.62) contrast(.92) brightness(1.03)}
body[data-style-frame^="picnic-"] .game,.style-mini-frame[data-style-frame^="picnic-"]{position:relative;isolation:isolate;background:#f9e9b8;border-color:#b5824e;box-shadow:0 4px 0 #87552f,0 10px 25px #3c1b1030}
body[data-style-frame^="picnic-"] .game-top,body[data-style-frame^="picnic-"] .scoreboard,body[data-style-frame^="picnic-"] #comboBanner,body[data-style-frame^="picnic-"] .instruction,body[data-style-frame^="picnic-"] .play-options{background:#fff5ddf5;border-radius:9px}
body[data-style-frame^="picnic-"] .game-top{padding:5px 7px 0;margin-bottom:5px}
body[data-style-frame^="picnic-"] .instruction{padding:5px 6px}
body[data-style-frame^="picnic-"] .pantry{background:linear-gradient(#fff3d9,#efd6ab)}
body[data-style-frame^="picnic-"] .controls{border-color:transparent}
.style-mini-frame[data-style-frame^="picnic-"]{padding:12px 10px 15px}
.style-scene-large .style-mini-frame[data-style-frame^="picnic-"]{padding:20px}
dialog .booster-colors button,dialog .practice-colors button{text-shadow:0 1px #fff;}

/* Crisp, lightweight flower illustrations in every collection card. */
.flower-art{display:block;width:64px;height:70px;filter:drop-shadow(0 2px 1px #34442d28)}.decor-shop button>span{line-height:0}.decor-shop button{min-height:142px}.table .flower-art{width:58px;height:64px}

/* A tiny collected garden occupies the existing gap between the two controls. */
.play-options{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:5px}
.flower-garden{display:flex;flex-wrap:wrap;align-items:end;justify-content:center;align-content:center;max-width:190px;justify-self:center;min-width:0;gap:0 1px;padding:4px 2px;pointer-events:none}
.garden-flower{display:block;position:relative;width:30px;height:34px;border-radius:50% 50% 5px 5px;transform-origin:50% 95%}
.garden-flower .flower-art{width:30px;height:34px;filter:drop-shadow(0 1px 0 #684b3329);transform-origin:50% 90%;animation:garden-sway 5.6s ease-in-out infinite;animation-delay:-1.4s}
.garden-flower:nth-child(3n+2) .flower-art{animation-duration:6.4s;animation-delay:-3.8s}
.garden-flower:nth-child(3n) .flower-art{animation-duration:5.1s;animation-delay:-2.6s}
@keyframes garden-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.garden-flower.is-equipped{background:radial-gradient(ellipse at 50% 75%,#e8bc5e40,transparent 75%)}
.garden-flower.is-equipped:after{content:'';position:absolute;bottom:0;left:8px;right:8px;height:2px;border-radius:2px;background:#ae8245}
.garden-flower.is-blooming{animation:garden-bloom .65s cubic-bezier(.2,.8,.3,1) both}
@keyframes garden-bloom{0%{transform:scale(.35) rotate(-9deg);opacity:.3}55%{transform:scale(1.18) rotate(4deg);opacity:1}80%{transform:scale(.96) rotate(-2deg)}100%{transform:scale(1);opacity:1}}
.play-options #timer:not([hidden]){grid-column:1/-1;justify-self:center}
@media(max-width:360px){.garden-flower,.garden-flower .flower-art{width:25px;height:28px}.flower-garden{max-width:160px}}
@media(prefers-reduced-motion:reduce){.garden-flower.is-blooming,.garden-flower .flower-art{animation:none}}

/* Flower taps stay inside the garden; they never interact with the toast grid. */
.flower-garden{pointer-events:auto}
.play-options button.garden-flower{display:flex;align-items:center;justify-content:center;width:28px;height:36px;min-width:0;min-height:36px;flex:0 0 28px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}
.play-options button.garden-flower:focus-visible{outline:2px solid #937345;outline-offset:1px}
.garden-flower.is-tapped{animation:garden-tap .55s ease-out both}
.garden-flower.is-tapped:after{content:'✦';position:absolute;left:50%;top:0;color:#c8933f;font-size:13px;pointer-events:none;animation:garden-spark .55s ease-out both}
@keyframes garden-tap{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(.9) rotate(-7deg)}55%{transform:scale(1.16) rotate(6deg)}80%{transform:scale(1.02) rotate(-3deg)}}
@keyframes garden-spark{0%{opacity:0;transform:translate(-50%,4px) scale(.4)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-9px) scale(1)}}
@media(max-width:360px){.play-options button.garden-flower{width:25px;height:30px;min-height:30px;flex-basis:25px}}
@media(prefers-reduced-motion:reduce){.garden-flower.is-tapped{animation:none}.garden-flower.is-tapped:after{animation:none;content:none}.play-options button.garden-flower:active{background:#e8bc5e40}}

.flower-garden{touch-action:none;user-select:none;-webkit-user-select:none;position:relative;overflow:hidden;column-gap:0}
.garden-trail-spark{position:absolute;pointer-events:none;font-style:normal;font-size:11px;line-height:1;color:#c79e56;animation:garden-trail .3s ease-out both}
@keyframes garden-trail{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}25%{opacity:.8}100%{opacity:0;transform:translate(-50%,calc(-50% - 7px)) scale(.25)}}
.flower-garden.garden-complete .flower-art{animation:garden-finish .44s ease-in-out both}
.flower-garden.garden-complete:after{content:'✧   ·   ✧';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:5px;color:#bf944a;pointer-events:none;animation:garden-finish-glint .44s ease-out both}
@keyframes garden-finish{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-2px) scale(1.07)}}
@keyframes garden-finish-glint{0%{opacity:0;transform:translateY(4px)}35%{opacity:.65}100%{opacity:0;transform:translateY(-7px)}}
@media(prefers-reduced-motion:reduce){.flower-garden.garden-complete .flower-art{animation:none}.flower-garden.garden-complete:after{display:none;animation:none}}
@media(prefers-reduced-motion:reduce){.garden-trail-spark{display:none;animation:none}}
.play-options button.garden-flower{touch-action:none}
.garden-flower.is-tapped{animation-duration:var(--flower-react,440ms)}
@keyframes garden-tap{0%,100%{transform:translateY(0) scale(1) rotate(0)}25%{transform:scale(.92) rotate(var(--flower-tilt,6deg))}55%{transform:translateY(var(--flower-lift,-3px)) scale(1.13) rotate(calc(var(--flower-tilt,6deg) * -.7))}80%{transform:scale(1.02) rotate(calc(var(--flower-tilt,6deg) * .3))}}


/* All equipped flowers grow together in one small grassy garden bed. */
.flower-garden:not(:empty){min-width:98px;max-width:200px;padding:8px 13px 11px;border-radius:45% 45% 12px 12px / 16% 16% 12px 12px;background:radial-gradient(ellipse at 30% 80%,#b6ca8866 0 34%,transparent 65%),radial-gradient(ellipse at 65% 95%,#76935788 0 58%,transparent 70%),linear-gradient(to top,#a77b50 0 4px,#d0aa74 4px 7px,#8fa566 7px 15px,#d8ddb26b 15px,transparent 95%);box-shadow:0 2px 0 #80603b55,inset 0 -1px #f4d9a7}
.flower-garden:not(:empty):before{content:'';position:absolute;left:3px;right:3px;bottom:6px;height:20px;pointer-events:none;z-index:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 22'%3E%3Cpath d='M0 22Q3 13 1 8Q8 14 8 22M7 22Q9 8 15 3Q12 16 16 22M17 22Q18 13 23 10L22 22M26 22Q24 11 29 5L31 22M32 22L36 12V22' fill='%237b9959'/%3E%3Cpath d='M3 22L6 14L8 22M12 22Q16 12 18 11L17 22M25 22L24 15L29 22M33 22L34 17L36 22' fill='%23a3b86f'/%3E%3C/svg%3E") left bottom/36px 20px repeat-x}
.flower-garden .flower-pot,.flower-garden .flower-art>ellipse:first-child{display:none}
.flower-garden .garden-flower{z-index:1}
.flower-garden .garden-flower .flower-art{width:30px;height:34px;flex-shrink:0;transform-origin:50% 94%}
.flower-garden.garden-complete:after,.garden-trail-spark{z-index:2}
@media(max-width:360px){.flower-garden:not(:empty){min-width:78px;max-width:160px;padding:6px 7px 10px}.flower-garden .garden-flower .flower-art{width:25px;height:28px}}

/* A framed miniature flower bed, with soft breeze and a short swipe swish. */
.flower-garden:not(:empty){border:2px solid #b9915e;border-radius:12px;padding:7px 11px 10px;background:linear-gradient(180deg,#f6edcd 0%,#e9e8c3 58%,#b2bf8b 85%,#9ba976 100%);box-shadow:0 2px 0 #916c4680,inset 0 0 0 2px #fff4d4,inset 0 -5px 0 #b99768;isolation:isolate}
.flower-garden:not(:empty):before{left:-2px;right:-2px;bottom:4px;height:17px;opacity:.8;background-size:32px 18px;transform-origin:50% 100%;animation:grass-breeze 5.6s ease-in-out infinite}
.flower-garden.grass-brushed:not(:empty):before{animation:grass-swish .42s ease-in-out infinite}
@keyframes grass-breeze{0%,100%{transform:skewX(-3deg) translateX(-.5px)}50%{transform:skewX(3deg) translateX(.5px)}}
@keyframes grass-swish{0%,100%{transform:skewX(-3deg)}40%{transform:skewX(9deg) translateX(1px)}75%{transform:skewX(-6deg)}}
@media(max-width:360px){.flower-garden:not(:empty){padding:6px 5px 9px}}
@media(prefers-reduced-motion:reduce){.flower-garden:not(:empty):before,.flower-garden.grass-brushed:not(:empty):before{animation:none}}

/* Raised wooden beds: a visible soil surface, sparse grass, and inset joinery. */
body,.garden-planter-preview{--garden-wood:#b78551;--garden-edge:#805331;--garden-light:#e2b77c;--garden-grain:#925d3538}
[data-style-garden="walnut"]{--garden-wood:#78533d;--garden-edge:#51382c;--garden-light:#b08a62;--garden-grain:#4a302944}
[data-style-garden="sage"]{--garden-wood:#8c9c77;--garden-edge:#5b7152;--garden-light:#c1cda3;--garden-grain:#53684a33}
[data-style-garden="blue"]{--garden-wood:#7899a6;--garden-edge:#496c7b;--garden-light:#b4d0d5;--garden-grain:#42677933}
.flower-garden:not(:empty),.garden-planter-preview{border:5px solid var(--garden-wood);border-bottom-width:9px;border-radius:10px;background:radial-gradient(ellipse at 25% 70%,#c69b7066 0 1px,transparent 2px) 0 0/13px 11px,radial-gradient(ellipse at 65% 30%,#49332455 0 1px,transparent 2px) 0 0/17px 13px,linear-gradient(#6c4d37,#99704c);box-shadow:0 2px 0 var(--garden-edge),0 3px 4px #64432c26,inset 0 2px 3px #32251a70;outline:1px solid var(--garden-edge);outline-offset:-1px;padding:5px 8px 3px}
.flower-garden:not(:empty):before{bottom:0;height:12px;background-size:42px 15px;opacity:.7}
.flower-garden:not(:empty){max-width:200px}
.garden-style-scene{display:flex;align-items:center;justify-content:center;min-height:100px;padding:12px 4px;background:linear-gradient(#f8edcf,#ece1bd);border-radius:9px}
.garden-planter-preview{position:relative;display:flex;justify-content:center;align-items:end;overflow:hidden;min-width:105px}
.garden-planter-preview .flower-art{width:30px;height:39px;filter:drop-shadow(0 1px 1px #36261e44)}
.garden-planter-preview .flower-pot,.garden-planter-preview .flower-art>ellipse:first-child{display:none}
.garden-planter-preview:before{content:'';position:absolute;bottom:0;left:0;right:0;height:9px;background:repeating-linear-gradient(75deg,transparent 0 7px,#82955e 8px 10px,transparent 11px 20px);pointer-events:none}
.garden-style-large{min-height:180px}.garden-style-large .garden-planter-preview{padding:12px 16px 6px}.garden-style-large .flower-art{width:45px;height:58px}
.style-live-categories{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:360px){.flower-garden:not(:empty){padding:4px 3px 3px;max-width:160px}}
/* Keep the live-preview toolbar above the garden on portrait screens. */
.style-live-categories{grid-template-columns:repeat(5,minmax(0,1fr))}
dialog .style-live-categories button{font-size:10px;white-space:nowrap;overflow-wrap:normal}
/* In phone preview the paused HUD steps aside, revealing the real garden and board. */
@media(max-width:640px){
 body.style-preview-active header,body.style-preview-active .intro,body.style-preview-active main>aside,body.style-preview-active footer{display:none}
 body.style-preview-active main{padding-top:var(--style-preview-offset,266px)}
 body.style-preview-active .game>:not(.play-options):not(.board-and-boosters):not(#frameArtwork){display:none!important}
 body.style-preview-active .play-options{margin:4px 0 12px;min-height:48px;grid-template-columns:1fr}
 body.style-preview-active .play-options>button,body.style-preview-active #timer{display:none!important}
 body.style-preview-active .garden-surround{grid-column:1;justify-self:center}
 body.style-preview-active .board-and-boosters{margin-bottom:10px}
 dialog.style-live-preview{padding-bottom:9px}
}

/* Garden rims use the cutting boards' materials; stable shop IDs keep purchases. */
body,.garden-planter-preview{--garden-rim:repeating-linear-gradient(2deg,#bd8249 0,#d39e66 18px,#ca9056 22px);--garden-edge:#895c36;--garden-light:#edc58b}
[data-style-garden="walnut"]{--garden-rim:repeating-linear-gradient(2deg,#6d452f 0,#885c3e 3px,#99704c 30px,#734c32 34px);--garden-edge:#533725;--garden-light:#b48a61}
[data-style-garden="sage"]{--garden-rim:repeating-linear-gradient(2deg,#9d5a45 0,#b9795c 4px,#ce936e 30px,#a7604a 34px);--garden-edge:#8d513d;--garden-light:#e3ad8d}
[data-style-garden="blue"]{--garden-rim:repeating-linear-gradient(135deg,transparent 0 15px,#9aaca44a 16px,transparent 19px 35px),linear-gradient(115deg,#e8eadf,#fff8e7,#d1ded6);--garden-edge:#7d9181;--garden-light:#f6f9ec}
.flower-garden:not(:empty),.garden-planter-preview{border:8px solid transparent;border-bottom-width:10px;border-radius:13px;background:linear-gradient(#6c4d37aa,#99704caa) padding-box,var(--garden-rim) border-box;box-shadow:inset 0 2px 4px #30201580,0 3px 0 var(--garden-edge),0 4px 5px #50352133;outline:1px solid var(--garden-edge);outline-offset:-1px;padding:4px 5px 3px}
/* Fine inset groove follows the board rim without touching the flowers. */
.flower-garden:not(:empty){background:radial-gradient(circle,#d5a57680 0 .7px,transparent 1.2px) 0 0/11px 9px padding-box,linear-gradient(#6c4d37,#99704c) padding-box,var(--garden-rim) border-box}
.garden-planter-preview{background:radial-gradient(circle,#d5a57680 0 .7px,transparent 1.2px) 0 0/11px 9px padding-box,linear-gradient(#6c4d37,#99704c) padding-box,var(--garden-rim) border-box}
@media(max-width:360px){.flower-garden:not(:empty){border-width:6px;border-bottom-width:8px;padding:4px 2px 3px}}

/* Fuller planting within the same fixed flower slots and planter footprint. */
.flower-garden .garden-flower .flower-art{width:36px;height:40px;max-width:none;overflow:visible}
.flower-garden:not(:empty):before,.garden-planter-preview:before{left:-6px;right:-6px;bottom:-5px;height:calc(100% + 6px);opacity:.82;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 50'%3E%3Cdefs%3E%3Cg id='g'%3E%3Cpath d='M0 12Q-5 7-5 2Q0 5 1 12M1 12Q0 4 5 0Q3 7 4 12M4 12Q7 4 10 4L7 12' fill='%237e9757'/%3E%3Cpath d='M0 12L-1 6L3 12M4 12L7 7L6 12' fill='%23acba78'/%3E%3C/g%3E%3C/defs%3E%3Cuse href='%23g' x='5' y='18'/%3E%3Cuse href='%23g' x='22' y='31'/%3E%3Cuse href='%23g' x='49' y='24'/%3E%3Cuse href='%23g' x='72' y='34'/%3E%3Cuse href='%23g' x='93' y='27'/%3E%3Cuse href='%23g' x='110' y='15'/%3E%3Cuse href='%23g' transform='translate(35 9) scale(.65)'/%3E%3Cuse href='%23g' transform='translate(87 8) scale(.6)'/%3E%3C/svg%3E") center bottom/120px 50px repeat-x;pointer-events:none}
.garden-planter-preview .flower-art{width:34px;height:39px}
@media(max-width:360px){.flower-garden .garden-flower .flower-art{width:30px;height:33px}}

/* Tiny outer corner tufts stay beside the frame, never below the garden. */
.garden-surround{position:relative;justify-self:center;min-width:0;max-width:100%;width:max-content}
.garden-surround:has(.flower-garden:not(:empty)):after{content:'';position:absolute;inset:2px -5px 0;pointer-events:none;z-index:2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M5 16Q1 10 1 5Q5 8 6 15Q4 5 9 1Q8 10 9 15Q10 8 14 7L11 16' fill='%23849762'/%3E%3Cpath d='M6 16L4 10L8 16M9 16L11 10L10 16' fill='%23b2be82'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M3 16Q0 10 1 6L5 15Q4 6 8 2L8 15Q10 9 13 8L10 16' fill='%23849762'/%3E%3Cpath d='M5 16L3 11L7 16M8 16L11 10L9 16' fill='%23b2be82'/%3E%3C/svg%3E");background-position:left bottom,right bottom;background-size:12px 15px,11px 13px;background-repeat:no-repeat;opacity:.85}
.garden-surround:has(.flower-garden:not(:empty)):before{content:'';position:absolute;left:-3px;top:1px;width:7px;height:9px;border-left:2px solid #91a16b;border-right:2px solid #b3bf85;border-radius:70% 15% 0 0;transform:rotate(-18deg);pointer-events:none;z-index:2}

/* Corner grass shares the garden's brush state without moving its layout. */
.garden-surround:has(.flower-garden:not(:empty)):after{transform-origin:50% 100%;animation:corner-grass-breeze 6.2s ease-in-out infinite}
.garden-surround:has(.flower-garden:not(:empty)):before{transform-origin:50% 100%;animation:corner-sprig-breeze 5.7s ease-in-out infinite}
.garden-surround:has(.grass-brushed):after{animation:corner-grass-brush .42s ease-in-out infinite}
.garden-surround:has(.grass-brushed):before{animation:corner-sprig-brush .42s ease-in-out infinite}
@keyframes corner-grass-breeze{0%,100%{transform:skewX(-2deg)}50%{transform:skewX(2deg)}}
@keyframes corner-grass-brush{0%,100%{transform:skewX(-2deg)}40%{transform:skewX(5deg)}75%{transform:skewX(-3deg)}}
@keyframes corner-sprig-breeze{0%,100%{transform:rotate(-22deg)}50%{transform:rotate(-14deg)}}
@keyframes corner-sprig-brush{0%,100%{transform:rotate(-18deg)}40%{transform:rotate(-7deg)}75%{transform:rotate(-24deg)}}
@media(prefers-reduced-motion:reduce){.garden-surround:has(.flower-garden):before,.garden-surround:has(.flower-garden):after{animation:none}}

/* The visitor and its flight remain clipped inside the planter. */
.garden-butterfly{position:absolute;left:50%;top:1px;width:13px;height:12px;margin-left:-6px;z-index:3;pointer-events:none;animation:butterfly-arrive .85s ease-out both}
.garden-butterfly svg{display:block;width:100%;height:100%;overflow:visible}
.butterfly-wings{transform-origin:12px 10px;animation:butterfly-wings 1.8s ease-in-out infinite}
.garden-butterfly.is-leaving{animation:butterfly-leave .55s ease-in both}
.garden-butterfly.is-leaving .butterfly-wings{animation-duration:.12s}
@keyframes butterfly-wings{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.55)}}
@keyframes butterfly-arrive{0%{opacity:0;transform:translate(-14px,3px) rotate(-15deg)}45%{opacity:.9;transform:translate(-6px,-3px) rotate(8deg)}100%{opacity:.95;transform:translate(0,0)}}
@keyframes butterfly-leave{0%{opacity:.95;transform:translate(0,0)}45%{opacity:.7;transform:translate(7px,-4px) rotate(12deg)}100%{opacity:0;transform:translate(18px,-10px) rotate(-8deg)}}
@media(prefers-reduced-motion:reduce){.garden-butterfly{display:none}.butterfly-wings{animation:none}}

/* Used items keep a readable badge instead of fading the entire button. */
.booster-item.is-used:disabled{opacity:1;cursor:default;border-color:#899773;background:linear-gradient(#eee7cd,#dcd8bd);box-shadow:0 2px #7c86604d}
.booster-item.is-used svg{opacity:.48;filter:grayscale(.3)}
.booster-item.is-used>span{color:#62694f}
.booster-item.is-used b{right:-2px;top:-5px;background:#677d53;color:#fff9e6;border:1px solid #536943;font-size:9px;line-height:1.15;padding:3px 4px;white-space:nowrap;box-shadow:0 1px 1px #39482b33}
.booster-item.just-locked{animation:booster-lock .45s ease-out both;animation-delay:var(--lock-delay,0ms)}
.booster-item.just-locked b{animation:booster-check .45s ease-out both;animation-delay:var(--lock-delay,0ms)}
@keyframes booster-lock{0%,100%{transform:scale(1)}30%{transform:scale(.94)}60%{transform:scale(1.045)}}
@keyframes booster-check{0%{opacity:0;transform:scale(.6)}55%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.booster-item.just-locked,.booster-item.just-locked b{animation:none}}
.bakery-trail .boss-tag{display:block;font:bold 9px Arial;letter-spacing:.5px;color:#fff3cc;background:#98513c;border-radius:5px;padding:2px 5px;margin:2px auto;width:max-content}
.bakery-trail button:has(.boss-tag){border:2px solid #a76540;box-shadow:0 4px #815133,inset 0 0 0 2px #f8dc99}

/* A bounded, one-shot celebration: no board overlay or input delay. */
.boss-victory{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:12px 10px 14px;margin:0 0 14px;border:2px solid #be8a42;border-radius:20px;background:radial-gradient(ellipse at 50% 30%,#fff6cf,#ebc98e);box-shadow:inset 0 0 0 3px #fff0bd,0 4px 0 #9c70403b}
.boss-victory h2{font-size:clamp(23px,6vw,29px)!important;margin:5px 0!important;color:#80502d}
.boss-victory small{font:bold 9px Arial;letter-spacing:1.8px;color:#93632c}
.boss-victory p{font-size:12px!important;margin:6px 0 0!important;color:#655637}
.boss-medal{position:relative;display:grid;place-items:center;width:86px;height:86px;margin:8px auto 6px;border-radius:50%;border:3px solid #c49342;background:#ffedaf;box-shadow:0 5px #b1803c;font-size:48px;animation:boss-crown-pop .65s cubic-bezier(.2,.8,.3,1) both}
.boss-medal span{position:absolute;top:-17px;font-size:30px;color:#986024;text-shadow:0 2px #fff0b5;transform:rotate(-8deg)}
.boss-burst{position:absolute;inset:0;pointer-events:none;z-index:-1}
.boss-burst i{position:absolute;left:50%;top:65px;width:7px;height:13px;border-radius:3px;background:#a45b49;opacity:0;animation:boss-sprinkle .85s ease-out var(--delay) both}
.boss-burst i:nth-child(3n){background:#8a9a62}.boss-burst i:nth-child(3n+1){background:#daa747}
@keyframes boss-crown-pop{0%{transform:scale(.4) rotate(-12deg);opacity:0}60%{transform:scale(1.18) rotate(6deg);opacity:1}82%{transform:scale(.96) rotate(-2deg)}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes boss-sprinkle{0%{transform:rotate(var(--angle)) translateY(18px) rotate(0);opacity:0}15%{opacity:1}100%{transform:rotate(var(--angle)) translateY(140px) rotate(150deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.boss-medal{animation:none}.boss-burst{display:none}}

.bakery-trail .boss-crown{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:32px;color:#a66c25;text-shadow:0 2px #ffeab0;line-height:32px}.bakery-trail button:has(.boss-crown){overflow:visible;border-color:#aa742d!important}.bakery-trail .boss-tag{font-size:8px;margin:1px auto}.bakery-trail .boss-record{position:absolute;top:38px;right:calc(100% + 12px);width:85px;font-size:9px;line-height:16px;color:#78502a;background:#fff0c8;border:1px solid #bd9653;border-radius:10px;padding:5px 3px;box-shadow:0 3px #9b6d3433}.boss-record strong{font-size:12px}.boss-personal-best{text-align:center;border:1px solid #c59b55;border-radius:12px;padding:10px;background:#ffedbb;color:#80502d;font-weight:bold}.boss-personal-best small{display:block;font-size:11px;font-weight:normal;margin-top:5px}

.boss-best-notice{font:bold 11px/1.4 Arial;text-align:center;color:#805628;background:#f9e5b4;border:1px solid #caa466;border-radius:9px;padding:5px 7px;margin:3px 0;pointer-events:none}.boss-best-notice.record-pop{animation:boss-record-pop .65s ease-out}.boss-new-record{display:block;color:#7a632e;font-size:15px;margin:9px 0;animation:boss-record-pop .65s ease-out}.boss-new-record span{display:block;font-size:12px;margin-top:4px;line-height:1.4}@keyframes boss-record-pop{0%{transform:scale(.96);opacity:.65}45%{transform:scale(1.035);opacity:1}100%{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.boss-best-notice.record-pop,.boss-new-record{animation:none}}

.boss-best-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;font-size:10px;min-height:31px;box-sizing:border-box}.boss-best-notice[hidden]{display:none}.boss-best-notice>span{flex:1;line-height:1.4}.boss-best-notice>span+span{border-left:1px solid #caa46680;padding-left:8px}.boss-best-notice strong{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
