/* N8 Community — site styles */
@font-face{font-family:"Archivo";src:url('../fonts/archivo.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
:root{
  --bone:#ece8e1;
  --bone-2:#e2ddd4;
  --ink:#161614;
  --mute:#7d7870;
  --line:rgba(22,22,20,.16);
  --line-w:rgba(255,255,255,.18);
  --green:#1f7a4c;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bone);color:var(--ink);font-family:"Archivo",Helvetica,Arial,sans-serif;font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.cap{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.mute{color:var(--mute)}
.display{font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em}
.o{color:transparent;-webkit-text-stroke:2px var(--ink)}
.full .o,.black .o,.values .o{-webkit-text-stroke-color:#fff}

/* NAV */
header{position:fixed;top:0;left:0;right:0;z-index:50;padding:0 5vw;height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(236,232,225,.86);backdrop-filter:blur(12px)}
header .brand img{height:58px}
header nav{display:flex;gap:40px;align-items:center}
header nav a{font-size:14px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
header nav a:hover,header nav a.on{color:var(--mute)}
header nav a.pill{border:1.5px solid var(--ink);padding:10px 20px;color:var(--ink)}
header nav a.pill:hover{background:var(--ink);color:var(--bone)}
.menu-btn{display:none}

/* HOME HERO */
.hero{padding-top:104px;min-height:100vh;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}
.hero .txt{padding:8vh 4vw 6vh 5vw;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}
.hero h1{font-size:clamp(60px,6.7vw,132px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.86;letter-spacing:-.03em;margin-top:6vh}
.hero h1 span{display:block}
.hero .lead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:8vh}
.hero .lead p{max-width:460px;font-size:20px;line-height:1.5}
.hero .lead .cap{white-space:nowrap}
.hero .pic{position:relative;overflow:hidden;min-height:60vh}
.hero .pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.tag{position:absolute;left:24px;bottom:24px;color:#fff;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;background:rgba(0,0,0,.4);padding:10px 14px}

/* STRIP */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}
.strip div{padding:26px 5vw;border-right:1px solid var(--line);font-size:15px}
.strip div:last-child{border-right:none}
.strip b{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin-bottom:6px}

/* FULL BLEED */
.full{position:relative;height:92vh;min-height:560px;overflow:hidden}
.full img{width:100%;height:100%;object-fit:cover}
.full::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.6) 100%)}
.full .over{position:absolute;left:5vw;bottom:5vh;color:#fff;z-index:2}
.full .over h2{font-size:clamp(48px,7vw,120px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em}
.full .over p{font-size:18px;margin-top:18px;opacity:.85;max-width:520px}

/* INDEX GRID */
.index{padding:14vh 5vw 8vh}
.index-head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:5vh}
.index-head h2{font-size:clamp(40px,5.5vw,92px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:28px}
.index-head.minor{margin-top:9vh}
.index-head.minor h2{font-size:clamp(28px,3.4vw,56px)}
.full .over .cap{display:block;margin-bottom:16px;opacity:.9}
.full .over a.cap{margin:18px 0 0;opacity:1;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}
.full .over a.cap:hover{border-bottom-color:#fff}
.proj{position:relative;display:block}
.proj .ph{overflow:hidden;background:#ccc;position:relative}
.proj .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.proj:hover .ph img{transform:scale(1.04)}
.proj .num{position:absolute;top:22px;left:22px;color:#fff;font-size:14px;letter-spacing:.2em;font-weight:500;background:rgba(0,0,0,.4);padding:8px 12px}
.st{position:absolute;top:22px;right:22px;color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;background:var(--ink);padding:9px 12px}
.st.live{background:var(--green)}
.proj h3{font-size:clamp(36px,4.4vw,72px);font-stretch:118%;font-weight:700;text-transform:uppercase;line-height:.92;letter-spacing:-.02em;margin-top:20px}
.proj .meta{display:flex;justify-content:space-between;gap:20px;margin-top:10px;font-size:16px;color:var(--mute)}
.a{grid-column:span 7}.b{grid-column:span 5}.c{grid-column:span 4}.d{grid-column:span 8}.e{grid-column:span 6}
.a .ph{aspect-ratio:16/10}.b .ph{aspect-ratio:4/5}.c .ph{aspect-ratio:1/1}.d .ph{aspect-ratio:16/9}.e .ph{aspect-ratio:3/2}

/* 509 T FEATURE */
.tst{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;padding:0 5vw 14vh}
.tst-l{position:relative;overflow:hidden}
.tst-l img{width:100%;height:100%;object-fit:cover}
.tst-r{display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.tst-head{padding:2vh 0 0}
.tst-head h2{font-size:clamp(56px,7vw,124px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em;margin:18px 0 22px}
.tst-head p{font-size:19px;max-width:560px}
.tst-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.tst-pair div{aspect-ratio:4/3;overflow:hidden}
.tst-pair img{width:100%;height:100%;object-fit:cover}

/* BLACK STATEMENT */
.black{background:var(--ink);color:var(--bone);padding:14vh 5vw}
.black h2{font-size:clamp(44px,6.6vw,116px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em;max-width:1400px}
.black h2 em{font-style:normal;color:transparent;-webkit-text-stroke:2px var(--bone)}
.black .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:8vh;padding-top:6vh;border-top:1px solid var(--line-w)}
.black .cols p{font-size:19px;line-height:1.55;max-width:560px;opacity:.85}
.black ul{list-style:none;columns:2;gap:40px;font-size:16px;opacity:.85}
.black li{padding:12px 0;border-bottom:1px solid var(--line-w)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8vh}
.trio div{aspect-ratio:4/5;overflow:hidden}
.trio img{width:100%;height:100%;object-fit:cover}

/* VALUES */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--ink);padding:4px}
.val{position:relative;aspect-ratio:3/4;overflow:hidden}
.val img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.val::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.65) 100%)}
.val .t{position:absolute;left:28px;right:28px;bottom:28px;color:#fff;z-index:2}
.val .t h4{font-size:clamp(40px,5vw,84px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.9;letter-spacing:-.02em}
.val .t p{margin-top:14px;font-size:17px;opacity:.9;max-width:360px}

/* CONTACT BAND + FOOTER */
.contact{padding:14vh 5vw 6vh;position:relative}
.contact h2{font-size:clamp(52px,9vw,160px);font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.88;letter-spacing:-.03em}
.contact .row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-top:8vh;padding-top:5vh;border-top:1px solid var(--line)}
.contact .row b{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin-bottom:12px}
.contact .row a,.contact .row span{font-size:clamp(22px,2.2vw,32px);font-weight:600;letter-spacing:-.01em}
.contact .row a:hover{color:var(--mute)}
.mark{display:flex;justify-content:center;padding:10vh 5vw 0;overflow:hidden}
.mark img{width:min(60vw,640px)}
footer{display:flex;justify-content:space-between;gap:24px;padding:28px 5vw 36px;font-size:14px;color:var(--mute);border-top:1px solid var(--line);flex-wrap:wrap}
footer a:hover{color:var(--ink)}

/* INTERIOR PAGE HERO */
.page{padding-top:104px}
.page-hero{padding:10vh 5vw 5vh;border-bottom:1px solid var(--line)}
.page-hero .crumb{display:block;margin-bottom:3vh}
.page-hero .crumb a:hover{color:var(--ink)}
.page-hero h1{font-size:clamp(52px,9vw,170px);overflow-wrap:anywhere;font-stretch:120%;font-weight:700;text-transform:uppercase;line-height:.86;letter-spacing:-.03em}
.page-hero .sub{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:5vh;flex-wrap:wrap}
.page-hero .sub p{font-size:20px;max-width:620px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.facts div{padding:26px 5vw;border-right:1px solid var(--line);font-size:16px}
.facts div:last-child{border-right:none}
.facts b{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin-bottom:6px}
.facts .badge{display:inline-block;color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;background:var(--ink);padding:7px 10px}
.facts .badge.live{background:var(--green)}

/* RESIDENCE BODY */
.res-photo{position:relative;height:88vh;min-height:520px;overflow:hidden}
.res-photo img{width:100%;height:100%;object-fit:cover}
.res-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:6vw;padding:12vh 5vw}
.res-body h2{font-size:clamp(32px,3.6vw,56px);font-stretch:116%;font-weight:700;text-transform:uppercase;line-height:.95;letter-spacing:-.02em;margin-bottom:28px}
.res-body p{font-size:19px;margin-bottom:20px;max-width:640px}
.res-body .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-block;background:var(--ink);color:var(--bone);padding:18px 34px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;border:1.5px solid var(--ink);transition:.2s;cursor:pointer;font-family:inherit}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bone)}
.amen h3{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin-bottom:14px}
.amen ul{list-style:none;font-size:17px}
.amen li{padding:13px 0;border-top:1px solid var(--line)}
.amen li:last-child{border-bottom:1px solid var(--line)}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;padding:0 5vw 14vh}
.gallery div{overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover}
.g7{grid-column:span 7;aspect-ratio:4/3}.g5{grid-column:span 5;aspect-ratio:4/5}.g4{grid-column:span 4;aspect-ratio:1/1}.g6{grid-column:span 6;aspect-ratio:3/2}.g8{grid-column:span 8;aspect-ratio:16/9}.g12{grid-column:span 12;aspect-ratio:21/9}
.next{border-top:1px solid var(--line);padding:8vh 5vw;display:flex;justify-content:space-between;align-items:center;gap:20px}
.next a{font-size:clamp(28px,4vw,64px);font-stretch:118%;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:1}
.next a:hover{color:var(--mute)}

/* RESIDENTS */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:10vh 5vw 14vh}
.tile{border:1.5px solid var(--ink);padding:44px 36px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;transition:.2s}
.tile:hover{background:var(--ink);color:var(--bone)}
.tile h3{font-size:clamp(30px,3.2vw,48px);font-stretch:118%;font-weight:700;text-transform:uppercase;line-height:.95;letter-spacing:-.02em}
.tile p{font-size:17px;margin-top:16px;opacity:.85;max-width:320px}
.tile .go{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-top:28px}

