:root{
  /* cold, not warm. this is an instrument, not a lobby. */
  --deep:#0B0F14;
  --deep2:#11161C;
  --page:#EDEFF1;
  --band:#E2E6EA;

  --ink:#0D1116;
  --ink2:#3C454F;
  --ink3:#5A6470;

  --bone:#EEF1F3;
  --dim:#9AA6B2;
  --steel:#7C8794;

  --verm:#D6402A;        /* marks only — rules, ticks, bars */
  --verm-lit:#E8543C;    /* text on dark  5.3:1 */
  --verm-ink:#9E2916;    /* text on light 6.6:1 */

  --rule:#D2D8DD;
  --rule-2:#B8C1C9;

  --f-display:'Bodoni Moda',Didot,'Times New Roman',serif;
  --f-body:'Source Serif 4',Georgia,serif;
  --f-ui:'Archivo','Helvetica Neue',Arial,sans-serif;

  --measure:620px;
  --rail:168px;
  --gutter:64px;
}
*{box-sizing:border-box}

body{
  margin:0;background:var(--page);color:var(--ink2);
  font-family:var(--f-body);font-size:18px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

/* ---------- grid ---------- */
.shell{
  max-width:calc(var(--rail) + var(--gutter) + var(--measure));
  margin:0 auto;padding-left:24px;padding-right:24px;position:relative;z-index:2;
}
@media (min-width:940px){
  .shell{
    display:grid;grid-template-columns:var(--rail) minmax(0,var(--measure));
    column-gap:var(--gutter);padding-left:32px;padding-right:32px;
  }
  .shell > .col{grid-column:2}
  .shell > .rail{grid-column:1}
  .shell > .wide{grid-column:1 / -1}
}
@media (max-width:560px){ .shell{padding-left:18px;padding-right:18px} }

.rail{position:relative;margin:0 0 26px;border-top:1px solid var(--rule-2);padding-top:15px}
.rail::before{content:"";position:absolute;top:-1px;left:0;width:26px;height:2px;background:var(--verm)}
.rail:empty{border-top:0;padding-top:0}
.rail:empty::before{display:none}

/* on the dark plates the rule hugs the word instead of the column, so it
   matches the length of the underline beneath it */
.interlude .rail,.start .rail{border-top:0;padding-top:0}
.interlude .rail::before,.start .rail::before{display:none}
.interlude .sidehead,.start .sidehead{
  position:relative;border-top:1px solid rgba(238,241,243,.24);padding-top:14px;
}
.interlude .sidehead::before,.start .sidehead::before{
  content:"";position:absolute;top:-1px;left:0;width:26px;height:2px;background:var(--verm);
}
@media (min-width:940px){ .rail{position:sticky;top:84px;align-self:start;margin:0} }
.sidehead{
  display:inline-block;
  font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ink3);margin:0;line-height:1.7;
  padding-bottom:8px;border-bottom:1px solid rgba(214,64,42,.52);
}

/* ---------- the arrival ---------- */
.hero{
  position:relative;background:var(--deep);color:var(--bone);overflow:hidden;
  display:flex;flex-direction:column;min-height:min(94vh,900px);
}
.masthead{position:relative;z-index:4;flex:0 0 auto}
.masthead .shell{padding-block:26px;display:block}
.mark{display:flex;align-items:baseline;gap:11px}
.mark b{font-family:var(--f-display);font-size:21px;letter-spacing:.06em;color:var(--bone);line-height:1;font-optical-sizing:none;font-variation-settings:'opsz' 14;font-weight:500;}
.mark span{font-family:var(--f-ui);font-weight:700;font-size:9.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--steel)}

