/* Vesper & Oak · concept by Kaldrin Developments
   Rigor adapted from two reference systems: Bugatti (type trinity, weight 400 display,
   wide-tracked labels, 0px radius surfaces, pill buttons, hairlines, no shadows)
   and Airbnb (listing card anatomy, filter controls, modal gallery, reservation-style card). */

:root{
  --canvas:#0e1512;        /* cypress night, tinted toward the footage's oak greens */
  --canvas-2:#111a16;
  --panel:#17211c;
  --panel-2:#1d2923;
  --stone:#e7e4dc;         /* limestone, cool, never cream */
  --stone-2:#dcd8ce;
  --ink:#151d18;
  --ink-2:#4d5750;
  --text:#eeeae1;
  --text-2:#adb5aa;        /* moss silver */
  --accent:#c5d0b0;        /* spanish moss sage, CTA and focus only */
  --accent-hover:#d6e0c3;
  --accent-ink:#35503f;    /* palmetto, accent on stone */
  --vesper:#e2b48a;        /* the evening tint, used only by the sun */
  --line:rgba(238,234,225,.14);
  --line-strong:rgba(238,234,225,.38);
  --line-ink:rgba(21,29,24,.16);
  --line-ink-strong:rgba(21,29,24,.45);

  --f-display:"Gilda Display", "Times New Roman", serif;
  --f-body:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"DM Mono", ui-monospace, "Cascadia Mono", monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(20px,4vw,56px);
  --section:clamp(88px,11vw,160px);
  --maxw:1320px;
}

*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--text);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
dl,dd{margin:0}
fieldset{margin:0;padding:0;border:0;min-width:0}
legend{padding:0}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--accent);color:var(--ink);padding:10px 18px;border-radius:999px;font:500 14px var(--f-body);text-decoration:none;transition:top .25s var(--ease)}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
main:focus{outline:none}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}

/* one fixed environment layer: dappled light through oaks, whisper level, 90s drift */
.env{position:fixed;inset:-10%;z-index:-1;pointer-events:none;
  background:
   radial-gradient(40% 30% at 20% 30%, rgba(197,208,176,.045), transparent 70%),
   radial-gradient(35% 28% at 80% 70%, rgba(226,180,138,.03), transparent 70%),
   var(--canvas);
  animation:envdrift 90s linear infinite alternate;animation-delay:-30s}
@keyframes envdrift{to{transform:translate3d(4%,-3%,0) scale(1.06)}}

/* ---------- type atoms ---------- */
.label{font:400 11.5px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-2);display:flex;align-items:center;gap:12px}
.label .rule{display:inline-block;width:36px;height:1px;background:currentColor;opacity:.6}
.dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.7}
.kicker{font:400 12px/1.4 var(--f-mono);letter-spacing:.24em;text-transform:uppercase;display:flex;gap:12px;align-items:center}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 28px;border-radius:999px;font:400 12.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);white-space:nowrap}
.btn--sm{min-height:40px;padding:0 20px;font-size:11.5px}
.btn--solid{background:var(--accent);color:var(--ink)}
.btn--solid:hover{background:var(--accent-hover)}
.btn--line{border-color:var(--line-strong);color:var(--text);background:transparent}
.btn--line:hover{border-color:var(--text);background:rgba(238,234,225,.06)}
.btn--ink{background:var(--ink);color:var(--stone)}
.btn--ink:hover{background:var(--accent-ink)}
.btn:active{transform:scale(.98)}
.link-btn{background:none;border:0;padding:6px 0;font:400 12px/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:inherit;border-bottom:1px solid currentColor;transition:opacity .3s var(--ease)}
.link-btn:hover{opacity:.7}
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--text);transition:background-color .3s var(--ease),border-color .3s var(--ease)}
.icon-btn:hover{background:rgba(238,234,225,.08);border-color:var(--text)}
.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}

.chip{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;background:rgba(14,21,18,.82);border:1px solid var(--line);font:400 11.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.chip__label{color:var(--text-2)}
.chip__price{color:var(--accent)}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px;padding:0 var(--gutter);transition:background-color .45s var(--ease),border-color .45s var(--ease),height .45s var(--ease);border-bottom:1px solid transparent}
.nav.is-solid{background:rgba(14,21,18,.96);border-bottom-color:var(--line);height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.brand__mark{width:30px;height:30px;color:var(--accent)}
.brand__word{font:400 15px/1 var(--f-display);letter-spacing:.32em;text-transform:uppercase;white-space:nowrap}
.brand__word i{font-style:normal;color:var(--accent);letter-spacing:0;margin:0 .1em}
.nav__links{display:flex;gap:34px}
.nav__links a{font:400 11.5px/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--text);opacity:.86;position:relative;padding:8px 0;transition:opacity .3s var(--ease)}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__right{display:flex;align-items:center;gap:20px}
.nav__sun{display:flex;align-items:center;gap:9px;font:400 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
.sun-dot{width:7px;height:7px;border-radius:50%;background:var(--vesper);position:relative}
.sun-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--vesper);opacity:0;animation:sunring 5s var(--ease) infinite;animation-delay:-2s}
@keyframes sunring{0%{opacity:.7;transform:scale(.6)}70%,100%{opacity:0;transform:scale(1.6)}}
.nav__menu{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:50%;background:transparent;place-items:center}
.nav__bars,.nav__bars::before{display:block;width:16px;height:1px;background:var(--text);position:relative;transition:transform .35s var(--ease)}
.nav__bars::before{content:"";position:absolute;top:5px;left:0}
.nav__bars{transform:translateY(-3px)}
.nav__menu[aria-expanded="true"] .nav__bars{transform:translateY(0) rotate(45deg)}
.nav__menu[aria-expanded="true"] .nav__bars::before{transform:translateY(-5px) rotate(-90deg)}

.sheet{position:fixed;inset:0;z-index:35;background:var(--canvas);padding:110px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;transition:opacity .4s var(--ease)}
.sheet.is-open{opacity:1}
.sheet nav{display:flex;flex-direction:column}
.sheet nav a{font:400 34px/1.2 var(--f-display);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--line)}
.sheet__sun{font:400 12px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;max-height:1200px;overflow:hidden;background:#1a2018 url("../img/hero-poster.jpg") center/cover no-repeat}
.hero__media{position:absolute;inset:0}
.hero__video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease);transform:translateZ(0)}
.hero.video-ready .hero__video{opacity:1}
.hero__scrim{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(10,15,12,.5) 0%,rgba(10,15,12,0) 18%),
  linear-gradient(0deg,rgba(10,15,12,.9) 0%,rgba(10,15,12,.56) 36%,rgba(10,15,12,.12) 58%,rgba(10,15,12,0) 70%),
  linear-gradient(90deg,rgba(10,15,12,.62) 0%,rgba(10,15,12,.36) 34%,rgba(10,15,12,0) 58%)}
