/* ============================================================
   NestAbode — 2026 Design System (nb-2026.css)
   Implements the 30 visual enhancements (Gemini 3.5 deep audit).
   Brand-locked: navy / cotton / linen / brass / soft-brass · Cormorant + Inter.
   ============================================================ */
:root{
  --navy:#0F1A3D;
  --navy-2:#16234D;
  --cotton:#F4F1EA;
  --linen:#E0D2B8;
  --brass:#C26A38;
  --soft-brass:#D4A878;
  --rule:rgba(15,26,61,.12);
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  /* fluid type scale (#6 clamp typography) */
  --step-eyebrow:11px;
  --h1:clamp(3.2rem,7vw,7rem);
  --h2:clamp(2.4rem,4.4vw,3.9rem);
  --h3:clamp(1.4rem,2.2vw,2rem);
  --quote:clamp(1.9rem,3.6vw,3.1rem);
  --gut:clamp(1.25rem,3vw,2.25rem);
  --bay:clamp(3rem,5.5vw,6rem);     /* #21 section breathing — tightened so adjacent .bay sections don't compound into a cavernous gap */
  --mouse-x:50%; --mouse-y:30%;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cotton);color:var(--navy);font-family:'Inter',system-ui,sans-serif;font-weight:400;line-height:1.6;letter-spacing:.1px;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color 1.1s var(--ease)}
/* #17 dark-to-light canvas morph: body theme set by JS as sections cross */
body.theme-dark{background:var(--navy)}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;letter-spacing:-.5px;line-height:1.05}
.container{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.bay{padding-block:var(--bay)}

/* #19 micro-fine animated film grain overlay */
.grain{position:fixed;inset:-100%;z-index:9997;pointer-events:none;opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}100%{transform:translate(3%,2%)}}

/* #16 ambient sun-leak vignette: follows cursor on light sections */
.sunleak{position:relative;isolation:isolate}
.sunleak::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(40vw 40vw at var(--mouse-x) var(--mouse-y), rgba(212,168,120,.16), transparent 70%);
  transition:opacity .6s var(--ease);opacity:.9}
.sunleak > *{position:relative;z-index:1}

/* eyebrows + buttons */
.eyebrow{font-family:'Inter',sans-serif;font-size:var(--step-eyebrow);letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--brass);transition:letter-spacing .5s var(--ease),color .5s var(--ease)}
a.eyebrow:hover,.kern:hover{letter-spacing:.3em;color:var(--soft-brass)} /* #15 kerning hover */
.link-quiet{font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--navy);display:inline-flex;gap:.6em;align-items:center}
.link-quiet .arr{transition:transform .4s var(--ease)}
.link-quiet:hover .arr{transform:translateX(6px)}
.link-quiet::after{content:'';display:block}
.cta-line{position:relative;display:inline-block;font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--navy);padding-bottom:6px}
.cta-line::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--navy);transform-origin:left;transition:transform .45s var(--ease),background .3s}
.cta-line:hover::after{background:var(--brass);transform:scaleX(1.0)}
/* #22 magnetic button */
.magnetic{display:inline-flex;align-items:center;gap:.7em;padding:1.05rem 2rem;border:1px solid var(--navy);border-radius:999px;font-family:'Inter',sans-serif;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--navy);background:transparent;transition:background .35s var(--ease),color .35s var(--ease),transform .25s var(--ease-soft);will-change:transform}
.magnetic.solid{background:var(--navy);color:var(--cotton)}
.magnetic:hover{background:var(--brass);border-color:var(--brass);color:var(--cotton)}
.on-navy .magnetic{border-color:rgba(244,241,234,.5);color:var(--cotton)}

/* #25 progressive staggered reveals (mask → meta → header) */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--ri,0) * .08s)}
.reveal.in{opacity:1;transform:none}
/* #2 / #17 clip mask reveal for media */
.mask-reveal{clip-path:inset(0 46% 0 46%);transition:clip-path 1.15s var(--ease)}
.mask-reveal.in{clip-path:inset(0 0 0 0)}

