/*
 * Nahdat Residence â€” static clone
 * Part 1: utility classes (compiled Tailwind v4 output, static, no build step)
 * Part 2: page design system
 * Part 3: static-site additions (accessibility, CDN fallback)
 */

/* ---------- Part 1: utilities ---------- */
@layer properties {
  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {

    *,
    :before,
    :after,
    ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial
    }
  }
}

@layer theme {

  :root,
  :host {
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-white: #fff;
    --spacing: .25rem;
    --font-weight-semibold: 600;
    --ease-in-out: cubic-bezier(.4, 0, .2, 1);
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono)
  }
}

@layer base {

  *,
  :after,
  :before,
  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  html,
  :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit
  }

  b,
  strong {
    font-weight: bolder
  }

  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em
  }

  small {
    font-size: 80%
  }

  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative
  }

  sub {
    bottom: -.25em
  }

  sup {
    top: -.5em
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse
  }

  :-moz-focusring:where(:not(iframe)) {
    outline: auto
  }

  progress {
    vertical-align: baseline
  }

  summary {
    display: list-item
  }

  ol,
  ul,
  menu {
    list-style: none
  }

  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block
  }

  img,
  video {
    max-width: 100%;
    height: auto
  }

  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px
  }

  ::file-selector-button {
    margin-inline-end: 4px
  }

  ::placeholder {
    opacity: 1
  }

  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color: currentColor
    }

    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent)
      }
    }
  }

  textarea {
    resize: vertical
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit
  }

  ::-webkit-datetime-edit {
    display: inline-flex
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0
  }

  ::-webkit-datetime-edit {
    padding-block: 0
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1
  }

  :-moz-ui-invalid {
    box-shadow: none
  }

  button,
  input:where([type=button], [type=reset], [type=submit]) {
    appearance: button
  }

  ::file-selector-button {
    appearance: button
  }

  ::-webkit-inner-spin-button {
    height: auto
  }

  ::-webkit-outer-spin-button {
    height: auto
  }

  [hidden]:where(:not([hidden=until-found])) {
    display: none !important
  }
}

@layer components;

@layer utilities {
  .pointer-events-auto {
    pointer-events: auto
  }

  .pointer-events-none {
    pointer-events: none
  }

  .visible {
    visibility: visible
  }

  .absolute {
    position: absolute
  }

  .fixed {
    position: fixed
  }

  .relative {
    position: relative
  }

  .static {
    position: static
  }

  .sticky {
    position: sticky
  }

  .inset-0 {
    inset: 0
  }

  .top-0 {
    top: 0
  }

  .top-5 {
    top: calc(var(--spacing) * 5)
  }

  .top-6 {
    top: calc(var(--spacing) * 6)
  }

  .top-\[2svh\] {
    top: 2svh
  }

  .top-\[2vh\] {
    top: 2vh
  }

  .top-\[64\%\] {
    top: 64%
  }

  .right-5 {
    right: calc(var(--spacing) * 5)
  }

  .right-\[7\%\] {
    right: 7%
  }

  .bottom-6 {
    bottom: calc(var(--spacing) * 6)
  }

  .bottom-7 {
    bottom: calc(var(--spacing) * 7)
  }

  .bottom-\[-44px\] {
    bottom: -44px
  }

  .left-0 {
    left: 0
  }

  .left-1\/2 {
    left: 50%
  }

  .left-5 {
    left: calc(var(--spacing) * 5)
  }

  .left-\[12\%\] {
    left: 12%
  }

  .z-10 {
    z-index: 10
  }

  .z-20 {
    z-index: 20
  }

  .z-30 {
    z-index: 30
  }

  .z-50 {
    z-index: 50
  }

  .z-\[2\] {
    z-index: 2
  }

  .z-\[3\] {
    z-index: 3
  }

  .container {
    width: 100%
  }

  @media(min-width:40rem) {
    .container {
      max-width: 40rem
    }
  }

  @media(min-width:48rem) {
    .container {
      max-width: 48rem
    }
  }

  @media(min-width:64rem) {
    .container {
      max-width: 64rem
    }
  }

  @media(min-width:80rem) {
    .container {
      max-width: 80rem
    }
  }

  @media(min-width:96rem) {
    .container {
      max-width: 96rem
    }
  }

  .m-0 {
    margin: 0
  }

  .mt-4 {
    margin-top: calc(var(--spacing) * 4)
  }

  .mt-6 {
    margin-top: calc(var(--spacing) * 6)
  }

  .mt-\[-0\.8rem\] {
    margin-top: -.8rem
  }

  .mt-\[-1\.35rem\] {
    margin-top: -1.35rem
  }

  .mt-\[-2\.4rem\] {
    margin-top: -2.4rem
  }

  .ml-\[1px\] {
    margin-left: 1px
  }

  .block {
    display: block
  }

  .flex {
    display: flex
  }

  .grid {
    display: grid
  }

  .hidden {
    display: none
  }

  .inline {
    display: inline
  }

  .inline-block {
    display: inline-block
  }

  .inline-flex {
    display: inline-flex
  }

  .h-2\.5 {
    height: calc(var(--spacing) * 2.5)
  }

  .h-9 {
    height: calc(var(--spacing) * 9)
  }

  .h-\[100svh\] {
    height: 100svh
  }

  .h-\[100vh\] {
    height: 100vh
  }

  .h-\[118px\] {
    height: 118px
  }

  .h-\[124px\] {
    height: 124px
  }

  .h-\[135px\] {
    height: 135px
  }

  .h-\[145px\] {
    height: 145px
  }

  .h-auto {
    height: auto
  }

  .h-full {
    height: 100%
  }

  .h-px {
    height: 1px
  }

  .min-h-\[650px\] {
    min-height: 650px
  }

  .w-4 {
    width: calc(var(--spacing) * 4)
  }

  .w-12 {
    width: calc(var(--spacing) * 12)
  }

  .w-\[74px\] {
    width: 74px
  }

  .w-\[96px\] {
    width: 96px
  }

  .w-\[124px\] {
    width: 124px
  }

  .w-\[145px\] {
    width: 145px
  }

  .w-full {
    width: 100%
  }

  .w-px {
    width: 1px
  }

  .max-w-none {
    max-width: none
  }

  .grow {
    flex-grow: 1
  }

  .-translate-x-1\/2 {
    --tw-translate-x: -50%;
    translate: var(--tw-translate-x) var(--tw-translate-y)
  }

  .-translate-y-1\/2 {
    --tw-translate-y: -50%;
    translate: var(--tw-translate-x) var(--tw-translate-y)
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )
  }

  .cursor-pointer {
    cursor: pointer
  }

  .resize {
    resize: both
  }

  .flex-col {
    flex-direction: column
  }

  .items-baseline {
    align-items: baseline
  }

  .items-center {
    align-items: center
  }

  .items-end {
    align-items: flex-end
  }

  .justify-center {
    justify-content: center
  }

  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5)
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3)
  }

  .gap-4 {
    gap: calc(var(--spacing) * 4)
  }

  .gap-\[2px\] {
    gap: 2px
  }

  .overflow-hidden {
    overflow: hidden
  }

  .overflow-visible {
    overflow: visible
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px
  }

  .bg-current {
    background-color: currentColor
  }

  .bg-white\/35 {
    background-color: #ffffff59
  }

  @supports (color:color-mix(in lab, red, red)) {
    .bg-white\/35 {
      background-color: color-mix(in oklab, var(--color-white) 35%, transparent)
    }
  }

  .bg-white\/75 {
    background-color: #ffffffbf
  }

  @supports (color:color-mix(in lab, red, red)) {
    .bg-white\/75 {
      background-color: color-mix(in oklab, var(--color-white) 75%, transparent)
    }
  }

  .mask-repeat {
    -webkit-mask-repeat: repeat;
    mask-repeat: repeat
  }

  .object-contain {
    object-fit: contain
  }

  .text-center {
    text-align: center
  }

  .text-right {
    text-align: right
  }

  .text-\[7px\] {
    font-size: 7px
  }

  .text-\[8px\] {
    font-size: 8px
  }

  .text-\[9px\] {
    font-size: 9px
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold)
  }

  .tracking-\[0\.2em\] {
    --tw-tracking: .2em;
    letter-spacing: .2em
  }

  .tracking-\[0\.34em\] {
    --tw-tracking: .34em;
    letter-spacing: .34em
  }

  .tracking-\[0\.36em\] {
    --tw-tracking: .36em;
    letter-spacing: .36em
  }

  .whitespace-nowrap {
    white-space: nowrap
  }

  .text-\[\#101a3a\] {
    color: #101a3a
  }

  .text-white {
    color: var(--color-white)
  }

  .text-white\/50 {
    color: #ffffff80
  }

  @supports (color:color-mix(in lab, red, red)) {
    .text-white\/50 {
      color: color-mix(in oklab, var(--color-white) 50%, transparent)
    }
  }

  .uppercase {
    text-transform: uppercase
  }

  .opacity-20 {
    opacity: .2
  }

  .opacity-45 {
    opacity: .45
  }

  .opacity-100 {
    opacity: 1
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .brightness-0 {
    --tw-brightness: brightness(0%);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .invert {
    --tw-invert: invert(100%);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration))
  }

  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration))
  }

  .duration-300 {
    --tw-duration: .3s;
    transition-duration: .3s
  }

  .ease-in-out {
    --tw-ease: var(--ease-in-out);
    transition-timing-function: var(--ease-in-out)
  }

  .disabled\:cursor-default:disabled {
    cursor: default
  }

  @media(min-width:40rem) {
    .sm\:right-\[14\%\] {
      right: 14%
    }

    .sm\:left-\[17\%\] {
      left: 17%
    }
  }

  @media(min-width:48rem) {
    .md\:top-6 {
      top: calc(var(--spacing) * 6)
    }

    .md\:top-7 {
      top: calc(var(--spacing) * 7)
    }

    .md\:top-8 {
      top: calc(var(--spacing) * 8)
    }

    .md\:top-\[29\%\] {
      top: 29%
    }

    .md\:right-8 {
      right: calc(var(--spacing) * 8)
    }

    .md\:right-\[20\.5\%\] {
      right: 20.5%
    }

    .md\:bottom-8 {
      bottom: calc(var(--spacing) * 8)
    }

    .md\:bottom-auto {
      bottom: auto
    }

    .md\:left-8 {
      left: calc(var(--spacing) * 8)
    }

    .md\:left-\[21\.5\%\] {
      left: 21.5%
    }

    .md\:mt-4 {
      margin-top: calc(var(--spacing) * 4)
    }

    .md\:mt-5 {
      margin-top: calc(var(--spacing) * 5)
    }

    .md\:mt-\[-1\.3rem\] {
      margin-top: -1.3rem
    }

    .md\:mt-\[-2\.15rem\] {
      margin-top: -2.15rem
    }

    .md\:mt-\[-3\.8rem\] {
      margin-top: -3.8rem
    }

    .md\:ml-\[5px\] {
      margin-left: 5px
    }

    .md\:block {
      display: block
    }

    .md\:h-\[150px\] {
      height: 150px
    }

    .md\:h-\[172px\] {
      height: 172px
    }

    .md\:w-16 {
      width: calc(var(--spacing) * 16)
    }

    .md\:w-\[90px\] {
      width: 90px
    }

    .md\:w-\[116px\] {
      width: 116px
    }

    .md\:w-\[150px\] {
      width: 150px
    }

    .md\:w-\[172px\] {
      width: 172px
    }

    .md\:rotate-180 {
      rotate: 180deg
    }

    .md\:text-\[8px\] {
      font-size: 8px
    }

    .md\:text-\[10px\] {
      font-size: 10px
    }

    .md\:\[writing-mode\:vertical-rl\] {
      writing-mode: vertical-rl
    }
  }
}

@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0
}

@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0
}

@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-tracking {
  syntax: "*";
  inherits: false
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}


/* ---------- Part 2: design system ---------- */

html,
body,
#root {
  margin: 0;
  min-height: 100%;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
  background: #c9e3eb;
}

body {
  overflow-x: hidden;
  background: #c9e3eb;
}

button,
a {
  font: inherit;
}

button {
  color: inherit;
}