.hero__content{position:absolute;left:var(--gutter);bottom:clamp(56px,9vh,110px);max-width:min(940px,calc(100% - 2*var(--gutter) - 340px));z-index:2}
.hero__kicker{color:var(--text);opacity:.9;margin-bottom:26px}
.hero__title{font:400 clamp(44px,6.2vw,94px)/1.02 var(--f-display);letter-spacing:-.005em;margin-bottom:28px}
.hero__title .line{white-space:nowrap}
.hero__title .line{display:block;overflow:hidden;padding:.08em 0 .14em;margin:-.08em 0 -.14em}
.hero__title .line>span{display:inline-block}
.hero__sub{max-width:52ch;font-size:clamp(16px,1.25vw,18.5px);line-height:1.6;color:#dcd9d0;margin-bottom:36px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero__caption{position:absolute;right:var(--gutter);bottom:clamp(56px,9vh,110px);z-index:2;display:flex;align-items:center;gap:10px}
.hero__pause{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:rgba(14,21,18,.82);display:grid;place-items:center;transition:border-color .3s var(--ease)}
.hero__pause:hover{border-color:var(--text)}
.pause-ico{width:10px;height:12px;border-left:2px solid var(--text);border-right:2px solid var(--text)}
.hero__pause[aria-pressed="true"] .pause-ico{width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent var(--text);margin-left:3px}
.video-failed .hero__pause,.video-failed .hero__progress{display:none}
.hero__progress{position:absolute;left:0;right:50px;bottom:-14px;height:1px;background:var(--line)}
.hero__progress i{position:absolute;inset:0;background:var(--text);transform-origin:left;transform:scaleX(0)}

/* hero load choreography: once, on load, never on scroll */
.js .hero__kicker,.js .hero__sub,.js .hero__ctas,.js .hero__caption{opacity:0;transform:translateY(14px)}
.js .hero__title .line>span{transform:translateY(105%)}
.loaded .hero__kicker,.loaded .hero__sub,.loaded .hero__ctas,.loaded .hero__caption{opacity:1;transform:none;transition:opacity 1.1s var(--ease),transform 1.1s var(--ease-out)}
.loaded .hero__title .line>span{transform:none;transition:transform 1.3s var(--ease-out)}
.loaded .hero__kicker{transition-delay:.15s}
.loaded .hero__title .line:nth-child(1)>span{transition-delay:.3s}
.loaded .hero__title .line:nth-child(2)>span{transition-delay:.42s}
.loaded .hero__sub{transition-delay:.7s}
.loaded .hero__ctas{transition-delay:.85s}
.loaded .hero__caption{transition-delay:1.1s}

/* ---------- 01 intro ---------- */
.intro{padding:var(--section) 0}
.intro__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px}
.intro__label{grid-column:1/4;align-self:start;padding-top:14px}
.intro__body{grid-column:4/13}
.intro__statement{font:400 clamp(28px,3.1vw,46px)/1.24 var(--f-display);max-width:28em;color:var(--text)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:clamp(56px,6vw,88px);border-top:1px solid var(--line);padding-top:36px}
.pillar h3{font:400 11.5px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.pillar p{color:var(--text-2);font-size:16px;max-width:34ch}
.sunclock{margin:clamp(56px,6vw,80px) 0 0;display:flex;align-items:flex-end;gap:36px;padding:28px 32px;background:var(--panel);border:1px solid var(--line);max-width:760px}
.sunclock__svg{width:200px;flex:none;overflow:visible}
.sunclock__arc{fill:none;stroke:rgba(238,234,225,.5);stroke-width:1;stroke-dasharray:2 5}
.sunclock__arc--vesper{stroke:var(--vesper);stroke-dasharray:none;stroke-width:1.5;opacity:.9}
.sunclock__horizon{stroke:var(--text-2);stroke-width:1}
.sunclock__sun{fill:var(--vesper)}
.sunclock__cap{display:flex;flex-direction:column;gap:12px}
.sunclock__times{display:flex;flex-wrap:wrap;gap:8px 26px;font:400 12px/1.5 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.sunclock__times b{font-weight:400;color:var(--text);margin-left:4px}

/* ---------- 02 featured / day to dusk ---------- */
.featured{padding:0 0 var(--section);background:var(--canvas-2)}
.featured__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-top:clamp(72px,8vw,120px);padding-bottom:28px}
.featured__hint{font:400 12px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.dusk{position:relative;width:100%;aspect-ratio:1920/1072;max-height:90vh;overflow:hidden;background:#20302a;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize}
.dusk__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.dusk__top{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.dusk.is-anim .dusk__top{transition:clip-path .9s var(--ease-out)}
.dusk.is-anim .dusk__line{transition:left .9s var(--ease-out)}
.dusk__line{position:absolute;top:0;bottom:0;left:var(--pos);width:1px;background:rgba(238,234,225,.9);transform:translateX(-.5px);pointer-events:none}
.dusk__knob{position:absolute;top:50%;left:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:var(--canvas);border:1px solid rgba(238,234,225,.8);display:grid;place-items:center;transition:transform .35s var(--ease)}
.dusk__knob svg{width:20px;height:20px;fill:none;stroke:var(--text);stroke-width:1.4}
.dusk__knob::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(238,234,225,.55);animation:knob 4.5s var(--ease) infinite;animation-delay:-1s}
.dusk.touched .dusk__knob::after{animation:none;opacity:0}
.dusk:hover .dusk__knob,.dusk.dragging .dusk__knob{transform:scale(1.06)}
@keyframes knob{0%{opacity:.8;transform:scale(.85)}70%,100%{opacity:0;transform:scale(1.35)}}
.dusk__tag{position:absolute;bottom:22px;pointer-events:none}
.dusk__tag b{font-weight:400;color:var(--vesper)}
.dusk__tag--l{left:22px}
.dusk__tag--r{right:22px}
.dusk__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.dusk__range:focus-visible{opacity:0}
.dusk:has(.dusk__range:focus-visible){outline:2px solid var(--accent);outline-offset:4px}
.featured__panel{position:relative;z-index:2;margin-top:-96px;margin-left:clamp(0px,4vw,64px);width:min(760px,100%);background:var(--panel);border:1px solid var(--line);padding:clamp(28px,3.4vw,48px)}
.featured__titles{margin-bottom:18px}
.featured__titles .label{margin-bottom:12px}
.featured__title{font:400 clamp(38px,4.4vw,62px)/1.04 var(--f-display)}
.featured__text{color:var(--text-2);max-width:56ch;margin-bottom:28px}
.specs{display:grid;grid-template-columns:repeat(5,auto);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:30px}
.specs div{padding:16px 18px 16px 0}
.specs div+div{padding-left:18px;border-left:1px solid var(--line)}
.specs dt{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);margin-bottom:6px}
.specs dd{font:400 19px/1.2 var(--f-display);white-space:nowrap}
.featured__ctas{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- 03 residences (stone) ---------- */
.residences{background:var(--stone);color:var(--ink);padding:var(--section) 0}
.residences .label{color:var(--ink-2)}
.res__head{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end;gap:36px 56px;margin-bottom:40px}
.res__head>div{display:contents}
.res__head .label{grid-column:1/-1}
.res__title{grid-column:1/2}
.res__lede{grid-column:2/3;justify-self:end;align-self:end;margin-bottom:22px}
.filters{grid-column:1/-1}
.res__title{font:400 clamp(38px,4.6vw,66px)/1.04 var(--f-display);margin:0}
.res__lede{color:var(--ink-2);max-width:48ch}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 22px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label,.seg legend{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.field--select{position:relative}
.field select{appearance:none;-webkit-appearance:none;background:transparent;border:0;border-bottom:1px solid var(--line-ink-strong);border-radius:0;padding:10px 30px 10px 0;min-width:190px;height:46px;font:400 16px/1.2 var(--f-body);color:var(--ink);cursor:pointer;transition:border-color .3s var(--ease)}
.field--select::after{content:"";position:absolute;right:4px;bottom:19px;width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);pointer-events:none}
.field select:hover,.field select:focus{border-bottom-color:var(--ink)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg legend{width:100%;margin-bottom:8px;float:left}
.seg legend+label{clear:left}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid var(--line-ink-strong);border-radius:999px;font:400 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.seg label:hover span{border-color:var(--ink)}
.seg input:checked+span{background:var(--ink);color:var(--stone);border-color:var(--ink)}
.seg input:focus-visible+span{outline:2px solid var(--accent-ink);outline-offset:3px}
.res__bar{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line-ink);margin-bottom:36px}
.res__count{font:400 12px/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 32px}
.card{position:relative}
.card.is-hidden{display:none}
.card__btn{display:block;width:100%;text-align:left;background:none;border:0;padding:0;color:inherit;text-decoration:none}
.card__media{display:block;position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--stone-2);margin-bottom:20px}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out)}
.card__btn:hover .card__media img,.card__btn:focus-visible .card__media img{transform:scale(1.045)}
.card__tag{white-space:nowrap;position:absolute;left:14px;top:14px;padding:7px 12px;border-radius:999px;background:rgba(231,228,220,.94);color:var(--ink);font:400 10.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.card__view{position:absolute;right:14px;bottom:14px;padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--stone);font:400 10.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease-out)}
.card__btn:hover .card__view,.card__btn:focus-visible .card__view{opacity:1;transform:none}
.card__where{display:block;font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.card__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.card__name{font:400 27px/1.15 var(--f-display)}
.card__price{font:400 16px/1.2 var(--f-body);white-space:nowrap}
.card__facts{margin-top:10px;color:var(--ink-2);font-size:14.5px;display:flex;flex-wrap:wrap;gap:4px 14px}
.card__facts span+span::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;margin-right:14px;vertical-align:middle;opacity:.6}
.empty{padding:56px 0 8px;border-top:1px solid var(--line-ink);display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.empty p{font:400 24px/1.35 var(--f-display);max-width:32em}

/* ---------- 04 map ---------- */
.mapsec{padding:var(--section) 0;background:var(--canvas)}
.map__head{display:grid;grid-template-columns:repeat(12,1fr);gap:16px 24px;margin-bottom:clamp(40px,5vw,64px)}
.map__head .label{grid-column:1/-1}
.map__title{grid-column:1/9;font:400 clamp(36px,4.4vw,62px)/1.06 var(--f-display)}
.map__lede{grid-column:9/13;align-self:end;color:var(--text-2)}
.map__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px;align-items:stretch}
.map__frame{position:relative;background:var(--canvas-2);border:1px solid var(--line);padding:clamp(10px,1.6vw,22px)}
.map__svg{width:100%;height:auto;overflow:visible}
.map__note{position:absolute;left:22px;top:18px;font:400 10.5px/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.map__grid-lines path{stroke:rgba(238,234,225,.05);stroke-width:1;fill:none}
.map__lakes path{fill:#1b2c2a;stroke:rgba(173,197,190,.42);stroke-width:1.1;stroke-linejoin:round}
.hatch{stroke:rgba(173,197,190,.18);stroke-width:1}
.road{fill:none;stroke:rgba(238,234,225,.16);stroke-width:1;stroke-dasharray:1 5;stroke-linecap:round}
.road--main{stroke:rgba(238,234,225,.32);stroke-width:1.4;stroke-dasharray:6 6}
.lake-label{font:italic 400 13px var(--f-display);fill:rgba(173,197,190,.7);text-anchor:middle}
.city-label{font:400 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;fill:var(--text-2);text-anchor:middle}
.city-dot{fill:var(--text-2)}
.road-label{font:400 10px var(--f-mono);letter-spacing:.12em;fill:rgba(238,234,225,.45)}
.compass-ring{fill:none;stroke:var(--line-strong)}
.compass-n{fill:var(--text-2)}
.compass-t{font:400 10px var(--f-mono);fill:var(--text-2);text-anchor:middle}
.map__scale path{stroke:var(--text-2);fill:none}
.map__scale text{font:400 10px var(--f-mono);fill:var(--text-2);letter-spacing:.08em}
.pin{cursor:pointer;outline:none}
.pin__hit{fill:transparent}
.pin__ring{fill:none;stroke:var(--accent);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .4s var(--ease),transform .5s var(--ease-out);transform:scale(.4)}
.pin__dot{fill:var(--text);transition:fill .3s var(--ease)}
.pin__label{font:400 11px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;fill:var(--text);paint-order:stroke;stroke:var(--canvas-2);stroke-width:5px;stroke-linejoin:round;transition:fill .3s var(--ease)}
.pin__count{font:400 10px var(--f-mono);fill:var(--text-2);paint-order:stroke;stroke:var(--canvas-2);stroke-width:5px}
.pin--quiet .pin__dot{fill:var(--text-2)}
.pin:hover .pin__ring,.pin:focus-visible .pin__ring{opacity:.7;transform:scale(1)}
.pin.is-active .pin__ring{opacity:1;transform:scale(1)}
.pin.is-active .pin__dot,.pin:hover .pin__dot{fill:var(--accent)}
.pin.is-active .pin__label{fill:var(--accent)}
.pin:focus-visible .pin__label{text-decoration:underline}
.pin.is-active .pin__pulse{animation:pinpulse 3.6s var(--ease) infinite}
.pin__pulse{fill:none;stroke:var(--accent);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
@keyframes pinpulse{0%{opacity:.7;transform:scale(1)}80%,100%{opacity:0;transform:scale(2.6)}}

.map__panel{background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;min-height:100%}
.hoods{display:flex;flex-wrap:wrap;gap:6px;padding:22px 22px 18px;border-bottom:1px solid var(--line)}
.hoods button{min-height:36px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:transparent;font:400 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);transition:color .3s var(--ease),border-color .3s var(--ease),background-color .3s var(--ease)}
.hoods button:hover{color:var(--text);border-color:var(--line-strong)}
.hoods button[aria-selected="true"]{background:var(--text);color:var(--canvas);border-color:var(--text)}
.hood{padding:28px 28px 30px;display:flex;flex-direction:column;gap:18px;flex:1}
.hood.swap>*{animation:hoodin .6s var(--ease-out) both}
.hood.swap>*:nth-child(2){animation-delay:.05s}
.hood.swap>*:nth-child(3){animation-delay:.1s}
.hood.swap>*:nth-child(4){animation-delay:.15s}
.hood.swap>*:nth-child(5){animation-delay:.2s}
@keyframes hoodin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hood__name{font:400 clamp(32px,3vw,44px)/1.05 var(--f-display)}
.hood__meta{font:400 11px/1.5 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.hood__blurb{color:var(--text-2);max-width:46ch}
.hood__pick{text-decoration:none;display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center;background:none;border:0;border-top:1px solid var(--line);padding:18px 0 0;text-align:left;color:inherit;width:100%}
.hood__pick img{width:112px;height:84px;object-fit:cover;transition:opacity .3s var(--ease)}
.hood__pick:hover img{opacity:.85}
.hood__pick b{display:block;font:400 21px/1.2 var(--f-display);font-weight:400}
.hood__pick small{font:400 10.5px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.hood__actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:12px;padding-top:6px}

/* ---------- 05 showing ---------- */
.showing{display:grid;grid-template-columns:1fr 1fr;background:var(--stone);color:var(--ink);min-height:100vh}
.showing__media{position:relative;overflow:hidden;background:#2a2017}
.showing__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% center}
.showing__panel{display:flex;align-items:center;padding:var(--section) var(--gutter)}
.showing__inner{width:100%;max-width:560px}
.showing .label{color:var(--ink-2)}
.showing__title{font:400 clamp(34px,3.8vw,54px)/1.08 var(--f-display);margin:18px 0 16px}
.showing__lede{color:var(--ink-2);margin-bottom:36px;max-width:44ch}
.form{display:flex;flex-direction:column;gap:26px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.field input,.field textarea{background:transparent;border:0;border-bottom:1px solid var(--line-ink-strong);border-radius:0;padding:10px 0;font:400 17px/1.4 var(--f-body);color:var(--ink);width:100%;transition:border-color .3s var(--ease)}
.field textarea{resize:vertical;min-height:84px}
.field input:focus,.field textarea:focus,.form .field select:focus{outline:none;border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink)}
.form .field select{min-width:0;width:100%}
.field input[type="date"]{min-height:46px}
.field.has-err input,.field.has-err select{border-bottom-color:#8c2f1e}
.field__err{font:400 12px/1.3 var(--f-body);color:#8c2f1e;min-height:0}
.field__err:empty{display:none}
.opt{text-transform:none;letter-spacing:.04em}
.seg--form span{min-height:44px}
.form__foot{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:6px}
.form__fine{font:400 11px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.done{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:36px 0 0;border-top:1px solid var(--line-ink);outline:none}
.done__mark{width:56px;height:56px;fill:none;stroke:var(--accent-ink);stroke-width:2.2}
.done__mark path{stroke-dasharray:140;stroke-dashoffset:140;animation:draw 1.6s var(--ease-out) forwards}
.done__mark path+path{animation-delay:.35s}
@keyframes draw{to{stroke-dashoffset:0}}
.done__title{font:400 clamp(30px,3vw,42px)/1.1 var(--f-display)}
.done__text{font-size:18px;max-width:44ch}
.done__honest{color:var(--ink-2);font-size:15px;max-width:48ch;padding:14px 16px;background:var(--stone-2)}
.link-btn--ink{color:var(--ink)}

/* ---------- footer ---------- */
.foot{padding:clamp(72px,8vw,110px) 0 40px;background:var(--canvas);border-top:1px solid var(--line)}
.foot__top{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:48px;border-bottom:1px solid var(--line)}
.brand--foot .brand__word{font-size:20px}
.brand--foot .brand__mark{width:38px;height:38px}
.foot__tag{font:italic 400 20px/1.3 var(--f-display);color:var(--text-2)}
.foot__cols{display:grid;grid-template-columns:1fr 1fr 1.5fr 1.2fr;gap:40px;padding:48px 0}
.foot__cols .label{margin-bottom:18px}
.foot__cols li{margin-bottom:10px}
.foot__cols a{text-decoration:none;color:var(--text);opacity:.85;transition:opacity .3s var(--ease)}
.foot__cols a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.foot__hoods{columns:2;column-gap:24px}
.foot__addr{color:var(--text-2);line-height:1.8}
.foot__disclose{border-top:1px solid var(--line);padding-top:32px;display:flex;flex-direction:column;gap:14px}
.foot__disclose p{color:var(--text-2);font-size:14.5px;max-width:90ch}
.foot__disclose strong{color:var(--text);font-weight:500}
.foot__disclose a{color:var(--accent)}
.foot__legal{font:400 11px/1.4 var(--f-mono)!important;letter-spacing:.12em;text-transform:uppercase}

/* ---------- modal ---------- */
.modal{padding:0;border:0;background:transparent;color:var(--text);max-width:none;max-height:none;width:100%;height:100%;margin:0;overflow:hidden}
.modal::backdrop{background:rgba(8,12,10,.72);opacity:0;transition:opacity .45s var(--ease)}
.modal.is-open::backdrop{opacity:1}
.modal__inner{position:absolute;inset:clamp(0px,3vh,40px) clamp(0px,3vw,48px);max-width:1360px;margin:0 auto;background:var(--canvas);border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);overflow:hidden;opacity:0;transform:translateY(24px);transition:opacity .45s var(--ease),transform .55s var(--ease-out)}
.modal.is-open .modal__inner{opacity:1;transform:none}
.modal__close{position:absolute;top:16px;right:16px;z-index:3;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:rgba(14,21,18,.9);display:grid;place-items:center;transition:border-color .3s var(--ease),transform .4s var(--ease)}
.modal__close:hover{border-color:var(--text);transform:rotate(90deg)}
.modal__close span,.modal__close span::before{display:block;width:16px;height:1px;background:var(--text);transform:rotate(45deg)}
.modal__close span::before{content:"";transform:rotate(-90deg)}
.modal__gallery{display:flex;flex-direction:column;min-height:0;background:#0a0f0d;border-right:1px solid var(--line)}
.modal__main{position:relative;flex:1;min-height:0;border:0;padding:0;background:#0a0f0d;cursor:zoom-in;overflow:hidden}
.modal__main img{width:100%;height:100%;object-fit:cover;transition:opacity .45s var(--ease)}
.modal__main img.is-swapping{opacity:0}
.modal__expand{position:absolute;right:16px;bottom:16px;width:40px;height:40px;border-radius:50%;background:rgba(14,21,18,.88);border:1px solid var(--line-strong);display:grid;place-items:center}
.modal__expand svg{width:16px;height:16px;fill:none;stroke:var(--text);stroke-width:1.5}
.modal__nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 0}
.modal__count{font:400 11px/1 var(--f-mono);letter-spacing:.16em;color:var(--text-2)}
.thumbs{display:flex;gap:8px;padding:12px 16px 16px;overflow-x:auto;scrollbar-width:thin}
.thumbs button{flex:none;width:96px;height:64px;padding:0;border:1px solid transparent;background:none;opacity:.55;transition:opacity .3s var(--ease),border-color .3s var(--ease)}
.thumbs button:hover{opacity:.85}
.thumbs button[aria-current="true"]{opacity:1;border-color:var(--text)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.modal__info{overflow-y:auto;padding:clamp(28px,3vw,48px);padding-top:clamp(48px,5vw,64px);overscroll-behavior:contain}
.modal__title{font:400 clamp(36px,3.6vw,54px)/1.04 var(--f-display);margin:14px 0 10px}
.modal__price{font:400 22px/1.2 var(--f-body);color:var(--accent);margin-bottom:24px}
.specs--modal{grid-template-columns:repeat(4,auto);margin-bottom:26px}
.specs--modal dd{font-size:18px}
.modal__desc{color:var(--text-2);margin-bottom:22px}
.modal__feats{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:34px}
.modal__feats li{font-size:15px;padding-left:18px;position:relative;color:var(--text)}
.modal__feats li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:var(--accent)}
.calc{background:var(--panel);border:1px solid var(--line);padding:24px 24px 20px;margin-bottom:28px}
.calc__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.calc__title{font:400 11.5px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-2)}
.calc__total{font:400 34px/1 var(--f-display);display:flex;align-items:baseline;gap:8px}
.calc__total small{font:400 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.calc__field{margin-bottom:18px}
.calc__row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.calc__row label{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2)}
.calc__row output{font:400 15px/1 var(--f-body)}
.calc input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0;--fill:30%}
.calc input[type="range"]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(90deg,var(--accent) var(--fill),var(--line-strong) var(--fill))}
.calc input[type="range"]::-moz-range-track{height:1px;background:var(--line-strong)}
.calc input[type="range"]::-moz-range-progress{height:1px;background:var(--accent)}
.calc input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--text);border:0;margin-top:-8.5px;transition:transform .25s var(--ease)}
.calc input[type="range"]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--text);border:0}
.calc input[type="range"]:active::-webkit-slider-thumb{transform:scale(1.2)}
.seg--small legend{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2)}
.seg--small span{min-height:38px;padding:0 14px;border-color:var(--line-strong);font-size:10.5px}
.seg--small label:hover span{border-color:var(--text)}
.seg--small input:checked+span{background:var(--text);color:var(--canvas);border-color:var(--text)}
.seg--small input:focus-visible+span{outline-color:var(--accent)}
.calc__break{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}
.calc__break div{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;font-size:14.5px}
.calc__break dt{color:var(--text-2)}
.calc__fine{margin-top:12px;font-size:12.5px;color:var(--text-2)}
.modal__ctas{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- lightbox ---------- */
.lightbox{padding:0;border:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;background:rgba(6,9,8,.97);color:var(--text);opacity:0;transition:opacity .4s var(--ease)}
.lightbox.is-open{opacity:1}
.lightbox::backdrop{background:transparent}
.lb__fig{position:absolute;inset:64px 84px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;touch-action:pan-y}
.lb__fig img{max-width:100%;max-height:calc(100% - 40px);object-fit:contain;transition:opacity .35s var(--ease)}
.lb__fig img.is-swapping{opacity:0}
.lb__cap{display:flex;gap:24px;font:400 11px/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2)}
.lb__btn{position:absolute;top:50%;margin-top:-22px;background:rgba(14,21,18,.85)}
.lb__prev{left:24px}
.lb__next{right:24px}
.lb__close{top:20px;right:20px}

