/* Spring Boutique homepage — editorial rebuild, 2026-07-30.
   Intentionally isolated from the shared site system. */

.editorial-home{
  --sb-cream:#FAF6EB;
  --sb-paper:#FFFCF7;
  --sb-beige:#E9E0D2;
  --sb-ink:#1B1B1F;
  --sb-navy:#16223F;
  --sb-deep:#0F1830;
  --sb-mid:#22345C;
  --sb-gold:#C2A15A;
  --sb-fuchsia:#EE3D9A;
  --sb-gutter:clamp(26px,7.6vw,138px);
  --sb-max:1480px;
  background:var(--sb-cream);
}

.editorial-home .sb-home{
  position:relative;
  z-index:1;
  background:var(--sb-cream);
  color:var(--sb-ink);
  overflow:clip;
}

.editorial-home .sb-section{
  position:relative;
  width:100%;
  margin:0;
  padding:clamp(96px,14vh,190px) var(--sb-gutter);
  isolation:isolate;
  /* Each chapter owns its stacking context and clips its own layers, so film
     frames, absolute copy and backgrounds can never bleed into a neighbour.
     `clip` (not `hidden`) does not create a scroll container, so the sticky
     plates inside continue to stick against the viewport. */
  overflow:clip;
}

.editorial-home .sb-surface--cream{background:var(--sb-cream);color:var(--sb-ink)}
.editorial-home .sb-surface--beige{background:var(--sb-beige);color:var(--sb-ink)}
.editorial-home .sb-surface--navy{background:var(--sb-deep);color:var(--sb-cream)}

.editorial-home .sb-shell{
  position:relative;
  z-index:2;
  width:min(100%,var(--sb-max));
  margin-inline:auto;
}

.editorial-home .sb-kicker,
.editorial-home .sb-folio{
  font-family:var(--sans);
  font-size:clamp(.61rem,.7vw,.74rem);
  font-weight:500;
  line-height:1.4;
  letter-spacing:.28em;
  text-transform:uppercase;
}

.editorial-home .sb-kicker{opacity:.68}
.editorial-home .sb-folio{opacity:.56;margin-bottom:clamp(34px,5vw,76px)}
.editorial-home .sb-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(3rem,7.2vw,7.6rem);
  line-height:.88;
  letter-spacing:-.042em;
  text-wrap:balance;
}
.editorial-home .sb-title em{font-weight:400;color:var(--gold-ink)}
.editorial-home .sb-surface--navy .sb-title em{color:var(--sb-gold)}

.editorial-home .sb-copy{
  max-width:58ch;
  font-size:clamp(.96rem,1.08vw,1.18rem);
  line-height:1.78;
  letter-spacing:-.01em;
  text-wrap:pretty;
}
.editorial-home .sb-copy--large{
  max-width:42ch;
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.4vw,2.45rem);
  line-height:1.2;
  letter-spacing:-.025em;
}

.editorial-home .sb-link{
  display:inline-flex;
  align-items:center;
  gap:16px;
  width:max-content;
  margin-top:34px;
  padding:9px 0 8px;
  border-bottom:1px solid currentColor;
  color:inherit;
  font-size:.69rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  text-decoration:none;
  transition:gap .35s cubic-bezier(.2,.8,.2,1),opacity .3s;
}
.editorial-home .sb-link:hover{gap:24px}
.editorial-home .sb-link--quiet{border-bottom-color:transparent;opacity:.58}

/* Header is explicitly themed by homepage-editorial.js; the old percentage journey
   stays cream so it can never switch at an unrelated point in the new page. */
.editorial-home header.bar.editorial-dark{
  background:rgba(15,24,48,.95)!important;
  color:var(--sb-cream);
  border-bottom-color:rgba(250,246,235,.08);
}
.editorial-home header.bar.editorial-dark::after{
  background:linear-gradient(to bottom,rgba(15,24,48,.95),rgba(15,24,48,.62) 45%,transparent)!important;
}
.editorial-home header.bar:not(.editorial-dark){
  color:var(--sb-ink);
}

/* ── Hero ─────────────────────────────────────────────────────────────── */
.editorial-home .sb-hero{
  height:190svh;
  min-height:1250px;
  padding:0;
}
.editorial-home .sb-hero__sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:0;
  overflow:hidden;
  background:var(--sb-cream);
}
.editorial-home .sb-hero__film{
  position:absolute;
  right:clamp(24px,4vw,72px);
  top:max(calc(var(--header-h,430px) - 8vh),18vh);
  width:min(59vw,1040px);
  height:min(66vh,720px);
  overflow:hidden;
  background:var(--sb-beige);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
}
.editorial-home .sb-hero__film::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(250,246,235,.72),transparent 44%);
}
.editorial-home .sb-hero__film video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  filter:saturate(.88) contrast(1.03) brightness(1.04);
}
.editorial-home .sb-hero__veil{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,var(--sb-cream) 0%,rgba(250,246,235,.96) 28%,rgba(250,246,235,.44) 53%,rgba(250,246,235,0) 76%),
    linear-gradient(0deg,var(--sb-cream) 0%,transparent 23%);
}
.editorial-home .sb-hero__content{
  height:100%;
  min-height:0;
  padding:clamp(180px,25vh,220px) var(--sb-gutter) clamp(54px,7vh,74px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  opacity:1;
  transform:none;
  will-change:opacity,transform;
}
.editorial-home .sb-hero__title{
  max-width:11.8ch;
  margin-top:22px;
  font-size:clamp(3.4rem,7vw,8.1rem);
}
.editorial-home .sb-hero__title .w{display:inline-block}
.editorial-home .sb-hero__lower{
  width:min(100%,820px);
  margin-top:clamp(25px,3.6vh,46px);
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  align-items:end;
  gap:40px;
}
.editorial-home .sb-hero__lower>p{max-width:40ch;font-size:clamp(.96rem,1.1vw,1.16rem)}
.editorial-home .sb-actions{display:flex;flex-wrap:wrap;gap:22px}
.editorial-home .sb-actions .sb-link{margin-top:0}
.editorial-home .sb-scroll-note{
  position:absolute;
  left:var(--sb-gutter);
  bottom:28px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:14px;
  font-size:.59rem;
  letter-spacing:.23em;
  text-transform:uppercase;
  opacity:.62;
}
.editorial-home .sb-scroll-note span{width:54px;height:1px;background:currentColor;overflow:hidden}

/* ── Relationship statement ─────────────────────────────────────────── */
.editorial-home .sb-statement{min-height:118svh;display:grid;align-items:center}
.editorial-home .sb-statement__grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  column-gap:clamp(48px,10vw,190px);
  align-items:start;
}
.editorial-home .sb-statement__grid .sb-folio{grid-column:1/-1}
.editorial-home .sb-statement__lead{
  max-width:24ch;
  padding-top:1.2vw;
  font-size:clamp(.9rem,1.2vw,1.18rem);
  line-height:1.7;
  letter-spacing:.015em;
}
.editorial-home .sb-statement__title{font-size:clamp(3.4rem,7.5vw,7.2rem)}
.editorial-home .sb-statement__copy{grid-column:2;margin-top:clamp(52px,8vh,110px);margin-left:auto}

/* ── Scroll films ───────────────────────────────────────────────────── */
.editorial-home .sb-film{
  height:225svh;
  min-height:1500px;
  padding:0;
  background:var(--sb-cream);
}
.editorial-home .sb-film__sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:0;
  overflow:hidden;
  background:var(--sb-cream);
}
.editorial-home .sb-film__frame{
  position:absolute;
  overflow:hidden;
  background:var(--sb-beige);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
}
.editorial-home .sb-film__frame video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  filter:saturate(.88) contrast(1.04) brightness(1.02);
  transform:translateZ(0);
}
.editorial-home .sb-film--left .sb-film__frame{
  left:clamp(20px,3vw,54px);
  top:12vh;
  width:min(72vw,1220px);
  height:76vh;
}
.editorial-home .sb-film--center .sb-film__frame{
  left:50%;
  top:10vh;
  width:min(82vw,1480px);
  height:80vh;
  transform:translateX(-50%);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}
.editorial-home .sb-film__beat{
  --beat-opacity:0;
  --beat-y:28px;
  position:absolute;
  z-index:3;
  max-width:min(47vw,760px);
  opacity:var(--beat-opacity);
  transform:translate3d(0,var(--beat-y),0);
  will-change:opacity,transform;
  pointer-events:none;
}
.editorial-home .sb-film__beat .sb-title{
  margin-top:18px;
  font-size:clamp(2.7rem,5.8vw,6rem);
  line-height:.92;
  text-shadow:0 1px 34px rgba(250,246,235,.6);
}
.editorial-home .sb-film__beat .sb-copy{font-family:var(--serif);font-size:clamp(1.35rem,2.5vw,2.6rem);line-height:1.08}
.editorial-home .sb-film__beat--upper-right{top:16vh;right:var(--sb-gutter);text-align:right}
.editorial-home .sb-film__beat--lower-left{left:var(--sb-gutter);bottom:13vh}
.editorial-home .sb-film__beat--top-left{top:13vh;left:var(--sb-gutter)}
.editorial-home .sb-film__beat--bottom-right{right:var(--sb-gutter);bottom:11vh;text-align:right}
.editorial-home .sb-film--center .sb-film__beat--bottom-right{
  color:var(--sb-paper);
  text-shadow:0 2px 24px rgba(15,24,48,.62),0 1px 3px rgba(15,24,48,.72);
}
.editorial-home .sb-film__progress{
  position:absolute;
  z-index:5;
  right:clamp(22px,3vw,48px);
  bottom:30px;
  width:78px;
  height:1px;
  background:rgba(27,27,31,.18);
  overflow:hidden;
}
.editorial-home .sb-film__progress span{
  display:block;
  width:100%;
  height:100%;
  background:var(--sb-gold);
  transform:scaleX(var(--film-progress,0));
  transform-origin:left;
}

/* Contextual films — real property, real work, real relationships */
.editorial-home .sb-film--short{
  height:178svh;
  min-height:1180px;
}
.editorial-home .sb-film--dmv .sb-film__frame video,
.editorial-home .sb-film--room .sb-film__frame video,
.editorial-home .sb-film--work .sb-film__frame video,
.editorial-home .sb-film--conference .sb-film__frame video{
  filter:none;   /* the 1-2% grade was invisible but re-filtered every scrubbed frame (scroll smear in Chrome, owner 2026-10-04) */
}
.editorial-home .sb-film--room .sb-film__frame{
  inset:0;
  width:100%;
  height:100%;
  transform:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 96%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 96%,transparent 100%);
}
.editorial-home .sb-film--room .sb-film__frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(250,246,235,.96) 0,rgba(250,246,235,.78) 31%,rgba(250,246,235,.08) 59%,transparent 76%);
}
.editorial-home .sb-film--room .sb-film__frame video{object-position:center}
.editorial-home .sb-film__beat--newspaper{
  top:13vh;
  left:var(--sb-gutter);
  width:min(40vw,650px);
  max-width:none;
  color:var(--sb-ink);
}
.editorial-home .sb-film__beat--newspaper .sb-title{
  max-width:10ch;
  font-size:clamp(2.8rem,5.2vw,5.6rem);
  text-shadow:none;
}
.editorial-home .sb-film__columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(22px,3vw,46px);
  margin-top:clamp(36px,5vh,66px);
  padding-top:20px;
  border-top:1px solid rgba(27,27,31,.3);
  font-size:clamp(.76rem,.9vw,.94rem);
  line-height:1.72;
}
.editorial-home .sb-film--work .sb-film__frame{
  top:9vh;
  width:min(88vw,1500px);
  height:74vh;
}
.editorial-home .sb-film__beat--work{
  right:var(--sb-gutter);
  bottom:7vh;
  width:min(40vw,650px);
  text-align:right;
  color:var(--sb-paper);
  text-shadow:0 2px 24px rgba(15,24,48,.7);
}
.editorial-home .sb-film__beat--work .sb-title{
  font-size:clamp(2.7rem,5vw,5.4rem);
  text-shadow:0 2px 30px rgba(15,24,48,.72);
}
.editorial-home .sb-film__beat--work .sb-copy{
  max-width:34ch;
  margin:22px 0 0 auto;
  font-family:var(--sans);
  font-size:clamp(.82rem,1vw,1rem);
  line-height:1.65;
}
.editorial-home .sb-film--conference .sb-film__frame{
  top:7vh;
  width:min(88vw,1540px);
  height:74vh;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
}
.editorial-home .sb-film--conference .sb-film__frame video{
  object-position:center;
}
.editorial-home .sb-film__caption-rail{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:5vh;
  width:min(82vw,1410px);
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:32px;
  transform:translateX(-50%);
  color:var(--sb-ink);
}
.editorial-home .sb-film__caption-rail .sb-copy{
  width:auto;
  font-family:var(--serif);
  font-size:clamp(1.4rem,2.1vw,2.35rem);
  line-height:1;
}

/* ── DMV ────────────────────────────────────────────────────────────── */
.editorial-home .sb-dmv{min-height:118svh;display:grid;align-items:center}
.editorial-home .sb-dmv__names{
  display:flex;
  justify-content:space-between;
  gap:30px;
  padding-block:clamp(36px,6vh,72px);
  border-top:1px solid rgba(27,27,31,.2);
  border-bottom:1px solid rgba(27,27,31,.2);
  font-family:var(--serif);
  font-size:clamp(2.1rem,5.5vw,6.3rem);
  line-height:1;
  letter-spacing:-.035em;
}
.editorial-home .sb-dmv__body{
  width:83%;
  margin:clamp(66px,9vh,120px) 0 0 auto;
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:clamp(44px,8vw,140px);
  align-items:end;
}
.editorial-home .sb-dmv__body .sb-title{font-size:clamp(2.7rem,5.2vw,5.5rem);line-height:.96}

/* ── Compass physical neon — OFF and ON photographs crossfade on scroll ─ */
.editorial-home .sb-compass{
  height:170svh;
  min-height:1160px;
  padding:0;
  overflow:clip;
}
.editorial-home .sb-compass__sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:0;
  overflow:hidden;
}
.editorial-home .sb-compass__layout{
  height:100%;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr);
  align-items:center;
  gap:clamp(54px,8vw,150px);
  padding:clamp(150px,20vh,210px) var(--sb-gutter) clamp(80px,10vh,110px);
}
.editorial-home .sb-compass__copy{
  position:relative;
  z-index:2;
  max-width:780px;
}
.editorial-home .sb-compass__copy .sb-folio{margin-bottom:clamp(28px,4vh,48px)}
.editorial-home .sb-compass__copy .sb-title{
  max-width:9ch;
  font-size:clamp(3.2rem,6vw,6.8rem);
}
.editorial-home .sb-compass__copy>.sb-copy{
  max-width:43ch;
  margin-top:clamp(32px,5vh,54px);
  opacity:.72;
}
.editorial-home .sb-compass__signals{
  margin-top:32px;
  font-size:clamp(.58rem,.66vw,.68rem);
  line-height:1.65;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.46;
}
.editorial-home .sb-compass__neon{
  position:relative;
  justify-self:end;
  width:min(32vw,48.375vh,420px);
  aspect-ratio:9/16;
  /* the screen-blend group stays LOCAL: without isolation the compositor
     has to consider the page backdrop chain (fixed layers at negative z)
     every time the light changes — measured as the boundary hitch the owner
     always felt here. The blend math lands on this div's own navy either
     way, so the picture is identical. */
  isolation:isolate;
  /* The screen blend needs a backdrop inside this stacking context (.sb-shell
     isolates it from the section). Painting the page's own navy here means the
     light lands on exactly the surrounding colour — no visible plate edge. */
  background:var(--sb-deep);
}
/* Light-only plates: the photographed wall has been subtracted, so these hold
   nothing but the emitted light. Screen-blending adds that light onto the
   section's own navy — the sign reads as mounted on the page, not pasted on a
   second, slightly different navy rectangle. */
.editorial-home .sb-compass__neon img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  mix-blend-mode:screen;
  will-change:opacity;   /* each plate keeps its own composited layer — the
    flicker is then pure compositor work, no repaint */
}
.editorial-home .sb-compass__neon-off{
  z-index:1;
  opacity:calc(1 - var(--neon-progress,0));
}
.editorial-home .sb-compass__neon-on{
  z-index:2;
  opacity:var(--neon-progress,0);
}
.editorial-home .sb-compass__scroll{
  position:absolute;
  left:var(--sb-gutter);
  bottom:28px;
  display:flex;
  align-items:center;
  gap:14px;
  font-size:.59rem;
  letter-spacing:.23em;
  text-transform:uppercase;
  opacity:.5;
}
.editorial-home .sb-compass__scroll span{
  width:54px;
  height:1px;
  background:currentColor;
}

/* ── Compass editorial chapters ────────────────────────────────────── */
.editorial-home .sb-editorial{min-height:96svh;display:grid;align-items:center}
.editorial-home .sb-editorial__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(60px,10vw,190px);
  align-items:start;
}
.editorial-home .sb-editorial__grid--reverse{grid-template-columns:.8fr 1.2fr}
.editorial-home .sb-editorial__grid--reverse>div:last-child{text-align:right}
.editorial-home .sb-editorial .sb-title{font-size:clamp(3rem,6.4vw,6.6rem)}
.editorial-home .sb-editorial__copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(28px,4vh,52px);
  padding-top:7vh;
}
.editorial-home .sb-editorial__grid--reverse .sb-editorial__copy{padding-top:8vh}
.editorial-home .sb-pull{
  margin-top:clamp(28px,4vh,56px);
  padding-left:24px;
  border-left:1px solid var(--sb-gold);
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.7vw,2.8rem);
  line-height:1.12;
}
.editorial-home .sb-pull em{font-weight:400;color:var(--gold-ink)}

/* ── Network ────────────────────────────────────────────────────────── */
.editorial-home .sb-network{min-height:110svh;display:grid;align-items:center}
.editorial-home .sb-network .sb-title{max-width:11ch}
.editorial-home .sb-network__path{
  margin:clamp(56px,7vh,90px) 0;
  display:flex;
  align-items:center;
  gap:clamp(12px,2vw,32px);
  white-space:nowrap;
  font-size:clamp(.58rem,.7vw,.72rem);
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.6;
}
.editorial-home .sb-network__path i{display:block;flex:1;min-width:20px;height:1px;background:rgba(250,246,235,.35)}
.editorial-home .sb-network__copy{
  width:74%;
  margin-left:auto;
  display:grid;
  grid-template-columns:1.05fr .8fr;
  gap:clamp(50px,8vw,130px);
  align-items:start;
}

/* ── Private Exclusives ─────────────────────────────────────────────── */
.editorial-home .sb-private{min-height:100svh;display:grid;align-items:center}
.editorial-home .sb-private__grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:clamp(56px,11vw,200px);
  align-items:center;
}
.editorial-home .sb-neon-line{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(3.7rem,8.2vw,9rem);
  line-height:.83;
  letter-spacing:-.045em;
  color:var(--sb-navy);
  text-shadow:0 0 0 rgba(22,34,63,0);
  animation:sbNavyNeon 7s ease-in-out infinite;
}
@keyframes sbNavyNeon{
  0%,100%{text-shadow:0 0 0 rgba(22,34,63,0)}
  48%{text-shadow:0 0 22px rgba(34,52,92,.16),0 0 52px rgba(34,52,92,.08)}
  54%{text-shadow:0 0 12px rgba(34,52,92,.12)}
}
.editorial-home .sb-private__copy{display:flex;flex-direction:column;align-items:flex-start;gap:30px}
.editorial-home .sb-private__copy .sb-link{margin-top:4px}
.editorial-home .sb-disclaimer{
  font-size:.68rem;
  line-height:1.65;
  letter-spacing:.035em;
  opacity:.52;
}

/* ── Bliss + flow ───────────────────────────────────────────────────── */
.editorial-home .sb-bliss{min-height:105svh;display:grid;align-items:center;overflow:hidden}
.editorial-home .sb-bliss__line{
  font-family:var(--serif);
  font-size:clamp(2.8rem,7.2vw,7.8rem);
  line-height:.94;
  letter-spacing:-.04em;
}
.editorial-home .sb-bliss__line--right{
  margin-top:clamp(30px,5vh,68px);
  text-align:right;
}
.editorial-home .sb-bliss__line em{
  display:inline-block;
  margin-left:.06em;
  font-family:'Cormorant Garamond',var(--serif);
  font-size:1.13em;
  font-weight:400;
  font-style:italic;
  color:var(--sb-fuchsia);
  text-shadow:0 0 8px rgba(238,61,154,.72),0 0 28px rgba(238,61,154,.36);
  animation:sbFuchsiaBreathe 4.8s ease-in-out infinite;
}
.editorial-home .sb-bliss__line--right em{animation-delay:-2.2s}
@keyframes sbFuchsiaBreathe{
  0%,100%{opacity:.82;text-shadow:0 0 5px rgba(238,61,154,.55),0 0 18px rgba(238,61,154,.22)}
  50%{opacity:1;text-shadow:0 0 10px rgba(238,61,154,.88),0 0 34px rgba(238,61,154,.46),0 0 70px rgba(238,61,154,.18)}
}
.editorial-home .sb-bliss .sb-copy{width:43%;margin:clamp(50px,7vh,82px) 0 0 auto;opacity:.72}

/* ── Service support ────────────────────────────────────────────────── */
.editorial-home .sb-support{min-height:118svh}
.editorial-home .sb-support>.sb-shell>.sb-title{max-width:12ch}
.editorial-home .sb-support__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:clamp(86px,12vh,150px);
  border-top:1px solid rgba(27,27,31,.2);
}
.editorial-home .sb-support__grid article{
  min-height:340px;
  padding:32px clamp(18px,2.2vw,38px) 38px 0;
  border-right:1px solid rgba(27,27,31,.2);
}
.editorial-home .sb-support__grid article+article{padding-left:clamp(18px,2.2vw,38px)}
.editorial-home .sb-support__grid article:last-child{border-right:0;padding-right:0}
.editorial-home .sb-support__grid span{font-size:.63rem;letter-spacing:.22em;opacity:.48}
.editorial-home .sb-support__grid h3{
  margin-top:58px;
  font-family:var(--serif);
  font-size:clamp(1.55rem,2.1vw,2.2rem);
  font-weight:400;
  line-height:1.05;
}
.editorial-home .sb-support__grid p{margin-top:22px;font-size:.9rem;line-height:1.75;opacity:.72}
.editorial-home .sb-support__note{max-width:78ch;margin:24px 0 0 auto;font-size:.66rem;line-height:1.6;opacity:.48}

/* ── Team ───────────────────────────────────────────────────────────── */
.editorial-home .sb-team{min-height:96svh;display:grid;align-items:center}
.editorial-home .sb-team>.sb-shell>.sb-title{max-width:12ch}
.editorial-home .sb-team__grid{
  width:78%;
  margin:clamp(56px,7vh,90px) 0 0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(54px,9vw,150px);
}
.editorial-home .sb-team__grid article{padding-top:24px;border-top:1px solid rgba(27,27,31,.24)}
.editorial-home .sb-team__grid h3{margin-top:52px;font-family:var(--serif);font-size:clamp(1.8rem,3vw,3.2rem);font-weight:400;line-height:1}
.editorial-home .sb-team__grid article>p:last-child{margin-top:24px;font-size:.96rem;line-height:1.8;opacity:.72}
.editorial-home .sb-team>.sb-shell>.sb-link{margin-left:22%}

/* ── Testimonials ───────────────────────────────────────────────────── */
.editorial-home .sb-stories{padding-inline:0;padding-bottom:60px}
.editorial-home .sb-stories__intro{padding-inline:0}
.editorial-home .sb-stories__intro .sb-title{max-width:10ch}
.editorial-home .sb-stories__intro .sb-copy{margin:52px 0 0 auto}
.editorial-home .sb-stories__scroll{
  position:relative;
  height:480svh;
  margin-top:clamp(70px,10vh,130px);
}
.editorial-home .sb-stories__sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-top:1px solid rgba(27,27,31,.18);
  border-bottom:1px solid rgba(27,27,31,.18);
}
.editorial-home .sb-testimonial{
  position:absolute;
  left:50%;
  top:50%;
  width:min(78vw,1080px);
  opacity:0;
  transform:translate(-50%,-43%);
  transition:transform .42s cubic-bezier(.2,.75,.2,1);
  pointer-events:none;
}
.editorial-home .sb-testimonial.is-active{opacity:1;transform:translate(-50%,-50%)}
.editorial-home .sb-testimonial p{
  font-family:var(--serif);
  font-size:clamp(2.15rem,4.8vw,5rem);
  line-height:1.04;
  letter-spacing:-.03em;
  text-wrap:balance;
}
.editorial-home .sb-testimonial span{
  display:block;
  margin-top:clamp(34px,5vh,64px);
  font-size:.65rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.56;
}
.editorial-home .sb-stories__counter{
  position:absolute;
  right:var(--sb-gutter);
  bottom:36px;
  display:flex;
  align-items:baseline;
  gap:8px;
  font-family:var(--serif);
}
.editorial-home .sb-stories__counter b{font-size:1.4rem;font-weight:400}
.editorial-home .sb-stories__counter span{font-size:.7rem;opacity:.46}
.editorial-home .sb-stories>.sb-disclaimer{margin-top:34px}