.hero-body{
  flex:1 1 auto;position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:36px 24px 24px;text-align:center;
}
.seal{
  position:relative;display:flex;align-items:center;justify-content:center;
  perspective:1000px;animation:float 11s ease-in-out infinite alternate;
}
.seal::before{           /* the light it sits in */
  content:"";position:absolute;width:152%;aspect-ratio:1;border-radius:50%;
  background:
    radial-gradient(circle at 44% 36%,rgba(174,196,220,.13),rgba(0,0,0,0) 58%),
    radial-gradient(circle at 50% 58%,rgba(0,0,0,.70),rgba(0,0,0,0) 62%);
  filter:blur(22px);z-index:0;
}
#mark{
  position:relative;z-index:1;display:block;
  width:min(44vw,400px);aspect-ratio:1;
  background:var(--seal) center/contain no-repeat;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  filter:drop-shadow(0 22px 44px rgba(0,0,0,.72));
}
@keyframes float{to{transform:translateY(-9px)}}
.hero h1{
  font-family:var(--f-display);font-optical-sizing:auto;
  font-size:clamp(30px,5.6vw,62px);line-height:1.08;letter-spacing:-.008em;
  font-optical-sizing:none;font-variation-settings:'opsz' 14;font-weight:500;
  color:var(--bone);margin:48px 0 0;max-width:23ch;text-wrap:balance;
}
.hero h1 .acc{color:var(--verm-lit);font-style:normal}
.hero .sub{
  font-family:var(--f-body);font-size:17.5px;line-height:1.62;color:var(--dim);
  margin:20px auto 0;max-width:44ch;
}
.cue{position:relative;z-index:3;flex:0 0 auto;display:flex;justify-content:center;padding-bottom:34px}
.cue i{display:block;width:1px;height:38px;background:linear-gradient(180deg,transparent,var(--steel))}
@media (max-width:939px){
  .hero{min-height:auto}
  .hero-body{padding-block:24px 40px}
  #mark{width:min(68vw,300px)}
  .cue{display:none}
}

/* ---------- sections ---------- */
.sec{position:relative;z-index:2;background:var(--page)}
.sec.alt{background:var(--band)}
.sec > .shell{padding-block:124px}
.sec > .shell.pad-a{padding-block:124px 0}
.sec > .shell.pad-fig{padding-block:52px 116px}
.sec > .shell.pad-after{padding-block:104px 124px}
@media (max-width:939px){
  .sec > .shell{padding-block:74px}
  .sec > .shell.pad-a{padding-block:74px 0}
  .sec > .shell.pad-fig{padding-block:36px 70px}
  .sec > .shell.pad-after{padding-block:60px 74px}
}

.lead{
  font-family:var(--f-body);font-optical-sizing:auto;
  font-size:23.5px;line-height:1.5;font-weight:600;letter-spacing:-.003em;
  color:var(--ink);margin:0 0 1.4em;text-wrap:pretty;
}
p{margin:0 0 1.3em;text-wrap:pretty}
p:last-child{margin-bottom:0}
.acc-ink{color:var(--verm-ink);font-style:normal}

/* ---------- interlude ---------- */
.interlude{background:var(--deep);position:relative;z-index:2;overflow:hidden}
.interlude .shell{padding-block:124px}
.interlude .col p{
  font-family:var(--f-display);font-optical-sizing:auto;
  font-size:clamp(25px,4.4vw,42px);line-height:1.16;letter-spacing:-.010em;
  font-optical-sizing:none;font-variation-settings:'opsz' 14;font-weight:500;
  color:var(--bone);margin:0;text-wrap:balance;
}
.interlude .col p .acc{color:var(--verm-lit);font-style:normal}
.interlude .sidehead,.start .sidehead{color:var(--steel)}
@media (max-width:939px){ .interlude .shell{padding-block:78px} }

/* ---------- steps ---------- */
.steps{list-style:none;margin:0;padding:0}
.steps li{
  position:relative;display:grid;grid-template-columns:18px 1fr;column-gap:26px;
  padding-block:28px;
  background-image:linear-gradient(var(--rule-2),var(--rule-2));
  background-size:calc(100% - 44px) 1px;
  background-position:right top;
  background-repeat:no-repeat;
}
.steps li:first-child{background-image:none}
.steps li:last-child{
  background-image:linear-gradient(var(--rule-2),var(--rule-2)),
                   linear-gradient(var(--rule-2),var(--rule-2));
  background-size:calc(100% - 44px) 1px, calc(100% - 44px) 1px;
  background-position:right top, right bottom;
}
@media (max-width:560px){
  .steps li,.steps li:last-child{background-size:calc(100% - 38px) 1px,calc(100% - 38px) 1px}
}
.steps .n{grid-row:1/3}

/* a schematic rail rather than numerals. The line runs solid through the three
   stages of the engagement and goes dashed into the fourth, because the fourth
   is optional — which is what the copy says. */
.steps li::before{
  content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--rule-2);
}
.steps li:first-child::before{top:37px}
/* the line starts breaking up before Ongoing, not at it — the engagement
   trails off rather than stopping */
.steps li:nth-child(3)::before{
  background:
    linear-gradient(var(--rule-2),var(--rule-2)) top/1px 74% no-repeat,
    repeating-linear-gradient(var(--rule-2) 0 2px,transparent 2px 6px) bottom/1px 26% no-repeat;
}
.steps li:last-child::before{
  bottom:auto;height:37px;
  background:repeating-linear-gradient(var(--rule-2) 0 2px,transparent 2px 6px);
}
/* The stage markers are the footnote sequence — asterisk, dagger, double
   dagger, section sign — the order scholarly and legal typesetting has used
   for centuries. It numbers the steps without using numerals, and it is a
   writer's device on a firm that only ever delivers writing. */