/* #30 silhouette preloader */
#preloader{position:fixed;inset:0;z-index:99990;background:var(--navy);display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
#preloader.done{opacity:0;visibility:hidden}
#preloader svg{width:120px;height:120px}
#preloader path,#preloader line,#preloader polyline{stroke:var(--soft-brass);stroke-width:1.2;fill:none;stroke-dasharray:1;stroke-dashoffset:1;pathLength:1;animation:draw 1.6s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* #4(kept icon) + #3 adaptive nav */
/* announcement / utility bar (brass strip, dismissible) */
.dev-banner{background:var(--brass);color:var(--navy);display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,2vw,1.8rem);padding:8px 44px 8px 16px;font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;position:sticky;top:0;z-index:9999;position:relative}
.dev-banner a{color:var(--navy);font-weight:700;border-bottom:1px solid rgba(15,26,61,.45);padding-bottom:1px;transition:border-color .3s}
.dev-banner a:hover{border-color:var(--navy)}
.dev-banner .x{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--navy);font-size:18px;line-height:1;cursor:pointer;opacity:.7;padding:6px 10px}
.dev-banner .x:hover{opacity:1}
body.ann-hide .dev-banner{display:none}

/* RECO/TRESA brokerage signage — prominent lockup in the navy footer body (NOT floating, NOT a corner tag) */
.nb-brk-foot{display:inline-block;margin:.2rem 0 .9rem;text-decoration:none}
.nb-brk-foot img{height:58px;width:auto;display:block;opacity:.96;transition:opacity .3s}
.nb-brk-foot:hover img{opacity:1}
@media (max-width:640px){.nb-brk-foot img{height:50px}}
@media (max-width:640px){.dev-banner{font-size:9.5px;letter-spacing:.1em;gap:.7rem}.dev-banner a{display:none}}
.nav{position:sticky;top:0;z-index:900;padding:1.7rem 0;background:transparent;transition:padding .4s var(--ease),background .4s var(--ease),backdrop-filter .4s}
.nav.shrink{padding:.85rem 0;background:rgba(244,241,234,.82);backdrop-filter:saturate(160%) blur(20px);border-bottom:1px solid var(--rule)}
body.theme-dark .nav.shrink{background:rgba(15,26,61,.7)}
.nav .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.nav .logo img{height:74px;width:auto;transition:height .4s var(--ease),transform .5s var(--ease)}
.nav.shrink .logo img{height:52px}
.nav .logo:hover img{transform:rotate(-5deg)}
/* RECO/TRESA: registered brokerage name prominent near logo, every page */
.nav .logo{flex-direction:column;align-items:flex-start;gap:3px;line-height:1}
.nav .logo .bkg{font-family:'Inter',sans-serif;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;color:rgba(15,26,61,.72);white-space:nowrap}
body.theme-dark .nav .logo .bkg{color:rgba(244,241,234,.8)}
.nav .logo .bkg-logo{height:34px;width:auto;display:block;margin-top:4px}
.nav.shrink .logo .bkg-logo{height:28px}
@media(max-width:600px){.nav .logo .bkg-logo{height:26px}}

.nav.shrink .logo .bkg{font-size:8.5px}
@media(max-width:600px){.nav .logo .bkg{font-size:8px;letter-spacing:.08em}}
/* IDX/TRREB attribution + disclaimer */
.idx-credit{font-family:'Inter',sans-serif;font-size:11px;color:rgba(15,26,61,.6)}
.idx-legal{font-family:'Inter',sans-serif;font-size:11px;line-height:1.55;color:rgba(15,26,61,.55);max-width:none;margin-top:1rem}
.on-navy .idx-legal,[data-theme="dark"] .idx-legal{color:rgba(244,241,234,.6)}

.nav nav ul{list-style:none;display:flex;gap:clamp(12px,1.6vw,28px);align-items:center;flex-wrap:nowrap}
.nav nav a{font-family:'Inter',sans-serif;font-size:clamp(10.5px,.78vw,12px);letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--navy);white-space:nowrap;transition:letter-spacing .4s var(--ease),color .3s}
body.theme-dark .nav nav a{color:var(--cotton)}
.nav nav a:hover{letter-spacing:.22em;color:var(--brass)}

/* ===== mobile nav: hamburger + full-width drawer (injected by nb-2026.js) ===== */
.nav-burger{display:none;flex:none;width:46px;height:46px;align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--rule);border-radius:999px;cursor:pointer;padding:0;
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.nav-burger:hover{border-color:var(--brass)}
.nav-burger .bars{position:relative;display:block;width:20px;height:14px}
.nav-burger .bars span{position:absolute;left:0;height:1.6px;width:100%;background:var(--navy);border-radius:2px;
  transition:transform .4s var(--ease),opacity .25s var(--ease),background .3s}
.nav-burger .bars span:nth-child(1){top:0}
.nav-burger .bars span:nth-child(2){top:6px}
.nav-burger .bars span:nth-child(3){top:12px}
body.theme-dark .nav-burger{border-color:rgba(244,241,234,.35)}
body.theme-dark .nav-burger .bars span{background:var(--cotton)}

