@layer reset, base, layout, components, motion, responsive, typography-polish;

@font-face {
  font-family: "Vietlinker Sans";
  src: url("/demos/realtor/fonts/vietlinker-sans-vietnamese.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
    U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: "Vietlinker Sans";
  src: url("/demos/realtor/fonts/vietlinker-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
    U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Vietlinker Serif";
  src: url("/demos/realtor/fonts/vietlinker-serif-normal-vietnamese.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
    U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: "Vietlinker Serif";
  src: url("/demos/realtor/fonts/vietlinker-serif-normal-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
    U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Vietlinker Serif";
  src: url("/demos/realtor/fonts/vietlinker-serif-italic-vietnamese.woff2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
    U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: "Vietlinker Serif";
  src: url("/demos/realtor/fonts/vietlinker-serif-italic-latin.woff2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
    U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

@layer reset, base, layout, components, motion, responsive;

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
    scroll-padding-top: 6rem;
  }

  body,
  h1,
  h2,
  h3,
  p,
  figure,
  blockquote,
  dl,
  dd,
  ol,
  ul {
    margin: 0;
  }

  ul,
  ol {
    padding: 0;
    list-style: none;
  }

  img {
    display: block;
    width: 100%;
  }

  button,
  input,
  select,
  textarea {
    color: inherit;
    font: inherit;
  }

  button,
  a {
    -webkit-tap-highlight-color: transparent;
  }

  a {
    color: inherit;
    text-decoration: none;
  }
}

@layer base {
  :root {
    --cream: #f3ede1;
    --paper: #fbf8f2;
    --paper-dark: #e9e1d3;
    --ink: #223029;
    --ink-soft: #566158;
    --forest: #1d382d;
    --forest-2: #29483a;
    --sage: #75866b;
    --sage-pale: #dce2d2;
    --clay: #bd694c;
    --clay-deep: #914831;
    --sun: #e3b76a;
    --line: rgb(34 48 41 / 14%);
    --shadow: 0 28px 70px rgb(43 54 42 / 14%);
    --shell: min(1240px, calc(100vw - 88px));
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, Avenir, "Avenir Next", "Segoe UI", Arial, sans-serif;
  }

  body {
    min-width: 320px;
    background: var(--cream);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
  }

  body.menu-open {
    overflow: hidden;
  }

  ::selection {
    background: var(--clay);
    color: white;
  }

  :focus-visible {
    outline: 3px solid var(--sun);
    outline-offset: 4px;
  }

  .shell {
    width: var(--shell);
    margin-inline: auto;
  }

  .section {
    padding-block: clamp(6rem, 10vw, 10rem);
  }

  h1,
  h2,
  h3 {
    line-height: 0.98;
    letter-spacing: -0.045em;
    font-weight: 500;
  }

  h1,
  h2 {
    font-size: clamp(3.35rem, 6.4vw, 6.8rem);
  }

  h1 em,
  h2 em {
    font-family: var(--serif);
    font-weight: 400;
    letter-spacing: -0.055em;
  }

  .overline {
    margin-bottom: 1.3rem;
    color: var(--clay-deep);
    font-size: 0.69rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1.2;
  }

  .overline.light {
    color: #e8c88f;
  }

  .section-label {
    display: grid;
    grid-template-columns: 3rem 1fr;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: clamp(3.25rem, 7vw, 6.5rem);
    color: var(--ink-soft);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.22em;
  }

  .section-label span {
    display: grid;
    width: 3rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    letter-spacing: 0;
  }

  .section-label p {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .section-label p::after {
    width: min(11rem, 16vw);
    height: 1px;
    background: var(--line);
    content: "";
  }

  .button {
    display: inline-flex;
    min-height: 3.7rem;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 0.9rem 1.25rem 0.9rem 1.5rem;
    border: 0;
    border-radius: 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    line-height: 1.2;
    cursor: pointer;
    transition:
      transform 240ms ease,
      background-color 240ms ease,
      color 240ms ease;
  }

  .button:hover {
    transform: translateY(-3px);
  }

  .button-light,
  .button-cream {
    background: var(--paper);
    color: var(--ink);
  }

  .button-light:hover,
  .button-cream:hover {
    background: white;
  }

  .button-clay {
    background: var(--clay);
    color: white;
  }

  .button-clay:hover {
    background: var(--clay-deep);
  }

  .button-dark {
    background: var(--forest);
    color: white;
  }

  .button-dark:hover {
    background: var(--clay-deep);
  }

  .text-link {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid currentcolor;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.04em;
  }

  .text-link.light {
    color: white;
  }

  .skip-link {
    position: fixed;
    z-index: 1000;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.8rem 1rem;
    background: var(--paper);
    color: var(--ink);
    transform: translateY(-140%);
  }

  .skip-link:focus {
    transform: translateY(0);
  }
}

@layer layout {
  .demo-bar {
    position: absolute;
    z-index: 40;
    top: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: 2.25rem;
    align-items: center;
    justify-content: space-between;
    padding-inline: clamp(1rem, 3vw, 2.75rem);
    background: #e3c99c;
    color: #18271f;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
  }

  .demo-bar p,
  .demo-bar a {
    display: flex;
    align-items: center;
    gap: 0.65rem;
  }

  .demo-bar a:hover {
    text-decoration: underline;
    text-underline-offset: 0.2rem;
  }

  .demo-dot {
    width: 0.4rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--clay-deep);
  }

  .site-header {
    position: fixed;
    z-index: 30;
    top: 2.25rem;
    left: 0;
    display: grid;
    width: 100%;
    height: 5.5rem;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding-inline: clamp(1.25rem, 3.8vw, 3.75rem);
    border-bottom: 1px solid rgb(255 255 255 / 19%);
    color: white;
    transition:
      top 300ms ease,
      height 300ms ease,
      color 300ms ease,
      background-color 300ms ease,
      border-color 300ms ease,
      backdrop-filter 300ms ease;
  }

  .site-header.scrolled {
    top: 0;
    height: 4.8rem;
    border-color: var(--line);
    background: rgb(247 243 235 / 90%);
    color: var(--ink);
    backdrop-filter: blur(18px);
  }

  .brand {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.85rem;
    line-height: 1;
  }

  .brand-roof {
    position: relative;
    display: grid;
    width: 2.8rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid currentcolor;
    border-radius: 50%;
  }

  .brand-roof::before,
  .brand-roof::after,
  .brand-roof i {
    position: absolute;
    display: block;
    content: "";
  }

  .brand-roof::before {
    width: 0.95rem;
    height: 0.95rem;
    border-top: 1.5px solid currentcolor;
    border-left: 1.5px solid currentcolor;
    transform: translateY(-0.12rem) rotate(45deg);
  }

  .brand-roof::after {
    bottom: 0.82rem;
    width: 1.08rem;
    height: 0.65rem;
    border: 1.5px solid currentcolor;
    border-top: 0;
  }

  .brand-copy {
    display: grid;
    gap: 0.33rem;
  }

  .brand-copy strong {
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: 0.08em;
  }

  .brand-copy small {
    font-size: 0.48rem;
    font-weight: 800;
    letter-spacing: 0.23em;
  }

  .desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(1.1rem, 2.4vw, 2.5rem);
    font-size: 0.72rem;
    font-weight: 700;
  }

  .desktop-nav a {
    position: relative;
  }

  .desktop-nav a::after {
    position: absolute;
    bottom: -0.45rem;
    left: 0;
    width: 100%;
    height: 1px;
    background: currentcolor;
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 220ms ease;
  }

  .desktop-nav a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .header-actions {
    display: flex;
    justify-self: end;
    align-items: center;
    gap: 1.35rem;
  }

  .language-switch {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.62rem;
    font-weight: 800;
  }

  .language-switch button {
    padding: 0.2rem;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    opacity: 0.45;
  }

  .language-switch button.active {
    opacity: 1;
  }

  .header-cta {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    gap: 1.4rem;
    padding-inline: 1.15rem;
    background: white;
    color: var(--ink);
    font-size: 0.66rem;
    font-weight: 800;
    transition:
      background-color 220ms ease,
      color 220ms ease;
  }

  .site-header.scrolled .header-cta {
    background: var(--forest);
    color: white;
  }

  .header-cta:hover,
  .site-header.scrolled .header-cta:hover {
    background: var(--clay);
    color: white;
  }

  .menu-button {
    display: none;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.4rem;
    border: 1px solid currentcolor;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }

  .menu-button span {
    display: block;
    width: 1rem;
    height: 1px;
    background: currentcolor;
    transition: transform 200ms ease;
  }

  .menu-button[aria-expanded="true"] span:first-child {
    transform: translateY(0.22rem) rotate(45deg);
  }

  .menu-button[aria-expanded="true"] span:last-child {
    transform: translateY(-0.22rem) rotate(-45deg);
  }

  .mobile-menu {
    position: fixed;
    z-index: 25;
    inset: 0;
    padding: 8rem 1.5rem 2rem;
    background: var(--forest);
    color: white;
  }

  .mobile-menu[hidden] {
    display: none;
  }

  .mobile-menu nav {
    display: grid;
  }

  .mobile-menu nav a {
    padding-block: 1.1rem;
    border-bottom: 1px solid rgb(255 255 255 / 16%);
    font-family: var(--serif);
    font-size: clamp(2rem, 9vw, 3.2rem);
    line-height: 1;
  }

  .mobile-menu p {
    margin-top: 3rem;
    color: #d3c7b4;
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .mobile-language-switch {
    display: flex;
    gap: 0.7rem;
    margin-top: 2rem;
  }

  .mobile-language-switch button {
    padding: 0.65rem 0.9rem;
    border: 1px solid rgb(255 255 255 / 32%);
    background: transparent;
    color: white;
    font-size: 0.65rem;
    font-weight: 800;
    cursor: pointer;
    opacity: 0.6;
  }

  .mobile-language-switch button.active {
    border-color: #e3c99c;
    background: #e3c99c;
    color: var(--forest);
    opacity: 1;
  }

  .story {
    height: 430vh;
    height: 430svh;
    background: var(--forest);
  }

  .story-stage {
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100svh;
    min-height: 640px;
    overflow: hidden;
    isolation: isolate;
    color: white;
  }

  .story-scenes,
  .story-scene,
  .story-shade,
  .sun-glow {
    position: absolute;
    inset: 0;
  }

  .story-scene {
    background-position: center;
    background-size: cover;
    will-change: transform, opacity;
  }

  .story-scene-community {
    background-image: url("./community-park.webp");
    opacity: var(--scene-community, 1);
    transform: scale(var(--community-scale, 1.08)) translate3d(var(--community-x, 0%), var(--community-y, 0%), 0);
  }

  .story-scene-home {
    background-image: url("./hero-family-home.webp");
    background-position: center 55%;
    opacity: var(--scene-home, 0);
    transform: scale(var(--home-scale, 1.08)) translate3d(var(--home-x, 0%), var(--home-y, 0%), 0);
  }

  .story-scene-kitchen {
    background-image: url("./kitchen-family.webp");
    background-position: center 52%;
    opacity: var(--scene-kitchen, 0);
    transform: scale(var(--kitchen-scale, 1.08)) translate3d(var(--kitchen-x, 0%), var(--kitchen-y, 0%), 0);
  }

  .story-shade {
    z-index: 2;
    background:
      linear-gradient(90deg, rgb(12 25 20 / 75%) 0%, rgb(12 25 20 / 38%) 47%, rgb(12 25 20 / 14%) 76%),
      linear-gradient(0deg, rgb(10 20 16 / 61%) 0%, transparent 45%, rgb(8 18 14 / 27%) 100%);
  }

  .sun-glow {
    z-index: 2;
    width: 38vw;
    height: 38vw;
    margin: auto 3vw 4vh auto;
    border-radius: 50%;
    background: rgb(225 174 100 / 12%);
    filter: blur(70px);
    opacity: var(--sun-opacity, 0.5);
  }

  .story-panels {
    position: absolute;
    z-index: 4;
    inset: 0;
    width: var(--shell);
    margin-inline: auto;
  }

  .story-panel {
    position: absolute;
    top: 50%;
    left: 0;
    width: min(670px, 58vw);
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-43% + 36px));
    transition:
      opacity 480ms ease,
      transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .story-panel.is-active {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-43%);
  }

  .story-panel-right {
    right: 0;
    left: auto;
    width: min(620px, 51vw);
    padding: 2.25rem;
    border: 1px solid rgb(255 255 255 / 22%);
    background: rgb(20 39 31 / 50%);
    backdrop-filter: blur(12px);
  }

  .story-panel-center {
    top: auto;
    bottom: 10vh;
    left: 50%;
    width: min(820px, 76vw);
    text-align: center;
    transform: translate(-50%, 36px);
  }

  .story-panel-center.is-active {
    transform: translate(-50%, 0);
  }

  .story-kicker {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.55rem;
    font-size: 0.64rem;
    letter-spacing: 0.19em;
    text-transform: uppercase;
  }

  .story-kicker span {
    display: grid;
    width: 2rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 50%;
    letter-spacing: 0;
  }

  .story-kicker b {
    font-weight: 700;
  }

  .story-panel h1,
  .story-panel h2 {
    font-size: clamp(3.5rem, 6.8vw, 7rem);
    text-shadow: 0 7px 28px rgb(0 0 0 / 18%);
  }

  .story-panel > p:not(.story-kicker) {
    max-width: 35rem;
    margin-top: 1.65rem;
    color: rgb(255 255 255 / 84%);
    font-size: clamp(0.96rem, 1.3vw, 1.14rem);
    line-height: 1.75;
  }

  .story-panel-center > p:not(.story-kicker) {
    margin-inline: auto;
  }

  .story-panel-center .story-kicker {
    justify-content: center;
  }

  .story-actions {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-top: 2.2rem;
  }

  .story-facts {
    display: flex;
    max-width: 38rem;
    margin-top: 2.25rem;
    border-top: 1px solid rgb(255 255 255 / 26%);
    padding-top: 1.35rem;
  }

  .story-facts div {
    display: grid;
    min-width: 7rem;
    gap: 0.25rem;
    padding-right: 2rem;
  }

  .story-facts dt {
    font-family: var(--serif);
    font-size: 1.5rem;
  }

  .story-facts dd {
    color: rgb(255 255 255 / 68%);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .story-panel blockquote {
    max-width: 31rem;
    margin-top: 1.8rem;
    padding-left: 1.3rem;
    border-left: 2px solid #e7bf7c;
    color: #f4dfbb;
    font-family: var(--serif);
    font-size: 1.18rem;
    font-style: italic;
    line-height: 1.5;
  }

  .story-panel-center .button {
    margin-top: 2rem;
  }

  .story-progress {
    position: absolute;
    z-index: 5;
    right: clamp(1.5rem, 3.8vw, 3.75rem);
    bottom: 2.4rem;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.55rem;
    letter-spacing: 0.1em;
  }

  .story-progress i {
    position: relative;
    display: block;
    width: 7rem;
    height: 1px;
    overflow: hidden;
    background: rgb(255 255 255 / 31%);
  }

  .story-progress b {
    position: absolute;
    inset: 0;
    background: white;
    transform: scaleX(var(--story-progress, 0));
    transform-origin: left;
  }

  .scroll-hint {
    position: absolute;
    z-index: 5;
    bottom: 2rem;
    left: clamp(1.5rem, 3.8vw, 3.75rem);
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: opacity 300ms ease;
  }

  .scroll-hint i {
    position: relative;
    display: block;
    width: 3rem;
    height: 1px;
    overflow: hidden;
    background: rgb(255 255 255 / 38%);
  }

  .scroll-hint i::after {
    position: absolute;
    inset: 0;
    background: white;
    content: "";
    animation: scroll-line 1.7s ease-in-out infinite;
  }

  .welcome-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--paper);
    border-bottom: 1px solid var(--line);
  }

  .welcome-strip p {
    display: flex;
    min-height: 6rem;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    padding-inline: 1.5rem;
    border-right: 1px solid var(--line);
  }

  .welcome-strip p:last-child {
    border-right: 0;
  }

  .welcome-strip span {
    color: var(--clay);
    font-family: var(--serif);
    font-size: 0.95rem;
    font-style: italic;
  }

  .welcome-strip b {
    font-size: 0.66rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  .intro {
    display: grid;
    grid-template-columns: 0.7fr 2fr 0.75fr;
    gap: clamp(2rem, 6vw, 7rem);
    align-items: start;
  }

  .intro .section-label {
    display: flex;
    margin: 0;
  }

  .intro .section-label p::after {
    display: none;
  }

  .intro-copy h2 {
    font-size: clamp(3rem, 5.6vw, 6.2rem);
  }

  .intro-copy > p:not(.overline) {
    max-width: 43rem;
    margin-top: 2rem;
    color: var(--ink-soft);
    font-size: 1.04rem;
    line-height: 1.8;
  }

  .intro-copy .text-link {
    margin-top: 2.4rem;
  }

  .intro-note {
    margin-top: 12rem;
    padding-top: 1.5rem;
    border-top: 2px solid var(--clay);
  }

  .intro-note p {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-style: italic;
    line-height: 1.5;
  }

  .intro-note span {
    display: block;
    margin-top: 1rem;
    color: var(--ink-soft);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
  }

  .homes {
    background: var(--paper);
  }

  .heading-row {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(15rem, 0.62fr);
    gap: 3rem;
    align-items: end;
    margin-bottom: clamp(3rem, 6vw, 5rem);
  }

  .heading-row h2 {
    font-size: clamp(3.2rem, 5.8vw, 6.2rem);
  }

  .heading-row > p {
    padding-bottom: 0.5rem;
    color: var(--ink-soft);
    line-height: 1.75;
  }

  .heading-row.compact {
    margin-bottom: 4rem;
  }

  .listing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }

  .listing-card {
    display: grid;
    grid-template-columns: 1fr;
    overflow: hidden;
    background: #f1eadf;
  }

  .listing-featured {
    grid-column: span 2;
    grid-template-columns: 1.45fr 0.75fr;
  }

  .listing-media {
    position: relative;
    min-height: 26rem;
    overflow: hidden;
  }

  .listing-featured .listing-media {
    min-height: 36rem;
  }

  .listing-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgb(21 32 25 / 23%), transparent 45%);
    content: "";
  }

  .listing-media img {
    height: 100%;
    object-fit: cover;
    transition: transform 900ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .listing-card:hover .listing-media img {
    transform: scale(1.045);
  }

  .listing-badge {
    position: absolute;
    z-index: 2;
    top: 1rem;
    left: 1rem;
    padding: 0.55rem 0.75rem;
    background: var(--clay);
    color: white;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .listing-badge.muted {
    background: #e2c99c;
    color: var(--ink);
  }

  .listing-badge.sage {
    background: var(--sage);
  }

  .heart {
    position: absolute;
    z-index: 3;
    top: 1rem;
    right: 1rem;
    display: grid;
    width: 2.8rem;
    aspect-ratio: 1;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgb(255 255 255 / 88%);
    color: var(--ink);
    font-size: 1.25rem;
    cursor: pointer;
    backdrop-filter: blur(8px);
  }

  .heart[aria-pressed="true"] {
    background: var(--clay);
    color: white;
  }

  .listing-content {
    padding: clamp(1.5rem, 3vw, 2.7rem);
  }

  .listing-featured .listing-content {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }

  .listing-area {
    margin-bottom: 1rem;
    color: var(--clay-deep);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .listing-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
  }

  .listing-title h3 {
    font-family: var(--serif);
    font-size: clamp(1.65rem, 2.5vw, 2.5rem);
    letter-spacing: -0.035em;
    line-height: 1.05;
  }

  .listing-title strong {
    white-space: nowrap;
    font-size: 0.85rem;
  }

  .listing-content ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem 1.15rem;
    margin-top: 1.4rem;
    padding-block: 1rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--ink-soft);
    font-size: 0.7rem;
  }

  .listing-content li b {
    color: var(--ink);
  }

  .listing-content > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.35rem;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .listing-content > a span:last-child {
    display: grid;
    width: 2.4rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    transition:
      background-color 200ms ease,
      color 200ms ease;
  }

  .listing-content > a:hover span:last-child {
    background: var(--forest);
    color: white;
  }

  .listing-disclaimer,
  .data-note {
    margin-top: 1.25rem;
    color: var(--ink-soft);
    font-size: 0.65rem;
    text-align: right;
  }

  .area-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
  }

  .area-card {
    border: 1px solid var(--line);
    background: rgb(255 255 255 / 20%);
  }

  .area-image {
    height: 26rem;
    overflow: hidden;
  }

  .area-image img {
    height: 100%;
    object-fit: cover;
    transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .image-katy img {
    object-position: 35% center;
  }

  .image-sienna img {
    object-position: 70% center;
  }

  .area-card:hover .area-image img {
    transform: scale(1.04);
  }

  .area-name {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.8rem;
    padding: 1.3rem 1.25rem;
    border-bottom: 1px solid var(--line);
  }

  .area-name > span {
    display: grid;
    width: 1.9rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    font-size: 0.55rem;
  }

  .area-name h3 {
    font-family: var(--serif);
    font-size: 1.65rem;
    letter-spacing: -0.02em;
  }

  .area-name b {
    color: var(--clay-deep);
    font-family: var(--serif);
    font-size: 0.75rem;
    font-style: italic;
    font-weight: 400;
  }

  .area-card dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 1.25rem;
  }

  .area-card dl div {
    display: grid;
    gap: 0.2rem;
    padding-inline: 0.75rem;
    border-right: 1px solid var(--line);
  }

  .area-card dl div:first-child {
    padding-left: 0;
  }

  .area-card dl div:last-child {
    padding-right: 0;
    border-right: 0;
  }

  .area-card dt {
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 600;
  }

  .area-card dd {
    color: var(--ink-soft);
    font-size: 0.55rem;
    line-height: 1.35;
  }

  .process {
    overflow: hidden;
    background: var(--forest);
    color: white;
  }

  .process-heading {
    display: grid;
    grid-template-columns: 1.4fr 0.6fr;
    gap: 3rem;
    align-items: end;
  }

  .process-heading .overline {
    grid-column: 1 / -1;
    margin-bottom: -1rem;
  }

  .process-heading h2 {
    font-size: clamp(3.2rem, 5.7vw, 6.1rem);
  }

  .process-heading > p:last-child {
    padding-bottom: 0.8rem;
    color: rgb(255 255 255 / 67%);
    line-height: 1.75;
  }

  .process-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 5rem;
    border-top: 1px solid rgb(255 255 255 / 19%);
  }

  .process-list > li {
    position: relative;
    min-height: 25rem;
    padding: 1.6rem 1.8rem 2rem;
    border-right: 1px solid rgb(255 255 255 / 19%);
    transition:
      background-color 250ms ease,
      transform 250ms ease;
  }

  .process-list > li:last-child {
    border-right: 0;
  }

  .process-list > li:hover {
    background: var(--forest-2);
    transform: translateY(-0.5rem);
  }

  .process-list > li::before {
    position: absolute;
    top: -0.32rem;
    left: 1.8rem;
    width: 0.65rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #e6c282;
    content: "";
  }

  .process-list > li > span {
    font-family: var(--serif);
    font-size: 2.3rem;
    color: #e4c48b;
  }

  .process-list > li > div {
    position: absolute;
    right: 1.8rem;
    bottom: 2rem;
    left: 1.8rem;
  }

  .process-list > li > div > p:first-child {
    margin-bottom: 0.7rem;
    color: #e4c48b;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.18em;
  }

  .process-list h3 {
    margin-bottom: 1rem;
    font-family: var(--serif);
    font-size: 1.75rem;
    letter-spacing: -0.02em;
  }

  .process-list > li > div > p:last-child {
    color: rgb(255 255 255 / 61%);
    font-size: 0.86rem;
    line-height: 1.7;
  }

  .calculator {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(29rem, 0.82fr);
    gap: clamp(3rem, 8vw, 9rem);
    align-items: center;
  }

  .calculator-copy h2 {
    font-size: clamp(3.2rem, 5vw, 5.6rem);
  }

  .calculator-copy > p:not(.overline) {
    max-width: 38rem;
    margin-top: 2rem;
    color: var(--ink-soft);
    line-height: 1.8;
  }

  .calculator-promise {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 2.2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
  }

  .calculator-promise > span {
    display: grid;
    width: 2.6rem;
    aspect-ratio: 1;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--sage-pale);
    color: var(--forest);
  }

  .calculator-promise p {
    display: grid;
  }

  .calculator-promise b {
    font-size: 0.78rem;
  }

  .calculator-promise small {
    color: var(--ink-soft);
    font-size: 0.7rem;
  }

  .calculator-card {
    padding: clamp(1.5rem, 4vw, 3.25rem);
    background: var(--paper);
    box-shadow: var(--shadow);
  }

  .calc-field + .calc-field {
    margin-top: 2.1rem;
  }

  .calc-field > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
  }

  .calc-field label,
  .calc-options label > span:first-child {
    color: var(--ink-soft);
    font-size: 0.7rem;
    font-weight: 700;
  }

  .calc-field output {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 600;
  }

  .calc-field input[type="range"] {
    width: 100%;
    height: 4px;
    border-radius: 0;
    background: linear-gradient(90deg, var(--clay) 0 var(--range-fill, 50%), var(--paper-dark) var(--range-fill, 50%) 100%);
    accent-color: var(--clay);
    appearance: none;
  }

  .calc-field input[type="range"]::-webkit-slider-thumb {
    width: 1.2rem;
    height: 1.2rem;
    border: 4px solid var(--paper);
    border-radius: 50%;
    background: var(--clay);
    box-shadow: 0 0 0 1px var(--clay);
    cursor: grab;
    appearance: none;
  }

  .calc-field input[type="range"]::-moz-range-thumb {
    width: 0.8rem;
    height: 0.8rem;
    border: 4px solid var(--paper);
    border-radius: 50%;
    background: var(--clay);
    box-shadow: 0 0 0 1px var(--clay);
    cursor: grab;
  }

  .range-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    color: var(--ink-soft);
    font-size: 0.55rem;
  }

  .calc-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 2rem;
  }

  .calc-options label {
    display: grid;
    gap: 0.55rem;
  }

  .input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid var(--line);
    background: white;
  }

  .calc-options input,
  .calc-options select {
    width: 100%;
    height: 3.15rem;
    padding-inline: 0.9rem;
    border: 1px solid var(--line);
    border-radius: 0;
    background: white;
  }

  .input-wrap input {
    border: 0;
  }

  .input-wrap b {
    padding-right: 0.9rem;
  }

  .calc-result {
    margin-top: 2rem;
    padding: 1.6rem;
    background: var(--sage-pale);
    text-align: center;
  }

  .calc-result p {
    color: var(--ink-soft);
    font-size: 0.68rem;
    font-weight: 700;
  }

  .calc-result strong {
    display: block;
    margin-block: 0.4rem;
    font-family: var(--serif);
    font-size: clamp(2.4rem, 5vw, 4rem);
    font-weight: 500;
    line-height: 1;
  }

  .calc-result small {
    display: block;
    color: var(--ink-soft);
    font-size: 0.58rem;
    line-height: 1.45;
  }

  .calculator-card .button {
    width: 100%;
    margin-top: 1rem;
  }

  .testimonial {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    padding-block: 0;
    background: #dfe3d6;
  }

  .testimonial-image {
    position: relative;
    min-height: 46rem;
  }

  .testimonial-image > img {
    height: 100%;
    object-fit: cover;
  }

  .photo-note {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.15rem;
    background: rgb(251 248 242 / 91%);
    backdrop-filter: blur(10px);
  }

  .photo-note > span {
    display: grid;
    width: 2.4rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--clay);
    color: white;
  }

  .photo-note p {
    display: grid;
  }

  .photo-note b {
    font-family: var(--serif);
    font-size: 0.9rem;
  }

  .photo-note small {
    color: var(--ink-soft);
    font-size: 0.58rem;
  }

  .testimonial-quote {
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: clamp(3.5rem, 8vw, 8rem);
  }

  .quote-mark {
    height: 5rem;
    color: var(--clay);
    font-family: var(--serif);
    font-size: 7rem;
    line-height: 0.9;
  }

  .testimonial-quote blockquote {
    font-family: var(--serif);
    font-size: clamp(1.7rem, 3vw, 3rem);
    font-style: italic;
    line-height: 1.35;
  }

  .testimonial-quote figcaption {
    display: grid;
    gap: 0.2rem;
    margin-top: 2rem;
  }

  .testimonial-quote figcaption b {
    font-size: 0.76rem;
  }

  .testimonial-quote figcaption span {
    color: var(--ink-soft);
    font-size: 0.68rem;
  }

  .stars {
    margin-top: 1rem;
    color: var(--clay-deep);
    font-size: 0.75rem;
    letter-spacing: 0.25em;
  }

  .advisor {
    display: grid;
    grid-template-columns: minmax(22rem, 0.92fr) minmax(0, 1fr);
    gap: clamp(3rem, 9vw, 10rem);
    align-items: center;
  }

  .advisor-photo {
    position: relative;
    padding: 2rem 2rem 0 0;
  }

  .advisor-photo::before {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 64%;
    height: 65%;
    background: #d9c9ae;
    content: "";
  }

  .advisor-image-wrap {
    height: min(45rem, 65vw);
    overflow: hidden;
    background: #d8d4ca;
  }

  .advisor-image-wrap img {
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .advisor-seal {
    position: absolute;
    right: -2.5rem;
    bottom: 3.5rem;
    display: grid;
    width: 8.5rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid var(--cream);
    border-radius: 50%;
    background: var(--forest);
    color: #eadcc5;
    box-shadow: 0 10px 30px rgb(22 43 34 / 28%);
  }

  .advisor-seal::before {
    position: absolute;
    inset: 0.55rem;
    border: 1px solid rgb(255 255 255 / 28%);
    border-radius: 50%;
    content: "";
  }

  .advisor-seal span {
    font-size: 0.48rem;
    font-weight: 800;
    letter-spacing: 0.17em;
  }

  .advisor-seal b {
    position: absolute;
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 500;
  }

  .advisor-copy h2 {
    font-size: clamp(3.7rem, 6vw, 6.5rem);
  }

  .advisor-lead {
    margin-top: 2rem;
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2.1vw, 1.75rem);
    line-height: 1.55;
  }

  .advisor-copy > p:not(.overline, .advisor-lead, .fictional-note) {
    max-width: 39rem;
    margin-top: 1.5rem;
    color: var(--ink-soft);
    line-height: 1.8;
  }

  .advisor-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-block: 2rem;
    padding-block: 1.3rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .advisor-stats div {
    display: grid;
    gap: 0.2rem;
    border-right: 1px solid var(--line);
    text-align: center;
  }

  .advisor-stats div:last-child {
    border-right: 0;
  }

  .advisor-stats dt {
    font-family: var(--serif);
    font-size: 1.45rem;
  }

  .advisor-stats dd {
    color: var(--ink-soft);
    font-size: 0.58rem;
  }

  .fictional-note {
    margin-top: 1rem;
    color: var(--ink-soft);
    font-size: 0.62rem;
  }

  .contact {
    background: var(--clay-deep);
    color: white;
  }

  .contact-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(29rem, 0.78fr);
    gap: clamp(3rem, 8vw, 9rem);
    align-items: center;
  }

  .contact-copy h2 {
    font-size: clamp(3.5rem, 5.7vw, 6.4rem);
  }

  .contact-copy > p:not(.overline) {
    max-width: 38rem;
    margin-top: 1.7rem;
    color: rgb(255 255 255 / 72%);
  }

  .contact-details {
    display: grid;
    gap: 0.35rem;
    margin-top: 2rem;
    font-size: 0.75rem;
  }

  .contact-details a:hover {
    text-decoration: underline;
  }

  .contact-form {
    padding: clamp(1.5rem, 3.5vw, 3rem);
    background: var(--paper);
    color: var(--ink);
  }

  .contact-form label {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 1rem;
  }

  .contact-form label > span {
    color: var(--ink-soft);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }

  .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }

  .contact-form input,
  .contact-form select,
  .contact-form textarea {
    width: 100%;
    padding: 0.85rem 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    outline: 0;
  }

  .contact-form input:focus,
  .contact-form select:focus,
  .contact-form textarea:focus {
    border-color: var(--clay);
    box-shadow: 0 1px 0 var(--clay);
  }

  .contact-form textarea {
    resize: vertical;
  }

  .contact-form .button {
    width: 100%;
    margin-top: 0.8rem;
    background: var(--forest);
    color: white;
  }

  .contact-form .button:hover {
    background: var(--clay);
  }

  .contact-form > small {
    display: block;
    margin-top: 0.7rem;
    color: var(--ink-soft);
    font-size: 0.58rem;
    text-align: center;
  }

  footer {
    padding-top: 5rem;
    background: #192b23;
    color: white;
  }

  .footer-main {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    padding-bottom: 4rem;
  }

  .footer-brand {
    margin-bottom: 1.5rem;
  }

  .footer-main > div:first-child > p {
    color: rgb(255 255 255 / 61%);
    font-family: var(--serif);
    font-size: 1.25rem;
    font-style: italic;
    line-height: 1.5;
  }

  .footer-nav {
    display: grid;
    grid-template-columns: repeat(2, 10rem);
    gap: 2rem;
  }

  .footer-nav > div {
    display: grid;
    align-content: start;
    gap: 0.65rem;
  }

  .footer-nav b {
    margin-bottom: 0.5rem;
    color: #e1bd7f;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .footer-nav a {
    color: rgb(255 255 255 / 65%);
    font-size: 0.73rem;
  }

  .footer-nav a:hover {
    color: white;
  }

  .footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: 1.3rem;
    border-top: 1px solid rgb(255 255 255 / 12%);
    color: rgb(255 255 255 / 50%);
    font-size: 0.61rem;
  }

  .footer-bottom a:hover {
    color: white;
  }

  .footer-bottom b {
    color: #e1bd7f;
  }

  .legal {
    padding-block: 1.25rem 2rem;
    border-top: 1px solid rgb(255 255 255 / 8%);
    color: rgb(255 255 255 / 40%);
    font-size: 0.58rem;
    line-height: 1.6;
  }

  .toast {
    position: fixed;
    z-index: 100;
    right: 1.25rem;
    bottom: 1.25rem;
    display: flex;
    width: min(23rem, calc(100vw - 2.5rem));
    align-items: center;
    gap: 0.9rem;
    padding: 1rem 1.1rem;
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 18px 55px rgb(0 0 0 / 20%);
  }

  .toast[hidden] {
    display: none;
  }

  .toast > span {
    display: grid;
    width: 2.25rem;
    aspect-ratio: 1;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--sage-pale);
  }

  .toast p {
    display: grid;
    line-height: 1.4;
  }

  .toast b {
    font-size: 0.75rem;
  }

  .toast small {
    color: var(--ink-soft);
    font-size: 0.62rem;
  }
}