.nahdat-page {
  --nahdat-sky: #c9e3eb;
  min-height: 100%;
  overflow-x: clip;
  background: var(--nahdat-sky);
  font-family: "Plus Jakarta Sans", "Outfit", "Montserrat", "Manrope", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.nahdat-thin-display {
  font-family: "Cinzel", "Tenor Sans", "Playfair Display", serif;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nahdat-title-line {
  display: block;
  width: 100%;
  padding: 0.14em 0 0.10em;
  overflow: visible;
  font-family: "Cinzel", "Tenor Sans", serif;
  font-size: clamp(2.8rem, 5.8vw, 7.2rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: none;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.4);
}

.nahdat-title-line+.nahdat-title-line {
  margin-top: -0.2em;
}

.nahdat-title-letter {
  position: relative;
  overflow: visible;
  backface-visibility: hidden;
  will-change: opacity, transform;
}

/*
 * Keep generous breathing room around the complete Estepona script.
 * The SVG is intentionally rendered smaller than its safety canvas so
 * neither flourish can touch a parent edge during the intro animation.
 */
.nahdat-estepona-safe-area {
  position: relative;
  width: clamp(320px, 31vw, 540px);
  margin-right: auto;
  margin-left: auto;
  padding: 24px 58px 28px;
  box-sizing: border-box;
  overflow: visible !important;
}

.nahdat-estepona-safe-inner {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 116px;
  align-items: center;
  justify-content: center;
  overflow: visible !important;
}

.nahdat-estepona {
  display: block;
  width: 74%;
  height: auto;
  max-width: 318px;
  margin: 0 auto;
  padding: 0;
  overflow: visible !important;
  object-fit: contain;
  object-position: center;
  clip-path: none !important;
  mask: none !important;
  filter: brightness(0) invert(1);
  backface-visibility: hidden;
  transform-origin: 50% 50%;
  will-change: opacity, transform;
}

.nahdat-select-link {
  display: block;
  font-size: clamp(1.45rem, 1.75vw, 2rem);
  line-height: 0.93;
  letter-spacing: -0.035em;
  transform: scaleX(0.82);
  transform-origin: 100% 50%;
}

.nahdat-side-heading {
  display: block;
  font-size: clamp(1.5rem, 1.9vw, 2.2rem);
  line-height: 0.95;
  letter-spacing: -0.035em;
  transform: scaleX(0.82);
}

.nahdat-side-heading-left {
  transform-origin: 0% 50%;
}

.nahdat-side-heading-right {
  transform-origin: 100% 50%;
}

.nahdat-menu-link {
  position: relative;
  color: inherit;
  text-decoration: none;
}

.nahdat-menu-link::after {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 1px;
  content: "";
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 400ms cubic-bezier(0.65, 0, 0.35, 1);
}

.nahdat-menu-link:hover::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.nahdat-select-link::after {
  transform: scaleX(1);
}

.nahdat-primary-link::after {
  transform: scaleX(1);
}

.nahdat-image-stage {
  height: 185vh;
  height: 185svh;
  pointer-events: none;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.nahdat-hotspot-stage {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 40;
  width: 100%;
  height: 185vh;
  height: 185svh;
  pointer-events: none;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: opacity, transform;
}

.nahdat-hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  user-select: none;
  image-rendering: auto;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
}

.nahdat-hero-cloud-wipe {
  position: absolute;
  inset: 0;
  z-index: 80;
  overflow: hidden;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  contain: paint;
}

.nahdat-hero-cloud-bank {
  position: absolute;
  top: -30vh;
  left: 0;
  width: 360vw;
  height: 160vh;
  pointer-events: none;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

/*
 * Narrow full-cover core: just enough overscan to guarantee a completely
 * hidden hero for the swap frame, but intentionally NOT wide enough to sit
 * over the viewport for a noticeable beat. The textured AVIF clouds remain
 * above it, so this reads as dense mist inside one moving cloud bank.
 */
.nahdat-hero-cloud-core {
  position: absolute;
  top: -18vh;
  left: 116vw;
  width: 118vw;
  height: 196vh;
  border-radius: 30%;
  background:
    radial-gradient(ellipse at 18% 42%, rgba(255, 255, 255, 0.97) 0%, rgba(241, 247, 249, 0.99) 38%, rgba(226, 237, 241, 0.995) 73%, rgba(218, 231, 236, 0.995) 100%),
    radial-gradient(ellipse at 72% 56%, rgba(250, 253, 254, 0.99) 0%, rgba(229, 239, 243, 0.995) 68%, rgba(218, 231, 236, 0.995) 100%);
  filter: blur(16px);
  transform: scale(1.035);
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  will-change: transform;
}

.nahdat-hero-cloud-core::before,
.nahdat-hero-cloud-core::after {
  position: absolute;
  inset: -4%;
  content: "";
  border-radius: 32%;
  background: radial-gradient(ellipse at center,
      rgba(244, 249, 251, 0.99) 0%,
      rgba(226, 237, 241, 0.995) 64%,
      rgba(218, 231, 236, 0.98) 100%);
  filter: blur(16px);
}

.nahdat-hero-cloud-core::before {
  transform: translate3d(-4%, -5%, 0) scale(0.99);
}

.nahdat-hero-cloud-core::after {
  transform: translate3d(4%, 5%, 0) scale(1.01);
}

.nahdat-hero-wipe-cloud {
  position: absolute;
  z-index: 2;
  display: block;
  max-width: none;
  height: auto;
  pointer-events: none;
  user-select: none;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  transform-origin: 50% 50%;
  will-change: transform;
}

.nahdat-overlay {
  background: linear-gradient(180deg,
      rgba(5, 29, 66, 0.025) 0%,
      rgba(5, 29, 66, 0) 52%,
      rgba(4, 20, 45, 0.075) 100%);
}

.nahdat-grain {
  opacity: 0.018;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.36'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 190px 190px;
  mix-blend-mode: soft-light;
}

/*
 * The buttons live in their own GSAP-synchronised stage. Empty areas
 * never intercept the pointer; only the actual buttons are interactive.
 */
.nahdat-hotspot-stage .nahdat-hotspot {
  position: absolute;
  z-index: 1;
  pointer-events: auto;
}

.nahdat-hotspot {
  width: 72px;
  height: 72px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  outline: none;
  pointer-events: auto !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.nahdat-hotspot-main-circle {
  position: absolute;
  inset: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.96);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
  box-shadow:
    0 0 0 1px rgba(7, 24, 48, 0.06),
    0 5px 18px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(2px);
  transition:
    background 360ms ease,
    box-shadow 360ms ease,
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-hotspot:hover .nahdat-hotspot-main-circle,
.nahdat-hotspot:focus-visible .nahdat-hotspot-main-circle,
.nahdat-hotspot.is-active .nahdat-hotspot-main-circle {
  background: #fff;
  box-shadow:
    0 9px 30px rgba(0, 0, 0, 0.18),
    0 0 0 8px rgba(255, 255, 255, 0.1);
  transform: scale(1.13);
}

.nahdat-hotspot-center-dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #fff;
  transition:
    opacity 220ms ease,
    transform 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-hotspot:hover .nahdat-hotspot-center-dot,
.nahdat-hotspot:focus-visible .nahdat-hotspot-center-dot,
.nahdat-hotspot.is-active .nahdat-hotspot-center-dot {
  opacity: 0;
  transform: scale(0);
}

.nahdat-hotspot-cross {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: rotate(-18deg) scale(0.58);
  transition:
    opacity 240ms ease,
    transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-hotspot-cross-line {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 13px;
  height: 1.25px;
  background: #102643;
  transform: translate(-50%, -50%) rotate(45deg);
}

.nahdat-hotspot-cross-line-vertical {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.nahdat-hotspot:hover .nahdat-hotspot-cross,
.nahdat-hotspot:focus-visible .nahdat-hotspot-cross,
.nahdat-hotspot.is-active .nahdat-hotspot-cross {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.nahdat-hotspot-pulse {
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  pointer-events: none;
  animation: nahdat-hotspot-pulse 3.2s cubic-bezier(0.18, 0.7, 0.25, 1) infinite;
  will-change: opacity, transform;
}

.nahdat-hotspot-pulse-two {
  animation-delay: 1.06s;
}

.nahdat-hotspot-pulse-three {
  animation-delay: 2.12s;
}

.nahdat-hotspot:hover .nahdat-hotspot-pulse,
.nahdat-hotspot:focus-visible .nahdat-hotspot-pulse,
.nahdat-hotspot.is-active .nahdat-hotspot-pulse {
  animation-duration: 2.1s;
}

@keyframes nahdat-hotspot-pulse {
  0% {
    opacity: 0;
    transform: scale(0.76);
  }

  14% {
    opacity: 0.82;
  }

  64% {
    opacity: 0.22;
  }

  100% {
    opacity: 0;
    transform: scale(2.06);
  }
}

/*
 * The panel is positioned from the live dot rectangle, so every card
 * stays beside its architectural feature at every viewport size.
 */
.nahdat-info-card {
  position: fixed;
  z-index: 2147483647;
  width: clamp(310px, 19.2vw, 356px);
  height: clamp(400px, 50svh, 430px);
  max-height: calc(100svh - 20px);
  padding: 30px 27px 27px;
  overflow: visible;
  isolation: isolate;
  contain: layout style;
  color: #102643;
  background: rgba(247, 246, 238, 0.98);
  filter: drop-shadow(0 20px 34px rgba(0, 0, 0, 0.18));
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  animation: nahdat-card-enter 560ms cubic-bezier(0.22, 1, 0.36, 1) both;
  will-change: opacity, transform;
}

.nahdat-info-card::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background: rgba(247, 246, 238, 0.94);
  backdrop-filter: blur(12px) saturate(0.9);
  clip-path: polygon(12px 0,
      calc(100% - 12px) 0,
      100% 12px,
      100% calc(100% - 12px),
      calc(100% - 12px) 100%,
      12px 100%,
      0 calc(100% - 12px),
      0 12px);
}

.nahdat-info-card::after {
  position: absolute;
  inset: 9px;
  z-index: 1;
  content: "";
  pointer-events: none;
  border: 1px solid rgba(16, 38, 67, 0.14);
  clip-path: polygon(10px 0,
      calc(100% - 10px) 0,
      100% 10px,
      100% calc(100% - 10px),
      calc(100% - 10px) 100%,
      10px 100%,
      0 calc(100% - 10px),
      0 10px);
}

.nahdat-info-card[data-card-placement="right-of-dot"] {
  transform-origin: 0 50%;
  animation-name: nahdat-card-enter-right;
}

.nahdat-info-card[data-card-placement="left-of-dot"] {
  transform-origin: 100% 50%;
  animation-name: nahdat-card-enter-left;
}

.nahdat-info-card[data-card-placement="centered"] {
  transform-origin: 50% 50%;
  animation-name: nahdat-card-enter;
}

@keyframes nahdat-card-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 20px, 0) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes nahdat-card-enter-right {
  from {
    opacity: 0;
    transform: translate3d(-22px, 0, 0) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes nahdat-card-enter-left {
  from {
    opacity: 0;
    transform: translate3d(22px, 0, 0) scale(0.95);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.nahdat-info-title {
  position: relative;
  z-index: 2;
  width: 128%;
  max-width: none;
  margin: 0;
  font-family: "Bodoni Moda", "Times New Roman", serif;
  font-size: clamp(2rem, 2.05vw, 2.55rem);
  font-optical-sizing: auto;
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.055em;
  text-transform: uppercase;
  transform: scaleX(0.78);
  transform-origin: 0 50%;
}

.nahdat-info-description {
  position: absolute;
  z-index: 2;
  right: 27px;
  bottom: 27px;
  left: 27px;
  margin: 0;
  font-size: clamp(13px, 0.78vw, 15px);
  line-height: 1.34;
  letter-spacing: -0.032em;
}

.nahdat-info-close {
  position: absolute;
  top: 46%;
  left: -22px;
  z-index: 5;
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  color: #102643;
  background: #fff;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
  cursor: pointer;
  transform: translateY(-50%);
  transition:
    color 300ms ease,
    background 300ms ease,
    transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-info-close:hover {
  color: #fff;
  background: #102643;
  transform: translateY(-50%) rotate(90deg);
}

/*
 * The CTA container is always fixed to the bottom-center of the
 * sticky viewport. Its visibility is controlled by scroll progress.
 * Its size changes only on hover.
 */
.nahdat-availability {
  --magnet-x: 0px;
  --magnet-y: 0px;
  --pointer-x: 50%;
  --pointer-y: 50%;
  position: relative;
  display: flex;
  width: 240px;
  height: 240px;
  align-items: center;
  justify-content: center;
  isolation: isolate;
  color: white;
  text-decoration: none;
  outline: none;
  transform: translate3d(var(--magnet-x), var(--magnet-y), 0);
  transition:
    transform 260ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 420ms ease;
  will-change: transform;
}

.nahdat-availability:hover,
.nahdat-availability:focus-visible {
  filter: drop-shadow(0 22px 32px rgba(4, 18, 42, 0.28));
  transform:
    translate3d(var(--magnet-x), var(--magnet-y), 0) scale(1.045);
}

.nahdat-availability-aura {
  position: absolute;
  inset: 18px;
  z-index: -2;
  border-radius: 999px;
  opacity: 0;
  background:
    radial-gradient(circle at var(--pointer-x) var(--pointer-y),
      rgba(255, 255, 255, 0.68) 0,
      rgba(255, 255, 255, 0.18) 19%,
      transparent 46%),
    conic-gradient(from 30deg,
      transparent,
      rgba(255, 255, 255, 0.38),
      transparent 26%,
      rgba(255, 255, 255, 0.12),
      transparent 62%);
  filter: blur(10px);
  transform: scale(0.72) rotate(-45deg);
  transition:
    opacity 420ms ease,
    transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.nahdat-availability:hover .nahdat-availability-aura,
.nahdat-availability:focus-visible .nahdat-availability-aura {
  opacity: 0.88;
  transform: scale(1.18) rotate(90deg);
  animation: nahdat-availability-aura 3.8s linear infinite;
}

@keyframes nahdat-availability-aura {
  to {
    transform: scale(1.18) rotate(450deg);
  }
}

.nahdat-availability-ripple {
  position: absolute;
  inset: 42px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
}

.nahdat-availability:hover .nahdat-availability-ripple,
.nahdat-availability:focus-visible .nahdat-availability-ripple {
  animation: nahdat-availability-ripple 1.65s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}

.nahdat-availability-ripple-two {
  animation-delay: 0.66s !important;
}

@keyframes nahdat-availability-ripple {
  0% {
    opacity: 0;
    transform: scale(0.58);
  }

  16% {
    opacity: 0.82;
  }

  66% {
    opacity: 0.2;
  }

  100% {
    opacity: 0;
    transform: scale(1.92);
  }
}

.nahdat-availability-orbit {
  position: absolute;
  inset: 34px;
  border: 1px solid transparent;
  border-top-color: rgba(255, 255, 255, 0.92);
  border-left-color: rgba(255, 255, 255, 0.36);
  border-radius: 999px;
  animation: nahdat-orbit-spin 11s linear infinite;
  transition:
    inset 680ms cubic-bezier(0.22, 1, 0.36, 1),
    border-color 400ms ease,
    filter 500ms ease;
}

.nahdat-availability-orbit::before {
  position: absolute;
  top: 9px;
  right: 21px;
  width: 5px;
  height: 5px;
  content: "";
  border-radius: 999px;
  background: white;
  box-shadow:
    0 0 8px white,
    0 0 22px rgba(255, 255, 255, 0.95);
}

.nahdat-availability-orbit::after {
  position: absolute;
  inset: 12px;
  content: "";
  border: 1px dashed rgba(255, 255, 255, 0.28);
  border-radius: inherit;
  animation: nahdat-orbit-spin-reverse 8s linear infinite;
  transition: inset 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-availability:hover .nahdat-availability-orbit,
.nahdat-availability:focus-visible .nahdat-availability-orbit {
  inset: 3px;
  border-top-color: white;
  border-right-color: rgba(255, 255, 255, 0.68);
  border-bottom-color: rgba(255, 255, 255, 0.24);
  animation-duration: 2.25s;
  filter: drop-shadow(0 0 16px rgba(255, 255, 255, 0.78));
}

.nahdat-availability:hover .nahdat-availability-orbit::after,
.nahdat-availability:focus-visible .nahdat-availability-orbit::after {
  inset: 20px;
}

@keyframes nahdat-orbit-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes nahdat-orbit-spin-reverse {
  to {
    transform: rotate(-360deg);
  }
}

.nahdat-availability-scan {
  position: absolute;
  inset: 48px;
  z-index: 1;
  overflow: hidden;
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
  transform: rotate(-18deg) scale(0.82);
  transition:
    opacity 300ms ease,
    inset 650ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-availability-scan::before {
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: -70%;
  width: 48%;
  content: "";
  background: linear-gradient(90deg,
      transparent,
      rgba(255, 255, 255, 0.82),
      transparent);
  filter: blur(3px);
  transform: skewX(-18deg);
}

.nahdat-availability:hover .nahdat-availability-scan,
.nahdat-availability:focus-visible .nahdat-availability-scan {
  inset: 22px;
  opacity: 0.78;
  transform: rotate(0deg) scale(1);
}

.nahdat-availability:hover .nahdat-availability-scan::before,
.nahdat-availability:focus-visible .nahdat-availability-scan::before {
  animation: nahdat-availability-scan 1.55s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

@keyframes nahdat-availability-scan {
  from {
    transform: translateX(0) skewX(-18deg);
  }

  to {
    transform: translateX(410%) skewX(-18deg);
  }
}

.nahdat-availability-sparks {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.nahdat-availability-spark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  margin: -2px;
  border-radius: 999px;
  opacity: 0;
  background: white;
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.95);
  transform:
    rotate(var(--spark-angle)) translateY(-48px) scale(0.2);
}

.nahdat-availability:hover .nahdat-availability-spark,
.nahdat-availability:focus-visible .nahdat-availability-spark {
  animation: nahdat-availability-spark 1.55s cubic-bezier(0.16, 1, 0.3, 1) infinite;
  animation-delay: var(--spark-delay);
}

@keyframes nahdat-availability-spark {
  0% {
    opacity: 0;
    transform:
      rotate(var(--spark-angle)) translateY(-48px) scale(0.2);
  }

  24% {
    opacity: 0.95;
  }

  100% {
    opacity: 0;
    transform:
      rotate(var(--spark-angle)) translateY(-112px) scale(1.15);
  }
}

.nahdat-availability-core {
  position: relative;
  z-index: 2;
  display: flex;
  width: 104px;
  height: 104px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 999px;
  color: white;
  text-align: center;
  background: rgba(6, 29, 59, 0.06);
  box-shadow:
    inset 0 0 0 0 rgba(255, 255, 255, 0),
    0 0 0 1px rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(2px);
  transition:
    width 680ms cubic-bezier(0.22, 1, 0.36, 1),
    height 680ms cubic-bezier(0.22, 1, 0.36, 1),
    color 450ms ease,
    transform 680ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 680ms ease,
    border-color 500ms ease;
}

.nahdat-availability-core::before {
  position: absolute;
  inset: 0;
  content: "";
  border-radius: inherit;
  background:
    radial-gradient(circle at var(--pointer-x) var(--pointer-y),
      #ffffff 0,
      #f4f6f4 46%,
      #e8eef1 100%);
  transform: scale(0);
  transition: transform 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-availability-core::after {
  position: absolute;
  inset: -40%;
  content: "";
  background: conic-gradient(from 110deg,
      transparent 0deg,
      rgba(255, 255, 255, 0.92) 20deg,
      transparent 58deg);
  opacity: 0;
  transform: rotate(-100deg);
  pointer-events: none;
}

.nahdat-availability:hover .nahdat-availability-core,
.nahdat-availability:focus-visible .nahdat-availability-core {
  width: 150px;
  height: 150px;
  color: #102643;
  border-color: rgba(255, 255, 255, 0.95);
  box-shadow:
    0 24px 64px rgba(4, 18, 42, 0.34),
    0 0 44px rgba(255, 255, 255, 0.24),
    inset 0 0 0 1px rgba(16, 38, 67, 0.1);
  transform: scale(1.04) rotate(-2deg);
}

.nahdat-availability:hover .nahdat-availability-core::before,
.nahdat-availability:focus-visible .nahdat-availability-core::before {
  transform: scale(1);
}

.nahdat-availability:hover .nahdat-availability-core::after,
.nahdat-availability:focus-visible .nahdat-availability-core::after {
  opacity: 0.72;
  animation: nahdat-availability-sheen 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes nahdat-availability-sheen {
  from {
    transform: rotate(-105deg);
  }

  to {
    transform: rotate(245deg);
  }
}

.nahdat-availability-text {
  position: relative;
  z-index: 3;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition:
    transform 560ms cubic-bezier(0.22, 1, 0.36, 1),
    letter-spacing 560ms ease;
}

.nahdat-availability:hover .nahdat-availability-text,
.nahdat-availability:focus-visible .nahdat-availability-text {
  letter-spacing: 0.12em;
  transform: translateY(-11px) scale(0.96);
}

.nahdat-availability-arrow {
  position: absolute;
  z-index: 3;
  bottom: 25px;
  opacity: 0;
  transform: translateY(-10px) scale(0.6);
  transition:
    opacity 350ms ease,
    transform 540ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-availability:hover .nahdat-availability-arrow,
.nahdat-availability:focus-visible .nahdat-availability-arrow {
  opacity: 1;
  transform: translateY(0) scale(1);
  animation: nahdat-availability-arrow-breathe 820ms cubic-bezier(0.22, 1, 0.36, 1) 420ms infinite alternate;
}

@keyframes nahdat-availability-arrow-breathe {
  from {
    transform: translateY(-1px) scale(1);
  }

  to {
    transform: translateY(6px) scale(1.08);
  }
}


.nahdat-post-seal {
  animation: nahdat-orbit-spin 34s linear infinite;
  transform-origin: 50% 50%;
}

.nahdat-hero-section {
  /*
   * The image pan still consumes 85svh. The much longer final hold keeps
   * the pool frame pinned until the circular pale field has fully covered
   * every edge of the viewport, even with scrub smoothing and fast wheels.
   */
  height: 400vh;
  height: 400svh;
  background: var(--nahdat-sky);
}

.nahdat-reasons-sequence {
  position: relative;
  /*
   * The hero is 400svh tall and its photograph is 185svh tall. Inside
   * the 100svh sticky viewport, the image therefore needs 85svh of
   * scrolling to reveal its complete bottom edge.
   *
   * The reasons viewport is itself 100svh tall. Placing its top at
   * 185svh means its first pixel reaches the bottom of the screen at
   * 85svh: exactly when hero.png has finished its vertical pan. This
   * keeps the final pool frame completely visible before the Reverse-U
   * begins rising over it, matching the reference transition.
   *
   * The overlap remains visual-only so the transparent section cannot
   * intercept the hero hotspot buttons before GSAP enables interaction.
   */
  pointer-events: none;
  /* Keep the complete reverse-U section above the incoming 4.webp stage. */
  z-index: 70;
  height: 440vh;
  height: 440svh;
  /* 400svh - 215svh = 185svh; 185svh - 100svh = 85svh. */
  margin-top: -215vh;
  margin-top: -215svh;
  color: #101a3a;
  background: transparent;
}

.nahdat-reasons-viewport {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 100vh;
  height: 100svh;
  min-height: 650px;
  overflow: hidden;
  background: transparent;
  isolation: isolate;
  pointer-events: none;
}

.nahdat-reasons-fill {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: var(--nahdat-sky);
  clip-path: circle(0% at 50% 100%);
  will-change: clip-path;
}

.nahdat-reasons-bubble {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 2;
  width: 96vw;
  height: 96vw;
  border-radius: 50%;
  background: var(--nahdat-sky);
  box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.3);
  will-change: transform;
}

.nahdat-arch-copy {
  position: absolute;
  /* Keep the sentence directly on the outer edge of the growing U. */
  top: -4.4%;
  left: 50%;
  width: min(94vw, 1440px);
  height: min(20vw, 292px);
  overflow: visible;
  transform: translate3d(-50%, 0, 0);
  backface-visibility: hidden;
  transform-style: preserve-3d;
  will-change: opacity, transform;
}

.nahdat-arch-copy text {
  font-family: "Italiana", "Times New Roman", serif;
  font-size: clamp(34px, 2.25vw, 44px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  will-change: letter-spacing, transform;
}

.nahdat-arch-brand {
  position: absolute;
  top: 10.8%;
  left: 50%;
  display: grid;
  width: clamp(102px, 8vw, 148px);
  place-items: center;
  transform: translateX(-50%);
}

.nahdat-arch-brand img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: brightness(0) saturate(100%);
}

.nahdat-arch-rule {
  position: absolute;
  top: 18.4%;
  left: 50%;
  width: 1px;
  height: clamp(88px, 8vw, 132px);
  background: rgba(16, 26, 58, 0.42);
  transform: translateX(-50%);
}

.nahdat-arch-caption {
  position: absolute;
  top: 28.8%;
  left: 50%;
  width: min(410px, 34vw);
  margin: 0;
  font-size: clamp(10px, 0.72vw, 12px);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.09em;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
}

.nahdat-arch-next-title {
  position: relative;
  z-index: 6;
  display: grid;
  width: min(1400px, 96vw);
  min-height: 1.05em;
  flex: 0 0 auto;
  padding: 0.01em 0 0.07em;
  overflow: hidden;
  place-items: center;
  font-family: "Cormorant Garamond", "Cinzel", "Times New Roman", serif;
  font-size: clamp(2.8rem, 4.8vw, 5.5rem);
  font-optical-sizing: auto;
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  transform: scaleX(0.95);
  transform-origin: 50% 50%;
}

.nahdat-reason-title-layer {
  grid-area: 1 / 1;
  display: inline-flex;
  width: 100%;
  align-items: baseline;
  justify-content: center;
  white-space: nowrap;
  pointer-events: none;
}

.nahdat-reason-title-character {
  display: inline-block;
  transform-origin: 50% 100%;
  will-change: opacity, transform;
}

.nahdat-reason-title-layer.is-incoming.is-next .nahdat-reason-title-character {
  animation: nahdat-title-in-next 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(var(--letter-index) * 16ms);
}

.nahdat-reason-title-layer.is-outgoing.is-next .nahdat-reason-title-character {
  animation: nahdat-title-out-next 700ms cubic-bezier(0.55, 0, 1, 0.45) both;
  animation-delay: calc(var(--letter-index) * 10ms);
}

.nahdat-reason-title-layer.is-incoming.is-previous .nahdat-reason-title-character {
  animation: nahdat-title-in-previous 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(var(--letter-index) * 16ms);
}

.nahdat-reason-title-layer.is-outgoing.is-previous .nahdat-reason-title-character {
  animation: nahdat-title-out-previous 700ms cubic-bezier(0.55, 0, 1, 0.45) both;
  animation-delay: calc(var(--letter-index) * 10ms);
}

.nahdat-arch-next-title.is-sequenced-transition .nahdat-reason-title-layer.is-incoming .nahdat-reason-title-character {
  animation-delay: calc(820ms + var(--letter-index) * 16ms);
}

@keyframes nahdat-title-in-next {
  from {
    opacity: 0;
    filter: blur(6px);
    transform: translate3d(0, 118%, 0) scaleY(1.3);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scaleY(1);
  }
}

@keyframes nahdat-title-out-next {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0) scaleY(1);
  }

  to {
    opacity: 0;
    filter: blur(4px);
    transform: translate3d(0, -118%, 0) scaleY(0.72);
  }
}

@keyframes nahdat-title-in-previous {
  from {
    opacity: 0;
    filter: blur(6px);
    transform: translate3d(0, -118%, 0) scaleY(1.3);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scaleY(1);
  }
}

@keyframes nahdat-title-out-previous {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0) scaleY(1);
  }

  to {
    opacity: 0;
    filter: blur(4px);
    transform: translate3d(0, 118%, 0) scaleY(0.72);
  }
}

.nahdat-reasons-content {
  position: absolute;
  inset: 0;
  z-index: 8;
  overflow: hidden;
  /* GSAP enables interaction only after the card reaches its final position. */
  pointer-events: none;
  color: #101a3a;
  background: transparent;
}

.nahdat-reason-layout {
  position: absolute;
  inset: 0;
  display: flex;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: clamp(122px, 16.2vh, 158px) 8vw clamp(28px, 3.5vh, 42px);
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.nahdat-reason-media-stage {
  position: relative;
  z-index: 4;
  width: clamp(520px, 38vw, 750px);
  flex: 0 0 auto;
  margin-top: clamp(32px, 4.5vh, 48px);
  aspect-ratio: 1.85 / 1;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(16, 26, 58, 0.06);
  box-shadow: 0 16px 42px rgba(16, 26, 58, 0.12);
}

.nahdat-reason-image-shell {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: rgba(16, 26, 58, 0.08);
  backface-visibility: hidden;
  will-change: opacity, transform, clip-path, filter;
}

.nahdat-reason-image-shell.is-outgoing {
  z-index: 3;
}

.nahdat-reason-image-shell.is-current {
  z-index: 2;
}

.nahdat-reason-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  backface-visibility: hidden;
}

/*
 * A strict two-stage hand-off: the old photograph fully disappears,
 * a tiny clean pause follows, and only then can the new photograph
 * reveal. No image layers are visible at the same time.
 */
.nahdat-reason-media-stage.is-sequenced-transition .nahdat-reason-image-shell.is-current {
  opacity: 0;
}

.nahdat-reason-media-stage.is-sequenced-transition .nahdat-reason-image-shell.is-current.is-next {
  animation: nahdat-reason-new-next 860ms 820ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-reason-media-stage.is-sequenced-transition .nahdat-reason-image-shell.is-current.is-previous {
  animation: nahdat-reason-new-previous 860ms 820ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-reason-image-shell.is-outgoing.is-next {
  animation: nahdat-reason-old-next 760ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

.nahdat-reason-image-shell.is-outgoing.is-previous {
  animation: nahdat-reason-old-previous 760ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

@keyframes nahdat-reason-old-next {
  from {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    filter: blur(4px);
    transform: translate3d(-5%, 0, 0) scale(1.04);
  }
}

@keyframes nahdat-reason-old-previous {
  from {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }

  to {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    filter: blur(4px);
    transform: translate3d(5%, 0, 0) scale(1.04);
  }
}

@keyframes nahdat-reason-new-next {
  from {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    filter: blur(5px);
    transform: translate3d(5%, 0, 0) scale(1.09);
  }

  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes nahdat-reason-new-previous {
  from {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    filter: blur(5px);
    transform: translate3d(-5%, 0, 0) scale(1.09);
  }

  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.nahdat-reason-controls {
  position: relative;
  z-index: 5;
  display: grid;
  width: min(390px, 32vw);
  flex: 0 0 auto;
  grid-template-columns: 28px 28px 1fr 28px 28px;
  align-items: center;
  margin-top: 16px;
  font-size: 10px;
  font-weight: 600;
}

.nahdat-reason-control-button {
  position: relative;
  display: grid;
  width: 28px;
  height: 28px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 0;
  color: #101a3a;
  background: transparent;
  cursor: pointer;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 300ms ease;
}

.nahdat-reason-control-button:hover,
.nahdat-reason-control-button:focus-visible {
  opacity: 0.58;
  transform: scale(1.12);
}

.nahdat-reason-progress {
  position: relative;
  height: 1px;
  margin: 0 12px;
  overflow: hidden;
  background: rgba(16, 26, 58, 0.15);
}

.nahdat-reason-progress::after {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--reason-progress, 33.333%);
  content: "";
  background: #101a3a;
  transition: width 760ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-reason-copy {
  position: relative;
  z-index: 5;
  width: min(760px, 62vw);
  min-height: 118px;
  flex: 0 0 auto;
  margin-top: clamp(50px, 6.2vh, 64px);
  text-align: center;
}

.nahdat-reason-copy-layer {
  width: 100%;
  will-change: opacity, transform;
}

.nahdat-reason-copy-layer.is-outgoing {
  position: absolute;
  inset: 0;
}

.nahdat-reason-copy-layer.is-incoming.is-next {
  animation: nahdat-copy-in-next 850ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-reason-copy-layer.is-outgoing.is-next {
  animation: nahdat-copy-out-next 620ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

.nahdat-reason-copy-layer.is-incoming.is-previous {
  animation: nahdat-copy-in-previous 850ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-reason-copy-layer.is-outgoing.is-previous {
  animation: nahdat-copy-out-previous 620ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

.nahdat-reason-copy.is-sequenced-transition .nahdat-reason-copy-layer.is-incoming {
  animation-delay: 820ms;
}

@keyframes nahdat-copy-in-next {
  from {
    opacity: 0;
    filter: blur(5px);
    transform: translate3d(0, 24px, 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes nahdat-copy-out-next {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  to {
    opacity: 0;
    filter: blur(3px);
    transform: translate3d(0, -20px, 0);
  }
}

@keyframes nahdat-copy-in-previous {
  from {
    opacity: 0;
    filter: blur(5px);
    transform: translate3d(0, -24px, 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes nahdat-copy-out-previous {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  to {
    opacity: 0;
    filter: blur(3px);
    transform: translate3d(0, 20px, 0);
  }
}

.nahdat-reason-description {
  margin: 0 auto;
  max-width: 760px;
  font-size: clamp(12px, 0.76vw, 14px);
  line-height: 1.48;
  letter-spacing: -0.018em;
}

.nahdat-reason-statement {
  margin: clamp(22px, 2.8vh, 30px) 0 0;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  animation: nahdat-statement-settle 900ms 90ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes nahdat-statement-settle {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ================================================================
   SMG Cinematic Scroll Gallery — Fan Spread + Scroll Focus
   All 3 cards visible on entry (spread/fan layout).
   GSAP zooms each card to centre as user scrolls.
================================================================ */

/* ---- Section: tall enough for pinned scroll (500vh) ---- */
.smg-cinematic-section {
  position: relative;
  z-index: 60;
  height: 500vh;
  background: hsl(196, 60%, 52%);
}

/* ---- Pinned viewport ---- */
.smg-cinematic-pin {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  min-height: 650px;
  overflow: hidden;
  isolation: isolate;
}

/* ---- Solid background color matching user's image (#f5f4ee / rgb(245, 244, 238)) ---- */
.smg-sky-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #f5f4ee;
}

/* ---- Gallery container: fills the pin, cards centred by GSAP ---- */
.smg-gallery {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

/* ---- Each card: absolutely centred; GSAP moves x/rotation/scale ---- */
.smg-card {
  position: absolute;
  /* Card starts centred; GSAP sets xPercent:-50 yPercent:-50 then x,y */
  left: 50%;
  top: 50%;
  /* Card width = size at full focus (scale 1.0) */
  width: min(660px, 60vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.6vh, 22px);
  transform-origin: 50% 42%;
  will-change: transform, opacity;
  pointer-events: none;
}

/* ---- Image frame with rounded corners & layered shadow ---- */
.smg-card-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: clamp(10px, 1.2vw, 20px);
  overflow: hidden;
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.10),
    0 24px 56px rgba(0, 0, 0, 0.12),
    0 0 0 1px rgba(0, 0, 0, 0.06);
  will-change: box-shadow;
  transition: box-shadow 500ms ease;
}

/* ---- Inner highlight border ---- */
.smg-frame-border {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.12) 0%,
    transparent 50%,
    rgba(0, 0, 0, 0.02) 100%
  );
  pointer-events: none;
  z-index: 2;
}

/* ---- Photo fills frame; Ken-Burns scale controlled by GSAP ---- */
.smg-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  display: block;
  transform-origin: 50% 38%;
  will-change: transform;
  backface-visibility: hidden;
}

/* ---- Caption below the frame (GSAP controls opacity/y) ---- */
.smg-caption {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  pointer-events: auto;
  will-change: opacity, transform;
  backface-visibility: hidden;
}

.smg-caption-rule {
  display: block;
  width: 36px;
  height: 1.5px;
  background: #1a1a1a;
  opacity: 0.65;
  border-radius: 2px;
  margin-bottom: 2px;
}

.smg-caption-title {
  margin: 0;
  font-family: "Cinzel", "Playfair Display", Georgia, serif;
  font-size: clamp(1.25rem, 2.5vw, 2.4rem);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #1a1a1a;
  line-height: 1.1;
}

.smg-caption-body {
  margin: 0;
  max-width: 480px;
  font-family: "Tenor Sans", "Plus Jakarta Sans", sans-serif;
  font-size: clamp(11px, 0.95vw, 14px);
  font-weight: 400;
  line-height: 1.68;
  letter-spacing: 0.02em;
  color: #4a4a4a;
}

/* ---- Progress dots on the left edge ---- */
.smg-index {
  position: absolute;
  left: clamp(18px, 2.5vw, 36px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.smg-index-dot {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.20);
  transition: background 350ms ease, transform 350ms ease;
}

.smg-index-dot.is-active {
  background: #1a1a1a;
  transform: scale(1.6);
}



/* ---- Legacy chrome stays ---- */
.nahdat-immersive-section {
  position: relative;
  z-index: 60;
  height: 100vh;
  height: 100svh;
  margin-top: 0;
  border: 0;
  background: #0b1d3a;
  box-shadow: none;
}

.nahdat-immersive-viewport {
  position: sticky;
  top: 0;
  z-index: 0;
  isolation: isolate;
  height: 100vh;
  height: 100svh;
  min-height: 650px;
  overflow: hidden;
  border: 0;
  background: var(--nahdat-sky);
  box-shadow: none;
  pointer-events: none;
}

.nahdat-immersive-media {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  border: 0;
  background: var(--nahdat-sky);
  box-shadow: none;
  clip-path: none !important;
  will-change: transform;
}

.nahdat-immersive-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  backface-visibility: hidden;
  will-change: transform;
}

.nahdat-immersive-sky-bridge {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: none;
  pointer-events: none;
}

.nahdat-immersive-shade {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: transparent;
  opacity: 0;
  will-change: opacity;
}

.nahdat-immersive-chrome {
  position: absolute;
  inset: 0;
  z-index: 12;
  pointer-events: none;
}

.nahdat-immersive-quote {
  position: absolute;
  right: 4.2vw;
  bottom: 3.8vh;
  z-index: 10;
  width: min(820px, 46vw);
  color: #000000 !important;
}

.nahdat-immersive-mark {
  display: block;
  margin-bottom: -8px;
  font-family: Georgia, serif;
  font-size: 62px;
  line-height: 0.75;
  color: #000000 !important;
  font-weight: 800 !important;
}

.nahdat-immersive-copy,
.nahdat-immersive-para {
  margin: 0;
  font-family: "Cinzel", "Tenor Sans", "Plus Jakarta Sans", sans-serif;
  font-size: clamp(2rem, 2.45vw, 3rem);
  font-weight: 800 !important;
  line-height: 1.08;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #000000 !important;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.75);
}

.nahdat-immersive-credit {
  margin: 28px 0 0;
  font-size: 11px;
  font-weight: 800 !important;
  line-height: 1.4;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #000000 !important;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.75);
}

.nahdat-horizontal-section {
  position: relative;
  z-index: 90;
  height: 100vh;
  height: 100svh;
  min-height: 650px;
  overflow: hidden;
  color: #101a3a;
  background: #f5f4ee;
}

.nahdat-horizontal-track {
  position: relative;
  display: flex;
  width: max-content;
  height: 100%;
  will-change: transform;
}

.nahdat-horizontal-panel {
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  min-height: 650px;
  flex: 0 0 100vw;
  overflow: hidden;
  background: #f5f4ee;
}

/* Auto Matrix 3D BMW Car Panel */
.nahdat-automatrix-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-automatrix-stage {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: 56% 44%;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 8vh 4vw 6vh 3vw;
}

.nahdat-automatrix-3d-left {
  position: relative;
  width: 100%;
  height: min(68vh, 520px);
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  will-change: transform;
}

#automatrix-3d-canvas-container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#automatrix-3d-canvas-container canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

/* Wave Runner 3D Car Container */
#wave-3d-canvas-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 170px;
  height: 105px;
  z-index: 30;
  pointer-events: none;
  transform-origin: 50% 85%;
  will-change: transform, left, top;
}

#wave-3d-canvas-container canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

/* Card 2 Architectural Vision & Jubilee Hotel */
.nahdat-architectural-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-architectural-content {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 3vh 4vw;
  text-align: center;
}

.nahdat-architectural-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nahdat-jubilee-title {
  margin: 10px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.8rem, 3.6vw, 3.4rem);
  white-space: nowrap;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #1e3c72 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-hotel-3d-stage {
  position: relative;
  width: 100%;
  max-width: 780px;
  height: min(30vh, 220px);
  margin: 14px 0;
  border-radius: 16px;
  overflow: hidden;
  will-change: transform;
}

.nahdat-hotel-3d-stage canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

.nahdat-jubilee-description {
  margin: 8px 0 16px;
  max-width: 580px;
  font-size: clamp(13px, 0.85vw, 15px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-jubilee-action {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card 3 Master Plan & Design Stylized Building */
.nahdat-masterplan-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-masterplan-content {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 3vh 4vw;
  text-align: center;
}

.nahdat-masterplan-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nahdat-masterplan-title {
  margin: 10px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.4rem, 3.2vw, 3.1rem);
  white-space: nowrap;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #1e3c72 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-building-3d-stage {
  position: relative;
  width: 100%;
  max-width: 780px;
  height: min(32vh, 230px);
  margin: 8px 0;
  border-radius: 16px;
  overflow: hidden;
  will-change: transform;
}

.nahdat-building-3d-stage canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

.nahdat-masterplan-description {
  margin: 8px 0 16px;
  max-width: 580px;
  font-size: clamp(13px, 0.85vw, 15px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-masterplan-action {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card 4 Exclusive Amenities 3D Cargo Ship */
.nahdat-amenities-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-amenities-content {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 3vh 4vw;
  text-align: center;
}

.nahdat-amenities-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nahdat-amenities-title {
  margin: 10px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.6rem, 3.5vw, 3.4rem);
  white-space: nowrap;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #1e3c72 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-ship-3d-stage {
  position: relative;
  width: 100%;
  max-width: 920px;
  height: min(38vh, 270px);
  margin: 14px 0;
  border-radius: 16px;
  overflow: hidden;
  will-change: transform;
}

.nahdat-ship-3d-stage canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

.nahdat-amenities-description {
  margin: 8px 0 16px;
  max-width: 580px;
  font-size: clamp(13px, 0.85vw, 15px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-amenities-action {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card 5 Coastal Sanctuary 3D Stylized Building */
.nahdat-coastal-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-coastal-content {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 3vh 4vw;
  text-align: center;
}

.nahdat-coastal-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nahdat-coastal-title {
  margin: 10px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.6rem, 3.5vw, 3.4rem);
  white-space: nowrap;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #1e3c72 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-coastal-3d-stage {
  position: relative;
  width: 100%;
  max-width: 780px;
  height: min(30vh, 220px);
  margin: 14px 0;
  border-radius: 16px;
  overflow: hidden;
  will-change: transform;
}

.nahdat-coastal-3d-stage canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

.nahdat-coastal-description {
  margin: 8px 0 16px;
  max-width: 580px;
  font-size: clamp(13px, 0.85vw, 15px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-coastal-action {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card 6 Location New Golden Mile 3D Computer Desk Area */
.nahdat-goldenmile-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-goldenmile-content {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 3vh 4vw;
  text-align: center;
}

.nahdat-goldenmile-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nahdat-goldenmile-title {
  margin: 10px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.6rem, 3.5vw, 3.4rem);
  white-space: nowrap;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #1e3c72 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-desk-3d-stage {
  position: relative;
  width: 100%;
  max-width: 780px;
  height: min(30vh, 220px);
  margin: 14px 0;
  border-radius: 16px;
  overflow: hidden;
  will-change: transform;
}

.nahdat-desk-3d-stage canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
  outline: none;
}

.nahdat-goldenmile-description {
  margin: 8px 0 16px;
  max-width: 580px;
  font-size: clamp(13px, 0.85vw, 15px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-goldenmile-action {
  display: flex;
  align-items: center;
  justify-content: center;
}

.nahdat-automatrix-right {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  padding-left: 2vw;
  max-width: 580px;
}

.nahdat-automatrix-title {
  margin: 14px 0 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(3.4rem, 6.2vw, 7.2rem);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: #101a3a;
  background: linear-gradient(135deg, #101a3a 0%, #b81414 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nahdat-automatrix-description {
  margin: 24px 0 0;
  font-size: clamp(13px, 0.88vw, 16px);
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #2c3852;
}

.nahdat-automatrix-action {
  margin-top: 36px;
}

.nahdat-automatrix-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 48px;
  padding: 0 28px;
  border: 1px solid #b81414;
  border-radius: 999px;
  color: #fff;
  background: #b81414;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(184, 20, 20, 0.28);
  transition: all 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-automatrix-btn:hover {
  background: #101a3a;
  border-color: #101a3a;
  box-shadow: 0 14px 36px rgba(16, 26, 58, 0.35);
  transform: translateY(-3px) scale(1.03);
}

/*
 * The only flower that remains inside the first panel is the upper-left
 * canopy. The old lower-right copy and the New Golden Mile right-side copy
 * were removed completely.
 */
.nahdat-panel-flower {
  position: absolute;
  z-index: 4;
  overflow: hidden;
  pointer-events: none;
}

.nahdat-panel-flower video {
  position: absolute;
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  object-fit: contain;
  filter: saturate(1.2) contrast(1.08);
  pointer-events: none;
}

.nahdat-concept-top-flower {
  top: -6vw;
  left: -5vw;
  width: min(33vw, 570px);
  height: min(31vw, 535px);
}

.nahdat-concept-top-flower video {
  top: 0;
  left: 0;
  transform: none;
}

/*
 * Two independent copies of bougainvillea-flowers_01.webm grow inward
 * from the left and right sides of the panel boundary. Each square video
 * is cropped only vertically; its complete width stays inside its own box,
 * so there are no hard side cuts and no dense rectangular centre hedge.
 */
.nahdat-divider-flower {
  position: absolute;
  bottom: -1px;
  left: 100vw;
  z-index: 12;
  width: min(74vw, 1240px);
  height: clamp(220px, 25vh, 252px);
  overflow: visible;
  pointer-events: none;
  transform: translateX(-50%);
}

.nahdat-divider-flower-side {
  --nahdat-divider-feather: 88px;

  position: absolute;
  bottom: 0;
  width: 53%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;

  /*
   * The source videos must still be cropped vertically, but a normal
   * overflow cut creates a perfectly straight horizontal edge through
   * the flowers. Feather only the upper crop so the stems and petals
   * emerge naturally instead of ending on a visible line.
   */
  -webkit-mask-image: linear-gradient(to bottom,
      transparent 0,
      rgba(0, 0, 0, 0.08) 12px,
      rgba(0, 0, 0, 0.34) 34px,
      rgba(0, 0, 0, 0.68) 60px,
      #000 var(--nahdat-divider-feather),
      #000 100%);
  mask-image: linear-gradient(to bottom,
      transparent 0,
      rgba(0, 0, 0, 0.08) 12px,
      rgba(0, 0, 0, 0.34) 34px,
      rgba(0, 0, 0, 0.68) 60px,
      #000 var(--nahdat-divider-feather),
      #000 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.nahdat-divider-flower-side-left {
  left: 0;
}

.nahdat-divider-flower-side-right {
  right: 0;
}

.nahdat-divider-flower-video {
  position: absolute;
  bottom: -14px;
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0;
  object-fit: contain;
  object-position: center bottom;
  filter: saturate(1.14) contrast(1.045);
  transform-origin: 50% 50%;
  pointer-events: none;
}

.nahdat-divider-flower-side-left .nahdat-divider-flower-video {
  right: 0;
  transform: rotate(180deg);
}

.nahdat-divider-flower-side-right .nahdat-divider-flower-video {
  left: 0;
  transform: rotate(180deg) scaleX(-1);
}

.nahdat-concept-content {
  position: relative;
  z-index: 5;
  display: flex;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 10vh 10vw 6vh;
  text-align: center;
}

.nahdat-concept-inner {
  width: min(1040px, 68vw);
}

.nahdat-concept-kicker {
  display: block;
  margin-bottom: 32px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nahdat-concept-title {
  margin: 0;
  font-family: "Italiana", "Times New Roman", serif;
  font-size: clamp(2.55rem, 4.45vw, 5.55rem);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.055em;
  text-transform: uppercase;
}

.nahdat-concept-description {
  max-width: 390px;
  margin: 58px auto 0;
  font-size: 14px;
  line-height: 1.38;
  letter-spacing: -0.03em;
}

.nahdat-location-panel {
  display: grid;
  grid-template-columns: 55% 45%;
}

.nahdat-location-copy {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  padding: 8vh 0 5vh 7vw;
}

.nahdat-location-heading {
  position: relative;
  z-index: 5;
  width: 126%;
  margin: 0 -20% 0 0;
  font-family: "Italiana", "Times New Roman", serif;
  font-size: clamp(6.2rem, 12.6vw, 14.5rem);
  font-weight: 400;
  line-height: 0.77;
  letter-spacing: -0.08em;
  text-align: center;
  text-transform: uppercase;
  transform: scaleX(0.78);
  transform-origin: 50% 50%;
}

.nahdat-location-country {
  position: absolute;
  top: 55%;
  left: 23%;
  z-index: 5;
  font-size: 12px;
  letter-spacing: 0.75em;
  text-transform: uppercase;
}

.nahdat-location-image {
  position: relative;
  z-index: 2;
  height: calc(100% - 7vh);
  margin-top: 3.5vh;
  margin-right: 2vw;
  overflow: hidden;
}

.nahdat-location-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* One 200vw Abu Dhabi composition: one heading sequence and one road. */
.nahdat-route-panel {
  position: relative;
  width: 200vw;
  flex: 0 0 200vw;
  color: #101a3a;
  background: #f5f4ee;
}

.nahdat-route-second-chrome {
  position: absolute;
  top: 0;
  left: 100vw;
  z-index: 30;
  width: 100vw;
  height: 100%;
  pointer-events: none;
}

.nahdat-between-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-between-copy {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9;
  width: max-content;
  max-width: 80vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  will-change: opacity, transform;
}

.nahdat-between-title {
  margin: 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.8vw, 3.2rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  white-space: nowrap;
}

.nahdat-between-description {
  max-width: 440px;
  margin: 18px 0 0;
  font-size: clamp(11px, 0.85vw, 13px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-map-availability {
  --map-x: 0px;
  --map-y: 0px;
  --map-pointer-x: 50%;
  --map-pointer-y: 50%;
  position: absolute;
  top: 42%;
  left: 9vw;
  z-index: 11;
  display: grid;
  width: clamp(150px, 11vw, 200px);
  height: clamp(150px, 11vw, 200px);
  place-items: center;
  border-radius: 50%;
  color: #101a3a;
  text-decoration: none;
  transform: translate3d(var(--map-x), var(--map-y), 0);
  transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.nahdat-map-availability::before,
.nahdat-map-availability::after {
  position: absolute;
  content: "";
  border-radius: inherit;
  pointer-events: none;
}

.nahdat-map-availability::before {
  inset: 0;
  border: 1px solid rgba(16, 26, 58, 0.3);
  background: radial-gradient(circle at var(--map-pointer-x) var(--map-pointer-y),
      rgba(201, 227, 235, 0.96),
      rgba(245, 244, 238, 0) 60%);
  box-shadow: 0 18px 60px rgba(16, 26, 58, 0.04);
  transition:
    border-color 420ms ease,
    transform 650ms cubic-bezier(0.16, 1, 0.3, 1),
    background 420ms ease,
    box-shadow 420ms ease;
}

.nahdat-map-availability::after {
  inset: 15%;
  border: 1px dashed rgba(16, 26, 58, 0.24);
  animation: nahdat-map-orbit 14s linear infinite;
  transition:
    inset 650ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms ease;
}

.nahdat-map-availability:hover::before,
.nahdat-map-availability:focus-visible::before {
  border-color: rgba(16, 26, 58, 0.78);
  box-shadow: 0 26px 76px rgba(16, 26, 58, 0.12);
  transform: scale(1.14);
}

.nahdat-map-availability:hover::after,
.nahdat-map-availability:focus-visible::after {
  inset: 3%;
  border-color: rgba(16, 26, 58, 0.58);
  animation-duration: 2.4s;
}

.nahdat-map-availability-ring {
  position: absolute;
  inset: -10%;
  border: 1px solid rgba(16, 26, 58, 0);
  border-top-color: rgba(16, 26, 58, 0.64);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.72) rotate(-80deg);
  transition:
    opacity 350ms ease,
    transform 780ms cubic-bezier(0.16, 1, 0.3, 1);
}

.nahdat-map-availability:hover .nahdat-map-availability-ring,
.nahdat-map-availability:focus-visible .nahdat-map-availability-ring {
  opacity: 1;
  transform: scale(1) rotate(190deg);
  animation: nahdat-map-orbit 2.2s linear infinite;
}

.nahdat-map-availability-label {
  position: relative;
  z-index: 2;
  max-width: 112px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.09em;
  text-align: center;
  text-transform: uppercase;
  transition:
    letter-spacing 500ms ease,
    transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-map-availability:hover .nahdat-map-availability-label,
.nahdat-map-availability:focus-visible .nahdat-map-availability-label {
  letter-spacing: 0.15em;
  transform: translateY(-9px);
}

.nahdat-map-availability-arrow {
  position: absolute;
  bottom: 25%;
  z-index: 3;
  opacity: 0;
  transform: translateY(-10px);
  transition:
    opacity 350ms ease,
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-map-availability:hover .nahdat-map-availability-arrow,
.nahdat-map-availability:focus-visible .nahdat-map-availability-arrow {
  opacity: 1;
  transform: translateY(0);
  animation: nahdat-map-arrow 850ms ease-in-out infinite alternate;
}

@keyframes nahdat-map-orbit {
  to {
    transform: rotate(360deg);
  }
}

@keyframes nahdat-map-arrow {
  to {
    transform: translateY(7px);
  }
}

.nahdat-coast-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f4ee;
}

.nahdat-coast-copy {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9;
  width: max-content;
  max-width: 80vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  will-change: opacity, transform;
}

.nahdat-coast-heading {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  width: auto;
  margin: 0;
  font-family: "Italiana", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.8vw, 3.2rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: #101a3a;
  white-space: nowrap;
}

.nahdat-coast-description {
  max-width: 440px;
  margin: 18px 0 0;
  font-size: clamp(11px, 0.85vw, 13px);
  line-height: 1.5;
  letter-spacing: -0.015em;
  color: #2c3852;
}

.nahdat-between-action,
.nahdat-coast-action {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
}

.nahdat-coast-heading em {
  display: block;
  margin: -0.1em 0 0.02em;
  font-family: "Bodoni Moda", "Times New Roman", serif;
  font-size: 0.76em;
  font-style: italic;
  font-weight: 400;
  line-height: 0.66;
  text-transform: lowercase;
  transform: rotate(-6deg) scaleX(1.08);
  transform-origin: 50% 50%;
}

/*
 * Coast canopy is anchored to the far-right edge of the 200vw route
 * panel. It enters only when that part of the panel reaches the viewport.
 */
.nahdat-coast-flower {
  position: absolute;
  top: -5vw;
  right: -4vw;
  z-index: 97;
  display: block;
  width: min(36vw, 640px);
  height: auto;
  max-width: none;
  object-fit: contain;
  object-position: right top;
  filter: saturate(1.2) contrast(1.08);
  pointer-events: none;
  transform: scaleX(-1);
  transform-origin: 50% 50%;
}

.nahdat-unified-route {
  position: absolute;
  right: 3.5vw;
  bottom: 2.2vh;
  left: 27vw;
  z-index: 9;
  height: 255px;
}

/* When wave lives inside card 1, stretch it across the full track */
.nahdat-wave-from-card1 {
  left: 0;
  right: auto;
  width: 700vw;   /* 7 panels Ã— 100vw */
  bottom: 3vh;
  pointer-events: none;
}

/* Wave as direct child of #horizontal-track â€” spans card 1 â†’ card 7 */
.nahdat-unified-route.nahdat-wave-full-track {
  position: absolute;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  bottom: 2vh;
  z-index: 25;
  height: 260px;
  pointer-events: none;
}

.nahdat-unified-route svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.nahdat-unified-route path {
  fill: none;
  stroke: #101a3a;
  stroke-width: 3.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  will-change: stroke-dashoffset;
}

.nahdat-route-stop {
  position: absolute;
  bottom: 88px;
  width: 154px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0.035em;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
  will-change: opacity, transform;
}

.nahdat-route-stop::after {
  position: absolute;
  bottom: -29px;
  left: 50%;
  width: 8px;
  height: 8px;
  content: "";
  border-radius: 50%;
  background: #101a3a;
  transform: translateX(-50%);
}

.nahdat-route-stop span {
  display: block;
  margin-top: 4px;
  font-size: 9px;
  font-weight: 500;
  opacity: 0.72;
}

.nahdat-route-stop.is-brand {
  bottom: 64px;
}

.nahdat-route-stop.is-brand::after {
  display: none;
}

.nahdat-route-logo {
  display: block;
  width: 78px;
  height: auto;
  margin: 0 auto 9px;
  object-fit: contain;
  filter: brightness(0) saturate(100%);
}

/* Cloud-to-city transition. Clouds exist only in this section. */
.nahdat-city-transition {
  position: relative;
  z-index: 92;
  height: 235vh;
  height: 235svh;
  margin-top: -14px;
  color: #101a3a;
  background: #f5f4ee;
}

.nahdat-city-viewport {
  position: sticky;
  top: -12px;
  height: calc(100vh + 24px);
  height: calc(100svh + 24px);
  min-height: 650px;
  overflow: hidden;
  isolation: isolate;
  background: #f5f4ee;
}

.nahdat-city-image {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 0%;
  backface-visibility: hidden;
  will-change: transform, object-position;
}

/*
 * The entire cloud field is pulled aggressively above the city viewport.
 * The oversized layers still overlap the section edge, but their visible
 * cloud bodies now sit directly across the hand-off so no pale seam can
 * remain between the horizontal sequence and the city scene.
 */
.nahdat-cloud-stage {
  position: absolute;
  top: -48vh;
  right: 0;
  bottom: -8vh;
  left: 0;
  z-index: 4;
  overflow: visible;
  pointer-events: none;
}

.nahdat-cloud-layer {
  position: absolute;
  height: auto;
  margin-bottom: clamp(90px, 13vh, 190px);
  pointer-events: none;
  backface-visibility: hidden;
  transform-origin: 50% 0%;
  will-change: transform;
}

.nahdat-cloud-drift {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  mix-blend-mode: screen;
  opacity: 1;
  filter: contrast(1.1) brightness(1.055);
  backface-visibility: hidden;
  will-change: transform;
}

.nahdat-cloud-one {
  top: -16%;
  left: -38%;
  width: 116vw;
}

.nahdat-cloud-two {
  top: -20%;
  left: -2%;
  width: 106vw;
}

.nahdat-cloud-three {
  top: -17%;
  right: -43%;
  width: 120vw;
}

.nahdat-cloud-four {
  top: -10%;
  left: -47%;
  width: 110vw;
}

.nahdat-cloud-five {
  top: -13%;
  left: 9%;
  width: 103vw;
}

.nahdat-cloud-six {
  top: -9%;
  right: -51%;
  width: 116vw;
}

.nahdat-city-label {
  position: absolute;
  bottom: 3.2vh;
  left: 50%;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: white;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.32);
  transform: translateX(-50%);
}

.nahdat-city-label::before {
  width: 1px;
  height: 48px;
  margin-bottom: 11px;
  content: "";
  background: rgba(255, 255, 255, 0.62);
}

.nahdat-city-label small {
  margin-top: 3px;
  font-size: 7px;
  letter-spacing: 0.22em;
  opacity: 0.8;
}

/* Residence-type carousel copied from the reference movement. */
.nahdat-residence-showcase {
  position: relative;
  z-index: 82;
  height: 320vh;
  height: 320svh;
  margin-top: 0;
  overflow: hidden;
  color: #101a3a;
  background: #c9e3eb;
  clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%);
}

.nahdat-residence-stage {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  min-height: 700px;
  overflow: hidden;
  padding-top: 6vh;
  will-change: transform;
}

.nahdat-residence-media {
  position: absolute;
  top: 9vh;
  left: 50%;
  z-index: 4;
  width: min(31vw, 560px);
  height: min(72vh, 720px);
  overflow: hidden;
  background: rgba(16, 26, 58, 0.08);
  box-shadow: 0 26px 70px rgba(16, 26, 58, 0.1);
  transform: translateX(-50%);
  will-change: transform;
}

.nahdat-residence-image-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  backface-visibility: hidden;
  will-change: opacity, transform, clip-path, filter;
}

.nahdat-residence-image-layer img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.nahdat-residence-image-layer.is-outgoing {
  z-index: 3;
}

.nahdat-residence-image-layer.is-incoming {
  z-index: 2;
}

.nahdat-residence-image-layer.is-incoming.is-next {
  animation: nahdat-residence-image-in-next 900ms 720ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-residence-image-layer.is-outgoing.is-next {
  animation: nahdat-residence-image-out-next 620ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

.nahdat-residence-image-layer.is-incoming.is-previous {
  animation: nahdat-residence-image-in-previous 900ms 720ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-residence-image-layer.is-outgoing.is-previous {
  animation: nahdat-residence-image-out-previous 620ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

@keyframes nahdat-residence-image-in-next {
  from {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    filter: blur(5px);
    transform: translateX(6%) scale(1.1);
  }

  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translateX(0) scale(1);
  }
}

@keyframes nahdat-residence-image-out-next {
  from {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translateX(0) scale(1);
  }

  to {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    transform: translateX(-8%) scale(1.04);
  }
}

@keyframes nahdat-residence-image-in-previous {
  from {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    filter: blur(5px);
    transform: translateX(-6%) scale(1.1);
  }

  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translateX(0) scale(1);
  }
}

@keyframes nahdat-residence-image-out-previous {
  from {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translateX(0) scale(1);
  }

  to {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transform: translateX(8%) scale(1.04);
  }
}

.nahdat-residence-meta,
.nahdat-residence-description {
  position: absolute;
  top: 39%;
  z-index: 7;
  transform: translateY(-50%);
  will-change: opacity, transform;
}

.nahdat-residence-meta {
  left: 10vw;
  width: 230px;
}

.nahdat-residence-description {
  right: 8.5vw;
  width: min(330px, 23vw);
  text-align: center;
}

.nahdat-residence-copy-layer {
  position: absolute;
  inset: 0;
  will-change: opacity, transform;
}

.nahdat-residence-copy-layer.is-incoming {
  animation: nahdat-residence-copy-in 620ms 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-residence-copy-layer.is-outgoing {
  animation: nahdat-residence-copy-out 500ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

@keyframes nahdat-residence-copy-in {
  from {
    opacity: 0;
    filter: blur(5px);
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

@keyframes nahdat-residence-copy-out {
  from {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }

  to {
    opacity: 0;
    filter: blur(4px);
    transform: translateY(-22px);
  }
}

.nahdat-residence-meta-label {
  display: block;
  margin-bottom: 8px;
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nahdat-residence-meta-value {
  display: block;
  margin-bottom: 32px;
  font-family: "Italiana", "Times New Roman", serif;
  font-size: clamp(2rem, 2.5vw, 3.3rem);
  line-height: 0.9;
}

.nahdat-residence-description p {
  margin: 0;
  font-size: 12px;
  line-height: 1.46;
  letter-spacing: -0.025em;
}

.nahdat-residence-explore {
  display: inline-flex;
  min-width: 190px;
  height: 46px;
  align-items: center;
  justify-content: center;
  margin-top: 28px;
  padding: 0 24px;
  border: 1px solid #101a3a;
  border-radius: 999px;
  color: #101a3a;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    color 360ms ease,
    background 360ms ease,
    letter-spacing 360ms ease,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 420ms ease;
}

.nahdat-residence-explore:hover,
.nahdat-residence-explore:focus-visible {
  color: #c9e3eb;
  background: #101a3a;
  letter-spacing: 0.08em;
  box-shadow: 0 18px 44px rgba(16, 26, 58, 0.18);
  transform: translateY(-5px) scale(1.03);
}

.nahdat-residence-title {
  position: absolute;
  right: 10vw;
  bottom: 10.5vh;
  left: 10vw;
  z-index: 8;
  display: grid;
  min-height: 0.95em;
  place-items: center;
  margin: 0;
  font-family: "Italiana", "Times New Roman", serif;
  font-size: clamp(4.25rem, 6.35vw, 7.6rem);
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.07em;
  text-align: center;
  text-transform: uppercase;
  pointer-events: none;
  will-change: opacity, transform;
}

.nahdat-residence-title-layer {
  grid-area: 1 / 1;
  max-width: 100%;
  white-space: nowrap;
  will-change: opacity, transform;
}

.nahdat-residence-title-layer.is-incoming.is-next {
  animation: nahdat-residence-title-in-next 740ms 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-residence-title-layer.is-outgoing.is-next {
  animation: nahdat-residence-title-out-next 520ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

.nahdat-residence-title-layer.is-incoming.is-previous {
  animation: nahdat-residence-title-in-previous 740ms 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.nahdat-residence-title-layer.is-outgoing.is-previous {
  animation: nahdat-residence-title-out-previous 520ms cubic-bezier(0.55, 0, 1, 0.45) both;
}

@keyframes nahdat-residence-title-in-next {
  from {
    opacity: 0;
    filter: blur(5px);
    transform: translateX(10%) scaleX(0.94);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0) scaleX(1);
  }
}

@keyframes nahdat-residence-title-out-next {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    filter: blur(4px);
    transform: translateX(-10%);
  }
}

@keyframes nahdat-residence-title-in-previous {
  from {
    opacity: 0;
    filter: blur(5px);
    transform: translateX(-10%) scaleX(0.94);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0) scaleX(1);
  }
}

@keyframes nahdat-residence-title-out-previous {
  from {
    opacity: 1;
    transform: translateX(0);
  }

  to {
    opacity: 0;
    filter: blur(4px);
    transform: translateX(10%);
  }
}

.nahdat-residence-controls {
  position: absolute;
  bottom: 4.5vh;
  left: 50%;
  z-index: 12;
  display: grid;
  width: min(350px, 29vw);
  grid-template-columns: 34px 24px 1fr 24px 34px;
  align-items: center;
  transform: translateX(-50%);
  will-change: opacity, transform;
}

.nahdat-residence-controls button {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  color: #101a3a;
  background: transparent;
  cursor: pointer;
  transition: opacity 280ms ease, transform 350ms ease;
}

.nahdat-residence-controls button:hover,
.nahdat-residence-controls button:focus-visible {
  opacity: 0.55;
  transform: scale(1.15);
}

.nahdat-residence-progress {
  height: 1px;
  margin: 0 12px;
  background: rgba(16, 26, 58, 0.16);
}

.nahdat-residence-progress span {
  display: block;
  width: var(--residence-progress);
  height: 100%;
  background: #101a3a;
  transition: width 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {

  .nahdat-availability,
  .nahdat-availability *,
  .nahdat-hotspot,
  .nahdat-hotspot * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

@media (max-width: 767px) {


  .nahdat-hero-section {
    height: 400svh;
  }

  .nahdat-reasons-sequence {
    height: 405svh;
    /* Use the same reveal boundary on compact screens: the section
       starts entering only after the 85svh hero-image pan completes. */
    margin-top: -215svh;
  }

  .nahdat-reasons-bubble {
    width: 146vw;
    height: 146vw;
  }

  .nahdat-arch-copy {
    top: -4.8%;
    width: 132vw;
    height: 194px;
  }

  .nahdat-arch-copy text {
    font-size: 30px;
    letter-spacing: 0.22em;
  }

  .nahdat-arch-brand {
    top: 10.8%;
    width: 92px;
  }

  .nahdat-arch-rule {
    top: 18.9%;
    height: 78px;
  }

  .nahdat-arch-caption {
    top: 29.8%;
    width: min(270px, 70vw);
    font-size: 9px;
    line-height: 1.55;
  }

  .nahdat-arch-next-title {
    width: 132vw;
    min-height: 1.08em;
    font-size: clamp(4rem, 17vw, 6.5rem);
    line-height: 0.86;
    white-space: nowrap;
    transform: scaleX(0.68);
  }

  .nahdat-reason-layout {
    padding: clamp(104px, 14vh, 132px) 16px 28px;
  }

  .nahdat-reason-media-stage {
    width: min(84vw, 390px);
    margin-top: clamp(34px, 5vh, 48px);
  }

  .nahdat-reason-controls {
    width: min(78vw, 360px);
    margin-top: 13px;
  }

  .nahdat-reason-copy {
    width: 88vw;
    min-height: 118px;
    margin-top: clamp(28px, 4vh, 40px);
  }

  .nahdat-reason-description {
    font-size: 11px;
    line-height: 1.5;
  }

  .nahdat-reason-statement {
    margin-top: 20px;
    font-size: 8px;
  }

  .nahdat-immersive-quote {
    top: auto;
    right: 20px;
    bottom: 4vh;
    left: 20px;
    width: auto;
  }

  .nahdat-immersive-copy {
    font-size: clamp(1.7rem, 7.2vw, 2.7rem);
    line-height: 1;
  }

  .nahdat-concept-top-flower {
    top: -16vw;
    left: -22vw;
    width: 68vw;
    height: 66vw;
  }

  .nahdat-divider-flower {
    bottom: -1px;
    width: min(108vw, 720px);
    height: clamp(126px, 19vh, 176px);
  }

  .nahdat-divider-flower-side {
    --nahdat-divider-feather: 58px;
    width: 54%;
  }

  .nahdat-divider-flower-video {
    bottom: -10px;
    width: 100%;
  }

  .nahdat-concept-content {
    padding: 16vh 20px 8vh;
  }

  .nahdat-concept-inner {
    width: 92vw;
  }

  .nahdat-concept-title {
    font-size: clamp(2.35rem, 10.5vw, 4.2rem);
  }

  .nahdat-concept-description {
    max-width: 76vw;
    margin-top: 38px;
  }

  .nahdat-location-panel {
    display: block;
  }

  .nahdat-location-copy {
    position: absolute;
    inset: 0;
    z-index: 5;
    align-items: center;
    padding: 0 20px;
  }

  .nahdat-location-heading {
    width: 118vw;
    margin: 0;
    color: white;
    font-size: clamp(5rem, 22vw, 8rem);
    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.28);
    transform: scaleX(0.72);
  }

  .nahdat-location-country {
    top: 68%;
    left: 50%;
    color: white;
    transform: translateX(-50%);
  }

  .nahdat-location-image {
    height: 100%;
    margin: 0;
  }

  .nahdat-location-image::after {
    position: absolute;
    inset: 0;
    content: "";
    background: rgba(7, 16, 31, 0.2);
  }

  .nahdat-route-panel {
    width: 200vw;
    flex-basis: 200vw;
  }

  .nahdat-between-copy {
    right: auto;
    bottom: 8vh;
    left: 22px;
    width: 42vw;
  }

  .nahdat-between-title {
    font-size: clamp(1.8rem, 8.6vw, 3.1rem);
  }

  .nahdat-between-description {
    max-width: 40vw;
    font-size: 9px;
  }

  .nahdat-map-availability {
    top: 40%;
    left: 28vw;
    width: 132px;
    height: 132px;
    transform: translate3d(var(--map-x), var(--map-y), 0);
  }

  .nahdat-coast-heading {
    top: 16vh;
    left: 148vw;
    width: 88vw;
    font-size: clamp(3rem, 13vw, 5.4rem);
  }

  .nahdat-coast-flower {
    top: -16vw;
    right: -22vw;
    width: 92vw;
  }

  .nahdat-unified-route:not(.nahdat-wave-full-track) {
    right: 2vw;
    bottom: 3vh;
    left: 14vw;
    height: 190px;
  }

  .nahdat-unified-route path {
    stroke-width: 2.4;
  }

  .nahdat-route-stop {
    bottom: 72px;
    width: 96px;
    font-size: 7px;
  }

  .nahdat-route-stop::after {
    bottom: -24px;
    width: 6px;
    height: 6px;
  }

  .nahdat-route-stop span {
    font-size: 6px;
  }

  .nahdat-route-stop.is-brand {
    bottom: 54px;
  }

  .nahdat-route-logo {
    width: 50px;
  }

  .nahdat-city-transition {
    height: 220svh;
    margin-top: -14px;
  }

  .nahdat-cloud-stage {
    top: -42vh;
    bottom: -8vh;
  }

  .nahdat-cloud-layer {
    margin-bottom: 16vh;
  }

  .nahdat-cloud-one {
    top: -18%;
    left: -92%;
    width: 216vw;
  }

  .nahdat-cloud-two {
    top: -22%;
    left: -43%;
    width: 198vw;
  }

  .nahdat-cloud-three {
    top: -19%;
    right: -99%;
    width: 224vw;
  }

  .nahdat-cloud-four {
    top: -12%;
    left: -101%;
    width: 208vw;
  }

  .nahdat-cloud-five {
    top: -15%;
    left: -36%;
    width: 190vw;
  }

  .nahdat-cloud-six {
    top: -11%;
    right: -106%;
    width: 218vw;
  }

  .nahdat-city-label {
    bottom: 4vh;
    font-size: 8px;
  }

  .nahdat-residence-showcase {
    min-height: 112svh;
    margin-top: 0;
    clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 100%);
  }

  .nahdat-residence-stage {
    height: 112svh;
    min-height: 720px;
  }

  .nahdat-residence-media {
    top: 14vh;
    width: min(66vw, 390px);
    height: 56vh;
  }

  .nahdat-residence-meta {
    top: 27vh;
    left: 18px;
    width: 104px;
  }

  .nahdat-residence-description {
    top: 28vh;
    right: 18px;
    width: 116px;
  }

  .nahdat-residence-meta-label {
    font-size: 7px;
  }

  .nahdat-residence-meta-value {
    margin-bottom: 18px;
    font-size: clamp(1.35rem, 6vw, 2rem);
  }

  .nahdat-residence-description p {
    font-size: 8px;
    line-height: 1.35;
  }

  .nahdat-residence-explore {
    min-width: 112px;
    height: 34px;
    margin-top: 15px;
    padding: 0 10px;
    font-size: 7px;
  }

  .nahdat-residence-title {
    right: 5vw;
    bottom: 13vh;
    left: 5vw;
    font-size: clamp(2.75rem, 11vw, 4.8rem);
    line-height: 0.88;
  }

  .nahdat-residence-title-layer {
    white-space: normal;
  }

  .nahdat-residence-controls {
    bottom: 5vh;
    width: min(78vw, 330px);
  }

  .nahdat-title-line {
    padding: 0.24em 0 0.18em;
    font-size: clamp(3.15rem, 15vw, 5.8rem);
    line-height: 0.92;
    transform: scaleX(0.79);
  }

  .nahdat-title-line+.nahdat-title-line {
    margin-top: -0.16em;
  }

  .nahdat-estepona-safe-area {
    width: clamp(270px, 84vw, 390px);
    margin-top: -0.75rem;
    padding: 18px 42px 20px;
  }

  .nahdat-estepona-safe-inner {
    min-height: 92px;
  }

  .nahdat-estepona {
    width: 72%;
    max-width: 238px;
  }

  .nahdat-hotspot {
    width: 60px;
    height: 60px;
  }

  .nahdat-hotspot-main-circle,
  .nahdat-hotspot-pulse {
    inset: 13px;
  }

  .nahdat-info-card {
    width: min(370px, calc(100vw - 32px));
    height: min(410px, calc(100svh - 72px));
    min-height: 350px;
  }

  .nahdat-info-close {
    top: auto;
    bottom: -20px;
    left: 50%;
    display: flex;
    transform: translateX(-50%);
  }

  .nahdat-info-close:hover {
    transform: translateX(-50%) rotate(90deg);
  }

  .nahdat-info-description {
    font-size: 14px;
  }

  .nahdat-availability {
    width: 175px;
    height: 175px;
  }

  .nahdat-availability-ripple {
    inset: 32px;
  }

  .nahdat-availability-orbit {
    inset: 24px;
  }

  .nahdat-availability:hover .nahdat-availability-orbit,
  .nahdat-availability:focus-visible .nahdat-availability-orbit {
    inset: 3px;
  }

  .nahdat-availability-core {
    width: 88px;
    height: 88px;
  }

  .nahdat-availability:hover .nahdat-availability-core,
  .nahdat-availability:focus-visible .nahdat-availability-core {
    width: 120px;
    height: 120px;
  }

  .nahdat-availability-text {
    font-size: 7px;
  }
}

/* ---------- Part 3: static-site additions ---------- */

.nahdat-menu-link:focus-visible,
.nahdat-reason-control-button:focus-visible,
.nahdat-residence-controls button:focus-visible,
.nahdat-residence-explore:focus-visible,
[data-day-night]:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

.nahdat-hotspot:focus-visible {
  outline: none;
}

.nahdat-info-close:focus-visible {
  outline: 2px solid #102643;
  outline-offset: 3px;
}

/* The loader covers the page until script.js has prepared the intro. */
.nahdat-loader {
  z-index: 50;
  will-change: opacity, transform;
  backface-visibility: hidden;
}

/* Graceful fallback when GSAP cannot be loaded from the CDN: show the
   final (reduced-motion) state of every scroll scene instead of a blank page. */
html.no-motion-lib .nahdat-loader {
  display: none !important;
}

html.no-motion-lib .nahdat-reasons-fill {
  clip-path: circle(160% at 50% 100%);
}

html.no-motion-lib .nahdat-reasons-content {
  pointer-events: auto;
}

html.no-motion-lib .nahdat-hotspot-stage {
  opacity: 1;
}

html.no-motion-lib #hero-viewport {
  position: sticky;
  top: 0;
}

html.no-motion-lib .nahdat-horizontal-section {
  overflow-x: auto;
}

html.no-motion-lib .nahdat-cloud-stage {
  display: none;
}

/* ---------- Premium Title Styling ---------- */
.nahdat-title-line {
  display: block;
  width: 100%;
  padding: 0.12em 0 0.08em;
  overflow: visible;
  font-family: "Italiana", "Cormorant Garamond", "Bodoni Moda", serif;
  font-size: clamp(2.2rem, 4.5vw, 5.5rem);
  font-optical-sizing: auto;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.15em;
  white-space: nowrap;
  transform: scaleX(0.95);
  transform-origin: 50% 50%;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.28);
}

.nahdat-title-line+.nahdat-title-line {
  margin-top: -0.05em;
}

/* ---------- Hotspot Blinking Target (Image 2 style) ---------- */
.nahdat-hotspot {
  position: absolute;
  width: 64px;
  height: 64px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  outline: none;
  pointer-events: auto !important;
  z-index: 40;
}

.nahdat-hotspot-main-circle {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.nahdat-hotspot-center-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.95);
  z-index: 2;
  transition: transform 0.3s ease, background-color 0.3s ease;
}

.nahdat-hotspot-pulse {
  position: absolute;
  inset: 12px;
  border: 1.5px solid rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  pointer-events: none;
  animation: nahdat-ripple-blink 2.4s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

.nahdat-hotspot-pulse-two {
  animation-delay: 0.8s;
}

.nahdat-hotspot-pulse-three {
  animation-delay: 1.6s;
}

@keyframes nahdat-ripple-blink {
  0% {
    transform: scale(0.35);
    opacity: 0.95;
  }

  50% {
    opacity: 0.6;
  }

  100% {
    transform: scale(2.2);
    opacity: 0;
  }
}

.nahdat-hotspot:hover .nahdat-hotspot-center-dot {
  transform: scale(1.4);
  background: #f7d58b;
  box-shadow: 0 0 14px #f7d58b;
}

/* ---------- Luxury Business Card UI/UX Styling ---------- */
.nahdat-info-card {
  position: fixed !important;
  z-index: 2147483647 !important;
  width: clamp(280px, 20vw, 340px) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 22px 20px 20px !important;
  isolation: isolate;
  color: #102643 !important;
  background: #fdfbf7 !important;
  border: 1px solid rgba(16, 38, 67, 0.16) !important;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.25) !important;
  border-radius: 8px !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  clip-path: none !important;
  filter: none !important;
  transform: none !important;
  transform-origin: center center;
  animation: nahdat-card-enter 350ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.nahdat-info-card::before,
.nahdat-info-card::after {
  display: none !important;
  content: none !important;
}

.nahdat-info-category {
  display: block !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: #b88e28 !important;
  margin: 0 0 6px 0 !important;
}

.nahdat-info-title {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: 90% !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  font-family: "Cinzel", "Bodoni Moda", serif !important;
  font-size: clamp(1.1rem, 1.3vw, 1.4rem) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.03em !important;
  color: #0b1d3a !important;
  text-transform: uppercase !important;
  transform: none !important;
}

.nahdat-info-description {
  position: static !important;
  display: block !important;
  inset: auto !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  font-family: "Manrope", sans-serif !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #4a5568 !important;
  letter-spacing: 0 !important;
}

.nahdat-info-action {
  position: static !important;
  display: block !important;
  margin-top: 12px !important;
}

.nahdat-info-website-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 10px 16px !important;
  font-family: "Manrope", sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: #ffffff !important;
  background: #0b1d3a !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(11, 29, 58, 0.2) !important;
  transition: all 0.2s ease-in-out !important;
}

.nahdat-info-website-btn:hover {
  background: #c59b27 !important;
  color: #ffffff !important;
  box-shadow: 0 6px 16px rgba(197, 155, 39, 0.35) !important;
}

.nahdat-info-website-btn svg {
  transition: transform 0.2s ease !important;
}

.nahdat-info-website-btn:hover svg {
  transform: translate(3px, -2px) !important;
}

.nahdat-info-close {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 10 !important;
  display: flex !important;
  width: 26px !important;
  height: 26px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #5a6a80 !important;
  background: rgba(16, 38, 67, 0.08) !important;
  cursor: pointer !important;
  transform: none !important;
  transition: all 0.2s ease !important;
}

.nahdat-info-close:hover {
  color: #ffffff !important;
  background: #0b1d3a !important;
}

/* ---------- Immersive Pinned 3-Paragraph & Dark Background Styling ---------- */
#immersive,
.nahdat-immersive-section,
.nahdat-immersive-viewport {
  background: #0b1d3a !important;
  color: #ffffff;
}

.nahdat-immersive-paras-container {
  position: relative;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.nahdat-immersive-para {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Italiana", "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 2.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #ffffff;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
  margin: 0;
  padding: 0 16px;
  text-align: center;
  pointer-events: none;
}

/* ---------- Luxury Contact Us Section (Vanilla CSS) ---------- */
.nahdat-contact-section {
  position: relative;
  width: 100%;
  background: #0b1d3a;
  color: #ffffff;
  padding: 100px 8% 60px;
  border-top: 1px solid rgba(197, 155, 39, 0.25);
  box-sizing: border-box;
  z-index: 100;
}

.nahdat-contact-container {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: start;
}

@media (min-width: 1024px) {
  .nahdat-contact-container {
    grid-template-columns: 5fr 7fr;
    gap: 64px;
  }
}

.nahdat-contact-left {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.nahdat-contact-badge {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #c59b27;
  background: rgba(197, 155, 39, 0.12);
  border: 1px solid rgba(197, 155, 39, 0.35);
  width: fit-content;
}

.nahdat-contact-heading {
  font-family: "Cinzel", "Italiana", "Cormorant Garamond", serif;
  font-size: clamp(2.2rem, 3.8vw, 3.5rem);
  font-weight: 400;
  line-height: 1.15;
  color: #ffffff;
  letter-spacing: 0.02em;
  margin: 12px 0;
}

.nahdat-contact-subtext {
  font-family: "Manrope", sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: #94a3b8;
  font-weight: 300;
}

.nahdat-contact-divider-line {
  width: 64px;
  height: 1px;
  background: rgba(197, 155, 39, 0.4);
}

.nahdat-contact-cards-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.nahdat-contact-card {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 24px;
  background: rgba(16, 38, 67, 0.65);
  border: 1px solid rgba(197, 155, 39, 0.22);
  border-radius: 12px;
  backdrop-filter: blur(12px);
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.nahdat-contact-card:hover {
  transform: translateY(-4px);
  border-color: rgba(197, 155, 39, 0.6);
  background: rgba(16, 38, 67, 0.85);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
}

.nahdat-contact-icon-wrapper {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(197, 155, 39, 0.12);
  border: 1px solid rgba(197, 155, 39, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #c59b27;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.nahdat-contact-card:hover .nahdat-contact-icon-wrapper {
  background: #c59b27;
  color: #0b1d3a;
  box-shadow: 0 0 18px rgba(197, 155, 39, 0.5);
}

.nahdat-contact-card-label {
  font-family: "Manrope", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #c59b27;
  margin-bottom: 4px;
}

.nahdat-contact-card-val {
  font-family: "Cinzel", "Cormorant Garamond", serif;
  font-size: 17px;
  font-weight: 500;
  color: #ffffff;
  margin: 0;
  text-decoration: none;
}

.nahdat-contact-card-sub {
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  color: #94a3b8;
  margin-top: 2px;
}

/* Right Column Static Luxury Form */
.nahdat-contact-right-form-box {
  background: rgba(16, 38, 67, 0.7);
  border: 1px solid rgba(197, 155, 39, 0.28);
  border-radius: 16px;
  padding: 44px 40px;
  backdrop-filter: blur(16px);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.35);
}

@media (max-width: 640px) {
  .nahdat-contact-right-form-box {
    padding: 28px 20px;
  }
}

.nahdat-contact-form-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(197, 155, 39, 0.2);
}

.nahdat-contact-form-title {
  font-family: "Cinzel", "Italiana", serif;
  font-size: 24px;
  font-weight: 500;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.04em;
}

.nahdat-contact-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 640px) {
  .nahdat-contact-form-grid-2 {
    grid-template-columns: 1fr 1fr;
  }
}

.nahdat-contact-field-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nahdat-contact-field-label {
  font-family: "Manrope", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #cbd5e1;
}

.nahdat-contact-input-control {
  width: 100%;
  padding: 14px 18px;
  background: rgba(6, 18, 36, 0.85);
  border: 1px solid rgba(197, 155, 39, 0.28);
  border-radius: 8px;
  color: #ffffff;
  font-family: "Manrope", sans-serif;
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  transition: all 0.25s ease;
}

.nahdat-contact-input-control::placeholder {
  color: #475569;
}

.nahdat-contact-input-control:focus {
  border-color: #c59b27;
  background: rgba(6, 18, 36, 0.95);
  box-shadow: 0 0 0 4px rgba(197, 155, 39, 0.18);
}

.nahdat-contact-select-control option {
  background: #0b1d3a;
  color: #ffffff;
}

.nahdat-contact-submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  margin-top: 10px;
  padding: 16px 32px;
  background: linear-gradient(135deg, #c59b27 0%, #a67c1e 100%);
  color: #ffffff;
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(197, 155, 39, 0.3);
  transition: all 0.3s ease;
}

.nahdat-contact-submit-button:hover {
  background: linear-gradient(135deg, #d8ab34 0%, #b88c22 100%);
  box-shadow: 0 12px 30px rgba(197, 155, 39, 0.45);
  transform: translateY(-2px);
}

.nahdat-contact-footer-bar {
  margin-top: 70px;
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  color: #64748b;
  font-weight: 300;
}

/* ==========================================================================
   Smooth Scrolling & GPU Acceleration Optimizations
   ========================================================================== */
html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

#horizontal-track,
.nahdat-reasons-card,
.nahdat-wave-full-track,
#wave-3d-canvas-container,
.nahdat-card-stage,
canvas {
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* ==========================================================================
   Official Ultra-Luxury Typography System (Cinzel, Tenor Sans, Plus Jakarta Sans)
   ========================================================================== */
h1, h2, h3, h4,
.nahdat-title-line,
.nahdat-thin-display,
.nahdat-hero-heading,
.nahdat-card-title,
.nahdat-masterplan-title,
.nahdat-hotel-title,
.nahdat-amenities-title,
.nahdat-coastal-title,
.nahdat-goldenmile-title,
.nahdat-contact-heading,
[data-split-title] {
  font-family: "Cinzel", "Tenor Sans", "Playfair Display", serif !important;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Luxury badges & kickers */
.nahdat-badge,
.nahdat-contact-badge,
[class*="-badge"] {
  font-family: "Tenor Sans", "Plus Jakarta Sans", sans-serif !important;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #c59b27;
}

/* Clean, readable luxury body text */
body, p, span, a, input, select, button, textarea {
  font-family: "Plus Jakarta Sans", "Manrope", sans-serif;
}

/* Immersive quote bold black override */
.nahdat-immersive-quote,
.nahdat-immersive-quote *,
.nahdat-immersive-copy,
.nahdat-immersive-para,
.nahdat-immersive-mark,
.nahdat-immersive-credit {
  color: #000000 !important;
  font-weight: 800 !important;
}
/* ---- 2-Step Luxury Loader Brand & Counter ---- */
.nahdat-loader-brand {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 60;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  pointer-events: none;
  will-change: opacity, transform;
}

.nahdat-loader-counter {
  font-family: "Cinzel", "Playfair Display", Georgia, serif;
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.nahdat-loader-kicker {
  font-family: "Tenor Sans", "Plus Jakarta Sans", sans-serif;
  font-size: clamp(9px, 0.75vw, 11px);
  font-weight: 600;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.nahdat-loader-bar {
  width: 140px;
  height: 2px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  margin-top: 4px;
}

.nahdat-loader-bar-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #87CEEB 0%, #ffffff 100%);
  will-change: width;
}

/* ==========================================
   WhatsApp Floating Button (Fixed Bottom-Right)
   ========================================== */
.whatsapp-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  width: 58px;
  height: 58px;
  background-color: #25d366;
  color: #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(37, 211, 102, 0.45), 0 2px 8px rgba(0, 0, 0, 0.35);
  z-index: 99999;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background-color 0.3s ease;
  text-decoration: none;
}

.whatsapp-float:hover {
  transform: scale(1.12);
  background-color: #20ba5a;
  box-shadow: 0 6px 24px rgba(37, 211, 102, 0.65), 0 4px 12px rgba(0, 0, 0, 0.4);
}

.whatsapp-float:active {
  transform: scale(0.96);
}

.whatsapp-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: #25d366;
  opacity: 0.65;
  animation: whatsapp-pulse-ring 2.2s infinite cubic-bezier(0.4, 0, 0.6, 1);
  pointer-events: none;
  z-index: -1;
}

@keyframes whatsapp-pulse-ring {
  0% {
    transform: scale(0.95);
    opacity: 0.7;
  }
  70% {
    transform: scale(1.5);
    opacity: 0;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

.whatsapp-icon {
  width: 32px;
  height: 32px;
  fill: currentColor;
}

@media (max-width: 768px) {
  .whatsapp-float {
    bottom: 20px;
    right: 20px;
    width: 52px;
    height: 52px;
  }
  .whatsapp-icon {
    width: 28px;
    height: 28px;
  }
}