html.locked{overflow:hidden}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav__links,.nav__cta{display:none}
  .nav__menu{display:grid}
  .nav__sun{display:none}
  .grid{grid-template-columns:repeat(2,1fr)}
  .res__head{grid-template-columns:1fr}
  .res__title,.res__lede{grid-column:1/-1;justify-self:start}
  .res__lede{margin-bottom:0}
}
@media (max-width:1180px) and (min-width:721px){
  .hero__content{max-width:calc(100% - 2*var(--gutter))}
  .hero__caption{bottom:auto;top:96px}
  .hero__progress{bottom:-12px}
  .featured__panel .specs{grid-template-columns:repeat(3,1fr)}
  .featured__panel .specs div:nth-child(4){padding-left:0;border-left:0}
  .featured__panel .specs div:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:960px){
  .intro__label{grid-column:1/-1;margin-bottom:28px;padding-top:0}
  .intro__body{grid-column:1/-1}
  .map__grid{grid-template-columns:minmax(0,1fr)}
  .map__title{grid-column:1/-1}
  .map__lede{grid-column:1/-1}
  .showing{grid-template-columns:1fr;min-height:0}
  .showing__media{aspect-ratio:16/10}
  .modal__inner{display:block;overflow-y:auto;overflow-x:hidden;inset:0;border:0;overscroll-behavior:contain}
  .modal__gallery{min-height:auto}
  .modal__gallery{border-right:0;border-bottom:1px solid var(--line)}
  .modal__main{flex:none;aspect-ratio:3/2}
  .modal__info{overflow:visible}
  .featured__panel{margin-top:-56px;margin-left:0}
  .dusk__tag{bottom:auto;top:16px}
}
@media (max-width:720px){
  body{font-size:16px}
  .nav{height:64px}
  .brand__word{font-size:13px;letter-spacing:.26em}
  /* mobile hero: film on top, words on a solid panel below; no text over moving footage */
  .hero{height:auto;min-height:0;max-height:none;display:flex;flex-direction:column;background:var(--canvas)}
  .hero__media{position:relative;inset:auto;aspect-ratio:720/774;width:100%;background:#1a2018 url("../img/hero-poster-m.jpg") center/cover no-repeat}
  .hero__scrim{bottom:auto;height:calc(100vw * 774/720);background:linear-gradient(180deg,rgba(10,15,12,.6) 0%,rgba(10,15,12,0) 24%,rgba(10,15,12,0) 78%,rgba(14,21,18,1) 100%)}
  .hero__content{position:relative;left:auto;bottom:auto;max-width:none;padding:6px var(--gutter) 0;margin-top:-22px}
  .hero__title .line{white-space:normal;display:inline;overflow:visible;padding:0;margin:0}
  .js .hero__title .line>span{transform:none;display:inline}
  .js .hero__title{opacity:0;transform:translateY(14px)}
  .loaded .hero__title{opacity:1;transform:none;transition:opacity 1.1s var(--ease) .3s,transform 1.1s var(--ease-out) .3s}
  .hero__caption{flex-wrap:nowrap}
  .hero__caption .chip{flex:1;min-width:0;justify-content:space-between}
  .hero__caption .chip__label{display:none}
  .hero__pause{flex:none}
  .map__note{position:static;margin-top:10px}
  .pin__label,.pin__count,.lake-label,.city-label,.road-label,.map__scale{display:none}
  .pin.is-active .pin__label{display:block;font-size:26px;stroke-width:9px}
  .pin__dot{transform-box:fill-box;transform-origin:center;transform:scale(1.7)}
  .pin__ring{stroke-width:2}
  .hero__kicker{margin-bottom:18px;font-size:11px;letter-spacing:.2em}
  .hero__title{font-size:clamp(40px,11.4vw,54px);margin-bottom:20px}
  .hero__sub{margin-bottom:28px}
  .hero__ctas .btn{flex:1 1 100%}
  .hero__caption{position:relative;right:auto;bottom:auto;padding:28px var(--gutter) 56px;justify-content:space-between;flex-wrap:wrap}
  .hero__caption .chip{font-size:10.5px;padding:9px 13px}
  .hero__progress{left:var(--gutter);right:var(--gutter);bottom:36px}
  .pillars{grid-template-columns:1fr;gap:26px}
  .sunclock{flex-direction:column;align-items:flex-start;gap:20px;padding:24px}
  .featured__head{flex-direction:column;align-items:flex-start;gap:14px}
  .dusk{aspect-ratio:4/3.4}
  .dusk__img{object-position:50% 50%}
  .dusk__knob{width:50px;height:50px;margin:-25px 0 0 -25px}
  .dusk__tag{top:auto;bottom:14px;font-size:10px;padding:8px 12px}
  .dusk__tag--l{left:12px}.dusk__tag--r{right:12px}
  .featured__panel{margin-top:0;border-left:0;border-right:0;margin-left:calc(-1*var(--gutter));width:calc(100% + 2*var(--gutter))}
  .specs{grid-template-columns:repeat(2,1fr)}
  .specs div,.specs div+div{padding:14px 12px 14px 0;border-left:0;border-top:1px solid var(--line)}
  .specs div:first-child{grid-column:1/-1;border-top:0}
  .specs div:nth-child(3),.specs div:nth-child(5){padding-left:14px;border-left:1px solid var(--line)}
  .featured__ctas .btn{flex:1 1 100%}
  .filters{flex-direction:column;align-items:stretch}
  .field select{min-width:0;width:100%}
  .seg span{padding:0 15px}
  .grid{grid-template-columns:1fr;gap:44px}
  .form__row{grid-template-columns:1fr}
  .foot__cols{grid-template-columns:1fr;gap:32px}
  .modal__feats{grid-template-columns:1fr}
  .specs--modal div:first-child{grid-column:auto}
  .specs--modal div:nth-child(-n+2){border-top:0}
  .specs--modal div:nth-child(3),.specs--modal div:nth-child(5){padding-left:0;border-left:0}
  .specs--modal div:nth-child(even){padding-left:14px;border-left:1px solid var(--line)}
  .lb__fig{inset:64px 12px 90px}
  .lb__btn{top:auto;bottom:22px;margin-top:0}
  .lb__prev{left:calc(50% - 56px)}.lb__next{right:calc(50% - 56px)}
  .hood{padding:24px 20px}
  .hoods{padding:18px 16px 14px}
}
@media (max-height:560px) and (min-width:721px){
  .hero__caption{display:none}
}
@media (pointer:coarse){
  .btn{min-height:48px}
  .hoods button{min-height:44px}
  .icon-btn{width:48px;height:48px}
  .card__view{opacity:1;transform:none}
}

/* paused tab / offscreen: nothing loops when unseen */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* reduced motion: final states, no loops, no film */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .js .hero__kicker,.js .hero__sub,.js .hero__ctas,.js .hero__caption{opacity:1;transform:none}
  .js .hero__title .line>span{transform:none}
  .js .hero__title{opacity:1;transform:none}
  .hero__video{display:none}
  .hero__pause,.hero__progress{display:none}
  .env{transform:none}
  .done__mark path{stroke-dashoffset:0}
}

