:root{
  --ink:#111111; --paper:#fbfaf7; --ash:#e7e5df; --stone:#6b6b6b; --white:#ffffff;
  --display:'Special Elite',monospace;
  --mono:'IBM Plex Mono',monospace;
  --body:'Newsreader',serif;
  --wrap:1200px; --pad:32px;
}
*{margin:0;padding:0;box-sizing:border-box;}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:400;
  font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone);}
h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:-0.01em;overflow-wrap:break-word;}

.warnbar{background:var(--ink);color:var(--paper);font-family:var(--mono);
  font-size:11.5px;letter-spacing:.06em;text-align:center;padding:9px 16px;line-height:1.5;}

header{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--ink);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad);
  max-width:var(--wrap);margin:0 auto;}
.brand{font-family:var(--display);font-size:30px;line-height:1;}
.brand img{height:26px;width:auto;display:block;}
@media(max-width:560px){.brand img{height:22px;}}
.navlinks{display:flex;gap:24px;align-items:center;}
.navlinks a{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.navlinks a:hover{color:var(--ink);}
/* reserve the underline on every non CTA link so marking the current page
   adds no height and shifts nothing */
.navlinks a:not(.cta){padding-bottom:2px;border-bottom:2px solid transparent;}
.navlinks a.active{color:var(--ink);border-bottom-color:var(--ink);}
.navlinks a.cta{color:var(--paper);background:var(--ink);padding:9px 16px;}
.navlinks a.cta:hover{color:var(--paper);}
@media(max-width:860px){.navlinks a:not(.cta){display:none;}}

section{padding:88px 0;}
.btn{display:inline-block;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;padding:14px 22px;border:2px solid var(--ink);cursor:pointer;transition:.2s;}
.btn.primary{background:var(--ink);color:var(--paper);}
.btn.primary:hover{background:transparent;color:var(--ink);}
.btn.secondary{background:transparent;color:var(--ink);}
.btn.secondary:hover{background:var(--ink);color:var(--paper);}
.btns{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px;}

.pagehead{padding:96px 0 8px;}
.pagehead h1{font-size:clamp(40px,6.5vw,84px);line-height:1.04;max-width:20ch;margin-top:22px;}
.pagehead .sub{font-family:var(--body);font-weight:300;font-size:clamp(19px,2.4vw,26px);line-height:1.5;max-width:46ch;margin-top:26px;}

.hero{padding:104px 0 68px;}
.hero h1{font-family:var(--body);font-weight:500;letter-spacing:-0.02em;font-size:clamp(44px,7.5vw,96px);line-height:1.06;max-width:19ch;margin-top:26px;}
.hero .sub{font-family:var(--body);font-weight:300;font-size:clamp(19px,2.4vw,26px);line-height:1.5;max-width:44ch;margin-top:28px;}

.imgband{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.imgband .frame{width:100%;height:clamp(300px,56vh,600px);overflow:hidden;background:var(--ash);}
.imgband img{width:100%;height:100%;object-fit:cover;}
.caption{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--stone);padding:12px var(--pad);border-top:1px solid var(--ash);max-width:var(--wrap);margin:0 auto;}

.lede{font-family:var(--body);font-weight:300;font-size:clamp(21px,2.5vw,27px);line-height:1.45;max-width:46ch;}
h2{font-size:clamp(26px,4vw,44px);line-height:1.1;}
.body{max-width:46ch;margin-top:18px;}
.body.wide{max-width:64ch;}
.num{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone);margin-bottom:14px;}

