:root {
  --background: #000000;
  --accent: #f37021;
  --text: #ffffff;
  color-scheme: dark;
  font-family: var(--font-body);
  background: var(--color-background);
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: var(--color-background); }
body { color: var(--color-text); }
.player, .slide { width: 100vw; height: 100vh; }
.player { position: relative; isolation: isolate; background: #000; }
.slide-layer { position: absolute; inset: 0; opacity: 0; transition: opacity var(--crossfade-duration) ease-in-out; pointer-events: none; }
.slide-layer.is-active { opacity: 1; z-index: 2; }
.slide-layer.is-exiting { opacity: 0; z-index: 1; }
.slide-layer.is-entering { z-index: 2; }

.loading-screen {
  height: 100%; display: grid; place-content: center; justify-items: center; gap: 2rem;
  color: rgba(255,255,255,.65); text-transform: uppercase; letter-spacing: .24em; font-weight: 600;
}
.loading-mark { width: 4rem; height: 4rem; border: .5rem solid rgba(255,255,255,.15); border-top-color: var(--color-accent); border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.slide {
  position: relative; isolation: isolate; overflow: hidden; background:
    radial-gradient(circle at 78% 28%, rgba(243,112,33,.14), transparent 34%),
    linear-gradient(135deg, #050505, #000 70%);
}
.slide::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.34) 57%, rgba(0,0,0,.12) 100%); }
.grain { position: absolute; inset: 0; z-index: -1; opacity: .13; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); }
.slide-image { position: absolute; z-index: -2; inset: 0 0 0 var(--image-split); margin: 0; overflow: hidden; }
.slide-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.76) 0%, transparent 38%), linear-gradient(0deg, rgba(0,0,0,.24), transparent 45%); }
.slide-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.layout-image-left .slide-image { inset: 0 var(--image-split) 0 0; }
.layout-image-left .slide-image::after { background: linear-gradient(270deg, rgba(0,0,0,.76) 0%, transparent 38%), linear-gradient(0deg, rgba(0,0,0,.24), transparent 45%); }
.layout-background .slide-image { inset: 0; opacity: var(--image-opacity-background); }
.layout-background .slide-image::after { background: linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.1)), linear-gradient(0deg, rgba(0,0,0,.28), transparent 60%); }
.has-image .visual { opacity: .18; }

/* QR utilities use dedicated foreground markup, never the generic slide-image path. */
.slide.treatment-qr .visual { display: none; }
.slide.treatment-qr {
  background: radial-gradient(circle at 76% 46%, rgba(243,112,33,.3), transparent 30%), linear-gradient(135deg, #211006, #030303 72%);
}
.slide.treatment-qr::after { background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.14) 58%, transparent 100%); }
.slide.treatment-qr .slide-copy { z-index: 2; width: min(50vw, 2000px); }
.slide.treatment-qr .body-copy { color: rgba(255,255,255,.9); }
.qr-card {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: var(--safe-inline);
  width: min(32vw, 52vh);
  height: min(32vw, 52vh);
  margin: 0;
  padding: clamp(.8rem, 1vw, 2.5rem);
  transform: translateY(-45%);
  background: #fff;
  border: clamp(.22rem, .35vw, .8rem) solid #fff;
  border-radius: clamp(.5rem, .7vw, 1.5rem);
  box-shadow: 0 1.5rem 4rem rgba(0,0,0,.38), 0 0 0 clamp(.18rem, .22vw, .55rem) var(--color-accent);
  overflow: hidden;
}
.qr-card img { width: 100%; height: 100%; object-fit: contain; display: block; opacity: 1; filter: none; image-rendering: pixelated; }

