:root { color-scheme: dark; }
html, body { margin: 0; min-height: 100%; background: #080908; }
body.d92ss-standalone { overflow: hidden; }
* { box-sizing: border-box; }

.d92ss-screen {
  --gold: #bd9a55;
  --safe: clamp(24px, 2.2vw, 48px);
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 100vh;
  overflow: hidden;
  background: var(--d92-bg, #090a09);
  color: var(--d92-text, #f6f3ed);
  font-family: Arial, Helvetica, sans-serif;
  isolation: isolate;
}
.d92ss-screen::before,
.d92ss-screen::after {
  content: '';
  position: absolute;
  z-index: 1;
  background: var(--gold);
  opacity: .72;
  pointer-events: none;
}
.d92ss-screen::before { left: var(--safe); top: 24px; width: 36px; height: 2px; }
.d92ss-screen::after { left: 8%; right: 8%; top: 50%; height: 1px; opacity: .12; }

.d92ss-stage, .d92ss-panel { position: absolute; z-index: 3; }
.d92ss-stage { overflow: hidden; }
.d92ss-panel { display: grid; align-content: start; min-width: 0; }
.d92ss-copy { min-width: 0; overflow: hidden; visibility: visible; }
.d92ss-copy.is-measuring, .d92ss-screen.is-composing .d92ss-copy { visibility: hidden; }

.d92ss-backdrop {
  position: absolute; inset: -8%; width: 116%; height: 116%; object-fit: cover;
  filter: blur(30px) brightness(.42) saturate(.9); transform: scale(1.05); opacity: 0;
}
.d92ss-media-single { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.d92ss-photo, .d92ss-video { display: block; max-width: 100%; max-height: 100%; object-fit: cover; }
.d92ss-video { opacity: 0; transition: opacity .45s ease; }
.d92ss-screen.video-playing .d92ss-video { opacity: 1; }
.d92ss-screen.video-playing .d92ss-photo { opacity: 0; }
.d92ss-stage-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.25), transparent 26%, transparent 74%, rgba(0,0,0,.18)); }

.d92ss-brand { min-width: 0; }
.d92ss-brand-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.d92ss-logo { display: block; width: clamp(180px, 15vw, 300px); max-height: 112px; object-fit: contain; object-position: left center; }
.d92ss-instagram { display: flex; align-items: center; gap: 10px; font-size: clamp(17px, 1.15vw, 23px); font-weight: 700; line-height: 1; white-space: nowrap; }
.d92ss-instagram-icon { width: 1.3em; height: 1.3em; flex: 0 0 auto; }

.d92ss-kicker { margin-bottom: 12px; color: var(--gold); font-size: clamp(13px, .82vw, 17px); font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.d92ss-caption-heading { white-space: pre-line; text-wrap: balance; margin: 0; max-width: 100%; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(48px, 4.4vw, 88px); line-height: .94; letter-spacing: -.035em; }
.type-bold .d92ss-caption-heading { font-family: Arial, Helvetica, sans-serif; font-weight: 800; text-transform: uppercase; line-height: .88; letter-spacing: -.055em; }
.type-editorial .d92ss-caption-heading { font-style: italic; font-weight: 500; line-height: .95; }
.d92ss-caption-body { margin-top: clamp(16px, 1.2vw, 24px); max-width: 48ch; font-size: clamp(17px, 1.15vw, 22px); line-height: 1.38; color: rgba(246,243,237,.92); }
.d92ss-subheading { display: none !important; }
.d92ss-engagement { display: flex; gap: 22px; margin-top: 18px; font-size: clamp(16px, 1vw, 20px); }
.d92ss-engagement span { display: inline-flex; align-items: center; gap: 7px; }
.d92ss-engagement svg { width: 1.15em; height: 1.15em; }

/* Global chrome: consistent, readable and always aligned. */
.d92ss-global-identity,
.d92ss-follow { position: absolute; z-index: 50; bottom: 22px; }
.d92ss-global-identity { left: var(--safe); display: flex; align-items: center; gap: 11px; font-size: clamp(17px, 1.1vw, 22px); font-weight: 700; }
.d92ss-global-identity svg { width: 1.35em; height: 1.35em; }
.d92ss-follow { right: var(--safe); display: flex; align-items: center; gap: 11px; padding: 8px 10px; background: rgba(4,5,4,.7); backdrop-filter: blur(8px); }
.d92ss-qr { width: clamp(48px, 3.6vw, 70px); height: clamp(48px, 3.6vw, 70px); object-fit: contain; background: #fff; }
.d92ss-follow strong, .d92ss-follow span { display: block; }
.d92ss-follow strong { font-size: clamp(16px, 1vw, 20px); }
.d92ss-follow span { margin-top: 2px; font-size: clamp(14px, .82vw, 17px); }

.d92ss-media-badge { position: absolute; left: 12px; bottom: 12px; z-index: 20; display: flex; gap: 7px; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.d92ss-media-badge span:empty { display: none; }
.d92ss-media-badge span { padding: 4px 6px; border: 1px solid rgba(255,255,255,.32); background: rgba(0,0,0,.5); }
.d92ss-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; z-index: 60; background: rgba(255,255,255,.08); }
.d92ss-progress span { display: block; width: 0; height: 100%; background: var(--gold); }

/* Single photo layouts */
.layout-photo-left .d92ss-stage,
.layout-photo-right .d92ss-stage { top: 30px; bottom: 92px; width: 58%; }
.layout-photo-left .d92ss-stage { left: 28px; }
.layout-photo-right .d92ss-stage { right: 28px; }
.layout-photo-left .d92ss-panel,
.layout-photo-right .d92ss-panel { top: 56px; bottom: 100px; width: 36%; grid-template-rows: auto 1fr; gap: 34px; }
.layout-photo-left .d92ss-panel { right: 4.2%; }
.layout-photo-right .d92ss-panel { left: 4.2%; }
.layout-photo-left .d92ss-photo,
.layout-photo-right .d92ss-photo { width: 100%; height: 100%; object-fit: contain; }
.layout-photo-left .d92ss-copy,
.layout-photo-right .d92ss-copy { align-self: center; max-width: 100%; }
.layout-photo-left.logo-media-edge .d92ss-brand,
.layout-photo-right.logo-media-edge .d92ss-brand { transform: translateX(-9%); z-index: 8; }

.layout-photo-hero .d92ss-stage { inset: 24px 24px 100px; }
.layout-photo-hero .d92ss-photo { width: 100%; height: 100%; object-fit: cover; }
.layout-photo-hero .d92ss-panel { left: 5%; right: 5%; bottom: 100px; min-height: 190px; padding: 24px 30px; grid-template-columns: minmax(180px, .35fr) minmax(420px, 1fr); gap: 48px; align-items: end; background: linear-gradient(0deg, rgba(0,0,0,.86), rgba(0,0,0,.16)); }
.layout-photo-hero .d92ss-caption-heading { font-size: clamp(46px, 4.7vw, 92px); }
.layout-photo-hero .d92ss-caption-body { max-width: 62ch; }

/* Polaroids: large, central and with the earlier image clearly visible. */
.layout-polaroid .d92ss-stage { left: 2.5%; top: 26px; bottom: 92px; width: 65%; }
.layout-polaroid .d92ss-panel { right: 3.5%; top: 48px; bottom: 100px; width: 28%; grid-template-rows: auto 1fr; gap: 30px; }
.layout-polaroid .d92ss-copy { align-self: center; }
.layout-polaroid .d92ss-caption-heading { font-size: clamp(46px, 3.7vw, 74px); }
.layout-polaroid .d92ss-caption-body { max-width: 38ch; }
.layout-polaroid .d92ss-collage { position: absolute; inset: 0; }
.layout-polaroid .d92ss-collage-card { position: absolute; top: 8%; width: min(47%, 520px); height: 84%; padding: 12px 12px 46px; background: #f2eee5; box-shadow: 0 22px 45px rgba(0,0,0,.35); opacity: 0; transform: translateY(30px) rotate(-4deg) scale(.96); transition: transform .75s cubic-bezier(.2,.8,.2,1), opacity .55s; }
.layout-polaroid .d92ss-collage-card:nth-child(odd) { left: 7%; }
.layout-polaroid .d92ss-collage-card:nth-child(even) { right: 6%; transform: translateY(30px) rotate(3deg) scale(.96); }
.layout-polaroid .d92ss-collage-card.is-visible { opacity: 1; transform: translateY(0) rotate(-3deg) scale(1); }
.layout-polaroid .d92ss-collage-card:nth-child(even).is-visible { transform: translateY(0) rotate(2.5deg) scale(1); }
.layout-polaroid .d92ss-collage-card img { width: 100%; height: 100%; object-fit: cover; }

/* Three-image editorial mosaic: no direct covering. */
.layout-mosaic .d92ss-stage { left: 3%; top: 34px; bottom: 96px; width: 64%; }
.layout-mosaic .d92ss-panel { right: 3.5%; top: 46px; bottom: 100px; width: 27%; grid-template-rows: auto 1fr; gap: 28px; }
.layout-mosaic .d92ss-collage { position: absolute; inset: 0; display: grid; grid-template-columns: 1.18fr .82fr; grid-template-rows: 1fr 1fr; gap: 10px; }
.layout-mosaic .d92ss-collage-card { position: relative; opacity: 0; transform: translateY(22px); transition: .65s ease; overflow: hidden; }
.layout-mosaic .d92ss-collage-card:first-child { grid-row: 1 / 3; }
.layout-mosaic .d92ss-collage-card.is-visible { opacity: 1; transform: none; }
.layout-mosaic .d92ss-collage-card img { width: 100%; height: 100%; object-fit: cover; }

/* Four-plus image header grid: full-width header and larger images. */
.layout-gallery-header .d92ss-panel { left: 4.5%; right: 4.5%; top: 34px; height: 25%; display: grid; grid-template-columns: minmax(190px, .28fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.layout-gallery-header .d92ss-copy { display: grid; grid-template-columns: minmax(300px, .7fr) minmax(300px, 1fr); gap: 40px; align-items: center; overflow: visible; }
.layout-gallery-header .d92ss-caption-body { margin-top: 0; max-width: 58ch; }
.layout-gallery-header .d92ss-caption-heading { font-size: clamp(42px, 3.6vw, 70px); }
.layout-gallery-header .d92ss-stage { left: 4.5%; right: 4.5%; top: 29%; bottom: 92px; }
.layout-gallery-header .d92ss-collage { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--gallery-count, 4), minmax(0, 1fr)); gap: 12px; }
.layout-gallery-header .d92ss-collage-card { position: relative; opacity: 0; transform: translateY(28px); transition: .6s ease; overflow: hidden; }
.layout-gallery-header .d92ss-collage-card.is-visible { opacity: 1; transform: none; }
.layout-gallery-header .d92ss-collage-card img { width: 100%; height: 100%; object-fit: cover; }

/* Mixed carousels: retain the successful continuous story deck. */
.layout-story .d92ss-stage { left: 2.8%; top: 30px; bottom: 92px; width: 60.5%; }
.layout-story .d92ss-panel { right: 3.5%; top: 46px; bottom: 100px; width: 29%; grid-template-rows: auto 1fr; gap: 30px; }
.layout-story .d92ss-copy { align-self: center; }
.layout-story .d92ss-collage { position: absolute; inset: 2%; }
.layout-story .d92ss-collage-card { position: absolute; top: 4%; bottom: 4%; left: 17%; width: 56%; opacity: 0; transform: translateX(62%) scale(.88) rotate(3deg); transition: transform .9s cubic-bezier(.16,1,.3,1), opacity .55s ease, filter .65s ease; overflow: hidden; box-shadow: 0 20px 40px rgba(0,0,0,.35); }
.layout-story .d92ss-collage-card.is-visible { opacity: 1; }
.layout-story .d92ss-collage-card.is-active { transform: translateX(0) scale(1) rotate(0); filter: brightness(1); }
.layout-story .d92ss-collage-card.is-next { transform: translateX(66%) scale(.875) rotate(2.5deg); filter: brightness(.92); }
.layout-story .d92ss-collage-card.is-past { transform: translateX(-64%) scale(.84) rotate(-2.5deg); opacity: .68; filter: brightness(.82); }
.layout-story .d92ss-collage-card.is-future { opacity: 0; }
.layout-story .d92ss-collage-card img,
.layout-story .d92ss-card-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.layout-story .d92ss-card-video { opacity: 0; transition: opacity .35s; }
.layout-story .d92ss-collage-card.video-ready .d92ss-card-video { opacity: 1; }

/* Reels: every layout uses a near-full-height 3:4 crop. */
.layout-reel-left .d92ss-stage,
.layout-reel-right .d92ss-stage,
.layout-reel-cover .d92ss-stage { top: 22px; bottom: 82px; width: 58%; }
.layout-reel-left .d92ss-stage { right: 20px; }
.layout-reel-right .d92ss-stage { left: 20px; }
.layout-reel-cover .d92ss-stage { right: 20px; width: 62%; }
.layout-reel-left .d92ss-panel,
.layout-reel-right .d92ss-panel,
.layout-reel-cover .d92ss-panel { top: 46px; bottom: 96px; width: 36%; grid-template-rows: auto 1fr; gap: 30px; }
.layout-reel-left .d92ss-panel { left: 4.2%; }
.layout-reel-right .d92ss-panel { right: 4.2%; }
.layout-reel-cover .d92ss-panel { left: 3.8%; width: 32%; }
.layout-reel-left .d92ss-backdrop,
.layout-reel-right .d92ss-backdrop,
.layout-reel-cover .d92ss-backdrop { opacity: .9; }
.layout-reel-left .d92ss-media-single,
.layout-reel-right .d92ss-media-single,
.layout-reel-cover .d92ss-media-single { padding: 8px 4%; }
.layout-reel-left .d92ss-photo, .layout-reel-left .d92ss-video,
.layout-reel-right .d92ss-photo, .layout-reel-right .d92ss-video,
.layout-reel-cover .d92ss-photo, .layout-reel-cover .d92ss-video {
  height: 100%; width: auto; aspect-ratio: 3 / 4; max-width: 92%; object-fit: cover; box-shadow: 0 18px 45px rgba(0,0,0,.4);
}
.layout-reel-left .d92ss-copy,
.layout-reel-right .d92ss-copy,
.layout-reel-cover .d92ss-copy { align-self: center; }
.layout-reel-left .d92ss-caption-heading,
.layout-reel-right .d92ss-caption-heading,
.layout-reel-cover .d92ss-caption-heading { font-size: clamp(58px, 5vw, 102px); }
.layout-reel-left .d92ss-caption-body,
.layout-reel-right .d92ss-caption-body,
.layout-reel-cover .d92ss-caption-body { max-width: 46ch; font-size: clamp(18px, 1.25vw, 24px); }
.layout-reel-cover .d92ss-panel { z-index: 8; }
.layout-reel-cover .d92ss-stage::after { content: ''; position: absolute; inset: 0 auto 0 0; width: 30%; background: linear-gradient(90deg, rgba(0,0,0,.64), transparent); }

.logo-none .d92ss-brand { display: none; }
.logo-middle .d92ss-brand { align-self: center; }
.logo-media-edge .d92ss-brand { z-index: 15; }

.d92ss-collage-card { margin: 0; }
.d92ss-card-count { position: absolute; right: 8px; bottom: 8px; z-index: 10; padding: 3px 5px; background: rgba(0,0,0,.65); color: #fff; font-size: 10px; }

.motion-lines .d92ss-caption-heading::after { content: ''; display: block; width: 74px; height: 2px; margin-top: 18px; background: var(--gold); transform-origin: left; animation: d92-line .8s .25s both; }
.motion-rise.is-ready .d92ss-caption-heading { animation: d92-rise .7s both; }
.motion-rise.is-ready .d92ss-caption-body { animation: d92-rise .7s .12s both; }
.motion-wipe.is-ready .d92ss-caption-heading { clip-path: inset(0 100% 0 0); animation: d92-wipe .9s .08s both; }
@keyframes d92-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes d92-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes d92-wipe { to { clip-path: inset(0 0 0 0); } }

.d92ss-empty-state { position: absolute; inset: 0; display: grid; place-content: center; gap: 14px; text-align: center; }
.d92ss-empty-state[hidden] { display: none; }
.d92ss-empty-state img { width: 260px; margin: auto; }

@media (max-aspect-ratio: 4/3) {
  .d92ss-caption-body { font-size: 16px; }
  .d92ss-follow { display: none; }
}

/* v4 refinement overrides */
.d92ss-photo, .d92ss-video { grid-area: 1 / 1; }
.d92ss-video { position: relative; z-index: 2; }
.d92ss-photo { position: relative; z-index: 1; transition: opacity .35s ease; }
.d92ss-screen.video-playing .d92ss-photo { opacity: 1; }
.d92ss-logo { width: clamp(230px, 18vw, 350px); max-height: 132px; }
.d92ss-global-identity { font-size: clamp(21px, 1.35vw, 28px); gap: 13px; }
.d92ss-global-identity svg { width: 1.45em; height: 1.45em; }
.d92ss-caption-body { font-size: clamp(19px, 1.28vw, 25px); line-height: 1.4; }
.d92ss-engagement { font-size: clamp(18px, 1.15vw, 23px); }
.layout-polaroid .d92ss-stage { width: 62%; }
.layout-polaroid .d92ss-panel { width: 32%; }
.layout-polaroid .d92ss-caption-body { max-width: 46ch; }
.layout-story .d92ss-stage { width: 62%; }
.layout-story .d92ss-panel { width: 31%; }
.layout-gallery-header .d92ss-panel { height: 29%; grid-template-columns: minmax(250px, .32fr) minmax(0, 1fr); }
.layout-gallery-header .d92ss-stage { top: 33%; }
.layout-gallery-header .d92ss-copy { grid-template-columns: minmax(420px, .9fr) minmax(360px, 1fr); }
.layout-gallery-header .d92ss-caption-heading { font-size: clamp(48px, 4.2vw, 82px); }
.layout-gallery-header .d92ss-caption-body { font-size: clamp(18px, 1.18vw, 23px); }
.layout-reel-left .d92ss-stage,
.layout-reel-right .d92ss-stage { width: 62%; }
.layout-reel-cover .d92ss-stage { width: 65%; }
.layout-reel-left .d92ss-panel,
.layout-reel-right .d92ss-panel { width: 33%; }
.layout-reel-cover .d92ss-panel { width: 31%; }


/* v4.0.1: more breathing room and smoother continuous-carousel motion. */
.layout-story .d92ss-panel { padding-left: clamp(18px, 1.7vw, 34px); }
.layout-story.is-ready .d92ss-brand { animation: d92-story-brand .7s .08s cubic-bezier(.16,1,.3,1) both; }
.layout-story.is-ready .d92ss-copy { animation: d92-story-copy .8s .16s cubic-bezier(.16,1,.3,1) both; }
.layout-story.is-ready .d92ss-meta { animation: d92-story-copy .7s .28s cubic-bezier(.16,1,.3,1) both; }
.layout-story .d92ss-collage-card.is-active { animation: d92-story-settle .72s cubic-bezier(.16,1,.3,1) both; }
.layout-story .d92ss-collage-card.is-next { transform-origin: 50% 50%; }
.layout-story .d92ss-collage-card img { transform: scale(1.025); transition: transform 5.5s ease-out; }
.layout-story .d92ss-collage-card.is-active img { transform: scale(1); }
@keyframes d92-story-brand { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes d92-story-copy { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
@keyframes d92-story-settle { 0% { transform: translateX(7%) scale(.97) rotate(.8deg); } 100% { transform: translateX(0) scale(1) rotate(0); } }

@media (max-aspect-ratio: 16/10) {
  .layout-story .d92ss-stage { width: 59%; }
  .layout-story .d92ss-panel { width: 30%; }
}