.grid{display:grid;gap:2px;background:var(--ink);border:2px solid var(--ink);margin-top:44px;}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(272px,100%),1fr));}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));}
.cell{background:var(--paper);padding:32px 26px;}
.cell .big{font-family:var(--display);font-size:clamp(40px,5vw,58px);line-height:1;display:block;}
.cell .lab{font-family:var(--body);font-weight:300;font-size:15.5px;line-height:1.5;margin-top:14px;color:#5a5a5a;}
.cell .h{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin:8px 0 0;}
.cell p{font-family:var(--body);font-weight:300;font-size:16.5px;line-height:1.5;margin-top:8px;color:#5a5a5a;}
.source{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-top:16px;}

.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:28px;margin-top:44px;}
.pcard{border:2px solid var(--ink);background:var(--white);display:flex;flex-direction:column;}
.pcard .ph{height:230px;overflow:hidden;background:var(--ash);border-bottom:2px solid var(--ink);}
.pcard .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.02);transition:filter .7s ease;}
.pcard:hover .ph img{filter:none;}
.pcard .in{padding:24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.pcard .loc{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
.pcard .pname{font-family:var(--display);font-size:26px;line-height:1.05;}
.pcard .blurb{font-family:var(--body);font-weight:300;font-size:17px;color:#444;}
.pcard .status{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-top:auto;padding-top:12px;border-top:1px solid var(--ash);}

.figures{border:2px solid var(--ink);background:var(--white);padding:32px;margin-top:36px;}
.figures .h{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-bottom:14px;}
.figures .amount{font-family:var(--display);font-size:clamp(34px,5vw,52px);line-height:1;}
.figures ul{list-style:none;margin-top:18px;}
.figures li{padding:12px 0 12px 26px;border-top:1px solid var(--ash);position:relative;font-size:16.5px;}
.figures li:first-child{border-top:none;}
.figures li::before{content:'>';font-family:var(--mono);position:absolute;left:0;color:var(--stone);font-weight:600;}

.book{border-top:1px solid var(--ink);}
.bookgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:56px;align-items:center;}
.bookgrid img{width:100%;max-width:360px;height:auto;border:2px solid var(--ink);box-shadow:18px 18px 0 var(--ash);}

.quote{background:var(--ink);color:var(--paper);}
.quote blockquote{font-family:var(--display);font-size:clamp(24px,3.4vw,40px);line-height:1.4;max-width:900px;margin:0 auto;}
.quote .who{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#bdbab2;margin:28px auto 0;max-width:900px;}

.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:40px;align-items:center;}
.fee{border:2px dashed var(--stone);padding:20px 22px;margin-top:28px;font-size:16px;background:var(--white);max-width:56ch;}

.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px;background:var(--ink);border:2px solid var(--ink);margin-top:44px;}
.person{background:var(--paper);padding:0;}
.person .photo{height:260px;background:var(--ash);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--ink);}
.person .photo span{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}
.person .meta{padding:22px 24px;}
.person .pn{font-family:var(--display);font-size:22px;line-height:1.1;}
.person .pt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-top:6px;}
.person .pb{font-family:var(--body);font-weight:300;font-size:15.5px;color:#5a5a5a;margin-top:12px;}

.pform{border:2px solid var(--ink);background:var(--white);padding:32px;margin-top:8px;}
.pform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.pform label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin:16px 0 6px;}
.pform input[type=text],.pform input[type=email]{width:100%;font-family:var(--body);font-size:17px;padding:12px 14px;border:2px solid var(--ink);background:var(--paper);}
.pform input:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-color:var(--ink);}
.pform .check{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:15px;}
.pform .check input{margin-top:4px;}
.pform button{margin-top:24px;width:100%;}
.pform .msg{margin-top:16px;font-family:var(--mono);font-size:13px;letter-spacing:.04em;}
.pform .msg.ok{color:#2f6b2f;}
.pform .msg.err{color:#8c2f2f;}
.counter{display:flex;align-items:baseline;gap:14px;border-top:2px solid var(--ink);padding-top:18px;margin-top:8px;}
.counter .n{font-family:var(--display);font-size:clamp(34px,4vw,52px);line-height:1;}
.counter .l{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);}
@media(max-width:560px){.pform .row{grid-template-columns:1fr;}}

.writinglist{list-style:none;margin-top:40px;border-top:2px solid var(--ink);}
.writinglist li{border-bottom:1px solid var(--ash);}
.writinglist a{display:block;padding:26px 0;}
.writinglist .t{font-family:var(--display);font-size:clamp(22px,2.6vw,30px);line-height:1.15;}
.writinglist .d{font-family:var(--body);font-weight:300;font-size:16.5px;color:#5a5a5a;margin-top:8px;max-width:64ch;}

.closing{border-top:3px solid var(--ink);text-align:center;}
.closing p{font-family:var(--display);font-size:clamp(26px,4vw,46px);line-height:1.3;max-width:22ch;margin:0 auto;}

footer{border-top:3px solid var(--ink);padding:64px 0 72px;}
footer .fnav{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:30px;}
footer .fnav a{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
footer .fnav a:hover{color:var(--ink);}
footer .ack{max-width:60ch;font-size:16px;}
footer .warn{font-family:var(--mono);font-size:12.5px;color:var(--stone);margin-top:22px;max-width:60ch;line-height:1.6;}
footer .legal{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--stone);margin-top:26px;line-height:1.7;}
.sig{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin-top:28px;color:var(--ink);}

/* ---------- graceful degradation without JavaScript ----------
   The masterplan, the signature counter and the reference filters are JS only.
   Hide the affordances rather than invite an interaction that cannot happen. */
html:not(.js) .mp .dot,
html:not(.js) .mp .mpbar,
html:not(.js) .mp .mppanel,
html:not(.js) .counter,
html:not(.js) .refbar{display:none;}
html:not(.js) .mp{border-bottom-width:2px;}

/* ---------- visible keyboard focus ----------
   :focus-visible only, so pointer users see no change while keyboard users
   always get a ring that meets contrast against both paper and ink surfaces. */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--ink);outline-offset:3px;border-radius:1px;}
