/* Shared geometry: the editor and the public page use exactly the same image plane. */
.hero-scene{position:relative;isolation:isolate;width:100%;aspect-ratio:1;min-width:0;overflow:hidden}
.scene-layer{position:absolute;left:var(--mx);top:var(--my);width:var(--mw);height:var(--mh);transform:translate(-50%,-50%) rotate(var(--mr));transform-origin:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;filter:drop-shadow(0 16px 15px #17091430)}
.scene-layer>img{display:block;width:100%;height:calc(100% - 33px);object-fit:contain;min-height:0;pointer-events:none;user-select:none;border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}
.scene-layer[data-no-label]>img{height:100%}
.scene-layer-caption{display:block;width:100%;flex:0 0 auto;text-align:center;color:#fff;font:750 clamp(11px,3.4vw,17px)/1.18 'Segoe UI',Arial,sans-serif;text-shadow:0 2px 8px #0009;overflow-wrap:anywhere;padding:5px 2px 0;max-height:45px;overflow:hidden}
.scene-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}
[data-scene-preset=spotlight]>.scene-atmosphere{background:radial-gradient(ellipse at 78% 53%,#fff0b92b,transparent 40%)}
[data-scene-preset=spotlight]>.scene-atmosphere:after{content:'';position:absolute;right:2%;top:12%;width:44%;height:75%;border:1px solid #fff1cc29;border-radius:50%;box-shadow:0 0 0 24px #fff1cc06;transform:rotate(-20deg)}
[data-scene-preset=festival]>.scene-atmosphere{background:radial-gradient(ellipse at 85% 60%,#ffdf6135,transparent 45%),radial-gradient(ellipse at 60% 0%,#fc5d9629,transparent 55%)}
[data-scene-preset=festival]>.scene-atmosphere:after{content:'';position:absolute;width:80%;height:90%;right:-18%;bottom:-42%;border-radius:50%;background:#ffffff0a;transform:rotate(-20deg)}
[data-scene-preset=clean]>.scene-atmosphere{background:linear-gradient(120deg,#00000018,transparent 70%)}
.scene-background{position:absolute;inset:0;pointer-events:none;overflow:hidden}.scene-background>img{width:100%;height:100%;object-fit:cover}.scene-background>span{position:absolute;inset:0;background:linear-gradient(100deg,#100b21d9,#100b2159)}
.scene-effects{position:absolute;inset:0;overflow:hidden;pointer-events:none}.scene-effects[data-scene-effect=none]{display:none}
.scene-effects>i{position:absolute;left:var(--particle-x);bottom:-40px;width:var(--particle-size);height:var(--particle-size);border:1px solid #ffffff38;border-radius:50%;background:#fff5ce0a;animation:scene-rise var(--particle-duration) var(--particle-delay) linear infinite;animation-play-state:paused}
.scene-effects[data-scene-intensity=low]>i:nth-child(n+9){display:none}
.scene-effects[data-scene-effect=confetti]>i{width:5px;height:14px;border:0;border-radius:2px;background:var(--highlight);opacity:.45}.scene-effects[data-scene-effect=confetti]>i:nth-child(3n){background:#fff}
.scene-effects[data-scene-effect=sparkles]>i{width:4px;height:4px;background:#fff4c0;border:0;box-shadow:0 0 12px #ffe6a48f;opacity:.55}
.scene-effects[data-active=true]>i{animation-play-state:running}
@keyframes scene-rise{from{transform:translate3d(0,0,0) rotate(var(--particle-angle));opacity:0}12%{opacity:.45}85%{opacity:.28}to{transform:translate3d(28px,-95vh,0) rotate(calc(var(--particle-angle) + 100deg));opacity:0}}
.campaign-v2 .hero-composition .campaign-visual{padding:0;isolation:auto}.campaign-v2 .hero-composition .campaign-visual:before,.hero-composition>.campaign-celebration{display:none}
.campaign-v2 .hero-composition .campaign-hero-grid{gap:9px;padding-bottom:12px}
.hero-composition .hero-scene{max-width:560px;margin-inline:auto}
.hero-composition[data-scene-preset=clean]{background:linear-gradient(120deg,color-mix(in srgb,var(--hero-bg) 60%,#101326),var(--hero-bg))}
.hero-composition .campaign-prize-line{max-width:560px}
@media(min-width:700px){.hero-composition .hero-scene{aspect-ratio:5/4}.hero-composition .scene-layer{left:var(--dx);top:var(--dy);width:var(--dw);height:var(--dh);transform:translate(-50%,-50%) rotate(var(--dr))}.hero-composition .scene-layer-caption{font-size:16px}.campaign-v2 .hero-composition .campaign-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:14px;padding-block:40px 45px}}
@media(min-width:1100px){.campaign-v2 .hero-composition .campaign-hero-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:35px;min-height:575px}}
@media(prefers-reduced-motion:reduce){.scene-effects>i{animation:none!important;display:none}}

@media(max-width:380px){.hero-composition .campaign-share{min-width:44px}.hero-composition .campaign-share>span{display:none}.hero-composition .campaign-actions{gap:12px}}
@media(max-width:699px){.hero-composition .scene-background>span{background:linear-gradient(180deg,#100b21df,#100b2199)}}