/* =====================================================================
   Multi-page additions (round two). Same tokens, same restraint.
   ===================================================================== */

/* ---------- shared ---------- */
.page-top{position:absolute;top:0;left:0;width:1px;height:40px;pointer-events:none}
.nav__links{gap:clamp(20px,2vw,30px)}
.nav__links a{white-space:nowrap}
.nav__links a[aria-current="page"]{opacity:1}
@media (max-width:1400px){.nav__sun{display:none}}
.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.arr{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .45s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.btn--line-ink{border-color:var(--line-ink-strong);color:var(--ink);background:transparent}
.btn--line-ink:hover{border-color:var(--ink);background:rgba(21,29,24,.04)}
.lp-h2{font:400 clamp(32px,3.6vw,52px)/1.08 var(--f-display)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:400 11px/1.4 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);margin-bottom:26px}
.crumbs a{text-decoration:none;color:var(--text-2);transition:color .3s var(--ease)}
.crumbs a:hover{color:var(--text)}
.crumbs [aria-current]{color:var(--text)}
.crumbs span[aria-hidden]{opacity:.5}

/* stone sections */
.lp-plan,.lp-more,.gnotes,.glist,.guides,.tonight,.steps,.valuation,.journal,.access,.studio,.contact__form{background:var(--stone);color:var(--ink)}
:is(.lp-plan,.lp-more,.gnotes,.glist,.guides,.tonight,.steps,.valuation,.journal,.access,.studio,.contact__form) .label{color:var(--ink-2)}