/* drawer overlay (cotton panel sliding from the right) — above the dev-banner (z 9999) so nothing peeks through */
.nav-drawer{position:fixed;inset:0;z-index:10000;visibility:hidden;pointer-events:none}
.nav-drawer .nd-scrim{position:absolute;inset:0;background:rgba(15,26,61,.42);opacity:0;
  transition:opacity .5s var(--ease);backdrop-filter:blur(2px)}
.nav-drawer .nd-panel{position:absolute;top:0;right:0;height:100%;width:min(86vw,420px);
  background:var(--cotton);box-shadow:-30px 0 80px rgba(15,26,61,.22);
  display:flex;flex-direction:column;padding:clamp(1.6rem,5vw,2.4rem) clamp(1.5rem,6vw,2.4rem) 2.4rem;
  padding-top:max(clamp(1.6rem,5vw,2.4rem),env(safe-area-inset-top,0px));
  transform:translateX(100%);transition:transform .55s var(--ease)}
.nav-drawer .nd-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.4rem;flex:none}
.nav-drawer .nd-eyebrow{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--brass)}
.nav-drawer .nd-close{width:44px;height:44px;flex:none;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--rule);border-radius:999px;cursor:pointer;
  font-size:22px;line-height:1;color:var(--navy);padding:0;transition:border-color .3s,color .3s}
.nav-drawer .nd-close:hover{border-color:var(--brass);color:var(--brass)}
.nav-drawer .nd-links{list-style:none;display:flex;flex-direction:column;margin:0;padding:0}
.nav-drawer .nd-links li{border-bottom:1px solid var(--rule)}
.nav-drawer .nd-links a{display:flex;align-items:center;min-height:56px;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:1.9rem;font-weight:400;letter-spacing:-.5px;
  color:var(--navy);transition:color .3s var(--ease),padding-left .35s var(--ease)}
.nav-drawer .nd-links a:hover,.nav-drawer .nd-links a:focus-visible{color:var(--brass);padding-left:.4rem}
.nav-drawer .nd-foot{margin-top:auto;padding-top:1.8rem;font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.1em;color:rgba(15,26,61,.6)}
.nav-drawer .nd-foot a{color:var(--brass)}
/* open state */
.nav-drawer.open{visibility:visible;pointer-events:auto}
.nav-drawer.open .nd-scrim{opacity:1}
.nav-drawer.open .nd-panel{transform:translateX(0)}
/* lock body scroll while drawer open */
body.nav-open{overflow:hidden}
/* burger -> X morph when open */
body.nav-open .nav-burger .bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.nav-open .nav-burger .bars span:nth-child(2){opacity:0}
body.nav-open .nav-burger .bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:860px){
  .nav nav ul{display:none}            /* hide inline 7-item row */
  .nav-burger{display:inline-flex}     /* show hamburger */
}
@media (prefers-reduced-motion:reduce){
  .nav-drawer .nd-scrim,.nav-drawer .nd-panel,.nav-burger .bars span{transition:none}
}

/* #1 asymmetric split-screen hero + #18 zoom parallax + #2 mask */
.hero{position:relative;padding-top:clamp(2rem,5vw,4rem);padding-bottom:var(--bay);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;min-height:clamp(60vh,72vh,82vh)}
.hero-copy .eyebrow{display:inline-block;margin-bottom:1.6rem}
.hero-copy h1{font-size:var(--h1);margin-bottom:1.2rem}
.hero-copy h1 .it{font-style:italic;color:var(--brass)}
.hero-copy .sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.3rem,2vw,1.75rem);color:var(--brass);margin-bottom:1.8rem;display:block}
.hero-copy p{font-size:clamp(1rem,1.2vw,1.12rem);max-width:46ch;color:rgba(15,26,61,.8);margin-bottom:2.2rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy)}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform}
.hero-media.in video,.hero-media.in img{animation:none}
.hero-edge{position:absolute;left:-1.5rem;bottom:1.5rem;writing-mode:vertical-rl;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;letter-spacing:.1em;color:var(--brass);opacity:.8}

