
.campaign-panel{background:var(--soft);border-radius:20px;padding:28px;min-width:0}
.campaign-panel>.eyebrow{font-size:11px}
.campaign-composition{position:relative;margin:24px 0 22px;padding-bottom:14%}
.campaign-surface{isolation:isolate;position:relative;display:block;overflow:hidden;padding:0;border:0;touch-action:pan-y pinch-zoom;user-select:none;cursor:grab;background:var(--soft);border-radius:12px}
.campaign-surface:focus-visible,.campaign-controls button:focus-visible,.campaign-view-switch button:focus-visible,.campaign-zoom:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.campaign-surface.is-dragging{cursor:grabbing}
.campaign-composition .campaign-scene{width:94%;aspect-ratio:1.18}
.campaign-composition .campaign-poster{position:absolute;right:0;bottom:0;width:33%;aspect-ratio:2/3;border:4px solid white;border-radius:7px;box-shadow:0 12px 28px #15203930}
.campaign-fallback{display:block;width:100%;height:100%}
.campaign-fallback img{display:block;width:100%;height:100%;object-fit:contain}
.campaign-scene>.campaign-fallback img{object-fit:cover;object-position:32% center}
.campaign-surface.is-ready .campaign-fallback{display:none}
.campaign-scene-stage{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.campaign-scene-background,.campaign-scene-background img{display:block;width:100%;height:100%;max-width:none}
.campaign-window{position:absolute;inset:0;display:block;overflow:hidden;isolation:isolate;pointer-events:none}
.campaign-window.campaign-plane{inset:auto;left:0;top:0;width:1024px;height:1536px;transform-origin:0 0;background:#152039}
.campaign-plane::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 7px #0002}
.campaign-track{display:flex;width:100%;height:100%;position:relative;left:-100%;transform:none}
.campaign-slide{display:block;flex:0 0 100%;width:100%;height:100%;overflow:hidden}
.campaign-slide img{display:block;width:100%;height:100%;max-width:none;object-fit:fill}
.campaign-zoom{position:absolute;right:9px;bottom:9px;z-index:2;background:#fcfcfff2;color:var(--ink);border:0;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;cursor:zoom-in;box-shadow:0 1px 5px #0002}
.campaign-zoom .site-icon{width:16px;height:16px}
.campaign-controls{display:flex;align-items:center;justify-content:space-between;gap:10px}
.campaign-controls button{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.campaign-controls button:hover{background:var(--paper,#fcfcff);color:var(--blue)}
.campaign-controls .site-icon{width:19px;height:19px}
.campaign-status{text-align:center;min-width:0}
.campaign-count{font-size:12px;letter-spacing:.02em}
.campaign-dots{display:flex;justify-content:center;gap:0}
.campaign-dots button{width:24px;height:22px;border:0;border-radius:0}
.campaign-dots button::after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.25}
.campaign-dots button[aria-pressed=true]::after{opacity:1;background:var(--blue);width:18px;border-radius:4px}
.campaign-panel .campaign-caption{font-size:13px!important;line-height:1.6!important;color:var(--ink)!important;margin:17px 0 0}
.campaign-caption>span{display:block;font-size:11px;color:var(--muted);margin-top:6px}
#campaign-lightbox{position:fixed;inset:0;width:100%;height:100%;height:var(--campaign-height,100dvh);max-width:none;max-height:none;margin:0;border:0;background:#101626fa;color:#f4f5f7;padding:24px clamp(18px,5vw,70px);--blue:#73b9ff;--line:#ffffff30;--paper:#233047}
#campaign-lightbox[open]{display:flex;flex-direction:column;align-items:center;gap:18px}
#campaign-lightbox::backdrop{background:#101626}
#campaign-lightbox .dialog-close{z-index:3}
.campaign-view-switch{display:flex;gap:4px;padding:4px;border:1px solid #ffffff25;border-radius:30px;margin:0 50px;flex-shrink:0}
.campaign-view-switch button{font:inherit;font-size:13px;padding:10px 18px;border-radius:24px;background:transparent;color:#c5ccdf;border:0;cursor:pointer;white-space:nowrap}
.campaign-view-switch button[aria-pressed=true]{background:#ffffff18;color:white}
.campaign-dialog-stage{position:relative;flex:1;width:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.campaign-dialog-stage .campaign-scene{width:min(100%,calc((var(--campaign-height,100dvh) - 205px)*1.5));aspect-ratio:1.5;background:#101626}
.campaign-dialog-stage .campaign-poster{height:100%;max-height:100%;aspect-ratio:2/3;max-width:100%;border-radius:3px}
.campaign-dialog-stage .campaign-surface[hidden]{display:none}
#campaign-lightbox .campaign-controls{width:min(100%,420px);flex-shrink:0}
#campaign-lightbox .campaign-title{font-size:12px;line-height:1.45;color:#c5ccdf;margin:5px 0 0}
#campaign-lightbox .campaign-count{font-size:13px}
#campaign-lightbox .campaign-surface:focus-visible{outline-offset:3px}
@media(max-width:800px){.campaign-panel{padding:22px}.campaign-composition{margin-top:20px}.campaign-composition .campaign-poster{width:34%}}
@media(max-width:560px){#campaign-lightbox{padding:65px 16px 20px;gap:14px}.campaign-view-switch{margin:0}.campaign-view-switch button{font-size:12px;padding:9px 15px}.campaign-dialog-stage .campaign-scene{width:min(100%,calc((var(--campaign-height,100dvh) - 240px)*1.5))}.campaign-dialog-stage .campaign-poster{height:auto;width:min(100%,calc((var(--campaign-height,100dvh) - 240px)*.6666667));aspect-ratio:2/3}.campaign-zoom{width:32px;height:32px}}
@media(max-height:500px) and (min-width:561px){#campaign-lightbox{padding:12px 60px;gap:8px}.campaign-view-switch button{padding:6px 15px}.campaign-dialog-stage .campaign-scene{width:min(100%,calc((var(--campaign-height,100dvh) - 155px)*1.5))}}
@media(max-width:380px){.campaign-panel{padding:18px}.campaign-panel>.eyebrow{font-size:10px;letter-spacing:1px}}
@media(prefers-color-scheme:dark){:where(html:not([data-theme])) .campaign-composition .campaign-poster{border-color:#344157}:where(html:not([data-theme])) .campaign-panel .campaign-zoom{background:#253047f2;color:#f4f5f7}}:where(html[data-theme="dark"]) .campaign-composition .campaign-poster{border-color:#344157}:where(html[data-theme="dark"]) .campaign-panel .campaign-zoom{background:#253047f2;color:#f4f5f7}

.campaign-composition .campaign-scene>.campaign-zoom{left:9px;right:auto}

/* Quiet carousel: gestures, keyboard and dots retain all poster navigation. */
.campaign-zoom,[data-campaign-step]{display:none!important}
.campaign-count{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.campaign-controls{justify-content:center}

/* No oversized composited slide strip while resting or pinching. */
.campaign-moving .campaign-track{transform:translateX(var(--campaign-shift,0%))}
.campaign-panel:not(.campaign-moving) .campaign-slide:not(:nth-child(2)),#campaign-lightbox:not(.campaign-moving) .campaign-slide:not(:nth-child(2)){visibility:hidden}
.campaign-native-zoom .campaign-surface{touch-action:pan-x pan-y pinch-zoom}

/* The full-screen viewer is opaque and does not composite the page beneath it. */
#campaign-lightbox{background:#101626}
#campaign-lightbox .campaign-poster,#campaign-lightbox .campaign-poster .campaign-window{isolation:auto;border-radius:0}
body:has(#campaign-lightbox[open])>header,body:has(#campaign-lightbox[open])>main,body:has(#campaign-lightbox[open])>section,body:has(#campaign-lightbox[open])>footer{visibility:hidden}