@layer motion {
  @keyframes scroll-line {
    0% {
      transform: translateX(-100%);
    }
    55%,
    100% {
      transform: translateX(100%);
    }
  }

  @keyframes toast-in {
    from {
      opacity: 0;
      transform: translateY(1rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .toast:not([hidden]) {
    animation: toast-in 300ms ease both;
  }

  .reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
      opacity 750ms ease,
      transform 850ms cubic-bezier(0.2, 0.75, 0.2, 1);
  }

  .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .listing-grid .reveal:nth-child(2),
  .area-grid .reveal:nth-child(2),
  .process-list .reveal:nth-child(2) {
    transition-delay: 100ms;
  }

  .listing-grid .reveal:nth-child(3),
  .area-grid .reveal:nth-child(3),
  .process-list .reveal:nth-child(3) {
    transition-delay: 180ms;
  }

  .process-list .reveal:nth-child(4) {
    transition-delay: 260ms;
  }
}

@layer responsive {
  @media (max-width: 1080px) {
    :root {
      --shell: min(100% - 48px, 1100px);
    }

    .site-header {
      grid-template-columns: 1fr auto;
    }

    .desktop-nav {
      display: none;
    }

    .menu-button {
      display: flex;
    }

    .story-panel {
      width: min(690px, 75vw);
    }

    .story-panel-right {
      width: min(600px, 70vw);
    }

    .intro {
      grid-template-columns: 0.5fr 2fr;
    }

    .intro-note {
      display: none;
    }

    .area-grid {
      grid-template-columns: 1fr 1fr;
    }

    .area-card:last-child {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: 1fr 1fr;
    }

    .area-card:last-child .area-image {
      grid-row: span 2;
    }

    .process-list {
      grid-template-columns: 1fr 1fr;
    }

    .process-list > li:nth-child(2) {
      border-right: 0;
    }

    .process-list > li:nth-child(-n + 2) {
      border-bottom: 1px solid rgb(255 255 255 / 19%);
    }

    .calculator {
      gap: 3rem;
    }

    .testimonial-quote {
      padding: 4rem;
    }

    .advisor {
      gap: 5rem;
    }
  }

  @media (max-width: 800px), (max-width: 1000px) and (max-height: 699px) {
    :root {
      --shell: calc(100% - 32px);
    }

    .section {
      padding-block: 5.5rem;
    }

    .demo-bar {
      justify-content: center;
      letter-spacing: 0.07em;
      text-align: center;
    }

    .demo-bar a {
      display: none;
    }

    .site-header {
      height: 4.9rem;
      padding-inline: 1rem;
    }

    .brand-roof {
      width: 2.45rem;
    }

    .brand-copy strong {
      font-size: 0.93rem;
    }

    .brand-copy small {
      font-size: 0.41rem;
    }

    .header-cta {
      display: none;
    }

    .header-actions {
      gap: 0.7rem;
    }

    .story {
      height: 500vh;
      height: 500svh;
    }

    .story-stage {
      min-height: 0;
    }

    .story-scenes {
      transform: translateZ(0);
    }

    .story-scene {
      background-position: 58% center;
    }

    .story-scene-community {
      background-position: 60% center;
    }

    .story-scene-home {
      background-color: #10263b;
      background-position: 66% center;
      background-size: cover;
      isolation: isolate;
    }

    .story-scene-home::after {
      position: absolute;
      z-index: 1;
      inset: 0;
      background-image: url("./hero-family-home.webp");
      background-position: 58% 31%;
      background-repeat: no-repeat;
      background-size: 124% auto;
      content: "";
      pointer-events: none;
      -webkit-mask-image: linear-gradient(to bottom, transparent 7%, #000 18%, #000 64%, transparent 82%);
      mask-image: linear-gradient(to bottom, transparent 7%, #000 18%, #000 64%, transparent 82%);
    }

    .story-scene-kitchen {
      background-position: 65% center;
    }

    .story-shade {
      background:
        linear-gradient(0deg, rgb(11 25 19 / 84%) 0%, rgb(11 25 19 / 39%) 57%, rgb(11 25 19 / 38%) 100%),
        linear-gradient(90deg, rgb(11 25 19 / 44%) 0%, transparent 100%);
    }

    .story-panels {
      width: calc(100% - 32px);
    }

    .story-panel,
    .story-panel-right {
      top: auto;
      right: auto;
      bottom: 15vh;
      left: 0;
      width: 100%;
      padding: 0;
      border: 0;
      background: transparent;
      backdrop-filter: none;
      transform: translateY(28px);
    }

    .story-panel.is-active,
    .story-panel-right.is-active {
      transform: translateY(0);
    }

    .story-panel-center,
    .story-panel-center.is-active {
      bottom: 13vh;
      left: 0;
      text-align: left;
      transform: translateY(0);
    }

    .story-panel-center .story-kicker {
      justify-content: flex-start;
    }

    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2.9rem, 13vw, 4.7rem);
    }

    .story-panel > p:not(.story-kicker) {
      margin-top: 1rem;
      font-size: 0.9rem;
      line-height: 1.6;
    }

    .story-actions {
      align-items: flex-start;
      flex-direction: column;
      gap: 1rem;
      margin-top: 1.35rem;
    }

    .story-actions .button {
      width: 100%;
    }

    .story-facts {
      margin-top: 1.35rem;
      padding-top: 0.9rem;
    }

    .story-facts div {
      min-width: 0;
      flex: 1;
      padding-right: 0.6rem;
    }

    .story-facts dt {
      font-size: 1.2rem;
    }

    .story-panel blockquote {
      display: none;
    }

    .scroll-hint {
      bottom: 1.2rem;
    }

    .scroll-hint span {
      display: none;
    }

    .story-progress {
      right: 1rem;
      bottom: 1.45rem;
    }

    .story-progress i {
      width: 4rem;
    }

    .welcome-strip {
      grid-template-columns: 1fr 1fr;
    }

    .welcome-strip p {
      min-height: 4.8rem;
      justify-content: flex-start;
      padding-inline: 1rem;
      border-bottom: 1px solid var(--line);
    }

    .intro {
      display: block;
    }

    .intro .section-label {
      margin-bottom: 3rem;
    }

    .intro-copy h2,
    .heading-row h2,
    .process-heading h2,
    .calculator-copy h2,
    .contact-copy h2 {
      font-size: clamp(2.9rem, 11vw, 4.6rem);
    }

    .heading-row,
    .process-heading {
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }

    .process-heading .overline {
      margin-bottom: 0;
    }

    .listing-grid,
    .listing-featured {
      grid-template-columns: 1fr;
    }

    .listing-featured {
      grid-column: auto;
    }

    .listing-media,
    .listing-featured .listing-media {
      min-height: min(72vw, 28rem);
    }

    .listing-title {
      display: grid;
    }

    .area-grid {
      grid-template-columns: 1fr;
    }

    .area-card:last-child {
      grid-column: auto;
      display: block;
    }

    .area-image {
      height: min(90vw, 31rem);
    }

    .process-list {
      grid-template-columns: 1fr;
      margin-top: 3rem;
    }

    .process-list > li {
      min-height: 18rem;
      border-right: 0;
      border-bottom: 1px solid rgb(255 255 255 / 19%);
    }

    .calculator {
      grid-template-columns: 1fr;
    }

    .calculator-card {
      margin-inline: -0.25rem;
    }

    .testimonial {
      grid-template-columns: 1fr;
    }

    .testimonial-image {
      min-height: min(105vw, 37rem);
    }

    .testimonial-quote {
      padding: 4rem 1.5rem 5rem;
    }

    .advisor {
      grid-template-columns: 1fr;
      gap: 4.5rem;
    }

    .advisor-photo {
      padding: 1.25rem 1.25rem 0 0;
    }

    .advisor-image-wrap {
      height: min(125vw, 42rem);
    }

    .advisor-seal {
      right: -0.3rem;
      bottom: -2.5rem;
      width: 7rem;
    }

    .advisor-copy h2 {
      font-size: clamp(3.4rem, 14vw, 5.6rem);
    }

    .contact-shell {
      grid-template-columns: 1fr;
    }

    .footer-main {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 520px) {
    .demo-bar {
      font-size: 0.52rem;
    }

    .language-switch {
      display: none;
    }

    .story-kicker {
      margin-bottom: 1rem;
    }

    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2.7rem, 13.5vw, 4rem);
    }

    .story-panel-center .button {
      width: 100%;
    }

    .welcome-strip b {
      font-size: 0.57rem;
    }

    .heading-row > p {
      font-size: 0.9rem;
    }

    .listing-content ul {
      gap: 0.6rem;
    }

    .area-name {
      grid-template-columns: auto 1fr;
    }

    .area-name b {
      display: none;
    }

    .area-card dl {
      padding: 1rem;
    }

    .area-card dl div {
      padding-inline: 0.45rem;
    }

    .calc-options,
    .form-row {
      grid-template-columns: 1fr;
    }

    .photo-note {
      right: 0.75rem;
      bottom: 0.75rem;
      left: 0.75rem;
    }

    .advisor-stats dt {
      font-size: 1.15rem;
    }

    .contact-form {
      margin-inline: -0.4rem;
    }

    .footer-nav {
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }

    .footer-bottom {
      align-items: flex-start;
      flex-direction: column;
      gap: 0.5rem;
    }
  }

  @media (max-width: 1000px) and (max-height: 560px) and (prefers-reduced-motion: no-preference) {
    .story-panel,
    .story-panel-right,
    .story-panel-center,
    .story-panel-center.is-active {
      bottom: 2.5rem;
    }

    .story-kicker {
      margin-bottom: 0.55rem;
    }

    .story-kicker span {
      width: 1.65rem;
    }

    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2rem, 7vw, 3rem);
    }

    .story-panel > p:not(.story-kicker),
    .story-panel blockquote {
      display: none;
    }

    .story-actions,
    .story-facts,
    .story-panel-center .button {
      margin-top: 0.75rem;
    }

    .story-actions {
      flex-direction: row;
    }

    .story-actions .button,
    .story-panel-center .button {
      width: auto;
      min-height: 2.75rem;
      padding-block: 0.65rem;
    }

    .story-actions .text-link {
      display: none;
    }

    .story-facts {
      padding-top: 0.65rem;
    }

    .story-progress,
    .scroll-hint {
      bottom: 0.75rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
      scroll-behavior: auto !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
    }

    .story {
      height: auto;
    }

    .story-stage {
      position: relative;
      display: grid;
      height: auto;
      min-height: 100vh;
      min-height: 100svh;
      align-items: end;
      overflow: visible;
      padding-block: 9rem 3rem;
    }

    .story-scenes {
      position: absolute;
      overflow: hidden;
    }

    .story-scene-community,
    .story-scene-kitchen {
      display: none;
    }

    .story-scene-home {
      opacity: 1;
      transform: none;
    }

    .story-panels {
      position: relative;
      display: grid;
      gap: 1rem;
      inset: auto;
      padding-top: 15rem;
    }

    .story-panel,
    .story-panel-right,
    .story-panel-center {
      position: relative;
      top: auto;
      right: auto;
      bottom: auto;
      left: auto;
      width: min(46rem, 100%);
      padding: 1.5rem;
      border: 1px solid rgb(255 255 255 / 22%);
      background: rgb(18 37 29 / 68%);
      opacity: 1;
      text-align: left;
      transform: none;
      backdrop-filter: blur(10px);
    }

    .story-panel-center .story-kicker {
      justify-content: flex-start;
    }

    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2.5rem, 7vw, 4.5rem);
    }

    .story-progress,
    .scroll-hint {
      display: none;
    }

    .reveal {
      opacity: 1;
      transform: none;
    }

    .listing-media img,
    .area-image img {
      transition: none;
    }
  }

  @media (prefers-contrast: more) {
    :root {
      --line: rgb(34 48 41 / 40%);
    }

    .story-shade {
      background: rgb(5 16 10 / 72%);
    }

    .story-panel > p:not(.story-kicker) {
      color: white;
    }
  }
}

