/* Local Market — brokerage site
   Palette and type lifted from the live city-market worker so a recruit
   clicking through to a city market sees one brand, not two. */
*{box-sizing:border-box}
/* Any display rule outranks the browser's [hidden] styling, so an element with
   display:grid stays visible while the attribute is set. That has now bitten
   twice - the referral-fee row in the calculator and the offer terms in the
   journey - so it is fixed once, globally, rather than per selector. */
[hidden]{display:none!important}
/* Same trap one layer up: a display rule on a <dialog> overrides the browser's
   dialog:not([open]){display:none}, so the dialog renders while closed and
   every open/close test passes against something permanently visible. */
dialog:not([open]){display:none!important}
:root{
  --bg:#faf8f3;--bg-2:#f3eee4;--card:#fff;--card-2:#f5f0e6;--line:#e8e1d2;
  --ink:#22262f;--slate:#5d6575;--slate-dim:#989fac;
  --apricot:#b06f24;--apricot-soft:#d99a4e;--apricot-wash:#f7ecdc;
  --green:#3f7d4e;--green-wash:#e8f0e9;--red:#a8431f;--red-wash:#f7e9e3;
  --chrome:#12151d;--chrome-line:#262c3a;--chrome-ink:#ece7db;--chrome-soft:#93a3b8;
  --ff-disp:'Playfair Display',Georgia,serif;--ff-body:'DM Sans',system-ui,sans-serif;
  --ff-mono:'JetBrains Mono',ui-monospace,monospace;
  --s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:104px}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--ff-body);color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;line-height:1.55;font-size:15px}
h1,h2,h3,h4,h5{font-family:var(--ff-disp);font-weight:600;letter-spacing:-.018em;line-height:1.06;margin:0}
p{margin:0}
a{color:var(--apricot)}
:focus-visible{outline:3px solid var(--apricot);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:9999;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:6px}

.btn{border:0;font:inherit;font-family:var(--ff-body);font-weight:600;font-size:14px;
  padding:12px 21px;border-radius:6px;cursor:pointer;background:var(--apricot);color:#fff;
  text-decoration:none;display:inline-block;text-align:center}