.steps li::after{
  content:"*";position:absolute;left:0;top:26px;width:17px;
  font-family:var(--f-display);font-optical-sizing:none;
  font-variation-settings:'opsz' 14;font-weight:500;
  font-size:21px;line-height:1;text-align:center;color:var(--verm);
  background:var(--band);padding-block:6px 4px;
}
.steps li:nth-child(2)::after{content:"\2020";font-size:16px;top:29px}
.steps li:nth-child(3)::after{content:"\2021";font-size:16px;top:29px}
.steps li:nth-child(4)::after{content:"\00A7";font-size:16px;top:29px}
.steps h3{font-family:var(--f-body);font-weight:600;font-size:19px;line-height:1.3;letter-spacing:-.002em;color:var(--ink);margin:0 0 8px}
.steps p{font-size:17.5px;margin:0}

/* ---------- work / waste / waiting ---------- */
.defs{list-style:none;margin:0;padding:0}
.defs li{display:grid;grid-template-columns:auto 1fr;column-gap:18px;margin-bottom:22px}
.defs li:last-child{margin-bottom:0}
.sw{width:11px;height:11px;margin-top:9px;background:var(--c);border:1px solid var(--ce,transparent)}
.d-work{--c:var(--verm)}
.d-waste{--c:#8894A2}
.d-wait{--c:transparent;--ce:var(--rule-2)}
.defs h3{font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);margin:0 0 7px}
.defs p{font-size:17.5px;margin:0}

/* ---------- figure ---------- */
/* a share above each segment, so the shape has a scale */
.fig-scale{display:flex;gap:8px;margin:0 0 9px}
.fig-scale span{
  font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.14em;
  font-variant-numeric:tabular-nums;color:var(--ink3);
}
.fig-scale span:nth-child(1){color:var(--verm-ink)}
.fig-bar{display:flex;gap:8px;height:30px}
.fig-bar > div{position:relative}
/* the gap between segments is bridged, so the bar reads as one elapsed span */
.f-work::after,.f-waste::after{
  content:"";position:absolute;right:-8px;top:50%;width:8px;height:1px;background:var(--rule-2);
}
.f-wait{display:flex;align-items:center;padding-left:15px}
.f-wait span{
  font-family:var(--f-ui);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink3);white-space:nowrap;
}
.f-work{background:var(--verm)}
.f-waste{background:#8894A2}
.f-wait{background:transparent;border:1px solid var(--rule-2)}
.fig-cap{font-family:var(--f-ui);font-size:13px;line-height:1.6;color:var(--ink3);margin:18px 0 0;text-align:center}

/* ---------- four rules ---------- */
.rules-label{font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink3);margin:52px 0 0;padding-bottom:16px;border-bottom:1px solid var(--rule-2)}
.rules{list-style:none;margin:0;padding:0;counter-reset:r}
.rules li{padding-block:28px;border-bottom:1px solid var(--rule);counter-increment:r}
.rules h3{font-family:var(--f-body);font-weight:600;font-size:19px;line-height:1.36;letter-spacing:-.002em;color:var(--ink);margin:0 0 10px;display:grid;grid-template-columns:auto 1fr;column-gap:16px}
.rules h3::before{content:counter(r,decimal-leading-zero);font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.14em;color:var(--verm-ink);font-variant-numeric:tabular-nums;padding-top:8px}
.rules p{font-size:17px;margin:0;padding-left:27px}
@media (max-width:560px){ .rules p{padding-left:0} }
.note{font-family:var(--f-ui);font-size:15px;line-height:1.65;color:var(--ink3);margin:32px 0 0}

/* ---------- claims ---------- */
.claims{list-style:none;margin:0;padding:0}
.claims li{
  position:relative;padding-block:24px;padding-left:34px;
  border-bottom:1px solid var(--rule);font-size:17.5px;
}
/* a register mark — the coin's cardinal tick, not a dot */
.claims li::before{
  content:"";position:absolute;left:0;top:35px;width:13px;height:13px;
  background:
    linear-gradient(var(--verm),var(--verm)) center/13px 1px no-repeat,
    linear-gradient(var(--verm),var(--verm)) center/1px 13px no-repeat;
  opacity:.85;
}