/* ---------- mobile sheet, refined ---------- */
.sheet{padding:92px var(--gutter) calc(28px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
.sheet__nav{display:flex;flex-direction:column}
.sheet .sheet__nav a{display:flex;align-items:baseline;gap:18px;font:400 clamp(28px,7.4vw,40px)/1.15 var(--f-display);text-decoration:none;padding:13px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .7s var(--ease-out)}
.sheet.is-open .sheet__nav a{opacity:1;transform:none}
.sheet.is-open .sheet__nav a:nth-child(2){transition-delay:.04s}
.sheet.is-open .sheet__nav a:nth-child(3){transition-delay:.08s}
.sheet.is-open .sheet__nav a:nth-child(4){transition-delay:.12s}
.sheet.is-open .sheet__nav a:nth-child(5){transition-delay:.16s}
.sheet.is-open .sheet__nav a:nth-child(6){transition-delay:.2s}
.sheet.is-open .sheet__nav a:nth-child(7){transition-delay:.24s}
.sheet__n{font:400 11px/1 var(--f-mono);letter-spacing:.2em;color:var(--text-2);min-width:2.4em;transform:translateY(-4px)}
.sheet__nav a[aria-current="page"] .sheet__t{color:var(--accent)}
.sheet__nav a[aria-current="page"]::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:auto;align-self:center}
.sheet__foot{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:30px;opacity:0;transition:opacity .6s var(--ease) .25s}
.sheet.is-open .sheet__foot{opacity:1}
.sheet__addr{font:400 12px/1.5 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}

/* ---------- page header ---------- */
.phead{padding-top:calc(72px + clamp(48px,7vw,104px));padding-bottom:clamp(44px,5vw,72px)}
.phead .label{margin-bottom:22px}
.phead__title{font:400 clamp(42px,5.6vw,84px)/1.04 var(--f-display);max-width:16em}
.phead__title--xl{font-size:clamp(52px,8.4vw,132px);line-height:1}
.phead__lede{color:var(--text-2);max-width:56ch;margin-top:24px;font-size:clamp(16.5px,1.2vw,18.5px)}
.phead .btn{margin-top:32px}
.intro__more{margin-top:34px}

/* ---------- residences index ---------- */
.residences--index{padding-top:clamp(48px,5vw,72px)}
.res__tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 40px;margin-bottom:32px}
.res__tools .filters{flex:1 1 auto}
.seg--light span{gap:9px}
.li-sun,.li-moon{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid currentColor}
.li-sun{background:currentColor}
.li-moon{background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.card__media .card__dusk{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease),transform 1.6s var(--ease-out)}
.grid.is-vesper .card__dusk{opacity:1}
.res__more{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 32px;margin-top:64px;padding-top:28px;border-top:1px solid var(--line-ink);color:var(--ink-2)}
.empty__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.teaser{padding:var(--section) 0;background:var(--canvas)}
.teaser__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px 56px;align-items:end}
.teaser__title{font:400 clamp(34px,4vw,58px)/1.06 var(--f-display);margin-top:18px}
.teaser__body p{color:var(--text-2);margin-bottom:28px;max-width:46ch}

/* ---------- listing page ---------- */
.lp-head{padding-top:calc(72px + clamp(36px,4vw,56px))}
.lp-head__row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px 32px}
.lp-head .label{margin-bottom:14px}
.lp-title{font:400 clamp(44px,5.4vw,82px)/1.02 var(--f-display)}
.lp-head__price{font:400 clamp(20px,1.8vw,26px)/1.2 var(--f-body);color:var(--accent);padding-bottom:8px}
.lp-gallery{position:relative;margin-top:clamp(28px,3vw,40px)}
.mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,clamp(170px,17.5vw,268px));gap:8px}
.mosaic__item{position:relative;overflow:hidden;border:0;padding:0;background:var(--panel);cursor:zoom-in;display:block}
.mosaic__item:first-child{grid-row:1/3}
.mosaic__item:nth-child(n+6){display:none}
.mosaic__item:nth-child(4):last-child{grid-column:2/4}
.mosaic__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out),opacity .4s var(--ease)}
.mosaic__item:hover img{transform:scale(1.035);opacity:.92}
.mosaic__all{position:absolute;right:calc(var(--gutter) + 18px);bottom:18px;background:rgba(14,21,18,.88)}
.mosaic__all svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3}
.mosaic__count{display:none}
.lp-main{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4.2fr);gap:clamp(40px,5vw,80px);padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(64px,7vw,104px);align-items:start}
.specs--lp{grid-template-columns:repeat(5,auto);margin-bottom:0}
.lp-lede{font:400 clamp(23px,2vw,29px)/1.38 var(--f-display);margin:36px 0 22px;max-width:30em}
.lp-long p{color:var(--text-2);margin-bottom:18px;max-width:62ch}
.lp-h3{font:400 11.5px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-2);margin:44px 0 18px}
.lp-feats{margin-bottom:44px}
.adv-line{display:flex;align-items:center;gap:18px;padding-top:26px;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.adv-line>span:last-child{display:flex;flex-direction:column;gap:3px}
.adv-line small{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.adv-line b{font:400 22px/1.15 var(--f-display)}
.adv-line em{font-style:normal;font-size:14.5px;color:var(--text-2)}
.adv-line:hover b{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.mono{position:relative;display:inline-grid;place-items:center;width:54px;height:54px;flex:none}
.mono svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mono circle{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:240;stroke-dashoffset:0}
.mono span{position:relative;font:400 17px/1 var(--f-display);letter-spacing:.08em}
.mono--lg{width:68px;height:68px}
.mono--lg span{font-size:21px}
.lp-aside{align-self:stretch}
.lp-card{position:sticky;top:88px;background:var(--panel);border:1px solid var(--line);padding:clamp(24px,2.4vw,32px)}
.lp-card__label{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.lp-card__price{font:400 clamp(30px,2.6vw,38px)/1.1 var(--f-display);margin:8px 0 6px}
.lp-card .calc{background:transparent;border:0;border-top:1px solid var(--line);padding:20px 0 0;margin:18px 0 22px}
.lp-card__cta{width:100%}
.lp-card__fine{margin-top:14px;font-size:13px;color:var(--text-2);text-align:center}
.lp-dusk{padding:clamp(72px,8vw,120px) 0 var(--section);background:var(--canvas-2)}
.lp-dusk__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-bottom:32px}
.lp-dusk__head .label{margin-bottom:16px}
.dusk--lp{max-height:86vh}
.dusk-toggle{display:flex;gap:6px}
.dt__btn{min-height:42px;padding:0 20px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;font:400 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text);transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.dt__btn:hover{border-color:var(--text)}
.dt__btn[aria-pressed="true"]{background:var(--text);color:var(--canvas);border-color:var(--text)}
.lp-evening{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 56px;align-items:center;margin-top:44px}
.lp-evening__text{font:400 clamp(21px,1.8vw,26px)/1.45 var(--f-display);max-width:34em}
.lp-evening--solo{margin-top:0}
.lp-evening--solo .label{margin-bottom:16px}
.lp-evening--solo .lp-h2{margin-bottom:22px}
.sunclock--slim{margin:0;padding:22px 26px;gap:26px;max-width:540px}
.sunclock--slim .sunclock__svg{width:150px}

/* floor plan */
.lp-plan{padding:var(--section) 0}
.lp-plan__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}
.lp-plan__head .label{margin-bottom:16px}
.plan__tabs{display:flex;gap:6px}
.plan__tabs button{min-height:42px;padding:0 20px;border-radius:999px;border:1px solid var(--line-ink-strong);background:transparent;font:400 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:background-color .3s var(--ease),color .3s var(--ease)}
.plan__tabs button:hover{border-color:var(--ink)}
.plan__tabs button[aria-selected="true"]{background:var(--ink);color:var(--stone);border-color:var(--ink)}
.plan__readout{display:flex;align-items:baseline;gap:16px;min-height:44px;margin:30px 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line-ink);font:400 12px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.plan__readout b{font:400 26px/1.1 var(--f-display);letter-spacing:0;text-transform:none;color:var(--ink)}
.plan__level{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1fr);gap:40px;align-items:start}
.plan__frame{background:#ece9e2;border:1px solid var(--line-ink);padding:clamp(8px,1.2vw,16px)}
.plan__svg{width:100%;height:auto;display:block;overflow:hidden}
.plan__room{cursor:pointer;outline:none}
.plan__room:not(.plan__room--pool) rect{fill:rgba(53,80,63,0);stroke:var(--ink);stroke-width:1.2;transition:fill .35s var(--ease),stroke .35s var(--ease)}
.plan__room--hall:not(.is-on):not(.is-hover) rect{fill:rgba(21,29,24,.045)}
.plan__room--out rect{stroke-dasharray:5 4;stroke:var(--ink-2)!important;stroke-width:1!important}
.plan__room--pool rect{stroke:var(--accent-ink);stroke-width:1.2;transition:stroke-width .3s var(--ease)}
.plan__room.is-hover:not(.plan__room--pool) rect,.plan__room:focus-visible:not(.plan__room--pool) rect{fill:rgba(53,80,63,.12)}
.plan__room.is-on:not(.plan__room--pool) rect{fill:rgba(53,80,63,.24);stroke:var(--accent-ink)}
.plan__room--pool.is-on rect,.plan__room--pool.is-hover rect{stroke-width:3}
.plan__room.is-on .plan__name,.plan__room.is-on .plan__num{fill:var(--accent-ink)}
.plan__room:focus-visible rect{stroke-width:2.4}
.plan__name{font:400 11px var(--f-mono);letter-spacing:.08em;fill:var(--ink);text-anchor:middle;pointer-events:none}
.plan__dim{font:400 10px var(--f-mono);fill:var(--ink-2);text-anchor:middle;pointer-events:none;letter-spacing:.04em}
.plan__num{display:none;font:400 26px var(--f-mono);fill:var(--ink);text-anchor:middle;pointer-events:none}
.plan__wall{fill:none;stroke:var(--ink);stroke-width:3.2;pointer-events:none}
.plan__edge{font:italic 400 14px var(--f-display);fill:var(--ink-2);text-anchor:middle;letter-spacing:.12em}
.plan__wave{fill:none;stroke:rgba(53,80,63,.5);stroke-width:1}
.plan__hatch{stroke:rgba(53,80,63,.45);stroke-width:1}
.plan__north circle{fill:none;stroke:var(--ink-2)}
.plan__north path{fill:var(--ink-2)}
.plan__rooms{border-top:1px solid var(--line-ink)}
.plan__rooms button{display:grid;grid-template-columns:34px 1fr auto;align-items:baseline;gap:10px;width:100%;padding:11px 8px 11px 0;background:none;border:0;border-bottom:1px solid var(--line-ink);text-align:left;color:var(--ink);transition:background-color .3s var(--ease),padding .3s var(--ease)}
.plan__rooms button:hover,.plan__rooms button.is-hover{background:rgba(21,29,24,.04)}
.plan__rooms button.is-on{background:var(--stone-2);padding-left:8px}
.plan__rooms button.is-on .pr__name{color:var(--accent-ink)}
.pr__n{font:400 10.5px var(--f-mono);letter-spacing:.1em;color:var(--ink-2)}
.pr__name{font-size:15.5px}
.pr__dim{font:400 11px var(--f-mono);letter-spacing:.06em;color:var(--ink-2);white-space:nowrap}
.plan__fine{margin-top:20px;font:400 11px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}

/* neighborhood snippet + mini map */
.lp-hood,.gplace{padding:var(--section) 0;background:var(--canvas)}
.lp-hood__grid,.gplace__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,5vw,80px);align-items:center}
.minimap{margin:0;background:var(--canvas-2);border:1px solid var(--line);padding:clamp(8px,1.2vw,16px)}
.minimap__svg{width:100%;height:auto;display:block}
.minimap__cap{margin-top:10px;font:400 10.5px/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.mm__lake{font:italic 400 13px var(--f-display);fill:rgba(173,197,190,.7);text-anchor:middle}
.mm__city{font:400 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;fill:var(--text-2);text-anchor:middle}
.mm__other{fill:var(--text-2);opacity:.8}
.mm__olabel{font:400 9.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--text-2);paint-order:stroke;stroke:var(--canvas-2);stroke-width:4px}
.mm__dot{fill:var(--accent)}
.mm__ring{fill:none;stroke:var(--accent);stroke-width:1}
.mm__pulse{fill:none;stroke:var(--accent);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:pinpulse 3.6s var(--ease) infinite}
.mm__label{font:400 13px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;fill:var(--accent);paint-order:stroke;stroke:var(--canvas-2);stroke-width:5px;stroke-linejoin:round}
.lp-hood__text .label,.gplace__text .label{margin-bottom:16px}
.lp-hood__meta{font:400 11px/1.5 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:14px 0 18px}
.lp-hood__intro{color:var(--text-2);max-width:48ch;margin-bottom:14px}
.lp-hood__drive{font:400 12px/1.5 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:28px}