.onink a:focus-visible,.onink button:focus-visible,
.quote a:focus-visible,footer a:focus-visible{outline-color:var(--paper);}
.navlinks a.cta:focus-visible{outline-offset:4px;}

html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1);}
html.js .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none;}}


/* ================================================================
   THE BIG DREAM  ·  /big-dream
   Added 26 July 2026. Everything below either introduces a class the
   rest of the site does not use, or is scoped to body.bigdream, so no
   existing page changes. Section pages carry class="bigdream" on body.
   ================================================================ */

/* ---------- section subnav ---------- */
.subnav{border-bottom:1px solid var(--ink);background:var(--paper);}
.subnav .wrap{display:flex;align-items:baseline;gap:26px;flex-wrap:wrap;padding-top:13px;padding-bottom:13px;}
.sntitle{font-family:var(--display);font-size:16px;line-height:1;flex:0 0 auto;}
.snlinks{display:flex;gap:20px;flex-wrap:wrap;}
.snlinks a{font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--stone);padding-bottom:2px;border-bottom:2px solid transparent;}
.snlinks a:hover{color:var(--ink);}
.snlinks a.on{color:var(--ink);border-bottom-color:var(--ink);}
@media(max-width:620px){.subnav .wrap{gap:12px;}.snlinks{gap:14px;}.sntitle{display:none;}}

/* ---------- scoped overrides of shared rules ---------- */
/* balanced heading wrapping, larger stat numerals, and the grid overflow
   guard, all confined to the section so live pages are untouched */
body.bigdream h1,body.bigdream h2,body.bigdream h3{text-wrap:balance;}
body.bigdream .cell .big{font-size:clamp(46px,6vw,74px);line-height:.98;}
body.bigdream .cell .big.sm{font-size:clamp(32px,4vw,50px);}
body.bigdream .source{line-height:1.9;}
body.bigdream .g3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:900px){body.bigdream .g3{grid-template-columns:repeat(auto-fit,minmax(min(272px,100%),1fr));}}
body.bigdream .brand small{font-family:var(--mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--stone);display:block;margin-top:4px;}
body.bigdream .pform textarea,body.bigdream .pform select{width:100%;font-family:var(--body);
  font-size:17px;padding:12px 14px;border:2px solid var(--ink);background:var(--paper);}