.claims li.last{font-family:var(--f-body);font-weight:600;font-size:21px;line-height:1.42;color:var(--ink);border-bottom:0;padding-bottom:0}
.claims li.last > span{display:block}          /* one sentence per line, no orphan */
.claims li.last::before{display:none}

/* ---------- people ---------- */
.person{padding-block:38px;border-top:1px solid var(--rule-2)}
.person:first-child{padding-top:0;border-top:0}
.person h3{font-family:var(--f-body);font-weight:600;font-size:26px;line-height:1.2;letter-spacing:-.006em;color:var(--ink);margin:0 0 8px}
.role{font-family:var(--f-ui);font-weight:700;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--verm-ink);margin:0 0 18px}
.person p{font-size:17.5px}
.li{
  display:inline-flex;align-items:center;gap:10px;margin-top:18px;
  font-family:var(--f-ui);font-size:11px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink2);text-decoration:none;
  padding:9px 14px;border:1px solid var(--rule-2);
  transition:color .2s,border-color .2s,background .2s;
}
.li svg{width:11px;height:11px;flex:none;stroke:var(--verm);stroke-width:1.6;fill:none}
.li:hover{color:var(--ink);border-color:var(--verm);background:rgba(214,64,42,.05)}
.li:focus-visible{outline:2px solid var(--verm-ink);outline-offset:3px}

/* ---------- start ---------- */
.start{background:transparent;color:var(--bone);position:relative;z-index:2}
.closing{position:relative;overflow:hidden;background:var(--deep);z-index:2}
.closing::before{
  content:"";position:absolute;z-index:0;pointer-events:none;
  right:3%;top:50%;transform:translateY(-50%);
  width:min(54vw,500px);aspect-ratio:1;
  background:var(--seal) center/contain no-repeat;
  mix-blend-mode:screen;opacity:.15;filter:grayscale(1) contrast(.72) brightness(1.3);
}
@media (max-width:939px){ .closing::before{right:-18%;width:min(80vw,360px);opacity:.10} }
.start .shell{padding-block:124px}
.start h2{font-family:var(--f-display);font-optical-sizing:auto;font-size:clamp(28px,4.6vw,44px);line-height:1.1;letter-spacing:-.012em;font-optical-sizing:none;font-variation-settings:'opsz' 14;font-weight:500;color:var(--bone);margin:0 0 24px;text-wrap:balance}
.start .col p{color:var(--dim);font-size:18px;max-width:30em;margin:0}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.btn{font-family:var(--f-ui);font-size:11.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:16px 32px;color:var(--deep);background:var(--bone);transition:background .2s,color .2s}
.btn.ghost{background:transparent;color:var(--verm-lit);box-shadow:inset 0 0 0 1px var(--verm)}
.btn:hover{background:var(--verm-lit);color:var(--deep)}
.btn.ghost:hover{background:var(--verm);color:var(--bone)}
.btn:focus-visible{outline:2px solid var(--bone);outline-offset:3px}
@media (max-width:939px){ .start .shell{padding-block:78px} }

/* ---------- footer ---------- */
.foot{background:transparent;position:relative;z-index:2;border-top:1px solid rgba(238,241,243,.08)}
.foot .shell{padding-block:32px;display:block}
.foot p{font-family:var(--f-ui);font-size:11.5px;letter-spacing:.16em;color:var(--steel);margin:0;text-transform:uppercase}

/* ---------- reveal (pre-state applied by JS, below the fold only) ---------- */
.will-reveal{opacity:0;transform:translateY(12px)}
.revealed{opacity:1;transform:none;transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1)}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
  .will-reveal{opacity:1!important;transform:none!important}
}
/* ============================================================
   INNER PAGES — engagements, intake, examples
   ============================================================ */
.topbar{background:var(--deep);position:relative;z-index:3}
.topbar .shell{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:22px;max-width:calc(var(--rail) + var(--gutter) + var(--measure))}
.topbar a{text-decoration:none}
.topbar .mark b,.topbar .mark span{transition:color .2s}
.topbar a:hover .mark b{color:var(--verm-lit)}
.home{font-family:var(--f-ui);font-weight:700;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--steel)}
.home:hover{color:var(--bone)}

