/* Layout: wide editorial grid; navy "ledger" bands carry the numbers, light pages carry the story. Vertical-bar motif from the logo mark. */
:root{
  --ink:#0B2C3C;        /* logo navy */
  --pine:#345A48;       /* logo green */
  --paper:#F6F7F4;      /* page ground, faint green bias */
  --surface:#FFFFFF;
  --stone:#DCE2DD;      /* rules, borders */
  --muted:#5B6B70;
  --band:#0B2C3C;       /* dark band bg */
  --band-fg:#EEF2EF;
  --band-muted:#9FB3B2;
  --accent:#345A48;
  --accent-soft:#E3EBE5;
  --photo-a:#173E4F; --photo-b:#2C5446;
  --logo-color:block; --logo-light:none;
  --f-display:"Spectral",Georgia,"Times New Roman",serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --s-1:.8125rem; --s0:1rem; --s1:1.125rem; --s2:1.5rem; --s3:2.125rem; --s4:3rem; --s5:clamp(2.4rem,5.2vw,4.25rem);
  --wrap:1200px; --gutter:clamp(16px,4vw,40px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ink:#E9EFEC; --pine:#8DB7A0; --paper:#0E1A20; --surface:#14242C; --stone:#25393F; --muted:#9BAEB0;
  --band:#081419; --band-fg:#E9EFEC; --band-muted:#8EA4A4; --accent:#8DB7A0; --accent-soft:#1B3330;
  --photo-a:#16323F; --photo-b:#20443A; --logo-color:none; --logo-light:block; color-scheme:dark}}
:root[data-theme="dark"]{
  --ink:#E9EFEC; --pine:#8DB7A0; --paper:#0E1A20; --surface:#14242C; --stone:#25393F; --muted:#9BAEB0;
  --band:#081419; --band-fg:#E9EFEC; --band-muted:#8EA4A4; --accent:#8DB7A0; --accent-soft:#1B3330;
  --photo-a:#16323F; --photo-b:#20443A; --logo-color:none; --logo-light:block; color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
img{max-width:100%}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--s0);line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--f-display);font-weight:500;line-height:1.12;text-wrap:balance;margin:0;letter-spacing:-.01em}
h2{font-size:var(--s4)}
h3{font-size:var(--s2)}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.eyebrow{font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.12em;text-transform:uppercase;color:var(--pine)}
.lede{font-size:var(--s1);color:var(--muted);max-width:60ch}
section{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:grid;gap:16px;margin-bottom:clamp(36px,5vw,56px);max-width:760px}