/* more + pager */
.lp-more{padding:var(--section) 0;border-top:1px solid var(--line-ink)}
.lp-more__head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:16px;margin-bottom:40px}
.grid--more,.grid--guide{grid-template-columns:repeat(3,1fr)}
.pager{display:flex;justify-content:space-between;gap:24px;margin-top:72px;padding-top:28px;border-top:1px solid var(--line-ink)}
.pager__a{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);max-width:48%}
.pager__a small{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.pager__a b{font:400 clamp(22px,2.2vw,30px)/1.15 var(--f-display)}
.pager__a:hover b{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.pager__a--next{text-align:right;align-items:flex-end}
.lp-bar{display:none}

/* ---------- neighborhoods ---------- */
.mapsec--index{padding-top:0}
.guides{padding:var(--section) 0}
.guides__head{margin-bottom:48px}
.guides__title{font:400 clamp(34px,4vw,58px)/1.06 var(--f-display);margin-top:18px;max-width:18em}
.guides__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 32px}
.gcard a{display:block;text-decoration:none;color:var(--ink)}
.gcard__media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone-2);margin-bottom:18px}
.gcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out)}
.gcard a:hover .gcard__media img,.gcard a:focus-visible .gcard__media img{transform:scale(1.045)}
.gcard__meta{display:block;font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.gcard__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.gcard__name{font:400 28px/1.15 var(--f-display)}
.gcard__count{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);white-space:nowrap}
.gcard__intro{display:block;margin-top:10px;color:var(--ink-2);font-size:15px}
.ghead{padding-top:calc(72px + clamp(36px,5vw,64px));padding-bottom:clamp(32px,4vw,52px)}
.ghead .label{margin-bottom:18px}
.gfig{margin:0;background:var(--panel)}
.gfig__img{width:100%;height:clamp(320px,64vh,740px);object-fit:cover}
.gfig--firm .gfig__img{height:clamp(360px,72vh,780px)}
.gintro{padding:clamp(56px,7vw,104px) 0}
.gintro__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px clamp(40px,6vw,96px);align-items:start}
.gintro__lede{font:400 clamp(26px,2.7vw,40px)/1.28 var(--f-display)}
.glance{border-top:1px solid var(--line)}
.glance div{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:120px 1fr;gap:16px}
.glance dt{font:400 10.5px/1.6 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.glance dd{font-size:16px}
.gnotes{padding:var(--section) 0}
.gnotes__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.gnote{border-top:1px solid var(--line-ink-strong);padding-top:24px}
.gnote h3{font:400 11.5px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:16px}
.gnote p{color:var(--ink-2);font-size:16.5px;max-width:40ch}
.gplace__p{color:var(--text-2);max-width:48ch;margin:18px 0 26px}
.gplace .sunclock{margin-bottom:32px}
.glist{padding:var(--section) 0}
.offmarket{border-top:1px solid var(--line-ink);padding:44px 0 8px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.offmarket__text{font:400 clamp(22px,2.2vw,30px)/1.35 var(--f-display);max-width:30em}

/* ---------- the firm ---------- */
.statement{padding:var(--section) 0}
.statement__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px}
.statement__grid>.label{grid-column:1/4;align-self:start;padding-top:12px}
.statement__body{grid-column:4/13}
.statement__big{font:400 clamp(27px,3vw,44px)/1.26 var(--f-display);margin-bottom:32px;max-width:28em}
.statement__body p:not(.statement__big){color:var(--text-2);max-width:60ch;margin-bottom:18px}
.principles{padding:0 0 var(--section);background:var(--canvas)}
.principles__list{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;border-top:1px solid var(--line);padding-top:36px}
.principles__n{display:block;font:400 11px/1 var(--f-mono);letter-spacing:.2em;color:var(--accent);margin-bottom:22px}
.principles__list h3{font:400 26px/1.15 var(--f-display);margin-bottom:12px}
.principles__list p{color:var(--text-2);font-size:15.5px}
.tonight{padding:var(--section) 0}
.tonight__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,6vw,96px);align-items:start}
.tonight .label{margin-bottom:16px}
.tonight__p{color:var(--ink-2);margin-top:20px;max-width:42ch}
.timeline{--f:0;padding-top:10px}
.timeline__track{position:relative;height:1px;background:var(--line-ink-strong);margin:8px 0 26px}
.timeline__track::before{content:"";position:absolute;left:0;top:0;height:1px;width:calc(var(--f)*100%);background:var(--ink);transition:width 2.4s var(--ease-out)}
.timeline__sun{position:absolute;top:-7px;left:calc(var(--f)*100%);width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#c98c58;transition:left 2.4s var(--ease-out)}
.timeline__list li{display:grid;grid-template-columns:96px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line-ink)}
.timeline__list b{font:400 15px/1.5 var(--f-mono);letter-spacing:.06em;font-weight:400}
.timeline__list span{color:var(--ink-2)}
.timeline__list li.is-next b{color:var(--accent-ink)}
.timeline__list li.is-next b::after{content:" next";font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-left:6px}
.advisors{padding:var(--section) 0;background:var(--canvas)}
.advisors__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px 48px;margin-bottom:44px}
.advisors__head .label{margin-bottom:16px}
.advisors__note{color:var(--text-2);font-size:14px;max-width:42ch}
.advisors__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
.adv{border-top:1px solid var(--line);scroll-margin-top:96px}
.adv__btn{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 20px;width:100%;padding:28px 0;background:none;border:0;text-align:left;color:var(--text)}
.adv__btn .mono{grid-row:1/3}
.adv__name{font:400 25px/1.15 var(--f-display);align-self:end}
.adv__focus{font:400 10.5px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);grid-column:2;align-self:start}
.adv__plus{grid-column:3;grid-row:1/3;width:14px;height:14px;position:relative}
.adv__plus::before,.adv__plus::after,.faq__plus::before,.faq__plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform .45s var(--ease-out)}
.adv__plus::after,.faq__plus::after{transform:rotate(90deg)}
.adv.is-open .adv__plus::after,.faq__item.is-open .faq__plus::after{transform:rotate(0)}
.adv__btn:hover .mono circle{animation:ringdraw 1.4s var(--ease-out)}
.adv.is-open .mono span{color:var(--accent)}
@keyframes ringdraw{from{stroke-dashoffset:240}to{stroke-dashoffset:0}}
.adv__more,.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease-out)}
.adv.is-open .adv__more,.faq__item.is-open .faq__a{grid-template-rows:1fr}
.adv__inner,.faq__inner{overflow:hidden;min-height:0}
.adv__inner p{color:var(--text-2);font-size:15.5px;padding:0 0 16px 88px;max-width:46ch}
.adv__inner .link-btn{margin:0 0 28px 88px}
.studio{display:grid;grid-template-columns:1fr 1fr;min-height:76vh}
.studio__media{position:relative;overflow:hidden;background:var(--stone-2)}
.studio__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.studio__panel{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:var(--section) var(--gutter);gap:20px}
.studio__panel p:not(.label){color:var(--ink-2);max-width:44ch}
.studio__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}