@layer typography-polish {
  :root {
    --serif: "Vietlinker Serif", Georgia, "Times New Roman", serif;
    --sans: "Vietlinker Sans", "Segoe UI", Arial, sans-serif;
  }

  body {
    font-synthesis: none;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
  }

  h1,
  h2,
  h3 {
    letter-spacing: -0.025em;
    line-height: 1.08;
    text-wrap: balance;
  }

  h1 em,
  h2 em {
    letter-spacing: -0.02em;
  }

  .overline,
  .section-label,
  .story-kicker {
    font-size: 0.7rem;
    letter-spacing: 0.11em;
    line-height: 1.4;
  }

  .brand-copy strong {
    font-size: 1rem;
    letter-spacing: 0.05em;
    line-height: 1.15;
  }

  .brand-copy small {
    font-size: 0.55rem;
    letter-spacing: 0.14em;
    line-height: 1.35;
  }

  .story-panel h1,
  .story-panel h2 {
    font-size: clamp(3.5rem, 6.2vw, 6.4rem);
    letter-spacing: -0.025em;
    line-height: 1.04;
  }

  .story-panel > p:not(.story-kicker) {
    font-size: clamp(1rem, 1.2vw, 1.1rem);
    line-height: 1.72;
  }

  .intro-copy h2,
  .heading-row h2,
  .process-heading h2,
  .calculator-copy h2,
  .advisor-copy h2,
  .contact-copy h2 {
    font-size: clamp(3.25rem, 5.2vw, 5.8rem);
    letter-spacing: -0.025em;
    line-height: 1.07;
  }

  .listing-title h3,
  .area-name h3,
  .process-list h3 {
    letter-spacing: -0.015em;
    line-height: 1.2;
  }

  .testimonial-quote blockquote {
    font-size: clamp(1.65rem, 2.7vw, 2.7rem);
    letter-spacing: -0.01em;
    line-height: 1.5;
  }

  @media (max-width: 800px), (max-width: 1000px) and (max-height: 699px) {
    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2.65rem, 11.5vw, 4rem);
      letter-spacing: -0.02em;
      line-height: 1.08;
    }

    .story-panel > p:not(.story-kicker) {
      font-size: 1rem;
      line-height: 1.7;
    }

    .intro-copy h2,
    .heading-row h2,
    .process-heading h2,
    .calculator-copy h2,
    .advisor-copy h2,
    .contact-copy h2 {
      font-size: clamp(2.55rem, 10.5vw, 4rem);
      letter-spacing: -0.02em;
      line-height: 1.1;
    }

    .listing-title h3 {
      font-size: 1.55rem;
      line-height: 1.22;
    }

    .testimonial-quote blockquote {
      font-size: clamp(1.5rem, 6.5vw, 2rem);
      line-height: 1.5;
    }

    .brand-copy strong {
      font-size: 0.95rem;
      letter-spacing: 0.04em;
    }

    .brand-copy small {
      font-size: 0.52rem;
      letter-spacing: 0.12em;
    }
  }

  @media (max-width: 520px) {
    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2.45rem, 11.8vw, 3.5rem);
    }
  }

  @media (max-width: 1000px) and (max-height: 560px) and (prefers-reduced-motion: no-preference) {
    .story-panel h1,
    .story-panel h2 {
      font-size: clamp(2rem, 7vw, 3rem);
      line-height: 1.06;
    }
  }
}
