/* Posters keep their own shape (owner request, 9 Nov 2026). Sizes and crops are set by poster-shape.js. */

/* Fixed slots: the space around the poster is a blurred, darkened copy of it, never plain black. */
.ws-pblur{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.ws-pblur::before{content:"";position:absolute;inset:-12%;background:#111 var(--ws-pimg) center/cover no-repeat;filter:blur(18px) brightness(.48) saturate(1.15);transform:translateZ(0)}
/* The cylinder (issue #718): a tiny darkened still stretched over the panel, with no filter and no layer of its own. */
.ws-pblur.ws-pstill::before{inset:0;filter:none;transform:none}

/* Cards in lists take the poster's shape; their frames get no bars. */
.ws-pflow{overflow:hidden}
.ws-pflow>.event-poster-fallback{z-index:0}
.ws-masonry>*{min-height:0}

/* Event window: the photo runs full width in its own shape, up to about 70% of the screen height. */
.ws-pmodal{position:relative;width:100%;max-height:70vh;max-height:70dvh;overflow:hidden;background:#09090b}
.ws-pmodal img{cursor:zoom-in}
.ws-pzoom{position:absolute;z-index:3;right:12px;bottom:calc(30% + 10px);display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(10,10,12,.55);color:#fff;cursor:zoom-in;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ws-pzoom:hover{border-color:#fff}
.ws-pzoom:focus-visible,.ws-viewer-close:focus-visible{outline:2px solid #eb0d23;outline-offset:2px}
/* The title, chips, text and buttons start over the lower part of the photo, on a clear to dark gradient with a blur. */
.event-modal-media.ws-pmodal+.event-modal-copy{position:relative;z-index:2;isolation:isolate;margin-top:calc(-.3 * min(100% / var(--ws-ar,1), 70vh));margin-top:calc(-.3 * min(100% / var(--ws-ar,1), 70dvh));padding-top:max(56px,calc(.18 * min(100% / var(--ws-ar,1), 70dvh)))!important;background:linear-gradient(180deg,rgba(18,18,20,0) 0,rgba(18,18,20,.72) 64px,var(--v9-surface,#141416) 150px)!important}
.event-modal-media.ws-pmodal+.event-modal-copy::before{content:"";position:absolute;left:0;right:0;top:0;height:170px;z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 80px);mask-image:linear-gradient(180deg,transparent 0,#000 80px)}
.event-modal-media.ws-pmodal+.event-modal-copy h2,.event-modal-media.ws-pmodal+.event-modal-copy .kicker{text-shadow:0 1px 14px rgba(0,0,0,.6)}

/* Photos that open full screen. */
.ev-photo img,.reader-media img,.sc-cover img,.sc-gallery img,.svc-biz-hero img{cursor:zoom-in}

/* Full screen viewer */
.ws-viewer{position:fixed;inset:0;z-index:2147483000;overflow:hidden;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.ws-viewer[hidden]{display:none}
.ws-viewer-back{position:absolute;inset:0}
.ws-viewer-bg{position:absolute;inset:-10%;background:#000 center/cover no-repeat;filter:blur(30px) brightness(.36) saturate(1.15);transform:translateZ(0)}
.ws-viewer-shade{position:absolute;inset:0;background:rgba(0,0,0,.3)}
.ws-viewer-stage{position:absolute;inset:0;touch-action:none}
.ws-viewer-img{position:absolute;left:0;top:0;max-width:none;max-height:none;transform-origin:0 0;will-change:transform;-webkit-user-drag:none;user-select:none;box-shadow:0 18px 60px rgba(0,0,0,.55)}
.ws-viewer-close{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(10,10,12,.6);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ws-viewer-close:hover{border-color:#fff}
@media (prefers-reduced-motion:reduce){.ws-viewer-img{transition:none!important}}