body.bigdream .pform textarea{min-height:120px;resize:vertical;}
body.bigdream .pform textarea:focus-visible,body.bigdream .pform select:focus-visible{
  outline:3px solid var(--ink);outline-offset:2px;border-color:var(--ink);}
body.bigdream h3{font-size:clamp(20px,2.6vw,28px);line-height:1.15;}

/* ---------- NEW · honesty note ---------- */
.honesty{border:2px dashed var(--stone);padding:20px 22px;margin-top:32px;font-size:16px;background:var(--white);max-width:64ch;}
.honesty .h{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-bottom:8px;}

/* ---------- NEW · route strip ---------- */
.route{margin-top:44px;border:2px solid var(--ink);background:var(--white);padding:34px 28px 28px;overflow-x:auto;}
.route .line{display:flex;align-items:flex-start;min-width:640px;}
.route .stop{flex:1;position:relative;padding-top:26px;}
.route .stop::before{content:'';position:absolute;top:6px;left:0;right:0;height:3px;background:var(--ink);}
.route .stop.dashed::before{background:repeating-linear-gradient(90deg,var(--ink) 0 10px,transparent 10px 20px);}
.route .stop::after{content:'';position:absolute;top:0;left:0;width:15px;height:15px;background:var(--paper);border:3px solid var(--ink);border-radius:50%;}
.route .stop.charge::after{background:var(--ink);}
.route .stop:last-child{flex:0 0 auto;min-width:130px;}
.route .sn{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;}
.route .sd{font-family:var(--body);font-weight:300;font-size:14px;color:#5a5a5a;margin-top:4px;padding-right:14px;max-width:20ch;}
.route .rlab{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-top:22px;}

/* ---------- NEW · stage cards ---------- */
.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(272px,100%),1fr));gap:2px;background:var(--ink);border:2px solid var(--ink);margin-top:44px;}
.stage{background:var(--paper);padding:28px 26px;}
.stage .sno{font-family:var(--display);font-size:34px;line-height:1;}
.stage .st{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-top:10px;}
.stage p{font-family:var(--body);font-weight:300;font-size:16px;line-height:1.55;margin-top:12px;color:#5a5a5a;}

/* ---------- NEW · interactive masterplan ---------- */
.mp{margin-top:44px;border:2px solid var(--ink);background:var(--white);}
.mp .mpimg{position:relative;background:var(--ash);}
.mp .mpimg img{width:100%;height:auto;}
.mp .dot{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;
  background:var(--paper);border:3px solid var(--ink);cursor:pointer;padding:0;
  font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink);line-height:1;
  display:flex;align-items:center;justify-content:center;transition:.2s;}