/* Header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--stone)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px}
.brand img{height:44px;width:auto;display:block}
.brand .c{display:var(--logo-color)} .brand .l{display:var(--logo-light)}
nav.main{display:flex;gap:28px;align-items:center;font-size:.9375rem;font-weight:500}
nav.main a:not(.btn){text-decoration:none;color:var(--ink);opacity:.82}
nav.main a:not(.btn):hover{opacity:1;color:var(--pine)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border-radius:2px;font-weight:600;font-size:.9375rem;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--f-body);transition:background .2s,color .2s}
.btn-primary{background:var(--pine);color:#fff}
.btn-primary:hover{background:var(--ink);color:var(--paper)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.menu-btn{display:none}
@media (max-width:980px){nav.main a:not(.btn){display:none}}
@media (max-width:560px){nav.main .btn{padding:10px 14px;font-size:.875rem}.brand img{height:36px}}

/* Hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,8vw,104px)}
.hero .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:var(--s5);margin-block:0 24px}
.hero-sub{margin-top:20px;font-size:.9375rem;color:var(--muted)}
.hero-sub a{color:var(--pine);font-weight:600}
.hero h1 em{font-style:italic;color:var(--pine)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero > .wrap > div{min-width:0}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}}

/* Photo slots: swap in real property photos */
.photo{position:relative;overflow:hidden;border-radius:2px;background:linear-gradient(150deg,var(--photo-a),var(--photo-b));color:#E7EFEA;min-height:220px;max-width:100%;display:flex;align-items:flex-end}
.photo::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 2px,transparent 2px 22px);mask-image:linear-gradient(180deg,#000 10%,transparent 85%)}
.photo span{position:relative;font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;padding:14px 16px;opacity:.85}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .photo{aspect-ratio:4/5;min-height:0}
@media (max-width:860px){.hero .photo{aspect-ratio:16/10}}

/* Hero slider */
.hero-slider{position:relative;aspect-ratio:3/2;max-width:100%;min-width:0;overflow:hidden;border-radius:2px;background:var(--photo-a)}
.slides,.slide{position:absolute;inset:0}
.slide{opacity:0;transition:opacity .9s ease}
.slide.is-active{opacity:1}
.slide .photo{position:absolute;inset:0;min-height:0;border-radius:0}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slider-ui{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;gap:10px;padding:6px 8px;background:rgba(8,20,25,.55);backdrop-filter:blur(6px);border-radius:999px}
.sl-btn{width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:#fff;font-size:1.375rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.sl-btn:hover{background:rgba(255,255,255,.15)}
.dots{display:flex;gap:8px}
.dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.4);cursor:pointer;transition:width .3s,background .3s}
.dot.is-active{width:22px;border-radius:4px;background:#fff}
.hero-slider .slide .photo span{padding-bottom:62px}
@media (max-width:860px){.hero-slider{aspect-ratio:3/2}}
@media (prefers-reduced-motion:reduce){.slide{transition:none}}

/* Conversions: before/after */
.conv{background:var(--band);color:var(--band-fg)}
.conv .eyebrow{color:var(--band-muted)}
.conv .lede{color:var(--band-muted)}
.conv-head{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:40px}
.conv-head > *{min-width:0}
.conv-head h2{margin-top:16px}
.conv-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid color-mix(in srgb,var(--band-fg) 20%,transparent);margin-bottom:28px}
.conv-tab{all:unset;cursor:pointer;display:grid;gap:4px;padding:16px 4px 16px 0;border-top:2px solid transparent;margin-top:-1px;color:var(--band-muted);transition:color .2s,border-color .2s}
.conv-tab b{font-family:var(--f-mono);font-weight:500;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase}
.conv-tab span{font-family:var(--f-display);font-size:1.125rem}
.conv-tab:hover{color:var(--band-fg)}
.conv-tab.is-active{color:var(--band-fg);border-top-color:var(--band-fg)}
.conv-tab:focus-visible{outline:2px solid var(--band-fg);outline-offset:2px}
.conv-body{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(24px,4vw,48px);align-items:start}
.conv-body > *{min-width:0}
.compare{position:relative;aspect-ratio:3/2;max-width:100%;overflow:hidden;border-radius:2px;user-select:none;cursor:pointer;background:#08161c}
.cmp-layer{position:absolute;inset:0;transition:opacity .45s ease}
.cmp-ph[hidden]{display:none}
.cmp-layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.cmp-after{opacity:0;background:#08161c}
.compare.is-after .cmp-after{opacity:1}
.cmp-ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:18px}
.cmp-before .cmp-ph{background:repeating-linear-gradient(135deg,#5d6366 0 2px,transparent 2px 14px),linear-gradient(160deg,#7b8183,#4b5052)}
.cmp-after .cmp-ph{background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 2px,transparent 2px 22px),linear-gradient(150deg,#1d4a5c,#3b6a52)}
.cmp-ph-text{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.cmp-tag{position:absolute;top:14px;left:14px;padding:5px 10px;font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(8,20,25,.7);color:#fff;border-radius:2px;pointer-events:none;transition:opacity .3s}
.cmp-tag-a{opacity:0}
.compare.is-after .cmp-tag-a{opacity:1}.compare.is-after .cmp-tag-b{opacity:0}
.cmp-hint{position:absolute;right:14px;bottom:14px;padding:6px 12px;font-size:.8125rem;background:rgba(8,20,25,.7);color:#fff;border-radius:999px;pointer-events:none;transition:opacity .3s}
.cmp-hint .h-touch{display:none}
@media (any-hover:none){.cmp-hint .h-mouse{display:none}.cmp-hint .h-touch{display:inline}}
.compare.is-after .cmp-hint{opacity:0}
.compare:focus-visible{outline:2px solid var(--band-fg);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.cmp-layer,.cmp-tag,.cmp-hint{transition:none}}
.cmp-wrap{display:grid;gap:14px;min-width:0}
.cmp-views{display:flex;flex-wrap:wrap;gap:8px}
.cmp-view{all:unset;cursor:pointer;padding:7px 14px;border:1px solid color-mix(in srgb,var(--band-fg) 30%,transparent);border-radius:999px;font-size:.875rem;color:var(--band-muted);transition:background .2s,color .2s}
.cmp-view:hover{color:var(--band-fg)}
.cmp-view.is-active{background:var(--band-fg);color:var(--band);border-color:var(--band-fg)}
.cmp-view:focus-visible{outline:2px solid var(--band-fg);outline-offset:2px}
.conv-facts h3{font-size:var(--s3)}
.conv-facts dl{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:0;padding-block:20px;border-block:1px solid color-mix(in srgb,var(--band-fg) 18%,transparent)}
.conv-facts dt{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.conv-facts dd{margin:2px 0 0;font-size:1rem}
.conv-desc{color:var(--band-muted);font-size:.9375rem}
.conv-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
button.photo{all:unset;position:relative;overflow:hidden;border-radius:2px;background:linear-gradient(150deg,var(--photo-a),var(--photo-b));display:flex;align-items:flex-end;cursor:pointer;aspect-ratio:1}
button.photo:focus-visible{outline:2px solid var(--band-fg);outline-offset:2px}
button.photo img{transition:transform .4s}
button.photo:hover img{transform:scale(1.05)}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(5,14,18,.92);display:grid;place-items:center;padding:24px}
[hidden]{display:none!important}
.lightbox img{max-width:min(1400px,100%);max-height:86vh;object-fit:contain;border-radius:2px}
.lightbox button{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:16px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.5rem;cursor:pointer}
.conv-thumbs .photo{aspect-ratio:1;min-height:0}
.conv-thumbs .photo span{font-size:.625rem;padding:8px}
@media (max-width:960px){.conv-body{grid-template-columns:1fr}.conv-head{grid-template-columns:1fr}}
@media (max-width:860px){.conv-tabs{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.conv-tabs{grid-template-columns:1fr}.conv-tab{padding:12px 0}.compare{aspect-ratio:4/3}}

/* Portfolio gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,16vw,220px);gap:12px}
.gallery button.photo{aspect-ratio:auto;height:100%}
.gallery .g-big{grid-column:span 2;grid-row:span 2}
.gallery button.photo::after{content:"";position:absolute;inset:auto 0 0 0;height:32%;background:linear-gradient(to top,rgba(5,14,18,.42),rgba(5,14,18,0));pointer-events:none}
.gallery .g-cap{position:absolute;left:14px;bottom:12px;z-index:1;display:grid;gap:1px;color:rgba(255,255,255,.86);pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.gallery .g-cap.cap-low{bottom:5px}
.gallery .g-cap.cap-center{left:50%;right:auto;bottom:5px;transform:translateX(-50%);text-align:center}
.gallery .g-cap.cap-topright{left:auto;right:14px;top:12px;bottom:auto;text-align:right;text-shadow:0 1px 8px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.5)}
.gallery .g-cap.cap-fire{text-shadow:0 1px 8px rgba(0,0,0,.7),0 0 2px rgba(0,0,0,.45);left:50%;bottom:auto;top:30%;transform:translateX(-50%);text-align:center;white-space:nowrap}
.gallery .g-cap.r{left:auto;right:14px;text-align:right}
.gallery .g-cap b,.gallery .g-cap small{display:block;padding:0}
.gallery .g-cap b{text-transform:none;font-family:var(--f-display);font-style:italic;font-weight:500;font-size:1.0625rem;line-height:1.1}
.gallery .g-big .g-cap b{font-size:1.375rem}
.gallery .g-cap small{font-family:var(--f-body);font-size:.5625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.gallery .g-cap b{text-transform:none;font-family:var(--f-display);font-style:italic;font-weight:500;font-size:1.375rem;line-height:1.1;letter-spacing:.005em}
.gallery .g-big .g-cap b{font-size:1.875rem}
.gallery .g-cap small{font-family:var(--f-body);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.gallery button.photo:focus-visible{outline-color:var(--accent)}
@media (max-width:700px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px}}


/* Flip cards */
.flip-grid button.photo.flip{background:none;overflow:visible;perspective:1200px;display:block;border-radius:2px}
.flip-grid button.photo.flip::after{display:none}
.flip-grid button.photo.flip:hover img{transform:none}
.flip-grid .flip span{opacity:1;text-transform:none;letter-spacing:normal;font-size:inherit;padding:0}
.flip-grid .flip .flip-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.flip-grid .flip .flip-front,.flip-grid .flip .flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:2px;overflow:hidden}
.flip-grid .flip .flip-front{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px !important;text-align:center;color:#EEF2EF;border:1px solid rgba(255,255,255,.08)}
.flip.t0 .flip-front{background:#0B2C3C}
.flip.t1 .flip-front{background:#345A48}
.flip.t2 .flip-front{background:#173E4F}
.flip-front::before{content:"";position:absolute;inset:10px;border:1px solid rgba(238,242,239,.18);border-radius:1px;pointer-events:none}
.flip-grid .flip .ff-name{font-family:var(--f-display);font-style:italic;font-weight:400;font-size:clamp(1.25rem,1.9vw,1.75rem);line-height:1.15;text-wrap:balance}
.flip-grid .g-big .ff-name{font-size:clamp(1.9rem,3.4vw,3rem)}
.flip-grid .flip .ff-rule{display:block;width:32px;height:1px;background:rgba(238,242,239,.5)}
.flip-grid .flip .ff-town{font-family:var(--f-body);font-size:.6875rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(238,242,239,.75)}
.flip-grid .flip .flip-back{transform:rotateY(180deg);background:#08161c}
.flip-back img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.flip-grid .flip .flip-back img.bgfill{object-fit:cover;filter:blur(18px) brightness(.75);transform:scale(1.15);z-index:0}
.flip-grid .flip .fb-note{z-index:2}
@media (hover:hover){.flip-grid button.photo.flip:hover .flip-inner{transform:rotateY(180deg)}}
.flip-grid button.photo.flip.is-flipped .flip-inner,.flip-grid button.photo.flip:focus-visible .flip-inner{transform:rotateY(180deg)}
@media (prefers-reduced-motion:reduce){.flip-inner{transition:none}}

.flip-grid .flip .fb-note{position:absolute;right:10px;bottom:10px;padding:3px 8px;font-family:var(--f-body);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(8,20,25,.55);border-radius:2px}
/* Mosaic layout: every tile keeps the photos' 3:2 shape */
#portfolio .wrap{container-type:inline-size}
.gallery.flip-grid.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;grid-auto-rows:var(--rowh,80px)}
.gallery.flip-grid.mosaic > .flip{aspect-ratio:auto;height:100%}
.gallery.flip-grid.mosaic > .m1{grid-column:1/7;grid-row:1/7}
.gallery.flip-grid.mosaic > .m2{grid-column:7/10;grid-row:1/4}
.gallery.flip-grid.mosaic > .m3{grid-column:1/3;grid-row:7/11}
.gallery.flip-grid.mosaic > .m4{grid-column:11/13;grid-row:7/9}
.gallery.flip-grid.mosaic > .m5{grid-column:7/10;grid-row:4/7}
.gallery.flip-grid.mosaic > .m6{grid-column:10/13;grid-row:1/4}
.gallery.flip-grid.mosaic > .m7{grid-column:3/7;grid-row:7/11}
.gallery.flip-grid.mosaic > .m8{grid-column:11/13;grid-row:9/11}
.gallery.flip-grid.mosaic > .m9{grid-column:10/13;grid-row:4/7}
.gallery.flip-grid.mosaic > .m10{grid-column:4/7;grid-row:11/14}
.gallery.flip-grid.mosaic > .m11{grid-column:1/4;grid-row:11/14}
.gallery.flip-grid.mosaic > .m12{grid-column:7/11;grid-row:7/11}
.gallery.flip-grid.mosaic > .m13{grid-column:4/7;grid-row:14/17}
.gallery.flip-grid.mosaic > .m14{grid-column:7/13;grid-row:11/17}
.gallery.flip-grid.mosaic > .m15{grid-column:1/4;grid-row:14/17}
.mosaic .m4 .ff-name,.mosaic .m8 .ff-name{font-size:clamp(.95rem,1.4vw,1.25rem)}
.mosaic .m4 .ff-town,.mosaic .m8 .ff-town{font-size:.5625rem;letter-spacing:.12em}
.mosaic .m4 .flip-front,.mosaic .m8 .flip-front{gap:6px;padding:8px !important}
.mosaic .m4 .flip-front::before,.mosaic .m8 .flip-front::before{inset:6px}
@media (max-width:700px){
 .gallery.flip-grid.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:var(--rowh,150px)}
 .gallery.flip-grid.mosaic > .flip.flip{grid-column:span 2;grid-row:span 2}
 .gallery.flip-grid.mosaic > .m3.m3{grid-column:span 2;grid-row:span 4}
 .gallery.flip-grid.mosaic > .m5.m5,.gallery.flip-grid.mosaic > .m6.m6,.gallery.flip-grid.mosaic > .m4.m4,.gallery.flip-grid.mosaic > .m8.m8{grid-column:span 1;grid-row:span 1}
 .mosaic .m5 .ff-name,.mosaic .m6 .ff-name,.mosaic .m4 .ff-name,.mosaic .m8 .ff-name{font-size:1.05rem} .mosaic .m5 .ff-town,.mosaic .m6 .ff-town,.mosaic .m4 .ff-town,.mosaic .m8 .ff-town{font-size:.5625rem}
}
/* Stats ledger */
.ledger{background:var(--band);color:var(--band-fg);padding-block:clamp(40px,5vw,64px)}
.ledger .grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:8px 28px;border-left:1px solid color-mix(in srgb,var(--band-fg) 18%,transparent)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font-family:var(--f-display);font-weight:500;font-size:clamp(2.4rem,4.4vw,3.5rem);line-height:1;font-variant-numeric:tabular-nums lining-nums}
.stat small{display:block;margin-top:12px;font-size:.9375rem;color:var(--band-muted);max-width:22ch}
@media (max-width:820px){.ledger .grid{grid-template-columns:1fr 1fr;row-gap:36px}.stat:nth-child(3){border-left:0;padding-left:0}}
@media (max-width:420px){.stat{padding-inline:16px}}

/* Strategy */
.strategy-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--stone)}
.strat{padding:32px 32px 36px 0;border-bottom:1px solid var(--stone);display:grid;gap:12px;align-content:start;min-width:0}
.strat:nth-child(even){padding-left:32px;border-left:1px solid var(--stone)}
.strat p{color:var(--muted);max-width:52ch}
.strat-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,4vw,56px);padding:clamp(28px,4vw,44px);background:var(--band);color:var(--band-fg);margin-bottom:clamp(40px,5vw,64px)}
.strat-feature > div{display:grid;gap:12px;align-content:start;min-width:0}
.strat-feature .tag{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.strat-feature h3{font-size:var(--s3)}
.strat-feature p{color:var(--band-muted);max-width:58ch}
.strat-feature ul{list-style:none;margin:0;padding:0;align-self:center;min-width:0}
.strat-feature li{display:grid;gap:2px;padding:14px 0;border-top:1px solid color-mix(in srgb,var(--band-fg) 18%,transparent)}
.strat-feature li:first-child{border-top:0}
.strat-feature li b{font-family:var(--f-display);font-weight:500;font-size:1.25rem}
.strat-feature li span{font-size:.9375rem;color:var(--band-muted)}
@media (max-width:820px){.strat-feature{grid-template-columns:1fr}}
.text-link{color:var(--pine);font-weight:600;font-size:.9375rem;text-decoration:none}
.text-link:hover{text-decoration:underline}
.strat .tag{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pine)}
@media (max-width:720px){.strategy-grid{grid-template-columns:1fr}.strat,.strat:nth-child(even){padding-left:0;border-left:0}}

/* Platform (a real sequence) */
.platform{background:var(--surface);border-block:1px solid var(--stone)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:s}
.step{display:grid;gap:14px;align-content:start;min-width:0}
.step h3{display:flex;align-items:baseline;gap:10px;padding-top:4px}
.step .sn{font-family:var(--f-mono);font-size:.8125rem;color:var(--pine);letter-spacing:.06em}
.step p{color:var(--muted);font-size:.9375rem}
.step .photo{aspect-ratio:4/3;min-height:0}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Track record */
.table-wrap{overflow-x:auto;border:1px solid var(--stone);background:var(--surface)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:720px}
th,td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--stone);white-space:nowrap}
th{font-family:var(--f-mono);font-weight:500;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
td.num,th.num{text-align:right}
td.prop{font-family:var(--f-display);font-size:1.125rem;font-weight:500}
tr.total td{font-weight:600;border-bottom:0;background:var(--accent-soft)}
.note{margin-top:16px;font-size:.8125rem;color:var(--muted);max-width:90ch}
.tr-summary{display:flex;flex-wrap:wrap;gap:12px 40px;margin-bottom:24px;font-size:.9375rem;color:var(--muted)}
.tr-summary b{color:var(--ink);font-family:var(--f-display);font-size:1.5rem;font-weight:500;margin-right:6px}

/* Connecticut */
.ct .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.ct .wrap > div{min-width:0}
.markets{list-style:none;margin:0;padding:0;border-top:1px solid var(--stone)}
.markets li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:20px 0;border-bottom:1px solid var(--stone)}
.markets .city{font-family:var(--f-display);font-size:1.5rem}
.markets .meta{font-family:var(--f-mono);font-size:.8125rem;color:var(--muted);align-self:center;text-align:right}
.markets .deals{grid-column:1/-1;font-size:.9375rem;color:var(--muted)}
.ct p + p{margin-top:16px}
.ct-side{display:grid;gap:28px;min-width:0}
.ct-photo{aspect-ratio:3/2;overflow:hidden;border-radius:2px;background:var(--stone)}
.ct-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:860px){.ct .wrap{grid-template-columns:1fr}}

/* Team */
.team{background:var(--surface);border-block:1px solid var(--stone)}
.principals{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:56px}
.person{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start}
.person > div{min-width:0}
.headshot{aspect-ratio:4/5;background:linear-gradient(160deg,var(--accent-soft),var(--stone));display:grid;place-items:center;font-family:var(--f-display);font-size:2rem;color:var(--pine);border-radius:2px}
.person .role{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);margin-block:6px 12px}
.person p{color:var(--muted);font-size:.9375rem}
.mgmt{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;border-top:1px solid var(--stone);padding-top:32px}
.mgmt div{min-width:0}
.mgmt b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.125rem}
.mgmt span{display:block;font-size:.875rem;color:var(--pine);margin:2px 0 8px}
.mgmt p{font-size:.875rem;color:var(--muted)}
@media (max-width:960px){.principals{grid-template-columns:1fr}.mgmt{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.person{grid-template-columns:84px 1fr;gap:16px}.mgmt{grid-template-columns:1fr}}
.team-teaser .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.team-teaser .wrap > div{min-width:0}
.teaser-names{list-style:none;margin:0;padding:0;border-top:1px solid var(--stone)}
.teaser-names li{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--stone)}
.teaser-names b{font-family:var(--f-display);font-weight:500;font-size:1.25rem}
.teaser-names span{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-self:center;text-align:right}
@media (max-width:860px){.team-teaser .wrap{grid-template-columns:1fr}}