/* CONTACT PAGE */
.cgrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6vw;padding:10vh 5vw 14vh}
.cinfo .row{border-top:1px solid var(--line);padding:26px 0}
.cinfo .row:last-child{border-bottom:1px solid var(--line)}
.cinfo b{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin-bottom:8px}
.cinfo a,.cinfo span{font-size:clamp(22px,2vw,30px);font-weight:600;letter-spacing:-.01em}
.cinfo a:hover{color:var(--mute)}
form label{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mute);margin:26px 0 10px}
form input[type=text],form input[type=email],form input[type=tel],form textarea,form select{width:100%;background:transparent;border:0;border-bottom:1.5px solid var(--ink);color:var(--ink);padding:14px 0;font-family:inherit;font-size:19px;border-radius:0}
form select{appearance:none;-webkit-appearance:none}
form input:focus,form textarea:focus,form select:focus{outline:none;border-bottom-color:var(--mute)}
form textarea{min-height:140px;resize:vertical}
form .btn{margin-top:36px}
form .hp{display:none}

/* RESPONSIVE */
@media(max-width:900px){
  header{height:80px}
  header .brand img{height:42px}
  header nav{position:fixed;inset:80px 0 auto 0;background:var(--bone);flex-direction:column;align-items:flex-start;gap:0;padding:8px 5vw 24px;border-bottom:1px solid var(--line);display:none}
  header nav.open{display:flex}
  header nav a{padding:16px 0;font-size:15px;width:100%;border-top:1px solid var(--line)}
  header nav a.pill{border:0;padding:16px 0;color:var(--ink)}
  header nav a.pill:hover{background:transparent;color:var(--mute)}
  .menu-btn{display:block;font-size:14px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--ink);padding:10px 0}
  .hero{grid-template-columns:1fr;padding-top:80px}
  /* Headline sizes: every clamp above floors at a desktop value, so on a phone
     the vw term never wins and long words force the page wider than the screen. */
  .hero h1{font-size:clamp(34px,11.5vw,60px);overflow-wrap:anywhere}
  .page-hero h1{font-size:clamp(34px,10vw,52px)}
  .full .over h2{font-size:clamp(30px,9vw,48px)}
  .index-head{flex-direction:column;align-items:flex-start;gap:12px}
  .index-head h2{font-size:clamp(28px,8vw,40px)}
  .index-head.minor h2{font-size:clamp(24px,6vw,28px)}
  .tst-head h2{font-size:clamp(36px,10vw,56px)}
  .black h2{font-size:clamp(24px,8vw,44px);overflow-wrap:anywhere}
  .val .t h4{font-size:clamp(28px,8vw,40px)}
  .contact h2{font-size:clamp(28px,9.5vw,52px);overflow-wrap:anywhere}
  .hero .txt{border-right:none;border-bottom:1px solid var(--line);padding:6vh 5vw}
  .hero .lead{flex-direction:column;align-items:flex-start;gap:20px;margin-top:6vh}
  .hero .pic{min-height:70vh}
  .strip,.facts{grid-template-columns:1fr 1fr}
  .strip div:nth-child(2),.facts div:nth-child(2){border-right:none}
  .strip div:nth-child(-n+2),.facts div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .a,.b,.c,.d,.e{grid-column:span 12}
  .a .ph,.b .ph,.c .ph,.d .ph,.e .ph{aspect-ratio:4/3}
  .tst{grid-template-columns:1fr}
  .tst-l{aspect-ratio:4/5}
  .tst-pair{grid-template-columns:1fr}
  .black .cols{grid-template-columns:1fr}
  .black ul{columns:1}
  .trio{grid-template-columns:1fr}
  .values{grid-template-columns:1fr}
  .contact .row{grid-template-columns:1fr}
  .page{padding-top:80px}
  .res-body{grid-template-columns:1fr;gap:6vh}
  .g7,.g5,.g4,.g6,.g8,.g12{grid-column:span 12;aspect-ratio:4/3}
  .tiles{grid-template-columns:1fr}
  .cgrid{grid-template-columns:1fr;gap:8vh}
  .next{flex-direction:column;align-items:flex-start}
}

@media(max-width:600px){
  /* 12 columns of 28px gaps need 308px before any content, which is wider than
     a small phone. Every card already spans the full width here, so drop to one. */
  .grid,.gallery{grid-template-columns:1fr}
  .grid>*,.gallery>*{grid-column:auto}   /* span 12 would create 11 implicit columns */
  .strip,.facts{grid-template-columns:1fr}
  .strip div,.facts div{border-right:none;border-bottom:1px solid var(--line)}
  .strip div:last-child,.facts div:last-child{border-bottom:none}
}