/* ── Contact + footer ───────────────────────────────────────────────── */
.editorial-home .sb-contact{min-height:112svh;display:grid;align-items:center}
.editorial-home .sb-contact .sb-title{font-size:clamp(4rem,9vw,9.5rem);max-width:8.5ch}
.editorial-home .sb-contact__grid{
  width:76%;
  margin:clamp(78px,10vh,130px) 0 0 auto;
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:clamp(54px,10vw,180px);
}
.editorial-home .sb-contact__grid>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.editorial-home .sb-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:28px;
  min-width:190px;
  min-height:54px;
  border:1px solid rgba(250,246,235,.62);
  border-radius:100px;
  color:var(--sb-cream);
  font-size:.68rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .35s,color .35s,transform .35s;
}
.editorial-home .sb-button:hover{background:var(--sb-cream);color:var(--sb-deep);transform:translateY(-2px)}
.editorial-home .sb-contact__people{display:grid;gap:50px}
.editorial-home .sb-contact__people>div{padding-top:24px;border-top:1px solid rgba(250,246,235,.28);display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.editorial-home .sb-contact__people span{margin-bottom:14px;font-family:var(--serif);font-size:1.55rem}
.editorial-home .sb-contact__people a{color:inherit;text-decoration:none;font-size:.78rem;letter-spacing:.08em;opacity:.72}
.editorial-home .sb-contact__people a:hover{opacity:1}

.editorial-home .sb-footer{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:clamp(50px,9vw,160px);
  padding:clamp(72px,10vh,120px) var(--sb-gutter);
  background:var(--sb-deep);
  color:var(--sb-cream);
  border-top:1px solid rgba(250,246,235,.15);
}
.editorial-home .sb-footer__brand{align-self:start}
.editorial-home .sb-footer__legal{display:flex;flex-direction:column;gap:12px;font-size:.65rem;line-height:1.6;letter-spacing:.04em;opacity:.62}
.editorial-home .sb-footer__legal nav{display:flex;gap:24px;margin-top:12px}
.editorial-home .sb-footer__legal a{color:inherit}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media(max-width:1020px){
  .editorial-home{--sb-gutter:clamp(24px,6vw,68px)}
  .editorial-home .sb-hero{height:160svh;min-height:1050px}
  .editorial-home .sb-hero__sticky{min-height:0}
  .editorial-home .sb-hero__film{top:32vh;right:0;width:76vw;height:56vh}
  .editorial-home .sb-hero__content{
    padding:clamp(180px,25vh,220px) var(--sb-gutter) clamp(48px,7vh,68px);
    justify-content:flex-end;
  }
  .editorial-home .sb-statement__grid,
  .editorial-home .sb-editorial__grid,
  .editorial-home .sb-editorial__grid--reverse,
  .editorial-home .sb-private__grid{grid-template-columns:1fr}
  .editorial-home .sb-statement__title{margin-top:40px}
  .editorial-home .sb-statement__copy{grid-column:1;margin-left:24%;width:76%}
  .editorial-home .sb-dmv__body{width:100%;grid-template-columns:1.1fr .9fr}
  .editorial-home .sb-editorial__grid--reverse>div:last-child{grid-row:1;text-align:left}
  .editorial-home .sb-editorial__copy,
  .editorial-home .sb-editorial__grid--reverse .sb-editorial__copy{padding-top:40px;width:76%;margin-left:auto}
  .editorial-home .sb-network__copy{width:100%}
  .editorial-home .sb-private__copy{width:76%;margin-left:auto}
  .editorial-home .sb-support__grid{grid-template-columns:1fr 1fr}
  .editorial-home .sb-support__grid article:nth-child(2){border-right:0}
  .editorial-home .sb-support__grid article:nth-child(n+3){border-top:1px solid rgba(27,27,31,.2)}
  .editorial-home .sb-film__beat--newspaper{width:min(48vw,590px)}
  .editorial-home .sb-film__beat--work{width:min(48vw,610px)}
  .editorial-home .sb-film--conference .sb-film__frame{width:94vw}
  .editorial-home .sb-compass__layout{
    grid-template-columns:minmax(0,1fr) minmax(250px,.58fr);
    gap:clamp(32px,5vw,60px);
  }
  .editorial-home .sb-compass__neon{width:min(30vw,39vh,340px)}
  .editorial-home .sb-contact__grid{width:100%}
}

@media(min-width:721px) and (max-width:1020px) and (orientation:portrait){
  .editorial-home .sb-film--conference .sb-film__frame{
    top:18vh;
    width:92vw;
    height:auto;
    aspect-ratio:16/10;
  }
  .editorial-home .sb-film--conference .sb-film__frame video{
    object-fit:contain;
    object-position:center;
    background:var(--sb-cream);
  }
  .editorial-home .sb-film--conference .sb-film__caption-rail{
    top:calc(18vh + 57.5vw + 32px);
    bottom:auto;
  }
}

/* Short laptop windows keep every chapter while removing dead air and hard
   viewport minimums that previously clipped their lower content. */
@media(min-width:721px) and (max-height:760px){
  .editorial-home .sb-section{
    padding-top:clamp(64px,9vh,88px);
    padding-bottom:clamp(64px,9vh,88px);
  }
  .editorial-home .sb-hero__sticky,
  .editorial-home .sb-film__sticky,
  .editorial-home .sb-compass__sticky,
  .editorial-home .sb-stories__sticky{
    height:100svh;
    min-height:0;
  }
  .editorial-home .sb-hero__film{
    top:clamp(138px,24vh,188px);
    height:min(68svh,520px);
  }
  .editorial-home .sb-hero__content{
    padding-top:clamp(132px,20vh,166px);
    padding-bottom:34px;
  }
  .editorial-home .sb-network__path,
  .editorial-home .sb-support__grid,
  .editorial-home .sb-team__grid,
  .editorial-home .sb-contact__grid{margin-top:clamp(42px,7vh,64px)}
  .editorial-home .sb-compass__layout{
    padding-top:clamp(108px,16vh,138px);
    padding-bottom:52px;
  }
  /* Editorial plates may never exceed a short viewport or cross its edges. */
  .editorial-home .sb-film__beat{
    max-height:calc(100svh - 56px);
    overflow:hidden;
  }
  .editorial-home .sb-film__beat .sb-title{
    font-size:clamp(2.35rem,6.3vw,5.3rem);
  }
  .editorial-home .sb-stories__sticky{
    padding-block:36px;
  }
  .editorial-home .sb-testimonial p{
    font-size:clamp(2rem,5vw,4rem);
  }
}

@media(max-width:720px){
  .editorial-home{--sb-gutter:24px}
  .editorial-home .sb-section{padding-block:72px}
  .editorial-home .sb-statement,
  .editorial-home .sb-dmv,
  .editorial-home .sb-contact{padding-block:86px}
  .editorial-home .sb-title{font-size:clamp(2.8rem,14vw,4.7rem)}
  .editorial-home .sb-copy{font-size:.95rem}
  .editorial-home .sb-copy--large{font-size:1.55rem}

  .editorial-home .sb-hero{height:145svh;min-height:960px;padding:0}
  .editorial-home .sb-hero__sticky{height:100svh;min-height:0}
  .editorial-home .sb-hero__film{
    top:auto;bottom:0;right:-9vw;width:104vw;height:55vh;
    -webkit-mask-image:linear-gradient(0deg,#000 0,#000 78%,transparent 100%);
            mask-image:linear-gradient(0deg,#000 0,#000 78%,transparent 100%);
  }
  .editorial-home .sb-hero__film::after{background:linear-gradient(0deg,rgba(250,246,235,.12),var(--sb-cream) 100%)}
  .editorial-home .sb-hero__veil{background:linear-gradient(0deg,transparent 0,var(--sb-cream) 62%)}
  .editorial-home .sb-hero__content{padding:176px 24px 48px;justify-content:flex-end}
  .editorial-home .sb-hero__title{font-size:clamp(3rem,14.5vw,4.4rem);margin-top:14px}
  .editorial-home .sb-hero__lower{grid-template-columns:1fr;margin-top:22px;gap:14px}
  .editorial-home .sb-actions{gap:10px 22px}
  .editorial-home .sb-scroll-note{display:none}

  .editorial-home .sb-statement,
  .editorial-home .sb-dmv,
  .editorial-home .sb-compass,
  .editorial-home .sb-editorial,
  .editorial-home .sb-network,
  .editorial-home .sb-private,
  .editorial-home .sb-bliss,
  .editorial-home .sb-support,
  .editorial-home .sb-team,
  .editorial-home .sb-contact{min-height:auto}
  .editorial-home .sb-statement__grid{display:block}
  .editorial-home .sb-statement__lead{margin-bottom:36px}
  .editorial-home .sb-statement__copy{width:100%;margin:50px 0 0}

  .editorial-home .sb-film{height:190svh;min-height:1200px;padding:0}
  .editorial-home .sb-film__sticky{height:100svh;min-height:0}
  .editorial-home .sb-film--left .sb-film__frame,
  .editorial-home .sb-film--center .sb-film__frame{
    left:0;top:21vh;width:100vw;height:58vh;transform:none;
    -webkit-mask-image:linear-gradient(0deg,transparent 0,#000 12%,#000 88%,transparent 100%);
            mask-image:linear-gradient(0deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  }
  .editorial-home .sb-film__beat{
    max-width:88vw;
    z-index:4;
    overflow-wrap:anywhere;
  }
  .editorial-home .sb-film__beat .sb-title{font-size:clamp(2.7rem,13vw,4.2rem)}
  .editorial-home .sb-film__beat--upper-right,
  .editorial-home .sb-film__beat--top-left{top:9vh;left:24px;right:24px;text-align:left}
  .editorial-home .sb-film__beat--lower-left,
  .editorial-home .sb-film__beat--bottom-right{bottom:8vh;left:24px;right:24px;text-align:left}
  .editorial-home .sb-film--short{height:165svh;min-height:1050px}
  .editorial-home .sb-film--short .sb-film__progress{top:24px;bottom:auto}

  .editorial-home .sb-film--room .sb-film__frame{
    left:0;
    top:34vh;
    width:100vw;
    height:48vh;
    transform:none;
    -webkit-mask-image:linear-gradient(0deg,transparent 0,#000 10%,#000 92%,transparent 100%);
            mask-image:linear-gradient(0deg,transparent 0,#000 10%,#000 92%,transparent 100%);
  }
  .editorial-home .sb-film--room .sb-film__frame::after{
    background:linear-gradient(0deg,rgba(250,246,235,.2),transparent 38%);
  }
  .editorial-home .sb-film--room .sb-film__frame video{object-position:72% center}
  .editorial-home .sb-film__beat--newspaper{
    top:5vh;
    left:24px;
    right:24px;
    width:auto;
    max-width:none;
  }
  .editorial-home .sb-film__beat--newspaper .sb-title{
    max-width:12ch;
    margin-top:10px;
    font-size:clamp(2.15rem,10.5vw,3.3rem);
  }
  .editorial-home .sb-film__columns{
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:22px;
    padding-top:12px;
    font-size:.68rem;
    line-height:1.5;
  }

  .editorial-home .sb-film--work .sb-film__frame{
    left:0;
    top:11vh;
    width:100vw;
    height:57vh;
    transform:none;
  }
  .editorial-home .sb-film__beat--work{
    left:24px;
    right:24px;
    bottom:5vh;
    width:auto;
    color:var(--sb-ink);
    text-align:left;
    text-shadow:none;
  }
  .editorial-home .sb-film__beat--work .sb-title{
    font-size:clamp(2.35rem,11.5vw,3.65rem);
    text-shadow:none;
  }
  .editorial-home .sb-film__beat--work .sb-copy{
    margin:16px 0 0;
    font-size:.82rem;
  }

  .editorial-home .sb-film--conference .sb-film__frame{
    left:0;
    top:12vh;
    width:100vw;
    height:55vh;
    transform:none;
    background:var(--sb-cream);
    -webkit-mask-image:linear-gradient(0deg,transparent 0,#000 9%,#000 91%,transparent 100%);
            mask-image:linear-gradient(0deg,transparent 0,#000 9%,#000 91%,transparent 100%);
  }
  .editorial-home .sb-film--conference .sb-film__frame video{
    object-fit:contain;
    object-position:center;
  }
  .editorial-home .sb-film__caption-rail{
    left:24px;
    right:24px;
    bottom:8vh;
    width:auto;
    display:grid;
    justify-items:start;
    gap:16px;
    transform:none;
  }
  .editorial-home .sb-film__caption-rail .sb-copy{
    font-size:clamp(1.55rem,8vw,2.15rem);
    line-height:1.05;
  }

  .editorial-home .sb-dmv__names{display:block}
  .editorial-home .sb-dmv__names span{display:block;font-size:clamp(3rem,16vw,5rem)}
  .editorial-home .sb-dmv__names span+span{margin-top:12px}
  .editorial-home .sb-dmv__body{display:block;margin-top:54px}
  .editorial-home .sb-dmv__body .sb-copy{margin-top:34px}

  .editorial-home .sb-compass{height:155svh;min-height:980px;padding:0}
  .editorial-home .sb-compass__sticky{height:100svh;min-height:0}
  .editorial-home .sb-compass__layout{
    display:block;
    height:100%;
    padding:140px 24px 34px;
  }
  .editorial-home .sb-compass__copy{max-width:100%}
  .editorial-home .sb-compass__copy .sb-folio{margin-bottom:24px}
  .editorial-home .sb-compass__copy .sb-title{
    max-width:9ch;
    font-size:clamp(2.7rem,12.5vw,4.2rem);
  }
  .editorial-home .sb-compass__copy>.sb-copy{
    max-width:33ch;
    margin-top:24px;
    font-size:.86rem;
  }
  .editorial-home .sb-compass__signals{
    max-width:30ch;
    margin-top:20px;
    font-size:.54rem;
    line-height:1.75;
  }
  .editorial-home .sb-compass__neon{
    position:absolute;
    right:10px;
    bottom:-2vh;
    width:min(50vw,240px);
  }
  .editorial-home .sb-compass__scroll{display:none}

  .editorial-home .sb-editorial__copy,
  .editorial-home .sb-editorial__grid--reverse .sb-editorial__copy{width:100%;margin:0;padding-top:42px}

  .editorial-home .sb-network__path{overflow:hidden;margin:64px 0}
  .editorial-home .sb-network__path span:nth-of-type(2),
  .editorial-home .sb-network__path span:nth-of-type(3){display:none}
  .editorial-home .sb-network__copy{display:block}
  .editorial-home .sb-network__copy .sb-copy+.sb-copy{margin-top:36px}

  .editorial-home .sb-private__copy{width:100%;margin:54px 0 0}
  .editorial-home .sb-neon-line{font-size:clamp(4rem,18vw,6rem)}

  .editorial-home .sb-bliss__line{font-size:clamp(3rem,14vw,4.5rem)}
  .editorial-home .sb-bliss__line--right{text-align:left}
  .editorial-home .sb-bliss .sb-copy{width:100%;margin:64px 0 0}

  .editorial-home .sb-support__grid{grid-template-columns:1fr;margin-top:64px}
  .editorial-home .sb-support__grid article,
  .editorial-home .sb-support__grid article+article{
    min-height:0;padding:28px 0 44px;border-right:0;border-top:1px solid rgba(27,27,31,.2);
  }
  .editorial-home .sb-support__grid h3{margin-top:30px}

  .editorial-home .sb-team__grid{width:100%;grid-template-columns:1fr;margin-top:64px}
  .editorial-home .sb-team>.sb-shell>.sb-link{margin-left:0}

  .editorial-home .sb-stories{padding-inline:0}
  .editorial-home .sb-stories__intro{padding-inline:24px}
  .editorial-home .sb-stories__scroll{height:440svh}
  .editorial-home .sb-testimonial{width:calc(100vw - 48px)}
  .editorial-home .sb-testimonial p{font-size:clamp(2rem,9.5vw,3rem)}
  .editorial-home .sb-stories>.sb-disclaimer{padding-inline:24px}

  .editorial-home .sb-contact__grid{display:block;margin-top:60px}
  .editorial-home .sb-contact__people{margin-top:70px}
  .editorial-home .sb-contact__people a{overflow-wrap:anywhere}
  .editorial-home .sb-footer{grid-template-columns:1fr;padding-inline:24px}
  .editorial-home .sb-footer__legal nav{flex-wrap:wrap}
}

@media(max-width:430px){
  .editorial-home .sb-film__columns{
    grid-template-columns:1fr;
    gap:12px;
    font-size:.73rem;
    line-height:1.48;
  }
}

/* Phones receive their own 9:16 art direction. Desktop and landscape-phone
   views retain the original cinematic widescreen compositions. */
@media(max-width:720px) and (orientation:portrait){
  .editorial-home .sb-hero__film,
  .editorial-home .sb-film--dmv .sb-film__frame,
  .editorial-home .sb-film--room .sb-film__frame,
  .editorial-home .sb-film--work .sb-film__frame{
    inset:auto;
    left:auto;
    height:auto;
    aspect-ratio:9/16;
    transform:none;
  }

  .editorial-home .sb-hero__film video,
  .editorial-home .sb-film--dmv .sb-film__frame video,
  .editorial-home .sb-film--room .sb-film__frame video,
  .editorial-home .sb-film--work .sb-film__frame video{
    object-fit:cover;
    object-position:center;
  }

  .editorial-home .sb-hero__film{
    right:-6vw;
    bottom:-3vh;
    width:min(72vw,320px);
  }
  .editorial-home .sb-hero__film::after{
    background:
      linear-gradient(90deg,rgba(250,246,235,.96),rgba(250,246,235,.72) 34%,transparent 72%),
      linear-gradient(180deg,rgba(250,246,235,.88),transparent 42%),
      linear-gradient(0deg,rgba(250,246,235,.5),transparent 34%);
  }

  .editorial-home .sb-film--dmv .sb-film__frame{
    right:-5vw;
    top:clamp(150px,22vh,190px);
    width:min(68vw,318px);
  }
  .editorial-home .sb-film--dmv .sb-film__frame::after,
  .editorial-home .sb-film--work .sb-film__frame::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }
  .editorial-home .sb-film--dmv .sb-film__frame::after{
    background:
      linear-gradient(90deg,rgba(250,246,235,.94),rgba(250,246,235,.58) 42%,transparent 82%),
      linear-gradient(0deg,rgba(250,246,235,.9),transparent 23%,transparent 76%,rgba(250,246,235,.82));
  }
  .editorial-home .sb-film--dmv .sb-film__beat--upper-right{
    top:clamp(154px,18vh,178px);
    right:auto;
    width:min(76vw,300px);
  }
  .editorial-home .sb-film--dmv .sb-film__beat--lower-left{
    right:auto;
    bottom:4vh;
  }
  .editorial-home .sb-film--dmv .sb-film__beat--upper-right .sb-title{
    max-width:9.5ch;
    font-size:clamp(2.35rem,11vw,3.3rem);
  }

  .editorial-home .sb-film--room .sb-film__frame{
    right:-4vw;
    bottom:-70px;
    width:min(70vw,324px);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%);
  }
  .editorial-home .sb-film--room .sb-film__frame::after{
    background:
      linear-gradient(90deg,rgba(250,246,235,.97),rgba(250,246,235,.82) 32%,rgba(250,246,235,.08) 72%,transparent),
      linear-gradient(180deg,rgba(250,246,235,.72),transparent 35%);
  }
  .editorial-home .sb-film__beat--newspaper{top:clamp(154px,18vh,178px)}

  .editorial-home .sb-film--work .sb-film__frame{
    right:-3vw;
    top:7vh;
    width:min(68vw,320px);
  }
  .editorial-home .sb-film--work .sb-film__frame::after{
    background:linear-gradient(0deg,var(--sb-cream),rgba(250,246,235,.88) 14%,transparent 42%);
  }
  .editorial-home .sb-film__beat--work{bottom:4vh}
  .editorial-home .sb-film__beat--work .sb-title{
    max-width:10ch;
    font-size:clamp(2.25rem,10.8vw,3.45rem);
  }

  .editorial-home .sb-film--conference .sb-film__frame{
    left:16px;
    right:auto;
    top:20vh;
    width:calc(100vw - 32px);
    height:auto;
    aspect-ratio:16/10;
    transform:none;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
            mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  }
  .editorial-home .sb-film--conference .sb-film__caption-rail{
    top:calc(20vh + 62.5vw + 10px);
    bottom:auto;
  }
}

@media(max-width:430px) and (max-height:740px){
  .editorial-home .sb-film__beat--newspaper .sb-title{font-size:2rem}
  .editorial-home .sb-film__columns{
    gap:7px;
    margin-top:14px;
    padding-top:9px;
    font-size:.66rem;
    line-height:1.38;
  }
  .editorial-home .sb-film--room .sb-film__frame{
    right:-5vw;
    bottom:-86px;
    width:68vw;
  }
}

/* Compact phones get their own portrait art direction: the message remains
   readable while the 9:16 sign stays visible without colliding with it. */
@media(max-width:720px) and (max-height:740px){
  .editorial-home .sb-hero__content{
    padding-top:128px;
    padding-bottom:24px;
  }
  .editorial-home .sb-hero__title{
    font-size:clamp(2.55rem,12vw,3.45rem);
  }
  .editorial-home .sb-hero__lower{
    margin-top:14px;
    gap:8px;
  }
  .editorial-home .sb-film__beat--upper-right,
  .editorial-home .sb-film__beat--top-left{
    top:74px;
  }
  .editorial-home .sb-film__beat--lower-left,
  .editorial-home .sb-film__beat--bottom-right,
  .editorial-home .sb-film__beat--work{
    bottom:18px;
  }
  .editorial-home .sb-compass__layout{padding-top:108px}
  .editorial-home .sb-compass__copy .sb-title{
    font-size:clamp(2.45rem,11vw,3.25rem);
  }
  .editorial-home .sb-compass__copy>.sb-copy{
    max-width:31ch;
    margin-top:18px;
    font-size:.78rem;
    line-height:1.58;
  }
  .editorial-home .sb-compass__signals{display:none}
  .editorial-home .sb-compass__neon{
    right:8px;
    bottom:-1vh;
    width:min(43vw,176px);
  }
}

@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-neon-line,
  .editorial-home .sb-bliss__line em{animation:none!important}
  .editorial-home .sb-hero{height:auto;min-height:100svh}
  .editorial-home .sb-hero__sticky{position:relative}
  .editorial-home .sb-compass{height:auto;min-height:100svh}
  .editorial-home .sb-compass__sticky{position:relative}
  .editorial-home .sb-film{height:auto;min-height:100svh}
  .editorial-home .sb-film__sticky{position:relative}
  .editorial-home .sb-film__beat{position:relative!important;inset:auto!important;opacity:1!important;transform:none!important;max-width:90%;margin:42px var(--sb-gutter)}
  .editorial-home .sb-stories__scroll{height:auto}
  .editorial-home .sb-stories__sticky{position:relative;height:auto;display:block;padding:70px var(--sb-gutter)}
  .editorial-home .sb-testimonial{position:relative;inset:auto;width:auto;opacity:1;transform:none!important;padding:48px 0;border-top:1px solid rgba(27,27,31,.2)}
  .editorial-home .sb-stories__counter{display:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   FILM FRAMES — clear the fixed header, and far less feather          (b50)
   The pinned frame used to start at 10vh while the header + its skirt still
   occupied ~130px, so the top of every film (and the subjects' heads) sat
   behind the bar. Frames now begin below the condensed header, and the side
   feather is a hairline rather than a wide fade.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:1025px){
  .editorial-home .sb-film--left .sb-film__frame{
    top:14.5vh;
    height:71vh;
  }
  .editorial-home .sb-film--center .sb-film__frame{
    top:14vh;
    height:72vh;
  }
}
/* Feather: 8% → 2.5% a side. Enough to avoid a hard cut, not a visible fade. */
.editorial-home .sb-film__frame{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
}
.editorial-home .sb-film--center .sb-film__frame{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
}

/* ══════════════════════════════════════════════════════════════════════════
   HERO — the spring film is drawn out of the right edge like a drawer  (b51)
   Act 1  the proposition alone on cream (no film in sight)
   Act 2  the drawer slides out, right → left, under smoked plexi
   Act 3  fully out, the film runs and the DMV beats ride it
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-hero{
  height:300svh;              /* room for the three acts to breathe */
  min-height:2000px;
}
.editorial-home .sb-hero__drawer{
  position:absolute;
  right:0;
  top:22vh;
  width:min(52vw,860px);
  height:min(56vh,590px);
  /* closed: parked just off the right edge. .sb-hero__sticky clips it.
     --drawer is set on the section by the scroll code and inherits down here,
     so it must not be re-declared on this element. */
  transform:translate3d(calc((1 - var(--drawer,0)) * 102%),0,0);
  will-change:transform;
  z-index:1;
}
.editorial-home .sb-hero__drawer-body{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:var(--sb-deep);
  box-shadow:
    -22px 0 60px -30px rgba(15,24,48,.34),          /* the drawer casts onto the page */
    0 26px 60px -44px rgba(15,24,48,.5);
}
.editorial-home .sb-hero__drawer-body video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  filter:saturate(.82) contrast(1.05) brightness(.99);
}
/* Smoked plexi: a thin tinted sheet with one raking highlight. It is the
   surface you read first — the film sits behind it, quieter. */
.editorial-home .sb-hero__plexi{
  position:absolute;
  inset:0;
  pointer-events:none;
  /* Smoked acrylic: a cool dark sheet, one raking specular across the top-left
     corner, and the faint bright line where a cut edge catches the light. The
     film is meant to be read THROUGH this, not presented by it. */
  background:
    linear-gradient(114deg,
      rgba(255,255,255,.20) 0%,
      rgba(255,255,255,.07) 11%,
      rgba(255,255,255,0) 24%),
    linear-gradient(196deg,
      rgba(11,17,36,.52) 0%,
      rgba(11,17,36,.38) 46%,
      rgba(11,17,36,.60) 100%);
  backdrop-filter:blur(.7px) saturate(.84) contrast(1.03);
  -webkit-backdrop-filter:blur(.7px) saturate(.84) contrast(1.03);
  box-shadow:inset 0 1px 0 rgba(250,246,235,.16),
             inset 0 -1px 0 rgba(11,17,36,.4);
}
/* The drawer's front face — a fine bright lip on the leading edge. */
.editorial-home .sb-hero__drawer-face{
  position:absolute;
  left:-1px;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg,
    rgba(250,246,235,0) 0%,
    rgba(250,246,235,.62) 22%,
    rgba(250,246,235,.62) 78%,
    rgba(250,246,235,0) 100%);
  box-shadow:-1px 0 14px rgba(250,246,235,.4);
}

/* Beats that ride the film once the drawer is out. */
.editorial-home .sb-hero__beat{
  position:absolute;
  z-index:3;
  left:var(--sb-gutter);
  max-width:min(43vw,660px);
  opacity:var(--beat-opacity,0);
  transform:translate3d(0,var(--beat-y,28px),0);
  pointer-events:none;
}
.editorial-home .sb-hero__beat--a{top:26vh}
.editorial-home .sb-hero__beat--b{bottom:19vh}
.editorial-home .sb-hero__beat .sb-title{
  margin-top:16px;
  font-size:clamp(2.6rem,5vw,5.2rem);
  line-height:.94;
}
.editorial-home .sb-hero__beat .sb-copy{
  font-family:var(--serif);
  font-size:clamp(1.35rem,2.3vw,2.4rem);
  line-height:1.1;
}

/* The old cream veil was tuned to a full-bleed hero film; with the drawer it
   would only mute the plate. Keep a whisper at the very bottom for the note. */
.editorial-home .sb-hero__veil{
  background:linear-gradient(0deg,var(--sb-cream) 0%,transparent 18%);
}

@media(max-width:1024px){
  .editorial-home .sb-hero__drawer{
    top:auto;
    bottom:16vh;
    width:min(78vw,620px);
    height:min(42vh,420px);
  }
  .editorial-home .sb-hero__beat{max-width:min(78vw,620px)}
  .editorial-home .sb-hero__beat--a{top:20vh}
  .editorial-home .sb-hero__beat--b{bottom:60vh}
}
@media(max-width:720px){
  .editorial-home .sb-hero{height:270svh;min-height:1700px}
  .editorial-home .sb-hero__drawer{
    right:0;
    bottom:12vh;
    width:88vw;
    height:min(38vh,360px);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   MINIMALISM PASS — same content, less page                          (b52)
   The chapters were already calm; what read as un-premium was sheer length
   and small pieces of template chrome. Nothing here removes copy.
   ═══════════════════════════════════════════════════════════════════════ */

/* Testimonials held 4.8 viewports of scroll for seven quotes — a fifth of the
   whole page. Same seven, read at a brisker, more confident pace. */
.editorial-home .sb-stories__scroll{height:300svh}

/* Bring the film chapters onto one rhythm (the room film ran a half-viewport
   longer than its siblings for no editorial reason). */
.editorial-home .sb-film--room{height:190svh;min-height:1300px}
.editorial-home .sb-compass{height:148svh;min-height:1040px}

/* Scrubbed film progress rails read as template UI, not editorial. The film
   itself is the progress indicator. */
.editorial-home .sb-film__progress{display:none}

/* One scroll affordance on the page is enough — the hero's. */
.editorial-home .sb-compass__scroll{display:none}

/* Slightly tighter chapter padding: still generous, less padded-out. */
.editorial-home .sb-section{padding-block:clamp(88px,12vh,164px)}

/* The stories chapter drops its inline padding so the quote rail can run
   full-bleed — but its intro and disclaimer are body copy and still need the
   page gutter, or they sit flush against the screen edge below ~1500px. */
.editorial-home .sb-stories__intro,
.editorial-home .sb-stories>.sb-disclaimer{padding-inline:var(--sb-gutter)}

/* The nationwide path is a single nowrap line of five places; on the narrowest
   phones it was squeezed to the screen edge. Let it settle into a quiet
   wrapped list instead of compressing the rules to nothing. */
@media(max-width:420px){
  .editorial-home .sb-network__path{
    flex-wrap:wrap;
    white-space:normal;
    gap:10px 16px;
  }
  .editorial-home .sb-network__path i{display:none}
}

/* Two chapters reserved more than a viewport for well under a viewport of
   copy. Still generous, now deliberate. */
.editorial-home .sb-statement{min-height:104svh}
.editorial-home .sb-network{min-height:100svh}

/* ══════════════════════════════════════════════════════════════════════════
   PHONES — the same book, printed for a smaller page                  (b53)
   No drawer, no spring film, no scrubbed footage: a phone gets the editorial
   as calm typography over stills. iPad and desktop keep the full direction.
   ═══════════════════════════════════════════════════════════════════════ */
@media(max-width:720px){
  /* Hero: the proposition, then the two DMV lines, as ordinary chapters.
     No sticky pin, no drawer, no cherry-blossom film. */
  .editorial-home .sb-hero{height:auto;min-height:0;padding:0}
  .editorial-home .sb-hero__sticky{
    position:static;
    height:auto;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:visible;
    padding-block:clamp(120px,18vh,180px) clamp(70px,10vh,110px);
  }
  .editorial-home .sb-hero__drawer,
  .editorial-home .sb-hero__veil{display:none}
  .editorial-home .sb-hero__content{
    order:1;
    height:auto;
    padding:0 var(--sb-gutter);
  }
  /* The DMV beats stop being scrub plates and become quiet blocks in flow. */
  .editorial-home .sb-hero__beat{
    position:static;
    order:2;
    max-width:none;
    margin-top:clamp(84px,13vh,140px);
    padding:0 var(--sb-gutter);
    opacity:1!important;
    transform:none!important;
  }
  .editorial-home .sb-hero__beat--b{order:3}
  .editorial-home .sb-hero__beat .sb-title{font-size:clamp(2.5rem,10vw,3.4rem)}
  .editorial-home .sb-hero__beat .sb-copy{font-size:clamp(1.3rem,6.5vw,1.9rem)}
  .editorial-home .sb-scroll-note{display:none}

  /* Remaining chapters keep their frames, but hold a still rather than a
     scrubbed film — the poster is what the <video> paints when it is never
     asked to load. */
  .editorial-home .sb-film{height:auto;min-height:0}
  .editorial-home .sb-film__sticky{
    position:static;
    height:auto;
    min-height:0;
    overflow:visible;
    padding-block:clamp(70px,10vh,110px);
  }
  .editorial-home .sb-film__frame{
    position:relative;
    left:auto;right:auto;top:auto;bottom:auto;
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    transform:none;
    -webkit-mask-image:none;
            mask-image:none;
  }
  .editorial-home .sb-film__beat{
    position:static;
    max-width:none;
    margin-top:clamp(30px,5vh,48px);
    padding:0 var(--sb-gutter);
    opacity:1!important;
    transform:none!important;
  }
  /* Two plates in flow read as two paragraphs — that is the intent here. */
  .editorial-home .sb-film__beat+.sb-film__beat{margin-top:clamp(22px,3.5vh,34px)}
  .editorial-home .sb-film__caption-rail{position:static;padding:0 var(--sb-gutter);margin-top:24px}
}

/* The closing-table film is a desktop/iPad moment. On a phone it reduces to a
   small still of a room, which says nothing the copy does not already say —
   so the chapter steps out entirely. Its caption lines live on in the
   "A relationship that continues" copy above it. */
@media(max-width:720px){
  .editorial-home .sb-film--conference{display:none}
}

/* ── Phones: keep the picture, drop the machinery ─────────────────────────
   Stripping the film left the opening screen as type on cream — no image at
   all, which is not minimal, it is empty. Apple's phone pages are image-led
   (their iPhone page carries 225 images and gates its film behind an explicit
   "Watch the film"), so phones here keep the spring picture as a still and
   lose only the drawer mechanics and the download. */
@media(max-width:720px){
  .editorial-home .sb-hero__drawer{
    display:block;
    position:static;
    order:2;
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    margin-top:clamp(38px,6vh,60px);
    transform:none;
  }
  .editorial-home .sb-hero__drawer-face{display:none}   /* no drawer to face */
  .editorial-home .sb-hero__drawer-body{box-shadow:none}
  .editorial-home .sb-hero__beat{order:3}
  .editorial-home .sb-hero__beat--b{order:4}
  .editorial-home .sb-hero__beat--a{margin-top:clamp(60px,9vh,96px)}
  /* the still is the picture, so the plexi lightens to a wash rather than a
     smoked sheet you read the film through */
  .editorial-home .sb-hero__plexi{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:linear-gradient(196deg,rgba(11,17,36,.18),rgba(11,17,36,.30));
  }
}

/* ── Phones: every picture carries its words ──────────────────────────────
   The closing-table film returns as a still (it is the only place the two of
   them appear as people on a phone), and each chapter's opening plate is
   lifted into the picture over a scrim, so the images read as compositions
   rather than photographs with captions parked underneath. */
@media(max-width:720px){
  .editorial-home .sb-film--conference{display:block}

  /* the plate that holds a still */
  .editorial-home .sb-film__frame,
  .editorial-home .sb-hero__drawer-body{position:relative;isolation:isolate}

  /* scrim: only as much as the type needs to stay legible */
  .editorial-home .sb-film__frame::after,
  .editorial-home .sb-hero__drawer-body::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(0deg,
      rgba(11,17,36,.72) 0%,
      rgba(11,17,36,.42) 26%,
      rgba(11,17,36,.06) 52%,
      transparent 72%);
  }

  .editorial-home .is-on-plate{
    position:absolute;
    z-index:2;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    margin:0;
    padding:0 clamp(20px,5.5vw,30px) clamp(22px,4.2vh,34px);
    max-width:none;
    color:var(--sb-paper);
    text-align:left;
    opacity:1!important;
    transform:none!important;
  }
  .editorial-home .is-on-plate .sb-kicker{color:var(--sb-paper);opacity:.82}
  .editorial-home .is-on-plate .sb-title{
    margin-top:10px;
    color:var(--sb-paper);
    font-size:clamp(2rem,8.6vw,2.9rem);
    line-height:.98;
    text-shadow:0 1px 26px rgba(11,17,36,.5);
  }
  .editorial-home .is-on-plate .sb-copy{
    margin-top:8px;
    color:var(--sb-paper);
    font-family:var(--serif);
    font-size:clamp(1.2rem,5.6vw,1.6rem);
    line-height:1.12;
  }
  .editorial-home .is-on-plate .sb-title em{color:var(--sb-gold-highlight,#D9BE8A)}

  /* copy that stays below the picture is support, so it sits quieter */
  .editorial-home .sb-film__beat:not(.is-on-plate){
    margin-top:clamp(20px,3.2vh,30px);
    font-size:.98rem;
  }
  .editorial-home .sb-film__beat:not(.is-on-plate) .sb-copy{
    font-family:var(--serif);
    font-size:clamp(1.15rem,5vw,1.45rem);
    line-height:1.16;
  }

  /* the conference chapter's rail is its plate copy */
  .editorial-home .sb-film--conference .sb-film__frame{aspect-ratio:4/5}
}

/* ── Phones: the pictures must actually fill their plates ─────────────────
   Three faults found by measuring: the hero body lost its containing block
   when the drawer became static (393x221 inside a 393x491 plate); the film
   frames kept their desktop widths (275px in a 393px screen) because the
   --left/--center rules are more specific; and one poster was letterboxed by
   an inherited object-fit. */
@media(max-width:720px){
  .editorial-home .sb-hero__drawer{position:relative}
  .editorial-home .sb-hero__drawer-body{position:absolute;inset:0;height:auto}

  .editorial-home .sb-film .sb-film__frame,
  .editorial-home .sb-film--left .sb-film__frame,
  .editorial-home .sb-film--center .sb-film__frame,
  .editorial-home .sb-film--short .sb-film__frame,
  .editorial-home .sb-film--room .sb-film__frame,
  .editorial-home .sb-film--work .sb-film__frame,
  .editorial-home .sb-film--conference .sb-film__frame{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    transform:none;
    -webkit-mask-image:none;
            mask-image:none;
  }
  /* one still fills one plate — never a letterbox band */
  .editorial-home .sb-film__frame video,
  .editorial-home .sb-film__frame img,
  .editorial-home .sb-hero__drawer-body video{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
  /* the room film is framed on its right third; keep that intent on a phone */
  .editorial-home .sb-film--room .sb-film__frame video{object-position:72% center}
  .editorial-home .sb-film--room .sb-film__frame::after{background:linear-gradient(0deg,
      rgba(11,17,36,.72) 0%,rgba(11,17,36,.42) 26%,rgba(11,17,36,.06) 52%,transparent 72%)}

  .editorial-home .sb-hero__beat--b{margin-top:clamp(26px,4.2vh,42px)}
}

/* The conference chapter carries phone rules from when it was a letterboxed
   film: a contained video on a cream bed, and a caption rail parked at 12vh.
   Now that it is a still with its words on it, both must yield — matched at
   equal specificity rather than with !important. */
@media(max-width:720px){
  .editorial-home .sb-film--conference .sb-film__frame video{
    object-fit:cover;
    object-position:center;
    background:none;
  }
  .editorial-home .sb-film__frame .is-on-plate,
  .editorial-home .sb-hero__drawer-body .is-on-plate{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    width:auto;
    height:auto;
    transform:none;
    background:none;
    -webkit-mask-image:none;
            mask-image:none;
  }
}

/* ── Phones: refinement pass ──────────────────────────────────────────────
   Smaller masthead, softly rounded plates, and the on-image copy set in from
   the edge so each picture keeps a margin of quiet around its words. */
@media(max-width:720px){
  .editorial-home .sb-hero__drawer,
  .editorial-home .sb-hero__drawer-body,
  .editorial-home .sb-film__frame{
    border-radius:clamp(16px,4.6vw,22px);
    overflow:hidden;
  }
  /* copy sits in from the left with room beneath it — never hard against the
     corner, which is what made it read as a caption rather than a layout */
  .editorial-home .sb-film__frame .is-on-plate,
  .editorial-home .sb-hero__drawer-body .is-on-plate{
    padding:0 clamp(30px,9vw,46px) clamp(30px,5.4vh,44px) clamp(30px,9vw,46px);
  }
  .editorial-home .is-on-plate .sb-kicker{letter-spacing:.24em;font-size:.6rem}
  .editorial-home .is-on-plate .sb-title{margin-top:12px}
}

/* The masthead mark is a signature, not a billboard — on a phone it was
   112px tall above the fold. */
@media(max-width:720px){
  .bar .logo{height:clamp(52px,14vw,66px)}
}

/* ── Phones: the words are the animation ──────────────────────────────────
   The pictures hold still; each plate's copy settles as it arrives. Replaces
   the earlier always-on state, so these must outrank it. */
@media(max-width:720px){
  .editorial-home .sb-film__beat,
  .editorial-home .sb-hero__beat,
  .editorial-home .is-on-plate,
  .editorial-home .sb-film__caption-rail{
    opacity:0!important;
    transform:translate3d(0,20px,0)!important;
    transition:opacity .9s cubic-bezier(.22,.7,.2,1),transform .9s cubic-bezier(.22,.7,.2,1);
    will-change:opacity,transform;
  }
  .editorial-home .sb-film__beat.is-revealed,
  .editorial-home .sb-hero__beat.is-revealed,
  .editorial-home .is-on-plate.is-revealed,
  .editorial-home .sb-film__caption-rail.is-revealed{
    opacity:1!important;
    transform:none!important;
  }
  /* the kicker leads, the line follows a beat later */
  .editorial-home .is-on-plate .sb-kicker{transition:opacity .8s ease .06s}
  .editorial-home .is-on-plate .sb-title,
  .editorial-home .is-on-plate .sb-copy{transition:opacity .9s ease .14s}
}
@media(max-width:720px) and (prefers-reduced-motion:reduce){
  .editorial-home .sb-film__beat,
  .editorial-home .sb-hero__beat,
  .editorial-home .is-on-plate,
  .editorial-home .sb-film__caption-rail{
    opacity:1!important;
    transform:none!important;
    transition:none;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   PLATE CORNERS — every picture on the page is softened, not rounded off
   A radius that reads as considered at a glance and disappears up close.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-film__frame,
.editorial-home .sb-hero__drawer,
.editorial-home .sb-hero__drawer-body,
.editorial-home .sb-compass__neon,
.editorial-home .sb-plate{
  border-radius:clamp(10px,.9vw,16px);
  overflow:hidden;
}
/* the neon plate is a lit object, so its corners stay a touch tighter */
.editorial-home .sb-compass__neon{border-radius:clamp(8px,.7vw,12px)}

/* ── The closing table, set as the owner directed ─────────────────────────
   The line sits at the top across the faces; the standing kicker anchors the
   bottom, centred and set heavier so it reads as a mark rather than a label. */
@media(max-width:720px){
  .editorial-home .sb-film--conference .sb-film__frame::after{
    background:
      linear-gradient(180deg,rgba(11,17,36,.62) 0%,rgba(11,17,36,.34) 18%,rgba(11,17,36,.05) 38%,transparent 52%),
      linear-gradient(0deg,rgba(11,17,36,.74) 0%,rgba(11,17,36,.40) 20%,rgba(11,17,36,.05) 42%,transparent 58%);
  }
  .editorial-home .sb-film--conference .is-on-plate{
    top:0;
    bottom:0;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    align-items:stretch;
    padding-top:clamp(26px,4.4vh,38px);
  }
  .editorial-home .sb-film--conference .is-on-plate .sb-copy{
    order:0;
    margin:0;
    color:var(--sb-paper);
    font-family:var(--serif);
    font-size:clamp(1.5rem,7vw,2rem);
    line-height:1.06;
    letter-spacing:-.02em;
    text-shadow:0 1px 20px rgba(11,17,36,.72),0 1px 3px rgba(11,17,36,.5);
  }
  .editorial-home .sb-film--conference .is-on-plate .sb-kicker{
    order:1;
    margin:0;
    text-align:center;
    color:var(--sb-paper);
    font-weight:600;
    font-size:clamp(.72rem,3.3vw,.86rem);
    letter-spacing:.2em;
    opacity:1;
    text-shadow:0 1px 16px rgba(11,17,36,.7);
  }
}

/* The masthead mark: header.bar.condensed .logo (0,3,1) outranked a plain
   .bar .logo, so the phone rule never applied. Matched here. */
@media(max-width:720px){
  header.bar .logo,
  header.bar.condensed .logo{height:clamp(50px,13.5vw,64px)}
}

/* ── Phone stills + the two added plates ─────────────────────────────────
   The stills exist only on phones: on iPad and desktop the films carry these
   moments, so the extra photographs would repeat them. */
.editorial-home .sb-plate-still{display:none}
.editorial-home .sb-mobile-plates{display:none}

@media(max-width:720px){
  /* the hero plate takes the photograph rather than the film's poster */
  .editorial-home .sb-plate-still{
    display:block;
    position:absolute;
    inset:0;
    z-index:0;
  }
  .editorial-home .sb-plate-still img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
  }

  .editorial-home .sb-mobile-plates{
    display:block;
    padding-block:clamp(70px,10vh,110px);
  }
  .editorial-home .sb-plate{
    position:relative;
    margin:0;
    width:100%;
    aspect-ratio:4/5;
    overflow:hidden;
    border-radius:clamp(16px,4.6vw,22px);
    background:var(--sb-beige);
  }
  .editorial-home .sb-plate+.sb-plate{margin-top:clamp(46px,7vh,72px)}
  .editorial-home .sb-plate .sb-plate-still{position:absolute;inset:0}
  .editorial-home .sb-plate::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(0deg,
      rgba(11,17,36,.72) 0%,rgba(11,17,36,.42) 26%,rgba(11,17,36,.06) 52%,transparent 72%);
  }
  .editorial-home .sb-plate .is-on-plate{
    position:absolute;
    z-index:2;
    left:0;right:0;bottom:0;top:auto;
    margin:0;
    padding:0 clamp(30px,9vw,46px) clamp(30px,5.4vh,44px);
    color:var(--sb-paper);
  }
  .editorial-home .sb-plate .is-on-plate .sb-kicker{color:var(--sb-paper);opacity:.82;font-size:.6rem;letter-spacing:.24em}
  .editorial-home .sb-plate .is-on-plate .sb-copy{
    margin-top:10px;
    color:var(--sb-paper);
    font-family:var(--serif);
    font-size:clamp(1.5rem,7vw,2rem);
    line-height:1.06;
    letter-spacing:-.02em;
    text-shadow:0 1px 22px rgba(11,17,36,.6);
  }
}

/* ── Phones: one plate geometry for the whole page ────────────────────────
   Rounded corners only read as designed when the picture is inset from the
   screen edge — at full bleed the radius is sliced off by the display. Every
   plate now sits in the same margin with the same corner, so the page has one
   rhythm from the hero to the closing table. */
@media(max-width:720px){
  .editorial-home .sb-film__sticky{padding-inline:clamp(18px,5vw,26px)}
  .editorial-home .sb-hero__drawer{
    width:calc(100% - 2 * clamp(18px,5vw,26px));
    margin-inline:auto;
  }
  /* the container carries the margin, so copy below a plate must not add its own */
  .editorial-home .sb-film__beat:not(.is-on-plate){padding-inline:0}

  .editorial-home .sb-film__frame,
  .editorial-home .sb-hero__drawer,
  .editorial-home .sb-hero__drawer-body,
  .editorial-home .sb-plate{border-radius:clamp(16px,4.4vw,20px)}
}
@media(max-width:720px){
  /* the added plates share the films' exact margin, so nothing steps in or out */
  .editorial-home .sb-mobile-plates{padding-inline:clamp(18px,5vw,26px)}
}
@media(max-width:720px){
  /* only beats inside a film sticky inherit that container's margin; the hero's
     beats sit in a sticky with no inline padding and keep their own gutter */
  .editorial-home .sb-film__sticky .sb-film__beat:not(.is-on-plate){padding-inline:0}
  .editorial-home .sb-hero__beat:not(.is-on-plate){padding-inline:var(--sb-gutter)}
}

/* ══════════════════════════════════════════════════════════════════════════
   WIDTH + THE HERO'S TOP VOID  (owner review, desktop)
   Two faults, both visible the moment the page loads on a large screen:

   1. Content sat in a 1480px column while the section colour ran edge to
      edge, so a wide display showed broad empty bands down both sides. The
      column now scales with the viewport and only stops growing on very
      large displays, where an unbounded measure would hurt reading.

   2. The hero content was bottom-aligned beneath a 232px masthead, so the
      first thing on the page was roughly a thousand pixels of nothing. The
      copy is now centred in the space the header leaves.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home{--sb-max:min(1720px,93vw)}

.editorial-home .sb-hero__content{
  justify-content:center;
  padding-top:clamp(160px,17vh,232px);
  padding-bottom:clamp(40px,5.5vh,64px);
}

/* ══════════════════════════════════════════════════════════════════════════
   DMV DRAWER — the region arrives as a picture before it is named
   The same drawer mechanic as the hero, but pulled in roughly half the
   scroll and left in full colour: no veil, no plexi, no tint. It also fills
   the empty upper half this section used to carry.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-dmv__drawer{
  --dmv-open:0;
  position:relative;
  margin:clamp(26px,4vh,44px) 0 clamp(30px,4.6vh,52px);
  width:100%;
  aspect-ratio:21/9;
  max-height:min(58vh,620px);
  border-radius:clamp(10px,.9vw,16px);
  overflow:hidden;
  background:var(--sb-beige);
  /* the drawer is pulled open from the left edge */
  clip-path:inset(0 calc((1 - var(--dmv-open)) * 100%) 0 0 round clamp(10px,.9vw,16px));
  will-change:clip-path;
}
.editorial-home .sb-dmv__drawer-body{position:absolute;inset:0}
.editorial-home .sb-dmv__drawer-body video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 62%;
  /* full colour: nothing sits over this footage */
  filter:none;
}
/* the leading edge catches light as the drawer travels */
.editorial-home .sb-dmv__drawer::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:calc(var(--dmv-open) * 100%);
  width:2px;
  background:linear-gradient(180deg,transparent,rgba(194,161,90,.55),transparent);
  opacity:calc((1 - var(--dmv-open)) * .9);
  pointer-events:none;
}

@media(max-width:720px){
  .editorial-home .sb-dmv__drawer{
    aspect-ratio:4/5;
    max-height:none;
    border-radius:clamp(16px,4.4vw,20px);
    clip-path:inset(0 calc((1 - var(--dmv-open)) * 100%) 0 0 round clamp(16px,4.4vw,20px));
    margin-block:clamp(22px,3.4vh,34px) clamp(26px,4vh,40px);
  }
  /* phones read the photograph; the film is never fetched */
  .editorial-home .sb-dmv__drawer-body video{display:none}
  .editorial-home .sb-dmv__drawer .sb-plate-still{display:block;position:absolute;inset:0}
}
@media(min-width:721px){
  .editorial-home .sb-dmv__drawer .sb-plate-still{display:none}
}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-dmv__drawer{clip-path:none;--dmv-open:1}
  .editorial-home .sb-dmv__drawer::after{display:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   HERO WITHOUT ITS FILM
   The drawer moved to the DMV chapter, so the hero is now a single
   typographic statement. It no longer needs three viewports of scroll to
   drive a film through, and holding that height would just reinstate the
   emptiness the owner asked me to remove.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-hero{
  height:auto;
  min-height:0;
  padding-block:0 clamp(70px,10vh,120px);
}
.editorial-home .sb-hero__sticky{
  position:static;
  height:auto;
  min-height:clamp(560px,78svh,860px);
}
.editorial-home .sb-hero__content{
  height:auto;
  min-height:clamp(560px,78svh,860px);
}

/* The relocated plates: the lead sets up the three names, the coda closes
   the chapter under the body copy. */
.editorial-home .sb-dmv__lead{
  margin:clamp(10px,1.6vh,18px) 0 clamp(20px,3vh,32px);
  max-width:22ch;
}
.editorial-home .sb-dmv__coda{
  margin-top:clamp(16px,2.4vh,26px);
  font-family:var(--serif);
  font-size:clamp(1.3rem,2vw,1.75rem);
  line-height:1.15;
  color:var(--sb-ink);
  opacity:.8;
}
@media(max-width:720px){
  .editorial-home .sb-hero{padding-bottom:clamp(48px,7vh,80px)}
  .editorial-home .sb-hero__sticky,
  .editorial-home .sb-hero__content{min-height:clamp(460px,70svh,640px)}
}

/* ══════════════════════════════════════════════════════════════════════════
   MASTHEAD — the names sit UNDER the mark, and the nav owns its whole line
   The identity block had gone horizontal, putting the two advisors beside the
   logo instead of beneath it; and the nav packed to the left, leaving nearly
   200px of dead line at the right. Both now read as one considered column
   with real air around it.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:1400px){
  header.bar .id{
    flex-direction:column;
    align-items:flex-start;
    gap:clamp(20px,2.2vh,34px);
  }
  header.bar .who{padding-left:2px}
  /* the nav spreads across the full measure rather than bunching left */
  header.bar .nav{
    flex:1 1 100%;
    width:100%;
    justify-content:space-between;
    gap:clamp(12px,1.2vw,26px);
    margin-top:clamp(18px,2vh,30px);
  }
  /* the valuation button keeps its own space at the end of the line */
  header.bar .nav .nav-cta{margin-left:clamp(10px,1.4vw,28px)}
}

/* Stacking the identity block made the at-rest masthead 376px tall, and with
   the kicker line gone the headline rose to meet it — the two overlapped by
   157px. The masthead is trimmed a little, and the hero opens below whatever
   height it settles at. (The header condenses to ~71px on the first scroll,
   so this clearance only costs anything in the opening view.) */
@media(min-width:1400px){
  header.bar .nav{margin-top:clamp(12px,1.4vh,22px)}
  header.bar .who .ttl{line-height:1.5}
  .editorial-home .sb-hero__content{
    padding-top:clamp(300px,41vh,400px);
    justify-content:flex-start;
  }
}
/* Medium windows now carry the same stacked masthead, so the hero has to
   clear it there too — otherwise the headline sits behind the mark. */
@media(min-width:1000px) and (max-width:1399px){
  .editorial-home .sb-hero__content{
    padding-top:clamp(250px,34vh,330px);
    justify-content:flex-start;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   DMV — A PINNED STAGE: open first, then travel
   Opening the drawer during ordinary scroll meant the top of the frame had
   already passed under the header before the drawer finished — you could
   never see the whole picture at once. The chapter now holds the page still
   while the drawer draws open, eases out, and only then releases into the
   film's own scrub.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-dmv__stage{
  position:relative;
  height:225svh;              /* the scroll this chapter spends (25% quicker) */
  margin-block:clamp(30px,5vh,64px) clamp(40px,6vh,80px);
}
.editorial-home .sb-dmv__pin{
  position:sticky;
  top:0;
  height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  /* clear the condensed masthead so the frame is never tucked under it */
  /* the band wants the width — the page gutter here made it read small */
  padding:calc(var(--sb-bar-h,84px) + clamp(14px,2vh,26px)) clamp(20px,3vw,64px) clamp(24px,4vh,48px);
}
.editorial-home .sb-dmv__stage .sb-dmv__drawer{
  margin:0;
  width:100%;
  max-width:var(--sb-max);
  /* The frame stays the wide cinematic band it was approved as. Letting it
     fill the pinned viewport turned it into a tall square — the picture read
     as a stock photograph rather than a film. */
  aspect-ratio:21/9;
  height:auto;
  max-height:calc(100svh - var(--sb-bar-h,84px) - clamp(60px,10vh,120px));
}
.editorial-home .sb-dmv__stage .sb-dmv__drawer-body{position:absolute;inset:0}

@media(max-width:720px){
  /* phones read a photograph, so there is nothing to pin */
  .editorial-home .sb-dmv__stage{height:auto;margin-block:clamp(22px,3.4vh,34px) clamp(26px,4vh,40px)}
  .editorial-home .sb-dmv__pin{position:static;height:auto;padding:0}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{aspect-ratio:4/5;height:auto}
}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-dmv__stage{height:auto}
  .editorial-home .sb-dmv__pin{position:static;height:auto;padding-block:0}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{aspect-ratio:21/9;height:auto}
}

/* ══════════════════════════════════════════════════════════════════════════
   HERO — one way in, placed against the headline
   The supporting line and the second call to action are gone. What remains
   sits to the LEFT of the headline, off the "Compass." line and a little
   above its centre, so the pairing is composed rather than symmetrical.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:1000px){
  .editorial-home .sb-hero__content{
    display:grid;
    grid-template-columns:minmax(160px,.24fr) minmax(0,1fr);
    grid-template-areas:"approach title";
    column-gap:clamp(36px,5vw,90px);
    align-items:start;
  }
  .editorial-home .sb-hero__title{grid-area:title;margin:0}
  .editorial-home .sb-hero__approach{
    grid-area:approach;
    justify-self:end;
    align-self:start;
    /* down to the second line, then lifted off its centre */
    margin-top:clamp(150px,19vh,236px);
    white-space:nowrap;
  }
}
@media(max-width:999px){
  .editorial-home .sb-hero__approach{
    display:inline-flex;
    margin-top:clamp(26px,4vh,44px);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   THE RELATIONSHIP — the hierarchy was inverted
   "Real estate is not a transaction to us." was set as small UI text and
   wrapped onto two cramped lines, while the line beneath it carried the
   display size. The opening thought now takes the larger voice, and the line
   that follows steps down and sits in ink rather than gold.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-statement__lead{
  font-family:var(--serif);
  font-size:clamp(1.9rem,3.6vw,3.5rem);
  line-height:1.1;
  letter-spacing:-.014em;
  color:var(--sb-ink);
  max-width:20ch;
  margin-bottom:clamp(20px,3vh,38px);
  opacity:1;
}
.editorial-home .sb-statement__title{
  font-size:clamp(2rem,3.9vw,3.8rem);   /* several steps down from the old display size */
  line-height:1.06;
  letter-spacing:-.02em;
  color:var(--sb-ink);
  max-width:24ch;
}
/* the second line keeps its gold — it is the one warm note in the chapter */
.editorial-home .sb-statement__title em{
  color:var(--sb-gold,#C2A15A);
  font-style:italic;
}

/* The masthead's surface is written inline by the page-wash script, and an
   inline style outranks any ordinary rule — which is why the headline kept
   reading through the navigation. This is the one place !important earns its
   keep: the bar must never be see-through. */
header.bar{background:#FAF6EB!important}
header.bar.on-dark,
header.bar.editorial-dark{background:#16223F!important}

/* (the full-bleed navy field that used to be here is replaced by the mat below) */

/* The sign needs room to be looked at. At 170svh the whole switch-on happened
   inside a flick of the wheel; the chapter now spends enough scroll that the
   rise, the hold and the fall each read as separate moments. */
.editorial-home .sb-compass{
  height:240svh;
  min-height:1560px;
}
@media(max-width:1020px){
  .editorial-home .sb-compass{height:210svh;min-height:1180px}
}
@media(max-width:720px){
  .editorial-home .sb-compass{height:auto;min-height:0}
}

/* ══════════════════════════════════════════════════════════════════════════
   THE HERO HOLDS WHILE THE MASTHEAD CONDENSES
   The copy began travelling on the first pixel of scroll, so it slid beneath
   a masthead that was still at full height — the headline disappearing under
   a tall bar. The hero now sticks for a short run: the bar condenses (60px),
   and only a few turns of the wheel later does the copy start to leave. Long
   enough to feel deliberate, short enough not to trap the reader.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:1000px){
  .editorial-home .sb-hero{
    padding-bottom:clamp(300px,34vh,420px);   /* the run the hold spends */
  }
  /* A sticky hold was tried here and cannot work: main.sb-home carries
     overflow:clip for section isolation, which disables sticky throughout its
     subtree. The lag is achieved instead by condensing the masthead within
     the first 10px of scroll, so it is already slim before any copy reaches
     it — same result, no fight with the isolation. */
}
@media(min-width:1000px){
  /* overflow:clip on the section makes its sticky child unstickable — the
     hold cannot happen while the hero clips. The hero has no bleeding layers
     of its own now that its film has gone, so it does not need the clip. */
  .editorial-home .sb-hero{overflow:visible}
}
@media(min-width:1400px){
  /* The last exposure is the ~280ms while the bar shrinks from 360 to 127: if
     the headline begins only 55px below it, a single wheel notch during that
     shrink puts it behind the bar. Starting it clear of the FULL bar height
     removes the transient outright. */
  .editorial-home .sb-hero__content{padding-top:clamp(400px,46vh,470px)}
}
@media(min-width:1000px) and (max-width:1399px){
  .editorial-home .sb-hero__content{padding-top:clamp(330px,40vh,400px)}
}

/* (the gilt frame now hangs on .sb-statement__frame — see below) */


/* ══════════════════════════════════════════════════════════════════════════
   THE DMV CHAPTER — a postcard, not a navy room
   The chapter stays beige. Behind the film sits ONE navy rectangle, only a
   little larger than the film itself on every side — a mount, the way a
   postcard is mounted. Its edges are hard: zero feather here, a clean
   beige-to-navy line. The band runs in from the left edge of the page rather
   than sitting centred, so it arrives from outside the frame.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:721px){
  .editorial-home .sb-dmv__stage{background:none}

  .editorial-home .sb-dmv__pin{
    /* the band starts hard against the left edge and runs right */
    justify-content:flex-start;
    padding-left:0;
    padding-right:clamp(40px,7vw,150px);
  }

  /* the mount: the drawer's own box, grown by the mat on each side */
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{
    --mat:clamp(18px,1.9vw,34px);      /* ≈ 2cm of navy around the picture */
    margin-left:0;
    max-width:min(var(--sb-max), 78vw);
    /* hard-edged navy mount — no gradient, no mask, no feather */
    outline:var(--mat) solid var(--sb-deep-navy,#0F1830);
    outline-offset:0;
    border-radius:0;
    background:var(--sb-deep-navy,#0F1830);
  }
  /* the picture inside the mount keeps its own square corners against it */
  .editorial-home .sb-dmv__stage .sb-dmv__drawer-body{border-radius:0}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer-body video,
  .editorial-home .sb-dmv__stage .sb-dmv__drawer-body img{border-radius:0}

  /* nothing in this chapter fades into anything: kill every soft edge */
  .editorial-home .sb-dmv__stage,
  .editorial-home .sb-dmv__pin,
  .editorial-home .sb-dmv__stage .sb-dmv__drawer,
  .editorial-home .sb-dmv__stage .sb-dmv__drawer-body{
    -webkit-mask-image:none!important;
            mask-image:none!important;
    box-shadow:none!important;
    filter:none!important;
  }
  .editorial-home .sb-dmv__stage::before,
  .editorial-home .sb-dmv__stage::after,
  .editorial-home .sb-dmv__pin::before,
  .editorial-home .sb-dmv__pin::after{content:none!important}
}

/* ══════════════════════════════════════════════════════════════════════════
   THE RELATIONSHIP — one picture on the wall, one line beside it
   Only "It is building / lasting relationships." and the paragraph beneath it
   hang in the gilt frame. The opening line — "Real estate is not a
   transaction to us." — stands OUTSIDE the frame, to its left, with real air
   between the two.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:1100px){
  .editorial-home .sb-statement__grid{
    display:grid;
    grid-template-columns:minmax(280px,.86fr) auto;
    grid-template-areas:
      "folio  ."
      "lead   frame";
    column-gap:clamp(56px,7.5vw,150px);     /* the negative space between them */
    row-gap:clamp(18px,2.6vh,34px);
    align-items:center;
    justify-content:start;
  }
  .editorial-home .sb-statement__grid .sb-folio{grid-area:folio;align-self:end}

  /* the line that stays on the wall */
  .editorial-home .sb-statement__lead{
    grid-area:lead;
    max-width:15ch;
    margin:0;
    font-size:clamp(2rem,3.5vw,3.4rem);
    line-height:1.08;
  }

  /* the framed picture: 9:16 portrait, gilt moulding, cream ground */
  .editorial-home .sb-statement__frame{
    grid-area:frame;
    width:min(38vw,520px);
    aspect-ratio:9/16;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:clamp(24px,4vh,52px);
    padding:clamp(38px,5.4vh,72px) clamp(38px,4vw,72px);   /* words breathe off the gilt */
    border-style:solid;
    border-width:clamp(44px,6.2vw,88px) clamp(42px,6vw,84px);
    border-image-source:image-set(url("assets/gold-frame.webp?v=2") type("image/webp"),
                                  url("assets/gold-frame.png?v=2") type("image/png"));
    border-image-slice:179 175 194 175;
    border-image-width:1;
    border-image-repeat:stretch;
  }
  .editorial-home .sb-statement__frame .sb-statement__title{
    max-width:none;
    margin:0;
    font-size:clamp(1.7rem,2.5vw,2.5rem);
  }
  .editorial-home .sb-statement__frame .sb-statement__copy{
    max-width:none;
    margin:0;
    font-size:clamp(.88rem,.95vw,1rem);
    line-height:1.62;
  }
}
@media(min-width:1100px) and (max-height:900px){
  .editorial-home .sb-statement__frame{aspect-ratio:auto;height:min(82vh,760px)}
}
/* Narrower desktop windows and tablets (owner 2026-10-04): the gilt frame used to
   exist only from 1100px, so a smaller window lost it and the words scattered over
   the blossom. Below 1100px the opening line sits above and the frame hangs under it. */
@media(max-width:1099px){
  .editorial-home .sb-statement__grid{
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:"folio" "lead" "frame";
    justify-items:center;
    row-gap:clamp(28px,4vh,44px);
  }
  .editorial-home .sb-statement__grid .sb-folio{grid-area:folio}
  .editorial-home .sb-statement__lead{
    grid-area:lead;max-width:none;margin:0;text-align:center;
    font-size:clamp(2rem,4.2vw,2.8rem);line-height:1.1;
  }
  .editorial-home .sb-statement__frame{
    grid-area:frame;
    width:min(88vw,600px);
    box-sizing:border-box;
    display:flex;flex-direction:column;justify-content:center;
    gap:clamp(20px,3vh,36px);
    margin:0;
    padding:clamp(34px,5vh,56px) clamp(34px,4.6vw,56px);
    border-style:solid;
    border-width:clamp(44px,6.2vw,88px) clamp(42px,6vw,84px);
    border-image-source:image-set(url("assets/gold-frame.webp?v=2") type("image/webp"),
                                  url("assets/gold-frame.png?v=2") type("image/png"));
    border-image-slice:179 175 194 175;
    border-image-width:1;
    border-image-repeat:stretch;
    background:var(--pg-bg,#FAF6EB) padding-box;   /* the blossom never shows through the picture */
  }
  .editorial-home .sb-statement__frame .sb-statement__title{
    max-width:none;margin:0;text-align:left;
    font-size:clamp(1.7rem,3.4vw,2.4rem);
  }
  .editorial-home .sb-statement__frame .sb-statement__copy{
    width:auto;max-width:none;margin:0;text-align:left;
    font-size:clamp(.95rem,1.6vw,1.05rem);line-height:1.62;
  }
}

/* The property-care chapter went by too quickly to read the work being done.
   30% more scroll for the same footage, so the hands and the grain have time
   to register. (178svh -> 231svh, and the short-window floor with it.) */
.editorial-home .sb-film--short{
  height:231svh;
  min-height:1534px;
}
@media(max-width:1020px){
  .editorial-home .sb-film--short{height:215svh;min-height:1365px}
}

/* ══════════════════════════════════════════════════════════════════════════
   TEXT STAYS CRISP THROUGH THIS STRETCH
   Type that sits on a transformed or promoted layer is rasterised once and
   then moved, so a fast scroll smears it. Through these chapters nothing
   promotes, nothing transforms, nothing filters — the glyphs are painted at
   their true position on every frame and stay razor sharp at any speed.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-private,
.editorial-home .sb-bliss,
.editorial-home .sb-support,
.editorial-home .sb-network,
.editorial-home .sb-private *,
.editorial-home .sb-bliss *,
.editorial-home .sb-support *,
.editorial-home .sb-network *{
  will-change:auto!important;
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
}
.editorial-home .sb-private .sb-title,
.editorial-home .sb-bliss__line,
.editorial-home .sb-support .sb-title,
.editorial-home .sb-network .sb-title,
.editorial-home .sb-private .sb-copy,
.editorial-home .sb-bliss .sb-copy,
.editorial-home .sb-support .sb-copy,
.editorial-home .sb-network .sb-copy{
  transform:none!important;
  backface-visibility:visible;
}
/* the glow is the ONE exception — it is the subject, and it never moves */
.editorial-home .sb-bliss__line em{filter:none!important}

/* ══════════════════════════════════════════════════════════════════════════
   FLOW / BLISS — real neon
   A gas tube does not pulse evenly: it swells, holds, dips, and now and then
   catches. Two rhythms of different lengths run against each other so the
   pattern never visibly repeats, and every step is eased — the light gains
   and loses, it never blinks on and off.
   ═══════════════════════════════════════════════════════════════════════ */
.editorial-home .sb-bliss__line em{
  color:#FF4FA8;
  animation:sbNeonGlow 7.3s cubic-bezier(.45,0,.35,1) infinite;
}
.editorial-home .sb-bliss__line--right em{animation-duration:8.9s;animation-delay:-3.1s}

@keyframes sbNeonGlow{
  /* the tube at rest — lit, but holding back */
  0%   {opacity:.86;
        text-shadow:0 0 4px rgba(255,120,190,.5),0 0 14px rgba(238,61,154,.42),0 0 34px rgba(238,61,154,.18)}
  /* swelling */
  18%  {opacity:1;
        text-shadow:0 0 7px rgba(255,190,225,.95),0 0 20px rgba(255,79,168,.7),0 0 52px rgba(238,61,154,.42),0 0 96px rgba(238,61,154,.18)}
  /* the catch: a quick dip and recovery, the way a tube stutters */
  27%  {opacity:.9;
        text-shadow:0 0 5px rgba(255,150,205,.62),0 0 16px rgba(238,61,154,.48),0 0 40px rgba(238,61,154,.22)}
  33%  {opacity:1;
        text-shadow:0 0 8px rgba(255,205,232,1),0 0 24px rgba(255,79,168,.78),0 0 60px rgba(238,61,154,.46),0 0 110px rgba(238,61,154,.2)}
  /* full burn, held */
  52%  {opacity:1;
        text-shadow:0 0 9px rgba(255,214,236,1),0 0 26px rgba(255,79,168,.82),0 0 66px rgba(238,61,154,.5),0 0 120px rgba(238,61,154,.22)}
  /* easing back down */
  74%  {opacity:.92;
        text-shadow:0 0 6px rgba(255,160,210,.7),0 0 18px rgba(238,61,154,.52),0 0 44px rgba(238,61,154,.26)}
  88%  {opacity:.99;
        text-shadow:0 0 8px rgba(255,196,228,.92),0 0 22px rgba(255,79,168,.72),0 0 56px rgba(238,61,154,.4)}
  100% {opacity:.86;
        text-shadow:0 0 4px rgba(255,120,190,.5),0 0 14px rgba(238,61,154,.42),0 0 34px rgba(238,61,154,.18)}
}
@media (prefers-reduced-motion:reduce){
  .editorial-home .sb-bliss__line em{
    animation:none;
    text-shadow:0 0 8px rgba(255,205,232,.95),0 0 24px rgba(255,79,168,.72),0 0 60px rgba(238,61,154,.4);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   THE DMV FILM, MOUNTED ON A NAVY POSTCARD
   The chapter's own ground stays beige. Behind the film sits ONE navy
   rectangle, only a little larger than the film itself — a mount, not a
   background band — so beige remains above it and below it. The film enters
   from the left edge of the page rather than sitting centred, and the mount
   runs off that edge with it.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:721px){
  .editorial-home .sb-dmv__stage{background:none}
  .editorial-home .sb-dmv__stage::before{display:none}   /* the old full-bleed navy field */

  .editorial-home .sb-dmv__pin{
    justify-content:flex-start;         /* the film starts at the left, not centre */
    padding-left:0;                     /* ...and the mount runs off that edge */
    padding-right:clamp(40px,7vw,150px);
  }

  /* The mount is a real element behind the film — a box-shadow cannot be used
     here because this chapter kills every shadow to keep its edges hard.
     It is DEEPER than it is wide: navy reads as a band above and below the
     film, and the two are revealed together by the same drawer wipe. */
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{
    --mount-x:clamp(16px,1.4vw,26px);
    --mount-y:clamp(54px,6.4vw,120px);   /* thicker top and bottom */
    margin-left:0;
    max-width:calc(var(--sb-max) - clamp(40px,7vw,150px));
    border-radius:0;
  }
  .editorial-home .sb-dmv__stage .sb-dmv__drawer::before{
    content:"";
    position:absolute;
    left:calc(-1 * var(--mount-x));
    right:calc(-1 * var(--mount-x));
    top:calc(-1 * var(--mount-y));
    bottom:calc(-1 * var(--mount-y));
    background:#0F1830;
    z-index:0;
    pointer-events:none;
    /* the mount is wiped open by the same progress the film is */
    clip-path:inset(0 calc(100% - (100% * var(--dmv-open,0))) 0 0);
  }
  .editorial-home .sb-dmv__stage .sb-dmv__drawer-body{z-index:1}
}
@media(max-width:720px){
  /* phones keep the inset plate they already read well */
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{
    box-shadow:0 0 0 clamp(12px,3.4vw,18px) var(--sb-deep-navy,#0F1830);
  }
}

/* The drawer carries a film again (film 1 — the closing table); the still
   is back to being the phone plate + poster frame, per the rules above. */
.editorial-home .sb-dmv__drawer .sb-plate-still img{
  width:100%;height:100%;object-fit:cover;object-position:center;display:block}

/* ── The line on the navy band ────────────────────────────────────────────
   Set on the mount above the photograph, revealed by the drawer's own
   progress: it drifts in from the right and settles as the drawer lands.
   Pure scroll-linked CSS on an unpromoted element — crisp at any speed. */
.editorial-home .sb-dmv__mountline{
  position:absolute;
  z-index:2;
  left:clamp(20px,3vw,64px);
  right:var(--mount-x,24px);
  top:calc(-1 * var(--mount-y,80px));
  height:var(--mount-y,80px);
  display:flex;
  align-items:center;
  margin:0;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(.95rem,1.5vw,1.45rem);   /* the 1912 line runs longer */
  letter-spacing:.01em;
  color:var(--sb-paper,#FAF6EB);
  opacity:calc((var(--dmv-open,0) - .45) / .4);
  transform:translateX(calc((1 - var(--dmv-open,0)) * 56px));
  pointer-events:none;
}
@media(max-width:720px){
  .editorial-home .sb-dmv__mountline{
    font-size:clamp(.92rem,4vw,1.1rem);
    left:clamp(16px,4.6vw,24px);
  }
}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-dmv__mountline{opacity:1;transform:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   THE NAVY POSTCARD, DONE RIGHT
   The first mount was a ::before on the drawer — and the drawer's wipe
   clip-path clips its own ::before, so navy computed but never painted.
   The mount is now the wrapper: it carries the band, the 1912 line, and the
   picture, and ONE wipe reveals all three together from the page's left edge.
   ═══════════════════════════════════════════════════════════════════════ */
@media(min-width:721px){
  .editorial-home .sb-dmv__mount{
    --mount-x:clamp(18px,1.6vw,30px);
    --mount-y:clamp(56px,6.6vw,124px);
    position:relative;
    width:calc(100% - clamp(40px,7vw,150px));  /* air stays on the right */
    background:#0F1830;
    padding:var(--mount-y) var(--mount-x) var(--mount-y) 0;  /* left: the picture bleeds off the edge */
    /* right corners carry the SITE media radius — 18px, the same curve the
       other pages' frames use (.cine-frame/.bcard) — and the radius rides
       the wipe clip so it is true at every point of the reveal. The left
       edge bleeds off the page, so its corners never show. */
    border-radius:0 18px 18px 0;
    clip-path:inset(0 calc((1 - var(--dmv-open,0)) * 100%) 0 0 round 0 18px 18px 0);
    will-change:clip-path;
  }
  /* the drawer inside the mount is just the picture: the mount owns the wipe */
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    margin:0;
    width:100%;
    max-width:none;
    border-radius:0;
    clip-path:none;
    will-change:auto;
    aspect-ratio:21/9;
    max-height:calc(100svh - var(--sb-bar-h,84px) - clamp(170px,22vh,300px));
  }
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer::after{display:none}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer::before{display:none}   /* the old ghost mount */

  /* the 1912 line lives INSIDE the painted band, so it can actually be seen */
  .editorial-home .sb-dmv__mountline{
    position:absolute;
    z-index:2;
    top:0;
    left:clamp(20px,3vw,64px);
    right:var(--mount-x);
    height:var(--mount-y);
    display:flex;
    align-items:center;
    margin:0;
    transform:none;
    opacity:calc((var(--dmv-open,0) - .55) / .35);
  }
}
@media(max-width:720px){
  .editorial-home .sb-dmv__mount{background:#0F1830;padding:clamp(40px,10vw,56px) clamp(12px,3.4vw,18px)}
  .editorial-home .sb-dmv__mountline{position:absolute;top:0;left:clamp(16px,4.6vw,24px);right:clamp(12px,3.4vw,18px);height:clamp(40px,10vw,56px);display:flex;align-items:center;margin:0;opacity:1;transform:none}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{box-shadow:none}
}

/* ── The statement lead sits WITH the frame, not across the room ──────────
   The lead column was minmax(280px,.86fr): the fr stretched it across the
   empty field, parking the sentence at the far left with 150px of gap on
   top. Both columns now size to content, the pair is centred as one
   composition, and the lead hugs the frame across a readable gutter. */
@media(min-width:1100px){
  .editorial-home .sb-statement__grid{
    grid-template-columns:auto auto;
    column-gap:clamp(48px,4.5vw,88px);
    justify-content:center;
  }
  .editorial-home .sb-statement__lead{justify-self:end;text-align:left}
  .editorial-home .sb-statement__grid .sb-folio{justify-self:end}
}
@media(min-width:721px){
  /* the section's own gutter (7.6vw) was still indenting the stage — the
     postcard bleeds off the true left edge of the PAGE, not of the measure */
  .editorial-home .sb-dmv__stage{
    margin-left:calc(-1 * clamp(26px,7.6vw,138px));
    width:calc(100% + clamp(26px,7.6vw,138px));
  }
}

/* ── The banner LEADS the drawer ──────────────────────────────────────────
   One drawer action, two edges: the navy postcard's front edge travels
   first out of the page edge, and the photograph follows it, catching up as
   the drawer lands. Both ride the same eased scrub — the image's reveal is
   simply mapped a beat behind the mount's. */
@media(min-width:721px){
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    clip-path:inset(0 calc((1 - clamp(0, (var(--dmv-open,0) - .14) / .86, 1)) * 100%) 0 0);
    will-change:clip-path;
  }
}
@media(min-width:721px){
  /* the legacy drawer rule declares a LOCAL --dmv-open:0, which outranks the
     animated value inherited from the stage — the mount wiped while the
     image stayed clipped at 100%. Inherit restores one shared clock. */
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{--dmv-open:inherit}
}

/* ── The postcard sits in the breath after the hero ───────────────────────
   Its own quiet chapter; the navy runs longer, with more banner showing
   past the photograph's right edge. */
.editorial-home .sb-dmvcard{padding-block:clamp(30px,4.5vh,60px) clamp(40px,6vh,84px)}
@media(min-width:721px){
  .editorial-home .sb-dmv__mount{
    width:calc(100% - clamp(20px,3vw,64px));          /* longer navy */
    --mount-x:clamp(44px,4.2vw,92px);                 /* more banner after the image */
  }
}

/* ── Less corridor between the hero and the postcard ──────────────────────
   The hero was holding a 300-420px run-out plus the postcard's own top pad;
   with the hold shortened to 110px the words leave sooner and the drawer is
   on screen within a couple of wheel turns. The pinned ride is shorter too:
   the wipe spends less scroll, so nothing feels like waiting. */
@media(min-width:1000px){
  .editorial-home .sb-hero{padding-bottom:clamp(90px,10vh,150px)}
}
.editorial-home .sb-dmvcard{padding-block:clamp(8px,1.6vh,20px) clamp(36px,5vh,72px)}
/* Trigger begins at 'top 78%': the wipe plays on approach; the pin engages
   78svh in (progress .542 of the 144svh span); THE FILM WAITS FOR THE STOP
   and then runs its fastest approved ride — 66svh for the 5s. */
.editorial-home .sb-dmv__stage{height:166svh}

/* The About page closes the gap the retired 'Off the clock' block left, and
   'What Sets Spring Boutique Apart' rises into it — generous, not cavernous. */
body:not(.editorial-home) section.light + section.light{padding-top:clamp(26px,4vh,54px)}

/* ══ Film 1 — the closing table in the postcard drawer ══════════════════════
   The footage's foreground heads reach within ~4% of the frame's top edge, so
   the 21/9 cover-crop must keep the top and give up floor instead: `center
   62%` (tuned for the retired street footage) would cut through hair. */
.editorial-home .sb-dmv__drawer-body video{object-position:center top}
@media(max-width:720px){
  .editorial-home .sb-dmv__drawer .sb-plate-still img{object-position:center top}
}

/* The held client-table slot reads its still like a film frame. */
.editorial-home .sb-film--conference .sb-film__frame .sb-plate-still{
  display:block;width:100%;height:100%}
.editorial-home .sb-film--conference .sb-film__frame .sb-plate-still img{
  width:100%;height:100%;display:block;object-fit:cover;
  filter:none}

/* ══ The postcard takes the old conference chapter's pace ═══════════════════
   The retired client-table chapter sat its film 137px above / 137px below —
   dead symmetric in the viewport (measured). The pin's bar-clearing top pad
   pushed the mount to 170/106; centring in the full 100svh reproduces the
   old chapter's placement (138/138 @982vh) at every height. */
@media(min-width:721px){
  .editorial-home .sb-dmv__pin{padding-top:0;padding-bottom:0}
}

/* ══ Section 1 in full: film + its text, corners equal everywhere ═══════════
   The client-table chapter moved here whole. Its kicker rides the navy band
   as the section folio; its serif line sits under the picture. BOTH rounded
   shapes — the navy banner and the film frame — carry the same 18px the
   other pages' frames use, and the radius rides both wipe clips. */
@media(min-width:721px){
  /* the film frame matches the banner: 18px on its visible right corners,
     carried through its staggered wipe */
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    border-radius:0 18px 18px 0;
    clip-path:inset(0 calc((1 - clamp(0, (var(--dmv-open,0) - .14) / .86, 1)) * 100%) 0 0 round 0 18px 18px 0);
  }
  /* the kicker-folio on the band, revealed as the drawer lands */
  .editorial-home .sb-dmv__folio{
    position:absolute;
    z-index:2;
    top:0;
    left:clamp(20px,3vw,64px);
    right:var(--mount-x,24px);
    height:var(--mount-y,80px);
    display:flex;
    align-items:center;
    margin:0;
    font-family:var(--sans);
    font-size:clamp(.61rem,.7vw,.74rem);
    font-weight:500;
    line-height:1.4;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:rgba(250,246,235,.78);
    opacity:calc((var(--dmv-open,0) - .55) / .35);
  }
  /* the serif line under the picture, where the old chapter carried it */
  .editorial-home .sb-dmv__caption{
    position:absolute;
    z-index:3;
    left:50%;
    bottom:5vh;
    width:min(82vw,1410px);
    transform:translateX(-50%);
    margin:0;
    text-align:right;
    font-family:var(--serif);
    font-size:clamp(1.4rem,2.1vw,2.35rem);
    line-height:1;
    color:var(--sb-ink);
    opacity:calc((var(--dmv-open,0) - .55) / .35);
  }
}
@media(max-width:720px){
  /* phones: the postcard is a static composition — same 18px on the navy,
     the picture, and its clip; folio on the band; serif line below */
  .editorial-home .sb-dmv__mount{position:relative;border-radius:18px}
  .editorial-home .sb-dmv__stage .sb-dmv__drawer{
    border-radius:18px;
    clip-path:inset(0 calc((1 - var(--dmv-open)) * 100%) 0 0 round 18px);
  }
  .editorial-home .sb-dmv__folio{
    position:absolute;
    top:0;
    left:clamp(16px,4.6vw,24px);
    right:clamp(12px,3.4vw,18px);
    height:clamp(40px,10vw,56px);
    display:flex;
    align-items:center;
    margin:0;
    font-family:var(--sans);
    font-size:.61rem;
    font-weight:500;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:rgba(250,246,235,.78);
  }
  .editorial-home .sb-dmv__caption{
    margin:clamp(18px,3.2vh,28px) clamp(20px,5vw,32px) 0;
    text-align:right;
    font-family:var(--serif);
    font-size:clamp(1.3rem,5.6vw,1.7rem);
    line-height:1.15;
    color:var(--sb-ink);
  }
}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-dmv__caption{position:static;transform:none;width:auto;margin:24px clamp(20px,3vw,64px) 0;opacity:1}
  .editorial-home .sb-dmv__folio{opacity:1}
}

/* ══ Section 1: the whole composition lives BELOW the bar ═══════════════════
   Centring the mount in the full viewport put the navy top band — and the
   section text on it — behind the opaque masthead. The pin now stacks
   [mount, caption] as a column, centred in the space UNDER the bar, and the
   film frame gives back the height the caption needs: folio band, film and
   serif line are all readable at every desktop/tablet size. */
@media(min-width:721px){
  .editorial-home .sb-dmv__pin{
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    row-gap:clamp(10px,1.4vh,20px);
    padding-top:calc(var(--sb-bar-h,84px) + clamp(96px,10.5vh,128px));
  }
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    max-height:calc(100svh - var(--sb-bar-h,84px) - clamp(96px,10.5vh,128px) - 2*var(--mount-y,124px) - clamp(66px,8.5vh,104px));
  }
  .editorial-home .sb-dmv__caption{
    position:static;
    transform:none;
    width:auto;
    text-align:right;
    padding-right:clamp(8px,1vw,20px);
  }
  /* the picture edge travels WITH the banner edge — the staggered second
     clip opened a navy gap between them at slow scroll and read as a
     glitch; one shared edge, and any sub-pixel seam reads navy on navy */
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    clip-path:inset(0 calc((1 - var(--dmv-open,0)) * 100%) 0 0 round 0 18px 18px 0);
    background:#0F1830;
  }
}

/* ══ Section 1: the postcard at HALF WIDTH — a premium object ═══════════════
   The full-bleed mount ran under the logo (the logo always breathes — owner
   rule) and left acres of empty navy. The postcard is now a centred object:
   half the viewport wide, the navy a proportional mat on all four sides,
   every corner 18px — banner and film alike — and the wipe carries the
   same rounding. The serif line keeps its right edge on the postcard's. */
@media(min-width:721px){
  .editorial-home .sb-dmv__stage{margin-left:0;width:100%}   /* no left bleed */
  .editorial-home .sb-dmv__mount{
    --mount-y:clamp(26px,3vw,56px);
    --mount-x:clamp(22px,2.1vw,46px);
    width:min(50vw,980px);
    margin-inline:auto;
    padding:var(--mount-y) var(--mount-x);
    border-radius:18px;
    clip-path:inset(0 calc((1 - var(--dmv-open,0)) * 100%) 0 0 round 18px);
  }
  .editorial-home .sb-dmv__stage .sb-dmv__mount .sb-dmv__drawer{
    border-radius:18px;
    clip-path:inset(0 calc((1 - var(--dmv-open,0)) * 100%) 0 0 round 18px);
    max-height:none;
  }
  .editorial-home .sb-dmv__folio{left:0;right:0;padding-inline:var(--mount-x)}
  .editorial-home .sb-dmv__caption{
    align-self:center;
    width:min(50vw,980px);
    text-align:right;
    padding-right:0;
  }
}

/* ══ Texts anchored to the VIDEO's own edges + a consistent short approach ══
   The retired chapter set its kicker on the film's left line and its serif
   line on the film's right line. The postcard keeps exactly that: the mat
   variables live on the stage so the caption (a sibling of the mount) can
   end its line on the picture's right edge, not the navy's. */
@media(min-width:721px){
  .editorial-home .sb-dmv__stage{
    --mount-y:clamp(26px,3vw,56px);
    --mount-x:clamp(22px,2.1vw,46px);
  }
  .editorial-home .sb-dmv__caption{padding-right:var(--mount-x)}
}

/* HOUSE RULE (owner, 2026-08-03): the run from the previous content to a
   scroll video — and the scroll it takes to open — is the SAME everywhere:
   a tight corridor, then the drawer completes within ~32svh of the pin. */
@media(min-width:1000px){
  .editorial-home .sb-hero{padding-bottom:clamp(36px,4.5vh,64px)}
}
.editorial-home .sb-dmvcard{padding-block:clamp(6px,1vh,14px) clamp(36px,5vh,72px)}
.editorial-home .sb-dmv__stage{margin-block:clamp(12px,2vh,26px) clamp(40px,6vh,80px)}

/* ══ Section 1: the words stand BESIDE the film ═════════════════════════════
   Owner: nothing above or under the drawer. The postcard and a narrow
   editorial column sit as one centred pair with generous cream around —
   the aside fades in on the same clock as the drawer's landing. */
@media(min-width:721px){
  .editorial-home .sb-dmv__pin{
    flex-direction:row;
    /* the stop holds the drawer in the MIDDLE of the page */
    align-items:center;
    justify-content:center;
    column-gap:clamp(44px,4.6vw,104px);
    padding-top:0;
  }
  .editorial-home .sb-dmv__mount{margin-inline:0}
  .editorial-home .sb-dmv__aside{
    width:min(24vw,340px);
    opacity:calc((var(--dmv-open,0) - .55) / .35);
  }
  .editorial-home .sb-dmv__aside-folio{
    margin:0 0 clamp(14px,1.8vh,24px);
    font-family:var(--sans);
    font-size:clamp(.61rem,.7vw,.74rem);
    font-weight:500;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--sb-ink);
    opacity:.56;
  }
  .editorial-home .sb-dmv__aside-title{
    margin:0 0 clamp(16px,2.2vh,28px);
    font-family:var(--serif);
    font-weight:400;
    font-size:clamp(1.7rem,2.4vw,2.7rem);
    line-height:1.04;
    letter-spacing:-.015em;
    color:var(--sb-ink);
  }
  .editorial-home .sb-dmv__aside-copy{
    margin:0;
    max-width:30ch;
    font-family:var(--sans);
    font-size:clamp(.82rem,.95vw,.98rem);
    line-height:1.65;
    color:var(--sb-ink);
    opacity:.82;
  }
}
@media(max-width:720px){
  /* phones stack: postcard, then the words — still nothing on the postcard */
  .editorial-home .sb-dmv__aside{margin:clamp(20px,3.6vh,30px) clamp(20px,5vw,32px) 0}
  .editorial-home .sb-dmv__aside-folio{margin:0 0 10px;font-family:var(--sans);font-size:.61rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--sb-ink);opacity:.56}
  .editorial-home .sb-dmv__aside-title{margin:0 0 12px;font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,6.4vw,1.9rem);line-height:1.06;color:var(--sb-ink)}
  .editorial-home .sb-dmv__aside-copy{margin:0;font-family:var(--sans);font-size:.86rem;line-height:1.6;color:var(--sb-ink);opacity:.82}
}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-dmv__aside{opacity:1}
}

/* The pair anchors clear of the logo column (logo always breathes): the
   postcard starts at a fixed left that clears the mark at every width, and
   the leftover cream gathers on the right of the aside. Phones stack. */
@media(min-width:721px){
  .editorial-home .sb-dmv__pin{
    justify-content:flex-start;
    padding-left:clamp(180px,14.5vw,330px);
    padding-right:clamp(24px,3vw,64px);
  }
  .editorial-home .sb-dmv__aside{width:min(21vw,330px)}
}
@media(max-width:720px){
  .editorial-home .sb-dmv__pin{display:block}
}

/* ══ Postcard 30% bigger — text untouched ═══════════════════════════════════
   Flex was starving the mount (drawer 606px @1512, 894 @2056). The mount now
   REFUSES to shrink (flex-shrink:0) and claims ~1.3× the starved width; the
   aside keeps its exact width so the type size never moves. The 721–1100
   band gets its own narrower claim so nothing overflows on tablets. */
@media(min-width:721px){
  .editorial-home .sb-dmv__pin{
    column-gap:clamp(56px,4.8vw,120px);        /* more air film -> words (owner) */
    padding-left:clamp(96px,7.2vw,200px);      /* and the drawer sits further left */
  }
  .editorial-home .sb-dmv__aside{flex:0 0 min(21vw,330px);width:min(21vw,330px)}
}
@media(min-width:1600px){
  .editorial-home .sb-dmv__mount{flex:0 0 auto;width:min(58vw,1340px)}
}
@media(min-width:1101px) and (max-width:1599px){
  .editorial-home .sb-dmv__mount{flex:0 0 auto;width:56vw}
}
@media(min-width:721px) and (max-width:1100px){
  .editorial-home .sb-dmv__mount{flex:0 0 auto;width:50vw}
}

/* Distribution pass: the pair sits a touch further left, and the words sit
   closer to the drawer. Tablet keeps its wider left floor (logo air). */
@media(min-width:1101px){
  .editorial-home .sb-dmv__pin{
    padding-left:clamp(130px,10vw,270px);
    column-gap:clamp(40px,3.4vw,86px);   /* owner: more air between film and words */
  }
}

/* ══ Hero balance, band-safe ════════════════════════════════════════════════
   The headline group ships ~230px left of centre; centring is wanted. The
   shift is position:relative (survives GSAP inline transforms) and clamps
   to the space actually available, so narrow desktop bands can never
   overflow (the first attempt broke 1000–1100 with a flat +115px). */
@media(min-width:1000px){
  .editorial-home .sb-hero__content{
    position:relative;
    left:clamp(0px, calc(100vw - 990px), 115px);
  }
}

/* ══ Tighter road to and from the film ══════════════════════════════════════
   Measured @2000×1125: the statement forced min-height 1170px (a full empty
   viewport before the film), the names/local-perspective section after the
   film forced min-height 1327px with CENTRED content (≈600px of cream above
   its folio), and the stage's exit margins stacked 123px. The sections now
   size to their content: the film arrives one breath after the gold frame,
   and 03 starts right after the film. */
@media(min-width:721px){
  .editorial-home .sb-statement{
    min-height:0;
    /* real air under the hero's descenders (they were touching the folio) */
    padding-block:clamp(120px,14vh,190px) clamp(36px,4.5vh,64px);
  }
  .editorial-home .sb-dmv__stage{margin-bottom:0}
  .editorial-home .sb-dmvcard{padding-bottom:0}
  .editorial-home .sb-dmv{
    min-height:0;
    align-items:start;
    padding-bottom:clamp(70px,9vh,120px);
    /* owner: "half of this space" — the chapter's own below-mount air is
       fixed by the pinned composition, so the halving comes from riding the
       next section up under the stage's tail (folio still enters only in
       the release's last ~25px). */
    margin-top:-85px;   /* owner: 03 sits a little lower — ~325px to the film */
  }
}

/* The platform titles set at the house .88 leading collide on this glyph
   pair ('Technology' y over 'back' k/b) — the second line sits lower here. */
.editorial-home .sb-editorial .sb-title{line-height:1.04}

/* The editorial-presentation words started at the top edge (13vh — under
   the masthead's zone), so the chapter went by before they were seen. They
   now open lower, in the read line. */
@media(min-width:721px){
  .editorial-home .sb-film__beat--newspaper{top:clamp(220px,26vh,360px)}
}

/* ══ Dusk film — cinematic videography (film 2) ══════════════════════════════
   Same fast ride as the postcard film (~70svh for its 5s), the frame at the
   house 18px radius, and the words in the page's cream over the footage's
   dark right side. */
.editorial-home .sb-film--dusk{height:195svh;min-height:1260px}   /* a touch slower (span 70->95svh) */
.editorial-home .sb-film--dusk .sb-film__frame{
  /* owner: edge to edge — the dusk fills the whole viewport like the room
     chapter */
  inset:0;
  top:0;left:0;
  width:100%;
  height:100%;
  transform:none;   /* the base frame centres via translateX(-50%) */
  border-radius:0;
  -webkit-mask-image:none;
          mask-image:none;
}
.editorial-home .sb-film--dusk .sb-film__frame video{
  filter:none;   /* the 1-2% grade was invisible but re-filtered every scrubbed frame (scroll smear in Chrome, owner 2026-10-04) */
  object-position:center;
}
.editorial-home .sb-film__beat--dusk{
  top:16vh;
  right:clamp(32px,4.5vw,96px);
  text-align:right;
  color:var(--sb-cream,#FAF6EB);
}
.editorial-home .sb-film__beat--dusk .sb-kicker{color:rgba(250,246,235,.85)}
.editorial-home .sb-film__beat--dusk .sb-title{
  color:var(--sb-cream,#FAF6EB);
  font-size:clamp(2.4rem,4.6vw,5rem);
  text-shadow:0 1px 26px rgba(8,14,30,.4);
}
@media(max-width:720px){
  .editorial-home .sb-film__beat--dusk{position:static;text-align:left;color:var(--sb-ink)}
  .editorial-home .sb-film__beat--dusk .sb-kicker{color:inherit}
  .editorial-home .sb-film__beat--dusk .sb-title{color:inherit;text-shadow:none}
}

/* dusk beat: below the masthead's zone (its kicker was starting under the
   opaque bar) */
@media(min-width:721px){
  .editorial-home .sb-film__beat--dusk{top:clamp(230px,24vh,320px)}
}

/* ══ Hero bloom — the cherry film washes behind the headline ════════════════
   Low opacity so the cream reads through; the words keep their own layer.
   Desktop only. */
@media(min-width:721px){
  /* ══ Bloom, third pass (owner): FLIPPED, larger, anchored to the very
     top-left so the mark sits on it — soft-focus and faint so the logo,
     menu and headline stay untouched. Three nested layers because Chrome
     unions sibling mask gradients: A clips horizontally (dissolves before
     the headline), B vertically (solid at the top edge, melts at the
     bottom), C flips and enlarges the footage — original street bokeh
     lands under the mark, the flower drifts toward the page centre. */
  .editorial-home .sb-hero__bloom{
    position:absolute;
    top:0;bottom:0;left:0;
    width:min(30vw,520px);
    z-index:0;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 34%,transparent 88%);
            mask-image:linear-gradient(90deg,#000 0,#000 34%,transparent 88%);
  }
  .editorial-home .sb-hero__bloom-y{
    position:absolute;inset:0;
    /* the film NEVER starts — alpha 0 through the masthead zone and a
       ~34%-tall emergence ramp; there is no scroll or refresh state where
       a top edge can read */
    /* a ~half-hero continuous emergence: alpha 0 through the masthead zone,
       then a 50%-tall breath to full — long enough that no content edge in
       the footage can ever read as a border */
    /* alpha 0 until BELOW the sting underlay's reach (259px measured), so
       the arrival intro plays over pure cream — the page looks the same
       from its first painted frame to its last */
    -webkit-mask-image:linear-gradient(180deg,transparent 0,transparent 31%,rgba(0,0,0,.22) 45%,rgba(0,0,0,.62) 58%,#000 66%,transparent 94%);
            mask-image:linear-gradient(180deg,transparent 0,transparent 31%,rgba(0,0,0,.22) 45%,rgba(0,0,0,.62) 58%,#000 66%,transparent 94%);
  }
  .editorial-home .sb-hero__bloom-flip{
    position:absolute;inset:0;
    transform:scaleX(-1.14) scaleY(1.14);
    transform-origin:50% 38%;
  }
  .editorial-home .sb-hero__bloom video{
    width:100%;height:100%;display:block;
    object-fit:cover;object-position:center;
    /* PRESENT. The film reads clearly — the sting-safe offset and the long
       emergence ramp carry the top; visibility is not negotiable (owner). */
    /* A REAL film now: multiply was capping contrast on the bright footage
       (bright pixels can never darken cream much) — normal blend at .85
       with the feathered masks = clearly visible, soft-edged */
    opacity:.85;
    mix-blend-mode:normal;
    filter:none;   /* the live 2px blur re-filtered every scrubbed frame of a full-height layer while scrolling (owner 2026-10-04) */
  }
  .editorial-home .sb-hero__content{position:relative;z-index:1}
}
@media(min-width:1900px){
  .editorial-home .sb-hero__bloom{
    width:min(44vw,900px);
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 55%,transparent 84%);
            mask-image:linear-gradient(90deg,#000 0,#000 55%,transparent 84%);
  }
}

/* At rest the homepage masthead lets the bloom through — the mark sits ON
   the film, as directed. First scroll returns the locked opaque cream. */

/* the sting's beige underlay was invisible against the cream bar forever —
   the bloom exposed it. It exists only for the sting's own frames. */
.editorial-home .logo-box:not(.sting-live) #stingback{opacity:0!important}

/* The editorial intros (04.x) forced ~96svh with centred content — 393px of
   dead cream between the words and their own film. They size to content
   now; the words hand straight to the footage. */
@media(min-width:721px){
  .editorial-home .sb-editorial{
    min-height:0;
    padding-bottom:clamp(64px,8vh,110px);
  }
}

/* The dusk chapter meets its neighbours with no cream between — full-bleed
   film straight into the navy network, and the room film straight into it. */
@media(min-width:721px){
  .editorial-home .sb-film--room{padding-bottom:0}
  .editorial-home .sb-film--dusk{padding-block:0}
}

/* ══ The masthead's cream arrives like breath, not a shutter ════════════════
   The opaque plate is a ::before with a feathered lower edge (no hard line
   against the bloom) and it FADES in over .55s as the page leaves rest —
   the bar element itself stays glass on the homepage's light sections.
   Dark sections keep their own navy plate untouched. */
.editorial-home header.bar:not(.editorial-dark){background:transparent!important}
.editorial-home header.bar::before{
  content:"";
  position:absolute;
  inset:0 0 -22px 0;
  background:linear-gradient(180deg,#FAF6EB 0,#FAF6EB calc(100% - 34px),rgba(250,246,235,0) 100%);
  opacity:1;
  transition:opacity .55s cubic-bezier(.33,.61,.21,1);
  pointer-events:none;
  z-index:0;
}
/* the bar's real children ride above the plate */
.editorial-home header.bar>*{position:relative;z-index:1}
.editorial-home header.bar.editorial-dark::before{display:none}

/* From the hero's end down, the plate is the classic hard-edged cream —
   the feather belongs only to the bloom zone above it. */
.editorial-home header.bar.bar--hardplate::before{
  inset:0;
  background:#FAF6EB;
}

/* The property-care film goes edge to edge like the room and dusk chapters. */
@media(min-width:721px){
  .editorial-home .sb-film--work .sb-film__frame{
    inset:0;
    top:0;left:0;
    width:100%;
    height:100%;
    transform:none;
    border-radius:0;
    -webkit-mask-image:none;
            mask-image:none;
  }
  .editorial-home .sb-film--work{padding-block:0}
}

/* the state-line lead runs as ONE line, centred over the DC/MD/VA band */
.editorial-home .sb-dmv__lead{
  white-space:nowrap;
  font-size:clamp(2rem,4vw,4.6rem);
  text-align:center;
  width:100%;
  max-width:none;   /* an inherited ch-cap kept the box narrow — centre needs the full shell */
}

/* the market lead: exactly two lines, one sentence each, uniform size */
.editorial-home .sb-market-lead{
  white-space:nowrap;
  font-size:clamp(1.9rem,3.6vw,4.2rem);
}

/* ══ THE INSTRUMENT — hairline Compass dial, scroll-read ═══════════════════ */
@media(min-width:721px){
  .editorial-home .sb-instrument{
    position:relative;
    width:min(46vh,460px);
    margin:clamp(30px,4vh,56px) auto clamp(10px,2vh,30px);
  }
  .editorial-home .sb-instrument__svg{display:block;width:100%;height:auto}
  .editorial-home .sb-instrument__ring{
    fill:none;stroke:var(--sb-ink,#1B1B1F);stroke-width:.8;opacity:.42;
  }
  .editorial-home .sb-instrument__ticks line{
    stroke:var(--sb-ink,#1B1B1F);stroke-width:.7;opacity:var(--to,.13);
  }
  .editorial-home .sb-instrument__needle{
    stroke:var(--sb-ink,#1B1B1F);stroke-width:1.3;stroke-linecap:round;
  }
  .editorial-home .sb-instrument__hub{fill:var(--sb-ink,#1B1B1F)}
  .editorial-home .sb-instrument__label{
    position:absolute;
    left:50%;top:50%;
    transform:translate(-50%,-50%)
      translate(calc(cos(var(--la)) * min(27vh,270px)), calc(sin(var(--la)) * min(27vh,270px)));
    font-family:var(--sans);
    font-size:clamp(.58rem,.66vw,.7rem);
    letter-spacing:.22em;
    text-transform:uppercase;
    white-space:nowrap;
    color:var(--sb-ink,#1B1B1F);
    opacity:0;
    transition:opacity .8s ease;
  }
  .editorial-home .sb-instrument__label.is-read{opacity:.62}
}
@media(max-width:720px){
  .editorial-home .sb-instrument{position:relative;width:min(78vw,340px);margin:26px auto 8px}
  .editorial-home .sb-instrument__svg{display:block;width:100%;height:auto}
  .editorial-home .sb-instrument__ring{fill:none;stroke:var(--sb-ink,#1B1B1F);stroke-width:.8;opacity:.42}
  .editorial-home .sb-instrument__ticks line{stroke:var(--sb-ink,#1B1B1F);stroke-width:.7;opacity:var(--to,.13)}
  .editorial-home .sb-instrument__needle{stroke:var(--sb-ink,#1B1B1F);stroke-width:1.3;stroke-linecap:round}
  .editorial-home .sb-instrument__hub{fill:var(--sb-ink,#1B1B1F)}
  .editorial-home .sb-instrument__label{display:none}
}

/* Owner: the masthead stays BEIGE with its edge at all times — the glass
   at-rest state is retired; the bloom lives below the bar. */
.editorial-home header.bar.bar--overbloom::before{opacity:1}

/* the instrument lives in the LEFT field under the Technology title —
   left-aligned in the column, a breath of air between them */
@media(min-width:721px){
  .editorial-home .sb-instrument{
    width:min(40vh,420px);
    margin:clamp(70px,10vh,140px) 0 0 clamp(10px,2vw,40px);
  }
}

/* phones never carry the bloom (the hide was lost in a block splice) */
@media(max-width:720px){
  .editorial-home .sb-hero__bloom{display:none}
}

/* the room film (chair + sunlight) melts into the beige at its bottom —
   no hard lower border */
@media(min-width:721px){
  .editorial-home .sb-film--room .sb-film__frame{
    -webkit-mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 99%);
            mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 99%);
  }
}

/* ══ THE LINE THAT CONTINUES — support, in two strokes ═════════════════════
   In front of the Support title, in the right field. The pair draws with
   the scrollbar, passes the transaction's diamond, and keeps going —
   fading out past the edge rather than ending. */
@media(min-width:1000px){
  .editorial-home .sb-support__head{position:relative}
  .editorial-home .sb-support-line{
    position:absolute;
    right:0;
    top:clamp(30px,6vh,90px);
    width:min(44vw,720px);
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 82%,transparent 99%);
            mask-image:linear-gradient(90deg,#000 0,#000 82%,transparent 99%);
  }
  .editorial-home .sb-support-line svg{display:block;width:100%;height:auto}
  .editorial-home .sb-support-line__a,
  .editorial-home .sb-support-line__b{
    fill:none;
    stroke:var(--sb-ink,#1B1B1F);
    stroke-width:1;
    opacity:.6;
    stroke-dasharray:1;
    stroke-dashoffset:calc(1 - var(--sl,0));
  }
  .editorial-home .sb-support-line__b{opacity:.38}
  .editorial-home .sb-support-line__mark{
    fill:none;
    stroke:var(--sb-ink,#1B1B1F);
    stroke-width:1;
    opacity:calc((var(--sl,0) - .5) * 4);
  }
  .editorial-home .sb-support-line__cap{
    position:absolute;
    left:53%;
    top:72%;
    font-family:var(--sans);
    font-size:clamp(.56rem,.62vw,.68rem);
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--sb-ink,#1B1B1F);
    opacity:calc((var(--sl,0) - .55) * 2.4);
  }
}
@media(max-width:999px){
  .editorial-home .sb-support-line{display:none}
}

/* THE 'design goes under' ROOT CAUSE: the header-clearing shift translates
   this sticky down (measured 110px inline) while it clips overflow — the
   headline's last line crossed the clip edge at FULL opacity mid-exit.
   Nothing inside needs the clip since the hero film era: released. */
.editorial-home .sb-hero__sticky{overflow:visible}

/* …and the words must PAINT above the next section's opaque cream while
   the shift carries them past the hero's edge */
.editorial-home .sb-hero{position:relative;z-index:2}

/* the display face's calligraphic comma reads odd at poster size — the
   comma alone is set in EB Garamond (same family, conventional glyph) */
.editorial-home .cma{font-family:'EB Garamond',Georgia,serif;font-style:normal}


/* the statement reads as ONE centred pair: the lead hugs the gold frame
   across a close gutter, negative space gathers on the outsides (owner) */
@media(min-width:1100px){
  .editorial-home .sb-statement__grid{
    grid-template-columns:auto auto;
    justify-content:center;
    column-gap:clamp(36px,4vw,76px);
  }
  .editorial-home .sb-statement__lead{justify-self:end;text-align:left}
  .editorial-home .sb-statement__grid .sb-folio{justify-self:end}
}

/* stories: exactly two lines, and the past-clients link on the right */
.editorial-home .sb-stories__intro .sb-title{max-width:none}
.editorial-home .sb-stories__pastlink{white-space:nowrap}

/* the care beat breathes: more air between its two lines + under-line */
.editorial-home .sb-film__beat--work .sb-title{line-height:1.14}
.editorial-home .sb-film__beat--work .sb-copy{margin-top:clamp(14px,2vh,24px)}

/* ══ THE VOICES — testimonials, abstracted ══════════════════════════════════
   An oversized serif quote and three hairlines of "their words" writing
   themselves in as the chapter arrives. Pure vector, scroll-driven. */
@media(min-width:1100px){
  .editorial-home .sb-stories__intro{position:relative}
  .editorial-home .sb-voices{
    position:absolute;
    right:clamp(60px,9vw,190px);
    top:clamp(40px,8vh,110px);
    width:260px;
  }
  .editorial-home .sb-voices__quote{
    display:block;
    font-family:var(--serif);
    font-size:170px;
    line-height:.62;
    color:var(--sb-ink);
    opacity:calc(var(--vp,0) * .16);
    transform:translateY(calc((1 - var(--vp,0)) * 26px));
  }
  .editorial-home .sb-voices__line{
    display:block;
    height:1px;
    background:var(--sb-ink);
    opacity:.34;
    width:var(--w,200px);
    margin:26px 0 0 6px;
    transform-origin:left center;
    transform:scaleX(calc(max(0, min(1, var(--vp,0) * 2.2 - var(--d) * .55))));   /* slower, readable draw */
  }
}
@media(max-width:1099px){
  .editorial-home .sb-voices{display:none}
}

/* the newspaper beat's lines were crossing (y over ascenders) */
.editorial-home .sb-film__beat--newspaper .sb-title{line-height:1.1}

/* 'Start with a' holds one line: size eases so the nbsp pair fits */
.editorial-home .sb-contact .sb-title{font-size:clamp(3.6rem,7.6vw,8.2rem);max-width:none}


/* ══ THE BLOOM RIDE (owner's final spec) ═══════════════════════════════════
   The hero holds for a 100svh ride while the WHOLE cherry film scrubs
   butter-smooth beside the headline. The wash spans from the page edge to
   just before "Powered by Compass", fading out under the same feathers. */
@media(min-width:721px){
  .editorial-home .sb-hero{height:200svh}
  .editorial-home .sb-hero__bloom{
    position:sticky;
    top:0;left:auto;
    height:100svh;
    margin-bottom:-100svh;   /* occupies no flow: the content rides over it */
    width:42vw;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 58%,transparent 88%);
            mask-image:linear-gradient(90deg,#000 0,#000 58%,transparent 88%);
  }
}
@media(min-width:1900px){
  .editorial-home .sb-hero__bloom{width:44vw}
}
@media(min-width:721px){
  /* the headline rides WITH the film through the hero's hold */
  .editorial-home .sb-hero__sticky{position:sticky;top:0;height:100svh;min-height:0}
}

/* ══ BLOOM, SIMPLIFIED (the pin felt frozen) ═══════════════════════════════
   The page scrolls NATURALLY — no pinned hold. The film is a fixed backdrop
   living through the hero into the statement chapter (the kept accident),
   scrubbing with the scrollbar, then dissolving away. */
@media(min-width:721px){
  .editorial-home .sb-hero{height:auto}
  .editorial-home .sb-hero__sticky{position:relative;height:auto;min-height:92svh}
  .editorial-home .sb-hero__bloom{
    position:fixed;
    top:0;left:0;
    height:100svh;
    margin-bottom:0;
    z-index:-1;          /* behind ALL content, above only the cream canvas */
    pointer-events:none;
  }
  .editorial-home .sb-hero__content{position:relative;z-index:1}
}

/* (bloom restored — the fixed-backdrop form, verified before publish) */

/* the flower shows through ONLY the hero + statement (their cream is the
   canvas's cream); every text and later chapter stays fully opaque on top,
   and the postcard's solid cream ends the flower zone. The house fade-outs
   (texts easing away at the masthead) stay untouched. */
@media(min-width:721px){
  .editorial-home .sb-hero,
  .editorial-home .sb-statement{background:transparent}
}

/* the flower was buried under two opaque creams: the hero's sticky wrapper
   and main.sb-home (z:1). Both go clear on desktop — the canvas beneath is
   the identical cream, so nothing changes except the background flower
   finally shows through. */
@media(min-width:721px){
  .editorial-home .sb-hero__sticky{background:transparent}
  .editorial-home main.sb-home{background:transparent}
}

/* the LAST opaque layer: body's own cream paints above negative-z children
   of the root context. Body goes clear on the homepage desktop — html and
   #pgbg beneath carry the identical cream, so only the flower changes. */
@media(min-width:721px){
  body.editorial-home{background:transparent}
}

/* ── Flow + bliss: ALWAYS two lines, never three (owner) ──────────────
   The second sentence is ~15% longer than the field it sat in, so it
   wrapped on every real screen (1280–1920) and read as three lines.
   Its chapter gets a wider field and type sized so each sentence holds
   one line from 721px up; nowrap makes the intent explicit. */
@media(min-width:721px){
  /* the chapter's own field is widened at the SECTION level so both margins
     stay symmetric (a wider inner box just overflowed the section padding
     and shoved the right line to the edge) */
  .editorial-home .sb-bliss{padding-inline:clamp(28px,10.5vw,260px)}
  .editorial-home .sb-bliss__content{
    width:100%;
    max-width:none;
    margin-inline:0;
    padding-inline:0;
  }
  .editorial-home .sb-bliss__line{
    font-size:min(clamp(2.8rem,7.2vw,7.8rem),5.55vw);
    white-space:nowrap;
  }
  /* more air between the two lines, to match the wider side margins */
  .editorial-home .sb-bliss__line--right{margin-top:clamp(40px,6.6vh,96px)}
}

/* ══ FLOW / BLISS NEON — the same gas-tube rhythm, none of the repaint ═════
   The neon above animates `text-shadow` through four layers up to a 120px
   blur. text-shadow is a PAINT property, so every frame re-rasterised ~125px
   type across the full width — 4x that on a Retina panel. Measured 12.6ms
   average frame time against 8.3ms in a plain chapter, p95 spiking to 25ms:
   the jumpy, smeared scroll.

   Same picture, different mechanics. The tube's brightest state is baked into
   a glyph-shaped layer with a transparent fill (only its shadow shows), and
   the flicker is that layer's OPACITY — composited on the GPU, zero repaint.
   The opacity keyframes carry sbNeonGlow's own rhythm: rest, swell, the catch
   and recovery, the held burn, the ease back down. Two different durations
   still run against each other so the pattern never visibly repeats. */
.editorial-home .sb-bliss__line em{
  position:relative;
  color:#FF4FA8;
  animation:none;                                  /* the shadow no longer animates */
  opacity:1;
  /* the tube at rest, held steady */
  text-shadow:0 0 4px rgba(255,120,190,.5),0 0 14px rgba(238,61,154,.42),0 0 34px rgba(238,61,154,.18);
}
.editorial-home .sb-bliss__line em::after{
  content:attr(data-glow);
  position:absolute;
  left:0;
  top:0;
  color:transparent;                               /* glyph shape only — the glow is its shadow */
  /* the full burn, held on its own layer */
  text-shadow:0 0 9px rgba(255,214,236,1),0 0 26px rgba(255,79,168,.82),0 0 66px rgba(238,61,154,.5),0 0 120px rgba(238,61,154,.22);
  opacity:0;
  animation:sbNeonBreath 7.3s cubic-bezier(.45,0,.35,1) infinite;
  will-change:opacity;
  pointer-events:none;
}
.editorial-home .sb-bliss__line--right em::after{animation-duration:8.9s;animation-delay:-3.1s}

@keyframes sbNeonBreath{
  0%   {opacity:0}      /* at rest */
  18%  {opacity:.72}    /* swelling */
  27%  {opacity:.24}    /* the catch — a quick dip */
  33%  {opacity:.86}    /* and the recovery */
  52%  {opacity:1}      /* full burn, held */
  74%  {opacity:.34}    /* easing back down */
  88%  {opacity:.66}
  100% {opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .editorial-home .sb-bliss__line em::after{animation:none;opacity:.8}
}

/* The navy neon heading had the same problem in miniature: an infinite
   text-shadow animation on very large type. Its glow is faint and slow, so a
   single static shadow at the animation's own mid-point is visually the same
   without asking the compositor to re-rasterise the heading forever. */
.editorial-home .sb-neon-line{
  animation:none;
  text-shadow:0 0 22px rgba(34,52,92,.11),0 0 52px rgba(34,52,92,.055);
}

/* ══ LARGE DISPLAYS — the design keeps growing with the window ════════════
   Measured: above ~1920px the masthead, nav, display type and footer mark
   all stopped at fixed pixel sizes while the full-bleed films kept growing
   with the viewport. Maximising the window therefore made the site look
   SMALLER — type and chrome shrinking against ever-larger films and margins.

   Everything below is expressed so that at 1920px it equals today's value
   exactly (nothing changes on a laptop — this block starts at 1900px), then
   scales with the viewport and stops at a sane ceiling on ultra-wide panels.
   Reading measure is deliberately NOT scaled: paragraphs keep their proper
   line length, which is correct typography, not a bug. */
@media(min-width:1900px){
  /* the mark */
  header.bar .logo, header.bar.condensed .logo{height:clamp(105px,5.47vw,150px)!important}   /* owner: 25% smaller, one fixed size */

  /* the nav row — these must match the specificity of the one-line nav rules
     in styles.css (header.bar .nav .nav-item>a), which are !important too */
  header.bar .nav .nav-item>a,
  header.bar.condensed .nav .nav-item>a,
  header.bar .nav .nav-item>a[href="/newsletter/"],
  header.bar.condensed .nav .nav-item>a[href="/newsletter/"]{font-size:clamp(10.88px,.567vw,16px)!important}
  header.bar .nav .nav-cta,
  header.bar.condensed .nav .nav-cta{font-size:clamp(10.56px,.55vw,15.5px)!important;
    padding:clamp(10px,.6vw,15px) clamp(18px,1.05vw,27px)!important}

  /* display type */
  .editorial-home .sb-title,
  .editorial-home #h1{font-size:clamp(130px,6.8vw,196px)}
  /* fitted ONE-LINE lockups keep their own proportion — the blanket rule
     above blew the nowrap state-line lead past the right edge at 2560.
     3.83vw reproduces its 1920 size exactly, then scales, always < the
     4vw at which it provably fits on one line. */
  .editorial-home .sb-dmv__lead{font-size:clamp(73.6px,3.83vw,110px)}
  .editorial-home .sb-hero__approach{font-size:clamp(11px,.573vw,16px)}

  /* the footer mark */
  .foot-wordmark{height:clamp(78px,4.06vw,116px)}
}

/* ── Hero: executive team block (owner, 2026-09-18). Replaces the headline.
   One long rectangle centred under the masthead with air on every side and the
   SAME padding (--p) on all four inner sides. Heading underlined, one line.
   Two principals side by side on wide screens, stacked below 1280px; each a 3:4
   portrait + name + two-line title + cell + email + socials. Sans label font. */
.editorial-home .sb-hero__content{padding-top:calc(var(--header-h,196px) + clamp(64px,8vh,100px));padding-bottom:clamp(36px,5vh,64px);justify-content:center;align-items:center}
.editorial-home .sb-hero__team{--p:clamp(30px,3.4vw,52px);margin:0 auto;font-family:var(--sans,'Inter',system-ui,sans-serif);color:var(--sb-ink,#1B1B1F);width:max-content;max-width:calc(100vw - 2*var(--sb-gutter,48px));padding:var(--p);border:1px solid rgba(27,27,31,.32);background:rgba(250,246,235,.42)}
.editorial-home .sb-hero__team-head{display:block;width:max-content;margin:0 0 var(--p);line-height:1.1;white-space:nowrap;font-weight:500;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;padding-bottom:9px;border-bottom:1px solid currentColor}
.editorial-home .sb-hero__people{display:grid;grid-template-columns:auto auto;column-gap:var(--p)}
.editorial-home .sb-hero__person{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(22px,2.2vw,34px)}
.editorial-home .sb-hero__person+.sb-hero__person{border-left:1px solid rgba(27,27,31,.12);padding-left:var(--p)}
.editorial-home .sb-hero__photo{display:block;height:clamp(150px,21vh,200px);width:auto;object-fit:cover;background:var(--sb-beige,#E9E0D2)}
.editorial-home .sb-hero__who{display:flex;flex-direction:column;gap:6px;font-size:.95rem;letter-spacing:.02em;line-height:1.5;min-width:0}
.editorial-home .sb-hero__name{margin:0 0 4px;font-size:1.18rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}
.editorial-home .sb-hero__role{margin:0 0 8px;font-size:.84rem;line-height:1.55;opacity:.72}
.editorial-home .sb-hero__role span{white-space:nowrap}
.editorial-home .sb-hero__who a{color:inherit;text-decoration:none;white-space:nowrap}
.editorial-home .sb-hero__who a:hover{color:var(--sb-gold,#C2A15A)}
.editorial-home .sb-hero__socials{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}
.editorial-home .sb-hero__socials a{border-bottom:1px solid rgba(27,27,31,.3);padding-bottom:2px}
.editorial-home .sb-hero__book{display:block;width:max-content;margin:var(--p) auto 0;padding-bottom:7px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font-size:.8rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.editorial-home .sb-hero__book:hover{color:var(--sb-gold,#C2A15A);border-color:var(--sb-gold,#C2A15A)}
@media(max-width:1299px){
  /* stacked: the box is taller than a short viewport, so the hero stops pinning and grows to fit */
  .editorial-home .sb-hero{height:auto;min-height:0}
  .editorial-home .sb-hero__sticky{position:relative;height:auto;min-height:100svh}
  .editorial-home .sb-hero__content{height:auto;min-height:100svh}
  .editorial-home .sb-hero__team{width:min(720px,calc(100vw - 2*var(--sb-gutter,48px)));max-width:none}
  .editorial-home .sb-hero__people{grid-template-columns:1fr;row-gap:var(--p)}
  .editorial-home .sb-hero__person+.sb-hero__person{border-left:0;padding-left:0;border-top:1px solid rgba(27,27,31,.12);padding-top:var(--p)}
  .editorial-home .sb-hero__photo{height:clamp(120px,17vh,170px)}
}
@media(max-width:720px){
  .editorial-home .sb-hero__team{--p:22px}
  .editorial-home .sb-hero__photo{height:clamp(110px,15vh,140px)}
  .editorial-home .sb-hero__name,.editorial-home .sb-hero__role span,.editorial-home .sb-hero__who a{white-space:normal}
  .editorial-home .sb-hero__who{font-size:.9rem;gap:4px}
}

/* Shorter hero run (owner, 2026-09-18): the statement section follows the team box sooner. */
@media(min-width:1300px){
  .editorial-home .sb-hero{height:122svh;min-height:0}
}

/* Owner, 2026-09-18: the statement (gold frame + title) sits closer under the team box. */
@media(min-width:1300px){
  /* Owner, 2026-09-18: hero ends right under the team box (no pinned run),
     the statement follows after a short breath — about 70% less gap. */
  .editorial-home .sb-hero{height:auto;min-height:0}
  .editorial-home .sb-hero__sticky{position:relative;height:auto;min-height:0}
  .editorial-home .sb-hero__content{height:auto;min-height:0;padding-bottom:64px}
  .editorial-home .sb-statement{min-height:0;padding-top:clamp(36px,5vh,56px);padding-bottom:clamp(56px,8vh,76px)}
  /* one rhythm for every section: the same breath between blocks as under the team box */
  .editorial-home .sb-section:not(.sb-hero):not(.sb-statement){padding-block:clamp(56px,8vh,76px)}
}

/* Owner, 2026-09-18: the DMV film arrives 150px under the gold frame, like every
   other block, instead of first appearing mid-screen. --dmv-offset is measured
   by homepage-editorial.js (half the empty pin height above the film). */
@media(min-width:1300px){
  .editorial-home .sb-dmv__stage{margin-top:calc(74px - var(--dmv-offset,0px))}
}

/* ── Phone film (owner, 2026-09-18): vertical film inside an iPhone 18 Pro,
   silver titanium body, slim fuchsia velvet case. Pure CSS, no image. ── */
.editorial-home .sb-phonefilm__grid{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(96px,12vw,220px)}
.editorial-home .sb-phone{--pw:clamp(270px,21.6vw,342px);width:var(--pw);margin-left:clamp(0px,4vw,60px)}
.editorial-home .sb-phone__case{position:relative;width:100%;aspect-ratio:9/19.3;border-radius:calc(var(--pw)*.165);padding:calc(var(--pw)*.026);
  background:#C4157A;
  box-shadow:0 30px 60px -30px rgba(27,27,31,.35)}
.editorial-home .sb-phone__case::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.32;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size:220px 220px}
.editorial-home .sb-phone__body{position:absolute;inset:calc(var(--pw)*.026);border-radius:calc(var(--pw)*.142);
  background:linear-gradient(135deg,#f2f2f3 0%,#d9d9dc 40%,#c3c3c7 60%,#e6e6e8 100%);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),inset 0 0 0 3px rgba(255,255,255,.35)}
.editorial-home .sb-phone__screen{position:absolute;inset:calc(var(--pw)*.02);border-radius:calc(var(--pw)*.125);overflow:hidden;background:#000}
.editorial-home .sb-phone__screen video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.editorial-home .sb-phone__island{position:absolute;top:calc(var(--pw)*.035);left:50%;transform:translateX(-50%);width:calc(var(--pw)*.30);height:calc(var(--pw)*.086);border-radius:999px;background:#050505}
.editorial-home .sb-phone__btn{position:absolute;width:calc(var(--pw)*.012);border-radius:3px;background:#C4157A}
.editorial-home .sb-phone__btn--action{left:calc(var(--pw)*-.012);top:19%;height:5%}
.editorial-home .sb-phone__btn--vol1{left:calc(var(--pw)*-.012);top:27%;height:8%}
.editorial-home .sb-phone__btn--vol2{left:calc(var(--pw)*-.012);top:37%;height:8%}
.editorial-home .sb-phone__btn--power{right:calc(var(--pw)*-.012);top:29%;height:13%}
.editorial-home .sb-phonefilm__aside .sb-title{margin-top:0;font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.02}
.editorial-home .sb-phonefilm__aside .sb-copy{margin-top:clamp(22px,3vh,34px);max-width:46ch}
.editorial-home .sb-phonefilm__aside .sb-folio{margin-bottom:clamp(20px,3vh,34px)}
@media(max-width:900px){
  .editorial-home .sb-phonefilm__grid{grid-template-columns:1fr;justify-items:center;text-align:center}
  .editorial-home .sb-phone{margin-left:0;--pw:min(300px,72vw)}
}

/* Phone film controls: play overlay on the poster, then a small mute + volume bar. */
.editorial-home .sb-phone{pointer-events:auto}
.editorial-home .sb-phone__play{position:absolute;left:50%;top:50%;width:calc(var(--pw)*.22);height:calc(var(--pw)*.22);transform:translate(-50%,-50%);border:0;border-radius:50%;cursor:pointer;color:#1B1B1F;background:rgba(250,246,235,.88);box-shadow:0 10px 30px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;transition:transform .25s ease,opacity .25s ease,background .25s ease;z-index:2}
.editorial-home .sb-phone__play svg{width:44%;height:44%;fill:currentColor;margin-left:5%}
.editorial-home .sb-phone__play:hover{transform:translate(-50%,-50%) scale(1.06);background:#fff}
.editorial-home .sb-phone__screen.is-playing .sb-phone__play{opacity:0;pointer-events:none}
.editorial-home .sb-phone__screen.is-paused .sb-phone__play{opacity:1;pointer-events:auto}
.editorial-home .sb-phone__ctrl{position:absolute;left:50%;bottom:calc(var(--pw)*.06);transform:translateX(-50%);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px;width:calc(var(--pw)*.72);padding:10px 14px;border-radius:999px;background:rgba(10,10,12,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;opacity:0;transition:opacity .25s ease;z-index:2}
.editorial-home .sb-phone__screen.is-playing .sb-phone__ctrl,.editorial-home .sb-phone__screen.is-paused .sb-phone__ctrl{opacity:1}
.editorial-home .sb-phone__mute{width:30px;height:30px;border:0;background:transparent;color:#fff;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.editorial-home .sb-phone__mute svg{width:22px;height:22px;fill:currentColor}
.editorial-home .sb-phone__mute .off{display:none}
.editorial-home .sb-phone__mute.is-muted .on{display:none}
.editorial-home .sb-phone__mute.is-muted .off{display:block}
.editorial-home .sb-phone__seek{grid-column:1/-1;width:100%}
.editorial-home .sb-phone__seek,.editorial-home .sb-phone__vol{-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background:rgba(255,255,255,.4);outline:none;cursor:pointer}
.editorial-home .sb-phone__vol{width:100%}
.editorial-home .sb-phone__seek::-webkit-slider-thumb,.editorial-home .sb-phone__vol::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;border:0}
.editorial-home .sb-phone__seek::-moz-range-thumb,.editorial-home .sb-phone__vol::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:0}
.editorial-home .sb-phone__screen video{cursor:pointer}

/* ── Owner, 2026-09-18: no navy anywhere. Beige surfaces, black text. ── */
.editorial-home{--sb-deep:#FAF6EB;--sb-navy:#FAF6EB}
.editorial-home .sb-surface--navy,.editorial-home .sb-compass,.editorial-home .sb-network,.editorial-home .sb-bliss,.editorial-home .sb-footer{background:var(--sb-cream)!important;color:var(--sb-ink)!important}
.editorial-home .sb-footer a,.editorial-home .sb-footer p,.editorial-home .sb-footer span{color:inherit}
.editorial-home .sb-button:hover{background:var(--sb-ink);color:var(--sb-cream)}
/* Compass neon on a light world: the sign reads as black tubes; lit = solid black with a soft halo. */

/* Support block: no dead space after the text blocks. */
@media(min-width:1300px){ .editorial-home .sb-support{min-height:0} }
/* Reviews: static cards in a Zillow-like format, styled to the house. */
.editorial-home .sb-reviews__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:clamp(18px,2vw,28px);margin-top:clamp(36px,5vh,56px)}
.editorial-home .sb-review{background:rgba(255,255,255,.35);border:1px solid rgba(27,27,31,.16);border-radius:6px;padding:clamp(20px,2.2vw,30px);font-family:var(--sans);color:var(--sb-ink);display:flex;flex-direction:column;gap:10px}
.editorial-home .sb-review__top{display:flex;align-items:center;gap:10px}
.editorial-home .sb-review__stars i,.editorial-home .sb-review__subs i{display:inline-block;width:13px;height:13px;margin-right:2px;background:rgba(27,27,31,.18);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.editorial-home .sb-review__stars i.on,.editorial-home .sb-review__subs i.on{background:var(--sb-gold,#C2A15A)}
.editorial-home .sb-review__score{font-size:.95rem;font-weight:500}
.editorial-home .sb-review__meta{margin:0;font-size:.82rem;opacity:.65;letter-spacing:.02em}
.editorial-home .sb-review__tx{margin:0;font-weight:600;font-size:.98rem}
.editorial-home .sb-review__body{margin:0;font-size:.95rem;line-height:1.65}
.editorial-home .sb-review__subs{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-top:6px;font-size:.8rem;opacity:.85}
.editorial-home .sb-review__subs span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.editorial-home .sb-reviews__more{margin-top:clamp(28px,4vh,44px)}

/* ── Owner, 2026-09-18, final pass ───────────────────────────────────────── */
/* One rhythm everywhere: no section reserves viewport-height runs any more. */
@media(min-width:1000px){
  .editorial-home .sb-section:not(.sb-hero):not(.sb-film){height:auto!important;min-height:0!important;padding-block:clamp(48px,6vh,64px)!important}
  .editorial-home .sb-compass__sticky,.editorial-home .sb-support__sticky,.editorial-home .sb-dmv__pin{position:static!important;height:auto!important;min-height:0!important}
  .editorial-home .sb-film{padding-block:0!important}
  .editorial-home .sb-film+.sb-film{margin-top:0}
  .editorial-home .sb-dmv__stage{margin-top:0!important;margin-bottom:0!important}
}
/* Compass: calm pastel fuchsia panel, sign keeps its own colour and glow. */
.editorial-home .sb-compass{background:#F7E4EF!important}
.editorial-home .sb-compass__neon{border-radius:10px;overflow:hidden;background:#2A0C1D}
.editorial-home .sb-compass__neon img{filter:none;mix-blend-mode:normal}
/* Bliss: fuchsia neon that lights as it arrives and stays lit. */
.editorial-home .sb-bliss__line em{color:#E7429A;transition:color .8s ease,text-shadow .8s ease;text-shadow:none;filter:none!important;animation:none!important}
.editorial-home .sb-bliss.is-lit .sb-bliss__line em{color:#FF57AE;text-shadow:0 0 6px rgba(255,87,174,.95),0 0 18px rgba(255,87,174,.75),0 0 42px rgba(255,87,174,.5),0 0 80px rgba(255,87,174,.3)}
.editorial-home .sb-bliss__line em::after{display:none!important}
/* Reviews: even cards, nothing spilling out. */
.editorial-home .sb-reviews__grid{align-items:start}
.editorial-home .sb-review{height:auto;overflow:hidden}
.editorial-home .sb-review__body{display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical;overflow:hidden}
.editorial-home .sb-reviews__rule{height:1px;background:rgba(27,27,31,.18);margin:clamp(34px,5vh,54px) 0 0}
/* Phone controls: a small speaker button at rest, the pill only on demand. */
.editorial-home .sb-phone__toggle{position:absolute;right:calc(var(--pw)*.05);bottom:calc(var(--pw)*.05);width:calc(var(--pw)*.11);height:calc(var(--pw)*.11);border:0;border-radius:50%;cursor:pointer;color:#fff;background:rgba(10,10,12,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;z-index:3}
.editorial-home .sb-phone__toggle svg{width:55%;height:55%;fill:currentColor}
.editorial-home .sb-phone__screen.is-playing .sb-phone__toggle,.editorial-home .sb-phone__screen.is-paused .sb-phone__toggle{display:flex}
.editorial-home .sb-phone__screen.is-open .sb-phone__toggle{display:none}
.editorial-home .sb-phone__ctrl{background:rgba(10,10,12,.33);opacity:0!important;pointer-events:none;transition:opacity .25s ease}
.editorial-home .sb-phone__screen.is-open .sb-phone__ctrl{opacity:1!important;pointer-events:auto}

/* Owner: inner runs trimmed to the same rhythm as the section gaps. */
@media(min-width:1000px){
  .editorial-home .sb-compass__layout{padding-block:0!important;align-items:center}
  .editorial-home .sb-compass__neon{width:min(26vw,300px)}
  .editorial-home .sb-dmv__names{padding-block:clamp(18px,2.4vh,26px)!important}
  .editorial-home .sb-statement__frame{padding-block:clamp(20px,3vh,32px)!important}
  .editorial-home .sb-film{height:118svh!important;min-height:0!important}
  .editorial-home .sb-film__sticky{height:100svh}
  .editorial-home .sb-compass__scroll{display:none}
}

/* ── Owner, 2026-09-18: the film now plays on an iPad Pro, same fuchsia case,
   so the picture is far larger. Portrait tablet, uniform slim bezels. ── */
.editorial-home .sb-phone{--pw:clamp(360px,34vw,520px)!important;margin-left:0!important}
.editorial-home .sb-phone__case{aspect-ratio:1 / 1.41;border-radius:calc(var(--pw)*.055);padding:calc(var(--pw)*.02)}
.editorial-home .sb-phone__body{inset:calc(var(--pw)*.02);border-radius:calc(var(--pw)*.042)}
.editorial-home .sb-phone__screen{inset:calc(var(--pw)*.028);border-radius:calc(var(--pw)*.026)}
.editorial-home .sb-phone__screen video{object-position:50% 16%}  /* the tablet window ends above the burned-in captions */
.editorial-home .sb-phone__island{display:none}
.editorial-home .sb-phone__cam{position:absolute;top:calc(var(--pw)*.012);left:50%;transform:translateX(-50%);width:calc(var(--pw)*.014);height:calc(var(--pw)*.014);border-radius:50%;background:#1a1a1c;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.editorial-home .sb-phone__btn{width:calc(var(--pw)*.009)}
.editorial-home .sb-phone__btn--vol1{left:calc(var(--pw)*-.009);top:9%;height:5%}
.editorial-home .sb-phone__btn--vol2{left:calc(var(--pw)*-.009);top:16%;height:5%}
.editorial-home .sb-phone__btn--power{right:calc(var(--pw)*-.009);top:8%;height:6%}
.editorial-home .sb-phone__play{width:calc(var(--pw)*.15);height:calc(var(--pw)*.15)}
.editorial-home .sb-phone__ctrl{width:calc(var(--pw)*.6);bottom:calc(var(--pw)*.045)}
.editorial-home .sb-phone__toggle{width:calc(var(--pw)*.08);height:calc(var(--pw)*.08);right:calc(var(--pw)*.04);bottom:calc(var(--pw)*.04)}
.editorial-home .sb-phonefilm__grid{gap:clamp(56px,6vw,110px)!important}
@media(max-width:900px){ .editorial-home .sb-phone{--pw:min(440px,86vw)!important} }

/* ── Owner, 2026-09-18 — final corrections ─────────────────────────────── */
/* Review cards: the four rating labels never clip. */
.editorial-home .sb-review__subs{grid-template-columns:1fr;gap:5px}
.editorial-home .sb-review__subs span{white-space:normal}
/* Footer: larger type so the block carries its width. */
.editorial-home .sb-footer,.editorial-home .sb-footer p,.editorial-home .sb-footer a{font-size:clamp(.95rem,1.05vw,1.08rem)!important;line-height:1.85}
/* Bliss: no glow at rest; a clean fuchsia neon that switches on once, smoothly. */
.editorial-home .sb-bliss__line em{color:#1B1B1F;text-shadow:none;transition:color 1.1s cubic-bezier(.22,.61,.36,1),text-shadow 1.1s cubic-bezier(.22,.61,.36,1)}
.editorial-home .sb-bliss.is-lit .sb-bliss__line em{color:#FF3FA4;text-shadow:0 0 4px rgba(255,63,164,1),0 0 14px rgba(255,63,164,.85),0 0 34px rgba(255,63,164,.6),0 0 68px rgba(255,63,164,.35)}
/* The tablet always fits the viewport, and the film keeps its captions. */
.editorial-home .sb-phone{--pw:min(clamp(340px,30vw,470px),56vh)!important}
.editorial-home .sb-phone__screen video{object-position:50% 100%}
/* Controls at 40% transparency while they are open. */
.editorial-home .sb-phone__screen.is-open .sb-phone__ctrl{opacity:.6!important}
.editorial-home .sb-phone__ctrl{background:rgba(10,10,12,.5)}
/* Title and lead each on one line. */
.editorial-home .sb-phonefilm__title{white-space:nowrap;font-size:clamp(2.2rem,3.6vw,3.6rem)}
.editorial-home .sb-phonefilm__lead{white-space:nowrap;max-width:none}
@media(max-width:1100px){
  .editorial-home .sb-phonefilm__title,.editorial-home .sb-phonefilm__lead{white-space:normal}
}

/* Owner: the lead sits centred under its title, not flush left. */
.editorial-home .sb-phonefilm__aside{display:flex;flex-direction:column;align-items:center;text-align:center}
.editorial-home .sb-phonefilm__title,.editorial-home .sb-phonefilm__lead{text-align:center}

/* Owner: the sign panel is fuchsia; the photographs blend so only the tubes and
   their glow sit on it. */


/* Owner: the whole panel is fuchsia, the sign keeps its own black box and its
   white fluorescent tubes, and the original scroll run switches it on and off. */
.editorial-home .sb-compass{background:#C4157A!important;color:#FDF6FA!important;height:150svh!important;min-height:940px!important;padding-block:0!important}
.editorial-home .sb-compass__sticky{position:sticky!important;top:0;height:100svh!important;display:grid;align-items:center}
.editorial-home .sb-compass .sb-title,.editorial-home .sb-compass .sb-copy,.editorial-home .sb-compass__signals{color:#FDF6FA}
.editorial-home .sb-compass .sb-title em{color:#FFF3E2}  /* vanilla cream, readable on fuchsia */
.editorial-home .sb-compass__neon{background:#07070A;border-radius:10px;overflow:hidden}
.editorial-home .sb-compass__neon img{mix-blend-mode:normal;filter:none}

/* Owner: the tablet goes back to black now that the fuchsia lives in the
   Compass panel; it always fits on screen whole, with the text closer to it. */
.editorial-home .sb-phone__case{background:#0C0C0E!important;box-shadow:0 26px 54px -28px rgba(27,27,31,.42)!important}
.editorial-home .sb-phone__btn{background:#2A2A2E!important}
.editorial-home .sb-phone{--pw:min(clamp(320px,26vw,420px),46vh)!important}
.editorial-home .sb-phonefilm__grid{gap:clamp(28px,3vw,56px)!important;justify-content:start}
.editorial-home .sb-phonefilm__aside{align-items:flex-start;text-align:left}
.editorial-home .sb-phonefilm__title,.editorial-home .sb-phonefilm__lead{text-align:left}

/* Owner: the Compass chapter is short now, each sentence on its own single line. */
.editorial-home .sb-compass{height:96svh!important;min-height:620px!important}
.editorial-home .sb-compass__layout{align-content:center}
.editorial-home .sb-compass__title{white-space:nowrap;font-size:clamp(1.6rem,2.45vw,2.5rem);line-height:1.1;margin:0 0 18px}
.editorial-home .sb-compass__copy{display:flex;flex-direction:column;gap:6px;max-width:none}
.editorial-home .sb-compass__copy span{white-space:nowrap;font-size:clamp(.9rem,1.02vw,1.06rem)}
.editorial-home .sb-compass__signals{margin-top:14px}
/* single lines only where they clear the neon: the body text grows from 1rem only above
   ~1390px (1.15vw), so between 1201 and 1390px a one-line sentence ran under the sign
   (owner 2026-10-04, half-width windows) */
@media(max-width:1390px){
  .editorial-home .sb-compass__title,.editorial-home .sb-compass__copy span{white-space:normal}
}

.editorial-home .sb-compass__layout{align-items:center}
.editorial-home .sb-compass__copy span{font-size:clamp(.86rem,.95vw,1rem)}

/* Owner: the Compass headline must never run under the sign. */
.editorial-home .sb-compass__title{font-size:clamp(1.5rem,2.2vw,2.2rem)!important;max-width:100%}
.editorial-home .sb-compass__copy span{font-size:clamp(.84rem,.92vw,.98rem)!important}
.editorial-home .sb-compass__copy{max-width:100%}
.editorial-home .sb-compass__copy,.editorial-home .sb-compass__title,.editorial-home .sb-compass__signals{overflow-wrap:normal}

/* Owner: the network headline runs on one line and the two copy blocks start
   from the left, evenly spread. */
.editorial-home .sb-network__title{white-space:nowrap;font-size:clamp(1.7rem,2.8vw,3rem)!important;line-height:1.1}
.editorial-home .sb-network__copy{display:grid!important;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,96px);justify-items:stretch;width:100%;margin:0}
.editorial-home .sb-network__copy>*{margin:0;max-width:none;font-size:clamp(1rem,1.15vw,1.2rem);line-height:1.7}
.editorial-home .sb-network__path{margin:clamp(26px,3.4vh,42px) 0!important}
@media(max-width:1100px){
  .editorial-home .sb-network__title{white-space:normal}
  .editorial-home .sb-network__copy{grid-template-columns:1fr}
}

/* Owner: smaller bliss lines, lead on one line, and no CSS glow — the tubes
   are composed in script so they can ramp like the Compass sign. */
.editorial-home .sb-bliss__line{font-size:clamp(1.5rem,3.15vw,3.2rem)!important;line-height:1.16}
.editorial-home .sb-bliss__line em{color:#B096A4;text-shadow:none;transition:none!important;animation:none!important;filter:none!important}
.editorial-home .sb-bliss__lead{white-space:nowrap;max-width:none;font-size:clamp(.86rem,.95vw,1rem)}
@media(max-width:1200px){ .editorial-home .sb-bliss__lead{white-space:normal} }

/* Owner: the bliss lead starts at the left margin so its single line fits. */
.editorial-home .sb-bliss__content{width:100%}
.editorial-home .sb-bliss__lead{margin-left:0!important;margin-right:auto!important;align-self:start;text-align:left}

/* Owner, 2026-09-18: one solid black iPad — no case, no silver body — shown
   whole, with real air beneath it, and the lead centred under its title. */
.editorial-home .sb-phonefilm{overflow:visible!important;padding-bottom:clamp(64px,8vh,110px)!important}
.editorial-home .sb-phone{--pw:min(clamp(300px,24vw,400px),40vh)!important}
.editorial-home .sb-phone__case{background:#0B0B0D!important;padding:0!important;border-radius:calc(var(--pw)*.052);box-shadow:0 24px 50px -30px rgba(27,27,31,.4)!important}
.editorial-home .sb-phone__body{inset:0!important;background:#0B0B0D!important;border-radius:calc(var(--pw)*.052)!important;box-shadow:none!important}
.editorial-home .sb-phone__screen{inset:calc(var(--pw)*.035)!important;border-radius:calc(var(--pw)*.026)!important}
.editorial-home .sb-phone__btn{background:#232326!important}
.editorial-home .sb-phonefilm__aside{align-items:center;text-align:center}
.editorial-home .sb-phonefilm__title,.editorial-home .sb-phonefilm__lead{text-align:center}

/* Owner, 2026-09-18: the Compass chapter is tight — no empty run, its panel
   meets the next section edge to edge, and its type matches the other
   sections. The signals line is black and legible. */
.editorial-home .sb-compass{height:auto!important;min-height:0!important;padding-block:clamp(44px,5.5vh,64px) clamp(44px,5.5vh,64px)!important;margin-bottom:0!important}
.editorial-home .sb-compass__sticky{position:static!important;height:auto!important;min-height:0!important}
.editorial-home .sb-compass__layout{align-items:center;padding-block:0!important}
.editorial-home .sb-compass__title{font-size:clamp(1.9rem,3vw,3rem)!important;line-height:1.1;margin:0 0 20px}
.editorial-home .sb-compass__copy span{font-size:clamp(1rem,1.15vw,1.2rem)!important;line-height:1.7}
.editorial-home .sb-compass__signals{display:block!important;color:#141416!important;opacity:1!important;font-size:clamp(.82rem,.95vw,1rem)!important;letter-spacing:.14em;margin-top:22px}
.editorial-home .sb-compass__neon{width:min(24vw,300px);aspect-ratio:3/4;display:grid;place-items:center}
.editorial-home .sb-compass+.sb-section{margin-top:0!important}

/* Owner, 2026-09-18: the fuchsia panel and the two films meet edge to edge —
   no beige band between them, their borders are one line. */
@media(min-width:1000px){
  .editorial-home .sb-compass{padding-bottom:clamp(30px,3.6vh,44px)!important;margin-bottom:0!important}
  .editorial-home .sb-compass__neon{width:min(20vw,250px)}
  .editorial-home .sb-film{margin:0!important;padding:0!important}
  .editorial-home .sb-film__sticky{margin:0!important}
  .editorial-home .sb-compass+.sb-film,.editorial-home .sb-film+.sb-film{margin-top:0!important;border-top:0}
  .editorial-home .sb-film+.sb-film .sb-film__sticky{padding-top:0}
}

/* Owner: the film picture fills its whole chapter, so the fuchsia panel and the
   two films run into each other with no beige band between. */
@media(min-width:1000px){
  .editorial-home .sb-film__sticky{position:sticky!important;top:0;height:100svh!important;padding:0!important;display:grid;place-items:stretch}
  .editorial-home .sb-film__frame{position:relative;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;inset:auto!important}
  .editorial-home .sb-film__frame video{width:100%;height:100%;object-fit:cover;display:block}
}

/* Owner: an explicit black bottom edge on the tablet, matched to the top, plus
   real air under it and the text pulled in closer. */
.editorial-home .sb-phone__case{padding:0!important;background:#0B0B0D!important}
.editorial-home .sb-phone__screen{inset:calc(var(--pw)*.038) calc(var(--pw)*.032)!important}
.editorial-home .sb-phonefilm{padding-bottom:clamp(90px,11vh,150px)!important}
.editorial-home .sb-phonefilm__grid{gap:clamp(18px,2vw,40px)!important}

/* Owner: clear air under the tablet before the next chapter. */
.editorial-home .sb-phonefilm{margin-bottom:clamp(60px,7vh,96px)!important}

/* Owner, 2026-09-18: every headline is half the size it was, and the space the
   smaller type frees up is taken back out of the sections. */
@media(min-width:1000px){
  .editorial-home .sb-title{font-size:clamp(1.5rem,2.4vw,2.4rem)!important;line-height:1.14!important}
  .editorial-home .sb-dmv__lead,.editorial-home .sb-market-lead,.editorial-home .sb-network__title,
  .editorial-home .sb-compass__title,.editorial-home .sb-phonefilm__title,.editorial-home .sb-statement__title,
  .editorial-home .sb-reviews .sb-title,.editorial-home .sb-support__head .sb-title{font-size:clamp(1.5rem,2.4vw,2.4rem)!important}
  .editorial-home .sb-dmv__names{font-size:clamp(1.3rem,2vw,2rem)!important}
  .editorial-home .sb-statement__lead{font-size:clamp(1.1rem,1.5vw,1.5rem)!important}
  .editorial-home .sb-section:not(.sb-hero):not(.sb-film):not(.sb-compass){padding-block:clamp(34px,4.2vh,48px)!important}
  .editorial-home .sb-statement__frame{padding-block:clamp(14px,2vh,22px)!important}
  .editorial-home .sb-support__head .sb-title,.editorial-home .sb-support-line{margin-bottom:clamp(14px,2vh,22px)!important}
  .editorial-home .sb-title+.sb-copy,.editorial-home .sb-title+p{margin-top:clamp(12px,1.6vh,18px)!important}
}

/* Owner: the films scrub half as fast — twice the scroll run for the same clip. */
@media(min-width:1000px){
  .editorial-home .sb-film{height:236svh!important}
}

/* Owner, 2026-09-18: the bliss chapter is a black room so the tubes read as
   real neon; its words are beige. The network headline is three times larger. */
.editorial-home .sb-bliss{background:#0A0A0C!important;color:#FAF6EB!important}
.editorial-home .sb-bliss .sb-bliss__line,.editorial-home .sb-bliss .sb-copy,.editorial-home .sb-bliss__lead{color:#FAF6EB!important}
.editorial-home .sb-network__title{white-space:normal!important;font-size:clamp(3rem,7.1vw,6.7rem)!important;line-height:1.04!important;max-width:16ch}

/* Owner, 2026-09-22: a bigger tablet at the same 1:1.41 ratio, a caption-free
   still on top until the film starts, and the text 30% closer to the glass. */
.editorial-home .sb-phone{--pw:min(clamp(400px,32vw,560px),58vh)!important}
.editorial-home .sb-phone__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;z-index:1;transition:opacity .35s ease}
.editorial-home .sb-phone__screen.is-playing .sb-phone__poster,
.editorial-home .sb-phone__screen.is-paused .sb-phone__poster{opacity:0;pointer-events:none}
.editorial-home .sb-phone__play,.editorial-home .sb-phone__ctrl,.editorial-home .sb-phone__toggle{z-index:3}
.editorial-home .sb-phonefilm__grid{gap:clamp(13px,1.4vw,28px)!important}

/* Owner: the text block sits 30% closer to the glass again (248px -> 174px). */
@media(min-width:1000px){
  .editorial-home .sb-phonefilm__aside{margin-right:148px}
}

/* ── Owner, 2026-09-22: one centred line in the black room. The two words are
   built like real glass tubes: a white-hot core, a thin fuchsia tube wall, and
   a soft bloom behind — no flat blur "glow". Script drives --lit. ───────── */
.editorial-home .sb-bliss__content{display:grid!important;place-items:center!important;width:100%;text-align:center}
.editorial-home .sb-bliss__one{margin:0!important;text-align:center!important;white-space:nowrap;
  font-size:clamp(1.7rem,3.55vw,3.6rem)!important;line-height:1.25!important;color:#FAF6EB!important}
.editorial-home .sb-bliss__one em{position:relative;font-style:italic;
  --lit:0;
  color:rgb(calc(120 + 135*var(--lit)), calc(96 + 145*var(--lit)), calc(110 + 140*var(--lit)));
  -webkit-text-stroke:.5px rgba(255,54,166,calc(.25 + .75*var(--lit)));
  text-shadow:
    0 0 1px rgba(255,180,220,calc(.9*var(--lit))),
    0 0 4px rgba(255,54,166,calc(.85*var(--lit))),
    0 0 9px rgba(255,36,150,calc(.65*var(--lit)));}
.editorial-home .sb-bliss__one em::before{content:attr(data-glow);position:absolute;left:0;top:0;
  color:#FF1E8F;filter:blur(14px);opacity:calc(.5*var(--lit));z-index:-1;pointer-events:none}
.editorial-home .sb-bliss__one em::after{content:attr(data-glow);position:absolute;left:0;top:0;
  color:#FF63B4;filter:blur(34px);opacity:calc(.34*var(--lit));z-index:-2;pointer-events:none}
@media(max-width:1100px){ .editorial-home .sb-bliss__one{white-space:normal} }

/* Owner, 2026-09-22: the tablet and its text read as one centred pair, aligned
   on the same axis as the executive-team box, free to run past its edges. */
@media(min-width:1000px){
  .editorial-home .sb-phonefilm__grid{grid-template-columns:auto auto!important;justify-content:center!important;justify-items:center;gap:clamp(24px,2.6vw,52px)!important;width:100%}
  .editorial-home .sb-phonefilm__aside{margin:0!important;width:max-content;max-width:34ch}
}

/* Owner: more air between the tablet and its text, still centred on the box axis. */
@media(min-width:1000px){
  .editorial-home .sb-phonefilm__grid{gap:clamp(90px,8vw,150px)!important}
}

/* Owner: the DMV chapter used to be pulled up under the section above it with a
   negative margin; now that the gold frame sits there, that overlap painted over
   the bottom of the frame. The chapters simply follow each other. */
.editorial-home .sb-dmv{margin-top:0!important}

/* Owner, 2026-09-22: a shorter frame that hugs its words — 30% less air above
   and below the text, a tighter title-to-copy step — and the side line twice
   the size, set a touch further left. */
@media(min-width:1000px){
  .editorial-home .sb-statement__frame{aspect-ratio:auto!important;height:auto!important;justify-content:flex-start!important;
    padding-top:clamp(90px,9.45vw,143px)!important;padding-bottom:clamp(90px,9.45vw,143px)!important;gap:clamp(14px,1.45vw,26px)!important}
  .editorial-home .sb-statement__lead{font-size:clamp(1.9rem,3vw,2.84rem)!important;line-height:1.18!important;position:relative;left:-32px}
}

/* Owner: half again the air above and below the words inside the frame. */
@media(min-width:1000px){
  .editorial-home .sb-statement__frame{padding-top:clamp(45px,4.72vw,72px)!important;padding-bottom:clamp(45px,4.72vw,72px)!important}
}

/* ── Tablet controls, owner 2026-09-22: a two-icon dock that opens one panel at
   a time and folds itself away a second after the last touch. ─────────── */
.editorial-home .sb-phone__toggle,.editorial-home .sb-phone__ctrl{display:none!important}
.editorial-home .sb-phone__dock{position:absolute;right:calc(var(--pw)*.045);bottom:calc(var(--pw)*.045);z-index:3;display:none;flex-direction:column;align-items:flex-end;gap:10px}
.editorial-home .sb-phone__screen.is-playing .sb-phone__dock,.editorial-home .sb-phone__screen.is-paused .sb-phone__dock{display:flex}
.editorial-home .sb-phone__icons{display:flex;gap:8px}
.editorial-home .sb-phone__ico{width:calc(var(--pw)*.085);height:calc(var(--pw)*.085);min-width:34px;min-height:34px;border:0;border-radius:50%;cursor:pointer;color:#fff;
  background:rgba(12,12,14,.36);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;transition:background .2s ease}
.editorial-home .sb-phone__ico:hover{background:rgba(12,12,14,.55)}
.editorial-home .sb-phone__ico svg{width:52%;height:52%;fill:currentColor}
.editorial-home .sb-phone__ico .i-play{display:none}
.editorial-home .sb-phone__ico.is-paused .i-play{display:block}
.editorial-home .sb-phone__ico.is-paused .i-pause{display:none}
.editorial-home .sb-phone__panel{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:999px;color:#fff;
  background:rgba(12,12,14,.36);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;transform:translateY(6px) scale(.98);pointer-events:none;transition:opacity .28s ease,transform .28s ease;position:absolute;right:0;bottom:calc(100% + 10px)}
.editorial-home .sb-phone__panel--seek{width:calc(var(--pw)*.74)}
.editorial-home .sb-phone__panel--vol{width:calc(var(--pw)*.46)}
.editorial-home .sb-phone__dock[data-open-panel="seek"] .sb-phone__panel--seek,
.editorial-home .sb-phone__dock[data-open-panel="vol"] .sb-phone__panel--vol{opacity:.6;transform:none;pointer-events:auto}
.editorial-home .sb-phone__dock[data-open-panel="seek"] .sb-phone__panel--seek:hover,
.editorial-home .sb-phone__dock[data-open-panel="vol"] .sb-phone__panel--vol:hover{opacity:.85}
.editorial-home .sb-phone__skip,.editorial-home .sb-phone__mute{flex:none;width:26px;height:26px;border:0;padding:0;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.editorial-home .sb-phone__skip svg,.editorial-home .sb-phone__mute svg{width:20px;height:20px;fill:currentColor}
.editorial-home .sb-phone__skip svg{fill:none}
.editorial-home .sb-phone__panel .sb-phone__seek,.editorial-home .sb-phone__panel .sb-phone__vol{flex:1;width:auto;min-width:0}

/* Owner, 2026-09-22: the volume control is a small vertical slider standing
   directly above the speaker icon, the size players normally use. */
.editorial-home .sb-phone__panel--vol{width:34px!important;height:118px;padding:12px 0!important;flex-direction:column;justify-content:center;gap:0;border-radius:18px;
  right:calc((max(calc(var(--pw)*.085),34px) - 34px)/2)!important}
.editorial-home .sb-phone__panel--vol .sb-phone__mute{display:none}
.editorial-home .sb-phone__panel--vol .sb-phone__vol{writing-mode:vertical-lr;direction:rtl;width:4px!important;height:94px;flex:none;margin:0;
  -webkit-appearance:slider-vertical;appearance:auto;accent-color:#fff;cursor:pointer}

/* Owner, 2026-09-22: the slogan hangs just above the executive-team box. It is
   positioned off the box itself, so nothing in the layout moves sideways; the
   box only steps down enough to make room for the line. */
.editorial-home .sb-hero__team{position:relative}
.editorial-home .sb-hero__slogan{position:absolute;left:0;right:0;bottom:calc(100% + clamp(14px,1.8vh,22px));margin:0;text-align:center;white-space:nowrap;
  font-family:var(--serif,'Cormorant',Georgia,serif);font-weight:400;line-height:1.1;letter-spacing:.005em;color:var(--sb-ink,#1B1B1F);
  font-size:clamp(1.6rem,3.2vw,3.4rem);pointer-events:none}
.editorial-home .sb-hero__slogan em{font-style:italic}
@media(min-width:1000px){ .editorial-home .sb-hero__team{margin-top:clamp(70px,9vh,96px)!important} }
@media(max-width:999px){ .editorial-home .sb-hero__slogan{position:static;white-space:normal;margin:0 0 16px} }

/* Owner: the promise line is set bold and opened up slightly. */
.editorial-home .sb-compass__promise{font-weight:600!important;letter-spacing:.045em}

/* Owner, 2026-09-22: the chair film is cut at the bottom — the band ends a
   measured distance below its words — and it no longer holds the page for a
   long pinned run. */
@media(min-width:1000px){
  .editorial-home .sb-film--room{height:auto!important;min-height:0!important}
  .editorial-home .sb-film--room .sb-film__sticky{position:relative!important;height:80svh!important;min-height:0!important}
  .editorial-home .sb-film--room .sb-film__frame video{object-position:50% 0%}
}

/* Keep the left-hand cream veil that lets the headline read over the window,
   and let the picture itself settle into the page at the cut edge. */
@media(min-width:1000px){
  .editorial-home .sb-film--room .sb-film__frame{
    -webkit-mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 0,#000 86%,transparent 100%)}
}

/* Owner: 15% more room under the words, and the frame reaches low enough to
   keep the sunlight moving across the floor. */
@media(min-width:1000px){
  .editorial-home .sb-film--room .sb-film__sticky{height:92svh!important}
  .editorial-home .sb-film--room .sb-film__frame video{object-position:50% 62%}
  .editorial-home .sb-film--room .sb-film__frame{
    -webkit-mask-image:linear-gradient(180deg,#000 0,#000 93%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 0,#000 93%,transparent 100%)}
}

/* The longer headline wraps on its natural break instead of a narrow column. */
.editorial-home .sb-network__title{max-width:none!important;text-wrap:balance}

/* ── Owner, 2026-09-22: the two words are lit fuchsia neon in the same hue as
   the Compass panel (#C4157A, hue 325°), built like real glass: a pale-pink
   white-hot core, a hot tube wall, a tight inner glow and a wide soft bloom
   thrown onto the wall behind. --lit (0..1) is driven by script. ───────── */
.editorial-home .sb-bliss__one em{
  color:rgb(calc(58 + 197*var(--lit)), calc(30 + 184*var(--lit)), calc(46 + 192*var(--lit)))!important;
  -webkit-text-stroke:1.1px rgba(255,51,168,calc(.18 + .82*var(--lit)))!important;
  text-shadow:
    0 0 1px  rgba(255,214,238,calc(1.00*var(--lit))),
    0 0 3px  rgba(255,51,168,calc(1.00*var(--lit))),
    0 0 7px  rgba(255,51,168,calc(.95*var(--lit))),
    0 0 14px rgba(236,30,150,calc(.85*var(--lit))),
    0 0 28px rgba(210,24,132,calc(.70*var(--lit))),
    0 0 52px rgba(196,21,122,calc(.55*var(--lit))),
    0 0 96px rgba(196,21,122,calc(.38*var(--lit)))!important;}
.editorial-home .sb-bliss__one em::before{color:#FF33A8!important;filter:blur(10px)!important;opacity:calc(.55*var(--lit))!important}
.editorial-home .sb-bliss__one em::after{color:#C4157A!important;filter:blur(38px)!important;opacity:calc(.60*var(--lit))!important}

/* Owner, 2026-09-22: the chair film holds the page briefly — a short pinned
   beat where the sunlight keeps moving under the scroll — then releases. */
@media(min-width:1000px){
  .editorial-home .sb-film--room{height:calc(92svh + 46svh)!important}
  .editorial-home .sb-film--room .sb-film__sticky{position:sticky!important;top:8svh!important;height:92svh!important}
}

/* ── Footer, owner 2026-09-22: tight and composed. The logo sits bottom-left,
   the legal block stands beside it on the same baseline, then one hairline
   and a single bottom bar. No stray air above or inside it. ─────────────── */
.editorial-home .sb-reviews{padding-bottom:clamp(28px,3.4vh,40px)!important}
.editorial-home .sb-reviews__more{margin-bottom:0!important}
.editorial-home .sb-footer{display:block!important;padding:clamp(36px,4.4vh,52px) var(--sb-gutter,68px) clamp(22px,2.6vh,30px)!important;margin:0!important;
  border-top:1px solid rgba(27,27,31,.14);font-size:inherit!important;line-height:1.6!important}
.editorial-home .sb-footer__main{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:clamp(48px,7vw,120px)}
.editorial-home .sb-footer__brand{display:block;align-self:end;line-height:0}
.editorial-home .sb-footer .foot-wordmark{height:clamp(72px,6.2vw,96px)!important;width:auto!important;margin:0!important;display:block}
.editorial-home .sb-footer__legal{display:flex!important;flex-direction:column;gap:6px!important;opacity:1!important;align-self:end;justify-self:end;text-align:right}
.editorial-home .sb-footer__legal p{margin:0!important;font-size:clamp(.74rem,.8vw,.84rem)!important;line-height:1.55!important;letter-spacing:.02em!important;color:rgba(27,27,31,.62)!important}
.editorial-home .sb-footer__legal .sb-footer__who{color:rgba(27,27,31,.86)!important;letter-spacing:.04em!important}
.editorial-home .sb-footer__bottom{display:flex!important;justify-content:space-between;align-items:center;margin-top:clamp(22px,2.8vh,32px);padding-top:clamp(14px,1.8vh,18px);border-top:1px solid rgba(27,27,31,.12)}
.editorial-home .sb-footer__bottom nav{display:flex;gap:26px;margin:0}
.editorial-home .sb-footer__bottom nav a,.editorial-home .sb-footer__bottom .studio-credit{font-size:.74rem!important;letter-spacing:.14em;text-transform:uppercase;line-height:1!important;margin:0!important;color:rgba(27,27,31,.72)!important;text-decoration:none}
.editorial-home .sb-footer__bottom nav a:hover{color:var(--sb-ink,#1B1B1F)!important}
.editorial-home .sb-footer__bottom .studio-credit__mark{font-size:.84rem!important;letter-spacing:.2em;color:var(--sb-ink,#1B1B1F)!important}
@media(max-width:900px){
  .editorial-home .sb-footer__main{grid-template-columns:1fr;row-gap:22px}
  .editorial-home .sb-footer__legal{justify-self:start;text-align:left}
  .editorial-home .sb-footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
}

/* Owner: the network headline is centred in the section, each line centred on the other. */
.editorial-home .sb-network__title{text-align:center!important;margin-left:auto!important;margin-right:auto!important;width:100%}

/* ── Owner, 2026-09-22: the black room is twice as tall, and the two words are
   fuchsia through and through — the panel's #C4157A when unlit, a brighter
   fuchsia when lit, never white at the core. When on, only fuchsia light and
   its reflection spread around them. ─────────────────────────────────────── */
.editorial-home .sb-bliss{min-height:310px!important;display:grid!important;align-items:center!important;padding-block:clamp(60px,8vh,96px)!important}
.editorial-home .sb-bliss__one em{
  color:rgb(calc(196 + 42*var(--lit)), calc(21 + 12*var(--lit)), calc(122 + 32*var(--lit)))!important;
  -webkit-text-stroke:.6px rgba(236,33,154,calc(.35 + .5*var(--lit)))!important;
  text-shadow:
    0 0 2px  rgba(238,33,154,calc(.95*var(--lit))),
    0 0 6px  rgba(232,30,150,calc(.85*var(--lit))),
    0 0 13px rgba(220,26,142,calc(.72*var(--lit))),
    0 0 26px rgba(206,23,132,calc(.58*var(--lit))),
    0 0 48px rgba(196,21,122,calc(.44*var(--lit))),
    0 0 90px rgba(196,21,122,calc(.30*var(--lit)))!important;}
.editorial-home .sb-bliss__one em::before{color:#E0209A!important;filter:blur(12px)!important;opacity:calc(.42*var(--lit))!important}
.editorial-home .sb-bliss__one em::after{color:#C4157A!important;filter:blur(42px)!important;opacity:calc(.5*var(--lit))!important}
/* (specific enough to outrank the page-wide section rhythm rules) */
.editorial-home main .sb-section.sb-bliss.sb-bliss{min-height:310px!important;padding-block:clamp(60px,8vh,96px)!important;display:grid!important;align-items:center!important}

/* ── Performance, owner 2026-09-22: the neon used to repaint large blurs and six
   shadows on every frame, which stuttered the scroll on retina screens. The
   glow is now drawn once into its own composited layers; only their OPACITY
   changes, which the GPU does without repainting. ───────────────────────── */
.editorial-home .sb-bliss__one em.sb-tube{position:relative;display:inline-block;color:#C4157A!important;
  -webkit-text-stroke:0!important;text-shadow:none!important;--lit:0}
.editorial-home .sb-bliss__one em.sb-tube::before,.editorial-home .sb-bliss__one em.sb-tube::after{content:none!important;display:none!important}
.editorial-home .sb-tube__glow,.editorial-home .sb-tube__bloom{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;
  opacity:0;will-change:opacity;transform:translateZ(0);backface-visibility:hidden}
.editorial-home .sb-tube__glow{color:#EC2098;
  text-shadow:0 0 2px rgba(238,33,154,.95),0 0 6px rgba(232,30,150,.85),0 0 13px rgba(220,26,142,.72),0 0 26px rgba(206,23,132,.58),0 0 48px rgba(196,21,122,.44)}
.editorial-home .sb-tube__bloom{color:#C4157A;filter:blur(30px);z-index:-1;transform:translateZ(0) scale(1.02)}

/* ── Support: the Compass nine-step home buying process (owner 2026-09-27).
   Two phases side by side; each step is a serif numeral and a short label with
   a hairline tick dropping to the phase baseline, phase name beneath. ── */
.editorial-home .sb-process{margin-top:clamp(56px,8vh,96px)}
.editorial-home .sb-process__kicker{margin:0 0 clamp(26px,3.4vh,40px);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;opacity:.6}
.editorial-home .sb-process__phases{display:grid;grid-template-columns:5fr 4fr;gap:clamp(28px,3.2vw,56px);align-items:start}
.editorial-home .sb-process__steps{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-bottom:1px solid rgba(27,27,31,.55)}
.editorial-home .sb-process__steps li{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px}
.editorial-home .sb-process__n{font-family:var(--serif);font-size:clamp(2.2rem,3.2vw,3.4rem);font-weight:400;line-height:1;letter-spacing:-.01em}
.editorial-home .sb-process__t{margin-top:12px;padding-bottom:16px;font-size:.78rem;line-height:1.45;max-width:16ch;opacity:.78}
.editorial-home .sb-process__steps li::after{content:"";display:block;width:1px;height:clamp(34px,5vh,56px);margin-top:auto;background:currentColor;opacity:.55}
.editorial-home .sb-process__label{margin:14px 0 0;text-align:center;font-family:var(--serif);font-size:clamp(1.1rem,1.35vw,1.35rem);line-height:1.2}
@media(max-width:1100px){
  .editorial-home .sb-process__phases{grid-template-columns:1fr;gap:clamp(40px,6vh,64px)}
}
@media(max-width:720px){
  .editorial-home .sb-process__steps{grid-auto-flow:row;border-bottom:0}
  .editorial-home .sb-process__steps li{flex-direction:row;align-items:baseline;gap:18px;text-align:left;padding:12px 0;border-bottom:1px solid rgba(27,27,31,.14)}
  .editorial-home .sb-process__steps li::after{display:none}
  .editorial-home .sb-process__n{font-size:1.9rem;min-width:2.2ch}
  .editorial-home .sb-process__t{margin:0;padding:0;max-width:none;font-size:.9rem}
  .editorial-home .sb-process__phase{display:flex;flex-direction:column}
  .editorial-home .sb-process__label{order:-1;text-align:left;margin:0 0 4px}
}

/* ── LET'S CONNECT window (owner 2026-09-27). Light grey panel at 50% (owner:
   more contrast against the cream page) with a soft blur so the page shows through, ink type kept solid for
   legibility, fuchsia only on the small kicker and the button's hover. ── */
.editorial-home .sb-connect{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}
.editorial-home .sb-connect[hidden]{display:none}
.editorial-home .sb-connect__backdrop{position:absolute;inset:0;background:rgba(27,27,31,.12);opacity:0;transition:opacity .45s ease}
.editorial-home .sb-connect__panel{position:relative;width:min(540px,100%);max-height:calc(100svh - 40px);overflow:auto;
  padding:clamp(30px,3.6vw,46px);border-radius:26px;color:#1B1B1F;
  background:rgba(214,213,209,.5);-webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1);
  border:1px solid rgba(27,27,31,.12);box-shadow:0 34px 90px -34px rgba(27,27,31,.5);
  opacity:0;transform:translateY(16px) scale(.985);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .editorial-home .sb-connect__panel{background:rgba(222,221,217,.94)}
}
.editorial-home .sb-connect.is-open .sb-connect__backdrop{opacity:1}
.editorial-home .sb-connect.is-open .sb-connect__panel{opacity:1;transform:none}
.editorial-home .sb-connect__close{position:absolute;top:14px;right:16px;width:38px;height:38px;border:0;border-radius:50%;background:transparent;
  color:#1B1B1F;font:300 1.7rem/1 Inter,system-ui,sans-serif;cursor:pointer}
.editorial-home .sb-connect__close:hover{background:rgba(27,27,31,.07)}
.editorial-home .sb-connect__kicker{margin:0;font:500 .66rem/1.4 Inter,system-ui,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#C4157A}
.editorial-home .sb-connect__title{margin:.3em 0 .32em;font-family:var(--serif,'Cormorant',Georgia,serif);font-weight:400;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;letter-spacing:-.01em;color:#1B1B1F}
.editorial-home .sb-connect__lede{margin:0 0 22px;font:400 .95rem/1.62 Inter,system-ui,sans-serif;color:#1B1B1F;max-width:none}
.editorial-home .sb-connect__form{display:grid;gap:10px}
.editorial-home .sb-connect__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.editorial-home .sb-connect__form input,.editorial-home .sb-connect__form textarea{width:100%;box-sizing:border-box;padding:13px 16px;
  font:400 .92rem/1.4 Inter,system-ui,sans-serif;color:#1B1B1F;background:rgba(255,255,255,.62);border:1px solid rgba(27,27,31,.26);border-radius:14px;resize:vertical;background:rgba(255,255,255,.78)}
.editorial-home .sb-connect__form input::placeholder,.editorial-home .sb-connect__form textarea::placeholder{color:rgba(27,27,31,.55)}
.editorial-home .sb-connect__form input:focus,.editorial-home .sb-connect__form textarea:focus{outline:0;border-color:#1B1B1F;box-shadow:0 0 0 3px rgba(196,21,122,.16)}
.editorial-home .sb-connect__form button{justify-self:start;margin-top:6px;padding:14px 34px;border:0;border-radius:999px;cursor:pointer;
  background:#1B1B1F;color:#FAF6EB;font:500 .78rem/1 Inter,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;transition:background .25s ease}
.editorial-home .sb-connect__form button:hover,.editorial-home .sb-connect__form button:focus-visible{background:#C4157A;color:#fff}
.editorial-home .sb-connect__done{margin:6px 0 0;font-family:var(--serif,'Cormorant',Georgia,serif);font-size:1.5rem;line-height:1.3;color:#1B1B1F}
.editorial-home .sb-connect__direct{margin:20px 0 0;font:400 .82rem/1.6 Inter,system-ui,sans-serif;color:rgba(27,27,31,.78)}
.editorial-home .sb-connect__direct a{color:#1B1B1F;text-decoration:underline;text-underline-offset:3px}
.editorial-home .sb-connect__later{margin-top:10px;padding:4px 0;border:0;background:none;cursor:pointer;
  font:400 .78rem/1.4 Inter,system-ui,sans-serif;letter-spacing:.06em;color:rgba(27,27,31,.6);text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){ .editorial-home .sb-connect__row{grid-template-columns:1fr} .editorial-home .sb-connect__panel{border-radius:22px} }
@media(prefers-reduced-motion:reduce){ .editorial-home .sb-connect__panel,.editorial-home .sb-connect__backdrop{transition:none} }

/* ── Reviews: endless marquee of all Zillow reviews (owner 2026-09-27, after
   nezamhakimi.com). One row glides left at a steady ~45 px/s (duration set in
   JS from the row's width), edges fade into the page, hover or keyboard focus
   pauses it, it idles while off screen, and reduced-motion visitors get a
   plain swipeable row instead. ── */
.editorial-home .sb-marquee{position:relative;margin-top:clamp(36px,5vh,56px);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.editorial-home .sb-marquee__track{display:flex;width:max-content;will-change:transform;
  animation:sb-marquee var(--marquee-dur,300s) linear infinite}
.editorial-home .sb-marquee__set{display:flex;gap:clamp(16px,1.6vw,24px);padding-right:clamp(16px,1.6vw,24px)}
.editorial-home .sb-marquee .sb-review{flex:0 0 clamp(286px,24vw,360px);margin:0}
.editorial-home .sb-marquee:hover .sb-marquee__track,
.editorial-home .sb-marquee:focus-within .sb-marquee__track,
.editorial-home .sb-marquee.is-idle .sb-marquee__track{animation-play-state:paused}
@keyframes sb-marquee{to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){
  .editorial-home .sb-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scroll-snap-type:x proximity}
  .editorial-home .sb-marquee__track{animation:none}
  .editorial-home .sb-marquee__set[aria-hidden]{display:none}
  .editorial-home .sb-marquee .sb-review{scroll-snap-align:start}
}
/* Let's Connect window, readability pass (owner 2026-09-27): a deeper smoky
   grey (still ~half transparent) so white type reads over any part of the page
   behind it; the brand-fuchsia kicker larger and lifted a touch for contrast;
   fields stay white with ink type; Send becomes a cream pill, fuchsia on hover. */
.editorial-home .sb-connect__panel{background:rgba(30,30,34,.58)!important;border-color:rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(20px) saturate(1.1);backdrop-filter:blur(20px) saturate(1.1);color:#fff}
.editorial-home .sb-connect__kicker{font-size:.86rem;font-weight:600;letter-spacing:.22em;color:#F26AAE}
.editorial-home .sb-connect__title,.editorial-home .sb-connect__lede,.editorial-home .sb-connect__done{color:#fff}
.editorial-home .sb-connect__direct{color:rgba(255,255,255,.86)}
.editorial-home .sb-connect__direct a{color:#fff}
.editorial-home .sb-connect__later{color:rgba(255,255,255,.72)}
.editorial-home .sb-connect__close{color:#fff}
.editorial-home .sb-connect__close:hover{background:rgba(255,255,255,.12)}
.editorial-home .sb-connect__form input,.editorial-home .sb-connect__form textarea{background:rgba(255,255,255,.92)!important;border-color:rgba(255,255,255,.4)}
.editorial-home .sb-connect__form input:focus,.editorial-home .sb-connect__form textarea:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(236,79,159,.45)}
.editorial-home .sb-connect__form button{background:#FAF6EB;color:#1B1B1F}
.editorial-home .sb-connect__form button:hover,.editorial-home .sb-connect__form button:focus-visible{background:#C4157A;color:#fff}
.editorial-home .sb-connect .form-err{color:#fff}
.editorial-home .sb-connect .form-err a{color:#fff}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .editorial-home .sb-connect__panel{background:rgba(66,65,70,.95)!important}
}

/* ── READABILITY FLOOR — owner 2026-09-27 ────────────────────────────────
   Client: many of their clients are older and read with glasses. Nothing on
   the homepage reads smaller than 14px; reading copy sits at 17–18px. */
.editorial-home .sb-process__kicker{font-size:.9375rem!important;opacity:.75!important}
.editorial-home .sb-process__t{font-size:1rem!important;line-height:1.35!important}
.editorial-home .sb-reviews__more{font-size:.9375rem!important}
.editorial-home .sb-hero__socials a{font-size:.9375rem!important}
.editorial-home .sb-hero__team-head,.editorial-home .sb-hero__book{font-size:.9375rem!important}
.editorial-home .sb-hero__role span{font-size:.9375rem!important}
.editorial-home .sb-hero__who a{font-size:1rem!important}
.editorial-home .sb-review__subs span{font-size:.875rem!important}
.editorial-home .sb-review__meta{font-size:.9375rem!important}
.editorial-home .sb-review__body{font-size:1.0625rem!important;line-height:1.65!important}
.editorial-home .sb-review__tx{font-size:1.0625rem!important}
.editorial-home .sb-compass__signals{font-size:.9375rem!important}
.editorial-home .sb-compass__copy .sb-copy,.editorial-home .sb-compass__promise{font-size:1.125rem!important}
.editorial-home .studio-credit__by{font-size:.875rem!important}
.editorial-home .studio-credit__mark{font-size:.9375rem!important}
/* "Meet Bahar and Shah" film — light grey concrete slab (tools/make_concrete_texture.py), owner 2026-09-27 */
.editorial-home .sb-phonefilm.sb-surface--cream{background:#D9D8D5 url("assets/textures/concrete-light.webp") center/1100px auto repeat!important}
.editorial-home .studio-credit .studio-credit__mark{font-size:.9375rem!important}
/* Compass chapter, owner 2026-09-27: a black room, no fuchsia; white words;
   the sign's black box melts into the room so only the neon reads. */
.editorial-home .sb-section.sb-compass{background:#000!important;color:#FFFFFF!important}
.editorial-home .sb-section.sb-compass .sb-title,.editorial-home .sb-section.sb-compass .sb-copy,.editorial-home .sb-section.sb-compass .sb-copy span,.editorial-home .sb-section.sb-compass .sb-title em{color:#FFFFFF!important}
.editorial-home .sb-section.sb-compass .sb-compass__signals{color:rgba(255,255,255,.82)!important}
.editorial-home .sb-section.sb-compass .sb-compass__neon{background:#000!important}
/* Slogan under "Meet Bahar and Shah" (owner 2026-09-27): black words, the two
   neon tubes keep their fuchsia glow; the old black slogan band is gone. */
.editorial-home .sb-phonefilm .sb-slogan{font-size:clamp(1.6rem,2.2vw,2.35rem)!important;line-height:1.22!important;white-space:normal!important;color:#1B1B1F!important;margin:clamp(24px,3.2vh,38px) 0 0!important;text-align:center!important;max-width:none}
.editorial-home .sb-phonefilm .sb-phonefilm__aside{max-width:min(40ch,560px)}
/* Meet chapter layout (owner 2026-09-27): the row starts at the page's left
   margin — title + line high on the left, wide air, the tablet, wide air, the
   slogan — so the tablet sits well left of the gold frame's column below. */
@media(min-width:1000px){
  .editorial-home .sb-phonefilm .sb-phonefilm__grid{grid-template-columns:auto auto auto!important;justify-content:start!important;justify-items:start!important;align-items:center;column-gap:clamp(64px,9vw,150px)!important;width:100%!important;max-width:100%!important}
  .editorial-home .sb-phonefilm .sb-phone{--pw:min(clamp(320px,28vw,440px),54vh)!important}
  .editorial-home .sb-phonefilm__intro{justify-self:start;align-self:start;margin-top:clamp(18px,5vh,64px);text-align:left;max-width:22ch}
  .editorial-home .sb-phonefilm .sb-phonefilm__aside{justify-self:start;align-self:center;margin:0!important;width:auto;max-width:min(24ch,380px)}
  .editorial-home .sb-phonefilm .sb-slogan{text-align:left!important;margin:0!important}
}
.editorial-home .sb-phonefilm__intro .sb-title{margin:0;font-size:clamp(2.1rem,2.9vw,3.1rem);line-height:1.06;white-space:normal!important}
.editorial-home .sb-phonefilm__intro .sb-copy{margin:clamp(14px,2vh,22px) 0 0;font-size:1.0625rem;line-height:1.6;white-space:normal!important;max-width:24ch;text-align:left}
@media(max-width:999px){.editorial-home .sb-phonefilm__intro{text-align:center;margin:0 auto 8px}.editorial-home .sb-phonefilm__intro .sb-copy{text-align:center;margin-inline:auto}}

/* Realistic daylight neon (owner 2026-09-27): no haze. A fuchsia glass tube
   (the glyph, weight evened out toward a monoline tube), a hot pale core down
   its centre (the overlay layer, its edges eaten by a tube-coloured stroke), a
   tight halo, and the shadow the tube throws on the concrete behind it. */
.editorial-home .sb-slogan em.sb-tube{color:#F2239C!important;-webkit-text-stroke:.022em #F2239C!important;
  text-shadow:0 0 1px rgba(255,150,212,.95),0 0 3px rgba(255,60,172,.75),0 0 8px rgba(255,40,165,.38),0 0 16px rgba(255,40,165,.14),
    .05em .09em .06em rgba(40,22,32,.28),.1em .2em .22em rgba(40,22,32,.12)!important;font-weight:500}
.editorial-home .sb-slogan .sb-tube__bloom{display:none!important}
.editorial-home .sb-slogan .sb-tube__glow{opacity:1!important;color:#FFD6EC!important;-webkit-text-stroke:.036em #F2239C;paint-order:normal;
  text-shadow:none!important;filter:none!important;will-change:auto}
/* the full stops after the neon words are part of the sign */
.editorial-home .sb-slogan .sb-neon-dot{color:#F2239C;-webkit-text-stroke:.022em #F2239C;
  text-shadow:0 0 1px rgba(255,150,212,.95),0 0 3px rgba(255,60,172,.75),0 0 8px rgba(255,40,165,.38),.05em .09em .06em rgba(40,22,32,.28)}
@media(min-width:1000px){.editorial-home .sb-phonefilm__intro .sb-title,.editorial-home .sb-phonefilm__intro .sb-copy{text-align:left!important}}
/* header over the black Compass room is black too, not the old navy */
body.editorial-home header.bar.on-dark,body.editorial-home header.bar.condensed.on-dark{background:#000!important}
/* "Book an appointment" underline sits a little lower (owner 2026-09-27) */
.editorial-home .sb-hero__book{padding-bottom:13px!important}
/* phone-only hero (homepage-mobile.css shows it below 768px) */
.editorial-home .m-hero{display:none}
/* Meet chapter, owner 2026-09-27 (3): the slogan is exactly two lines, a neon
   word never parts from its full stop; the title and its line are one line
   each; the row sits a touch right of the margin. Sizes ride the viewport so
   the three pieces keep their proportions and air at every desktop width. */
.editorial-home .sb-slogan .sb-slogan__l{display:block}
.editorial-home .sb-slogan .sb-slogan__k{white-space:nowrap}
@media(min-width:1000px){
  .editorial-home .sb-phonefilm .sb-phonefilm__grid{column-gap:5.6vw!important;padding-left:0!important}
  .editorial-home .sb-phonefilm .sb-phone{--pw:min(clamp(300px,24vw,460px),54vh)!important}
  .editorial-home .sb-phonefilm__intro{max-width:none!important}
  .editorial-home .sb-phonefilm__intro .sb-title{white-space:nowrap!important;font-size:clamp(1.85rem,2.35vw,3rem)!important}
  .editorial-home .sb-phonefilm__intro .sb-copy{max-width:none!important;font-size:clamp(.875rem,1.1vw,1.1875rem)!important}
  .editorial-home .sb-phonefilm .sb-phonefilm__aside{max-width:none!important}
  .editorial-home .sb-phonefilm .sb-slogan{font-size:clamp(1.3rem,2.05vw,2.8rem)!important;line-height:1.28!important}
  .editorial-home .sb-phonefilm .sb-slogan .sb-slogan__l{white-space:nowrap}
}
@media(min-width:1200px){.editorial-home .sb-phonefilm__intro .sb-copy{white-space:nowrap!important}}
/* no divider line between Bahar and Shah in the team card (owner 2026-09-27) */
@media(min-width:768px){.editorial-home .sb-hero__person+.sb-hero__person{border-left:0!important}}
/* Compass neon two sizes bigger (owner 2026-09-27) */
@media(min-width:1000px){.editorial-home .sb-section.sb-compass .sb-compass__neon{width:min(27vw,340px)!important}}
/* Dusk film (owner 2026-09-27): shorter run so it plays faster; the caption
   "Every home, shot like cinema" stays up to the film's last frame, where the
   chapter ends — no captionless tail. */
@media(min-width:768px){.editorial-home main .sb-section.sb-film.sb-film--dusk,.editorial-home .sb-film--dusk{height:148svh!important;min-height:0!important}}
/* Room film (owner 2026-09-27): trimmed to its first 80% (data-film-cut) and a
   shorter run, the caption holding to the end — faster and smoother. */
@media(min-width:1000px){.editorial-home .sb-film--room{height:calc(92svh + 26svh)!important}}
/* Property-care film (owner 2026-09-27): the full-screen pinned room as before,
   shorter — the last frames are cut (data-film-cut) and the run is shorter; the
   caption holds to the end. */
@media(min-width:1000px){
  .editorial-home main .sb-section.sb-film.sb-film--work,.editorial-home .sb-film--work{height:168svh!important;min-height:0!important}
}
/* Reviews (owner 2026-09-27): "What our clients say about us" in its own
   black block with white type — a clear, important new chapter. */
.editorial-home .sb-section.sb-reviews{background:#0A0A0C!important;color:#FFFFFF!important}
.editorial-home .sb-section.sb-reviews .sb-title{color:#FFFFFF!important}
.editorial-home .sb-section.sb-reviews .sb-review{background:#151517!important;border-color:rgba(255,255,255,.14)!important;color:#FFFFFF!important}
.editorial-home .sb-section.sb-reviews .sb-review__meta{color:rgba(255,255,255,.72)!important}
.editorial-home .sb-section.sb-reviews .sb-review__body,.editorial-home .sb-section.sb-reviews .sb-review__tx{color:#FFFFFF!important}
.editorial-home .sb-section.sb-reviews .sb-review__subs{color:rgba(255,255,255,.86)!important;opacity:1!important}
.editorial-home .sb-section.sb-reviews .sb-reviews__more{color:#FFFFFF!important;border-color:#FFFFFF!important}
/* "Support that continues after the transaction" is the chapter's title
   (owner 2026-09-27): centred across the page, three sizes up, two lines; the
   line that continues runs beneath it as a centred rule. */
@media(min-width:1000px){
  .editorial-home .sb-support__head .sb-title{font-size:clamp(2.4rem,3.4vw,3.7rem)!important;line-height:1.08!important;text-align:center!important;width:100%!important;max-width:none!important;margin:0 auto clamp(6px,1.2vh,14px)!important}
  .editorial-home .sb-support-line{position:relative!important;right:auto!important;top:auto!important;width:min(56vw,820px)!important;margin:0 auto clamp(6px,1.2vh,14px)!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%)!important;mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%)!important}
}
/* "Book an appointment with us" (owner 2026-09-27): no underline, two sizes
   up, italic — set in the house serif italic, like the hero line. */
@media(min-width:768px){
  .editorial-home .sb-hero__book{border-bottom:0!important;padding-bottom:0!important;font-family:var(--serif,'Cormorant',serif)!important;font-style:italic!important;font-weight:500!important;font-size:clamp(1.25rem,1.45vw,1.45rem)!important;letter-spacing:.08em!important}
  .editorial-home .sb-hero__book:hover{color:#C4157A}
}
/* support title on one line (owner 2026-09-27) */
@media(min-width:1000px){
  .editorial-home .sb-support__head .sb-title{white-space:nowrap!important}
  .editorial-home .sb-support__head .sb-title br{display:none}
}
/* appointment link (owner 2026-09-27, 2): two lines lower, one size up, bold */
@media(min-width:768px){
  .editorial-home .sb-hero__book{margin-top:calc(var(--p,24px) + 2.2em)!important;font-size:clamp(1.4rem,1.65vw,1.65rem)!important;font-weight:700!important}
}
/* Hero sits higher (owner 2026-09-27): less air above the line and under the
   team box, so it and every chapter after it rise by three or four lines. */
@media(min-width:1000px){   /* tablets too: same page as desktop (owner 2026-10-06) */
  .editorial-home .sb-hero__sticky{height:auto!important;min-height:0!important}
  .editorial-home .sb-hero__content{height:auto!important;min-height:0!important;padding-top:calc(var(--header-h,137px) + clamp(14px,2svh,24px))!important;padding-bottom:clamp(24px,3.4svh,36px)!important}
  .editorial-home .sb-hero{padding-bottom:0!important;min-height:0!important;height:auto!important}
}

.editorial-home .sb-phonefilm__lead strong{font-weight:600}
/* The team box starts ~18% in (clear of the blossom) and used to size to its
   content, so at 1440–1512px it ran off the right edge. It now never exceeds
   the room to the right of that start. */
@media(min-width:1000px){.editorial-home .sb-hero__team{max-width:78vw!important;box-sizing:border-box}}
@media(min-width:1000px){.editorial-home .sb-hero__role,.editorial-home .sb-hero__role span{white-space:normal!important}.editorial-home .sb-hero__who{min-width:0}}
/* film captions meet the readability floor too (were 10px / 13px) */
.editorial-home .sb-film__beat .sb-kicker{font-size:.875rem!important;letter-spacing:.22em}
.editorial-home .sb-film__columns p{font-size:1rem!important;line-height:1.6!important}
/* footer wordmark = the header logo's size, on the homepage too (owner 2026-09-27) */
html body.editorial-home .sb-footer .foot-wordmark{width:96px!important;height:auto!important;max-width:none!important}
@media(max-width:767px){html body.editorial-home .sb-footer .foot-wordmark{width:85px!important}}
/* Reviews chapter (owner 2026-09-27, 2): air above, the title centred and four
   sizes up, the cards lower, and the black block runs longer below. */
.editorial-home .sb-section.sb-reviews{padding-top:clamp(84px,12svh,150px)!important;padding-bottom:clamp(96px,14svh,170px)!important}
.editorial-home .sb-section.sb-reviews .sb-title{text-align:center!important;font-size:clamp(2.6rem,3.8vw,4.1rem)!important;line-height:1.08!important;margin:0 auto clamp(44px,6.5svh,80px)!important;width:100%;max-width:none!important}
.editorial-home .sb-section.sb-reviews .sb-reviews__more{margin-top:clamp(36px,5svh,56px)!important}
/* Header over the black rooms (owner 2026-09-27): switches in one frame — no
   0.5s colour fade (that is what let a black sliver show first), and no cream
   skirt under the bar (it drew a light line over the black). */
.editorial-home header.bar{transition:padding .55s cubic-bezier(.4,0,.2,1),opacity .55s ease!important}
.editorial-home header.bar .nav a,.editorial-home header.bar .logo{transition-property:transform,opacity!important}
.editorial-home header.bar::after{display:none!important}
/* Reviews chapter (owner 2026-09-27, 3): a bigger black room — more air above
   the title, between title and cards, above the Zillow link, and below it. */
.editorial-home .sb-section.sb-reviews{padding-top:clamp(130px,17svh,220px)!important;padding-bottom:clamp(160px,21svh,260px)!important}
.editorial-home .sb-section.sb-reviews .sb-title{margin-bottom:clamp(80px,10svh,136px)!important}
.editorial-home .sb-section.sb-reviews .sb-reviews__more{margin-top:clamp(64px,8.5svh,110px)!important}
/* (specific enough to outrank the page-wide section rhythm rule) */
.editorial-home .sb-section.sb-reviews:not(.sb-hero):not(.sb-film):not(.sb-compass){padding-top:clamp(130px,17svh,220px)!important;padding-bottom:clamp(160px,21svh,260px)!important}
/* Compass neon 30% more light (owner 2026-09-27) on the ORIGINAL full-res plate:
   a smooth brightness lift keeps every gradient of the glow (the re-rendered
   plate clipped them into steps); black stays black (0 x 1.3 = 0). */
.editorial-home .sb-compass__neon-on{filter:brightness(1.3)!important}
/* room film title reads "Every home / needs a clear / point of view" — each line whole (owner 2026-09-27) */
@media(min-width:768px){.editorial-home .sb-film__beat--newspaper .sb-title{white-space:nowrap!important}}
/* Team box dead centre on the page (owner 2026-09-27): the hero's old right
   offset (left:115px + a two-column grid) is gone; the box centres itself and
   never exceeds the page's side margins. */
@media(min-width:1000px){   /* iPads too (owner 2026-10-06: the team box sat 115px right on iPad landscape) */
  .editorial-home .sb-hero__content{left:0!important;display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding-left:clamp(24px,5vw,80px)!important;padding-right:clamp(24px,5vw,80px)!important;box-sizing:border-box}
  .editorial-home .sb-hero__team{margin-left:auto!important;margin-right:auto!important;max-width:min(1240px,100%)!important}
}
/* The hero content drifts slower than the page (parallax). With the shorter
   hero it now slid past the hero's end over the concrete chapter. The chapter
   is layered above the hero, so the team box glides UNDER it (owner 2026-09-27). */
.editorial-home .sb-section.sb-hero{position:relative;z-index:1}
.editorial-home .sb-section.sb-phonefilm{position:relative;z-index:2}
/* Room film (owner 2026-09-27): no pin — the page never stops here. The band
   moves with the scroll and its film plays across its pass (travel window). */
@media(min-width:1000px){
  .editorial-home main .sb-section.sb-film.sb-film--room,.editorial-home .sb-film--room{height:auto!important;min-height:0!important}
  .editorial-home .sb-film--room .sb-film__sticky{position:relative!important;top:auto!important}
}

/* ══ "Editorial presentation" — typed in at the foot of the room film's text
   column as the reader scrolls (owner 2026-09-27). Much larger than a kicker,
   the column's width; hidden letters keep their place so nothing shifts. ══ */
.editorial-home .sb-film__type{position:absolute;z-index:3;left:var(--sb-gutter);bottom:clamp(56px,12vh,160px);margin:0;
  width:min(40vw,650px);color:var(--sb-ink);pointer-events:none}
.editorial-home .sb-film__type-text{display:block;font-family:var(--sans);font-weight:500;text-transform:uppercase;
  font-size:clamp(2rem,4.05vw,4.1rem);line-height:1.1;letter-spacing:.14em;opacity:.88}
.editorial-home .sb-film__type .ch{visibility:hidden}
.editorial-home .sb-film__type .ch.on{visibility:visible}
.editorial-home .sb-film__type .ch.is-caret{position:relative}
.editorial-home .sb-film__type .ch.is-caret::after{content:"";position:absolute;top:.12em;bottom:.1em;right:-.09em;width:.05em;
  background:currentColor;animation:sbCaret 1s linear infinite}
@keyframes sbCaret{0%,49%{opacity:.75}50%,100%{opacity:0}}
@media(max-width:1020px){.editorial-home .sb-film__type{width:min(48vw,590px)}}

/* Executive Team box: vanilla white, still see-through so the blossom film
   shows behind it (owner 2026-09-27) */
.editorial-home .sb-hero__team{background:rgba(255,252,245,.62)}
/* Executive Team portraits sit on a rounded vanilla-white mat (owner 2026-09-27):
   the mat is a box-shadow ring, so nothing in the layout moves. */
.editorial-home .sb-hero__photo{border-radius:12px;box-shadow:0 0 0 10px #F4EDDF,0 22px 44px -26px rgba(27,27,31,.34)}
@media (max-width:767px){
  .editorial-home .sb-hero__photo{box-shadow:0 0 0 6px #F4EDDF,0 14px 28px -18px rgba(27,27,31,.32)}
}
/* (the mat takes the box's own cream, a shade deeper, not a whiter white — owner 2026-09-27) */
/* NYXMAYA credit without an address is not a link: no hover, no pointer, not
   clickable (owner 2026-09-27) — adding its href brings the link back */
.studio-credit__mark:not([href]){pointer-events:none;cursor:default}
/* No underline under NYXMAYA, ever — also once it links to nyxmaya.com (owner 2026-09-27) */
.studio-credit__mark,.studio-credit__mark:hover,.studio-credit__mark:focus-visible{text-decoration:none!important;border-bottom:0!important}

/* reload mid-page: the head script sets --bloom-fade before first paint; the page
   script takes over (inline opacity on the layer) and clears it (owner 2026-10-04) */
.editorial-home .sb-hero__bloom-flip{opacity:var(--bloom-fade,1)}
