/* ===== ah- block: glass nav + cinematic hero. Self-contained; lifts into Elementor HTML widget. ===== */
.ah-nav { position: absolute; top: 24px; left: clamp(18px, 3.5vw, 54px); right: clamp(18px, 3.5vw, 54px); z-index: 220; display: flex; align-items: center; justify-content: space-between; color: #fff; }
.ah-nav-glass { position: relative; display: flex; align-items: center; gap: clamp(28px, 6vw, 96px); padding: 9px 10px 9px 20px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 18px; background: rgba(11, 12, 13, 0.24); box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.16), 0 14px 40px rgba(0, 0, 0, 0.15); backdrop-filter: blur(12px) saturate(1.2); -webkit-backdrop-filter: blur(12px) saturate(1.2); }
.ah-wordmark { white-space: nowrap; font: 500 18px "Fraunces", serif; letter-spacing: -0.01em; color: #fff; text-decoration: none; }
.ah-wordmark span { color: #C9A227; }
.ah-links { display: flex; align-items: center; gap: 6px; }
.ah-links a { padding: 8px 12px; border-radius: 999px; color: rgba(255, 255, 255, 0.8); font: 500 10px "Inter", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; transition: 0.25s; }
.ah-links a:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.ah-nav-right { display: flex; align-items: center; gap: 16px; }
.ah-phone { color: rgba(255, 255, 255, 0.75); font: 500 11px "Inter", sans-serif; letter-spacing: 0.06em; text-decoration: none; text-shadow: 0 1px 10px rgba(4, 5, 6, 0.85), 0 0 2px rgba(4, 5, 6, 0.6); }
.ah-phone:hover { color: #fff; }
.ah-contact { padding: 12px 20px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; background: rgba(11, 12, 13, 0.28); box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.18); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: #fff; font: 600 10px "Inter", sans-serif; letter-spacing: 0.11em; text-transform: uppercase; text-decoration: none; transition: 0.25s; }
.ah-contact:hover { background: #fff; color: #141516; }
.ah-menu-button { display: none; width: 38px; height: 34px; border: 0; background: none; cursor: pointer; }
.ah-menu-button span { display: block; width: 19px; height: 1px; margin: 5px auto; background: #fff; }
.ah-mobile { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; background: rgba(11, 12, 13, 0.94); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); opacity: 0; pointer-events: none; visibility: hidden; transition: opacity 0.35s, visibility 0s linear 0.35s; }
.ah-mobile.open { opacity: 1; pointer-events: auto; visibility: visible; transition: opacity 0.35s; }
.ah-mobile > a { color: #fff; font: 400 28px "Fraunces", serif; text-decoration: none; }
.ah-mobile-contact { margin-top: 10px; padding: 12px 22px; border-radius: 999px; background: #fff; color: #141516 !important; font: 600 11px "Inter", sans-serif !important; letter-spacing: 0.11em; text-transform: uppercase; }
.ah-mobile-close { position: absolute; top: 22px; right: 24px; border: 0; background: none; color: #fff; font: 300 42px/1 sans-serif; cursor: pointer; }
@media (max-width: 980px) {
  .ah-links { display: none; }
  .ah-menu-button { display: block; }
  .ah-nav-glass { gap: 18px; padding-right: 12px; }
  .ah-phone { display: none; }
}
@media (max-width: 600px) {
  .ah-nav { top: 16px; left: 16px; right: 16px; }
  .ah-nav-glass { padding: 7px 8px 7px 15px; border-radius: 15px; }
  .ah-contact { padding: 11px 14px; font-size: 9px; }
  .ah-wordmark { font-size: 15px; }
}

/* ---- cinematic hero stages ---- */
.ah-hero { position: relative; isolation: isolate; height: 100vh; height: 100svh; min-height: 0; max-height: 100vh; overflow: hidden; background: #0b0c0d; color: #fff; }
.ah-hero::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 120px; z-index: 3; pointer-events: none; background: linear-gradient(180deg, rgba(4, 5, 6, 0.55), transparent); }
.ah-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 130px; z-index: 5; pointer-events: none; background: linear-gradient(0deg, rgba(4, 5, 6, 0.66), transparent); }
.ah-stage { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; overflow: hidden; opacity: 0; visibility: hidden; transform: scale(1.035); transition: opacity 0.42s ease, transform 0.72s cubic-bezier(0.2, 0.75, 0.2, 1), visibility 0s linear 0.46s; }
.ah-stage.is-active { z-index: 2; opacity: 1; visibility: visible; transform: scale(1); transition-delay: 0s; }
.ah-stage img { width: 100%; height: 100%; object-fit: cover; }
.ah-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 5, 6, 0.72) 0%, rgba(4, 5, 6, 0.22) 48%, rgba(4, 5, 6, 0.42) 100%), linear-gradient(0deg, rgba(4, 5, 6, 0.62), transparent 45%); }
[data-ah-stage="room"] .ah-shade { background: linear-gradient(90deg, rgba(4, 5, 6, 0.9) 0%, rgba(4, 5, 6, 0.4) 50%, rgba(4, 5, 6, 0.62) 100%), linear-gradient(0deg, rgba(4, 5, 6, 0.85), transparent 60%); }
.ah-intro { text-align: center; perspective: 900px; }
.ah-intro > p { margin: 0 0 18px; color: rgba(255, 255, 255, 0.5); font: 500 10px "Inter", sans-serif; letter-spacing: 0.32em; text-transform: uppercase; opacity: 0; animation: ah-rise 0.7s 0.15s forwards; }
.ah-intro h1 { margin: 0; font: 400 clamp(52px, 7.6vw, 112px)/0.98 "Fraunces", serif; letter-spacing: -0.02em; }
.ah-intro h1 span { display: block; opacity: 0; transform: translateY(25px); animation: ah-rise 0.65s forwards; }
.ah-intro h1 span:nth-child(1) { animation-delay: 0.25s; }
.ah-intro h1 span:nth-child(2) { color: #E2BC4D; animation-delay: 0.38s; }
.ah-intro h1 span:nth-child(3) { animation-delay: 0.5s; }
.ah-stage.is-exploding .ah-intro h1 span:nth-child(1) { animation: ah-explode-left 0.8s forwards; }
.ah-stage.is-exploding .ah-intro h1 span:nth-child(2) { animation: ah-explode-up 0.8s forwards; }
.ah-stage.is-exploding .ah-intro h1 span:nth-child(3) { animation: ah-explode-right 0.8s forwards; }
.ah-tedx { perspective: 1400px; }
.ah-frame { position: absolute; inset: -4%; width: 108%; height: 108%; opacity: 0; transform: scale(1.06) translate3d(1.5%, 0, 0); filter: blur(0); transition: opacity 0.38s ease, transform 1.15s cubic-bezier(0.2, 0.65, 0.2, 1), filter 0.32s; }
.ah-frame.is-frame-active { opacity: 1; transform: scale(1) translate3d(-1.5%, 0, 0); filter: blur(0); }
.ah-frame.is-frame-exit { opacity: 0; transform: scale(1.06) translate3d(-1.5%, 0, 0); filter: blur(0); }
.ah-frame img { object-position: center; }
.ah-role { position: absolute; left: clamp(24px, 7vw, 104px); bottom: clamp(86px, 13vh, 150px); z-index: 4; max-width: 720px; }
.ah-role small, .ah-finale-copy small { display: block; margin-bottom: 14px; color: rgba(255, 255, 255, 0.56); font: 500 10px "Inter", sans-serif; letter-spacing: 0.28em; text-transform: uppercase; }
.ah-role strong { display: block; font: 400 clamp(40px, 5.6vw, 82px)/1 "Fraunces", serif; letter-spacing: -0.015em; opacity: 0; transform: translateY(18px); transition: opacity 0.42s 0.08s ease, transform 0.42s 0.08s ease; }
.ah-stage.is-active .ah-role strong { opacity: 1; transform: none; }
.ah-still > img { position: absolute; inset: -4%; width: 108%; height: 108%; transform: scale(1.06) translate3d(1.5%, 0, 0); transition: transform 1.25s cubic-bezier(0.2, 0.65, 0.2, 1); }
.ah-still.is-active > img { transform: scale(1) translate3d(-1.5%, 0, 0); }
.ah-finale > img { position: absolute; inset: 0; filter: saturate(0.85); transform: scale(1.06); transition: transform 1.2s ease; }
.ah-finale.is-active > img { transform: scale(1); }
.ah-finale-copy { position: relative; z-index: 4; text-align: center; }
.ah-finale-copy strong { display: block; font: 400 clamp(58px, 9vw, 138px)/0.95 "Fraunces", serif; letter-spacing: 0; }
.ah-finale-copy strong:after { content: ""; display: block; width: 0; height: 3px; margin: 18px auto 0; background: #C9A227; transition: width 0.9s 0.4s; }
.ah-finale.is-active .ah-finale-copy strong:after { width: 72px; }
.ah-progress { position: absolute; z-index: 10; left: clamp(24px, 4vw, 58px); right: clamp(24px, 4vw, 58px); bottom: 26px; height: 1px; background: rgba(255, 255, 255, 0.18); }
.ah-progress i { display: block; width: 0; height: 1px; background: #E2BC4D; }
.ah-hero.is-running .ah-progress i { animation: ah-progress 14s linear forwards; }
.ah-scroll { position: absolute; z-index: 10; left: 50%; bottom: 40px; display: flex; flex-direction: column; align-items: center; gap: 9px; color: rgba(255, 255, 255, 0.7); font: 500 9px "Inter", sans-serif; letter-spacing: 0.24em; text-transform: uppercase; transform: translateX(-50%); }
.ah-scroll i { width: 1px; height: 26px; background: rgba(255, 255, 255, 0.45); }
.ah-skip { position: absolute; right: clamp(24px, 4vw, 58px); bottom: 39px; z-index: 12; border: 0; background: none; color: rgba(255, 255, 255, 0.55); font: 500 9px "Inter", sans-serif; letter-spacing: 0.18em; text-transform: uppercase; cursor: pointer; }
.ah-skip:hover { color: #fff; }
.ah-hero.is-skipped .ah-skip { display: none; }
@keyframes ah-rise { to { opacity: 1; transform: none; } }

/* ---- review rail (right side of hero, port of Seth's cine-reviews) ---- */
.ah-reviews { position: absolute; top: 50%; right: clamp(22px, 3.8vw, 58px); z-index: 24; width: min(315px, 24vw); opacity: 0; transform: translate3d(22px, -44%, 0); transition: opacity 0.8s, transform 0.8s; pointer-events: none; }
.ah-reviews.is-visible { opacity: 1; transform: translate3d(0, -44%, 0); pointer-events: auto; }
.ah-reviews-label { display: flex; align-items: center; gap: 9px; margin: 0 0 13px; color: rgba(255, 255, 255, 0.56); font: 500 8px "Inter", sans-serif; letter-spacing: 0.23em; text-transform: uppercase; }
.ah-reviews-label::before { content: ""; width: 20px; height: 1px; background: #C9A227; }
.ah-review-stack { position: relative; height: 262px; perspective: 900px; transform-style: preserve-3d; transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1); }
.ah-review { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 22px 21px 19px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 18px; background: linear-gradient(145deg, rgba(255, 255, 255, 0.095), rgba(255, 255, 255, 0.025)); box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.22), 0 22px 55px rgba(0, 0, 0, 0.22); backdrop-filter: blur(16px) saturate(1.25); -webkit-backdrop-filter: blur(16px) saturate(1.25); opacity: 0; transform: translate3d(18px, 12px, -50px) scale(0.94); transition: opacity 0.55s, transform 0.65s cubic-bezier(0.2, 0.8, 0.2, 1); pointer-events: none; }
.ah-review::before { content: "\201C"; position: absolute; top: 4px; right: 16px; color: rgba(201, 162, 39, 0.6); font: 400 52px/1 "Fraunces", serif; }
.ah-review.is-active { z-index: 3; opacity: 1; transform: none; pointer-events: auto; }
.ah-review.is-next { z-index: 2; opacity: 0.48; transform: translate3d(11px, 12px, -30px) scale(0.965); }
.ah-review.is-after { z-index: 1; opacity: 0.22; transform: translate3d(20px, 23px, -60px) scale(0.93); }
.ah-review-stars { color: #E2BC4D; font: 500 9px "Inter", sans-serif; letter-spacing: 0.16em; }
.ah-review blockquote { margin: 15px 0 16px; color: rgba(255, 255, 255, 0.92); font: 400 clamp(15px, 1.25vw, 18px)/1.5 "Fraunces", serif; letter-spacing: -0.01em; }
.ah-review footer { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.ah-review-avatar { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.3); }
.ah-review-person strong { display: block; color: #fff; font: 600 10.5px "Inter", sans-serif; letter-spacing: 0.04em; }
.ah-review-person span { display: block; margin-top: 3px; color: rgba(255, 255, 255, 0.5); font: 400 8px/1.35 "Inter", sans-serif; letter-spacing: 0.07em; text-transform: uppercase; }
.ah-review-controls { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }
.ah-review-dots { display: flex; gap: 7px; }
.ah-review-dots button { width: 20px; height: 2px; padding: 0; border: 0; background: rgba(255, 255, 255, 0.22); cursor: pointer; transition: 0.3s; }
.ah-review-dots button.is-active { width: 35px; background: #C9A227; }
.ah-review-arrows { display: flex; gap: 7px; }
.ah-review-arrows button { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 50%; background: rgba(255, 255, 255, 0.04); color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); cursor: pointer; transition: 0.25s; }
.ah-review-arrows button:hover { background: rgba(255, 255, 255, 0.14); }
@media (min-width: 981px) and (max-width: 1280px) { .ah-role { max-width: calc(100% - 380px); } }
@media (max-width: 980px) { .ah-reviews { display: none; } }
@media (prefers-reduced-motion: reduce) { .ah-reviews, .ah-review { transition: none; } .ah-review:not(.is-active) { display: none; } }
@keyframes ah-explode-left { to { opacity: 0; transform: translate3d(-55vw, -12vh, 300px) rotate(-12deg); filter: blur(12px); } }
@keyframes ah-explode-right { to { opacity: 0; transform: translate3d(55vw, 18vh, 300px) rotate(10deg); filter: blur(12px); } }
@keyframes ah-explode-up { to { opacity: 0; transform: translate3d(0, -55vh, 300px) scale(1.25); filter: blur(12px); } }
@keyframes ah-progress { to { width: 100%; } }
@media (max-width: 980px) {
  .ah-role { bottom: 110px; }
  .ah-stage img { object-position: center; }
  .ah-scroll { bottom: 42px; }
}
@media (max-width: 600px) {
  .ah-hero { height: 100svh; min-height: 0; max-height: 100svh; }
  .ah-intro h1 { font-size: clamp(48px, 16vw, 72px); }
  .ah-role { left: 22px; right: 22px; bottom: 112px; }
  .ah-role strong { font-size: clamp(36px, 12vw, 54px); }
  .ah-role small { font-size: 8px; }
  .ah-frame { inset: 0; width: 100%; height: 100%; }
  .ah-frame img, .ah-still > img, .ah-finale > img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
  [data-ah-stage="finale"] img { object-position: 72% center; }
  .ah-finale-copy { padding: 0 18px; }
  .ah-finale-copy strong { font-size: clamp(54px, 18vw, 84px); }
  .ah-scroll { left: 22px; bottom: 38px; align-items: flex-start; transform: none; }
  .ah-skip { right: 22px; bottom: 38px; }
  .ah-progress { left: 22px; right: 22px; bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ah-stage { display: none; transition: none; }
  .ah-finale { display: grid; opacity: 1; visibility: visible; transform: none; }
  .ah-finale > img { transform: none; }
  .ah-progress, .ah-skip { display: none; }
  .ah-finale-copy strong:after { width: 72px; }
}


/* August 2026: viewport-fit hero with a consistent nav-safe crop */
.ah-tedx .ah-frame{
  inset:104px 0 0;
  width:100%;
  height:auto;
  overflow:hidden;
  transform-origin:center top;
}
.ah-tedx .ah-frame img,
.ah-still > img,
.ah-finale > img{
  object-fit:cover;
  object-position:center top;
  transform-origin:center top;
}
.ah-tedx .ah-frame img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  max-width:none;
  transform:none;
}
.ah-still > img,
.ah-finale > img{
  inset:104px 0 0;
  width:100%;
  height:calc(100% - 104px);
}
@media(max-width:760px){
  .ah-tedx .ah-frame{inset:82px 0 0;width:100%;height:auto}
  .ah-tedx .ah-frame img,
  .ah-still > img,
  .ah-finale > img{object-position:center top}
  .ah-still > img,
  .ah-finale > img{inset:82px 0 0;width:100%;height:calc(100% - 82px)}
}

/* Uniform role-heading anchor across every photographic stage */
.ah-stage .ah-role{
  top:auto;
  right:auto;
  bottom:clamp(86px, 12vh, 128px);
  left:clamp(24px, 7vw, 104px);
  width:min(720px, calc(100% - 48px));
  max-width:none;
  text-align:left;
}
@media(max-width:600px){
  .ah-stage .ah-role{left:22px;right:22px;bottom:96px;width:auto}
}


/* Original layered glass deck, with secondary copy concealed for clarity */
.ah-review.is-next > *,
.ah-review.is-after > *{
  opacity:0;
  visibility:hidden;
}

/* Homepage scroll-performance pass: retain the glass look with less repaint work */
.ah-nav-glass{backdrop-filter:blur(8px) saturate(1.12);-webkit-backdrop-filter:blur(8px) saturate(1.12)}
.ah-review{contain:paint;backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1)}
.ah-review.is-next,.ah-review.is-after{backdrop-filter:none;-webkit-backdrop-filter:none}
.ah-review-arrows button{backdrop-filter:none;-webkit-backdrop-filter:none}
