/* Filled Lucide flame masks animate independently from garden lanterns. */
.tile .tile-flame,.tile .tile-weeds{position:absolute;pointer-events:none;z-index:0;display:none}
.tile .letter,.tile .tile-value{z-index:2}
.tile .tile-flame{width:91%;height:100%;opacity:.8;transform-origin:50% 85%;filter:drop-shadow(0 0 7px #ff9c28);animation:flame-flicker 1.9s ease-in-out infinite;animation-delay:var(--motion-delay,0s)}
.flame-outer,.flame-core{position:absolute;inset:0;mask:url('/assets/flame.svg') center/contain no-repeat;-webkit-mask:url('/assets/flame.svg') center/contain no-repeat;background:linear-gradient(0deg,#ffd15c 8%,#ff961e 50%,#ffeab0 100%)}
.flame-core{inset:30% 23% 4%;background:linear-gradient(0deg,#fffbe3,#fff0a4 65%,#ffe989);opacity:.9;transform-origin:50% 90%;animation:flame-heart 1.35s ease-in-out infinite alternate;animation-delay:var(--motion-delay,0s)}
.tile:is(.bonus2,.bonus3,.lantern-target):not(.weeds) .tile-flame{display:block}
.tile:is(.bonus2,.bonus3,.lantern-target):not(.weeds){background:#efd39a}
.tile:is(.bonus2,.bonus3,.lantern-target):not(.weeds)::before{background:radial-gradient(ellipse at 50% 55%,#a46523,#67471e 48%,#1c3135 88%);box-shadow:inset 0 0 13px #ffe5a245}
.tile.bonus3:not(.weeds)::before{background:radial-gradient(ellipse,#ce8536,#775222 48%,#263b3c 90%)}
.tile:is(.bonus2,.bonus3,.lantern-target) .letter{text-shadow:0 2px 2px #160e06,0 0 5px #160e06,0 0 12px #160e06}
.tile:is(.bonus2,.bonus3,.lantern-target) .tile-value{color:#fff0c3;text-shadow:0 1px 3px #120d04}
.tile:is(.selected,.blast-zone,.pocket-target) .tile-flame{opacity:.16;animation:none}
.tile:is(.selected,.blast-zone,.pocket-target) .tile-weeds{opacity:.18;animation:none}
.tile:is(.selected,.blast-zone,.pocket-target)::before{background:linear-gradient(145deg,#fff1c7,#efc070 58%,#d49546)!important}
.tile:is(.selected,.blast-zone,.pocket-target) .letter,.tile:is(.selected,.blast-zone,.pocket-target) .tile-value{color:#273633;text-shadow:none}
.board-heading .danger{color:#d9eba5!important}
.board.overgrown .tile .tile-flame{animation:none;filter:grayscale(1) brightness(.3)}
.board.overgrown .tile .tile-weeds{animation:none}
.board.overgrown~.bottom-line{background:#abc47c}
.garden-overgrown .night-scene{opacity:.3}
.garden-overgrown .lantern img{animation:none;filter:saturate(.1) brightness(.35);transition:filter 1s}
.garden-overgrown .lantern::before{opacity:0}
.lantern.is-lit img{animation:garden-flame 4s ease-in-out infinite alternate}
.lantern.newly-lit img{animation:lantern-awakens 1s ease both,garden-flame 4s 1s ease-in-out infinite alternate}
.garden-overgrown .lantern img{animation:none;filter:saturate(.1) brightness(.35)}
.board.growing-over .tile .tile-flame{animation:lantern-withers .6s var(--overgrow-delay,0s) both}
@keyframes lantern-withers{from{filter:brightness(1) drop-shadow(0 0 6px #ffb744);opacity:.52}to{filter:grayscale(1) brightness(.3);opacity:.2}}
@keyframes flame-flicker{0%,100%{transform:scale(.94,1) skewX(-3deg);opacity:.78}18%{transform:scale(.9,1.07) skewX(2deg);opacity:.91}38%{transform:scale(1.04,.96) skewX(-2deg);opacity:.85}63%{transform:scale(.91,1.08) skewX(4deg);opacity:.95}81%{transform:scale(1,.98) skewX(-1deg);opacity:.83}}
@keyframes flame-heart{from{transform:scale(.82,1.03) skewX(4deg);opacity:.75}to{transform:scale(1.08,.95) skewX(-3deg);opacity:.98}}
@keyframes garden-flame{from{filter:brightness(.94) drop-shadow(0 0 4px #f4c16950)}to{filter:brightness(1.1) drop-shadow(0 0 9px #f4c169a0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

#lantern-care{font-size:13px;line-height:1.5;color:#f6d298;margin:8px 0}
#lantern-care.urgent{color:#ffe4aa;font-weight:600}
.lantern.newly-extinguished img{animation:lantern-goes-out 1.4s var(--out-delay,0s) both}
.lantern.newly-extinguished::before{transition:opacity 1.3s ease}
@keyframes lantern-goes-out{0%{filter:brightness(1.1) drop-shadow(0 0 8px #ffc261);opacity:1}25%{filter:brightness(.6);opacity:.8}40%{filter:brightness(.9);opacity:.95}100%{filter:saturate(.12) brightness(.46);opacity:.82}}
@media(max-width:620px){#lantern-care{grid-column:1/-1;grid-row:2;font-size:13px;margin:0 0 5px}.tile .tile-flame{width:95%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Botanical coverage stays around the letter, and grows across the gaps. */
.tile.weeds{background:#adc77c;filter:none}
.tile.weeds::before{background:linear-gradient(145deg,#416440,#263e2d 55%,#13271f);box-shadow:inset 0 0 18px #142b1899}
.tile.weeds .letter{color:#fff7db;text-shadow:0 2px 2px #091a10,0 0 5px #091a10,0 0 10px #091a10}
.tile.weeds .tile-value{color:#dced9e;font-size:16px}
.tile.weeds .tile-weeds{display:block;inset:0;overflow:hidden;pointer-events:none}
.tile-weeds img{position:absolute;width:110%;height:180%;object-fit:fill;left:-43%;top:-30%;transform:rotate(-13deg);animation:weed-sway 9s ease-in-out infinite alternate;animation-delay:var(--motion-delay,0s)}
.tile-weeds img:last-child{left:30%;top:-35%;transform:rotate(165deg);animation-name:weed-sway-reverse;animation-duration:12s}
.tile.weeds.bottom-weeds{background:#e2f4aa}
.tile.weeds.bottom-weeds::before{animation:weed-warning 2.4s ease-in-out infinite}
.tile:is(.selected,.blast-zone,.pocket-target) .tile-weeds{opacity:.35}
.tile.blast-zone{background:#fff2bd}
.tile.blast-zone::before{background:radial-gradient(ellipse,#f4d78c,#b99755)}
.tile.blast-center::after{content:'✿';font-size:14px;color:#7e602d}
.weed-mark{background:#b5cb8d;color:#213b29}
.vine-growth{position:absolute;z-index:5;pointer-events:none;transform-origin:50% 100%;background:url('/assets/weed-vine.png') center/100% 100% no-repeat;filter:drop-shadow(0 1px 2px #031306)}
.bloom-burst{position:absolute;z-index:12;width:55%;height:auto;pointer-events:none;filter:drop-shadow(0 0 25px #ffd46699)}
.bloom-icon{width:25px;height:25px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 0 4px #f9d99777)}
.bloom-button{background:#344631;border-color:#aaba7a;color:#f5e8b3}
.bloom-button:not(:disabled):hover,.bloom-button[aria-pressed="true"]{background:#d9dda9;color:#203528}
.bloom-button[aria-pressed="true"] .bloom-count{background:#acba7b}
.overgrowth{position:absolute;inset:0;z-index:10;pointer-events:none;overflow:hidden;background:linear-gradient(0deg,#0b241ed9,#112f23a6,transparent)}
.overgrowth>span{position:absolute;bottom:-14%;height:130%;width:33%;background:url('/assets/weed-vine.png') center/100% 100% no-repeat;transform:rotate(var(--vine-turn));transform-origin:50% 90%;filter:drop-shadow(2px 4px 3px #05190e)}
.overgrowth>span:nth-child(even){height:115%;bottom:-8%;filter:brightness(.7) drop-shadow(2px 4px 3px #05190e)}
.board.overgrown .tile-weeds img{animation:none}
.board.overgrown .tile{filter:brightness(.65)}
@keyframes weed-sway{from{transform:rotate(-13deg) scale(1)}to{transform:rotate(-9deg) scale(1.03)}}
@keyframes weed-sway-reverse{from{transform:rotate(165deg) scale(1)}to{transform:rotate(169deg) scale(1.03)}}
@keyframes weed-warning{50%{box-shadow:inset 0 0 24px #a7cb7380;filter:brightness(1.2)}}
@media(max-width:620px){.bloom-icon{width:22px;height:22px}.bloom-burst{width:65%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