.page-head{background:var(--deep);color:var(--bone);position:relative;z-index:2}
.page-head .shell{padding-block:74px 84px}
.page-head h1{
  font-family:var(--f-display);font-optical-sizing:none;font-variation-settings:'opsz' 14;
  font-weight:500;font-size:clamp(30px,5.2vw,54px);line-height:1.06;letter-spacing:-.014em;
  color:var(--bone);margin:0;text-wrap:balance;
}
.page-head h1 .acc{color:var(--verm-lit);font-style:normal}
.page-head p{font-family:var(--f-body);font-size:18px;line-height:1.62;color:var(--dim);margin:22px 0 0;max-width:42ch}
.page-head .sidehead{color:var(--steel)}

/* an offer block */
.offer{padding-block:44px;border-top:1px solid var(--rule-2)}
.offer:first-child{border-top:0;padding-top:0}
.offer-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin:0 0 18px}
.offer h2{
  font-family:var(--f-body);font-weight:600;font-size:22px;line-height:1.25;
  letter-spacing:-.004em;color:var(--ink);margin:0;
}
.price{
  font-family:var(--f-display);font-optical-sizing:none;font-variation-settings:'opsz' 14;
  font-weight:500;font-size:27px;line-height:1;color:var(--verm-ink);
  font-variant-numeric:tabular-nums;
}
.price small{font-family:var(--f-ui);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-left:8px}
.offer p{font-size:17.5px}
.offer .bound{
  font-family:var(--f-ui);font-size:14px;line-height:1.6;color:var(--ink3);
  margin:18px 0 0;padding-left:16px;border-left:1px solid var(--verm);
}
.entry{background:var(--band);margin-left:-28px;margin-right:-28px;padding:36px 28px}
@media (max-width:560px){ .entry{margin-left:-18px;margin-right:-18px;padding:28px 18px} }

/* terms */
.terms{list-style:none;margin:0;padding:0}
.terms li{display:grid;grid-template-columns:minmax(0,150px) 1fr;gap:6px 24px;padding-block:20px;border-bottom:1px solid var(--rule)}
.terms li:first-child{border-top:1px solid var(--rule-2)}
.terms dt,.terms .k{font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3);padding-top:4px}
.terms .v{font-size:17.5px;margin:0}
@media (max-width:640px){ .terms li{grid-template-columns:1fr} }

/* question lists — shared by the intake preview and the form */
.qsec{
  font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ink3);
  margin:46px 0 20px;padding-bottom:10px;border-bottom:1px solid var(--rule-2);
}
.qsec:first-child{margin-top:0}
.qsec span{color:var(--verm-ink);margin-right:12px}
.qlist{list-style:none;margin:0;padding:0}
.qlist li{
  display:grid;grid-template-columns:auto 1fr;column-gap:16px;
  padding-block:15px;border-bottom:1px solid var(--rule);
  font-size:17.5px;line-height:1.55;color:var(--ink2);
}
.qlist li .qn{
  font-family:var(--f-ui);font-weight:700;font-size:11px;letter-spacing:.1em;
  color:var(--verm-ink);font-variant-numeric:tabular-nums;padding-top:5px;
}

/* the Review anatomy — examples page */
.anat{list-style:none;margin:0;padding:0;counter-reset:a}
.anat > li{padding-block:40px;border-bottom:1px solid var(--rule);counter-increment:a}
.anat > li:first-child{padding-top:0}
.anat h2{
  font-family:var(--f-body);font-weight:600;font-size:21px;line-height:1.25;color:var(--ink);
  margin:0 0 12px;display:grid;grid-template-columns:auto 1fr;column-gap:16px;
}
.anat h2::before{
  content:counter(a,decimal-leading-zero);
  font-family:var(--f-ui);font-weight:700;font-size:10.5px;letter-spacing:.14em;
  color:var(--verm-ink);font-variant-numeric:tabular-nums;padding-top:8px;
}
.anat p{font-size:17.5px;padding-left:27px;margin:0 0 1em}
.anat > li > .reg{margin-left:27px}
@media (max-width:560px){ .anat p,.anat > li > .reg{padding-left:0;margin-left:0} }
.reg{margin:18px 0 0;padding:20px 22px;background:var(--band);border-left:2px solid var(--verm)}
.sec.alt .reg{background:var(--page)}
.reg .k{
  font-family:var(--f-ui);font-weight:700;font-size:9.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ink3);margin:0 0 12px;padding:0;
}
.reg q{
  display:block;font-family:var(--f-body);font-size:17px;line-height:1.6;color:var(--ink);
  quotes:'\201C' '\201D';
}
.reg q + q{margin-top:14px}
.caveat{
  font-family:var(--f-ui);font-size:14.5px;line-height:1.6;color:var(--ink3);
  margin:0;padding:18px 20px;border:1px solid var(--rule-2);
}
.caveat b{color:var(--ink2)}