.mp .dot:hover,.mp .dot.on{background:var(--ink);color:var(--paper);transform:scale(1.25);}
.mp .dot.dim{opacity:.25;}
.mp .mpbar{display:flex;flex-wrap:wrap;gap:8px;padding:18px 22px;border-top:2px solid var(--ink);}
.mp .zbtn{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  border:2px solid var(--ink);background:transparent;color:var(--ink);padding:8px 13px;cursor:pointer;transition:.15s;}
.mp .zbtn.on,.mp .zbtn:hover{background:var(--ink);color:var(--paper);}
.mp .mppanel{border-top:1px solid var(--ash);padding:22px;min-height:96px;}
.mp .mppanel .pt{font-family:var(--display);font-size:24px;line-height:1.1;}
.mp .mppanel .pz{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-top:4px;}
.mp .mppanel p{font-family:var(--body);font-weight:300;font-size:16px;color:#5a5a5a;margin-top:10px;max-width:70ch;}
@media(max-width:640px){.mp .dot{width:22px;height:22px;margin:-11px 0 0 -11px;font-size:10px;}}

/* ---------- NEW · allocation chart ---------- */
.alloc{margin-top:44px;border:2px solid var(--ink);background:var(--white);padding:32px;}
.alloc .bar{display:flex;height:64px;border:2px solid var(--ink);background:var(--paper);}
.alloc .seg{position:relative;border-right:2px solid var(--paper);}
.alloc .seg:last-child{border-right:none;}
.alloc .seg.s1{background:var(--ink);}
.alloc .seg.s2{background:#4a4a48;}
.alloc .seg.s3{background:#7c7a75;}
.alloc .seg.s4{background:#b3afa6;}
.alloc .legend{list-style:none;margin-top:22px;}
.alloc .legend li{display:flex;align-items:baseline;gap:14px;padding:13px 0;border-top:1px solid var(--ash);}
.alloc .legend li:first-child{border-top:none;}
.alloc .sw{width:14px;height:14px;flex:0 0 auto;border:2px solid var(--ink);transform:translateY(2px);}
.alloc .legend .ln{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;flex:1;}
.alloc .legend .lv{font-family:var(--display);font-size:24px;}
.alloc .legend .ld{font-family:var(--body);font-weight:300;font-size:15px;color:#5a5a5a;flex-basis:100%;margin-left:28px;margin-top:2px;}
.alloc .legend li{flex-wrap:wrap;}

/* ---------- NEW · sustainability curve ---------- */
.curve{margin-top:44px;border:2px solid var(--ink);background:var(--white);padding:32px 32px 22px;}
.curve svg{width:100%;height:auto;display:block;}
.curve .ct{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-bottom:18px;}
.curve .cn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-top:14px;}

/* ---------- NEW · photo grid ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:2px;
  background:var(--ink);border:2px solid var(--ink);margin-top:44px;}
.pgrid figure{margin:0;background:var(--paper);}
.pgrid img{width:100%;height:250px;object-fit:cover;display:block;}
.pgrid figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--stone);padding:12px 14px;border-top:1px solid var(--ash);}

/* ---------- NEW · data table ---------- */
.dtable{width:100%;border-collapse:collapse;margin-top:36px;border:2px solid var(--ink);background:var(--white);}
.dtable th{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  text-align:left;padding:13px 16px;border-bottom:2px solid var(--ink);background:var(--paper);}
.dtable td{font-family:var(--body);font-weight:300;font-size:16px;padding:13px 16px;border-bottom:1px solid var(--ash);vertical-align:top;}
.dtable tr:last-child td{border-bottom:none;}
.dtable td.n{font-family:var(--display);font-size:19px;white-space:nowrap;}
.tscroll{overflow-x:auto;}

/* ---------- NEW · reference library ---------- */
.refbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px;}
.refbar .zbtn{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  border:2px solid var(--ink);background:transparent;color:var(--ink);padding:8px 13px;cursor:pointer;transition:.15s;}
.refbar .zbtn.on,.refbar .zbtn:hover{background:var(--ink);color:var(--paper);}
.reflist{list-style:none;margin-top:28px;border-top:2px solid var(--ink);}
.reflist li{border-bottom:1px solid var(--ash);padding:20px 0;}
.reflist .rc{font-family:var(--body);font-size:17px;max-width:75ch;}
.reflist .rs{font-family:var(--mono);font-size:12px;color:var(--stone);margin-top:8px;line-height:1.7;word-break:break-word;}
.reflist .rs a{text-decoration:underline;text-underline-offset:3px;}
.badge{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;border:1.5px solid var(--ink);padding:2px 7px;margin-right:10px;transform:translateY(-1px);}
.badge.derived{border-style:dashed;}
.badge.indicative{border-color:var(--stone);color:var(--stone);border-style:dotted;}

/* ---------- NEW · background image with ink scrim ----------
   Usage: <section class="hero bgimg onink" style="--bg:url(assets/x.jpg)">
   --scrim overrides the default veil, --bgpos the focal point. */
.bgimg{position:relative;isolation:isolate;}
.bgimg::before{content:'';position:absolute;inset:0;z-index:-2;
  background-image:var(--bg);background-size:cover;background-position:var(--bgpos,center);}
.bgimg::after{content:'';position:absolute;inset:0;z-index:-1;
  background:var(--scrim,linear-gradient(180deg,rgba(17,17,17,.90) 0%,rgba(17,17,17,.80) 48%,rgba(17,17,17,.92) 100%));}
.onink{color:var(--paper);}
.onink .kicker,.onink .num{color:#cfccc4;}
.onink .sub,.onink .lede,.onink .body{color:#e9e7e1;}
.onink .btn.primary{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.onink .btn.primary:hover{background:transparent;color:var(--paper);}
.onink .btn.secondary{color:var(--paper);border-color:var(--paper);}
.onink .btn.secondary:hover{background:var(--paper);color:var(--ink);}
.hero.bgimg{padding:150px 0 128px;border-bottom:3px solid var(--ink);}
.pagehead.bgimg{padding:120px 0 104px;border-bottom:3px solid var(--ink);margin-bottom:0;}
.imgcred{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:#a7a49c;margin-top:44px;}

/* ---------- NEW · before and after pair ---------- */
.imgpair{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--ink);
  border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.imgpair figure{position:relative;margin:0;background:var(--ash);}
.imgpair img{width:100%;height:clamp(300px,50vh,560px);object-fit:cover;display:block;}
.imgpair .tag{position:absolute;top:0;left:0;background:var(--ink);color:var(--paper);
  font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;padding:10px 18px;}
.imgpair figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--stone);background:var(--paper);padding:14px 18px;line-height:1.8;}
@media(max-width:760px){.imgpair{grid-template-columns:1fr;}
  .imgpair img{height:clamp(240px,40vh,360px);}}

/* ---------- NEW · framed figure inside a split ---------- */
.simg{margin:0;}
.simg img{width:100%;height:auto;border:2px solid var(--ink);display:block;}
.simg figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--stone);margin-top:13px;line-height:1.85;}
body.bigdream .split{margin-top:44px;}
body.bigdream .split.tight{gap:34px;}
@media(min-width:761px){body.bigdream .split.flip>*:first-child{order:2;}}

/* ---------- NEW · thumbnail inside a card or cell ---------- */
.pcard .thumb{width:100%;height:158px;object-fit:cover;display:block;border-bottom:2px solid var(--ink);}
.cell.hasimg{padding-top:0;}
.cell .thumb{width:calc(100% + 52px);margin:0 -26px 22px;height:150px;object-fit:cover;
  display:block;border-bottom:1px solid var(--ash);}

/* ---------- NEW · hero montage rotation ---------- */
.heromontage{position:relative;isolation:isolate;overflow:hidden;
  padding:120px 0 96px;border-bottom:3px solid var(--ink);}
.heromontage .montage{position:absolute;inset:0;z-index:-2;background:var(--ink);}
.heromontage .montage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1);}
.heromontage .montage img.active{opacity:1;}
.heromontage::after{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(17,17,17,.28) 0%,rgba(17,17,17,.10) 55%,rgba(17,17,17,.34) 100%);}
.heromontage .heropanel{background:rgba(17,17,17,.40);
  -webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);
  max-width:680px;padding:38px 42px 44px;border-radius:22px;
  box-shadow:0 0 70px 52px rgba(17,17,17,.40);}
.heromontage h1{font-size:clamp(32px,4.6vw,54px);line-height:1.12;max-width:none;margin-top:20px;}
.heromontage .sub{font-size:clamp(17px,2vw,21px);margin-top:20px;max-width:none;}
.heromontage .btns{margin-top:30px;}
.heromontage .imgcred.herocred{position:absolute;right:30px;bottom:18px;margin:0;color:#d8d5cd;
  text-shadow:0 1px 8px rgba(17,17,17,.8);}
@media(max-width:760px){
  .heromontage{padding:84px 0 72px;}
  .heromontage .heropanel{padding:26px 22px 30px;}
  .heromontage .imgcred.herocred{right:16px;bottom:12px;}
}
@media(prefers-reduced-motion:no-preference){
  .heromontage .montage img{transition:opacity 1.8s ease;}
  .heromontage .montage img.active{animation:montagedrift 10s ease-out forwards;}
  @keyframes montagedrift{from{transform:scale(1.07);}to{transform:scale(1);}}
}