/* ---------- sell ---------- */
.steps{padding:var(--section) 0}
.steps__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,6vw,96px);align-items:start}
.steps__list li{border-top:1px solid var(--line-ink)}
.steps__list li:last-child{border-bottom:1px solid var(--line-ink)}
.steps__list button{display:grid;grid-template-columns:52px 1fr;align-items:baseline;width:100%;padding:20px 0;background:none;border:0;text-align:left;color:var(--ink-2);transition:color .35s var(--ease)}
.steps__list button:hover{color:var(--ink)}
.steps__list button[aria-selected="true"]{color:var(--ink)}
.steps__n{font:400 11px/1 var(--f-mono);letter-spacing:.18em}
.steps__list button[aria-selected="true"] .steps__n,.steps__list li.is-done .steps__n{color:var(--accent-ink)}
.steps__t{font:400 clamp(21px,1.9vw,27px)/1.2 var(--f-display)}
.steps__progress{position:relative;height:1px;background:var(--line-ink);margin-top:-1px}
.steps__progress i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(.2);transition:transform .7s var(--ease-out)}
.steps__arrows{display:flex;gap:10px;margin-top:22px}
.steps .icon-btn{border-color:var(--line-ink-strong);color:var(--ink)}
.steps .icon-btn:hover{background:rgba(21,29,24,.05);border-color:var(--ink)}
.steps__media{aspect-ratio:3/2;overflow:hidden;background:var(--stone-2);margin-bottom:24px}
.steps__media img{width:100%;height:100%;object-fit:cover}
.steps__count{font:400 11px/1.4 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px}
.steps__title{font:400 clamp(30px,3vw,42px)/1.1 var(--f-display);margin-bottom:14px}
.steps__text{color:var(--ink-2);font-size:17px;max-width:50ch}
.sell-dusk__cap{margin-top:18px;font:400 11px/1.5 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.valuation{padding:var(--section) 0}
.valuation__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px clamp(40px,6vw,96px);align-items:start}
.valuation .showing__title{margin-top:16px}
.faq{margin-top:48px}
.faq>.label{margin-bottom:14px}
.faq__item{border-top:1px solid var(--line-ink)}
.faq__item:last-child{border-bottom:1px solid var(--line-ink)}
.faq__q{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:18px 0;background:none;border:0;text-align:left;font:400 17px/1.4 var(--f-body);color:var(--ink)}
.faq__plus{position:relative;width:12px;height:12px;flex:none}
.faq__inner p{color:var(--ink-2);padding-bottom:20px;max-width:48ch}