/* #5 razor-sharp featured grid · #6 metadata + cinematic hover · #7 exposure · #13-style dividers */
.featured .head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(2.5rem,5vw,4rem);gap:1.5rem;flex-wrap:wrap}
.featured .head h2{font-size:var(--h2)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.card{position:relative;padding:0 clamp(1rem,2vw,2rem)}
.card + .card{border-left:1px solid var(--rule)} /* architectural column dividers */
.card .frame{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--navy)}
.card .frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.0);filter:brightness(.93) contrast(1.02) saturate(.92);transition:transform .9s var(--ease),filter .7s var(--ease)}
.card:hover .frame img{transform:scale(.97);filter:brightness(1) contrast(1) saturate(1)} /* #6 scale-DOWN + #7 warm */
.card .frame::after{content:'';position:absolute;inset:0;border:1px solid var(--soft-brass);opacity:0;transition:opacity .6s var(--ease);pointer-events:none}
.card:hover .frame::after{opacity:1}
.card .meta{padding-top:1.25rem}
.card .meta .status{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--brass);display:block;margin-bottom:.6rem}
.card .meta .status.available{color:var(--navy)}
.card .meta .row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.card .meta .addr{font-family:'Cormorant Garamond',serif;font-size:var(--h3);color:var(--navy);line-height:1.15}
.card .meta .price{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--brass);white-space:nowrap}
.card .meta .specs{font-family:'Inter',sans-serif;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(15,26,61,.55);margin-top:.5rem}

/* #8 horizontal kinetic process timeline */
.process .timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(1rem,2vw,2rem);margin-top:clamp(3rem,5vw,4.5rem)}
.process .track{position:absolute;top:46px;left:0;right:0;height:1px;background:var(--rule)}
.process .track .fill{position:absolute;inset:0;background:var(--brass);transform:scaleX(var(--progress,0));transform-origin:left;transition:transform .2s linear}
.step .n{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--brass);display:block;margin-bottom:2.4rem;position:relative}
.step .n::before{content:'';position:absolute;left:0;top:-46px;width:9px;height:9px;border-radius:50%;background:var(--cotton);border:1px solid var(--brass)}
.step h4{font-size:1.35rem;margin-bottom:.6rem;color:rgba(15,26,61,.45);transition:color .5s var(--ease)}
.step.active h4{color:var(--navy)}
.step p{font-family:'Inter',sans-serif;font-size:14px;line-height:1.6;color:rgba(15,26,61,.72)}

/* #10 word-by-word scroll-scrub quote + #11 case-study signature */
.quote-wrap{max-width:980px;margin:0 auto;text-align:left}
.scrub{font-family:'Cormorant Garamond',serif;font-size:var(--quote);line-height:1.3;font-weight:400}
.scrub .w{color:rgba(15,26,61,.62);transition:color .35s var(--ease)}
.scrub .w.lit{color:var(--navy)}
.sig{display:flex;align-items:center;gap:1rem;margin-top:2.5rem}
.sig img{width:46px;height:46px;object-fit:cover;flex:none}
.sig .who{font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}

/* #12 odometer stats + #13 deconstructed dividers (on navy) */
.stats{background:var(--navy);color:var(--cotton)}
.stats .head h2{color:var(--cotton)}
.stats .head .eyebrow{color:var(--soft-brass)}
.stats .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3.5rem);text-align:center;margin-top:clamp(2.5rem,5vw,4rem)}
.stats .item{position:relative}
.stats .item + .item::before{content:'';position:absolute;left:0;top:18%;height:64%;width:1px;background:rgba(212,168,120,.28)}
.odo{font-family:'Cormorant Garamond',serif;font-size:clamp(3.5rem,7vw,6rem);line-height:1;color:var(--cotton);display:inline-flex;overflow:hidden;height:1em;letter-spacing:-1px}
.odo .reel{display:inline-flex;flex-direction:column;transition:transform 1.6s var(--ease)}
.odo .reel span{height:1em;line-height:1}
.odo .static{display:inline-block}
.stats .label{font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft-brass);font-weight:600;margin-top:1rem}
.stats .note{text-align:center;margin-top:3rem;font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,241,234,.5)}

/* #20 golden-ratio about + #18 portrait parallax */
.about-grid{display:grid;grid-template-columns:1fr 1.618fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.about-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy)}
.about-media img{width:100%;height:100%;object-fit:cover;object-position:center top;transform:scale(1.1);will-change:transform}
.about-copy h2{font-size:var(--h2);margin-bottom:1.5rem}
.about-copy p{font-size:1.05rem;line-height:1.75;color:rgba(15,26,61,.82);margin-bottom:1.2rem;max-width:54ch}
.about-copy .btn-row{margin-top:1.8rem}