.btn:hover{background:#965c1c}
.btn.dark{background:var(--ink);color:var(--bg)}
.btn.dark:hover{background:#171b24}

/* ── nav ── */
.nav{position:sticky;top:0;z-index:200;background:rgba(250,248,243,.95);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.nav-in{max-width:1180px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:24px}
.logo{font-family:var(--ff-disp);font-weight:700;font-size:19px;letter-spacing:-.02em;
  color:var(--ink);text-decoration:none}
.nav-l{margin-left:auto;display:flex;gap:20px;font-size:13.5px}
.nav-l a{color:var(--slate);text-decoration:none}
.nav-l a:hover{color:var(--apricot)}
.nav .btn{padding:9px 17px;font-size:13px}
@media(max-width:960px){.nav-l{display:none}}

/* ── hero fold with live map ── */
.fold{position:relative;min-height:700px;overflow:hidden;background:var(--bg-2)}
#map{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block;background:#f2ece0}
.leaflet-container{background:#f2ece0;font-family:var(--ff-body)}
.leaflet-control-attribution{font-size:9px;background:rgba(255,255,255,.72)}
.lpin{background:none;border:0}
.lpin i{display:block;width:15px;height:15px;border-radius:50%;background:var(--apricot);
  border:3px solid #fff;box-shadow:0 2px 7px rgba(34,38,47,.42);animation:fadein .5s ease backwards}
.lpin.stop i{background:var(--red)}
.lpin.dim i{width:12px;height:12px;background:#c08a45;border-width:2.5px;opacity:.9}
.lpin.hot::after{content:'';position:absolute;left:-8px;top:-8px;width:31px;height:31px;border-radius:50%;
  border:2px solid var(--apricot);animation:ring 2.6s ease-out infinite}
@keyframes ring{0%{transform:scale(.4);opacity:.85}70%{transform:scale(1.15);opacity:0}100%{opacity:0}}
.scrim{position:absolute;inset:0;z-index:3;pointer-events:none}
.scrim.l{background:linear-gradient(96deg,rgba(250,248,243,.985) 0%,rgba(250,248,243,.95) 29%,
  rgba(250,248,243,.6) 44%,rgba(250,248,243,.08) 61%,rgba(250,248,243,0) 100%)}
.scrim.b{background:linear-gradient(0deg,rgba(250,248,243,.72) 0%,rgba(250,248,243,0) 24%)}
.over{position:relative;z-index:6;display:flex;flex-direction:column;min-height:700px;pointer-events:none}
.over>*{pointer-events:auto}
.mid{flex:1;display:flex;align-items:center;padding:34px 28px}

.rail{position:absolute;right:26px;top:26px;z-index:7;width:216px;background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:9px;
  box-shadow:0 3px 18px rgba(34,38,47,.10);overflow:hidden}
.rail .rh{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;
  justify-content:space-between;align-items:center;gap:8px}
.rail .rh span{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.07em;color:var(--slate)}
.rail .rh i{width:6px;height:6px;border-radius:50%;background:var(--green);display:block;
  animation:blip 2s ease-in-out infinite}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.25}}
.rail button{display:flex;width:100%;align-items:center;gap:9px;text-align:left;border:0;
  background:transparent;font:inherit;font-family:var(--ff-body);font-size:12.5px;color:var(--slate);
  padding:9px 14px;cursor:pointer;border-bottom:1px solid #f1ebdf}
.rail button:last-child{border-bottom:0}
.rail button:hover{background:var(--card-2);color:var(--ink)}
.rail button[aria-pressed=true]{background:var(--apricot-wash);color:var(--ink);font-weight:600;
  box-shadow:inset 2px 0 0 var(--apricot)}
.rail button .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--slate-dim)}
.rail button[aria-pressed=true] .dot{background:var(--apricot)}
.rail button .ct{margin-left:auto;font-family:var(--ff-mono);font-size:10px;color:var(--slate-dim)}
.rail .rf{padding:9px 14px;background:var(--card-2);border-top:1px solid var(--line);
  font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);line-height:1.6}
.zoom{position:absolute;right:26px;bottom:186px;z-index:7;display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:7px;overflow:hidden;box-shadow:0 2px 10px rgba(34,38,47,.1)}
.zoom button{width:34px;height:34px;border:0;background:rgba(255,255,255,.95);color:var(--ink);
  font:inherit;font-size:17px;cursor:pointer;line-height:1}
.zoom button+button{border-top:1px solid var(--line)}
.zoom button:hover{background:var(--card-2)}
.cap{position:absolute;right:26px;bottom:60px;z-index:7;background:rgba(18,21,29,.93);
  color:var(--chrome-ink);border-radius:7px;padding:12px 16px;width:330px;backdrop-filter:blur(6px);
  box-shadow:0 4px 18px rgba(0,0,0,.22)}
.cap .t{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.07em;color:var(--apricot-soft);margin-bottom:5px}
.cap .w{font-size:13px;line-height:1.5}
.synthbar{position:absolute;right:26px;bottom:22px;z-index:7;font-family:var(--ff-mono);font-size:9px;
  color:var(--slate-dim);background:rgba(255,255,255,.85);padding:6px 10px;border-radius:5px;border:1px solid var(--line)}
.pin circle.hd{fill:#b06f24;stroke:#fff;stroke-width:3}
.pin.stop circle.hd{fill:#a8431f}
.pin circle.rg{fill:none;stroke:#b06f24;stroke-width:2;opacity:0}
.pin.stop circle.rg{stroke:#a8431f}
.pin.hot circle.rg{animation:ring 2.6s ease-out infinite}
@keyframes ring{0%{r:8;opacity:.85}70%{r:30;opacity:0}100%{r:30;opacity:0}}
.pin{animation:fadein .5s ease backwards}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.pin.dim circle.hd{fill:#c08a45;stroke:#fff;stroke-width:2;opacity:.85}
.pin.dim.stop circle.hd{fill:#c2705a}
.scan rect{animation:sweep 2.6s cubic-bezier(.4,0,.5,1) forwards}
@keyframes sweep{from{transform:translateX(0)}to{transform:translateX(2900px)}}

.led{max-width:530px}
.kick{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;color:var(--apricot);
  margin-bottom:18px;display:flex;align-items:center;gap:9px}
.kick i{width:7px;height:7px;border-radius:50%;background:var(--apricot);display:block;
  animation:blip 2.2s ease-in-out infinite}
.led h1{font-size:clamp(29px,3.3vw,45px);max-width:16ch;margin-bottom:18px}
.led h1 em{font-style:italic;color:var(--apricot)}
.num{font-family:var(--ff-disp);font-size:clamp(64px,7.6vw,102px);line-height:.85;
  letter-spacing:-.045em;margin-bottom:2px}
.numsub{font-family:var(--ff-mono);font-size:10px;letter-spacing:.05em;color:var(--slate-dim);
  margin:6px 0 0}
.num sup{font-size:.125em;vertical-align:baseline;position:relative;top:-.15em;margin-left:14px;
  color:var(--apricot);font-family:var(--ff-mono);letter-spacing:.13em;font-weight:500}
.feed{margin:18px 0 22px;border-top:1px solid var(--line);max-width:452px}
.ev{display:grid;grid-template-columns:46px 1fr;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ev .t{font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim)}
.ev .w{font-size:13px;line-height:1.45}
.ev .w b{font-weight:600}
.ev .m{display:block;font-family:var(--ff-mono);font-size:9.5px;color:var(--apricot);margin-top:2px}
.ev.new{animation:flash 1.5s ease-out}
@keyframes flash{0%{background:var(--apricot-wash)}100%{background:transparent}}

/* ── city search ── */
.srch{display:flex;border:1.5px solid var(--ink);border-radius:7px;overflow:hidden;background:#fff;max-width:430px}
.srch input{flex:1;border:0;font:inherit;font-size:15px;padding:13px 15px;outline:none;min-width:0;background:#fff;color:var(--ink)}
.srch button{border:0;background:var(--ink);color:var(--bg);font:inherit;font-weight:600;font-size:13.5px;padding:0 18px;cursor:pointer}
.sres{max-width:430px;margin-top:10px;font-size:13px}
.sres .r{display:flex;justify-content:space-between;gap:10px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px 13px;margin-bottom:6px}
.sres .r .c{font-weight:600}
.sres .r .co{font-size:11.5px;color:var(--slate-dim)}
.sres .msg{background:var(--apricot-wash);border:1px solid #eddcc4;border-radius:6px;padding:11px 13px;line-height:1.55}
.st{font-family:var(--ff-mono);font-size:10px;font-weight:600;padding:3px 8px;border-radius:3px;white-space:nowrap}
.st.o{background:var(--green-wash);color:var(--green)}
.st.c{background:var(--card-2);color:var(--slate-dim)}
.st.b{background:var(--apricot-wash);color:var(--apricot)}
.quals{display:flex;gap:7px;flex-wrap:wrap;font-size:12px;margin-top:18px}
.quals span{border:1px solid var(--line);background:rgba(255,255,255,.9);padding:6px 12px;border-radius:100px;color:var(--slate)}

/* ── generic sections ── */
.sec{padding:var(--s9) 0;border-top:1px solid var(--line)}
.sec.w{background:var(--bg-2)}
.sh{font-size:clamp(27px,3.5vw,42px);max-width:22ch;margin-bottom:14px}
.sd{color:var(--slate);font-size:16px;line-height:1.65;max-width:64ch;margin-bottom:var(--s7)}
.sd em{font-style:italic;color:var(--ink)}
.sh.wide{max-width:34ch}
.sh em{font-style:italic;color:var(--apricot)}
.eyebrow{font-family:var(--ff-mono);font-size:11px;color:var(--apricot);letter-spacing:.06em;margin-bottom:14px}

.ledger{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.lhead{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;padding:22px 24px;
  border-bottom:1px solid var(--line);background:var(--card-2)}
.lhead h3{font-size:22px;margin-bottom:4px}
.lhead p{font-size:13px;color:var(--slate)}
.lhead .tot{text-align:right}
.lhead .tot b{display:block;font-family:var(--ff-disp);font-size:42px;line-height:1;color:var(--apricot)}
.lhead .tot span{font-size:11.5px;color:var(--slate);font-family:var(--ff-mono)}
.lrow{display:grid;grid-template-columns:150px 62px 1fr;gap:var(--s5);padding:15px 24px;
  border-bottom:1px solid var(--line);align-items:baseline}
.lrow:last-child{border-bottom:0}
.lrow .k{font-weight:600;font-size:13.5px}
.lrow .n{font-family:var(--ff-mono);font-size:17px;font-weight:600}
.lrow .d{font-size:13px;color:var(--slate);line-height:1.6}
.lfoot{padding:14px 24px;background:var(--card-2);border-top:1px solid var(--line);font-size:12px;color:var(--slate)}
.first{display:grid;grid-template-columns:auto 1fr;gap:var(--s6);align-items:center;background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:26px 28px;margin-top:var(--s7)}
.first .big{font-family:var(--ff-disp);font-size:60px;color:var(--apricot);line-height:1}
.first p{font-size:15px;line-height:1.68;color:var(--slate)}
.first p strong{color:var(--ink);font-weight:600}
.first cite{display:block;font-style:normal;font-family:var(--ff-mono);font-size:10.5px;color:var(--slate-dim);margin-top:9px}

.flow{border-top:1px solid var(--line)}
.fhd{display:grid;grid-template-columns:26px 1.05fr 1.35fr 1.15fr;gap:var(--s5);padding:11px 0;
  border-bottom:1px solid var(--line);font-family:var(--ff-mono);font-size:10.5px;color:var(--slate-dim);letter-spacing:.04em}
.frow{display:grid;grid-template-columns:26px 1.05fr 1.35fr 1.15fr;gap:var(--s5);padding:19px 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.frow .idx{font-family:var(--ff-mono);font-size:11.5px;color:var(--apricot);font-weight:600}
.frow h3{font-size:19px;margin-bottom:5px}
.frow h3 a{color:inherit;text-decoration:none}
.frow h3 a:hover{color:var(--apricot)}
.frow .mvt{font-size:12.5px;color:var(--slate);line-height:1.55}
.frow .act{font-size:13.5px;line-height:1.6;color:var(--slate)}
.frow .out{font-size:13.5px;line-height:1.6;color:var(--ink);font-weight:500}

.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden}
.tool{background:var(--card);padding:22px 20px;min-height:186px;display:flex;flex-direction:column}
.tool h3{font-size:18px;margin-bottom:8px}
.tool p{font-size:13px;line-height:1.6;color:var(--slate)}
.sig{margin-top:auto;padding-top:14px;font-size:11.5px;line-height:1.5;color:var(--apricot);border-top:1px dashed var(--line)}

.obj{display:grid;gap:12px}
.ob{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:22px 24px;
  display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--s6);align-items:start}
.ob h3{font-size:19px;line-height:1.28}
.ob p{font-size:14px;line-height:1.65;color:var(--slate)}
.ob p strong{color:var(--ink);font-weight:600}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stats>div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px 20px}
.stats b{display:block;font-family:var(--ff-disp);font-size:32px;margin-bottom:6px}
.stats p{font-size:12.5px;color:var(--slate);line-height:1.58}

/* ── CTA + form ── */
.cta{background:var(--chrome);color:var(--chrome-ink);padding:var(--s9) 0}
.cta .inner{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:start}
.cta h2{font-size:clamp(28px,3.8vw,44px);margin-bottom:13px;max-width:16ch;color:var(--chrome-ink)}
.cta .lede{color:var(--chrome-soft);font-size:16px;margin-bottom:var(--s5);max-width:44ch}
.cta ul{margin:0;padding:0;list-style:none}
.cta li{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:7px 0;font-size:13.5px;color:#c3ccd6}
.cta li span:first-child{color:var(--apricot-soft);font-family:var(--ff-mono);font-weight:600}
.form{background:var(--card);border-radius:8px;padding:24px;color:var(--ink)}
.form h3{font-size:19px;margin-bottom:4px}
.form .fs{font-size:12.5px;color:var(--slate);margin-bottom:var(--s5)}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.fg.one{grid-template-columns:1fr}
.fld label{display:block;font-size:11.5px;font-weight:600;color:var(--slate);margin-bottom:4px}
.fld input,.fld select{width:100%;border:1px solid var(--line);border-radius:5px;padding:9px 11px;
  font:inherit;font-family:var(--ff-body);font-size:13.5px;background:var(--card);color:var(--ink)}
.fld input:invalid{border-color:var(--line)}
.form .btn{width:100%;margin-top:6px;padding:13px}
.ffine{font-size:11.5px;color:var(--slate-dim);margin-top:11px;line-height:1.55}
.fmsg{margin-top:12px;padding:12px 14px;border-radius:6px;font-size:13.5px;line-height:1.55;display:none}
.fmsg.ok{display:block;background:var(--green-wash);color:var(--green);border:1px solid #cfe0d5}
.fmsg.err{display:block;background:var(--red-wash);color:var(--red);border:1px solid #eed6cd}

.foot{padding:var(--s6) 0 var(--s7);font-size:11.5px;color:var(--slate);line-height:1.75;border-top:1px solid var(--line)}
.foot .fl{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px;font-size:13px}
.foot .fl a{color:var(--slate);text-decoration:none}
.foot .fl a:hover{color:var(--apricot)}

/* ── campaign pages ── */
.chero{padding:var(--s8) 0 var(--s7);border-bottom:1px solid var(--line)}
.chero h1{font-size:clamp(32px,4.6vw,54px);max-width:17ch;margin-bottom:var(--s5)}
.chero .lede{font-size:17.5px;color:var(--slate);line-height:1.62;max-width:56ch}
.trigger{display:inline-grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:var(--s6);
  background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 18px}
.trigger .t{font-family:var(--ff-mono);font-size:10px;color:var(--slate-dim);letter-spacing:.05em}
.trigger .v{font-size:15px;font-weight:600}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.three>div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px 20px}
.three h3{font-size:17px;margin-bottom:9px}
.three p{font-size:13.5px;line-height:1.62;color:var(--slate)}
.three .stat{font-family:var(--ff-mono);font-size:11px;color:var(--apricot);margin-top:12px;
  padding-top:11px;border-top:1px solid var(--line);line-height:1.7}
.steps{border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:96px 1fr;gap:var(--s5);padding:16px 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.step .w{font-family:var(--ff-mono);font-size:10.5px;color:var(--apricot);line-height:1.6}
.step h3{font-size:16px;margin-bottom:5px}
.step p{font-size:13.5px;line-height:1.62;color:var(--slate)}
.step.stop h3,.step.stop .w{color:var(--red)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.two>div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:24px}
.two .who{font-family:var(--ff-mono);font-size:10px;letter-spacing:.05em;padding:4px 9px;
  border-radius:3px;display:inline-block;margin-bottom:12px}
.two .who.subj{background:var(--apricot-wash);color:var(--apricot)}
.two .who.nbr{background:var(--green-wash);color:var(--green)}
.two h3{font-size:19px;margin-bottom:9px}
.two p{font-size:14px;line-height:1.65;color:var(--slate)}
.two p+p{margin-top:10px}
.two p strong{color:var(--ink);font-weight:600}
.bar{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.bar>div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px 22px}
.bar h3{font-size:16px;margin-bottom:7px}
.bar p{font-size:13.5px;line-height:1.62;color:var(--slate)}
.bar .then{margin-top:11px;padding-top:10px;border-top:1px dashed var(--line);font-size:12px;
  color:var(--apricot);line-height:1.55}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ccard{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px 24px;
  text-decoration:none;color:var(--ink);display:block}
.ccard:hover{border-color:var(--apricot-soft);background:#fffdf9}
.ccard .idx{font-family:var(--ff-mono);font-size:10.5px;color:var(--apricot);margin-bottom:8px}
.ccard h3{font-size:21px;margin-bottom:6px}
.ccard .trig{font-size:12.5px;color:var(--slate);font-family:var(--ff-mono);margin-bottom:10px}
.ccard p{font-size:13.5px;color:var(--slate);line-height:1.6}
.more{padding:var(--s7) 0}
.more h3{font-size:17px;margin-bottom:var(--s4)}
.morelist{display:flex;gap:8px;flex-wrap:wrap}
.morelist a{font-size:13px;padding:8px 14px;border-radius:100px;border:1px solid var(--line);
  background:var(--card);color:var(--slate);text-decoration:none}
.morelist a:hover{border-color:var(--apricot-soft);color:var(--ink)}
.crumb{font-size:13px;color:var(--slate);padding:14px 0 0}
.crumb a{color:var(--apricot);text-decoration:none}

@media(max-width:960px){
  .rail{position:static;width:auto;margin:0 28px 14px;backdrop-filter:none}
  .rail button{display:inline-flex;width:auto;border-bottom:0;border-right:1px solid #f1ebdf}
  .rail .rf{display:none}
  .zoom{display:none}
  .scrim.l{background:linear-gradient(180deg,rgba(250,248,243,.97) 0%,rgba(250,248,243,.9) 54%,rgba(250,248,243,.35) 100%)}
  .cap{position:static;margin:0 28px 20px;width:auto}
  .synthbar{position:static;display:inline-block;margin:0 28px 20px}
  .over{min-height:auto}.fold{min-height:auto}
  .cta .inner,.ob,.two,.first{grid-template-columns:1fr}
  .three,.tools,.stats,.bar,.cards{grid-template-columns:1fr 1fr}
  .fhd{display:none}
  .frow{grid-template-columns:24px 1fr;gap:10px}
  .frow .act,.frow .out{grid-column:2}
  .lrow{grid-template-columns:1fr 52px;gap:12px}.lrow .d{grid-column:1/-1}
  .step{grid-template-columns:1fr;gap:5px}
}
@media(max-width:620px){
  .three,.tools,.stats,.bar,.cards,.fg{grid-template-columns:1fr}
  .sec{padding:var(--s8) 0}
  .nav-in{padding:13px 20px}
  .wrap{padding:0 20px}

  /* ── the hero fold on a phone ──
     The rail, caption and synthbar go static at the 960px breakpoint, which
     drops their stacking context — so #map (absolute, z-index 1) painted over
     the top of them. They still took their space in the flow, which is what
     produced the tall blank band above the copy.

     Fixing it properly: the fold becomes a flex column so those three can be
     ordered below the copy, they get position:relative back so they sit above
     the map again, and the map fills the whole fold with the copy resting at
     the bottom of it. */
  .fold{display:flex;flex-direction:column;min-height:96vh}
  .over{order:1;flex:1;justify-content:flex-end;min-height:0}
  /* The copy is tall on a phone, so make room above it rather than trying to
     align it down into space that does not exist. 32vh of clear map first. */
  .mid{padding:32vh 20px 20px;align-items:flex-end}
  /* The campaign rail is a 216px fixed-width panel built for the desktop map's
     right margin. Ordered into the phone layout it overflowed the screen and
     collided with the caption, and its only function - manual campaign
     selection - is already served by the cycle running on its own. Hidden
     here rather than removed, so it returns on rotate or resize. The buttons
     are still built, which is what keeps the caption and pin state in step. */
  .rail{display:none}
  /* The campaign description sat just under the fold on a phone and read as
     a stray box; the cycling pins carry the idea on their own here. */
  .cap{display:none}
  .synthbar{order:3;position:relative;z-index:7;margin:0 20px 22px;right:auto;bottom:auto;left:auto}

  /* Clear at the top so the city is actually visible, opaque behind the copy
     so it stays readable. */
  /* The fold runs taller than the viewport, so these stops are tuned to where
     the copy actually begins (~22% down) rather than to the screen. Clear map
     above it, opaque behind it — otherwise pins show through the headline. */
  .scrim.l{background:linear-gradient(180deg,
    rgba(250,248,243,0) 0%,
    rgba(250,248,243,.03) 11%,
    rgba(250,248,243,.45) 18%,
    rgba(250,248,243,.90) 24%,
    rgba(250,248,243,.985) 32%,
    rgba(250,248,243,.985) 100%)}
  .scrim.b{background:none}
}

/* ══════════════════════════════════════════════════════════════════
   APP WINDOWS — every fold below the hero shows a working surface.
   Left column carries the argument, right column carries the product.
   ══════════════════════════════════════════════════════════════════ */
.duo{display:grid;grid-template-columns:.82fr 1.18fr;gap:var(--s8);align-items:center}
.duo.flip{grid-template-columns:1.18fr .82fr}
.duo.flip .dcopy{order:2}
.duo.flip .dwin{order:1}
.dcopy h2{font-size:clamp(26px,3.2vw,38px);max-width:17ch;margin-bottom:14px}
.dcopy h2 em{font-style:italic;color:var(--apricot)}
.dcopy p{color:var(--slate);font-size:15.5px;line-height:1.65;max-width:46ch}
.dcopy p+p{margin-top:12px}
.dcopy p strong{color:var(--ink);font-weight:600}
.dpts{margin:var(--s5) 0 0;padding:0;list-style:none}
.dpts li{display:grid;grid-template-columns:16px 1fr;gap:11px;padding:8px 0;font-size:14px;color:var(--slate);line-height:1.55}
.dpts li i{width:8px;height:8px;border-radius:50%;background:var(--apricot);margin-top:7px;display:block}

/* Compact evidence strip. Carries the live 30-day figures the worker injects,
   in a fraction of the space the old ledger card took. */
.ministat{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:var(--s5) 0 10px;max-width:420px}
.ministat>div{background:var(--card);padding:13px 14px}
.ministat b{display:block;font-family:var(--ff-disp);font-size:26px;line-height:1;margin-bottom:5px}
.ministat span{font-family:var(--ff-mono);font-size:8.5px;color:var(--slate);letter-spacing:.05em;line-height:1.5;display:block}
.ministat-note{font-size:12px;color:var(--slate-dim);line-height:1.55;max-width:46ch}

.appwin{border:1px solid var(--line);border-radius:10px;background:var(--card);
  box-shadow:0 6px 30px rgba(34,38,47,.10);overflow:hidden}
.wbar{display:flex;gap:6px;align-items:center;padding:10px 14px;background:var(--card-2);border-bottom:1px solid var(--line)}
.wdot{width:9px;height:9px;border-radius:50%;background:var(--line);flex:none}
.wtitle{margin-left:8px;font-family:var(--ff-mono);font-size:10.5px;color:var(--slate);letter-spacing:.03em}
.wlive{margin-left:auto;display:flex;align-items:center;gap:6px;font-family:var(--ff-mono);font-size:9.5px;color:var(--green)}
.wlive i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:blip 2s ease-in-out infinite}
.wbody{padding:0}
.wfoot{padding:9px 14px;background:var(--card-2);border-top:1px solid var(--line);
  font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);line-height:1.6}

/* toggle strip inside a window */
.wtabs{display:flex;gap:3px;background:var(--bg-2);padding:3px;border-radius:5px;margin-left:auto;flex-wrap:wrap}
.wtabs button{font:inherit;font-family:var(--ff-body);font-size:11px;padding:4px 10px;border-radius:3px;
  border:0;background:transparent;color:var(--slate);cursor:pointer;font-weight:500}
.wtabs button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(34,38,47,.09)}

/* ── morning brief ── */
.mb{display:grid;grid-template-columns:132px 1fr;min-height:330px}
.mbrail{border-right:1px solid var(--line);background:var(--card-2);padding:12px 0}
.mbrail div{padding:6px 14px;font-size:12px;color:var(--slate)}
.mbrail div.on{background:var(--apricot-wash);color:var(--apricot);font-weight:600;box-shadow:inset 2px 0 0 var(--apricot)}
.mbrail .g{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);padding-top:11px}
.mbmain{padding:16px}
.mbhd{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.mbhd h4{font-size:17px}
.mbhd span{font-family:var(--ff-mono);font-size:10.5px;color:var(--slate)}
.mbrow{border:1px solid var(--line);border-radius:6px;margin-bottom:7px;overflow:hidden;
  animation:slidein .45s cubic-bezier(.2,.8,.3,1) backwards}
@keyframes slidein{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
.mbtop{display:grid;grid-template-columns:15px 1fr auto;gap:10px;align-items:center;padding:10px 12px;
  cursor:pointer;background:var(--card)}
.mbtop:hover{background:#fffdf9}
.mbrow.open .mbtop{background:var(--apricot-wash)}
.mbtop .ar{font-family:var(--ff-mono);font-size:11px;color:var(--apricot);font-weight:600}
.mbtop .tx{font-size:12.5px;line-height:1.4}
.mbtop .tx s{display:block;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);text-decoration:none;margin-top:2px}
.mbtag{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:100px;white-space:nowrap}
.mbtag.act{background:var(--apricot-wash);color:var(--apricot)}
.mbtag.done{background:var(--green-wash);color:var(--green)}
.mbdet{display:none;padding:13px 12px;border-top:1px solid var(--line);background:#fdfbf7}
.mbrow.open .mbdet{display:block}
.mbdet .lbl{font-family:var(--ff-mono);font-size:9px;color:var(--apricot);letter-spacing:.05em;margin-bottom:5px}
.mbdet p{font-size:12.5px;line-height:1.6;color:var(--slate)}
.mbacts{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}
.mbacts button{font:inherit;font-family:var(--ff-body);font-size:11.5px;padding:6px 12px;border-radius:5px;
  border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer}
.mbacts button.pri{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600}
.mbacts button:disabled{opacity:.5;cursor:default}
.mbhint{margin-top:10px;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim)}

/* ── campaign explorer ── */
.ce{display:grid;grid-template-columns:1fr 1fr;min-height:420px}
.cemap{position:relative;border-right:1px solid var(--line);background:var(--card-2);min-height:420px}
.cemap #cemapc{position:absolute;inset:0;width:100%;height:100%;background:#f2ece0}
.cemap .leaflet-container{background:#f2ece0;font-family:var(--ff-body)}
.cemap .leaflet-control-attribution{font-size:8.5px;background:rgba(255,255,255,.72)}
.cefail{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;
  font-size:12.5px;color:var(--slate);background:var(--card-2)}
.cescope{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.94);border:1px solid var(--line);
  border-radius:5px;padding:6px 9px;font-family:var(--ff-mono);font-size:9px;color:var(--slate);max-width:230px;line-height:1.6}
.ceside{padding:15px;overflow:auto;max-height:420px}
.cesm{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);letter-spacing:.05em;margin-bottom:7px}
.ceside h4{font-size:17px;margin-bottom:3px}
.ceside .ad{font-family:var(--ff-mono);font-size:10px;color:var(--slate);margin-bottom:12px}
.ccontact{border:1px solid var(--apricot-soft);border-radius:6px;overflow:hidden;margin-bottom:11px}
.ccontact .ch{background:var(--apricot-wash);padding:7px 11px;font-family:var(--ff-mono);font-size:9px;
  color:var(--apricot);letter-spacing:.05em;display:flex;justify-content:space-between;gap:8px}
.ccontact .cb{padding:11px}
.cnm{font-family:var(--ff-disp);font-size:15px;margin-bottom:2px}
.crl{font-size:11px;color:var(--slate);margin-bottom:9px}
.crow2{display:grid;grid-template-columns:56px 1fr auto;gap:8px;padding:5px 0;border-top:1px solid var(--line);
  font-size:11.5px;align-items:center}
.crow2:first-of-type{border-top:0}
.crow2 .l{font-family:var(--ff-mono);font-size:8.5px;color:var(--slate-dim);letter-spacing:.04em}
.crow2 .v{font-family:var(--ff-mono);font-size:10.5px;word-break:break-all}
.fl2{font-family:var(--ff-mono);font-size:8px;font-weight:600;padding:2px 5px;border-radius:3px;white-space:nowrap}
.fl2.ok{background:var(--green-wash);color:var(--green)}
.fl2.warn{background:var(--apricot-wash);color:var(--apricot)}
.fl2.bad{background:var(--red-wash);color:var(--red)}
.cacts{display:flex;gap:4px;flex-wrap:wrap;padding:9px 11px;border-top:1px solid var(--line);background:var(--card-2)}
.cacts button{font:inherit;font-family:var(--ff-body);font-size:10.5px;padding:5px 9px;border-radius:4px;
  border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer}
.cacts button.pri{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600}
.cacts button:disabled{opacity:.45;cursor:not-allowed}
.ckv{border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:11px}
.ckv div{display:grid;grid-template-columns:1fr auto;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:11.5px}
.ckv div:last-child{border-bottom:0}
.ckv div span:first-child{color:var(--slate)}
.ckv div span:last-child{font-family:var(--ff-mono);font-weight:500;text-align:right}
.cdraft{background:var(--apricot-wash);border:1px solid #eddcc4;border-radius:5px;padding:10px 12px}
.cdraft .h{font-family:var(--ff-mono);font-size:9px;color:var(--apricot);margin-bottom:4px;letter-spacing:.04em}
.cdraft p{font-size:12px;line-height:1.55}
.cepub{background:var(--card-2);border:1px solid var(--line);border-radius:5px;padding:11px 13px;font-size:12px;line-height:1.6;color:var(--slate)}
.cepub b{color:var(--ink)}

/* ── journey ── */
.jsteps{display:flex;border-bottom:1px solid var(--line);background:var(--card-2);flex-wrap:wrap}
.jsteps div{flex:1;min-width:104px;padding:9px 11px;font-size:11px;color:var(--slate-dim);
  border-right:1px solid var(--line);display:flex;gap:7px;align-items:center}
.jsteps div:last-child{border-right:0}
.jsteps div .n{font-family:var(--ff-mono);font-size:9px;width:15px;height:15px;border-radius:50%;
  background:var(--line);color:var(--slate);display:grid;place-items:center;flex:none}
.jsteps div.on{color:var(--ink);font-weight:600;background:var(--card)}
.jsteps div.on .n{background:var(--apricot);color:#fff}
.jsteps div.done .n{background:var(--green);color:#fff}
.jbody{display:grid;grid-template-columns:1fr 1fr;min-height:320px}
.jpub{padding:16px;border-right:1px solid var(--line)}
.jagt{padding:16px;background:#fbf9f5}
.jlab{font-family:var(--ff-mono);font-size:9px;letter-spacing:.05em;padding:3px 8px;border-radius:3px;
  display:inline-block;margin-bottom:11px}
.jlab.p{background:var(--green-wash);color:var(--green)}
.jlab.a{background:var(--apricot-wash);color:var(--apricot)}
.jstage[hidden]{display:none}
.jfld{margin-bottom:11px}
.jfld label{display:block;font-size:11px;font-weight:600;color:var(--slate);margin-bottom:4px}
.jfld input{width:100%;border:1px solid var(--line);border-radius:5px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff}
.jsug{border:1px solid var(--line);border-top:0;border-radius:0 0 5px 5px;overflow:hidden}
.jsug button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);
  background:#fff;padding:8px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--ink)}
.jsug button:last-child{border-bottom:0}
.jsug button:hover{background:var(--card-2)}
.jsug button small{display:block;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);margin-top:2px}
.jbig{font-family:var(--ff-disp);font-size:34px;color:var(--apricot);line-height:1;margin-bottom:3px}
.jsub{font-size:11.5px;color:var(--slate);margin-bottom:11px}
input[type=range]{width:100%;accent-color:var(--apricot)}
.jticks{display:flex;justify-content:space-between;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);margin-top:5px}
.jrec{border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-top:12px}
.jrec .rh{background:var(--card-2);padding:6px 10px;font-family:var(--ff-mono);font-size:8.5px;color:var(--slate);border-bottom:1px solid var(--line)}
.jrec .rr{display:grid;grid-template-columns:1fr auto auto;gap:9px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:11.5px}
.jrec .rr:last-child{border-bottom:0}
.jrec .rr span:not(:first-child){font-family:var(--ff-mono);font-size:10.5px;color:var(--slate)}
.jwait{color:var(--slate-dim);font-size:12.5px;line-height:1.6;padding:22px 4px;text-align:center}
.jnote{font-size:12px;color:var(--slate);line-height:1.6;margin-top:11px}
.jwhy{font-size:12.5px;line-height:1.6;color:var(--slate);margin-top:2px}
.jsteps .jl{display:inline}
.jfld select{width:100%;border:1px solid var(--line);border-radius:5px;padding:8px 10px;
  font:inherit;font-size:13px;background:#fff;color:var(--ink)}
#jterms{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}

/* ── live market links ── */
.live{margin-top:var(--s8);border-top:1px solid var(--line);padding-top:var(--s7)}
.livehd{max-width:60ch;margin-bottom:var(--s5)}
.livehd h3{font-size:clamp(21px,2.5vw,28px);margin-bottom:10px}
.livehd p{font-size:15px;line-height:1.62;color:var(--slate)}
/* ── the letter, as a printed sheet ── */
/* The sheet is scaled to 43% and only covers its own height, so the wrapper
   behind it was showing as a second tone below the letter. A letter is one
   piece of paper. */
.sheetwrap{flex:1;min-height:0;overflow:hidden;background:#fff;position:relative}
.sheet{background:#fff;color:#12151d;font-family:'DM Sans',system-ui,sans-serif}
/* The card preview shows the top of sheet one at print proportions and lets the
   rest run under the fold — the point is that it is a real letter, not that all
   of it is legible at 350px. */
.sheetwrap .sheet{position:absolute;inset:0;width:816px;transform:scale(.43);
  transform-origin:top left;padding:44px 56px;pointer-events:none}
.sheet.big{width:816px;margin:0 auto;padding:56px 64px;box-shadow:0 3px 18px rgba(0,0,0,.10)}
.sheetscroll{overflow:auto;background:var(--bg-2);padding:22px 16px 40px}
.lpm-body.sheetscroll{background:var(--bg-2)}
.sh-page{font-size:13px;line-height:1.62}
.sh-page p{margin:0 0 11px}
.sh-lead{font-weight:700;font-size:12px;letter-spacing:.01em;margin:14px 0 10px}
.sh-ul{margin:0 0 11px;padding-left:17px}
.sh-ul li{margin-bottom:4px}
.lh-brand{font-family:'Playfair Display',Georgia,serif;font-size:27px;letter-spacing:-.01em}
.lh-brand strong{font-weight:700}
.lh-brand::after{content:''}
.lh-line{font-size:10.5px;color:#5d6575;margin-top:3px}
.lh-rule{height:2px;background:#b06f24;margin:9px 0 26px}
.sh-date{margin-bottom:20px}
.sh-to{margin-bottom:20px;line-height:1.5}
.sh-dear{margin-bottom:14px}
.sh-sincerely{margin-top:18px;margin-bottom:2px}
.sh-sig{font-size:30px;line-height:1;color:#1f3a8a;margin:2px 0 6px;font-family:Georgia,serif}
.sh-name{font-weight:600}
.sh-dre{font-size:11px;color:#5d6575;margin-bottom:24px}
.sh-qr{display:flex;gap:14px;align-items:center;font-size:11px;line-height:1.55}
.sh-qr strong{font-size:12.5px}
.sh-qr.boxed{margin-top:26px;padding:16px 18px;background:#fdf8ef;border:1px solid #eddcc4;border-radius:6px}
.sh-url{color:#b06f24;font-size:10.5px}
.sh-foot{margin-top:34px;padding-top:9px;border-top:1px solid #e8e1d2;font-size:9.5px;color:#989fac}
.sh-eyebrow{font-family:'IBM Plex Mono','JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:#b06f24}
.sh-h{font-family:'Playfair Display',Georgia,serif;font-size:22px;margin:0 0 14px;font-weight:600}
.sh-tbl{width:100%;border-collapse:collapse;margin-top:18px;font-size:10.5px}
.sh-tbl th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:.09em;
  color:#5d6575;font-weight:500;padding:0 8px 7px 0;border-bottom:1px solid #12151d;vertical-align:bottom}
.sh-tbl td{padding:6px 8px 6px 0;border-bottom:1px solid #ece7dd}
.sh-tbl tr.later{background:#fdf8ef}
.sh-tbl .ad em{font-style:normal;color:#989fac;font-size:9px;margin-left:4px}
.sh-tbl .pr{text-align:right;font-family:'JetBrains Mono',monospace}
.sh-tbl .ct{text-align:center;font-size:9.5px}
.sh-tbl .ct.hl{color:#b06f24;font-weight:600}
.linkish{border:0;background:transparent;font:inherit;font-size:11px;font-weight:600;
  color:var(--apricot);cursor:pointer;padding:0}
.linkish:hover{text-decoration:underline}
#ltrmodal{width:min(92vw,900px);max-width:min(92vw,900px);height:92vh;max-height:92vh;border:0;padding:0;
  border-radius:12px;background:var(--card);color:var(--ink);flex-direction:column;overflow:hidden;
  box-shadow:0 30px 90px rgba(0,0,0,.45)}
#ltrmodal[open]{display:flex;animation:mpop .2s cubic-bezier(.2,.8,.3,1)}
#ltrmodal::backdrop{background:rgba(10,13,18,.72)}
@media(max-width:900px){
  .sheet.big{width:100%;padding:30px 24px}
  .sh-tbl{font-size:9.5px}
  #ltrmodal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}
}

/* market cards, led by each market's own share image */
/* One line of markets, swiped sideways. Native overflow scrolling does the
   work — touch, trackpad and shift-wheel all come free — with snap points so a
   card never comes to rest half off the edge. The arrows exist for a mouse,
   which has no gesture for horizontal scroll. */
.mkscroll{position:relative}
.mkrail{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:2px 2px 10px;margin:0 -2px;
  scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}
.mkrail::-webkit-scrollbar{display:none}
.mkrail:focus-visible{outline:2px solid var(--apricot);outline-offset:3px;border-radius:10px}
.mkrail > .mkcard{flex:0 0 272px;scroll-snap-align:start}
.mknav{position:absolute;top:calc(50% - 34px);transform:translateY(-50%);z-index:5;
  width:36px;height:36px;border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--ink);font-size:19px;line-height:1;cursor:pointer;
  box-shadow:0 3px 12px rgba(34,38,47,.16);display:grid;place-items:center;padding:0 0 2px}
.mknav:hover{border-color:var(--apricot-soft);color:var(--apricot)}
.mknav.prev{left:-14px}
.mknav.next{right:-14px}
.mknav[hidden]{display:none}
/* A coarse pointer already has the gesture; the arrows would only cover cards. */
@media(hover:none),(max-width:620px){ .mknav{display:none} }
.mkcard{display:flex;flex-direction:column;min-width:0;background:var(--card);
  border:1px solid var(--line);border-radius:9px;overflow:hidden;text-decoration:none;color:var(--ink);
  transition:border-color .15s,transform .15s,box-shadow .15s}
.mkcard:hover{border-color:var(--apricot-soft);transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(34,38,47,.10)}
.mkshot{display:block;aspect-ratio:1200/630;background:var(--card-2);overflow:hidden;
  border-bottom:1px solid var(--line);position:relative}
/* Six of these share images could not be verified from the build environment.
   If one 404s the card keeps its shape and shows the market name rather than
   collapsing to an empty box. */
.mkshot.noshot{display:grid;place-items:center}
.mkshot.noshot img{display:none}
.mkshot.noshot::after{content:attr(data-label);font-family:var(--ff-disp);font-size:15px;
  color:var(--slate-dim);padding:0 14px;text-align:center}
.mkshot img{width:100%;height:100%;object-fit:cover;display:block}
.mkbody{display:flex;flex-direction:column;padding:13px 14px 14px;gap:4px;flex:1}
.mkname{font-family:var(--ff-disp);font-size:16px;line-height:1.25}
.mkmeta{font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);line-height:1.6}
.mkdom{margin-top:auto;padding-top:9px;font-size:11.5px;font-weight:600;color:var(--apricot);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.livedeep{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:16px;
  font-size:13px;color:var(--slate)}
.livedeep a{color:var(--apricot);text-decoration:none;font-weight:500}
.livedeep a:hover{text-decoration:underline}
.jalert{border:1px solid var(--apricot-soft);border-radius:6px;overflow:hidden;animation:pop .5s cubic-bezier(.2,.9,.3,1)}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}
.jalert .ah{background:var(--apricot);color:#fff;padding:9px 12px;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.04em}
.jalert .ab{padding:13px}
.jalert h5{font-family:var(--ff-disp);font-size:16px;margin-bottom:8px}
.jnav{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--card-2);align-items:center;flex-wrap:wrap}
.jnav .bk{background:transparent;border:1px solid var(--line);color:var(--slate);font:inherit;font-size:12px;padding:7px 13px;border-radius:5px;cursor:pointer}
.jnav .nx{background:var(--apricot);border:0;color:#fff;font:inherit;font-weight:600;font-size:12.5px;padding:8px 15px;border-radius:5px;cursor:pointer}
.jnav .nx:disabled{background:var(--line);color:var(--slate-dim);cursor:not-allowed}
.jnav .sp{margin-left:auto;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim)}

/* ── letters → landing page → tracking: three equal cards ── */
.lt3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch}
/* Cards stretch to the tallest, but the tallest was the letter at ~360px,
   which left the embedded page 152px to render in. The floor is set by what
   the live page needs to be worth showing. */
.lt3card{display:flex;flex-direction:column;min-width:0;min-height:560px;background:var(--card);
  border:1px solid var(--line);border-radius:9px;overflow:hidden}
.lt3head{display:flex;align-items:center;gap:9px;padding:11px 14px;background:var(--card-2);
  border-bottom:1px solid var(--line);flex:none}
.lt3n{width:19px;height:19px;border-radius:50%;background:var(--apricot);color:#fff;flex:none;
  font-family:var(--ff-mono);font-size:10px;display:grid;place-items:center;font-weight:600}
.lt3t{font-size:13.5px;font-weight:600}
.lt3head .bfrm-x,.lt3head .wlive{margin-left:auto}
.lt3body{flex:1;min-height:0;padding:14px;display:flex;flex-direction:column}
.lt3body.flush{padding:0}
.lt3foot{flex:none;padding:10px 14px;background:var(--card-2);border-top:1px solid var(--line);
  font-size:11px;color:var(--slate);line-height:1.55}
.lt3foot a{color:var(--apricot);font-weight:600;text-decoration:none;white-space:nowrap}
.lt3foot a:hover{text-decoration:underline}

.lt3card .paper{border:0;box-shadow:none;padding:0;font-size:11.5px;line-height:1.62}
.lt3card .paper h5{font-size:14px}
.lt3card .paper .qr{margin-top:auto;padding-top:12px}
.lt3card .paper .qr span:last-child{font-size:8.5px;line-height:1.7}

.trksend{width:100%;font:inherit;font-family:var(--ff-body);font-weight:600;font-size:12.5px;
  padding:10px 12px;border-radius:6px;border:0;background:var(--apricot);color:#fff;cursor:pointer;
  margin-bottom:12px;flex:none}
.trksend:disabled{background:var(--card-2);color:var(--slate-dim);cursor:default}

/* browser frame around a genuinely live page */
.bfrm{border:0;border-radius:0;overflow:hidden;background:var(--card);height:100%;
  display:flex;flex-direction:column}
.bfrm-body{flex:1}
.bfrm-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;background:var(--card-2);
  border-bottom:1px solid var(--line)}
.bfrm-url{min-width:0;margin-left:8px;font-family:var(--ff-mono);font-size:10px;color:var(--slate);
  background:var(--card);border:1px solid var(--line);border-radius:100px;padding:4px 11px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.bfrm-tabs{display:flex;gap:3px;padding:7px 10px;background:var(--card-2);border-bottom:1px solid var(--line);flex-wrap:wrap}
.bfrm-tabs button{font:inherit;font-family:var(--ff-body);font-size:11px;padding:4px 10px;border-radius:4px;
  border:1px solid transparent;background:transparent;color:var(--slate);cursor:pointer}
.bfrm-tabs button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600;border-color:var(--line)}
.bfrm-body{position:relative;background:var(--bg-2)}
.bfrm-body iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#fff}
.lpwait{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px;
  color:var(--slate-dim);font-family:var(--ff-mono);text-align:center;padding:20px}
.lpwait.gone{display:none}
.bfrm-x{border:1px solid var(--line);background:var(--card);color:var(--slate);font:inherit;
  font-size:10.5px;font-weight:600;padding:5px 11px;border-radius:100px;cursor:pointer;white-space:nowrap;flex:none}
.bfrm-x:hover{border-color:var(--apricot-soft);color:var(--ink)}

/* full-screen review of a live page */
#lpmodal{width:96vw;max-width:96vw;height:94vh;max-height:94vh;border:0;padding:0;border-radius:12px;
  background:var(--card);color:var(--ink);flex-direction:column;overflow:hidden;
  box-shadow:0 30px 90px rgba(0,0,0,.45)}
#lpmodal::backdrop{background:rgba(10,13,18,.72)}
#lpmodal[open]{display:flex;animation:mpop .2s cubic-bezier(.2,.8,.3,1)}
.lpm-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--card-2);
  border-bottom:1px solid var(--line);flex:none;flex-wrap:wrap}
.lpm-tabs{display:flex;gap:3px;flex-wrap:wrap}
.lpm-tabs button{font:inherit;font-family:var(--ff-body);font-size:11px;padding:4px 10px;border-radius:4px;
  border:1px solid transparent;background:transparent;color:var(--slate);cursor:pointer}
.lpm-tabs button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600;border-color:var(--line)}
.lpm-open{font-size:11.5px;font-weight:600;color:var(--apricot);text-decoration:none;white-space:nowrap}
.lpm-open:hover{text-decoration:underline}
.lpm-body{flex:1;min-height:0;background:#fff}
.lpm-body iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:620px){
  #lpmodal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}
  .lpm-bar .bfrm-url{order:3;width:100%;margin-left:0}
}

/* tracking panel */
.trk{padding:16px}
.trkbtns{display:flex;gap:7px;margin-bottom:13px;flex-wrap:wrap;align-items:center}
.trkbtns button{font:inherit;font-family:var(--ff-body);font-size:12.5px;padding:9px 15px;border-radius:5px;
  border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer}
.trkbtns button.pri{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600}
.trkbtns button:disabled{opacity:.5;cursor:default}
.ltlog{flex:1;min-height:0;display:flex;flex-direction:column}
.ltlog .lh{display:block;font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.05em}
#ltlogrows{overflow:auto;flex:1;min-height:0}
.ltev{display:grid;grid-template-columns:1fr auto;gap:4px 9px;padding:8px 10px;align-items:baseline}
.ltev .t{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);grid-row:1}
.ltev .ad{font-family:var(--ff-mono);font-size:10.5px;grid-row:1;grid-column:1}
/* Grid items stretch by default, so the status chip filled the whole second
   track and squeezed the address into three wrapped lines. */
.ltev .s{grid-row:1;grid-column:2;justify-self:end;align-self:center}
.ltev .ad{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ltev .wd{grid-column:1/-1;grid-row:2;font-size:11px;color:var(--slate);line-height:1.45}
.ltev .wd em{font-style:normal;font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);margin-right:5px}

/* ── letters + QR ── */
.ltdoc{padding:0}
.paper{background:#fff;border:1px solid var(--line);border-radius:4px;padding:16px 18px;font-size:12px;line-height:1.7;
  box-shadow:0 2px 10px rgba(34,38,47,.06)}
.paper .ph{font-family:var(--ff-mono);font-size:8.5px;color:var(--slate-dim);letter-spacing:.05em;
  padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.paper h5{font-family:var(--ff-disp);font-size:15px;margin-bottom:8px}
.paper p+p{margin-top:7px}
.paper .qr{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);display:flex;gap:11px;align-items:center}
.paper .qr svg{flex:none}
.paper .qr span{font-family:var(--ff-mono);font-size:9px;color:var(--slate);line-height:1.6}
.ltside{padding:16px}
.ltbtns{display:flex;gap:7px;margin-bottom:13px;flex-wrap:wrap}
.ltbtns button{font:inherit;font-family:var(--ff-body);font-size:12px;padding:8px 14px;border-radius:5px;
  border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer}
.ltbtns button.pri{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600}
.ltbtns button:disabled{opacity:.5;cursor:default}
.ltstat{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:13px}
.ltstat div{border:1px solid var(--line);border-radius:5px;padding:9px 10px;background:var(--card)}
.ltstat b{display:block;font-family:var(--ff-disp);font-size:21px;line-height:1}
.ltstat span{font-family:var(--ff-mono);font-size:8.5px;color:var(--slate);letter-spacing:.03em}
.ltlog{border:1px solid var(--line);border-radius:5px;overflow:hidden}
.ltlog .lh{background:var(--card-2);padding:6px 10px;font-family:var(--ff-mono);font-size:8.5px;color:var(--slate);border-bottom:1px solid var(--line)}
.ltev{border-bottom:1px solid var(--line);
  font-size:11.5px;align-items:center;animation:slidein .4s ease backwards}
.ltev:last-child{border-bottom:0}
.ltev .t{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim)}
.ltev .s{font-family:var(--ff-mono);font-size:8.5px;font-weight:600;padding:2px 6px;border-radius:3px}
.ltev .s.scan{background:var(--apricot-wash);color:var(--apricot)}
.ltev .s.lead{background:var(--green-wash);color:var(--green)}
.ltev .s.sent{background:var(--card-2);color:var(--slate-dim)}
.ltempty{color:var(--slate-dim);font-size:12px;padding:18px 10px;text-align:center;line-height:1.6}

/* ── intelligence: trajectory + live feed ── */
.intel2{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;align-items:stretch}
.ipanel{display:flex;flex-direction:column;min-width:0;background:var(--card);
  border:1px solid var(--line);border-radius:9px;overflow:hidden}
.ihead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:16px 18px 13px;border-bottom:1px solid var(--line)}
.ilbl{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.09em;color:var(--apricot);margin-bottom:5px}
.isub{font-size:12.5px;color:var(--slate)}
.iwin{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);border:1px solid var(--line);
  border-radius:100px;padding:4px 10px;white-space:nowrap}
.ichart{flex:1;min-height:0;padding:14px 16px 4px;position:relative}
.ichart svg{width:100%;height:100%;display:block;min-height:230px}
.ifoot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:12px 18px;background:var(--card-2);border-top:1px solid var(--line);
  font-family:var(--ff-mono);font-size:10px;color:var(--slate-dim)}
.ifoot.single{justify-content:flex-start}
.ifoot b{font-weight:500;color:var(--slate)}
.ifoot i{font-style:normal;color:var(--apricot);font-size:12px;margin-left:5px}
.ixmid{color:var(--slate-dim)}

.ifeed{flex:1;min-height:0;overflow:auto}
.ixrow{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 18px;
  border-bottom:1px solid var(--line);align-items:baseline;
  animation:slidein .45s cubic-bezier(.2,.8,.3,1) backwards}
.ixrow:last-child{border-bottom:0}
.ixaddr{display:block;font-size:14px;font-weight:600;line-height:1.3}
.ixmeta{display:block;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);
  margin-top:3px;line-height:1.6}
.ixb{text-align:right;white-space:nowrap}
.ixprice{display:block;font-family:var(--ff-disp);font-size:17px;color:var(--apricot);line-height:1.2}
.ixdate{display:block;font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);margin-top:3px}
.ixwait{padding:26px 18px;text-align:center;font-size:12.5px;color:var(--slate-dim)}
.ixtip{display:none}

/* the three counters under the panels — lost when the old bar chart went */
.itlgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.itlgrid>div{border:1px solid var(--line);border-radius:9px;padding:16px 18px;background:var(--card)}
.itlgrid b{display:block;font-family:var(--ff-disp);font-size:26px;line-height:1;margin-bottom:6px;
  transition:color .4s}
.itlgrid b.bump{color:var(--apricot)}
.itlgrid span{font-family:var(--ff-mono);font-size:8.5px;color:var(--slate);letter-spacing:.04em;
  line-height:1.7;display:block}

@media(max-width:960px){
  .duo,.duo.flip{grid-template-columns:1fr;gap:var(--s6)}
  .duo.flip .dcopy{order:1}.duo.flip .dwin{order:2}
  .mb,.ce,.jbody{grid-template-columns:1fr}
  .lt3{grid-template-columns:1fr;gap:12px}
  .lt3card{min-height:460px}
  .mbrail{display:none}
  .cemap{border-right:0;border-bottom:1px solid var(--line);min-height:280px}
  .ceside,.ltside{max-height:none}
  .jpub{border-right:0;border-bottom:1px solid var(--line)}
  .mkrail > .mkcard{flex-basis:250px}
  .jsteps div{min-width:0;font-size:10.5px;padding:8px 7px}
  .jsteps .jl{display:none}
  .jsteps div.on .jl{display:inline}
  .ltdoc{border-right:0;border-bottom:1px solid var(--line)}
  .itlgrid{grid-template-columns:1fr}
  .intel2{grid-template-columns:1fr}
}

/* ══════════ the brokerage model fold ══════════ */
.broke{background:var(--chrome);color:var(--chrome-ink);padding:var(--s9) 0;border-top:0}
.broke .lead{max-width:790px;margin-bottom:var(--s8)}
/* ── 90/10 lockup ── */
.hero90{display:grid;grid-template-columns:auto 1fr;gap:var(--s8);align-items:center;
  margin-bottom:var(--s7)}
.ninety{display:flex;align-items:baseline;font-family:var(--ff-disp);line-height:.8;color:#fff;
  letter-spacing:-.05em}
.ninety .n{font-size:clamp(84px,12vw,168px)}
.ninety .n.sm{font-size:clamp(44px,6vw,84px);color:var(--apricot-soft)}
.ninety .sl{font-size:clamp(52px,7vw,96px);color:var(--apricot-soft);margin:0 .06em;font-weight:400}
.n90copy h2{font-size:clamp(24px,3.1vw,38px);color:#fff;max-width:18ch;margin-bottom:14px}
.n90copy h2 em{font-style:italic;color:var(--apricot-soft)}
.n90copy p{font-size:16px;line-height:1.62;color:#b9c5cf;max-width:50ch;margin-bottom:var(--s5)}
.n90copy .btn{font-size:15px;padding:13px 24px}

/* ── calculator modal ── */
#calcmodal{width:min(52vw,780px);max-width:calc(100% - 32px);border:0;padding:0;border-radius:12px;
  background:var(--card);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.4)}
#calcmodal::backdrop{background:rgba(10,13,18,.62)}
#calcmodal[open]{animation:mpop .22s cubic-bezier(.2,.8,.3,1)}
@keyframes mpop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.mhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
  padding:20px 22px 16px;border-bottom:1px solid var(--line);background:var(--card-2)}
.mhead h3{font-size:20px;margin-bottom:3px}
.mhead p{font-size:12.5px;color:var(--slate);max-width:44ch}
.mclose{border:0;background:transparent;font:inherit;font-size:26px;line-height:1;color:var(--slate);
  cursor:pointer;padding:0 4px;margin:-2px -4px 0 0}
.mclose:hover{color:var(--ink)}
.mbody{padding:18px 22px;overflow:auto}
.mbody .who{margin:0 0 18px}
.mfoot{padding:14px 22px;background:var(--card-2);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.mfoot .diff{font-size:14px}
.mfoot .diff b{font-family:var(--ff-disp);font-size:22px;color:var(--apricot)}
.mfoot .note{font-size:11.5px;color:var(--slate-dim);max-width:40ch;line-height:1.5}

.broke .eyebrow{color:var(--apricot-soft)}
.broke h2{font-size:clamp(30px,4.3vw,54px);color:#fff;max-width:19ch;margin-bottom:var(--s5)}
.broke h2 em{font-style:italic;color:var(--apricot-soft)}
.broke .say{font-size:17px;line-height:1.65;color:#b9c5cf;max-width:60ch}
.broke .say+.say{margin-top:14px}
.broke .say strong{color:#fff;font-weight:600}
.tenets{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--chrome-line);
  border:1px solid var(--chrome-line);border-radius:10px;overflow:hidden;margin-bottom:var(--s8)}
.tenet{background:#161a24;padding:26px 24px}
.tenet .n{font-family:var(--ff-mono);font-size:10px;color:var(--apricot-soft);letter-spacing:.08em;margin-bottom:12px}
.tenet h3{font-size:19px;color:#fff;margin-bottom:9px;line-height:1.25}
.tenet p{font-size:13.5px;line-height:1.62;color:#9fb0bd}
.tenet p strong{color:#fff;font-weight:600}

.calc-in{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s6);align-items:end}
.calc-in .big{font-family:var(--ff-disp);font-size:38px;line-height:1;margin-bottom:4px}
.calc-in .sm{font-size:12px;color:var(--slate);margin-bottom:11px}
.who{display:flex;gap:3px;background:var(--bg-2);padding:3px;border-radius:6px}
.who button{flex:1;font:inherit;font-family:var(--ff-body);font-size:12px;padding:8px 10px;border-radius:4px;
  border:0;background:transparent;color:var(--slate);cursor:pointer;font-weight:500;line-height:1.3}
.who button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(34,38,47,.12)}
.calc-cols{display:grid;grid-template-columns:1fr 1fr}
.calc-col{padding:20px 22px}
.calc-col+.calc-col{border-left:1px solid var(--line);background:var(--apricot-wash)}
.calc-col .tag{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.06em;padding:3px 8px;border-radius:3px;
  display:inline-block;margin-bottom:12px}
.calc-col .tag.trad{background:var(--card-2);color:var(--slate)}
.calc-col .tag.ours{background:var(--apricot);color:#fff}
.calc-col h4{font-size:16px;margin-bottom:12px}
.cline{display:grid;grid-template-columns:1fr auto;gap:10px;padding:7px 0;border-bottom:1px solid rgba(34,38,47,.08);
  font-size:13px;align-items:center}
.cline:last-of-type{border-bottom:0}
.cline span:first-child{color:var(--slate)}
.cline span:last-child{font-family:var(--ff-mono);font-size:12.5px}
.cline.neg span:last-child{color:var(--red)}
.cline.tot{margin-top:9px;padding-top:11px;border-top:1.5px solid var(--ink);border-bottom:0}
.cline.tot span:first-child{color:var(--ink);font-weight:600}
.cline.tot span:last-child{font-family:var(--ff-disp);font-size:25px}
.cfield{display:grid;grid-template-columns:1fr 72px;gap:9px;align-items:center;margin-bottom:8px;font-size:12.5px;color:var(--slate)}
.cfield input{border:1px solid var(--line);border-radius:5px;padding:6px 9px;font:inherit;
  font-family:var(--ff-mono);font-size:12px;text-align:right;background:#fff;color:var(--ink);width:100%}
.calc-ft{padding:15px 22px;background:var(--card-2);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.calc-ft .diff{font-size:14px;color:var(--ink)}
.calc-ft .diff b{font-family:var(--ff-disp);font-size:22px;color:var(--apricot)}
.calc-ft .note{font-size:11.5px;color:var(--slate-dim);line-height:1.55;max-width:52ch}
.bridge{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--chrome-line);
  display:grid;grid-template-columns:auto 1fr;gap:var(--s6);align-items:center}
.bridge .k{font-family:var(--ff-disp);font-size:46px;color:var(--apricot-soft);line-height:1}
.bridge p{font-size:16px;line-height:1.65;color:#b9c5cf;max-width:60ch}
.bridge p strong{color:#fff;font-weight:600}
@media(max-width:960px){
  .tenets{grid-template-columns:1fr}
  .calc-in,.calc-cols,.bridge{grid-template-columns:1fr}
  .calc-col+.calc-col{border-left:0;border-top:1px solid var(--line)}
  .hero90{grid-template-columns:1fr;gap:var(--s5)}
  .ninety{justify-content:flex-start}

  /* Three-quarter-height sheet anchored to the bottom, so the thumb reaches
     the controls and the page stays visible behind it. */
  #calcmodal{width:100%;max-width:100%;height:75vh;max-height:75vh;
    margin:auto auto 0;border-radius:14px 14px 0 0;display:flex;flex-direction:column}
  #calcmodal[open]{animation:msheet .26s cubic-bezier(.2,.8,.3,1)}
  @keyframes msheet{from{transform:translateY(28px);opacity:0}to{transform:none;opacity:1}}
  .mhead{flex:none}
  .mbody{flex:1;min-height:0}
  .mfoot{flex:none}
}


/* ── late overrides ──
   Media queries carry no extra specificity, so a mobile rule written before the
   base rule loses to it. These sit at the end of the file, after every base
   rule they need to beat. */
@media(max-width:620px){
  .mkrail > .mkcard{flex-basis:78vw}
}

/* the four classes the intelligence markup uses that had no rule */
.ieyebrow{display:block;font-family:var(--ff-mono);font-size:10px;letter-spacing:.08em;
  color:var(--apricot);margin-bottom:4px}
.iscale{font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);white-space:nowrap}
.iscale b{color:var(--slate);font-weight:600}
.ixa{min-width:0}
.ixnote{font-size:12.5px;color:var(--slate);line-height:1.65;max-width:78ch;margin-top:var(--s5)}
.ixnote strong{color:var(--ink);font-weight:600}


/* ── California availability map ── */
.camap{position:relative;height:520px;background:#f2ece0}
#cabox{position:absolute;inset:0;width:100%;height:100%}
.camap .leaflet-container{background:#f2ece0;font-family:var(--ff-body)}
.camap .leaflet-control-attribution{font-size:8px;line-height:1.3;padding:1px 4px;
  background:rgba(255,255,255,.66)}
.leaflet-attribution-flag{display:none!important}
.camz{position:absolute;right:12px;top:12px;bottom:auto;z-index:600}
.cacard{position:absolute;left:12px;bottom:12px;z-index:600;width:252px;background:var(--card);
  border:1px solid var(--line);border-radius:9px;padding:15px 16px 16px;
  box-shadow:0 8px 26px rgba(34,38,47,.18);animation:pop .22s cubic-bezier(.2,.9,.3,1)}
.cacx{position:absolute;right:8px;top:6px;border:0;background:transparent;font:inherit;
  font-size:19px;line-height:1;color:var(--slate-dim);cursor:pointer;padding:2px 5px}
.cacx:hover{color:var(--ink)}
.cast{font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.09em;padding:3px 8px;
  border-radius:3px;display:inline-block;margin-bottom:9px}
.cast.taken{background:var(--apricot-wash);color:var(--apricot)}
.cast.open{background:var(--green-wash);color:var(--green)}
.cacity{font-family:var(--ff-disp);font-size:21px;line-height:1.15}
.cacounty{font-size:11.5px;color:var(--slate);margin-top:2px}
.capop{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.capop b{font-family:var(--ff-disp);font-size:20px;display:block;line-height:1}
.capop span{font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim);display:block;margin-top:3px}
.canote{font-size:11.5px;color:var(--slate);line-height:1.55;margin-top:11px}
.cabtn{margin-top:13px;width:100%;border:0;background:var(--apricot);color:#fff;font:inherit;
  font-weight:600;font-size:12.5px;padding:10px 12px;border-radius:6px;cursor:pointer}
.cabtn:hover{background:#965c1c}
.citysearch{margin-top:var(--s5)}
.citykey{display:flex;gap:18px;margin-top:14px;font-size:12px;color:var(--slate);flex-wrap:wrap}
.citykey span{display:flex;align-items:center;gap:7px}
.citykey b{font-weight:600;color:var(--ink)}
.citykey i{width:9px;height:9px;border-radius:50%;display:block;border:1.5px solid #fff}
.citykey .k-taken{background:var(--apricot);box-shadow:0 0 0 1px var(--line)}
.citykey .k-open{background:var(--slate-dim);opacity:.55;box-shadow:0 0 0 1px var(--line)}
.sres .r[role=button]{cursor:pointer}
.sres .r[role=button]:hover{border-color:var(--apricot-soft);background:#fffdf9}
@media(max-width:960px){ .camap{height:420px} .cacard{width:auto;left:12px;right:12px} }

/* platform totals — dropped when the cities fold was rebuilt around the map,
   restored here; tm.js has always populated these four ids */
.pfstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:var(--s5);
  padding-top:var(--s5);border-top:1px solid var(--line)}
.pfstats div{min-width:0}
.pfstats b{font-family:var(--ff-disp);font-size:22px;display:block;line-height:1.1}
.pfstats span{font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.06em;
  color:var(--slate-dim);display:block;margin-top:4px}
.pfnote{font-size:11.5px;color:var(--slate-dim);margin-top:11px}
@media(max-width:620px){ .pfstats{grid-template-columns:1fr 1fr} }

/* sheet 2 — the live Exchange listing block */
.xl{border:1px solid #e8e1d2;border-radius:6px;padding:16px 18px;margin:16px 0 4px;background:#fdfcfa}
.xl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
  padding-bottom:12px;border-bottom:1px solid #ece7dd}
.xl-addr{font-family:'Playfair Display',Georgia,serif;font-size:17px;line-height:1.2}
.xl-sub{font-size:10.5px;color:#5d6575;margin-top:3px}
.xl-ask{text-align:right;flex:none}
.xl-ask b{font-family:'Playfair Display',Georgia,serif;font-size:20px;display:block;line-height:1}
.xl-ask span{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:.08em;color:#989fac}
.xl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 0;
  border-bottom:1px solid #ece7dd}
.xl-grid b{font-family:'Playfair Display',Georgia,serif;font-size:15px;display:block;line-height:1.1}
.xl-grid span{font-family:'JetBrains Mono',monospace;font-size:7.5px;letter-spacing:.07em;
  color:#989fac;display:block;margin-top:3px}
.xl-tbl{width:100%;border-collapse:collapse;font-size:11px;margin-top:10px}
.xl-tbl td{padding:5px 0;border-bottom:1px solid #f0ece3}
.xl-tbl td.r{text-align:right;font-family:'JetBrains Mono',monospace;font-size:10.5px}
.xl-tbl tr.tot td{border-bottom:0;padding-top:8px;font-weight:600}
.xl-note{font-size:10px;color:#5d6575;margin-top:10px;line-height:1.5}
.sh-qr3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:10px}
.sh-qr3 > div{text-align:left}
.sh-qr3 strong{display:block;font-size:11.5px;margin-top:7px}
.sh-qr3 .sh-url{display:block;font-size:9.5px;color:#5d6575;margin-top:2px;line-height:1.45}

/* ── how a stranger becomes a client ── */
.jtoggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 var(--s5)}
.jtoggle button{text-align:left;border:1px solid var(--line);background:var(--card);
  border-radius:8px;padding:11px 13px;cursor:pointer;font:inherit;color:var(--slate);
  transition:border-color .15s,background .15s}
.jtoggle button b{display:block;font-size:14px;color:var(--ink);font-weight:600}
.jtoggle button span{display:block;font-size:11.5px;margin-top:2px;line-height:1.4}
.jtoggle button[aria-pressed=true]{border-color:var(--apricot);background:var(--apricot-wash)}
.jtoggle button[aria-pressed=true] b{color:var(--apricot)}

.jmap{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#f4efe4;
  height:250px;position:relative}
/* Scoped to the fallback by id. As `.jmap svg` it also caught Leaflet's own
   attribution flag and blew it up to fill the map — a blue and yellow block
   over the pins that swallowed every click on them. */
#jmapsvg{display:block;width:100%;height:100%}
.jmap .leaflet-container{width:100%;height:100%;background:#f4efe4;font-family:var(--ff-body)}
.jmap .leaflet-control-attribution{font-size:7.5px;line-height:1.3;padding:1px 4px;
  background:rgba(255,255,255,.66);color:var(--slate-dim)}
.jmap .leaflet-control-attribution a{color:var(--slate)}
/* Leaflet 1.9 ships a flag graphic in the attribution; it is decorative. */
.jmap .leaflet-attribution-flag{display:none!important}
.jlpin{cursor:pointer}
.jlpin.idle{animation:jping 2.6s ease-in-out infinite}
.jlpin:hover{stroke-width:3}
.jlpin.sel{filter:drop-shadow(0 2px 6px rgba(176,111,36,.55));animation:none}
@keyframes jping{0%,100%{r:8}50%{r:9.4}}
.jltip{background:var(--card);border:1px solid var(--line);border-radius:4px;
  padding:3px 7px;font-family:var(--ff-mono);font-size:9px;color:var(--ink);
  box-shadow:0 2px 6px rgba(34,38,47,.16);white-space:nowrap}
.jltip.sel{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600}
.jltip:before{display:none}
.jpin{cursor:pointer}
.jpin circle{transition:r .12s ease}
.jpin:hover circle:first-child{stroke:var(--apricot);r:9}
.jpin:focus{outline:none}
.jpin:focus-visible circle:first-child{stroke:var(--apricot);stroke-width:2.6}
.jpin.sel circle:first-child{filter:drop-shadow(0 2px 5px rgba(176,111,36,.45))}

.jpicked{border:1px solid var(--line);border-radius:6px;padding:9px 11px;margin-bottom:13px;
  background:var(--card-2)}
.jpicked b{display:block;font-size:13px}
.jpicked span{display:block;font-family:var(--ff-mono);font-size:10px;color:var(--slate-dim);margin-top:2px}

.jtype{border:1px solid var(--line);border-radius:5px;padding:8px 10px;font-size:13px;
  background:#fff;min-height:34px;font-family:var(--ff-body)}
.jtype:after{content:'';display:inline-block;width:1px;height:13px;background:var(--apricot);
  vertical-align:-2px;margin-left:1px;animation:cur 1s steps(2) infinite}
@keyframes cur{50%{opacity:0}}
.jsubmit{margin-top:13px;width:100%;border:0;background:var(--apricot);color:#fff;font:inherit;
  font-weight:600;font-size:13px;padding:10px 12px;border-radius:6px;cursor:pointer}
.jsubmit:disabled{background:var(--green-wash);color:var(--green);cursor:default}
.jdone{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--slate);line-height:1.6}
.jtick{width:20px;height:20px;border-radius:50%;background:var(--green-wash);color:var(--green);
  display:grid;place-items:center;font-size:11px;flex:none}
@media(max-width:620px){ .jtoggle{grid-template-columns:1fr} }

.rthin{font-size:11.5px;color:var(--slate);line-height:1.55;padding:9px 10px}

/* ── own your market ── */
.split{margin:0 0 var(--s6)}
.splitbar{height:56px;border-radius:6px;background:var(--card-2);border:1px solid var(--line);
  overflow:hidden;display:flex}
.sb-listed{background:var(--apricot);display:block;min-width:3px;
  animation:sbgrow 1.1s cubic-bezier(.2,.8,.3,1) backwards}
@keyframes sbgrow{from{width:0 !important}}
.splitkey{display:flex;justify-content:space-between;gap:20px;margin-top:12px}
.splitkey div{max-width:34ch}
.splitkey .r{text-align:right}
.splitkey b{font-family:var(--ff-disp);font-size:30px;display:block;line-height:1}
.splitkey span{font-family:var(--ff-mono);font-size:9px;letter-spacing:.06em;color:var(--slate-dim);
  display:block;margin-top:5px;line-height:1.6}
.ownline{font-size:17px;line-height:1.6;color:var(--slate);max-width:70ch;margin:0 0 var(--s7);
  padding-left:16px;border-left:3px solid var(--apricot)}
.ownline strong{color:var(--ink);font-weight:600}
.ownthree .card{position:relative}
.ownnum{font-family:var(--ff-mono);font-size:10px;letter-spacing:.1em;color:var(--apricot);margin-bottom:9px}
.ownthree .card h4{font-size:15px;margin-bottom:8px;line-height:1.3}
.ownthree .card p{font-size:13.5px;line-height:1.62}
@media(max-width:620px){
  .splitkey{flex-direction:column;gap:12px}
  .splitkey .r{text-align:left}
  .splitbar{height:44px}
}

/* street record: four sales, the recorded range, and where the visitor's own
   number sits inside it. The platform positions their figure against fact; it
   never proposes one. */
.jrec .rr{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:baseline}
.jrec .rr span:nth-child(1){grid-column:1;grid-row:1;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;font-size:12px}
.jrec .rr span:nth-child(2){grid-column:2;grid-row:1;font-family:var(--ff-mono);font-size:9.5px;
  color:var(--slate-dim)}
.jrec .rr span:nth-child(3){grid-column:1;grid-row:2;font-family:var(--ff-mono);font-size:10.5px}
.jrec .rr .pf{grid-column:2;grid-row:2;font-family:var(--ff-mono);font-size:10px;color:var(--apricot);text-align:right}
.rband{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.rbhead{display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--ff-mono);font-size:9px;color:var(--slate-dim)}
.rbhead b{color:var(--ink);font-size:9.5px;letter-spacing:.04em}
.rbar{position:relative;height:5px;border-radius:3px;margin:7px 0 9px;
  background:linear-gradient(90deg,var(--apricot-wash),var(--apricot-soft))}
.rbar i{position:absolute;top:-4px;width:3px;height:13px;border-radius:2px;background:var(--ink);
  transform:translateX(-1.5px);transition:left .18s ease}
.rbmine{font-size:11.5px;line-height:1.55;color:var(--slate)}
.rbmine b{color:var(--ink)}

/* the 98% carries the sample it was measured from */
.splitnote{font-family:var(--ff-mono);font-size:9.5px;color:var(--slate-dim);
  margin-top:14px;line-height:1.6}

/* the 98% bar and the three cards, on the dark model fold */
.split.dark{margin:0 0 var(--s7)}
.split.dark .splitbar{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.10)}
.split.dark .sb-listed{background:var(--apricot-soft)}
.split.dark .splitkey b{color:#fff}
.split.dark .splitkey span{color:#8b97a4}
.split.dark .splitnote{color:#6f7b88}
.broke .tenet p strong{color:#fff}

/* the lockup says what it is; an unlabelled 90/10 reads as a mystery number */
/* .ninety is a flex row, so a block label becomes a third item beside the 10
   instead of a caption under the lockup. */
.ninety{position:relative;flex-wrap:wrap}
.splitlab{flex:0 0 100%;width:100%;display:block;font-family:var(--ff-mono);
  font-size:10.5px;letter-spacing:.06em;color:#8b97a4;margin-top:8px;white-space:nowrap}
.splitlab b{color:#fff;font-weight:600}
.whatbuys{margin:var(--s7) 0 var(--s7)}
.wbhead{font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--apricot-soft);
  margin-bottom:16px}

/* ── 90/10 lockup, rebuilt ──────────────────────────────────────────────────
   The numerals sat in a line box 0.8x their size and the display face's 9
   descends below the baseline, so a caption 8px under the box landed on the
   tail of the 9. The numbers now have their own row with a full line box, and
   the caption sits under that row. The "What the 10 buys" bar was removed, so
   the lockup and copy lead straight into the tenets. */
.ninety{display:block}
/* line-height 1.34 is Playfair's full content height (ascent 1.082 + descent
   .251), so the descending 9 stays inside the row instead of below it. */
.ninety .nrow{display:flex;align-items:baseline;line-height:1.34}
.ninety .splitlab{flex:none;margin:10px 0 0;line-height:1.4;letter-spacing:.06em}
.broke .hero90{margin-bottom:var(--s8)}
@media (max-width:760px){.ninety .splitlab{margin-top:16px;white-space:normal}}

/* ── Public view: the card a visitor actually sees ─────────────────────────
   Same anatomy as the city market's listing cards: picture, price and status,
   address, facts, link. Probate, absentee, expired and pre-foreclosure show the
   plain home-record card, because that is all the public side ever shows. */
.pcard{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;
  box-shadow:0 1px 2px rgba(34,38,47,.04)}
.pcimg{height:160px;background:var(--card-2);border-bottom:1px solid var(--line);padding:8px 0 0}
.pcimg svg{display:block;width:100%;height:100%}
.pcbody{padding:12px 14px 13px}
.pcprice{font-family:var(--ff-disp);font-size:22px;font-weight:600;letter-spacing:-.01em;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.1}
.pcprice.rec{font-size:17px;color:var(--slate)}
.pcst{font-family:var(--ff-mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;
  display:inline-flex;align-items:center;gap:6px;color:var(--green)}
.pcst i{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.pcst.sold{color:var(--slate)}
.pcst.rent{color:#2f6f9e}
.pcst.new{color:var(--apricot)}
.pcst.comm{color:var(--slate)}
.pcaddr{font-size:15px;margin-top:7px;color:var(--ink)}
.pcfacts{font-size:12.5px;color:var(--slate-dim);margin-top:3px}
.pclink{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.14em;color:var(--apricot);margin-top:10px}
.pcnote{font-size:12px;line-height:1.55;color:var(--slate);margin-top:11px}
.pcnote b{color:var(--ink)}
.pcpriv{font-family:var(--ff-mono);font-size:9px;letter-spacing:.05em;color:var(--slate-dim);
  margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}

/* ── Journey demo: a clear place to start, then the next step ──────────────
   One pin pulses and nudges until a house is chosen; after that the button
   for the next step pulses until it is pressed. Reduced-motion users get the
   static highlight only (the global rule turns animations off). */
.jlpin.hint{fill:#b06f24;transform-box:fill-box;transform-origin:center;
  animation:jnudge 2.8s ease-in-out infinite}
@keyframes jnudge{0%,62%,100%{transform:translate(0,0) scale(1)}
  66%{transform:translate(-2px,0) scale(1.12)}70%{transform:translate(2px,0) scale(1.12)}
  74%{transform:translate(-2px,0) scale(1.12)}78%{transform:translate(2px,0) scale(1.12)}
  82%{transform:translate(0,0) scale(1)}}
.jlpulse{transform-box:fill-box;transform-origin:center;pointer-events:none;
  animation:jpulse 1.9s ease-out infinite}
@keyframes jpulse{0%{transform:scale(.7);opacity:.95}100%{transform:scale(2.8);opacity:0}}
.jltip.hint{background:var(--apricot);border-color:var(--apricot);color:#fff;font-weight:600;line-height:1.35}
.jltip.hint .jlhint{font-weight:500;opacity:.85;letter-spacing:.06em;text-transform:uppercase;font-size:8px}
.jpin.hint{transform-box:fill-box}
.jpin.hint circle{fill:#b06f24;stroke:#b06f24}
#jnext.nudge,#jsubmit.nudge{animation:jbtn 1.7s ease-in-out infinite}
@keyframes jbtn{0%,100%{box-shadow:0 0 0 0 rgba(176,111,36,.6)}60%{box-shadow:0 0 0 9px rgba(176,111,36,0)}}

/* public-view cards with a photograph: it covers the drawn fallback */
.pcimg{position:relative;overflow:hidden}
.pcimg.ph{padding:0}
.pcimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ── letters: two columns, with what comes back underneath ───────────────
   The letter and the page it opens sit side by side at a readable width; the
   tracking tool runs full width below them, controls on the left and the
   response log on the right. */
.lt2{grid-template-columns:repeat(2,1fr)}
.lt2 .lt3card{min-height:640px}
.ltback{margin-top:12px;min-height:0}
.ltbackbody{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:stretch}
.ltctl{display:flex;flex-direction:column}
.ltctl .ltstat{margin-bottom:10px}
.ltnote{font-size:12px;line-height:1.55;color:var(--slate);margin-top:auto}
.ltback .ltlog{height:250px}
@media(max-width:960px){
  .lt2{grid-template-columns:1fr}
  .lt2 .lt3card{min-height:460px}
  .ltbackbody{grid-template-columns:1fr}
  .ltback .ltlog{height:260px}
  .ltnote{margin-top:4px}
}

/* ── live markets: big cards, big swipes ───────────────────────────────────
   Each market gets a card most of the section wide, with the rail running out
   to the right edge of the screen so the next market is visibly waiting. */
#livemarkets .mkscroll{margin-right:calc(50% - 50vw)}
#livemarkets .mkrail{gap:20px;padding:4px 48px 14px 2px;margin-right:0;scroll-padding-left:2px}
#livemarkets .mkrail > .mkcard{flex:0 0 min(640px, 72vw)}
#livemarkets .mkcard{border-radius:14px}
#livemarkets .mkcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(34,38,47,.12)}
#livemarkets .mkbody{padding:20px 24px 22px;gap:6px}
#livemarkets .mkname{font-size:26px;line-height:1.15}
#livemarkets .mkmeta{font-size:11.5px;letter-spacing:.02em}
#livemarkets .mkdom{font-size:14.5px;padding-top:14px}
#livemarkets .mknav{width:54px;height:54px;font-size:28px;top:calc((min(640px, 72vw) * 630 / 1200) / 2 + 4px);
  box-shadow:0 6px 20px rgba(34,38,47,.22)}
#livemarkets .mknav.prev{left:-20px}
#livemarkets .mknav.next{right:24px}
.mkfoot{display:flex;align-items:center;gap:14px;margin-top:8px;padding-right:max(28px, calc((100vw - 1124px) / 2))}
.mkcount{font-family:var(--ff-mono);font-size:11px;color:var(--slate);letter-spacing:.06em;min-width:44px}
.mkdots{display:flex;gap:6px;flex-wrap:wrap}
.mkdots i{width:22px;height:3px;border-radius:2px;background:var(--line);transition:background .2s,width .2s}
.mkdots i.on{background:var(--apricot);width:34px}
.mkhint{margin-left:auto;font-family:var(--ff-mono);font-size:10px;color:var(--slate-dim);letter-spacing:.05em}
@media(max-width:620px){
  #livemarkets .mkrail{padding-right:24px}
  #livemarkets .mkrail > .mkcard{flex-basis:86vw}
  #livemarkets .mkname{font-size:21px}
  #livemarkets .mkbody{padding:16px 18px 18px}
  .mkhint{display:none}
}

/* ── Campaign explorer on a phone: one screen ─────────────────────────────
   The window chrome, tabs, map and panel used to stack to ~1,000px. Here the
   chrome is one control, the tabs one scrolling row, the map a strip, and the
   panel a fixed-height pane that scrolls inside itself. */
@media(max-width:700px){
  .cewin .wbar:first-child{padding:8px}
  .cewin .wbar:first-child .wdot,.cewin .wbar:first-child .wtitle{display:none}
  .cewin .wbar:first-child .wtabs{margin-left:0;width:100%;flex-wrap:nowrap;padding:3px;border-radius:9px}
  .cewin .wbar:first-child .wtabs button{flex:1;font-size:13px;padding:7px 8px;border-radius:7px}
  .cewin .wbar + .wbar{padding:7px 8px!important}
  .cewin #cetabs{flex-wrap:nowrap;overflow-x:auto;width:100%;gap:4px;scrollbar-width:none;
    -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .cewin #cetabs::-webkit-scrollbar{display:none}
  .cewin #cetabs button{flex:none;white-space:nowrap;font-size:13px;padding:6px 11px;border-radius:99px;
    scroll-snap-align:start;border:1px solid var(--line)}
  .cewin #cetabs button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}
  .cewin .cemap{min-height:0;height:180px}
  .cewin .cescope{font-size:9px;padding:3px 7px}
  .cewin .ceside{height:330px;max-height:330px;overflow-y:auto;padding:12px;position:relative;
    -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    -webkit-mask-image:linear-gradient(180deg,#000 88%,transparent);mask-image:linear-gradient(180deg,#000 88%,transparent)}
  .cewin .cesm{font-size:8.5px;margin-bottom:6px}
  .cewin .ceside h4{font-size:16px}
  /* public view: the listing card goes horizontal */
  .cewin .pcard{display:grid;grid-template-columns:118px 1fr;align-items:stretch}
  .cewin .pcimg{height:auto;min-height:118px;border-bottom:0;border-right:1px solid var(--line);padding:0}
  .cewin .pcimg svg{width:100%;height:100%}
  .cewin .pcbody{padding:10px 12px}
  .cewin .pcprice{font-size:20px}
  .cewin .pcaddr{font-size:13px}
  .cewin .pcfacts{font-size:11.5px}
  .cewin .pcnote{font-size:12.5px;line-height:1.5;margin-top:10px}
  .cewin .pcpriv{font-size:9.5px;margin-top:8px}
  .cewin .wfoot{font-size:8px;padding:7px 10px;line-height:1.5}
}

/* The headline figure (Tim, 27 Sep 2026): the caption reads as part of the number - "REAL EVENTS" and
   the sentence stacked beside it at a readable size - instead of a 10px grey line under it that the
   headline crowded out. */
.num{display:flex;align-items:flex-end;gap:18px;margin-bottom:26px}
.num #mv-total{flex:none}
.numlab{display:flex;flex-direction:column;gap:7px;padding-bottom:.08em;font-family:var(--ff-body);letter-spacing:0;line-height:1}
.numlab b{font-family:var(--ff-mono);font-weight:600;font-size:13px;letter-spacing:.16em;color:var(--apricot)}
.numlab span{font-size:15px;line-height:1.35;color:var(--slate);max-width:21ch;font-weight:500}
@media(max-width:620px){.num{gap:12px;margin-bottom:20px}.numlab b{font-size:11px}.numlab span{font-size:13px;max-width:18ch}}

/* Your brand, powered by Local Market - a light card in the dark 90/10 fold, so it stands out (Tim, 27 Sep 2026) */
.brandx{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:center;margin-top:var(--s7);
  padding:var(--s6) var(--s7);background:var(--bg-2);color:var(--ink);border-radius:18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
@media(max-width:940px){.brandx{grid-template-columns:1fr;padding:var(--s6) var(--s5);gap:var(--s5)}}
.brandx .eyebrow{color:var(--apricot);margin-bottom:10px}
.brandx h3{font-size:clamp(26px,2.8vw,36px);color:var(--ink);line-height:1.1;margin-bottom:10px}
.brandx h3 em{font-style:italic;color:var(--apricot)}
.bx-lede{font-size:15.5px;line-height:1.6;color:var(--slate);max-width:48ch;margin:0}
.bx-lede strong{color:var(--ink)}
.bx-steps{list-style:none;margin:var(--s5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.bx-steps li{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px 7px 8px;font:600 13.5px var(--ff-body);color:var(--ink)}
.bx-steps b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--apricot);color:#fff;font:600 10.5px var(--ff-mono)}
.bx-demo{display:flex;flex-direction:column;gap:12px}
.bx-row{display:flex;gap:10px;flex-wrap:wrap}
.bx-mode{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;flex:none}
.bx-mode button{border:0;background:transparent;color:var(--slate);font:600 13px var(--ff-body);padding:8px 14px;border-radius:999px;cursor:pointer;transition:all .2s}
.bx-mode button[aria-pressed="true"]{background:var(--apricot);color:#fff}
.bx-input{flex:1;min-width:180px;font:600 17px var(--ff-body);padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink)}
.bx-input:focus{outline:none;border-color:var(--apricot)}
.bx-site{border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.bx-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--chrome);flex-wrap:wrap}
.bx-word{font-family:var(--ff-disp);font-weight:700;font-size:22px;color:#fff;letter-spacing:-.01em;display:inline-block}
.bx-word.bx-pop{animation:bxpop .4s cubic-bezier(.2,1.6,.4,1)}
@keyframes bxpop{from{transform:scale(.94);opacity:.4}to{transform:none;opacity:1}}
.bx-pw{font:600 10.5px var(--ff-mono);letter-spacing:.12em;color:var(--apricot-soft);text-transform:uppercase}
.bx-fine{padding:10px 18px;font:500 10.5px var(--ff-mono);letter-spacing:.03em;color:var(--slate-dim)}
@media(max-width:620px){.bx-word{font-size:19px}}


/* ── letters journey (28 Sep 2026): campaign tabs, then letter → back → live page → desk ── */
.jtabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 14px}
.jtabs button{font:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 16px;border-radius:10px;
  border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;min-width:190px}
.jtabs button b{font-family:'Playfair Display',Georgia,serif;font-size:16px;font-weight:600}
.jtabs button span{font-size:11.5px;color:var(--slate)}
.jtabs button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#f5f1e8}
.jtabs button[aria-pressed="true"] span{color:#d9b37a}
.jgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.jgrid .lt3card{min-height:700px}
.jgrid .sheetwrap .sheet{transform-origin:top left}
.jact{list-style:none;counter-reset:ja;margin:0;padding:6px 4px;display:flex;flex-direction:column;gap:16px}
.jact li{counter-increment:ja;display:grid;grid-template-columns:30px 1fr;gap:4px 12px;align-items:start}
.jact li::before{content:counter(ja);grid-row:span 2;width:26px;height:26px;border-radius:50%;background:var(--apricot);color:#fff;
  font:700 13px Georgia,serif;display:flex;align-items:center;justify-content:center}
.jact b{font-family:'Playfair Display',Georgia,serif;font-size:17px;font-weight:600;color:var(--ink)}
.jact span{font-size:13.5px;line-height:1.55;color:var(--slate)}
.jact li:last-child b{color:var(--apricot)}
#jmodal{width:min(92vw,900px);max-width:min(92vw,900px);height:92vh;max-height:92vh;border:0;padding:0;
  border-radius:12px;background:var(--card);color:var(--ink);flex-direction:column;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.45)}
#jmodal[open]{display:flex;animation:mpop .2s cubic-bezier(.2,.8,.3,1)}
#jmodal::backdrop{background:rgba(10,13,18,.72)}
.jsheet .jtrend{margin-top:12px;border:1px solid #e6e0d4;border-radius:8px;padding:8px 12px}
.jsheet .jtrend svg{display:block;width:100%;height:72px;margin:6px 0}
.jsheet .jtrend text{font-family:Georgia,serif}
.jsheet .jtcards{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.jsheet .jtcards div{border:1px solid #e6e0d4;border-radius:6px;padding:4px 8px}
.jsheet .jtcards b{display:block;font:600 12px Georgia,serif;color:#1a1f2e}
.jsheet .jtcards span{font:8px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:#8a8578;text-transform:uppercase}
.jsheet .xoqr .sh-qrimg svg,.jsheet .xoliq .sh-qrimg svg{display:block}
.jsheet .xopg{font-family:'DM Sans',system-ui,sans-serif;color:#1a1f2e}
@media(max-width:960px){
  .jgrid{grid-template-columns:1fr}
  .jgrid .lt3card{min-height:520px}
  .jtabs button{min-width:0;flex:1 1 100%}
  #jmodal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}
}
/* The overleaf, as the print engine draws it (admin/letters-kit.js), scoped to .jsheet */
.jsheet .xopg{font-size:11px}
.jsheet .xoeye,.jsheet .xomono{font:600 8.5px 'IBM Plex Mono','JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:#b06f24}
.jsheet .xoh{font:700 23px 'Playfair Display',Georgia,serif;letter-spacing:-.01em;margin:4px 0 5px;color:#1a1f2e}
.jsheet .xoi{font-size:11px;color:#4a4f5c;line-height:1.5;margin:0 0 12px}
.jsheet .xorow{display:flex;gap:18px;align-items:stretch}
.jsheet .xowin{flex:1.35;border:1px solid #d9d2c2;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 0 #e9e3d6}
.jsheet .xobar{display:flex;align-items:center;gap:4px;padding:5px 8px;background:#f1ece2;border-bottom:1px solid #e2dccd}
.jsheet .xobar i{width:6px;height:6px;border-radius:50%;background:#d5cdbc;display:block}
.jsheet .xobar span{margin-left:8px;font:9px 'IBM Plex Mono','JetBrains Mono',monospace;color:#8a8578}
.jsheet .xocard{padding:0}
.jsheet .xoph{width:100%;height:1.45in;object-fit:cover;display:block;background:#f2ede3}
.jsheet .xonoph{display:flex;align-items:center;justify-content:center;font:9px 'IBM Plex Mono','JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:#a9a393}
.jsheet .xocb{padding:9px 12px 11px}
.jsheet .xoaddr{font:600 17px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin:2px 0 7px}
.jsheet .xostats{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:8px;margin-bottom:6px}
.jsheet .xostats span{display:block;font:600 7.5px 'IBM Plex Mono','JetBrains Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:#8a8578}
.jsheet .xostats b{display:block;font:400 15px 'Playfair Display',Georgia,serif;color:#1a1f2e}
.jsheet .xoyours{border:1.5px dashed #b06f24;border-radius:6px;padding:3px 6px;background:#fbf6ec}
.jsheet .xoyours b{color:#b06f24;font-size:13px}
.jsheet .xocalc{font-size:12px!important;color:#6b7080!important}
.jsheet .xofacts{font-size:10px;color:#6b7080;margin-bottom:6px}
.jsheet .xochips{display:flex;gap:5px;flex-wrap:wrap}
.jsheet .xochips em{font-style:normal;font-size:8.5px;padding:2px 7px;border-radius:99px;background:#f7f3ea;color:#6b5a3a;border:1px solid #e6dcc6}
.jsheet .xosteps{flex:1;display:flex;flex-direction:column;gap:9px;padding-top:2px}
.jsheet .xoah{margin-bottom:1px}
.jsheet .xoloi{margin-top:auto;border-left:3px solid #b06f24;background:#f7f3ea;padding:8px 10px;font-size:10px;line-height:1.45;color:#4a4f5c;border-radius:0 6px 6px 0}
.jsheet .xoloi .xomono{margin-bottom:3px}
.jsheet .xostep{display:flex;gap:9px;align-items:flex-start}
.jsheet .xostep>b{flex:none;width:20px;height:20px;border-radius:50%;background:#b06f24;color:#fff;font:700 11px Georgia,serif;
display:flex;align-items:center;justify-content:center}
.jsheet .xostep strong{display:block;font:600 12px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin-bottom:1px}
.jsheet .xostep div{font-size:10px;line-height:1.42;color:#4a4f5c}
.jsheet .xosec{font:600 10px Georgia,serif;letter-spacing:.10em;text-transform:uppercase;color:#8a6a2a;
border-bottom:1px solid #e2dccd;padding-bottom:4px;margin:14px 0 8px}
.jsheet .xoflow{display:flex;align-items:stretch;gap:5px}
.jsheet .xotier{flex:1;border:1px solid #e2dccd;border-radius:8px;padding:8px 10px;background:#fdfcf9}
.jsheet .xot2{background:#f7f3ea;border-color:#d9c7a3}
.jsheet .xot3{background:#1a1f2e;border-color:#1a1f2e}
.jsheet .xot3 .xotn,.jsheet .xot3 .xotw{color:#f5f1e8}.xot3 .xott{color:#d9b37a}.xot3 .xomono{color:#d9b37a}
.jsheet .xotn{font:600 12.5px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin:2px 0 3px}
.jsheet .xotw{font-size:9.5px;line-height:1.35;color:#4a4f5c;min-height:2.6em}
.jsheet .xott{font-size:8.5px;color:#8a6a2a;margin-top:4px}
.jsheet .xoarr{flex:none;align-self:center;color:#b06f24;font-size:14px}
.jsheet .xonums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.jsheet .xonums b{display:block;font:400 21px 'Playfair Display',Georgia,serif;color:#b06f24;line-height:1.1}
.jsheet .xonums span{font-size:9.5px;color:#4a4f5c;line-height:1.3}
.jsheet .xomk{font-size:9.5px;color:#6b7080;margin-top:7px}
.jsheet .xoend{display:flex;gap:12px;align-items:stretch;margin-top:12px}
.jsheet .xoexp{flex:1;background:#f7f3ea;border:1px solid #d9c7a3;color:#4a4f5c;border-radius:8px;padding:7px 12px}
.jsheet .xoexp .xomono{color:#b06f24}
.jsheet .xoen{font:600 13px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin:2px 0 2px}
.jsheet .xoen span{font:9px 'IBM Plex Mono','JetBrains Mono',monospace;color:#8a6a2a;letter-spacing:.06em;margin-left:6px}
.jsheet .xoexp p{margin:0 0 2px;font-size:9.5px;line-height:1.4}
.jsheet .xoexp .xopf{color:#6b7080;font-size:9px;margin:0}
.jsheet .xoqr{flex:none;width:2.3in;display:flex;flex-direction:row;align-items:center;gap:8px;text-align:left;
border:1px solid #d9c7a3;border-radius:8px;padding:7px 9px;background:#f7f3ea}
.jsheet .xoqr img{width:0.78in;height:0.78in;display:block;flex:none}
.jsheet .xoqr b{display:block;font:600 11px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin:0 0 2px}
.jsheet .xoqr span{font-size:8.5px;color:#6b7080;line-height:1.3}
.jsheet .xolist{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jsheet .xoli{display:flex;gap:10px;align-items:center;border:1px solid #e2dccd;border-radius:8px;padding:8px 10px;background:#fdfcf9}
.jsheet .xolim{flex:1;min-width:0}
.jsheet .xolia{font:600 13px 'Playfair Display',Georgia,serif;color:#1a1f2e;margin-bottom:4px}
.jsheet .xolia span{font:400 9px Georgia,serif;color:#8a8578}
.jsheet .xolin{display:flex;gap:14px;margin-bottom:3px}
.jsheet .xolin span{display:block;font:600 7px 'IBM Plex Mono','JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#8a8578}
.jsheet .xolin b{font:400 13px 'Playfair Display',Georgia,serif;color:#1a1f2e}
.jsheet .xolif{font-size:9px;color:#6b7080}
.jsheet .xoliq{flex:none;text-align:center}
.jsheet .xoliq img{width:0.62in;height:0.62in;display:block}
.jsheet .xoliq span{font-size:7.5px;color:#8a8578}
.jsheet .xomband{display:flex;gap:10px;align-items:center;padding:10px 12px;background:#f7f3ea;border-bottom:1px solid #e6dcc6}
.jsheet .xomband b{font:600 16px 'Playfair Display',Georgia,serif;color:#1a1f2e}
.jsheet .xomband span{font-size:10px;color:#6b5a3a}
.jsheet .xopin{flex:none;width:14px;height:14px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#b06f24;box-shadow:inset 0 0 0 4px #b06f24,inset 0 0 0 7px #fff}
.jsheet .xostats2{grid-template-columns:1.4fr 1fr}
.jsheet .xotraj{margin-top:12px}
.jsheet .xotraj .p2traj{padding:8px 12px 8px;margin:0}
.jsheet .xotraj .p2tsvg{height:0.72in;margin:0 0 6px}
.jsheet .xotraj .p2tc{padding:4px 8px}
.jsheet .xotraj .p2tcap{margin:2px 0 0;font-size:8.5px}
.jsheet .xoexb{background:#fbf6ec}
.jsheet .xostats small{font-size:9px;color:#8a8578}
.jsheet .xonums4{grid-template-columns:repeat(4,1fr)}
.jsheet .xonums4 b{font-size:19px}
.jsheet .xorec{display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;border:1px solid #e2dccd;border-radius:8px;padding:7px 10px;background:#fdfcf9}
.jsheet .xorr{display:grid;grid-template-columns:1fr auto auto;gap:0 8px;align-items:baseline;font-size:9.5px;color:#4a4f5c;padding:2px 0;border-bottom:1px dotted #e6dcc6}
.jsheet .xorr b{font:600 10.5px 'Playfair Display',Georgia,serif;color:#1a1f2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jsheet .xorr span{grid-column:1;font-size:8.5px;color:#8a8578}
.jsheet .xorr i{grid-column:2;grid-row:1;font-style:normal;font:400 11px 'Playfair Display',Georgia,serif;color:#1a1f2e}
.jsheet .xorr em{grid-column:3;grid-row:1;font-style:normal;font:600 7.5px 'IBM Plex Mono','JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#8a8578}
.jsheet .xorr em.late{color:#b06f24}
.jsheet .xofn{margin-top:auto;padding-top:8px;border-top:1px solid #e2dccd;font-size:7.5px;line-height:1.4;color:#8a8578}

/* ── the leads broker (Tim, 12 Oct 2026) ─────────────────────────────────────
   Second fold. A lead is a reason to reach out: who (everyone), when (campaigns),
   what (the message), then the person behind it. Each field is a grid of owners
   drawn with one background gradient; lit dots sit on the same 16px grid. */
.lb{background:var(--card)}
.lb-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s7);align-items:end;margin-bottom:var(--s7)}
.lb-def{font-size:clamp(30px,4.2vw,54px);line-height:1.04}
.lb-word{display:inline-block;font-size:1.22em;letter-spacing:-.035em;margin-right:.2em}
.lb-pron{font-family:var(--ff-mono);font-size:13px;font-weight:400;letter-spacing:.04em;color:var(--slate-dim);vertical-align:.95em;white-space:nowrap}
.lb-def em{display:block;font-style:italic;color:var(--apricot);margin-top:.12em}
.lb-lede{font-size:17px;line-height:1.66;color:var(--slate);max-width:46ch}
.lb-lede strong{color:var(--ink);font-weight:600}
.lb-steps{list-style:none;margin:0 0 var(--s8);padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.lb-step{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 12px 22px}
/* Each card is the same small street map (index.html: #lbmap, #lbhomes), drawn as SVG in the page:
   no tiles, no key, nothing to fail to load (the fold's rule). Overlays sit in % of the map so they
   stay on their house at any width. */
.lb-defs{position:absolute;width:0;height:0;overflow:hidden}
.lb-map{position:relative;aspect-ratio:9/5;border-radius:8px;margin-bottom:18px;overflow:hidden;background:#f1efe9;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.lb-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.lb-svg .pin path{fill:var(--apricot)}
.lb-svg .pin .pulse{fill:rgba(176,111,36,.35);transform-box:fill-box;transform-origin:center;
  animation:lbp 2.4s ease-out infinite;animation-delay:var(--d,0s)}
@keyframes lbp{0%{transform:scale(.6);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.lb-search{position:absolute;left:8px;top:8px;display:flex;align-items:center;gap:6px;background:#fff;border-radius:999px;
  padding:5px 12px 5px 9px;font-size:11px;color:#5f6368;box-shadow:0 1px 3px rgba(60,64,67,.3),0 1px 1px rgba(60,64,67,.12)}
.lb-search svg{color:#5f6368;flex:none}
.lb-zoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;background:#fff;border-radius:6px;
  box-shadow:0 1px 3px rgba(60,64,67,.3)}
.lb-zoom b{display:block;width:22px;height:21px;line-height:21px;text-align:center;font:500 14px/21px Arial,sans-serif;color:#5f6368}
.lb-zoom b+b{border-top:1px solid #e8eaed}
.lb-chip{position:absolute;left:8px;bottom:8px;background:#fff;border-radius:999px;padding:4px 10px;font-size:10.5px;
  font-weight:600;color:var(--ink);box-shadow:0 1px 3px rgba(60,64,67,.3)}
.lb-chip::before{content:'';display:inline-block;width:7px;height:7px;border-radius:2px;background:#c98a45;margin-right:6px;vertical-align:0}
.lb-tag{position:absolute;font-family:var(--ff-mono);font-size:9px;letter-spacing:.05em;background:var(--ink);color:#fff;
  padding:3px 6px;border-radius:4px;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.lb-info{position:absolute;transform:translateX(-50%);width:172px;background:#fff;border-radius:8px;padding:9px 12px 10px;
  box-shadow:0 2px 7px rgba(60,64,67,.3);font-size:12.5px;line-height:1.35}
.lb-info::after{content:'';position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:#fff}
.lb-info .k{display:block;font-family:var(--ff-mono);font-size:9px;letter-spacing:.07em;color:var(--apricot);margin-bottom:3px}
.lb-info b{display:block;font-weight:600;color:var(--ink)}
.lb-info .ap{display:inline-block;margin-top:8px;background:var(--apricot);color:#fff;font-weight:600;font-size:11px;
  padding:4px 10px;border-radius:999px}
.lb-n{font-family:var(--ff-mono);font-size:10.5px;color:var(--apricot);letter-spacing:.08em;margin:0 8px 8px}
.lb-step h3{font-size:22px;margin:0 8px 8px;line-height:1.15}
.lb-step p{font-size:14px;line-height:1.6;color:var(--slate);margin:0 8px}
.lb-step .lb-fig{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.45}
.lb-fig b{font-family:var(--ff-disp);font-size:24px;color:var(--ink);font-weight:600;margin-right:5px;letter-spacing:-.01em}
.lb-tim{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s7);align-items:start;padding-top:var(--s7);border-top:1px solid var(--line)}
.lb-face{margin:0}
.lb-face img{display:block;width:168px;height:168px;border-radius:50%;object-fit:cover;background:var(--bg-2);
  box-shadow:0 0 0 6px var(--apricot-wash)}
.lb-face figcaption{margin-top:18px;font-size:13px;color:var(--slate)}
.lb-face figcaption b{display:block;font-family:var(--ff-disp);font-size:19px;color:var(--ink);font-weight:600}
.lb-face figcaption span{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.03em}
.lb-say blockquote{margin:0 0 18px;font-family:var(--ff-disp);font-weight:600;font-size:clamp(24px,2.9vw,36px);line-height:1.18;
  letter-spacing:-.015em;max-width:28ch}
.lb-say blockquote em{color:var(--apricot)}
.lb-say>p{font-size:16px;line-height:1.66;color:var(--slate);max-width:62ch}
.lb-split{display:grid;grid-template-columns:1.25fr 1fr;gap:1px;margin-top:var(--s6);background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lb-split>div{background:var(--bg);padding:20px 22px}
.lb-split>div+div{background:var(--apricot-wash)}
.lb-k{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.08em;color:var(--apricot);margin-bottom:10px}
.lb-split ul{margin:0;padding:0;list-style:none}
.lb-split li{position:relative;padding:5px 0 5px 20px;font-size:14.5px;line-height:1.45}
.lb-split li::before{content:'';position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;background:var(--apricot)}
.lb-model{margin-top:var(--s7);padding-top:var(--s6);border-top:1px solid var(--line);font-family:var(--ff-disp);font-weight:600;
  font-size:clamp(22px,2.6vw,32px);line-height:1.2;text-align:center;letter-spacing:-.015em}
.lb-model em{color:var(--apricot)}
@media(max-width:960px){
  .lb-head{grid-template-columns:1fr;gap:var(--s5)}
  .lb-steps{grid-template-columns:1fr}
  .lb-tim{grid-template-columns:1fr;gap:var(--s5)}
}
@media(max-width:620px){
  .lb-split{grid-template-columns:1fr}
  .lb-face img{width:120px;height:120px}
  .lb-pron{display:block;margin:6px 0 4px;vertical-align:0}
}
