@font-face {
  font-family:"DM Serif Display";
  src:url("../fonts/dm-serif-display-regular-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:"Cormorant Garamond";
  src:url("../fonts/cormorant-garamond-italic-latin.woff2") format("woff2");
  font-style:italic;
  font-weight:600 700;
  font-display:swap;
}
@font-face {
  font-family:"Manrope";
  src:url("../fonts/manrope-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}

    :root {
      --forest: #173b34;
      --forest-deep: #0d2b26;
      --forest-soft: #31564e;
      --ivory: #f6f1e8;
      --paper: #fbfaf6;
      --limestone: #e7ded1;
      --clay: #b85f3e;
      --aitana: #3aaea5;
      --ink: #18231f;
      --muted: #637069;
      --line: rgba(23, 59, 52, .18);
      --white-line: rgba(246, 241, 232, .22);
      --display: "DM Serif Display", Georgia, serif;
      --editorial: "Cormorant Garamond", Georgia, serif;
      --sans: "Manrope", "Segoe UI", Arial, sans-serif;
      --page: min(1180px, calc(100vw - 48px));
      --header-height: 76px;
      --ease: cubic-bezier(.16, 1, .3, 1);
    }

    * { box-sizing: border-box; }
    html { height:100%; overflow:hidden; background:var(--forest-deep); }
    body {
      height:100%;
      overflow:hidden;
      padding-right: env(safe-area-inset-right);
      padding-left: env(safe-area-inset-left);
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: var(--sans);
      font-size: 16px;
      line-height: 1.6;
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
    }
    body.menu-open, body.menu-open main { overflow: hidden; }
    img { display: block; max-width: 100%; }
    section, .section-shell, .section-heading > *, .intro-grid > *, .inventory-layout > *, .contact-grid > *, .map-composition > * { min-width: 0; }
    h1, h2, h3, p, a, button, label, strong, span { overflow-wrap: anywhere; }
    .section-heading[id], .intro-grid[id], .contact-copy[id] { scroll-margin-top:calc(var(--header-height) + 24px); }
    button, input, select, textarea { font: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    a { color: inherit; }
    ::selection { background: var(--clay); color: var(--ivory); }
    :focus-visible { outline: 3px solid var(--aitana); outline-offset: 4px; }
    * { scrollbar-color: var(--clay) var(--ivory); scrollbar-width: thin; }
    *::-webkit-scrollbar { width: 10px; height: 10px; }
    *::-webkit-scrollbar-track { background: var(--ivory); }
    *::-webkit-scrollbar-thumb { background: var(--clay); border: 3px solid var(--ivory); }

    .skip-link {
      position: fixed;
      z-index: 1000;
      top: 12px;
      left: 12px;
      transform: translateY(-160%);
      background: var(--paper);
      color: var(--forest);
      padding: 10px 14px;
      font-weight: 700;
    }
    .skip-link:focus { transform: translateY(0); }

    .site-header {
      position: fixed;
      z-index: 100;
      top: 0;
      left: 0;
      right: 0;
      height: var(--header-height);
      padding-top: env(safe-area-inset-top);
      display: flex;
      align-items: center;
      color: var(--ivory);
      background: var(--forest);
      border-bottom: 1px solid rgba(246, 241, 232, .15);
    }
    .nav-shell {
      width: var(--page);
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 28px;
    }
    .brand {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
      text-decoration: none;
      line-height: 1;
    }
    .brand-isotype { width: 25px; height: 31px; flex: 0 0 auto; object-fit: contain; }
    .brand-wordmark { display:block; width:181px; height:auto; }
    .nav-links { display: flex; align-items: center; gap: 30px; }
    .nav-links a {
      position: relative;
      text-decoration: none;
      font-size: .78rem;
      font-weight: 600;
      letter-spacing: .07em;
      text-transform: uppercase;
    }
    .nav-links a:not(.nav-cta)::after {
      content: "";
      position: absolute;
      left: 0;
      right: 100%;
      bottom: -7px;
      height: 1px;
      background: var(--aitana);
      transition: right .35s var(--ease);
    }
    .nav-links a:hover::after { right: 0; }
    .nav-cta {
      padding: 11px 17px;
      border: 1px solid rgba(246, 241, 232, .5);
      transition: background .3s ease, color .3s ease;
    }
    .nav-cta:hover { background: var(--ivory); color: var(--forest); }
    .menu-toggle {
      display: none;
      width: 44px;
      height: 44px;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--white-line);
      background: transparent;
      color: var(--ivory);
      cursor: pointer;
    }

    .hero {
      min-height: max(760px, 100svh);
      height: auto;
      position: relative;
      display: grid;
      align-items: end;
      color: var(--ivory);
      background: var(--forest-deep);
      overflow: hidden;
    }
    .hero-media, .hero-media::after { position: absolute; inset: 0; }
    .hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 46%; }
    .hero-media::after {
      content: "";
      background: linear-gradient(90deg, rgba(8, 31, 27, .9) 0%, rgba(8, 31, 27, .62) 38%, rgba(8, 31, 27, .08) 76%), linear-gradient(0deg, rgba(8, 31, 27, .6), transparent 45%);
    }
    .js .hero-media { animation: hero-reveal 1.25s var(--ease) both; }
    @keyframes hero-reveal {
      from { clip-path: inset(0 0 100% 0); filter: saturate(.6); }
      to { clip-path: inset(0); filter: saturate(1); }
    }
    .hero-content {
      position: relative;
      z-index: 1;
      width: var(--page);
      margin: 0 auto;
      padding: 156px 0 62px;
    }
    .hero-status {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 22px;
      align-items: center;
      margin-bottom: 22px;
      font-size: .78rem;
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--aitana); box-shadow: 0 0 0 6px rgba(58, 174, 165, .2); }
    .hero h1 {
      max-width: 820px;
      margin: 0;
      font-family: var(--display);
      font-size: clamp(4.3rem, 9vw, 8.6rem);
      font-weight: 600;
      line-height: .83;
      letter-spacing: -.04em;
      text-wrap: balance;
      overflow-wrap: anywhere;
    }
    .hero h1 span { display: block; color: var(--aitana); }
    .hero-lead {
      max-width: 540px;
      margin: 26px 0 0;
      color: rgba(246, 241, 232, .86);
      font-size: 1.08rem;
      line-height: 1.65;
    }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
    .button {
      min-height: 50px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 13px 20px;
      border: 1px solid transparent;
      background: var(--clay);
      color: white;
      text-decoration: none;
      font-size: .82rem;
      font-weight: 700;
      letter-spacing: .055em;
      text-transform: uppercase;
      cursor: pointer;
      transition: transform .25s var(--ease), background .25s ease, color .25s ease, border-color .25s ease;
    }
    .button:hover { transform: translateY(-2px); background: #a95134; }
    .button--ghost { background: transparent; border-color: rgba(246, 241, 232, .52); color: var(--ivory); }
    .button--ghost:hover { background: var(--ivory); color: var(--forest); }
    .button--dark { background: var(--forest); }
    .button--dark:hover { background: var(--forest-deep); }
    .button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; }
    .hero-facts {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      max-width: 820px;
      margin-top: 46px;
      border-top: 1px solid var(--white-line);
      border-bottom: 1px solid var(--white-line);
    }
    .hero-fact { min-height: 90px; padding: 17px 18px 14px 0; }
    .hero-fact + .hero-fact { padding-left: 20px; border-left: 1px solid var(--white-line); }
    .hero-fact strong { display: block; font-family: var(--display); font-size: 1.6rem; line-height: 1.1; font-weight: 500; }
    .hero-fact span { display: block; margin-top: 7px; color: rgba(246, 241, 232, .68); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
    .hero-update {
      position: absolute;
      z-index: 2;
      right: max(24px, calc((100vw - min(1180px, calc(100vw - 48px))) / 2));
      bottom: 62px;
      width: 210px;
      padding: 18px 20px;
      background: rgba(13, 43, 38, .9);
      border: 1px solid var(--white-line);
      color: var(--ivory);
    }
    .hero-update strong { display: block; font-family: var(--display); font-size: 2.2rem; line-height: 1; font-weight: 500; }
    .hero-update span { display: block; margin-top: 7px; font-size: .74rem; line-height: 1.5; color: rgba(246,241,232,.72); }

    .section { display:grid; align-content:start; padding:112px 0; }
    .section-shell { width: var(--page); margin: 0 auto; }
    .section-heading { display: grid; grid-template-columns: minmax(0, .75fr) minmax(320px, 1.25fr); gap: 70px; align-items: end; margin-bottom: 54px; }
    .section-heading h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.9rem, 5.2vw, 5.1rem);
      font-weight: 600;
      line-height: .95;
      letter-spacing: -.03em;
      text-wrap: balance;
    }
    .section-heading p { max-width: 62ch; margin: 0; color: var(--muted); }

    .intro { background: var(--ivory); }
    .intro-grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(42px, 7vw, 92px); align-items: end; }
    .intro-copy { display: flex; flex-direction: column; justify-content: center; }
    .intro-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem, 5vw, 5rem); line-height: .95; letter-spacing: -.03em; font-weight: 600; }
    .intro-copy > p { margin: 28px 0 0; color: #52615a; max-width: 52ch; }
    .project-logo { width: 220px; height: auto; margin-top: 30px; }
    .fact-list { margin: 42px 0 0; border-top: 1px solid var(--line); }
    .fact-row { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line); }
    .fact-row span { color: var(--muted); }
    .fact-row strong { font-weight: 650; text-align: right; }
    .residence-explorer { display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(340px, .78fr); margin: 58px 0 0; background: var(--forest-deep); color: var(--ivory); }
    .explorer-map { min-width: 0; border-right: 1px solid var(--white-line); }
    .explorer-media-stage { position: relative; aspect-ratio: 1.6 / 1; overflow: hidden; background: var(--limestone); }
    .explorer-media-stage > img { width: 100%; height: 100%; object-fit: contain; padding: clamp(28px, 4vw, 52px); }
    .explorer-media-stage.is-photo > img { object-fit: cover; padding: 0; }
    .explorer-media-stage.is-changing > img { animation: media-reveal .42s var(--ease); }
    .masterplan-label {
      position: absolute;
      z-index: 1;
      left: clamp(14px, 2vw, 26px);
      top: clamp(14px, 2vw, 26px);
      padding: 9px 12px;
      background: rgba(13, 43, 38, .92);
      color: var(--ivory);
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: .09em;
      text-transform: uppercase;
    }
    .media-selector { display: flex; overflow-x: auto; border-top: 1px solid var(--white-line); border-bottom: 1px solid var(--white-line); scrollbar-width: thin; }
    .media-selector button { display: grid; grid-template-columns: 44px auto; flex: 1 0 118px; align-items: center; gap: 10px; min-height: 68px; padding: 9px 11px; border: 0; border-right: 1px solid var(--white-line); border-radius: 0; background: var(--forest-deep); color: rgba(246,241,232,.7); cursor: pointer; text-align: left; }
    .media-selector button:last-child { border-right: 0; }
    .media-selector button[aria-selected="true"] { background: var(--ivory); color: var(--forest-deep); }
    .media-selector img { width: 44px; height: 44px; object-fit: cover; background: var(--limestone); }
    .media-selector button[data-kind="plan"] img, .media-selector button[data-kind="site"] img { object-fit: contain; padding: 3px; }
    .media-selector span { font-size: .75rem; font-weight: 700; line-height: 1.25; }
    .map-note { display: flex; justify-content: space-between; gap: 24px; margin: 0; padding: 18px clamp(18px, 2.5vw, 30px); border-top: 1px solid var(--white-line); color: rgba(246,241,232,.68); font-size: .78rem; }
    .map-note strong { color: var(--ivory); font-weight: 600; }
    .explorer-panel { display: flex; flex-direction: column; padding: clamp(28px, 4vw, 48px); background: var(--forest); }
    .explorer-panel h3 { margin: 0; font-family: var(--display); font-size: clamp(2.35rem, 3.5vw, 3.65rem); font-weight: 600; line-height: .95; letter-spacing: -.025em; }
    .explorer-panel > p { margin: 16px 0 0; color: rgba(246,241,232,.68); font-size: .9rem; }
    .selection-summary { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--white-line); }
    .selection-title { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; }
    .selection-title span { color: rgba(246,241,232,.64); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .selection-title strong { font-family: var(--display); font-size: 2.15rem; font-weight: 500; line-height: 1; }
    .selection-summary > p { margin: 10px 0 0; color: rgba(246,241,232,.72); font-size: .82rem; }
    .selection-facts { margin: 22px 0 24px; }
    .selection-facts div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid rgba(246,241,232,.13); }
    .selection-facts dt { color: rgba(246,241,232,.62); font-size: .76rem; }
    .selection-facts dd { margin: 0; font-size: .78rem; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums lining-nums; }
    .selection-actions { display: grid; gap: 13px; }
    .selection-actions .button { width: 100%; }

    .inventory { background: var(--forest); color: var(--ivory); }
    .inventory .section-heading p { color: rgba(246, 241, 232, .68); }
    .inventory-toolbar {
      display: grid;
      grid-template-columns: minmax(140px,.65fr) minmax(240px,1.4fr) minmax(130px,.7fr) minmax(130px,.7fr) auto;
      gap: 12px;
      align-items: end;
      padding: 22px 0;
      border-top: 1px solid var(--white-line);
      border-bottom: 1px solid var(--white-line);
    }
    .field label { display: block; margin-bottom: 7px; color: rgba(246, 241, 232, .68); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .field select, .field input[type="number"], .contact-field input, .contact-field select, .contact-field textarea {
      width: 100%;
      min-height: 48px;
      border: 1px solid rgba(246, 241, 232, .26);
      border-radius: 0;
      background: var(--forest-deep);
      color: var(--ivory);
      padding: 11px 13px;
    }
    .field select { color-scheme: dark; cursor: pointer; }
    .field input[type="number"] { color-scheme: dark; }
    .budget-control { display:grid; grid-template-columns:1fr auto; gap:5px 12px; align-items:center; }
    .budget-control label { grid-column:1 / -1; }
    .budget-control input { width:100%; accent-color:var(--aitana); cursor:pointer; }
    .budget-control output { min-width:92px; color:var(--ivory); font-size:.82rem; font-weight:700; text-align:right; font-variant-numeric:tabular-nums lining-nums; }
    .result-count { padding: 0 0 12px 20px; border-left: 1px solid var(--white-line); text-align: right; }
    .result-count strong { display: block; font-family: var(--display); font-size: 2rem; line-height: 1; font-weight: 500; }
    .result-count span { display: block; margin-top: 6px; color: rgba(246,241,232,.65); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
    .inventory-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .75fr); gap: 38px; margin-top: 34px; align-items: start; }
    .inventory-layout > * { min-width: 0; }
    .table-wrap { overflow-x: auto; border-bottom: 1px solid var(--white-line); }
    .unit-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums lining-nums; }
    .unit-table th { padding: 12px 14px; border-bottom: 1px solid rgba(246,241,232,.38); color: rgba(246,241,232,.62); font-size: .68rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
    .unit-table td { padding: 15px 14px; border-bottom: 1px solid rgba(246,241,232,.13); font-size: .88rem; white-space: nowrap; }
    .unit-table tbody tr { cursor: pointer; transition: background .2s ease; }
    .unit-table tbody tr:hover { background: rgba(246,241,232,.055); }
    .unit-table tbody tr.is-selected { background: rgba(58,174,165,.16); box-shadow: inset 3px 0 0 var(--aitana); }
    .unit-table button { border: 0; padding: 0; background: transparent; color: var(--ivory); font-weight: 700; cursor: pointer; }
    .unit-table .price { font-weight: 650; }
    .empty-state { display: none; padding: 48px 0; color: rgba(246,241,232,.72); }
    .unit-detail {
      position: sticky;
      top: 102px;
      border-top: 3px solid var(--aitana);
      background: var(--ivory);
      color: var(--ink);
      padding: 28px;
    }
    .unit-detail-header { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
    .unit-detail h3 { margin: 0; font-family: var(--display); font-size: 2.5rem; line-height: .95; font-weight: 600; }
    .unit-detail .tower { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .unit-price { margin: 28px 0 0; font-family: var(--display); font-size: 2rem; line-height: 1; color: var(--forest); font-variant-numeric: lining-nums tabular-nums; }
    .payment-list { margin: 27px 0 26px; border-top: 1px solid var(--line); }
    .payment-list div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--line); }
    .payment-list dt { color: var(--muted); }
    .payment-list dd { margin: 0; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums lining-nums; }
    .finance-estimate { margin:14px 0 16px; padding:12px 14px; background:var(--forest-deep); color:var(--ivory); }
    .finance-estimate span,.finance-estimate small { display:block; color:rgba(246,241,232,.62); font-size:.66rem; line-height:1.35; }
    .finance-estimate strong { display:block; margin:5px 0 4px; font-family:var(--display); font-size:1.65rem; font-weight:500; line-height:1; }
    .unit-detail .button { width: 100%; }
    .data-note { margin: 24px 0 0; color: rgba(246,241,232,.57); font-size: .74rem; max-width: 78ch; }

    .gallery { background: var(--forest-deep); color: var(--ivory); }
    .gallery .section-heading p { color: rgba(246,241,232,.66); }

    dialog.lightbox { width: min(1100px, calc(100vw - 32px)); max-width: none; padding: 0; border: 0; background: var(--forest-deep); color: var(--ivory); box-shadow: 0 26px 90px rgba(0,0,0,.45); }
    dialog.lightbox::backdrop { background: rgba(4,18,15,.82); backdrop-filter: blur(8px); }
    .lightbox-stage { position: relative; min-height: min(72vh, 720px); display: grid; place-items: center; }
    .lightbox-stage img { max-width: 100%; max-height: 76vh; object-fit: contain; }
    .lightbox-close { position: absolute; z-index: 2; top: 14px; right: 14px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--white-line); background: var(--forest-deep); color: var(--ivory); cursor: pointer; }
    .lightbox-close svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.7; }
    .lightbox-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 18px; border-top: 1px solid var(--white-line); }
    .lightbox-controls { display: flex; gap: 8px; }
    .lightbox-controls button { min-height: 40px; padding: 9px 14px; border: 1px solid var(--white-line); background: transparent; color: var(--ivory); cursor: pointer; }

    .location { background: var(--paper); }
    .map-composition { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .55fr); min-height: 680px; border: 1px solid var(--line); }
    .map-frame { position: relative; min-width: 0; background: var(--forest-deep); }
    #location-map { width: 100%; height: 100%; min-height: 680px; background: var(--forest-deep); }
    .map-caption { position: absolute; z-index: 500; left: 18px; bottom: 18px; max-width: min(520px, calc(100% - 36px)); margin: 0; padding: 10px 13px; background: rgba(13,43,38,.92); color: rgba(246,241,232,.75); font-size: .72rem; line-height: 1.45; pointer-events: none; }
    .map-sidebar { padding: clamp(28px, 4vw, 52px); background: var(--forest); color: var(--ivory); }
    .map-sidebar h3 { margin: 0; font-family: var(--display); font-size: clamp(2.8rem, 4.4vw, 4.4rem); font-weight: 600; line-height: .92; letter-spacing: -.03em; }
    .map-sidebar address { margin: 22px 0 0; color: rgba(246,241,232,.72); font-style: normal; }
    .map-group { margin-top: 34px; }
    .map-group-title { margin: 0 0 9px; color: rgba(246,241,232,.48); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
    .map-point { width: 100%; display: grid; grid-template-columns: 12px 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border: 0; border-top: 1px solid var(--white-line); background: transparent; color: var(--ivory); text-align: left; cursor: pointer; }
    .map-point:last-child { border-bottom: 1px solid var(--white-line); }
    .map-point-dot { width: 9px; height: 9px; border: 2px solid var(--aitana); border-radius: 50%; }
    .map-point--access .map-point-dot { border-color: var(--clay); }
    .map-point span { font-size: .82rem; font-weight: 600; }
    .map-point strong { color: rgba(246,241,232,.58); font-size: .7rem; font-weight: 600; white-space: nowrap; }
    .map-point:hover span, .map-point:focus-visible span { color: var(--aitana); }
    .map-point--access:hover span, .map-point--access:focus-visible span { color: #e58c68; }
    .map-sidebar .button { width: 100%; margin-top: 30px; }
    .map-disclaimer { margin: 18px 0 0; color: rgba(246,241,232,.48); font-size: .7rem; line-height: 1.5; }
    .leaflet-control-attribution { max-width: 72%; background: rgba(255,255,255,.84) !important; font-size: 9px !important; }
    .leaflet-popup-content-wrapper, .leaflet-popup-tip { border-radius: 0; background: var(--paper); color: var(--ink); }
    .leaflet-popup-content { margin: 15px 17px; font-family: var(--sans); line-height: 1.45; }
    .leaflet-popup-content strong { display: block; color: var(--forest); font-family: var(--display); font-size: 1.2rem; }
    .map-pin { background: transparent; border: 0; }
    .map-pin span { width: 30px; height: 30px; display: grid; place-items: center; border: 2px solid var(--paper); border-radius: 50%; background: var(--aitana); color: var(--forest-deep); box-shadow: 0 6px 18px rgba(0,0,0,.38); font: 700 .7rem/1 var(--sans); }
    .map-pin--project span { width: 42px; height: 42px; background: var(--clay); color: var(--ivory); font-family: var(--display); font-size: 1.1rem; }
    .map-pin--access span { background: var(--forest-deep); color: var(--ivory); border-color: var(--clay); }

    .contact { background: var(--ivory); }
    .contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: start; }
    .contact-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.4rem, 5.8vw, 5.8rem); font-weight: 600; line-height: .9; letter-spacing: -.035em; }
    .contact-copy p { max-width: 50ch; margin: 28px 0 0; color: var(--muted); }
    .contact-number { display: inline-block; margin-top: 30px; color: var(--forest); font-family: var(--display); font-size: 2.2rem; text-decoration-thickness: 1px; text-underline-offset: 7px; font-variant-numeric: lining-nums tabular-nums; }
    .contact-form { padding: 34px; background: var(--forest); color: var(--ivory); }
    .contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
    .contact-field--full { grid-column: 1 / -1; }
    .contact-field label { display: block; margin-bottom: 7px; font-size: .74rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: rgba(246,241,232,.7); }
    .contact-field textarea { min-height: 104px; resize: vertical; }
    .contact-field input::placeholder, .contact-field textarea::placeholder { color: rgba(246,241,232,.45); }
    .contact-form .button { width: 100%; margin-top: 20px; }
    .form-status { min-height: 24px; margin: 13px 0 0; font-size: .8rem; color: var(--aitana); }

    .site-footer { padding: 58px 0 30px; background: var(--forest-deep); color: var(--ivory); }
    .footer-top { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; padding-bottom: 40px; border-bottom: 1px solid var(--white-line); }
    .footer-identity { display:flex; align-items:center; }
    .footer-lockup { display:block; width:min(410px,100%); height:auto; }
    .developer-logo { width: min(330px, 42vw); opacity: .9; }
    .footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-top: 24px; color: rgba(246,241,232,.55); font-size: .74rem; }

    @media (max-width: 1000px) {
      :root { --page: min(100% - 36px, 880px); }
      .nav-links { position: fixed; inset: var(--header-height) 0 auto; display: none; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: 20px; background: var(--forest-deep); border-bottom: 1px solid var(--white-line); }
      .menu-open .nav-links { display: flex; }
      .nav-links a { padding: 15px; border-bottom: 1px solid var(--white-line); }
      .nav-links .nav-cta { margin-top: 14px; text-align: center; }
      .menu-toggle { display: flex; }
      .hero { min-height: 790px; }
      .hero-update { display: none; }
      .hero-content { padding-bottom: 40px; }
      .section-heading { grid-template-columns: 1fr; gap: 20px; }
      .intro-grid, .contact-grid { grid-template-columns: 1fr; }
      .map-composition { grid-template-columns: 1fr; }
      .intro-copy { padding: 26px 0 0; }
      .residence-explorer { grid-template-columns: 1fr; }
      .explorer-map { border-right: 0; border-bottom: 1px solid var(--white-line); }
      .inventory-toolbar { grid-template-columns: repeat(2, 1fr); }
      .result-count { grid-column: 1 / -1; display: flex; gap: 8px; align-items: baseline; justify-content: flex-start; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--white-line); text-align: left; }
      .inventory-layout { grid-template-columns: 1fr; }
      .unit-detail { position: relative; top: auto; }
      #location-map { min-height: 560px; }
    }

    @media (max-width: 680px) {
      :root { --page: calc(100vw - 28px); --header-height: calc(68px + env(safe-area-inset-top)); }
      .site-header { height: var(--header-height); }
      .nav-links { top: var(--header-height); padding:16px max(14px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); }
      .nav-shell { position:relative; gap:12px; padding-right:56px; }
      .brand-isotype { width:22px; height:28px; }
      .brand-wordmark { width:154px; }
      .menu-toggle { position:absolute; top:12px; right:0; display:flex; flex:0 0 44px; margin-left:auto; }
      .hero { min-height:100svh; height:auto; }
      .hero-media::after { background: linear-gradient(0deg, rgba(8,31,27,.96) 0%, rgba(8,31,27,.64) 56%, rgba(8,31,27,.13) 100%); }
      .hero-media img { object-position: 58% center; }
      .hero-content { padding:calc(var(--header-height) + 42px) 0 max(30px, env(safe-area-inset-bottom)); }
      .hero h1 { max-width:342px; font-size:clamp(3.08rem,15.5vw,4.4rem); line-height:.87; letter-spacing:-.045em; }
      .hero-lead { width:100%; max-width:342px; font-size: .98rem; line-height: 1.55; }
      .hero-actions { display: grid; grid-template-columns: 1fr; }
      .hero-facts { grid-template-columns: 1fr 1fr; margin-top: 30px; }
      .hero-fact { min-height: 70px; padding: 12px 10px 11px 0; }
      .hero-fact + .hero-fact { padding-left: 14px; }
      .hero-fact:nth-child(3) { border-left: 0; border-top: 1px solid var(--white-line); }
      .hero-fact:nth-child(4) { border-top: 1px solid var(--white-line); }
      .hero-fact strong { font-size: 1.3rem; }
      .section { align-content:start; padding:calc(var(--header-height) + 34px) 0 max(48px, env(safe-area-inset-bottom)); }
      .section-heading { margin-bottom: 34px; }
      .section-heading h2 { font-size: 3rem; }
      .fact-row { grid-template-columns: 1fr; gap: 3px; }
      .fact-row strong { text-align: left; }
      .residence-explorer { margin-top: 40px; }
      .masterplan-label { top: 16px; left: 16px; padding: 7px 9px; font-size: .75rem; }
      .map-note { display: block; padding: 15px 18px; font-size: .75rem; }
      .map-note span { display: block; margin-top: 4px; }
      .explorer-media-stage { aspect-ratio: 1.25 / 1; }
      .explorer-media-stage > img { padding: 48px 16px 24px; }
      .media-selector button { flex-basis: 112px; }
      .explorer-panel { padding: 30px 22px; }
      .inventory-toolbar { grid-template-columns: 1fr; }
      .result-count { grid-column: auto; }
      .unit-table th:nth-child(2), .unit-table td:nth-child(2) { display: none; }
      .unit-table th, .unit-table td { padding-left: 10px; padding-right: 10px; }
      .table-wrap { width:100%; max-width:100%; overflow-x:auto; overflow-y:visible; -webkit-overflow-scrolling:touch; }
      .unit-table thead { background: var(--forest-deep); }
      .unit-detail { padding: 22px; }
      .map-frame { display:flex; flex-direction:column; }
      #location-map { height:460px; min-height:460px; }
      .map-sidebar { padding: 34px 24px; }
      .map-caption { position:static; max-width:none; padding:13px 16px calc(13px + env(safe-area-inset-bottom)); background:var(--forest-deep); }
      .contact-fields { grid-template-columns: 1fr; }
      .contact-field--full { grid-column: auto; }
      .contact-form { padding: 26px 20px; }
      .contact-number { font-size: 1.9rem; }
      .footer-top { grid-template-columns: 1fr; }
      .footer-identity { align-items:flex-start; }
      .footer-isotype { width:58px; }
      .developer-logo { width: min(300px, 86vw); }
      .footer-bottom { flex-direction: column; gap: 9px; }
    }

    @supports (min-height: 100dvh) {
      .hero { min-height: max(760px, 100dvh); }
      @media (max-width: 680px) { .hero { min-height: 100dvh; } }
    }

    /* Flujo documental nativo; el ajuste de proximidad vive en refinement.css. */
    main {
      height:auto;
      overflow-x:hidden;
      overflow-y:visible;
    }
    main > [data-scroll-stop] {
      height:auto;
      min-height:100svh;
      max-height:none;
      overflow:visible;
      scroll-margin-top:0;
    }
    main > .section[data-scroll-stop] { scroll-margin-top:0; }
    .hero { height:auto; min-height:100svh; max-height:none; }
    .hero-content { padding:calc(var(--header-height) + 28px) 0 20px; }
    .hero h1 { font-size:clamp(4rem,7.2vw,6.8rem); }
    .hero-lead { margin-top:16px; font-size:1rem; line-height:1.45; }
    .hero-actions { margin-top:18px; }
    .hero-facts { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:22px; }
    .hero-fact { min-height:66px; padding:11px 16px 9px 0; }
    .hero-fact strong { font-size:1.42rem; }
    .hero-fact span { margin-top:4px; }
    .hero-update { bottom:22px; }
    .section { align-content:center; padding:calc(var(--header-height) + clamp(16px,2.5vh,28px)) 0 clamp(16px,2.5vh,28px); }
    .section-heading { gap:28px; margin-bottom:18px; }
    .section-heading h2 { font-size:clamp(2.45rem,4.5vw,4rem); }
    .section-heading p { font-size:.9rem; line-height:1.45; }

    .intro-grid { align-items:center; }
    .intro-copy { padding-top:0; }
    .intro-copy h2 { font-size:clamp(2.8rem,4.8vw,4.5rem); }
    .intro-copy > p { margin-top:18px; }
    .project-logo { width:180px; margin-top:18px; }
    .fact-list { margin-top:0; }
    .fact-row { padding:12px 0; }
    .intro-copy .fact-list { margin-top:22px; }
    .project-overview { min-width:0; background:var(--forest-deep); color:var(--ivory); }
    .project-plan-stage { position:relative; height:min(430px,58vh); overflow:hidden; background:var(--limestone); }
    .project-plan-stage > img { width:100%; height:100%; object-fit:contain; padding:18px; }
    .overview-tower { position:absolute; display:grid; gap:3px; min-width:118px; padding:10px 12px; border:1px solid rgba(246,241,232,.55); background:rgba(13,43,38,.88); color:var(--ivory); text-align:left; cursor:pointer; }
    .overview-tower strong { font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; }
    .overview-tower span { color:rgba(246,241,232,.68); font-size:.7rem; }
    .overview-tower.is-active { border-color:var(--aitana); background:var(--forest); box-shadow:inset 0 0 0 1px var(--aitana); }
    .overview-tower--1 { left:14%; bottom:12%; }
    .overview-tower--2 { right:10%; top:12%; }
    .project-plan-caption { min-height:46px; margin:0; padding:12px 16px; color:rgba(246,241,232,.72); font-size:.78rem; }
    .project-plan-caption strong { color:var(--ivory); }

    .explorer-section .section-shell { display:grid; align-items:center; }
    .residence-explorer { height:min(600px,calc(100svh - var(--header-height) - 38px)); margin:0; overflow:hidden; }
    .explorer-media-stage { height:min(350px,48vh); aspect-ratio:auto; }
    .explorer-panel { padding:17px 20px; overflow:hidden; }
    .explorer-panel h2 { margin:0; font-family:var(--display); font-size:clamp(2.2rem,3.4vw,3.45rem); font-weight:600; line-height:.94; letter-spacing:-.025em; }
    .explorer-panel > p { margin-top:6px; font-size:.76rem; line-height:1.35; }
    .selection-summary { margin-top:9px; padding-top:8px; }
    .selection-summary > p { display:none; }
    .selection-summary #explorer-description { display:block; margin-top:7px; }
    .residence-type-tabs { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-top:14px; background:var(--white-line); }
    .residence-type-tabs button { min-height:42px; padding:8px 10px; border:0; background:var(--forest-deep); color:rgba(246,241,232,.72); font-size:.74rem; font-weight:700; cursor:pointer; }
    .residence-type-tabs button[aria-selected="true"] { background:var(--ivory); color:var(--forest-deep); }
    .residence-features { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; margin:8px 0 0; padding:0; list-style:none; }
    .residence-features li { padding:5px 0; border-bottom:1px solid rgba(246,241,232,.12); color:rgba(246,241,232,.8); font-size:.71rem; line-height:1.3; }
    .selection-facts { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:9px 0 10px; }
    .selection-facts div { display:block; padding:5px 0; }
    .selection-facts dd { margin-top:2px; text-align:left; }
    .selection-actions { grid-template-columns:1fr auto; align-items:center; gap:12px; }

    .inventory-toolbar { gap:9px; padding:10px 0; }
    .inventory { align-content:start; padding:calc(var(--header-height) + 10px) 0 10px; }
    .field label { margin-bottom:4px; }
    .field select { min-height:42px; padding:8px 10px; }
    .result-count { padding-bottom:7px; }
    .inventory-layout { gap:22px; margin-top:14px; }
    .unit-table th { padding:7px 10px; }
    .unit-table td { padding:8px 10px; }
    .unit-detail { position:relative; top:auto; padding:18px; border-top-width:2px; }
    .unit-detail h3 { font-size:2rem; }
    .unit-price { margin-top:10px; font-size:1.65rem; }
    .payment-list { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; margin:12px 0; }
      .payment-list div { padding:6px 0; font-size:.78rem; }
    .finance-estimate { margin:8px 0 10px; padding:8px 10px; }
    .finance-estimate strong { font-size:1.3rem; }
    .data-note { margin-top:8px; font-size:.67rem; }
    .inventory-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:9px; }
    .inventory-pagination button { min-height:40px; padding:7px 12px; border:1px solid var(--white-line); background:transparent; color:var(--ivory); cursor:pointer; }
    .inventory-pagination button:disabled { opacity:.35; cursor:default; }
    .inventory-pagination span { color:rgba(246,241,232,.68); font-size:.74rem; }

    .experience-tabs { display:flex; margin-bottom:10px; border-top:1px solid var(--white-line); border-bottom:1px solid var(--white-line); }
    .experience-tabs button { flex:1; min-height:42px; padding:8px 12px; border:0; border-right:1px solid var(--white-line); background:transparent; color:rgba(246,241,232,.66); font-size:.72rem; font-weight:700; cursor:pointer; }
    .experience-tabs button:last-child { border-right:0; }
    .experience-tabs button[aria-selected="true"] { background:var(--ivory); color:var(--forest-deep); }
    .experience-viewer { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr); height:min(430px,60vh); background:var(--forest); }
    .experience-media { position:relative; min-width:0; padding:0; border:0; overflow:hidden; background:var(--forest-deep); color:var(--ivory); cursor:zoom-in; }
    .experience-media img { width:100%; height:100%; object-fit:cover; transition:filter .35s ease,transform .6s var(--ease); }
    .experience-media:hover img { transform:scale(1.025); filter:brightness(.86); }
    .experience-media span { position:absolute; right:14px; bottom:12px; padding:6px 8px; background:rgba(13,43,38,.88); font-size:.7rem; }
    .experience-copy { display:flex; flex-direction:column; min-width:0; padding:24px; }
    .experience-category { margin:0; color:var(--aitana); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
    .experience-copy h3 { margin:8px 0 0; font-family:var(--display); font-size:clamp(2.2rem,3vw,3.25rem); font-weight:600; line-height:.94; }
    .experience-copy > p:not(.experience-category) { margin:10px 0 0; color:rgba(246,241,232,.68); font-size:.78rem; line-height:1.45; }
    .experience-controls { display:flex; gap:8px; margin-top:16px; }
    .experience-controls button { min-height:38px; padding:7px 12px; border:1px solid var(--white-line); background:transparent; color:var(--ivory); cursor:pointer; }
    .experience-thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:14px; }
    .experience-thumb { height:48px; padding:0; border:1px solid transparent; background:var(--forest-deep); cursor:pointer; overflow:hidden; }
    .experience-thumb img { width:100%; height:100%; object-fit:cover; opacity:.55; }
    .experience-thumb[aria-current="true"] { border-color:var(--aitana); }
    .experience-thumb[aria-current="true"] img { opacity:1; }
    .experience-copy .experience-support { margin-top:auto; padding-top:12px; border-top:1px solid var(--white-line); font-size:.7rem; }


    .map-composition { min-height:0; height:min(470px,65vh); grid-template-columns:minmax(0,1.3fr) minmax(390px,.7fr); }
    #location-map { min-height:0; }
    .map-sidebar { padding:16px 18px; overflow:hidden; }
    .map-sidebar h3 { font-size:2.1rem; white-space:nowrap; }
    .map-sidebar address { margin-top:6px; font-size:.72rem; line-height:1.35; }
    .map-group { margin-top:8px; }
    .map-group-title { margin-bottom:2px; font-size:.62rem; }
    .map-point { padding:4px 0; }
    .map-point span { font-size:.74rem; }
    .map-point strong { font-size:.64rem; }
    .map-sidebar .button { min-height:38px; margin-top:8px; padding:7px 10px; }
    .map-disclaimer { margin-top:6px; font-size:.58rem; line-height:1.3; }

    .contact { grid-template-rows:1fr auto; align-content:stretch; padding-bottom:0; }
    .contact > .section-shell { align-self:center; }
    .contact-grid { gap:42px; align-items:center; }
    .contact-copy h2 { font-size:clamp(3rem,5vw,4.8rem); }
    .contact-copy p { margin-top:16px; }
    .contact-copy .contact-selection { padding-top:10px; border-top:1px solid var(--line); color:var(--forest); font-weight:650; }
    .contact-number { margin-top:16px; font-size:1.9rem; }
    .contact-form { padding:20px; }
    .contact-fields { gap:10px; }
    .contact-field textarea { min-height:68px; }
    .contact-form .button { margin-top:12px; }
    .form-status { min-height:18px; margin-top:7px; }
    .contact .site-footer { align-self:end; width:100%; padding:14px 0 max(14px,env(safe-area-inset-bottom)); }
    .contact .footer-top { padding-bottom:12px; }
    .contact .footer-lockup { width:min(260px,100%); }
    .contact .developer-logo { width:min(220px,34vw); }
    .contact .footer-bottom { padding-top:10px; font-size:.65rem; }

    @media (max-width:680px) {
      .hero-content { padding:calc(var(--header-height) + 28px) 0 max(22px,env(safe-area-inset-bottom)); }
      .hero h1 { font-size:clamp(3rem,15vw,4.15rem); }
      .hero-lead { margin-top:14px; font-size:.92rem; line-height:1.42; }
      .hero-actions { margin-top:14px; }
      .hero-facts { margin-top:18px; }
      .hero-facts { grid-template-columns:.8fr 1.2fr; }
      .hero-fact:last-child { grid-column:1 / -1; border-left:0; border-top:1px solid var(--white-line); }
      .hero-fact { min-height:62px; }
      .hero-fact strong { font-size:1.24rem; }
      .section { padding:calc(var(--header-height) + 12px) 0 max(12px,env(safe-area-inset-bottom)); }
      .section-heading { gap:7px; margin-bottom:10px; }
      .section-heading h2 { font-size:2.15rem; line-height:.94; }
      .section-heading p { font-size:.78rem; line-height:1.35; }
      .intro-grid { gap:18px; }
      .intro-copy h2 { font-size:2.65rem; }
      .intro-copy > p { margin-top:12px; font-size:.88rem; line-height:1.5; }
      .intro-copy .fact-list { margin-top:10px; }
      .fact-row { grid-template-columns:1fr; gap:0; padding:7px 0; font-size:.8rem; }
      .fact-row strong { text-align:left; }
      .project-overview { margin-top:0; }
      .project-plan-stage { height:205px; }
      .project-plan-stage > img { padding:8px; }
      .overview-tower { min-width:96px; padding:7px 8px; }
      .overview-tower strong,.overview-tower span { font-size:.62rem; }
      .project-plan-caption { min-height:36px; padding:8px 10px; font-size:.68rem; }

      .residence-explorer { height:auto; max-height:none; grid-template-columns:1fr; }
      .explorer-map { border-right:0; }
      .explorer-media-stage { height:180px; }
      .explorer-media-stage > img { padding:34px 10px 12px; }
      .masterplan-label { top:8px; left:8px; padding:5px 7px; font-size:.62rem; }
      .media-selector button { grid-template-columns:30px auto; min-height:46px; flex-basis:92px; padding:5px 7px; gap:6px; }
      .media-selector img { width:30px; height:30px; }
      .media-selector span { font-size:.66rem; }
      .map-note { display:none; }
      .explorer-panel { padding:12px; }
      .explorer-panel h2 { font-size:1.95rem; }
      .explorer-panel > p { display:none; }
      .residence-type-tabs { margin-top:8px; }
      .residence-type-tabs button { min-height:36px; padding:5px 7px; font-size:.66rem; }
      .selection-summary { margin-top:7px; padding-top:7px; }
      .selection-title strong { font-size:1.55rem; }
      .selection-summary #explorer-description { margin-top:4px; font-size:.68rem; }
      .residence-features { margin-top:4px; gap:0 8px; }
      .residence-features li { padding:3px 0; font-size:.62rem; }
      .selection-facts { margin:5px 0 7px; }
      .selection-facts dt,.selection-facts dd { font-size:.66rem; }
      .selection-actions { grid-template-columns:1fr auto; }
      .selection-actions .button { min-height:40px; padding:7px 9px; font-size:.65rem; }

      .inventory { padding-top:calc(var(--header-height) + 8px); }
      .inventory .section-heading { margin-bottom:5px; }
      .inventory .section-heading h2 { font-size:1.9rem; }
      .inventory .section-heading p { display:none; }
      .inventory-toolbar { grid-template-columns:1fr 1fr; gap:6px; padding:7px 0; }
      .inventory-toolbar > :nth-child(1) { order:1; }
      .inventory-toolbar > :nth-child(2) { order:3; grid-column:1 / -1; }
      .inventory-toolbar > :nth-child(3) { order:4; }
      .inventory-toolbar > :nth-child(4) { order:2; }
      .inventory-toolbar > :nth-child(5) { order:5; }
      .field select,.field input[type="number"] { min-height:40px; padding:6px 8px; font-size:.78rem; }
      .field label { font-size:.62rem; }
      .budget-control { gap:2px 9px; }
      .budget-control output { min-width:82px; font-size:.72rem; }
      .result-count { display:flex; grid-column:auto; align-items:baseline; gap:6px; min-height:40px; padding:0 0 6px; border-left:0; text-align:left; }
      .result-count strong { font-size:1.35rem; }
      .result-count span { margin-top:0; font-size:.56rem; }
      .inventory-layout { gap:5px; margin-top:5px; }
      .table-wrap { overflow-x:hidden; }
      .unit-table { table-layout:fixed; }
      .unit-table th,.unit-table td { overflow:hidden; padding:5px 4px; font-size:.64rem; letter-spacing:0; text-overflow:clip; }
      .unit-table th:nth-child(1),.unit-table td:nth-child(1) { width:22%; }
      .unit-table th:nth-child(3),.unit-table td:nth-child(3) { width:18%; }
      .unit-table th:nth-child(4),.unit-table td:nth-child(4) { width:32%; }
      .unit-table th:nth-child(5),.unit-table td:nth-child(5) { width:28%; }
      .inventory-pagination { margin-top:4px; }
      .inventory-pagination button { min-height:32px; padding:4px 8px; font-size:.64rem; }
      .inventory-pagination span { font-size:.64rem; }
      .data-note { display:none; }
      .unit-detail { padding:8px 10px; }
      .unit-detail h3 { font-size:1.35rem; }
      .unit-detail .tower { font-size:.58rem; }
      .unit-price { margin-top:2px; font-size:1.15rem; }
      .payment-list { margin:4px 0; gap:0 8px; }
      .payment-list div { display:block; padding:2px 0; font-size:.61rem; }
      .payment-list dd { text-align:left; }
      .finance-estimate { margin:4px 0 5px; padding:6px 8px; }
      .finance-estimate strong { margin:3px 0; font-size:1.08rem; }
      .finance-estimate small { font-size:.58rem; }
      .finance-estimate small:last-child { display:none; }
      .unit-detail .button { min-height:34px; padding:5px 8px; font-size:.62rem; }

      .experience-tabs { display:grid; grid-template-columns:1fr 1fr; margin-bottom:7px; }
      .experience-tabs button { min-height:34px; padding:5px 7px; font-size:.64rem; border-bottom:1px solid var(--white-line); }
      .experience-viewer { height:auto; grid-template-columns:1fr; }
      .experience-media { height:220px; }
      .experience-copy { padding:12px; }
      .experience-copy h3 { margin-top:4px; font-size:1.8rem; }
      .experience-copy > p:not(.experience-category) { margin-top:5px; font-size:.68rem; line-height:1.35; }
      .experience-controls { margin-top:8px; }
      .experience-controls button { min-height:34px; padding:5px 9px; font-size:.66rem; }
      .experience-thumbs { grid-template-columns:repeat(4,1fr); gap:4px; margin-top:8px; }
      .experience-thumb { height:36px; }
      .experience-copy .experience-support { margin-top:8px; padding-top:7px; font-size:.61rem; }

      .map-composition { height:min(570px,70vh); grid-template-columns:1fr; }
      #location-map { height:220px; min-height:220px; }
      .map-caption { display:none; }
      .map-sidebar { padding:12px; }
      .map-sidebar h3 { font-size:1.9rem; }
      .map-sidebar address { margin-top:5px; font-size:.68rem; }
      .map-group { margin-top:6px; }
      .map-group-title { margin-bottom:2px; font-size:.58rem; }
      .map-point { padding:4px 0; }
      .map-point span,.map-point strong { font-size:.64rem; }
      .map-sidebar .button { min-height:38px; margin-top:7px; padding:6px 9px; font-size:.65rem; }
      .map-disclaimer { margin-top:5px; font-size:.62rem; line-height:1.3; }

      .contact-grid { gap:12px; }
      .contact-copy h2 { font-size:2.35rem; }
      .contact-copy p { margin-top:8px; font-size:.78rem; line-height:1.35; }
      .contact-number { margin-top:7px; font-size:1.4rem; }
      .contact-form { padding:12px; }
      .contact-fields { grid-template-columns:1fr 1fr; gap:7px; }
      .contact-field--full { grid-column:1 / -1; }
      .contact-field label { margin-bottom:3px; font-size:.62rem; }
      .contact-field input,.contact-field select { min-height:38px; padding:6px 8px; font-size:.76rem; }
      .contact-field textarea { min-height:48px; padding:6px 8px; font-size:.76rem; }
      .contact-form .button { min-height:40px; margin-top:7px; padding:7px 9px; font-size:.65rem; }
      .form-status { min-height:12px; margin-top:3px; font-size:.65rem; }
      .contact .site-footer { padding:7px 0 max(7px,env(safe-area-inset-bottom)); }
      .contact .footer-top { grid-template-columns:1fr auto; gap:12px; padding-bottom:6px; }
      .contact .footer-lockup { width:145px; }
      .contact .developer-logo { width:105px; }
      .contact .footer-bottom { flex-direction:row; gap:10px; padding-top:5px; font-size:.52rem; line-height:1.2; }
    }

    @media (max-height:620px) {
      main { scroll-snap-type:none; overscroll-behavior-y:auto; }
      main > [data-scroll-stop] { height:auto; min-height:100svh; max-height:none; overflow:visible; }
    }

    @keyframes selection-reveal {
      from { opacity: .4; clip-path: inset(0 0 18% 0); }
      to { opacity: 1; clip-path: inset(0); }
    }
    @keyframes media-reveal {
      from { opacity: .35; filter: blur(5px); }
      to { opacity: 1; filter: blur(0); }
    }
    .selection-summary.is-updating { animation: selection-reveal .38s var(--ease); }

    @media (prefers-reduced-motion: reduce) {
      main { scroll-behavior:auto; }
      *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    }

.map-error { margin:0; padding:32px; color:var(--ivory); }