/* ---------- journal ---------- */
.journal{padding:clamp(48px,5vw,72px) 0 var(--section)}
.jfilter{margin-bottom:44px}
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:64px 32px}
.jcard[hidden]{display:none}
.jcard a{display:block;text-decoration:none;color:var(--ink)}
.jcard__media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone-2);margin-bottom:20px}
.jcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out)}
.jcard a:hover .jcard__media img,.jcard a:focus-visible .jcard__media img{transform:scale(1.04)}
.jcard__text{display:flex;flex-direction:column;gap:10px}
.jcard__meta,.jcard__by{font:400 10.5px/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.jcard__title{font:400 clamp(25px,2vw,30px)/1.15 var(--f-display)}
.jcard__dek{color:var(--ink-2);font-size:15.5px}
.jcard--feature{grid-column:1/-1}
.jcard--feature a{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(32px,4vw,64px);align-items:center}
.jcard--feature .jcard__media{aspect-ratio:16/10;margin-bottom:0}
.jcard--feature .jcard__title{font-size:clamp(34px,3.6vw,54px);line-height:1.06}
.jcard--feature .jcard__dek{font-size:17px}
.jgrid.is-filtered .jcard--feature{grid-column:auto}
.jgrid.is-filtered .jcard--feature a{display:block}
.jgrid.is-filtered .jcard--feature .jcard__media{aspect-ratio:4/3;margin-bottom:20px}
.jgrid.is-filtered .jcard--feature .jcard__title{font-size:clamp(25px,2vw,30px)}

/* ---------- article ---------- */
.art__head{padding-top:calc(72px + clamp(40px,5vw,72px));padding-bottom:clamp(36px,4vw,56px);max-width:1080px}
.art__title{font:400 clamp(40px,5.2vw,78px)/1.05 var(--f-display);max-width:17em}
.art__dek{font-size:clamp(18px,1.4vw,21px);color:var(--text-2);max-width:50ch;margin:24px 0 30px}
.art__by{display:flex;align-items:center;gap:16px;font:400 11px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.art__by .mono{width:44px;height:44px}
.art__by .mono span{font-size:14px}
.art__by a{color:var(--text)}
.art__lead{margin:0}
.art__lead img{width:100%;height:clamp(320px,66vh,780px);object-fit:cover}
.zoomable{cursor:zoom-in}
.art__body{max-width:calc(700px + 2*var(--gutter));margin:0 auto;padding:clamp(56px,7vw,96px) var(--gutter) 40px}
.art__body>p{font-size:clamp(17px,1.25vw,19px);line-height:1.75;color:#d9d6cd;margin-bottom:24px}
.art__body>p:first-child::first-letter{font:400 4.1em/.8 var(--f-display);float:left;margin:.06em .1em 0 0;color:var(--accent)}
.art__body b{font-weight:500;color:var(--text)}
.art__body h2{font:400 clamp(27px,2.4vw,36px)/1.15 var(--f-display);margin:56px 0 18px}
.pull{margin:56px 0;padding:30px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.pull p{font:400 clamp(27px,2.8vw,40px)/1.22 var(--f-display);color:var(--text)}
.art__list{margin:0 0 28px}
.art__list li{position:relative;padding-left:24px;margin-bottom:16px;font-size:clamp(17px,1.2vw,18.5px);line-height:1.7;color:#d9d6cd}
.art__list li::before{content:"";position:absolute;left:0;top:.85em;width:10px;height:1px;background:var(--accent)}
.art__fig,.art__widget--wide{width:min(1120px,calc(100vw - 2*var(--gutter)));margin:56px 0 56px 50%;transform:translateX(-50%)}
.art__fig img{width:100%;height:auto}
.art__fig figcaption,.art__cap{margin-top:14px;font:400 11px/1.5 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);max-width:700px}
.art__widget{margin:40px 0 44px}
.art__widget .sunclock{margin:0}
.art__widget--wide .dusk{aspect-ratio:3/2;max-height:80vh}
.art__foot{max-width:calc(700px + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter) var(--section)}
.art__foot p{border-top:1px solid var(--line);padding-top:22px;font:italic 400 18px/1.5 var(--f-display);color:var(--text-2)}
.nextart{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 24px;margin-top:80px;padding-top:28px;border-top:1px solid var(--line-ink);text-decoration:none;color:var(--ink)}
.nextart small{grid-column:1/-1;font:400 10.5px/1.3 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.nextart b{font:400 clamp(28px,3.2vw,46px)/1.1 var(--f-display)}
.nextart .arr{width:30px;height:30px}
.nextart:hover .arr{transform:translateX(6px)}

/* compass widget */
.compass{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:center;background:var(--panel);border:1px solid var(--line);padding:28px}
.compass__dial svg{width:100%;height:auto;overflow:visible}
.cp__ring{fill:none;stroke:var(--line-strong)}
.cp__ticks line{stroke:var(--line-strong);stroke-width:1}
.cp__rot{transform-box:view-box;transform-origin:120px 120px;transition:transform 1.1s var(--ease-out)}
.cp__rot.no-anim{transition:none}
.cp__lake{fill:#1b2c2a;stroke:rgba(173,197,190,.42);stroke-width:1}
.cp__shore{stroke:var(--text-2);stroke-width:1}
.cp__house{fill:var(--canvas);stroke:var(--text);stroke-width:1.2}
.cp__roof{fill:none;stroke:var(--text);stroke-width:1.2}
.cp__dock{stroke:var(--text);stroke-width:3}
.cp__sunset{transform-box:view-box;transform-origin:120px 120px}
.cp__ray{stroke:var(--vesper);stroke-width:1;stroke-dasharray:3 4}
.cp__sun{fill:var(--vesper)}
.cp__n{font:400 10px var(--f-mono);fill:var(--text-2);text-anchor:middle}
.compass__ctl .label{margin-bottom:14px}
.compass__dirs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.compass__dirs button{min-height:40px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;font:400 11px/1 var(--f-mono);letter-spacing:.14em;color:var(--text);transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.compass__dirs button:hover{border-color:var(--text)}
.compass__dirs button[aria-checked="true"]{background:var(--text);color:var(--canvas);border-color:var(--text)}
.compass__out{margin:22px 0 12px;min-height:7.5em}
.compass__out b{display:block;font:400 22px/1.25 var(--f-display);font-weight:400;margin-bottom:6px}
.compass__out span{color:var(--text-2);font-size:15.5px}
.compass__fine{font-size:12.5px;color:var(--text-2)}

/* ---------- private office ---------- */
.po-list{padding:0 0 var(--section)}
.po-list__head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px 32px;padding-top:28px;border-top:1px solid var(--line);margin-bottom:32px}
.po-list__note{color:var(--text-2);font-size:14.5px}
.sealed__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.sealed{position:relative;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column}
.sealed__media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--panel-2)}
.sealed__media img{width:100%;height:100%;object-fit:cover;filter:blur(22px) saturate(.6) brightness(.62);transform:scale(1.25);transition:filter 1.4s var(--ease)}
.sealed:hover .sealed__media img{filter:blur(17px) saturate(.75) brightness(.7)}
.sealed__lock{position:absolute;left:50%;top:calc(50% - 60px);width:64px;height:64px;margin-left:-32px;border-radius:50%;border:1px solid rgba(238,234,225,.5);display:grid;place-items:center}
.sealed__lock svg{width:20px;height:20px;fill:none;stroke:var(--text);stroke-width:1.2}
.sealed__where{display:block;padding:18px 20px 4px;font:400 23px/1.2 var(--f-display)}
.sealed__what{display:block;padding:0 20px;color:var(--text-2);font-size:14.5px}
.sealed__state{display:block;margin-top:auto;padding:16px 20px 18px;font:400 10.5px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.po-requested .sealed__state{color:var(--vesper)}
.po-how{padding:0 0 var(--section)}
.po-how__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px clamp(40px,6vw,96px);padding-top:40px;background:linear-gradient(var(--line),var(--line)) var(--gutter) 0/calc(100% - 2*var(--gutter)) 1px no-repeat}
.po-how .label{margin-bottom:16px}
.po-steps li{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}
.po-steps li:first-child{padding-top:4px}
.po-steps span{font:400 11px/1.9 var(--f-mono);letter-spacing:.18em;color:var(--accent)}
.po-steps p{color:var(--text-2)}
.po-steps b{font-weight:500;color:var(--text)}
.access{padding:var(--section) 0}
.access__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px clamp(40px,6vw,96px);align-items:start}
.seal{width:96px;height:96px;margin-bottom:28px;fill:none}
.seal__ring{stroke:var(--accent-ink);stroke-width:1}
.seal__ring--in{stroke-dasharray:2 4}
.seal__mark{stroke:var(--accent-ink);stroke-width:2}
.po-requested .seal__mark{stroke-dasharray:140;stroke-dashoffset:140;animation:draw 1.8s var(--ease-out) forwards}
.po-requested .seal__mark+.seal__mark{animation-delay:.35s}
.access__lede{color:var(--ink-2);margin-top:16px;max-width:40ch}
.seg--wrap .field__err{width:100%;margin-top:6px}
.seg.has-err span{border-color:#8c2f1e}

/* ---------- contact ---------- */
.contact{padding:0 0 var(--section)}
.contact__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,5vw,80px);align-items:start}
.status{display:inline-flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;font-size:14.5px;margin-bottom:32px}
.status__dot{width:8px;height:8px;border-radius:50%;background:var(--text-2);flex:none}
.status.is-open .status__dot{background:var(--accent)}
.contact__dl{border-top:1px solid var(--line);margin-bottom:32px}
.contact__dl div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.contact__dl dt{font:400 10.5px/1.7 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.contact__fine{margin-top:20px;font-size:13px;color:var(--text-2)}
.contact__form{padding:clamp(28px,4vw,56px)}
.contact__form .showing__title{margin-top:14px}

/* ---------- 404 ---------- */
.lost{padding-top:calc(72px + clamp(56px,8vw,112px));padding-bottom:var(--section);display:flex;flex-direction:column;align-items:flex-start}
.lost__sun{width:min(320px,80vw);margin-bottom:32px;overflow:visible}
.lost__arc{fill:none;stroke:var(--line-strong);stroke-dasharray:2 5}
.lost__disc{fill:var(--vesper);transform-box:fill-box;transform-origin:center;animation:sink 4.2s cubic-bezier(.45,0,.3,1) .5s forwards}
.lost__horizon{stroke:var(--text-2)}
.lost__water{stroke:var(--line-strong);fill:none}
@keyframes sink{to{transform:translateY(56px)}}
.lost .label{margin-bottom:20px}
.lost__links{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.lost__more{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.lost__more a{font:400 11.5px/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--text-2)}
.lost__more a:hover{color:var(--text)}

/* ---------- responsive, new pages ---------- */
@media (max-width:1180px){
  .guides__grid,.jgrid{grid-template-columns:repeat(2,1fr)}
  .grid--more,.grid--guide{grid-template-columns:repeat(2,1fr)}
  .grid--more .card:nth-child(3){display:none}
  .principles__list{grid-template-columns:repeat(2,1fr)}
  .sealed__grid{grid-template-columns:repeat(2,1fr)}
  .advisors__grid{grid-template-columns:repeat(2,1fr)}
  .specs--lp{grid-template-columns:repeat(3,1fr)}
  .specs--lp div:nth-child(4){padding-left:0;border-left:0}
  .specs--lp div:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:960px){
  .foot__cols{grid-template-columns:1fr 1fr}
  .lp-main{grid-template-columns:minmax(0,1fr)}
  .lp-card{position:static}
  .lp-evening{grid-template-columns:minmax(0,1fr)}
  .plan__level{grid-template-columns:minmax(0,1fr)}
  .plan__rooms{columns:2;column-gap:28px}
  .plan__rooms li{break-inside:avoid}
  .lp-hood__grid,.gplace__grid,.gintro__grid,.tonight__grid,.steps__grid,.valuation__grid,.contact__grid,.access__grid,.po-how__grid,.teaser__grid{grid-template-columns:minmax(0,1fr)}
  .gnotes__grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .statement__grid>.label{grid-column:1/-1;margin-bottom:24px;padding-top:0}
  .statement__body{grid-column:1/-1}
  .studio{grid-template-columns:minmax(0,1fr);min-height:0}
  .studio__media{aspect-ratio:16/10}
  .jcard--feature a{grid-template-columns:minmax(0,1fr)}
  .jcard--feature .jcard__media{margin-bottom:4px}
  .compass{grid-template-columns:minmax(0,1fr);justify-items:stretch}
  .compass__dial{max-width:240px;justify-self:center}
}
@media (max-width:720px){
  .phead{padding-top:calc(64px + 44px)}
  .lp-head{padding-top:calc(64px + 32px)}
  .ghead{padding-top:calc(64px + 32px)}
  .lp-gallery{padding:0}
  .mosaic{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;scrollbar-width:none;overscroll-behavior-x:contain}
  .mosaic::-webkit-scrollbar{display:none}
  .mosaic__item,.mosaic__item:nth-child(n+6){display:block;flex:0 0 100%;aspect-ratio:4/3;scroll-snap-align:start}
  .mosaic__count{display:block;position:absolute;right:14px;bottom:14px;padding:8px 13px;border-radius:999px;background:rgba(14,21,18,.85);border:1px solid var(--line);font:400 10.5px/1 var(--f-mono);letter-spacing:.14em;pointer-events:none}
  .mosaic__all{right:auto;left:14px;bottom:14px;min-height:36px;padding:0 14px;font-size:10.5px}
  .specs--lp{grid-template-columns:repeat(2,1fr)}
  .specs--lp div,.specs--lp div+div{padding:14px 12px 14px 0;border-left:0;border-top:1px solid var(--line)}
  .specs--lp div:first-child{grid-column:auto}
  .specs--lp div:nth-child(-n+2){border-top:0}
  .specs--lp div:nth-child(even){padding-left:14px;border-left:1px solid var(--line)}
  .specs--lp div:nth-child(3),.specs--lp div:nth-child(5){padding-left:0;border-left:0}
  .lp-card{margin:0 calc(-1*var(--gutter));border-left:0;border-right:0}
  .lp-dusk__head{flex-direction:column;align-items:flex-start}
  .dusk--lp{aspect-ratio:4/3.4}
  .plan__name,.plan__dim{display:none}
  .plan__num{display:block}
  .plan__rooms{columns:1}
  .plan__readout b{font-size:22px}
  .grid--more,.grid--guide{grid-template-columns:1fr}
  .grid--more .card:nth-child(3){display:block}
  .pager{flex-direction:column}
  .pager__a{max-width:none}
  .pager__a--next{text-align:left;align-items:flex-start;padding-top:20px;border-top:1px solid var(--line-ink)}
  .foot__cols>div:nth-child(n+3){grid-column:1/-1}
  body.page-listing{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .lp-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:rgba(14,21,18,.97);border-top:1px solid var(--line)}
  .lp-bar__info{display:flex;flex-direction:column;min-width:0}
  .lp-bar__info b{font:400 19px/1.15 var(--f-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lp-bar__info span{font:400 10.5px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
  .lp-bar .btn{flex:none}
  .guides__grid,.jgrid{grid-template-columns:1fr;gap:48px}
  .gfig__img{height:min(62vh,420px)}
  .glance div{grid-template-columns:1fr;gap:4px}
  .principles__list{grid-template-columns:1fr;gap:28px}
  .advisors__grid{grid-template-columns:1fr}
  .adv__inner p{padding-left:0}
  .adv__inner .link-btn{margin-left:0}
  .sealed__grid{grid-template-columns:1fr 1fr;gap:12px}
  .sealed__where{font-size:19px;padding:14px 14px 4px}
  .sealed__what{padding:0 14px;font-size:13.5px}
  .sealed__state{padding:12px 14px 14px;font-size:9.5px}
  .sealed__lock{width:48px;height:48px;margin-left:-24px;top:calc(50% - 44px)}
  .timeline__list li{grid-template-columns:78px 1fr;gap:14px}
  .contact__dl div{grid-template-columns:1fr;gap:2px}
  .contact__form{margin:0 calc(-1*var(--gutter))}
  .art__body>p:first-child::first-letter{font-size:3.4em}
  .pull{margin:40px 0}
  .compass{padding:22px 18px}
  .compass__out{min-height:0}
  .lost__links .btn{flex:1 1 100%}
  .res__tools{flex-direction:column;align-items:stretch}
  .res__more{flex-direction:column;align-items:flex-start}
  .steps__list button{padding:16px 0}
}
@media (pointer:coarse){
  .dt__btn,.plan__tabs button{min-height:46px}
  .compass__dirs button{min-height:46px}
}
@media (prefers-reduced-motion:reduce){
  .sheet .sheet__nav a{opacity:1;transform:none}
  .sheet__foot{opacity:1}
  .lost__disc{transform:translateY(26px)}
  .po-requested .seal__mark{stroke-dashoffset:0}
}
