/* Flower V3: impact scars and skin materials. The existing particle counts
   and attack durations are preserved; profiles change surfaces and motion. */
[data-flower-theme] {
    --flower-material: linear-gradient(135deg, #efb1bb, var(--flower-vfx-c2) 38%, var(--flower-vfx-c5));
    --flower-edge: var(--flower-vfx-c3);
    --flower-petal-fill: var(--flower-vfx-c5);
    --flower-petal-inner: var(--flower-vfx-c2);
    --flower-surface-shadow: 0 0 7px var(--flower-vfx-c2);
    --flower-sprite-filter: saturate(1.15) drop-shadow(0 0 4px var(--flower-vfx-c2));
    --flower-turn: 1;
    --flower-sway: 18px;
    --flower-flight-ease: cubic-bezier(.15,.63,.16,1);
    --flower-signature-motion: flowerMaterialUnfold;
    --flower-signature-ease: ease-out;
}
[data-flower-theme="cyber"] {
    --flower-material: repeating-linear-gradient(0deg, #fff8 0 1px, transparent 1px 4px), linear-gradient(135deg, #ffd4f488, #df057644 55%, #ff85eacc);
    --flower-edge: #ffbfea;
    --flower-petal-fill: #d9188266;
    --flower-petal-inner: #ff70cebb;
    --flower-surface-shadow: 0 0 9px #f73e95, inset 0 0 5px #fff8;
    --flower-sprite-filter: brightness(1.18) drop-shadow(2px 0 0 #f73e9588) drop-shadow(0 0 5px #ff8dde);
    --flower-turn: 0;
    --flower-sway: 0px;
    --flower-flight-ease: linear;
    --flower-signature-motion: flowerMaterialScan;
    --flower-signature-ease: steps(6, end);
}
[data-flower-theme="fejlesztettcyber"] {
    --flower-material: repeating-linear-gradient(0deg, #fff9 0 1px, transparent 1px 3px), conic-gradient(from 45deg, #ffffffdd, #e5398e77, #aaf3ffbb, #f864d6bb, #ffffffdd);
    --flower-edge: #d7faff;
    --flower-petal-fill: #b77cde77;
    --flower-petal-inner: #f8c7f4cc;
    --flower-surface-shadow: -2px 0 7px #72ddff, 2px 0 9px #f864d6;
    --flower-sprite-filter: brightness(1.25) drop-shadow(-2px 0 0 #9beeff99) drop-shadow(2px 0 0 #f864d699);
    --flower-turn: .25;
    --flower-sway: -10px;
    --flower-flight-ease: cubic-bezier(.3,0,.5,1);
    --flower-signature-motion: flowerMaterialScan;
    --flower-signature-ease: steps(10, end);
}
[data-flower-theme="kalandor"] {
    --flower-material: linear-gradient(110deg, #392414 0 40%, #d9ae65 43% 48%, #78532a 51% 70%, #ac7840);
    --flower-edge: #d6ae70;
    --flower-petal-fill: #5b3524;
    --flower-petal-inner: #ac7840;
    --flower-surface-shadow: 1px 2px 3px #130b08aa;
    --flower-sprite-filter: sepia(.25) contrast(1.12) drop-shadow(1px 2px 2px #120b08aa);
    --flower-turn: .4;
    --flower-sway: 30px;
    --flower-flight-ease: cubic-bezier(.32,.05,.7,1);
    --flower-signature-motion: flowerMaterialTumble;
}
[data-flower-theme="rem"] {
    --flower-material: radial-gradient(ellipse at 50% 20%, #e2faffcc, #61e3fb55 25%, #c85aa84d 60%, transparent 85%);
    --flower-edge: #9ceaff;
    --flower-petal-fill: #79357955;
    --flower-petal-inner: #bdefff77;
    --flower-surface-shadow: 0 0 12px #61e3fb77;
    --flower-sprite-filter: opacity(.76) drop-shadow(0 0 7px #61e3fb99);
    --flower-turn: -.35;
    --flower-sway: -38px;
    --flower-flight-ease: ease-in-out;
    --flower-signature-motion: flowerMaterialHaunt;
}
[data-flower-theme="mese"] {
    --flower-material: repeating-linear-gradient(28deg, #52263425 0 1px, transparent 1px 4px), linear-gradient(110deg, #fff0cb 0 46%, #a6636e 48% 52%, #dfb1a0 55%, #ffddba);
    --flower-edge: #ffddba;
    --flower-petal-fill: #d49c92;
    --flower-petal-inner: #ffdfbb;
    --flower-surface-shadow: 2px 2px 0 #35121f99;
    --flower-sprite-filter: sepia(.22) drop-shadow(2px 2px 0 #35121f99);
    --flower-turn: .7;
    --flower-sway: 24px;
    --flower-flight-ease: cubic-bezier(.22,.65,.4,1);
    --flower-signature-motion: flowerMaterialFold;
}

/* Thin material petals frame the umbrella without covering it. */
[data-flower-theme] > .flower-skin-signature {
    position: absolute; left: 50%; top: 50%; width: 180px; height: 180px;
    transform: translate(-50%, -50%); overflow: visible; z-index: 2;
    pointer-events: none; fill: none;
}
.v3-flower-tuskevihar-stage > .flower-skin-signature { width: min(43vmin, 390px); height: min(43vmin, 390px); }
.flower-skin-signature__trace { stroke: var(--flower-edge); stroke-width: .8; stroke-dasharray: 1; animation: flowerMaterialTrace 1050ms ease-out both; }
.flower-skin-signature__petal {
    fill: var(--flower-petal-fill); stroke: var(--flower-edge); stroke-width: 1;
    transform-origin: 100px 100px;
    animation: var(--flower-signature-motion) 980ms var(--flower-signature-ease) calc(var(--flower-petal-index) * 27ms) both;
}
[data-flower-theme="fejlesztettcyber"] .flower-skin-signature__trace { stroke-dasharray: .08 .025; stroke-width: 2; }
[data-flower-theme="rem"] .flower-skin-signature__petal { filter: drop-shadow(0 0 3px #61e3fb); }
[data-flower-theme="mese"] .flower-skin-signature__petal { stroke: #5b0714; stroke-width: 1.8; }

/* Existing petals and droplets acquire different surfaces and silhouettes. */
[data-flower-theme] :is(.flower-dobbantas__petal, .flower-tuskevihar__petal, .flower-tuskecsapas-impact__drops > i) {
    background: var(--flower-material); box-shadow: var(--flower-surface-shadow);
    border: 1px solid color-mix(in srgb, var(--flower-edge) 55%, transparent);
}
:is([data-flower-theme="cyber"], [data-flower-theme="fejlesztettcyber"]) :is(.flower-dobbantas__petal, .flower-tuskevihar__petal, .flower-tuskecsapas-impact__drops > i) {
    border-radius: 0; clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%);
}
[data-flower-theme="mese"] :is(.flower-dobbantas__petal, .flower-tuskevihar__petal) { border-radius: 0; clip-path: polygon(50% 0, 96% 35%, 76% 83%, 22% 100%, 0 42%); }
[data-flower-theme="rem"] :is(.flower-dobbantas__petal, .flower-tuskevihar__petal) { border: 0; border-radius: 80% 80% 12% 12%; }
[data-flower-theme] :is(.flower-tuskecsapas-route__spear, .flower-tuskecsapas-route__echo, .flower-tuskecsapas-route__mote, .flower-dobbantas__thorn, .flower-tuskevihar__field-thorn),
.v3-flower-basic-route[data-flower-theme] > img,
.v3-flower-kicsapas-volley[data-flower-theme] > img,
.v3-flower-tuskevihar-volley[data-flower-theme] > img { filter: var(--flower-sprite-filter); }
.v3-flower-basic-route[data-flower-theme] > img { animation-name: flowerSkinBasic; animation-timing-function: var(--flower-flight-ease); }
.v3-flower-kicsapas-volley[data-flower-theme] > img { animation-name: flowerSkinVolley; animation-timing-function: var(--flower-flight-ease); }
[data-flower-theme] :is(.flower-tuskecsapas-route__spear, .flower-tuskecsapas-route__echo) { animation-name: flowerSkinSpear; animation-timing-function: var(--flower-flight-ease); }
[data-flower-theme] .flower-dobbantas__petal { animation-name: flowerSkinForgePetal; animation-timing-function: var(--flower-flight-ease); }
[data-flower-theme] .flower-tuskevihar__petal { animation-name: flowerSkinStormPetal; }
[data-flower-theme] .flower-tuskevihar__field-thorn { animation-name: flowerSkinFieldThorn; animation-timing-function: var(--flower-flight-ease); }

/* The second cut meets the existing second spear at 620ms. */
.flower-wound { position: absolute; inset: 0; z-index: 9; pointer-events: none; animation: flowerWoundFade 2700ms ease-out both; }
.flower-wound__veins { position: absolute; inset: 12% 9%; width: 82%; height: 76%; overflow: visible; }
.flower-wound__veins path {
    fill: none; stroke: var(--flower-vfx-c1); stroke-width: 2.2; stroke-linecap: round;
    stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 1px var(--flower-edge));
    animation: flowerWoundGrow 520ms cubic-bezier(.16,.7,.22,1) 60ms both;
}
.flower-wound__bloom {
    position: absolute; left: 50%; top: 50%; width: 54%; max-width: 142px;
    aspect-ratio: 1; transform: translate(-50%, -50%);
    filter: drop-shadow(0 2px 3px #09070bbb) drop-shadow(0 0 5px var(--flower-vfx-c2));
}
.flower-wound__half { position: absolute; inset: 0; }
.flower-wound__half.is-left { clip-path: polygon(0 0, 100% 0, 0 100%); }
.flower-wound__half.is-right { clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.flower-wound__half > svg { display: block; width: 100%; height: 100%; overflow: visible; }
.flower-wound__petal {
    fill: var(--flower-petal-fill); stroke: var(--flower-edge); stroke-width: 1.3;
    transform-origin: 100px 100px;
    animation: flowerWoundBloom 330ms cubic-bezier(.16,.75,.25,1) calc(100ms + var(--flower-petal-index) * 30ms) both;
}
.flower-wound__petal.is-inner { fill: var(--flower-petal-inner); stroke-width: 2; }
.flower-wound__heart { fill: var(--flower-edge); animation: flowerWoundBloom 280ms ease-out 190ms both; transform-origin: 100px 100px; }
.flower-wound.is-split .is-left { --wound-split-x: -9px; --wound-split-y: -9px; --wound-split-r: -12deg; animation: flowerWoundSplit 1400ms ease-out 620ms both; }
.flower-wound.is-split .is-right { --wound-split-x: 9px; --wound-split-y: 9px; --wound-split-r: 12deg; animation: flowerWoundSplit 1400ms ease-out 620ms both; }
.flower-wound__cut {
    position: absolute; left: -12%; top: 49%; width: 124%; height: 2px;
    background: linear-gradient(90deg, transparent, var(--flower-edge), #fff, var(--flower-edge), transparent);
    box-shadow: 0 0 8px var(--flower-edge); transform: rotate(-45deg);
    animation: flowerWoundCut 400ms ease-out 620ms both;
}
:is([data-flower-theme="cyber"], [data-flower-theme="fejlesztettcyber"]) .flower-wound__veins path { stroke: var(--flower-edge); stroke-width: 1; }
[data-flower-theme="fejlesztettcyber"] .flower-wound__bloom { filter: drop-shadow(-2px 0 2px #9beeff99) drop-shadow(2px 0 2px #f864d699); }
[data-flower-theme="rem"] .flower-wound__bloom { filter: drop-shadow(0 0 7px #61e3fb88); }
[data-flower-theme="mese"] .flower-wound__petal { stroke: #5b0714; stroke-width: 2; }
[data-flower-theme="mese"] .flower-wound__veins path { stroke: #5b0714; filter: drop-shadow(1px 1px 0 #ffddba88); }
[data-flower-theme="kalandor"] .flower-wound__bloom { filter: drop-shadow(2px 3px 1px #130b08bb); }

@keyframes flowerMaterialTrace { 0% { opacity: 0; stroke-dashoffset: 1; } 35% { opacity: .6; } 100% { opacity: 0; stroke-dashoffset: 0; } }
@keyframes flowerMaterialUnfold { 0% { opacity: 0; transform: scale(.5) rotate(-12deg); } 35% { opacity: .8; } 100% { opacity: 0; transform: scale(1.2) rotate(15deg); } }
@keyframes flowerMaterialScan { 0% { opacity: 0; transform: scale(.55); } 20% { opacity: .85; transform: scale(.8); } 45% { opacity: .4; transform: scale(.95); } 65% { opacity: .9; transform: scale(1.12); } 100% { opacity: 0; transform: scale(1.22); } }
@keyframes flowerMaterialTumble { 0% { opacity: 0; transform: scale(.4) rotate(-24deg); } 30% { opacity: .85; transform: scale(.95) rotate(5deg); } 100% { opacity: 0; transform: translateY(22px) scale(1.15) rotate(36deg); } }
@keyframes flowerMaterialHaunt { 0% { opacity: 0; transform: translateY(9px) scale(.7); } 40% { opacity: .65; transform: translateY(-8px) scale(1); } 70% { opacity: .35; transform: translateY(-3px) scale(1.06); } 100% { opacity: 0; transform: translateY(-22px) scale(1.2); } }
@keyframes flowerMaterialFold { 0% { opacity: 0; transform: scale(.3,.85) rotate(-14deg); } 35% { opacity: .9; transform: scale(1,.9) rotate(6deg); } 65% { opacity: .65; transform: scale(.75,1.1) rotate(-4deg); } 100% { opacity: 0; transform: scale(1.15) rotate(20deg); } }
@keyframes flowerSkinBasic {
    0% { opacity: 0; left: 0; transform: translate(-50%,-50%) rotate(45deg) scale(.12); }
    16% { opacity: 1; }
    52% { opacity: 1; transform: translate(-50%,calc(-50% + var(--flower-basic-arc) + var(--flower-sway))) rotate(calc(45deg + var(--flower-basic-spin) * var(--flower-turn) * .55)) scale(1.08); }
    100% { left: 100%; opacity: 0; transform: translate(-50%,calc(-50% + var(--flower-basic-lane))) rotate(calc(45deg + var(--flower-basic-spin) * var(--flower-turn))) scale(.82); }
}
@keyframes flowerSkinVolley {
    0% { opacity: 0; transform: translate(calc(var(--flower-sx) - 50%),calc(var(--flower-sy) - 50%)) rotate(var(--flower-flight-r)) scale(.2); }
    9% { opacity: 1; }
    50% { opacity: 1; transform: translate(calc((var(--flower-sx) + var(--flower-dx)) * .5 - 50%),calc((var(--flower-sy) + var(--flower-dy)) * .5 - 50% + var(--flower-sway))) rotate(calc(var(--flower-flight-r) + 24deg * var(--flower-turn))) scale(.9); }
    100% { opacity: 0; transform: translate(calc(var(--flower-dx) - 50%),calc(var(--flower-dy) - 50%)) rotate(var(--flower-flight-r)) scale(.72); }
}
@keyframes flowerSkinSpear {
    0% { left: -64px; opacity: 0; transform: translate(-50%,-50%) rotate(45deg) scale(.28); }
    12% { opacity: 1; }
    72% { opacity: 1; transform: translate(-50%,calc(-50% + var(--flower-sway) * .3)) rotate(calc(45deg + 360deg * var(--flower-turn))) scale(1.08); }
    100% { left: 100%; opacity: 0; transform: translate(-50%,-50%) rotate(calc(45deg + 540deg * var(--flower-turn))) scale(.72); }
}
@keyframes flowerSkinForgePetal {
    0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--forge-angle)) translateX(5px) scale(.2); }
    21% { opacity: 1; } 72% { opacity: .8; }
    100% { opacity: 0; transform: translate(-50%,calc(-50% + var(--forge-lift) + var(--flower-sway))) rotate(var(--forge-angle)) translateX(var(--forge-distance)) rotate(calc(520deg * var(--flower-turn))) scale(.72); }
}
@keyframes flowerSkinStormPetal {
    0% { opacity: 0; transform: translate(0,-8vh) rotate(0) scale(.3); }
    14% { opacity: .8; }
    48% { transform: translate(calc(var(--storm-petal-drift) * .5 + var(--flower-sway)),48vh) rotate(calc(360deg * var(--flower-turn))) scale(.95); }
    84% { opacity: .6; }
    100% { opacity: 0; transform: translate(var(--storm-petal-drift),112vh) rotate(calc(820deg * var(--flower-turn))) scale(.85); }
}
@keyframes flowerSkinFieldThorn {
    0% { opacity: 0; transform: translate(-50%,-50%) rotate(calc(var(--storm-angle) + 45deg)) translateX(12px) scale(.1); }
    18% { opacity: 1; } 78% { opacity: .94; }
    100% { opacity: 0; transform: translate(-50%,-50%) rotate(calc(var(--storm-angle) + 45deg + 360deg * var(--flower-turn))) translateX(var(--storm-distance)) scale(.92); }
}
@keyframes flowerWoundGrow { to { stroke-dashoffset: 0; } }
@keyframes flowerWoundBloom { from { opacity: 0; transform: scale(.12) rotate(-20deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes flowerWoundFade { 0% { opacity: 0; } 8%,65% { opacity: 1; } 100% { opacity: 0; } }
@keyframes flowerWoundSplit { 0% { transform: translate(0) rotate(0); } 18% { transform: translate(var(--wound-split-x),var(--wound-split-y)) rotate(var(--wound-split-r)); } 100% { transform: translate(calc(var(--wound-split-x) * 1.4),calc(var(--wound-split-y) * 1.8)) rotate(var(--wound-split-r)); } }
@keyframes flowerWoundCut { 0% { opacity: 0; transform: rotate(-45deg) scaleX(.05); } 20% { opacity: 1; transform: rotate(-45deg) scaleX(1); } 100% { opacity: 0; transform: rotate(-45deg) scaleX(1.15); } }

/* Readable blossom in reduced motion, without splitting or pulsing. */
.flower-wound.is-reduced { animation: flowerWoundFade 750ms ease-out both !important; }
.flower-wound.is-reduced :is(path, circle, .flower-wound__half) { animation: none !important; stroke-dashoffset: 0; }
.flower-wound.is-reduced :is(.flower-wound__petal, .flower-wound__heart, .flower-wound__half) { transform: none; }
.flower-wound.is-reduced .flower-wound__cut { display: none; }
@media (prefers-reduced-motion: reduce) {
    [data-flower-theme] > .flower-skin-signature { display: none; }
    .flower-wound { animation: flowerWoundFade 750ms ease-out both !important; }
    .flower-wound :is(path, circle, .flower-wound__half) { animation: none !important; stroke-dashoffset: 0; }
    .flower-wound :is(.flower-wound__petal, .flower-wound__heart, .flower-wound__half) { transform: none; }
    .flower-wound__cut { display: none; }
}

/* Halloween Flower: orchidea-lila / neonzöld / holdfehér anyag,
   körülötte Halloween bűbájok (töklámpás, kísértet, denevér, gyertya,
   boszorkánykalap, elátkozott szem). VIP Halloween: arany-pezsgő anyag,
   csillogás, fényívek és VIP felirat. */
[data-flower-theme="halloween"] {
    --flower-material: radial-gradient(ellipse at 50% 20%, #fdfdffcc, #da67fd66 28%, #7f29ea55 60%, transparent 86%);
    --flower-edge: #4cdc82;
    --flower-petal-fill: #7f29ea77;
    --flower-petal-inner: #da67fdbb;
    --flower-surface-shadow: 0 0 10px #da67fd88, 0 0 4px #4cdc82;
    --flower-sprite-filter: saturate(1.2) drop-shadow(0 0 6px #da67fd) drop-shadow(0 0 3px #4cdc82);
    --flower-turn: -.3;
    --flower-sway: -28px;
    --flower-flight-ease: ease-in-out;
    --flower-signature-motion: flowerMaterialHaunt;
}
[data-flower-theme="viphalloween"] {
    --flower-material: linear-gradient(120deg, #fff8e1 0 20%, #f6d27a 38%, #b98a3e 62%, #fff1c9);
    --flower-edge: #fff1c9;
    --flower-petal-fill: #b98a3e99;
    --flower-petal-inner: #f6d27acc;
    --flower-surface-shadow: 0 0 10px #f6d27a, 0 0 3px #fff8e1;
    --flower-sprite-filter: sepia(.35) saturate(1.3) brightness(1.08) drop-shadow(0 0 6px #f6d27a);
    --flower-turn: .35;
    --flower-sway: 20px;
    --flower-flight-ease: cubic-bezier(.22,.65,.4,1);
    --flower-signature-motion: flowerMaterialUnfold;
}
.flower-halloween-charm { animation: flowerHalloweenCharm 2.2s ease-in-out infinite; animation-delay: calc(var(--flower-charm-index) * -.35s); transform-box: fill-box; transform-origin: center; }
.flower-halloween-charms .flower-halloween-charm > g { filter: drop-shadow(0 0 4px #4cdc82); }
.flower-halloween-charms.is-vip .flower-halloween-charm > g { filter: drop-shadow(0 0 5px #f6d27a); }
.flower-vip-arc { fill: none; stroke: #f6d27a; stroke-width: 2.2; filter: drop-shadow(0 0 4px #f6d27a); animation: flowerVipArc 2.6s ease-in-out infinite alternate; }
.flower-vip-arc.is-thin { stroke: #fff1c9; stroke-width: 1.1; animation-delay: -1.3s; }
.flower-vip-glint { animation: flowerVipGlint 1.8s ease-in-out infinite; animation-delay: calc(var(--flower-charm-index) * -.45s); transform-box: fill-box; transform-origin: center; }
.flower-vip-text { fill: #f6d27a; font: 900 20px Georgia, serif; letter-spacing: .14em; filter: drop-shadow(0 0 5px #f6d27a); }
@keyframes flowerHalloweenCharm { 0%, 100% { opacity: .85; translate: 0 0; } 50% { opacity: 1; translate: 0 -4px; } }
.v3-flower-tuskevihar-stage > .flower-haunted-arbor {
    position: absolute; left: 50%; top: 50%; width: min(76vmin, 640px); height: min(76vmin, 640px);
    z-index: 3; pointer-events: none; overflow: visible;
    transform: translate(-50%, -50%);
    animation: flowerHauntedArbor 4200ms ease-out both;
}
.v3-flower-tuskevihar-stage.is-black-rose > .flower-haunted-arbor { width: min(84vmin, 720px); height: min(84vmin, 720px); }
@keyframes flowerHauntedArbor {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.45) rotate(-12deg); }
    24%, 65% { opacity: .9; transform: translate(-50%, -50%) scale(1) rotate(0deg); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.08) rotate(6deg); }
}
@media (prefers-reduced-motion: reduce) {
    .v3-flower-tuskevihar-stage > .flower-haunted-arbor { animation: flowerWoundFade 1000ms ease-out both; }
}
@keyframes flowerVipArc { from { opacity: .45; } to { opacity: 1; } }
@keyframes flowerVipGlint { 0%, 100% { opacity: 0; scale: .5; } 50% { opacity: 1; scale: 1.1; } }
.flower-pumpkin-soul {
    position: absolute; left: 50%; top: 48%; width: 72%; max-width: 185px; height: auto;
    overflow: visible; z-index: 10; pointer-events: none; transform: translate(-50%, -50%);
    animation: flowerPumpkinReveal 1800ms ease-out both;
}
.flower-pumpkin-soul.is-forge { width: 210px; max-width: none; top: 0; left: 0; animation-delay: 180ms; }
.flower-pumpkin-soul__spirit { animation: flowerPumpkinSpirit 1700ms ease-out both; }
.flower-ultra-lantern { transform-origin: 0 -12px; animation: flowerLanternSway 1600ms ease-in-out var(--lantern-delay, 0ms) infinite alternate; }
.flower-ultra-glint { transform-box: fill-box; transform-origin: center; animation: flowerVipGlint 1400ms ease-in-out var(--lantern-delay, 0ms) infinite; }
/* Keep the real winged pumpkin sprites readable, including the VIP jewellery. */
:is(.v3-flower-basic-route, .v3-flower-kicsapas-volley, .v3-flower-tuskevihar-volley)[data-flower-theme$="halloween"] > img { scale: 1.2; }
[data-flower-theme$="halloween"] :is(.flower-tuskecsapas-route__spear, .flower-tuskecsapas-route__echo) { scale: 1.15; }
.v3-flower-tuskevihar-stage[data-flower-theme$="halloween"] .flower-tuskevihar__field-thorn { scale: 1.15; }
.v3-flower-tuskevihar-stage[data-flower-theme$="halloween"].is-black-rose .flower-tuskevihar__vignette {
    background: radial-gradient(circle, transparent 0 15%, color-mix(in srgb,var(--flower-vfx-c2) 22%,transparent) 38%,#010102d9 80%);
}
@keyframes flowerPumpkinReveal {
    0% { opacity: 0; transform: translate(-50%,-50%) scale(.45); }
    20%,65% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
    100% { opacity: 0; transform: translate(-50%,-56%) scale(1.08); }
}
@keyframes flowerPumpkinSpirit {
    0% { opacity: 0; transform: translateY(25px) scale(.45); }
    30%,65% { opacity: 1; transform: translateY(-5px) scale(1); }
    100% { opacity: 0; transform: translateY(-24px) scale(.85); }
}
@keyframes flowerLanternSway { from { transform: rotate(-8deg); } to { transform: rotate(8deg); } }
@media (prefers-reduced-motion: reduce) {
    .flower-pumpkin-soul { animation: flowerWoundFade 650ms ease-out both; }
    .flower-pumpkin-soul__spirit, .flower-ultra-lantern, .flower-ultra-glint { animation: none; }
}
@media (prefers-reduced-motion: reduce) { .flower-halloween-charm, .flower-vip-arc, .flower-vip-glint { animation: none; } }

/* Halloween Kicsapás: solid pumpkins arrive before bursting into local stains. */
.v3-flower-kicsapas-volley[data-flower-theme$="halloween"] > img {
    animation-name: flowerPumpkinContact; scale: none;
    width: calc(var(--flower-flight-size) * 1.2); height: calc(var(--flower-flight-size) * 1.2);
}
.flower-pumpkin-splats { position: absolute; inset: 0; z-index: 36; overflow: hidden; border-radius: inherit; pointer-events: none; }
.flower-pumpkin-splat {
    position: absolute; width: var(--splat-size); height: var(--splat-size);
    transform: translate(-50%,-50%) rotate(var(--splat-angle));
    animation: flowerPumpkinStain 2200ms ease-out var(--splat-at) both;
}
.flower-pumpkin-splat svg { display: block; width: 100%; height: 100%; }
@keyframes flowerPumpkinContact {
    0% { opacity: 0; transform: translate(calc(var(--flower-sx) - 50%),calc(var(--flower-sy) - 50%)) rotate(var(--flower-flight-r)) scale(.2); }
    9% { opacity: 1; }
    90% { opacity: 1; transform: translate(calc(var(--flower-dx) - 50%),calc(var(--flower-dy) - 50%)) rotate(var(--flower-flight-r)) scale(.85); }
    99% { opacity: .8; transform: translate(calc(var(--flower-dx) - 50%),calc(var(--flower-dy) - 50%)) rotate(var(--flower-flight-r)) scale(1.05,.35); }
    100% { opacity: 0; transform: translate(calc(var(--flower-dx) - 50%),calc(var(--flower-dy) - 50%)) rotate(var(--flower-flight-r)) scale(1.05,.35); }
}
@keyframes flowerPumpkinStain {
    0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--splat-angle)) scale(.2); }
    5% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--splat-angle)) scale(1.15); }
    12%,72% { opacity: .9; transform: translate(-50%,-50%) rotate(var(--splat-angle)) scale(1); }
    100% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--splat-angle)) scale(1); }
}
@keyframes flowerPumpkinContactReduced {
    0% { opacity: 0; } 30%,90% { opacity: 1; } 100% { opacity: 0; }
}
@keyframes flowerPumpkinStainReduced { 0% { opacity: 0; } 12%,70% { opacity: .85; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .v3-flower-kicsapas-volley[data-flower-theme$="halloween"] > img {
        animation-name: flowerPumpkinContactReduced;
        transform: translate(calc(var(--flower-dx) - 50%),calc(var(--flower-dy) - 50%)) rotate(var(--flower-flight-r));
    }
    .flower-pumpkin-splat { animation-name: flowerPumpkinStainReduced; animation-duration: 1400ms; }
}