/* Team page */
.page-hero{padding-block:clamp(56px,8vw,104px) clamp(40px,5vw,64px);border-bottom:1px solid var(--stone)}
.page-hero h1{font-size:var(--s5);margin-block:16px 20px}
.crumb{font-size:.875rem;color:var(--muted)}
.crumb a{color:var(--pine)}
.group-label{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:40px}
.group-label h2{font-size:var(--s3)}
.group-label span{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px)}
.bio{display:grid;grid-template-columns:minmax(0,200px) 1fr;gap:28px;align-items:start}
.bio > div{min-width:0}
.bio .portrait{aspect-ratio:4/5;background:linear-gradient(160deg,var(--accent-soft),var(--stone));border-radius:2px;display:grid;place-items:center;font-family:var(--f-display);font-size:2.5rem;color:var(--pine);position:relative;overflow:hidden}
.bio .portrait small{position:absolute;bottom:10px;left:12px;font-family:var(--f-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bio h3{font-size:var(--s3)}
.bio .role{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);margin-block:8px 16px}
.bio p{color:var(--muted)}
.bio p + p{margin-top:12px}
.bio .contact-line{margin-top:16px;font-size:.9375rem;color:var(--ink);user-select:all}
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 40px}
.staff{display:grid;grid-template-columns:96px 1fr;gap:20px;align-items:start}
.staff > div{min-width:0}
.staff .portrait{aspect-ratio:4/5;background:linear-gradient(160deg,var(--accent-soft),var(--stone));border-radius:2px;display:grid;place-items:center;font-family:var(--f-display);font-size:1.5rem;color:var(--pine)}
.staff h3{font-size:1.375rem}
.staff .role{font-size:.875rem;color:var(--pine);margin-block:4px 10px;font-weight:500}
.staff p{font-size:.9375rem;color:var(--muted)}
.people{display:grid}
.person-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 48px;padding:28px 0;border-bottom:1px solid var(--stone)}
.person-row:first-child{padding-top:0}
.person-row:last-child{border-bottom:0}
.pr-id h3{font-size:1.625rem}
.pr-id .role{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);margin-top:8px}
.pr-bio{display:grid;gap:12px;color:var(--muted);max-width:68ch}
.pr-bio .contact-line{color:var(--ink);user-select:all}
@media (max-width:720px){.person-row{grid-template-columns:1fr}}
.team-band{background:var(--band);color:var(--band-fg)}
.team-band .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.team-band p{color:var(--band-muted);max-width:56ch;margin-top:12px}
.team-band .btn-primary{background:var(--band-fg);color:var(--band)}
@media (max-width:960px){.lead-grid{grid-template-columns:1fr}.staff-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.bio{grid-template-columns:1fr}.bio .portrait{max-width:220px}.staff-grid{grid-template-columns:1fr}}
nav.main a:not(.btn)[aria-current="page"]{opacity:1;color:var(--pine);text-decoration:underline;text-underline-offset:6px}

