/* 10-home.css */
*{box-sizing:border-box}
body{margin:0}
a{color:inherit;text-decoration:none}
button{color:inherit;font:inherit;cursor:pointer}
img{display:block;width:100%;height:auto}
figure{margin:0}
h1,h2,p{margin-top:0}
h2{font-family:var(--serif);font-weight:400;line-height:.98;letter-spacing:-.035em}
h2 em{font-weight:400}
[tabindex='-1']:focus{outline:none}
@font-face{font-family:Kora Serif;src:url('/assets/cormorant-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Kora Serif;src:url('/assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{--paper:#f4f0e7;--ink:#373d35;--kelp:#3d4944;--serif:'Kora Serif',Baskerville,Georgia,serif;--sans:Arial,Helvetica,sans-serif;--gutter:5.2vw}
html{background:var(--paper);scroll-padding-top:5rem;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:#c5ccbd;color:#26332b}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;padding:1rem;background:var(--paper);color:var(--ink);transform:translateY(-200%)}
.skip-link:focus{transform:none}
a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:6px}
.kora-header{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;z-index:20;padding:1.8rem var(--gutter);color:var(--paper);font-size:.875rem;letter-spacing:.025em}
.header-home{text-transform:uppercase;letter-spacing:.15em;font-size:.8125rem}
.chapter-nav{gap:2.4rem}
.kora-opening{position:relative;min-height:740px;height:100svh;max-height:1400px;isolation:isolate;overflow:hidden;color:var(--paper);background:#586461}
.opening-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% center;z-index:-2}
.kora-opening:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1d302d33,transparent 43%,#172a2b55)}
.kora-masthead{position:absolute;top:12%;left:0;width:100%;margin:0;text-align:center;font-family:var(--serif);font-weight:400;font-size:28vw;line-height:.83;letter-spacing:.025em;text-transform:uppercase}
.opening-foot{position:absolute;bottom:3rem;left:var(--gutter);right:var(--gutter);display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.opening-foot p{font-family:var(--serif);font-size:clamp(2rem,3.4vw,4.1rem);line-height:1;margin:0;max-width:35rem}
.opening-foot em{font-weight:400;display:block}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:3rem;min-height:44px;padding:0 0 .65rem;border-bottom:1px solid currentColor;font-size:.875rem;letter-spacing:.03em}
.text-link span{font-size:.75rem;opacity:.8}
.place-section{padding:8rem var(--gutter) 7rem;scroll-margin-top:1rem}
.chapter-label{display:flex;align-items:baseline;gap:1.7rem;margin:0 0 4.5rem;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase}
.chapter-label span{font-size:.75rem;letter-spacing:0;opacity:.65}
.place-section h2{font-family:var(--serif);font-size:clamp(4rem,8.1vw,9rem);line-height:.94;font-weight:400;letter-spacing:-.035em;margin:0 0 2rem 13.7%}
.place-section h2 em{font-weight:400}
.place-intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:end;margin:3rem 0 6rem 13.7%}
.small-note{font-family:var(--serif);font-style:italic;font-size:1.4rem}
.place-intro p{font-size:1rem;line-height:1.75;max-width:24rem;margin:0}
.architecture-plate{margin:0 0 0 13.7%}
.architecture-plate img{display:block;width:100%;height:auto}
.architecture-plate figcaption{display:flex;justify-content:space-between;gap:2rem;margin-top:1.25rem;font-size:.75rem;line-height:1.5}
@media(max-width:700px){
 :root{--gutter:6vw}
 .kora-header{padding-top:1.4rem}.chapter-nav{gap:1.25rem}
 .kora-opening{height:94svh;min-height:620px}.opening-image{object-position:36% center}
 .kora-masthead{top:19%;font-size:31vw;letter-spacing:0}
 .opening-foot{bottom:2rem;align-items:flex-start;flex-direction:column;gap:1.75rem}.opening-foot p{font-size:2.5rem}.text-link{min-width:10rem}
 .place-section{padding-top:5rem;padding-bottom:4rem}.chapter-label{margin-bottom:3.5rem}
 .place-section h2{font-size:clamp(3.4rem,12vw,5.5rem);margin-left:0}.place-intro{grid-template-columns:1fr;gap:2rem;margin:2.5rem 0 3rem}.place-intro p{max-width:27rem}
 .architecture-plate{margin:0 calc(-1 * var(--gutter))}.architecture-plate img{aspect-ratio:4/5;object-fit:cover;object-position:44% center}.architecture-plate figcaption{margin:1rem var(--gutter) 0}.architecture-plate figcaption span:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.kora-header{position:fixed;min-height:76px;gap:1.5rem;padding:1.1rem var(--gutter);transition:background .35s,color .35s,box-shadow .35s}
.header-home{display:flex;align-items:center;min-height:44px;text-transform:none;letter-spacing:0}
.header-descriptor{text-transform:uppercase;letter-spacing:.15em;font-size:.8125rem}
.header-brand{display:none;font-family:var(--serif);text-transform:uppercase;font-size:2.3rem;line-height:1;letter-spacing:.045em}
.chapter-nav{display:flex;align-items:center}
.chapter-nav a,.footer-top nav a{position:relative;padding:.75rem 0}
.chapter-nav a:after,.footer-top nav a:after{content:'';position:absolute;bottom:.35rem;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.chapter-nav a:hover:after,.chapter-nav a[aria-current]:after,.footer-top nav a:hover:after{transform:scaleX(1)}
.kora-header.is-scrolled{background:var(--paper);color:var(--ink);box-shadow:0 1px #373d351a}
.is-scrolled .header-descriptor{display:none}.is-scrolled .header-brand{display:block}
.menu-toggle{display:none;background:none;border:0;min-height:44px;padding:.5rem 0;font-size:.875rem}
.menu-toggle span{margin-left:1rem;font-size:1.3rem}
.opening-image{animation:opening-settle 12s cubic-bezier(.12,.4,.3,1) both}
.kora-opening:after{background:linear-gradient(180deg,#1d302d59,transparent 43%,#172a2b66)}
.kora-masthead{animation:title-arrive 1.25s ease-out both}
.text-link{transition:opacity .25s}.text-link:hover{opacity:.7}
.chapter-label{line-height:1.5}.body-copy{font-size:1rem;line-height:1.8;max-width:24rem}
.image-frame{overflow:hidden;background:#d7d5c8}
figcaption{font-size:.75rem;line-height:1.6;letter-spacing:.015em}
.residences-section{background:#e7e8df;padding:7rem 0 2rem}
.residences-intro{display:grid;grid-template-columns:1fr 1.65fr;gap:3rem;padding:0 var(--gutter) 5rem}
.residences-intro .chapter-label{padding-top:.8rem}
.residences-intro h2{font-size:clamp(3.5rem,6.7vw,7.5rem);margin-bottom:2.5rem}
.residences-intro .body-copy{max-width:26rem;margin-left:18%;margin-bottom:0}
.interior-plate img{width:100%;height:75svh;min-height:480px;max-height:1000px;object-fit:cover;object-position:50% center}
.interior-plate figcaption{display:flex;justify-content:space-between;gap:2rem;padding:1.4rem var(--gutter) 0}
.materials-section{display:grid;grid-template-columns:1fr 1fr;column-gap:13%;padding:8rem var(--gutter);background:var(--kelp);color:var(--paper)}
.materials-copy{grid-column:2;grid-row:1}.materials-copy .chapter-label{margin-bottom:3.3rem}
.materials-copy h2{font-size:clamp(4.5rem,8vw,9rem);line-height:.88;margin-bottom:3rem}
.materials-copy .body-copy{max-width:23rem;color:#e2e2d5}
.material-notes{margin:3rem 0 0}
.material-notes div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #f4f0e738;padding:1rem 0;font-size:.8125rem;line-height:1.5}
.material-notes dt{font-size:.875rem}.material-notes dd{margin:0;color:#dadfd3;text-align:right}
.material-plate{grid-column:1;grid-row:1;align-self:end;padding-bottom:1.5rem}
.material-plate figcaption{margin-top:1.25rem;color:#e2e2d5}
.rituals-section{display:grid;grid-template-columns:1fr 1.08fr;column-gap:11%;padding:9rem var(--gutter) 10rem}
.rituals-copy h2{font-size:clamp(4rem,6.8vw,7.6rem);margin-bottom:3rem}
.rituals-copy .body-copy{max-width:19rem;margin-left:14%;margin-bottom:0}
.rituals-note{font-family:var(--serif);font-size:1.8rem;margin:5rem 0 0 14%;line-height:1.3}
.rituals-plate{padding-top:6.5rem;align-self:center}.rituals-plate figcaption{margin-top:1.25rem}
.horizon-section{position:relative;isolation:isolate;overflow:hidden;height:85svh;min-height:650px;max-height:1100px;color:var(--paper);background:#56636a;padding:3rem var(--gutter)}
.horizon-section>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.horizon-section:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#23333359,#1d30331c 50%,#1c2c3280)}
.horizon-section h2{position:absolute;top:43%;left:var(--gutter);right:var(--gutter);transform:translateY(-50%);font-size:clamp(4.5rem,9vw,10rem);text-align:center;margin:0;line-height:.94}
.horizon-foot{position:absolute;bottom:3rem;left:var(--gutter);right:var(--gutter);display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.horizon-foot p{margin:0;font-family:var(--serif);font-size:1.6rem;line-height:1.2}
.kora-footer{padding:3rem var(--gutter) 1.5rem;background:var(--paper);overflow:hidden}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.875rem}
.footer-top p{font-size:.8125rem;text-transform:uppercase;letter-spacing:.13em;margin:0}
.footer-top nav{display:flex;gap:2rem}
.footer-wordmark{display:block;font-family:var(--serif);font-size:27vw;text-transform:uppercase;text-align:center;letter-spacing:.025em;line-height:1.04;margin:1.5rem 0 2rem}
.footer-bottom{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid #373d3540;padding-top:1.5rem;font-size:.75rem;line-height:1.5}
.chapter-menu{inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:1.25rem var(--gutter) 2rem;border:0;background:var(--paper);color:var(--ink);overflow-y:auto}
.chapter-menu[open]{display:flex;flex-direction:column}.chapter-menu::backdrop{background:#3d4944}
.menu-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8125rem;letter-spacing:.04em}
.menu-close{display:flex;align-items:center;gap:1rem;padding:.75rem 0;min-height:44px;border:0;background:none;font-size:.875rem}
.menu-close span{font-size:1.5rem}
.chapter-menu nav{display:flex;flex-direction:column;gap:1.35rem;margin:3rem 0}
.chapter-menu nav a{display:flex;align-items:baseline;gap:1.5rem;font-family:var(--serif);font-size:clamp(2.5rem,8vw,4.5rem);line-height:1.05}
.chapter-menu nav span{font-family:var(--sans);font-size:.75rem}
.menu-note{margin:auto 0 0;font-family:var(--serif);font-size:1.8rem}
.menu-is-open{overflow:hidden}
@keyframes opening-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
@keyframes title-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(min-width:1800px){.place-section,.materials-section,.rituals-section{padding-top:10rem;padding-bottom:10rem}.body-copy,.place-intro p{font-size:1.125rem}}
@media(max-width:1000px) and (min-width:701px){
 .materials-section{column-gap:7%}.materials-copy h2{font-size:6.5rem}.material-notes div{flex-direction:column;gap:.25rem}.material-notes dd{text-align:left}
 .rituals-section{column-gap:7%}.rituals-copy .body-copy,.rituals-note{margin-left:0}.residences-intro .body-copy{margin-left:0}
}
@media(max-width:700px){
 html{scroll-padding-top:5rem}
 .kora-header{padding-top:.75rem;padding-bottom:.75rem;min-height:68px;gap:1rem}.header-descriptor{font-size:.75rem;letter-spacing:.1em}
 .chapter-nav{gap:1rem;flex-wrap:wrap;justify-content:flex-end;font-size:.875rem}
 .residences-section{padding:4rem 0 1.5rem}.residences-intro{display:block;padding:0 var(--gutter) 3rem}.residences-intro .chapter-label{padding-top:0;margin-bottom:3rem}
 .residences-intro h2{font-size:clamp(3.25rem,11.5vw,5.25rem);margin-bottom:2rem}.residences-intro .body-copy{margin-left:0;max-width:27rem}
 .interior-plate img{height:70svh;min-height:430px;max-height:680px;object-position:55% center}.interior-plate figcaption{padding-top:1rem}.interior-plate figcaption span:last-child{display:none}
 .materials-section{display:flex;flex-direction:column;padding-top:4.5rem;padding-bottom:4rem;gap:3rem}.materials-copy .chapter-label{margin-bottom:3rem}.materials-copy h2{font-size:clamp(5rem,20vw,7rem);margin-bottom:2rem}
 .materials-copy .body-copy{max-width:27rem}.material-notes{margin-top:2rem}.material-notes div{gap:.75rem}.material-plate{width:100%;padding:0}.material-plate figcaption{margin-top:1rem}
 .rituals-section{display:flex;flex-direction:column;padding-top:5rem;padding-bottom:4rem;gap:3rem}.rituals-copy h2{font-size:clamp(3.5rem,13.5vw,6rem);margin-bottom:2rem}
 .rituals-copy .body-copy{margin-left:0;max-width:24rem}.rituals-note{margin:2rem 0 0;font-size:1.6rem}.rituals-plate{padding-top:0;width:100%}.rituals-plate figcaption{margin-top:1rem}
 .horizon-section{height:90svh;min-height:610px;padding-top:2rem}.horizon-section>img{object-position:35% center}.horizon-section h2{top:42%;font-size:clamp(4rem,15vw,6.5rem)}
 .horizon-foot{bottom:2rem;flex-direction:column;align-items:flex-start;gap:2rem}.horizon-foot p{font-size:1.5rem}
 .kora-footer{padding-top:2rem}.footer-top{align-items:flex-start;flex-direction:column;gap:1.5rem}.footer-top nav{gap:1.5rem;flex-wrap:wrap}.footer-wordmark{font-size:29vw;letter-spacing:0;margin:1.5rem 0;line-height:1.1}
 .footer-bottom{gap:1.2rem;flex-wrap:wrap;font-size:.75rem}.footer-bottom span:nth-child(2){display:none}.footer-bottom span:last-child{margin-left:auto}
}

/* 20-site.css */
/* Kora shared system for the six-route site. Home composition lives in 10-home.css. */
:root{
  --sea-paper:#e7e8df;--coastal-ground:#d8ddd4;--limestone:#d8ccb8;--sea-accent:#768a8d;
  --cream-text:#e2e2d5;--header-h:76px;
  --space:clamp(7rem,9.5vw,10rem);--space-sm:clamp(4rem,5.5vw,5rem);
  --col-gap:clamp(.75rem,1.6vw,2rem)
}
@media(max-width:700px){:root{--header-h:68px;--space:4.5rem;--space-sm:4rem}}

/* ---------- Header and navigation ---------- */
.kora-header.is-solid{background:var(--paper);color:var(--ink);box-shadow:0 1px #373d351a}
.is-solid .header-brand{display:block}
.chapter-nav a[aria-current]:after{transform:scaleX(1)}
.footer-top nav a[aria-current]:after{transform:scaleX(1)}
.chapter-menu nav a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
@media(max-width:1000px){
  .chapter-nav{gap:1.25rem;flex-wrap:wrap;justify-content:flex-end}
  .js .chapter-nav{display:none}
  .js .menu-toggle:not([hidden]){display:inline-flex;align-items:center}
}

/* ---------- Footer ---------- */
.footer-bottom{align-items:baseline}
.footer-return{border-bottom:1px solid currentColor;padding-bottom:.15rem;transition:opacity .25s}
.footer-return:hover{opacity:.7}
.footer-top nav{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){
  .footer-top nav{justify-content:flex-start;gap:.25rem 1.5rem}
  .footer-bottom .footer-return{margin-left:auto}
  .footer-bottom span:nth-child(3){margin-left:0}
}

/* ---------- Home additions: onward links ---------- */
.place-intro-copy .text-link{margin-top:2.5rem}
.chapter-link{margin:2.75rem 0 0}
.residences-intro .chapter-link{margin-left:18%}
.rituals-link{margin:3rem 0 0 14%}
.horizon-links{display:flex;align-items:flex-end;gap:2.5rem;flex-wrap:wrap}
.text-link.is-quiet{border-bottom-color:color-mix(in srgb,currentColor 50%,transparent)}
@media(max-width:1000px){.residences-intro .chapter-link,.rituals-link{margin-left:0}}
@media(max-width:700px){
  .chapter-link{margin-top:2.25rem}
  .rituals-link{margin-top:2.5rem}
  .horizon-links{flex-direction:column;align-items:flex-start;gap:1.25rem}
}

/* ---------- Primitives ---------- */
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);padding-inline:var(--gutter)}
.g12>*{grid-column:var(--c,1/-1);min-width:0}
.wrap{max-width:calc(1600px + 2 * var(--gutter));margin-inline:auto}
@media(min-width:701px) and (max-width:1000px){.g12>*{grid-column:var(--ct,var(--c,1/-1))}}
@media(max-width:700px){.g12{display:block}}
.focal{object-position:var(--fx,50%) var(--fy,50%)}
@media(max-width:700px){.focal{object-position:var(--mfx,50%) var(--mfy,50%)}}
.plate img{width:100%;height:auto}
.plate figcaption{margin-top:1.25rem}
.hero-image{animation:hero-settle 11s cubic-bezier(.12,.4,.3,1) both}
@keyframes hero-settle{from{transform:scale(1.025)}to{transform:scale(1)}}
.route-next{display:flex;flex-wrap:wrap;gap:1.25rem 2.75rem;margin-top:2.75rem}
.route-next .text-link:last-child{border-bottom-color:color-mix(in srgb,currentColor 50%,transparent)}

/* ---------- Inner-route typography ---------- */
.route-inner h1{font-family:var(--serif);font-weight:400;font-size:clamp(6rem,9vw,10rem);line-height:.92;letter-spacing:-.035em;margin:0}
.route-inner h1 em,.route-inner h2 em{font-weight:400}
.route-inner main h2{font-size:clamp(4rem,6.4vw,7rem);margin:0}
.route-inner .body-copy{max-width:27rem;font-size:1rem;line-height:1.75;margin:0}
.page-label{margin:0 0 1.5rem}
@media(min-width:1440px){.route-inner .body-copy{font-size:1.0625rem}}
@media(min-width:701px) and (max-width:1000px){
  .route-inner h1{font-size:clamp(4.75rem,10vw,6rem)}
  .route-inner main h2{font-size:clamp(3.25rem,7.4vw,4.5rem)}
}
@media(max-width:700px){
  .route-inner h1{font-size:clamp(3.25rem,14.5vw,4.75rem);line-height:.95}
  .route-inner main h2{font-size:clamp(2.625rem,11.5vw,3.75rem);line-height:1}
  .page-label{margin-bottom:1.25rem}
}

/* ---------- Full-bleed hero (used when the planned hero image exists) ---------- */
.hero-bleed{position:relative;isolation:isolate;overflow:hidden;height:88svh;min-height:640px;max-height:1200px;margin-top:var(--header-h);color:var(--paper);background:#586461}
.hero-bleed>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.hero-bleed:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(15deg,#16211fb3 0%,#16211f73 28%,transparent 58%)}
.hero-bleed-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:3.5rem}
@media(max-width:700px){.hero-bleed{height:78svh;min-height:560px}.hero-bleed-copy{bottom:2.25rem}}

/* ---------- Residences ---------- */
.r-open{padding:calc(var(--header-h) + 1.5rem) var(--gutter) 0}
.r-open-plate .image-frame{height:calc(100svh - var(--header-h) - 18.5rem);min-height:360px;max-height:880px}
.r-open-plate img{height:100%;object-fit:cover}
.r-open-foot{display:flex;flex-direction:column;padding-top:1rem}
.r-open-caption{order:-1;align-self:flex-end;margin:0 0 2.25rem;font-size:.75rem;line-height:1.6;letter-spacing:.015em}
.r-intro{padding-block:var(--space) 0}
.r-intro h2{margin:0}
.r-intro .body-copy{margin-top:3.5rem}
.r-plate{padding-block:var(--space)}
.r-threshold{background:var(--sea-paper);padding-block:var(--space)}
.r-threshold-copy{grid-column:2/12;display:grid;grid-template-columns:1.25fr 1fr;column-gap:5vw;align-items:end}
.r-threshold.has-image{background:var(--paper)}
.r-threshold.has-image .r-threshold-copy{grid-column:7/13;display:block;align-self:end;padding-bottom:5rem}
.r-threshold.has-image .r-threshold-copy .body-copy{margin-top:2.5rem}
.r-close{background:var(--kelp);color:var(--paper);padding-block:var(--space)}
.r-close.has-image{padding-top:0}
.r-dusk img{width:100%;height:80svh;min-height:520px;max-height:1000px;object-fit:cover}
.r-close.has-image .r-close-copy{padding-top:var(--space-sm)}
.r-close .body-copy{color:var(--cream-text)}
.r-close-copy{align-items:end;row-gap:3rem}
.r-close-foot{align-self:end}
@media(min-width:701px) and (max-width:1000px){
  .r-threshold-copy{grid-column:1/-1;column-gap:3rem}
  .r-threshold.has-image .r-threshold-copy{grid-column:7/13}
}
@media(max-width:700px){
  .r-open{padding-top:calc(var(--header-h) + 1rem)}
  .r-open-plate .image-frame{height:auto;min-height:0;aspect-ratio:4/5}
  .r-open-caption{align-self:flex-start;margin:0 0 2rem}
  .r-intro .body-copy{margin-top:2rem}
  .r-plate{padding-inline:0}
  .r-plate figcaption{padding-inline:var(--gutter);margin-top:1rem}
  .r-threshold-copy{display:block}
  .r-threshold-copy .body-copy,.r-threshold.has-image .r-threshold-copy .body-copy{margin-top:2rem}
  .r-threshold.has-image .r-threshold-copy{padding:2.5rem 0 0}
  .r-dusk img{height:62svh;min-height:420px}
  .r-close-foot{margin-top:2rem}
}

/* ---------- 404 ---------- */
.nf{padding-block:calc(var(--header-h) + var(--space)) var(--space);min-height:72svh;row-gap:3rem;align-content:end}
.nf-foot .text-link{margin-top:2rem}
@media(max-width:700px){.nf-foot{margin-top:2.5rem}}
@media(min-width:701px){.nowrap{white-space:nowrap}}
.route-inner h1,.route-inner main h2{overflow-wrap:break-word}

/* 25-residences-dusk.css */
/* Keep the approved dusk facade in frame on portrait tablets. */
@media (min-width: 701px) and (orientation: portrait) {
  .r-dusk img {
    object-position: var(--mfx, 50%) var(--mfy, 50%);
  }
}

/* 26-brand-film.css */
/* Brand film. Three ways in: the Film item in the header and chapter menu (every page), a
   "Watch the film" link under the home masthead, and a full-width film band after chapter 01
   with a muted highlight loop. All open one full-screen layer over a 50% scrim (Lumatama pattern).
   The film itself only loads when the layer opens. */

/* A. Home opening */
.opening-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 2.5rem}
.film-hero-link{justify-content:flex-start;gap:.7rem}
.film-hero-link span{margin-left:auto;padding-left:1.5rem}
.film-play-icon{flex:none;transform:translateY(-1px)}

/* B. Film band */
.film-band{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;height:80svh;min-height:540px;max-height:980px;color:var(--paper);background:#2f3a36}
.film-band-loop{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.film-band:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 55% 50% at 50% 52%,#16211f80 0%,#16211f4d 60%,#16211f33 100%)}
.film-band .chapter-label{position:absolute;top:3rem;left:var(--gutter);margin:0}
.film-band-play{display:grid;justify-items:center;gap:1.4rem;color:var(--paper);text-decoration:none;text-align:center}
.film-band-play:after{content:'';position:absolute;inset:0}
.film-band-circle{display:grid;place-items:center;width:6.5rem;height:6.5rem;border:1px solid var(--paper);border-radius:50%;transition:background-color .35s,color .35s,transform .35s}
.film-band-circle svg{transform:translateX(2px)}
.film-band-title{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(3rem,6.4vw,7rem);line-height:.95;letter-spacing:-.02em}
.film-band-meta{font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase}
.film-band-play:hover .film-band-circle,.film-band-play:focus-visible .film-band-circle{background:var(--paper);color:var(--ink);transform:scale(1.04)}
.film-band-play:focus-visible{outline:none}
.film-band-play:focus-visible .film-band-circle{outline:1px solid var(--paper);outline-offset:6px}

/* C. Header and chapter menu: the Film item reads as the others, with no extra weight. */
.menu-film span{letter-spacing:.04em}

/* Film layer */
.film-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--paper);overflow:hidden}
.film-dialog[open]{display:grid;place-items:center}
.film-dialog::backdrop{background:rgba(0,0,0,.5)}
.film-frame{position:relative;width:min(80vw,calc((100svh - 9rem) * 16 / 9))}
.film-video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.film-close{position:absolute;right:-7px;bottom:calc(100% + .35rem);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:none;color:var(--paper);cursor:pointer;transition:opacity .25s}
.film-close:hover{opacity:.7}
.film-close:focus-visible{outline:1px solid var(--paper);outline-offset:2px}
html.film-is-open{overflow:hidden}

@media(max-width:700px){
  .opening-actions{gap:.9rem 1.5rem}
  .film-band{height:72svh;min-height:460px}
  .film-band .chapter-label{top:2rem}
  .film-band-circle{width:5rem;height:5rem}
  .film-band-title{font-size:clamp(2.6rem,12vw,3.6rem)}
  .film-frame{width:calc(100vw - 2 * var(--gutter))}
}
@media(prefers-reduced-motion:reduce){.film-band-circle{transition:none}}

/* 27-bg-video.css */
/* Background loops laid over the approved stills by /bg-video.js. Hidden until playing. */
.bg-video{position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease;pointer-events:none}
.bg-video.is-playing{opacity:1}
.r-dusk,.c-horizon-plate .image-frame{position:relative}
.r-dusk .bg-video,.c-horizon-plate .bg-video{z-index:0}
@media(prefers-reduced-motion:reduce){.bg-video{display:none}}
/* The hero stills no longer run their slow settle zoom (scale 1.045 or 1.025 easing to 1 over
   11 to 12 s). With a loop laid over them the zoom reads as the frame drifting, and scaling a
   playing video every frame can shimmer. The loops carry the motion instead. */
.kora-opening .opening-image,.r-hero .hero-image{animation:none}

/* 30-pages.css */
/* Route compositions: Interiors, The Coast, The Vision, Enquire. */

/* Heading kept within quiet sky (Coast hero, when 14 exists). */
.hero-sky{height:80svh}
.hero-sky .hero-bleed-copy{top:3.5rem;bottom:auto}
.hero-sky{color:var(--ink)}
.hero-sky:after{background:linear-gradient(180deg,#f4f0e766,transparent 42%)}

/* ---------- Interiors ---------- */
.i-cover{padding-block:calc(var(--header-h) + var(--space-sm)) var(--space-sm);row-gap:0}
.route-interiors h1{font-size:clamp(6rem,10.4vw,10rem)}
.route-inner .i-cover-copy{grid-row:2;margin-top:-1.5rem;align-self:end}
.i-plate figcaption{padding:0 var(--gutter)}
.i-private{padding-block:var(--space);row-gap:4rem;align-items:start}
.i-private .body-copy{align-self:end}
.i-private.has-image .i-bedroom{grid-row:2}
.i-private.has-image .i-bathroom{grid-row:2;margin-top:clamp(8rem,22vw,22rem)}
.i-material{background:var(--kelp);color:var(--paper);padding-block:var(--space);row-gap:3rem;align-items:end}
.i-material .body-copy,.i-material figcaption{color:var(--cream-text)}
.i-material-copy h2{margin-bottom:2.5rem!important}
.i-still{grid-row:1 / span 2}
.i-detail{grid-row:2;margin-top:2rem}
.i-close{padding-block:var(--space)}
@media(min-width:701px) and (max-width:1000px){
  .route-inner .i-cover-copy{margin-top:3rem}
  .route-interiors h1{font-size:clamp(5rem,12vw,6.5rem)}
}
@media(max-width:700px){
  .route-interiors h1{font-size:clamp(3.75rem,18vw,5rem)}
  .route-inner .i-cover-copy{margin-top:2.5rem}
  .i-private .body-copy{margin-top:2rem}
  .i-private.has-image .i-bathroom{margin-top:3rem}
  .i-private.has-image .i-bedroom{margin-top:3rem}
  .i-material-copy{margin-top:3rem}
  .i-detail{max-width:70%;margin-top:3rem}
}

/* ---------- The Coast ---------- */
.c-open,.c-ground{background:var(--coastal-ground)}
.c-open{padding-block:calc(var(--header-h) + var(--space-sm)) 0}
.c-intro{padding-block:var(--space) 0;row-gap:2.5rem;align-items:end}
.c-intro.has-image .c-walk{margin-top:4rem}
.c-water-copy{padding-block:var(--space);row-gap:2.5rem;align-items:end}
.c-water-copy.has-image .c-water{grid-row:3;align-self:start;margin-top:3rem}
.c-water-copy.has-image .c-breakfast{grid-row:3;margin-top:clamp(8rem,16vw,16rem)}
.c-horizon-plate img{width:100%;height:85svh;min-height:520px;max-height:1100px;object-fit:cover}
.c-horizon-plate figcaption{padding:0 var(--gutter);margin:0;padding-block:1.25rem 3rem}
.c-close{padding-block:var(--space);align-items:end;row-gap:2rem}
.c-close-links .route-next{margin-top:0}
@media(max-width:700px){
  .c-intro .body-copy,.c-water-copy .body-copy{margin-top:2rem}
  .c-intro.has-image .c-walk,.c-water-copy.has-image .c-water,.c-water-copy.has-image .c-breakfast{margin-top:3rem}
  .c-horizon-plate img{height:auto;min-height:0;aspect-ratio:4/5}
  .c-close-links{margin-top:2.5rem}
}

/* ---------- The Vision ---------- */
.v-title{padding-block:calc(var(--header-h) + var(--space-sm)) var(--space);row-gap:var(--space-sm);align-items:start}
.route-inner .v-intro{margin-top:2.5rem}
.v-study{grid-row:2}
.v-statement{padding-block:0 var(--space)}
.v-statement h2{font-size:clamp(3.25rem,4.6vw,5rem)!important;margin:0 0 2rem!important}
.v-statement .chapter-label{margin-bottom:1.75rem}
.v-junction{background:var(--kelp);color:var(--paper);padding-block:var(--space);align-items:center}
.v-junction figcaption{color:var(--cream-text)}
.v-junction:not(.has-image) h2{text-align:center}
.v-proof{padding-block:var(--space);align-items:end}
.v-proof-links .route-next{margin-top:0}

@media(max-width:700px){
  .v-study{margin-top:3rem}
  .v-study.is-portrait{margin-top:3rem;max-width:78%}
  .v-junction .plate + h2{margin-top:3rem}
  .v-proof-plate{margin-top:3.5rem}
}

/* ---------- Enquire ---------- */
.e-page{padding-block:calc(var(--header-h) + var(--space-sm)) var(--space);align-items:start;row-gap:var(--space-sm)}
.route-inner .e-intro{margin-top:2.5rem}
.e-form-col{padding-top:.5rem}
.e-notice{margin:0 0 2.5rem;padding:1rem 0;border-block:1px solid #373d3540;font-size:.875rem;line-height:1.6}
.field{margin-bottom:1.75rem}
.field label{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem;line-height:1.5;margin-bottom:.4rem}
.field-req{font-size:.8125rem;opacity:.8}
.e-form input,.e-form select,.e-form textarea{display:block;width:100%;min-height:48px;padding:.7rem 0;border:0;border-bottom:1px solid #373d3573;border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:1rem;line-height:1.5}
.e-form textarea{resize:vertical;min-height:9rem;border:1px solid #373d3573;padding:.75rem}
.e-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:1.5rem}
.e-form input:focus-visible,.e-form select:focus-visible,.e-form textarea:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.e-form [aria-invalid="true"]{border-color:#8a3b2e}
.field-error{margin:.5rem 0 0;color:#8a3b2e;font-size:.875rem;line-height:1.5}
.field-hint{margin:.5rem 0 0;font-size:.8125rem;opacity:.75}
.e-submit,.e-edit{min-height:52px;padding:0 2rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:.9375rem;letter-spacing:.03em;transition:background .25s,color .25s}
.e-submit:hover,.e-edit:hover{background:transparent;color:var(--ink)}
.e-submit:disabled{opacity:.45;cursor:not-allowed}
.e-review{outline:none}
.e-review h2{font-size:clamp(2rem,2.8vw,2.75rem)!important;line-height:1.15!important;margin:0 0 2rem!important}
.e-review-list{margin:0 0 2.5rem}
.e-review-list div{display:grid;grid-template-columns:10rem 1fr;gap:1rem;padding:.9rem 0;border-top:1px solid #373d3533;font-size:.9375rem;line-height:1.6}
.e-review-list dt{opacity:.8}
.e-review-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.e-curtain{grid-row:2;margin-top:-4rem}
@media(max-width:700px){
  .e-form-col{margin-top:3rem}
  .e-review-list div{grid-template-columns:1fr;gap:.25rem}
  .e-curtain{margin-top:3.5rem;max-width:78%}
}
@media(min-width:1001px){
  .hero-sky .hero-bleed-copy{top:2.5rem}
  .hero-sky h1{font-size:clamp(6rem,7.4vw,9rem)}
  .hero-sky h1 br{display:none}
}