/* #26 conversational valuation input */
.valuation{text-align:center}
.valuation .eyebrow{display:inline-block;margin-bottom:1.2rem}
.valuation h2{font-size:var(--h2);margin-bottom:2.2rem}
.val-field{display:inline-flex;align-items:baseline;gap:.5ch;flex-wrap:wrap;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,3vw,2.4rem);color:var(--navy)}
.val-field input{font:inherit;color:var(--brass);border:none;background:transparent;border-bottom:1.5px solid var(--brass);min-width:min(60vw,360px);padding:.1em .3em;outline:none;transition:min-width .5s var(--ease)}
.val-field input::placeholder{color:rgba(194,106,56,.55)}
.val-field input:focus{min-width:min(72vw,440px)}
.val-sub{margin-top:1.4rem;font-family:'Inter',sans-serif;font-size:13px;color:rgba(15,26,61,.6)}

/* #28 monograph footer + giant wordmark · #29 live meta bar */
.footer{background:var(--navy);color:var(--cotton);position:relative;overflow:hidden;padding:clamp(5rem,9vw,8rem) 0 2.5rem}
.footer .ghost{position:absolute;left:0;right:0;bottom:-3vw;text-align:center;font-family:'Cormorant Garamond',serif;font-size:24vw;line-height:.8;color:var(--cotton);opacity:.035;user-select:none;pointer-events:none;letter-spacing:-.02em;white-space:nowrap}
.footer .container{position:relative;z-index:2}
.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(3rem,6vw,5rem)}
.footer .lede{font-family:'Cormorant Garamond',serif;font-size:1.8rem;max-width:22ch;line-height:1.25;margin-bottom:1rem}
.footer h5{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft-brass);margin-bottom:1.2rem;font-weight:600}
.footer ul{list-style:none}
.footer li{margin-bottom:.7rem}
.footer a{font-family:'Inter',sans-serif;font-size:14px;color:var(--linen);transition:color .3s,letter-spacing .3s}
.footer a:hover{color:var(--cotton);letter-spacing:.04em}
.footer .legal{font-family:'Inter',sans-serif;font-size:13px;color:rgba(224,210,184,.7);line-height:1.55;margin-top:1rem}
.footer-meta{border-top:1px solid rgba(244,241,234,.15);padding-top:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:'Inter',sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(224,210,184,.6)}

/* #22 custom pointer (desktop, additive — native cursor stays) */
.nb-ring{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid rgba(212,168,120,.6);border-radius:50%;pointer-events:none;z-index:9996;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),border-color .3s,opacity .3s;mix-blend-mode:normal;opacity:0}
.nb-dot{position:fixed;top:0;left:0;width:5px;height:5px;background:var(--brass);border-radius:50%;pointer-events:none;z-index:9996;transform:translate(-50%,-50%);opacity:0}
body.cursor-on .nb-ring,body.cursor-on .nb-dot{opacity:1}
body.cursor-hot .nb-ring{width:54px;height:54px;border-color:var(--brass)}

/* ===== reduced motion: strip kinetics, keep composition ===== */
@media (prefers-reduced-motion:reduce){
  .reveal,.mask-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .grain{animation:none}
  .hero-media video,.hero-media img,.about-media img,.card .frame img{transform:none!important}
  #preloader{display:none}
  .nb-ring,.nb-dot{display:none}
  html{scroll-behavior:auto}
}

/* ===== mobile ===== */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:2.5rem;min-height:auto}
  .hero-media{aspect-ratio:3/4}
  .hero-edge{display:none}
  .cards{grid-template-columns:1fr;gap:3rem}
  .card{padding:0}
  .card + .card{border-left:none}
  .process .timeline{grid-template-columns:1fr;gap:2.5rem}
  .process .track{display:none}
  .step .n::before{display:none}
  .stats .grid{grid-template-columns:1fr;gap:3rem}
  .stats .item + .item::before{display:none}
  .about-grid{grid-template-columns:1fr;gap:2.5rem}
  .footer-cols{grid-template-columns:1fr;gap:2.5rem}
  .footer .ghost{font-size:38vw;bottom:-2vw}
  .nb-ring,.nb-dot{display:none}
}
/* desktop-only custom cursor */
@media (hover:none){.nb-ring,.nb-dot{display:none}}
/* QA 2026-05-29: stack listing-hero CTAs on narrow mobile so the sold-price pill never overlaps the "All listings" link (beats per-page inline .cta-row) */
@media (max-width:560px){
  .lhead .cta-row{flex-direction:column !important;align-items:stretch !important;gap:1rem !important}
  .lhead .cta-row .magnetic{justify-content:center;text-align:center;white-space:normal}
  .lhead .cta-row .cta-line{align-self:flex-start}
}
