body.home .doty-hero-x {
  --hero-x: 0;
  --hero-y: 0;
  --hero-scroll: 0;
  --spot-x: 72%;
  --spot-y: 42%;
  position: relative;
  isolation: isolate;
  height: clamp(510px, 58vh, 620px);
  min-height: 510px;
  overflow: hidden;
  color: #fff9f3;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), #c78a5052 0 8%, transparent 29%),
    radial-gradient(circle at 74% 60%, #6f281f 0, transparent 43%),
    linear-gradient(116deg, #140b09 0%, #29120f 42%, #4b1f18 74%, #1a0d0b 100%);
  perspective: 1100px;
}
body.home .doty-hero-x::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: .23;
  background-image: repeating-radial-gradient(circle at 30% 20%, #fff 0 1px, transparent 1px 5px);
  background-size: 11px 13px;
  mix-blend-mode: soft-light;
  mask-image: linear-gradient(90deg, #000, transparent 75%);
}
body.home .doty-hero-x::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, #100907e8 0%, #21100cca 38%, transparent 67%), linear-gradient(0deg, #160a08a8, transparent 35%);
}
body.home .doty-hero-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  transform: scale(1.035) translate3d(calc(var(--hero-x) * -5px), calc(var(--hero-y) * -3px + var(--hero-scroll) * -8px), 0);
  filter: saturate(1.04) contrast(1.02);
  transition: transform .7s cubic-bezier(.2,.72,.2,1), filter .5s ease;
  animation: dotyHeroBackdrop 14s ease-in-out infinite alternate;
}
body.home .doty-hero-shell { position: relative; z-index: 3; height: 100%; display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr); align-items: center; }
body.home .doty-hero-copy { position: relative; z-index: 6; max-width: 620px; padding: 42px 0; transform: translate3d(calc(var(--hero-x) * -5px), calc(var(--hero-y) * -4px), 35px); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
body.home .doty-hero-copy .home-eyebrow { color: #e1b877; letter-spacing: 3.2px; }
body.home .doty-hero-copy .home-eyebrow::before { content: ""; display: inline-block; width: 34px; height: 1px; margin: 0 12px 3px 0; background: currentColor; }
body.home .doty-hero-copy h1 { max-width: 650px; margin: 14px 0 20px; color: #fffaf4; font-size: clamp(58px, 6.1vw, 92px); line-height: .94; letter-spacing: -4px; text-wrap: balance; text-shadow: 0 16px 42px #0800005c; }
body.home .doty-hero-copy h1 span { display: inline-block; animation: dotyHeroReveal .9s both cubic-bezier(.2,.75,.2,1); }
body.home .doty-hero-copy h1 span+span { animation-delay: .12s; }
body.home .doty-hero-copy h1 em { color: #d9a568; text-shadow: 0 0 34px #d2915269; }
body.home .doty-hero-copy p { max-width: 420px; margin: 0 0 24px; color: #eaded4; font-size: 18px; letter-spacing: .2px; }
body.home .doty-hero-primary { border-color: #b7653f; background: #b7653f; box-shadow: 0 12px 35px #0700004a, inset 0 0 0 1px #e4ad7852; }
body.home .doty-hero-primary:hover { background: #ca754e; transform: translateY(-3px); box-shadow: 0 18px 38px #07000073, 0 0 24px #c2754c38; }
body.home .doty-hero-secondary { border-color: #d9b17c8c; background: #fff0; color: #fff7ef; backdrop-filter: blur(7px); }
body.home .doty-hero-secondary:hover { border-color: #f1d0a5; background: #fff1; color: #fff; transform: translateY(-3px); }
body.home .doty-hero-stage { position: absolute; z-index: 4; width: min(50vw, 650px); height: 116%; right: -1%; bottom: -13%; transform-style: preserve-3d; transform: translate3d(calc(var(--hero-x) * 17px), calc(var(--hero-y) * 11px + var(--hero-scroll) * -18px), 0) rotateX(calc(var(--hero-y) * -2.2deg)) rotateY(calc(var(--hero-x) * 3deg)); transition: transform .22s cubic-bezier(.2,.72,.2,1); }
body.home .doty-hero-halo { position: absolute; z-index: 0; width: 430px; height: 430px; border-radius: 50%; right: 4%; top: 16%; background: radial-gradient(circle, #e0a45f38 0 18%, #8d45231e 48%, transparent 70%); border: 1px solid #d3a46d38; box-shadow: 0 0 90px #b85d3038, inset 0 0 70px #f1bf7c17; animation: dotyHeroPulse 5s ease-in-out infinite; }
body.home .doty-hero-halo::before, body.home .doty-hero-halo::after { content: ""; position: absolute; inset: 12%; border: 1px solid #dcb47d3b; border-radius: 50%; }
body.home .doty-hero-halo::after { inset: 27%; border-style: dashed; animation: dotyHeroSpin 24s linear infinite; }
body.home .doty-hero-scent { position: absolute; z-index: 2; width: 180px; height: 360px; border: 1px solid transparent; border-left-color: #e4b4718f; border-radius: 50%; filter: blur(.2px); opacity: .75; }
body.home .doty-hero-scent-a { right: 13%; top: 8%; transform: rotate(27deg); animation: dotyScentA 6s ease-in-out infinite; }
body.home .doty-hero-scent-b { right: 36%; top: 29%; transform: rotate(-18deg); animation: dotyScentB 7.5s ease-in-out infinite; }
body.home .doty-hero-signature { position: absolute; z-index: 5; right: -6px; top: 45%; color: #d4aa78a8; font: 10px/1 Arial,sans-serif; letter-spacing: 4px; writing-mode: vertical-rl; }
body.home .doty-hero-atmosphere { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
body.home .doty-hero-orbit { position: absolute; border-radius: 50%; border: 1px solid #d7a66924; }
body.home .doty-hero-orbit-a { width: 720px; height: 720px; right: -120px; top: -300px; }
body.home .doty-hero-orbit-b { width: 480px; height: 480px; right: 12%; bottom: -360px; }
body.home .doty-hero-flare { position: absolute; width: 38vw; height: 120%; right: 5%; top: -10%; background: linear-gradient(100deg, transparent 25%, #f0bd6d1c 50%, transparent 68%); transform: skewX(-16deg) translateX(calc(var(--hero-x) * 18px)); filter: blur(12px); animation: dotyHeroFlare 8s ease-in-out infinite; }
@keyframes dotyHeroReveal { from { opacity: 0; transform: translateY(28px); filter: blur(8px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes dotyHeroBackdrop { from { filter: saturate(1.01) contrast(1.02) brightness(.96); } to { filter: saturate(1.08) contrast(1.04) brightness(1.03); } }
@keyframes dotyHeroFloat { 0%,100% { transform: translateY(0) rotate(.25deg); } 50% { transform: translateY(-10px) rotate(-.25deg); } }
@keyframes dotyHeroPulse { 0%,100% { transform: scale(.96); opacity: .7; } 50% { transform: scale(1.04); opacity: 1; } }
@keyframes dotyHeroSpin { to { transform: rotate(360deg); } }
@keyframes dotyScentA { 0%,100% { transform: rotate(27deg) translateY(0); opacity: .35; } 50% { transform: rotate(34deg) translateY(-18px); opacity: .85; } }
@keyframes dotyScentB { 0%,100% { transform: rotate(-18deg) translateY(0); opacity: .2; } 50% { transform: rotate(-10deg) translateY(-22px); opacity: .65; } }
@keyframes dotyHeroFlare { 0%,100% { opacity: .45; } 50% { opacity: 1; } }
@media (max-width: 900px) {
  body.home .doty-hero-shell { grid-template-columns: 1fr .72fr; }
  body.home .doty-hero-copy h1 { font-size: clamp(54px, 8.4vw, 72px); }
  body.home .doty-hero-stage { right: -15%; width: 62vw; opacity: .82; }
}
@media (max-width: 600px) {
  body.home .doty-hero-x { display: none !important; }
  body.home .doty-hero-x::after { background: linear-gradient(90deg, #120a08f7 0%, #1d0d0bd6 54%, transparent 100%), linear-gradient(0deg, #140907bf, transparent 44%); }
  body.home .doty-hero-shell { display: block; width: calc(100% - 32px); }
  body.home .doty-hero-copy { width: 100%; max-width: none; padding: 38px 0 24px; transform: none; }
  body.home .doty-hero-copy h1 { max-width: 350px; font-size: clamp(50px, 14vw, 59px); line-height: .96; letter-spacing: -2.7px; margin: 13px 0 18px; }
  body.home .doty-hero-copy p { max-width: 255px; font-size: 15px; margin-bottom: 20px; }
  body.home .doty-hero-copy .home-buttons { width: 228px; position: relative; z-index: 8; }
  body.home .doty-hero-copy .home-button { width: 100%; min-height: 45px; }
  body.home .doty-hero-stage { width: 360px; height: 500px; right: -138px; bottom: -72px; opacity: .66; transform: translate3d(calc(var(--hero-x) * 6px), calc(var(--hero-y) * 5px), 0); }
  body.home .doty-hero-backdrop { inset: auto 0 0; height: 305px; object-position: 70% center; transform: scale(1.04) translate3d(calc(var(--hero-x) * -3px), 0, 0); }
  body.home .doty-hero-halo { width: 310px; height: 310px; right: 2%; top: 22%; }
  body.home .doty-hero-signature, body.home .doty-hero-scent { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.home .doty-hero-x *, body.home .doty-hero-x *::before, body.home .doty-hero-x *::after { animation: none !important; transition: none !important; }
  body.home .doty-hero-stage, body.home .doty-hero-copy { transform: none !important; }
}