/* Third-party management */
.pm .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,88px);align-items:start}
.pm .wrap > div,.pm .wrap > ul{min-width:0}
.pm-intro{display:grid;gap:20px;justify-items:start;position:sticky;top:120px}
.pm-proof{display:flex;flex-wrap:wrap;gap:32px;padding-block:8px}
.pm-proof b{display:block;font-family:var(--f-display);font-weight:500;font-size:2.25rem;line-height:1;font-variant-numeric:tabular-nums}
.pm-proof span{font-size:.875rem;color:var(--muted)}
.pm-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--stone)}
.pm-list li{display:grid;grid-template-columns:minmax(0,220px) 1fr;gap:8px 32px;padding:24px 0;border-bottom:1px solid var(--stone)}
.pm-list h3{font-size:1.25rem}
.pm-list p{color:var(--muted)}
@media (max-width:860px){.pm .wrap{grid-template-columns:1fr}.pm-intro{position:static}}
@media (max-width:560px){.pm-list li{grid-template-columns:1fr}}

/* Audiences */
.paths .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.path{padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:18px;border:1px solid var(--stone);background:var(--surface);min-width:0}
.path.dark{background:var(--band);color:var(--band-fg);border-color:var(--band)}
.path.dark .eyebrow{color:var(--band-muted)}
.path.dark p,.path.dark li{color:var(--band-muted)}
.path ul{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--muted)}
.path .btn{align-self:flex-start;margin-top:auto}
.path ul{margin-bottom:12px}
.path.dark .btn-primary{background:var(--band-fg);color:var(--band)}
.path.dark .btn-primary:hover{background:#fff}
@media (max-width:1000px){.paths .wrap{grid-template-columns:1fr}}

/* Contact */
.contact .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,80px)}
.contact .wrap > div{min-width:0}
.dl{display:grid;gap:20px;margin-top:32px}
.dl div{display:grid;gap:2px}
.dl dt{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dl dd{margin:0;font-size:1.0625rem;user-select:all}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
form .full{grid-column:1/-1}
label{display:grid;gap:6px;font-size:.875rem;font-weight:500}
input,select,textarea{font:inherit;font-weight:400;padding:12px 14px;border:1px solid var(--stone);background:var(--surface);color:var(--ink);border-radius:2px;width:100%}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.form-msg{font-size:.875rem;color:var(--pine)}
@media (max-width:860px){.contact .wrap{grid-template-columns:1fr}}
@media (max-width:520px){form{grid-template-columns:1fr}}

footer{background:var(--band);color:var(--band-muted);padding-block:48px 40px;font-size:.875rem}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start}
footer img{height:40px;width:auto}
footer nav{display:flex;flex-wrap:wrap;gap:20px}
footer a{color:var(--band-fg);text-decoration:none}
footer .legal{margin-top:32px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--band-fg) 15%,transparent);font-size:.75rem;line-height:1.6;max-width:110ch}

