/* Shorts use only actual video frames. A cold resource has a neutral surface
   until its first frame is decoded; catalogue thumbnails stay outside viewer. */
.short-poster{position:absolute;inset:0;display:block;background:#000;pointer-events:none}
.short-card.has-frame .short-poster,.short-card.has-prepared .short-poster,.short-card.has-bridge .short-poster,.short-card.has-frame-hold .short-poster{visibility:hidden}
/* An independent copy of actual decoded pixels covers pause/unmute compositor
   resets. It stays until the resumed player presents a new frame. */
.short-frame-hold{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#000;pointer-events:none}
@media(max-width:600px){.short-frame-hold{object-fit:cover}}
@media(max-height:500px) and (orientation:landscape){.short-frame-hold{object-fit:contain}}
/* The audible player stays rendered underneath this prepared neighbour. Its
   first presented frame can therefore complete the handoff without a blank. */
.short-warm-video{pointer-events:none}
/* The backdrop spans the media, independent of the portrait-sized text layout. */
.short-media::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,#03050be0,transparent 40%,transparent 78%,#03050b33);pointer-events:none}
.short-overlay{background:none}
.short-timeline{position:absolute;z-index:5;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 36px),62dvh);padding:0 4px;color:#fff}
.short-seek{display:block;box-sizing:border-box;width:100%;height:30px;margin:0;padding:0;accent-color:#ff334c;background:transparent;cursor:pointer;touch-action:none}
.short-seek:disabled{cursor:default;opacity:.5}
.short-seek:focus-visible{outline:2px solid #ff8593;outline-offset:2px;border-radius:4px}
.short-time{display:flex;align-items:center;justify-content:space-between;font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000,0 1px 8px #000}
.short-title{bottom:calc(128px + env(safe-area-inset-bottom))}
.short-model{bottom:calc(90px + env(safe-area-inset-bottom))}
.short-actions{bottom:calc(105px + env(safe-area-inset-bottom))}
.short-error{top:auto;bottom:calc(170px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(340px,calc(100% - 100px));padding:10px 12px;background:#0b0e16d9}
/* Clear view only changes overlays; video size and object-fit stay unchanged. */
.shorts-viewer.is-immersive .short-overlay,
.shorts-viewer.is-immersive .short-media::before,
.shorts-viewer.is-immersive .short-actions>:not([data-short-sound]),
.shorts-viewer.is-immersive .short-timeline,
.shorts-viewer.is-immersive .shorts-feed-controls,
.shorts-viewer.is-immersive .shorts-topbar>:not(#shorts-fullscreen):not([data-close-shorts]){display:none}
.shorts-viewer.is-immersive .shorts-topbar{background:none;justify-content:space-between;padding-bottom:0}
.shorts-viewer.is-immersive [data-close-shorts]{display:inline-flex;min-width:44px;min-height:44px;width:44px;padding:10px;background:#111b;border:1px solid #ffffff45}
.shorts-viewer.is-immersive [data-close-shorts]>span{display:none}
.shorts-viewer #shorts-fullscreen{min-width:44px;min-height:44px;width:44px}
.shorts-viewer.is-immersive #shorts-fullscreen{margin-left:auto;background:#111b;border:1px solid #ffffff45}
.shorts-viewer.is-immersive .short-toggle{left:max(18px,env(safe-area-inset-left));top:auto;bottom:calc(14px + env(safe-area-inset-bottom));transform:none;width:44px;height:44px;opacity:1;background:#111b;border:1px solid #ffffff45}
.shorts-viewer.is-immersive .short-toggle svg{width:20px;height:20px}
.shorts-viewer.is-immersive .short-actions{right:max(18px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:44px;gap:0}
.shorts-viewer.is-immersive [data-short-sound]{display:flex;justify-content:center;min-width:44px;min-height:44px;width:44px;height:44px;padding:10px;background:#111b;border:1px solid #ffffff45;border-radius:50%}
.shorts-viewer.is-immersive .short-sound-label{display:none}
.shorts-viewer.is-immersive [data-short-sound] svg{width:20px;height:20px}
.shorts-viewer.is-immersive :is(#shorts-fullscreen,[data-close-shorts],[data-short-play],[data-short-sound]):focus-visible{outline:2px solid #ff8593;outline-offset:3px}
.shorts-viewer.is-immersive .short-error{bottom:calc(80px + env(safe-area-inset-bottom))}
@media(max-width:800px),(hover:none) and (pointer:coarse){
  .shorts-viewer .shorts-feed-controls{display:none}
}
@media(max-width:600px){
  .short-timeline{width:calc(100% - 28px);bottom:calc(8px + env(safe-area-inset-bottom))}
  .short-title{bottom:calc(118px + env(safe-area-inset-bottom))}
  .short-model{bottom:calc(82px + env(safe-area-inset-bottom))}
}
@media(max-height:500px) and (orientation:landscape){
  .short-title{bottom:calc(102px + env(safe-area-inset-bottom))}
  .short-model{bottom:calc(72px + env(safe-area-inset-bottom))}
  .short-actions{bottom:calc(65px + env(safe-area-inset-bottom));gap:2px}
}
@media(prefers-reduced-motion:reduce){.short-seek,.short-toggle{transition:none}}
.short-measured-views { display:inline-flex; align-items:center; gap:3px; color:#e4e6ec; font-size:10px; white-space:nowrap; }
.shorts-viewer.is-immersive .short-measured-views { display:none; }
.short-credit-lock { position:absolute; inset:0; z-index:8; display:grid; align-content:center; justify-items:center; gap:1rem; background:#08090c; }
.short-credit-lock[hidden],.short-teaser-label[hidden]{display:none}
.short-credit-lock{box-sizing:border-box;grid-template-rows:max-content max-content;align-content:start;gap:20px;padding:78px 24px 38px;background:linear-gradient(160deg,#171622,#090a10 65%);overflow:auto}
.shorts-grid:has(.short-card[aria-current="true"].is-premium-gated){touch-action:pan-x pan-y}
.short-premium-stills{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(230px,25vw,310px);gap:14px;width:min(100%,1060px);min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#ff687b #282936;padding-bottom:12px}
.short-premium-stills img{display:block;width:100%;height:clamp(260px,50dvh,500px);object-fit:contain;scroll-snap-align:start;border-radius:10px;border:1px solid #ffffff24;background:#090a0f}
.short-premium-stills:focus-visible{outline:2px solid #ff687b;outline-offset:4px}
.short-premium-copy{width:min(100%,380px);text-align:center}
.short-premium-copy .short-premium-kicker{margin:0 0 10px;color:#ff687b;font-size:10px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.short-premium-copy h3{margin:0 0 10px;color:#fff;font-size:clamp(23px,3vw,32px);line-height:1.1;letter-spacing:-.035em}
.short-premium-hint{margin:0 0 16px;color:#afb4c3;font-size:12px;line-height:1.6}
.short-premium-price{display:flex;justify-content:center;align-items:baseline;gap:8px;margin:0 0 16px;color:#d5d7e0;font-size:12px}
.short-premium-price strong{font-size:29px;font-weight:750;color:#f3d98a;font-variant-numeric:tabular-nums}
.short-premium-copy .button{width:100%;min-height:44px;font-size:13px}
.short-premium-replay{display:block;margin:12px auto 0;padding:5px 8px;border:0;background:none;color:#c6cbd7;text-decoration:underline;text-underline-offset:4px;font-size:11px}
.short-teaser-label{position:absolute;top:88px;left:50%;transform:translateX(-50%);z-index:6;pointer-events:none;padding:6px 10px;background:#090a0fbd;border:1px solid #ffffff25;border-radius:20px;color:#fff;font-size:10px;font-weight:650;backdrop-filter:blur(8px)}
.short-card.is-premium-gated .short-timeline,.short-card.is-premium-gated .short-toggle{visibility:hidden}
@media(max-width:600px){.short-credit-lock{padding:74px 14px 24px;gap:18px}.short-premium-stills{grid-auto-columns:88%;gap:10px}.short-premium-copy{max-width:360px}.short-premium-copy h3{font-size:27px}.short-teaser-label{top:77px}}
@media(max-height:650px){.short-credit-lock{gap:12px;padding-top:62px;padding-bottom:16px}.short-premium-stills img{height:40dvh;min-height:200px}.short-premium-copy{max-width:360px}.short-premium-copy h3{font-size:23px}.short-premium-copy .short-premium-kicker{margin-bottom:6px}.short-premium-price{margin-bottom:10px}.short-premium-hint{margin-bottom:10px}.short-premium-replay{margin-top:7px}}
@media(max-width:800px),(hover:none) and (pointer:coarse){.short-credit-lock{padding-left:8px;padding-right:8px;gap:12px}.short-premium-stills{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:6px;overflow:visible;scroll-snap-type:none;padding-bottom:0}.short-premium-stills img{height:clamp(100px,calc((100dvh - 350px)/2),240px);min-height:0;border-radius:6px;scroll-snap-align:none}.short-premium-copy{max-width:360px}}
.short-credit-lock.has-premium-preview{grid-template-rows:max-content max-content;align-content:start;gap:16px;padding:74px 12px 24px}
.short-credit-lock.has-premium-preview>.short-premium-stills{position:relative;width:min(100%,900px);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:6px;overflow:visible;scroll-snap-type:none;padding:0}
.short-credit-lock.has-premium-preview .short-premium-stills img{height:clamp(80px,calc((100dvh - 280px)/2),280px);min-height:0;border-radius:8px;scroll-snap-align:none}
.short-credit-lock.has-premium-preview>.short-premium-copy{box-sizing:border-box;width:min(100%,440px);max-width:440px;padding:0 8px}
.short-credit-lock.has-premium-preview .short-premium-copy [data-short-unlock]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 12px;min-height:54px;padding:14px 16px;border:1px solid #ffe0a0;border-radius:10px;background:linear-gradient(115deg,#ffe2a1,#dbb464);color:#201708;box-shadow:0 3px 15px #d4a94d24;font-weight:750;font-size:14px;line-height:1.4}
.short-credit-lock.has-premium-preview .short-premium-copy [data-short-unlock]:hover{background:linear-gradient(115deg,#fff0c9,#f0ca7a)}
.short-premium-quick-unlock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;display:grid;justify-items:center;align-content:center;gap:3px;width:84px;min-height:62px;padding:2px;border:0;background:none;color:#ffe2a1;cursor:pointer;font-size:12px;font-weight:650;line-height:1.2;text-shadow:0 1px 3px #000}
.short-premium-quick-unlock svg{box-sizing:border-box;display:block;width:36px;height:36px;padding:7px;border:1px solid #e4c38280;border-radius:50%;background:#090a10e8;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.short-premium-quick-unlock>span{padding:2px 5px;white-space:nowrap;border-radius:4px;background:#090a10c9}
.short-premium-quick-unlock:hover svg{background:#30291a;border-color:#ffe2a1}
.short-premium-quick-unlock:focus-visible{outline:2px solid #ffe2a1;outline-offset:2px;border-radius:6px}
.short-premium-copy .short-unlock-price{display:flex;justify-content:center;align-items:baseline;gap:5px;margin:10px 0 0;color:#f3d98a;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.short-premium-copy .short-unlock-price strong{font-size:18px;font-weight:750;color:inherit}
.short-credit-lock.has-premium-preview .short-premium-hint{margin:10px 0 0;color:#d0d2dc;font-size:12px;line-height:1.45}
.short-credit-lock.has-premium-preview .short-premium-replay{margin:7px auto 0;padding:4px 8px;font-size:11px}
@media(max-width:600px){.short-credit-lock.has-premium-preview{padding-right:6px;padding-left:6px;gap:14px}.short-credit-lock.has-premium-preview .short-premium-copy [data-short-unlock]{gap:4px 10px;padding:13px 12px;font-size:14px}}
@media(max-height:500px) and (orientation:landscape){.short-credit-lock.has-premium-preview{padding-top:62px;padding-bottom:12px;gap:10px}.short-credit-lock.has-premium-preview .short-premium-stills img{height:max(60px,calc((100dvh - 240px)/2))}}