/* Offer treatment makes the already-approved inventory CTA the purposeful visual. */
.slide.treatment-offer .visual,
.slide.treatment-none .visual { display: none; }
.slide.treatment-offer {
  background: radial-gradient(circle at 82% 45%, rgba(243,112,33,.32), transparent 31%), linear-gradient(135deg, #1d0d04, #030303 70%);
}
.slide.treatment-offer::after { background: linear-gradient(90deg, rgba(0,0,0,.5), rgba(0,0,0,.12) 68%, transparent); }
.slide.treatment-offer .slide-copy { width: min(55vw, 2100px); }
.slide.treatment-offer h1 { max-width: 12ch; font-size: clamp(4rem, 6.7vw, 16rem); }
.slide.treatment-offer .body-copy { max-width: 32ch; color: rgba(255,255,255,.9); }
.offer-card {
  position: absolute;
  z-index: 2;
  right: var(--safe-inline);
  top: 50%;
  width: 26vw;
  min-height: 30vh;
  transform: translateY(-42%) rotate(-1.5deg);
  display: grid;
  align-content: center;
  gap: clamp(1rem, 1.5vw, 3rem);
  padding: clamp(2rem, 3vw, 6rem);
  color: #fff;
  background: linear-gradient(150deg, #ff7d2e, #c94808);
  border: clamp(.25rem, .35vw, .8rem) solid #fff;
  box-shadow: 1.2rem 1.2rem 0 rgba(255,255,255,.14), 0 2rem 5rem rgba(0,0,0,.35);
  text-transform: uppercase;
}
.offer-card strong { font-family: var(--font-display); font-size: clamp(3rem, 5vw, 11rem); line-height: .92; letter-spacing: -.02em; }
.offer-card span { padding-top: clamp(.9rem, 1vw, 2rem); border-top: .18rem solid rgba(255,255,255,.72); font-size: clamp(1.05rem, 1.25vw, 3rem); font-weight: 700; line-height: 1.25; letter-spacing: .035em; }

.brand-lockup { position: absolute; top: var(--safe-block-start); left: var(--safe-inline); display: flex; align-items: center; gap: 1rem; font-weight: 700; font-size: clamp(1rem, 1.15vw, 2.8rem); letter-spacing: .12em; text-transform: uppercase; }
.brand-mark { width: 1.75em; height: 1.75em; border: .18em solid var(--color-accent); transform: rotate(45deg); position: relative; }
.brand-mark::after { content: ""; position: absolute; inset: 25%; background: var(--color-accent); }

.slide-copy { position: absolute; left: var(--safe-inline); top: 50%; transform: translateY(-45%); width: min(62vw, 2300px); }
.eyebrow { margin: 0 0 1.3em; color: var(--color-accent); font-size: var(--type-label); font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
h1 { margin: 0; max-width: 16ch; font-family: var(--font-display); font-size: var(--type-display-xl); line-height: var(--leading-display); letter-spacing: -.025em; text-transform: uppercase; text-wrap: balance; }
.body-copy { max-width: 36ch; margin: var(--space-copy) 0 0; color: var(--color-text-muted); font-size: var(--type-body); line-height: 1.35; }
.call-to-action { display: flex; align-items: center; gap: 1em; margin: var(--space-action) 0 0; font-size: clamp(1.05rem, 1.25vw, 3rem); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.call-to-action span { width: 3.5em; height: .24em; background: var(--color-accent); }

.review-badge { position: absolute; right: var(--safe-inline); top: var(--safe-block-start); padding: .7em 1em; border: 2px solid rgba(255,255,255,.25); color: rgba(255,255,255,.72); font-size: clamp(.7rem, .7vw, 1.7rem); font-weight: 700; letter-spacing: .12em; }
footer { position: absolute; left: var(--safe-inline); right: var(--safe-inline); bottom: var(--safe-block-end); display: flex; justify-content: flex-end; align-items: center; }
.progress { width: 12vw; height: 3px; background: rgba(255,255,255,.15); overflow: hidden; }
.progress i { display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left; background: var(--color-accent); }
.slide-layer.is-dwelling .progress i { animation: progress linear forwards; }
@keyframes progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.visual { position: absolute; z-index: -2; right: -3vw; top: 8vh; width: 48vw; height: 84vh; opacity: .84; }
.visual span { position: absolute; display: block; }
.visual-rings span { inset: 10%; border: clamp(2px, .35vw, 14px) solid var(--color-accent); border-radius: 50%; }
.visual-rings span:nth-child(2) { inset: 22%; opacity: .55; }
.visual-rings span:nth-child(3) { inset: 34%; opacity: .25; }
.visual-partners span { width: 44%; height: 78%; bottom: 0; border-radius: 48% 48% 8% 8%; background: linear-gradient(155deg, #343434, #090909 70%); transform: skew(-6deg); border-top: .55vw solid var(--accent); }
.visual-partners span:nth-child(2) { right: 5%; height: 68%; opacity: .8; transform: skew(7deg); }
.visual-partners span:nth-child(3) { left: 32%; bottom: 24%; width: 9%; height: 9%; border-radius: 50%; background: var(--color-accent); }
.visual-invitation { right: 6vw; top: 18vh; width: 35vw; height: 62vh; opacity: 1; transform: rotate(-3deg); }
.visual-invitation span:nth-child(1) { inset: 8%; border: clamp(.25rem, .45vw, 1rem) solid #fff; border-radius: clamp(.6rem, 1vw, 2rem); background: linear-gradient(145deg, rgba(243,112,33,.92), rgba(117,41,3,.88)); box-shadow: 1.4rem 1.4rem 0 rgba(255,255,255,.12); }
.visual-invitation span:nth-child(2) { left: 17%; right: 17%; top: 18%; height: 44%; border-left: clamp(.2rem, .35vw, .8rem) solid rgba(255,255,255,.9); border-bottom: clamp(.2rem, .35vw, .8rem) solid rgba(255,255,255,.9); transform: rotate(-45deg) skew(9deg, 9deg); }
.visual-invitation span:nth-child(3) { right: 4%; bottom: 4%; width: 22%; aspect-ratio: 1; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 clamp(.6rem, 1vw, 2.2rem) var(--color-accent); }
.category-referral { background: radial-gradient(circle at 80% 44%, rgba(243,112,33,.3), transparent 34%), linear-gradient(135deg, #1c0d04, #030303 72%); }
.category-referral::after { background: linear-gradient(90deg, rgba(0,0,0,.52), rgba(0,0,0,.08) 70%, transparent); }
.category-referral .slide-copy { width: min(58vw, 2200px); }
.category-referral .body-copy { color: rgba(255,255,255,.9); }
.category-referral .visual-partners { right: 2vw; opacity: 1; }
.category-referral .visual-partners span { background: linear-gradient(155deg, #f5f5f5, #727272 72%); box-shadow: 0 1rem 3rem rgba(0,0,0,.28); }
.category-referral .visual-partners span:nth-child(2) { background: linear-gradient(155deg, #ff8a42, #aa3904 72%); }
.category-referral .visual-partners span:nth-child(3) { background: #fff; }
.visual-burst { background: repeating-conic-gradient(from 8deg, rgba(243,112,33,.75) 0 4deg, transparent 4deg 13deg); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); transform: rotate(8deg); }
.visual-stripes span { inset: 0 32% 0 auto; width: 16%; background: var(--color-accent); transform: skew(-12deg); }
.visual-stripes span:nth-child(2) { right: 8%; opacity: .38; }
.visual-stripes span:nth-child(3) { right: -16%; opacity: .16; }
.visual-water span { width: 45%; aspect-ratio: 1; right: 12%; bottom: 10%; border-radius: 55% 45% 52% 48%; border: .45vw solid var(--color-accent); transform: rotate(45deg); }
.visual-water span:nth-child(2) { width: 24%; right: 0; bottom: 48%; opacity: .5; }
.visual-water span:nth-child(3) { width: 12%; right: 35%; bottom: 56%; opacity: .25; }

.layout-image-left .visual { left: -2vw; right: auto; }
.layout-image-left .slide-copy { left: auto; right: var(--safe-inline); width: 52vw; }
.layout-image-left .brand-lockup { left: auto; right: var(--safe-inline); }
.layout-image-left .review-badge { right: auto; left: var(--safe-inline); }
.layout-image-right .slide-copy { width: 48vw; }
.layout-image-right h1 { max-width: 11ch; font-size: var(--type-display-lg); }
.layout-quote-story h1 { max-width: 13ch; font-size: clamp(5rem, 8.4vw, 20rem); }
.layout-quote-story h1::before { content: "“"; position: absolute; left: -.45em; top: -.1em; color: var(--accent); opacity: .8; }

.diagnostics { position: fixed; z-index: 20; right: 1.5rem; bottom: 1.5rem; width: min(34rem, calc(100vw - 3rem)); max-height: calc(100vh - 3rem); overflow: auto; padding: 1.25rem 1.5rem; color: #d9fbe1; background: rgba(4,12,8,.94); border: 1px solid rgba(119,255,158,.35); border-radius: .6rem; box-shadow: 0 1rem 4rem rgba(0,0,0,.5); font: .8rem/1.35 ui-monospace, Consolas, monospace; }
.diagnostics h2 { margin: 0 0 .9rem; font: 700 .9rem/1.2 ui-monospace, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.diagnostics dl { display: grid; grid-template-columns: 8.5rem 1fr; gap: .75rem; margin: .3rem 0; }
.diagnostics dt { color: rgba(217,251,225,.55); }
.diagnostics dd { margin: 0; overflow-wrap: anywhere; }

@media (max-aspect-ratio: 4/3) {
  .slide-copy { width: 76vw; }
  .visual { opacity: .45; width: 64vw; }
  h1 { font-size: clamp(4rem, 12vw, 10rem); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; }
  .slide-layer { transition-duration: .01ms; }
}