/* Mobile menu */
.top .wrap{position:relative}
@media (max-width:980px){
 .menu-btn{display:grid;gap:5px;place-content:center;width:44px;height:44px;border:1px solid var(--stone);background:var(--surface);border-radius:2px;cursor:pointer;margin-left:12px}
 .menu-btn span{display:block;width:20px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
 .top.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .top.open .menu-btn span:nth-child(2){opacity:0}
 .top.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 .top.open nav.main{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--stone);padding:8px var(--gutter) 20px;box-shadow:0 12px 24px rgba(0,0,0,.08)}
 .top.open nav.main a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--stone);font-size:1.0625rem}
 .top.open nav.main .btn{margin-top:16px;justify-content:center}
 nav.main{margin-left:auto}
}
@media (max-width:560px){.menu-btn{margin-left:8px}}
/* Invest */
.inv{padding-block:clamp(56px,7vw,96px)}
.inv-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.inv-grid > *{min-width:0}
.inv-main h2{font-size:var(--s3);margin-block:14px 20px}
.inv-main h3{font-size:1.5rem;margin-top:36px;margin-bottom:10px}
.inv-main p{color:var(--muted);font-size:1.0625rem;line-height:1.7;max-width:68ch}
.inv-main p + p{margin-top:16px}
.inv-side{position:sticky;top:110px;display:grid;gap:24px}
.inv-card{background:var(--band);color:var(--band-fg);padding:32px;display:grid;gap:12px;border-radius:2px}
.inv-card .eyebrow{color:var(--band-muted)}
.inv-card h3{font-size:1.75rem}
.inv-role{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.inv-card p{color:var(--band-muted)}
.inv-card dl{margin:4px 0 8px;display:grid;gap:10px}
.inv-card dt{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.inv-card dd{margin:0;user-select:all}
.inv-card .btn-primary{background:var(--band-fg);color:var(--band);justify-self:start}
.inv-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--stone);padding-top:20px}
.inv-stats b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.75rem}
.inv-stats span{font-size:.8125rem;color:var(--muted)}
.inv-legal{margin-top:48px;padding-top:20px;border-top:1px solid var(--stone);font-size:.8125rem;color:var(--muted);max-width:90ch}
@media (max-width:900px){.inv-grid{grid-template-columns:1fr}.inv-side{position:static}}
/* PM approach */
.pm-approach{padding-block:clamp(56px,7vw,96px);border-bottom:1px solid var(--stone)}
.pm-approach .wrap{display:grid;grid-template-columns:1fr;gap:clamp(24px,3vw,40px)}
.pm-approach .wrap > *{min-width:0}
.pa-lead h2{margin-top:16px;font-size:var(--s3)}
.pa-body{display:block;font-size:1.0625rem;line-height:1.7;color:var(--muted)}
.pa-body::after{content:"";display:block;clear:both}
.pa-body p{max-width:none}
.pa-body p + p,.pa-body figure + p{margin-top:18px}
.pa-pillars{grid-column:1/-1;list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--stone);padding-top:28px}
.pa-pillars li{display:grid;gap:6px}
.pa-pillars b{font-family:var(--f-display);font-weight:500;font-size:1.375rem;color:var(--ink)}
.pa-pillars span{color:var(--muted);font-size:.9375rem}
@media (max-width:860px){.pm-approach .wrap{grid-template-columns:1fr}.pa-pillars{grid-template-columns:1fr}}
/* multi-page additions */
.cta-band{background:var(--band);color:var(--band-fg)}
.cta-band .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.cta-band p{color:var(--band-muted);max-width:56ch;margin-top:12px}
.cta-band .btns{display:flex;flex-wrap:wrap;gap:12px}
.cta-band .btn-primary{background:var(--band-fg);color:var(--band)}
.cta-band .btn-ghost{border-color:var(--band-fg);color:var(--band-fg)}
.cta-band .btn-ghost:hover{background:var(--band-fg);color:var(--band)}
.page-hero .wrap{max-width:var(--wrap)}
.page-hero.has-photo .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.page-hero.has-photo .wrap > *{min-width:0}
.ph-photo{aspect-ratio:3/2;overflow:hidden;border-radius:2px;background:var(--stone)}
.ph-photo img{width:100%;height:100%;object-fit:cover;display:block}
.page-hero.ph-left .wrap{grid-template-columns:1fr 1.05fr}
.page-hero.ph-portrait .wrap{grid-template-columns:1.5fr 1fr}
.page-hero.ph-portrait .ph-photo{aspect-ratio:4/5;max-height:520px;justify-self:end;width:100%}
.ph-banner .ph-text{max-width:760px}
.ph-banner .ph-photo{margin-top:clamp(32px,4vw,56px);aspect-ratio:auto;height:clamp(220px,30vw,420px)}
.ph-bg{background-size:cover;background-position:center;color:#fff;border-bottom:0;padding-block:clamp(96px,13vw,180px)}
.ph-bg .ph-text{max-width:640px}
.ph-bg h1{color:#fff}
.ph-bg .lede{color:rgba(255,255,255,.88)}
.ph-bg .crumb,.ph-bg .crumb a{color:rgba(255,255,255,.8)}
.contact-photo{margin-top:36px;aspect-ratio:3/2;overflow:hidden;border-radius:2px;background:var(--stone)}
.contact-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:860px){.page-hero.has-photo .wrap{grid-template-columns:1fr}.page-hero.ph-left .ph-photo{order:2}.page-hero.ph-portrait .ph-photo{aspect-ratio:3/2;justify-self:stretch}}
.pa-photo{float:right;width:44%;margin:6px 0 20px clamp(28px,4vw,56px);aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:var(--stone)}
@media (max-width:760px){.pa-photo{float:none;width:100%;margin:20px 0}}
.pa-photo img{width:100%;height:100%;object-fit:cover;display:block}
.inv-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.inv-photos figure{margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:2px;background:var(--stone)}
.inv-photos img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:560px){.inv-photos{grid-template-columns:1fr}}
