/* Shared styles for the long-form pages: Philosophy, Framework, Route, Teardown */
.pg{padding-top:clamp(96px,11vw,150px)}
.sec-head{margin-bottom:clamp(28px,4vw,56px)}
.sec-head .principle{margin-top:14px}

/* hero */
.pg-hero{padding-bottom:clamp(56px,8vw,110px)}
.pg-hero h1{font-size:clamp(64px,11.5vw,190px);margin:14px 0 0}
.pg-hero h1 span{color:var(--ash)}
.pg-hero .lede{font-size:clamp(20px,2vw,28px);max-width:34ch;margin:clamp(22px,3vw,36px) 0 0;color:var(--bone-2);text-wrap:balance}
.jump{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--line)}
.jump a{display:flex;flex-direction:column;gap:6px;padding:16px 16px 4px 0;text-decoration:none;font-size:15px;color:var(--bone-2);transition:color .2s}
.jump a + a{padding-left:16px;border-left:1px solid var(--line)}
.jump a:hover{color:var(--acid)}

/* who */
.who{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}
.who .pic{grid-column:1/5}
.who .pic .ph{aspect-ratio:4/5}
.who .txt{grid-column:6/13}
.who .big,.roots .big{font-size:clamp(26px,3vw,44px);margin:12px 0 22px;text-wrap:balance}
.who .txt > p:not(.big){color:var(--bone-2);max-width:58ch;margin:0}
.facts-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:32px 0 0;border-top:1px solid var(--line)}
.facts-row div{padding:12px 0;border-bottom:1px solid var(--line)}
.facts-row dd{margin:4px 0 0;font-size:15px}
.name{margin-top:32px;padding:20px 22px;background:var(--soot)}
.name p{margin:0;color:var(--bone-2);font-size:15px;max-width:60ch}
.name p.cap{margin-bottom:8px}
.name .quote{color:var(--bone);font-size:18px}

/* beliefs ledger */
.beliefs{padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}
.ledger{list-style:none;margin:0;padding:0;border-top:2px solid var(--bone)}
.ledger li{display:grid;grid-template-columns:56px minmax(0,7fr) minmax(0,4fr);gap:clamp(16px,2.4vw,40px);padding:clamp(22px,2.6vw,34px) 0;border-bottom:1px solid var(--line)}
.ledger .n{padding-top:6px}
.ledger h3{font-size:clamp(34px,3.6vw,56px);margin:0 0 12px}
.ledger .b p{margin:0;color:var(--bone-2);max-width:58ch}
.ledger .you{border-left:2px solid var(--rust);padding-left:18px;align-self:start;margin-top:4px}
.ledger .you .cap{color:var(--rust)}
.ledger .you p{margin:6px 0 0;font-size:clamp(17px,1.4vw,20px);line-height:1.45;color:var(--bone)}
.ledger li:hover h3{color:var(--acid)}
.ledger h3{transition:color .25s}

/* working together (paper) */
.together{padding-block:clamp(64px,9vw,130px)}
.together .principle{color:var(--p-ink)}
.exp{border-top:2px solid var(--p-ink)}
.exp-row{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,3fr));gap:clamp(14px,2vw,32px);padding:18px 0;border-bottom:1px solid var(--p-line)}
.exp-row p{margin:0;color:var(--p-2);font-size:15.5px;line-height:1.5}
.exp-row b{display:block;font-size:clamp(24px,2.2vw,34px);color:var(--p-ink);margin-bottom:4px}
.exp-h{padding:12px 0}
.exp-row.entry{background:rgba(210,59,42,.08);box-shadow:-12px 0 0 rgba(210,59,42,.08),12px 0 0 rgba(210,59,42,.08)}
.exp-row.entry b{color:var(--rust)}
.promises{list-style:none;margin:clamp(36px,5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.promises li{border-top:1px solid var(--p-ink);padding-top:14px;color:var(--p-2);font-size:15px}
.promises b{display:block;color:var(--p-ink);font-weight:600;margin-bottom:4px}

/* tools */
.tools{padding-block:clamp(56px,8vw,110px)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.4vw,18px)}
.card{display:flex;flex-direction:column;text-decoration:none;background:var(--soot);padding:clamp(20px,2vw,28px);min-height:300px;transition:background .25s}
.card b{font-size:clamp(56px,6vw,96px);margin:14px 0 16px;transition:color .25s}
.card p{margin:0 0 24px;color:var(--bone-2);font-size:15px}
.card .go{margin-top:auto;font-size:15px;color:var(--bone)}
.card:hover{background:var(--soot-2)}
.card:hover b{color:var(--acid)}

/* roots */
.roots{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}
.roots .pic{grid-column:1/5}
.roots .pic .ph{aspect-ratio:3/4}
.roots .txt{grid-column:6/13}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);border-top:1px solid var(--line);padding-top:18px}
.three h3{margin:0 0 8px;color:var(--bone)}
.three p{margin:0;font-size:15px;color:var(--bone-2)}

.faq-pg{padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}

@media (max-width:900px){
  .jump{grid-template-columns:1fr 1fr}
  .jump a:nth-child(3){padding-left:0;border-left:0}
  .who,.roots{display:block}
  .who .pic,.roots .pic{max-width:420px;margin-bottom:28px}
  .ledger li{grid-template-columns:36px minmax(0,1fr)}
  .ledger .you{grid-column:2}
  .exp-h{display:none}
  .exp-row{grid-template-columns:1fr;gap:8px}
  .exp-row p::before{display:block;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--p-2);opacity:.7;margin-bottom:2px}
  .exp-row p:nth-of-type(1)::before{content:"You"}
  .exp-row p:nth-of-type(2)::before{content:"Me"}
  .exp-row p:nth-of-type(3)::before{content:"You get"}
  .promises,.cards,.three{grid-template-columns:1fr}
  .card{min-height:0}
}
@media (max-width:560px){.facts-row{grid-template-columns:1fr}}

/* ---------- shared long-form components ---------- */
.facts-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.facts-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pg-hero .facts-row{margin-top:clamp(36px,5vw,64px)}
.fine{font-size:14px;color:var(--ash);max-width:70ch;margin:16px 0 0}
.rule{display:flex;gap:18px;align-items:baseline;margin:clamp(28px,3vw,40px) 0 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(17px,1.5vw,21px);line-height:1.4}
.rule .cap{flex:none;color:var(--acid)}
.pull{font-size:clamp(28px,3.2vw,46px);line-height:1.15;color:var(--bone);margin:28px 0 0;text-wrap:balance}

/* problem / what-it-is split */
.rt-why{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}
.rt-why .l{grid-column:1/5}
.rt-why .big{font-size:clamp(30px,3.4vw,52px);margin:12px 0 0;line-height:1.05}
.rt-why .r{grid-column:6/13}
.rt-why .r > p:not(.pull){margin:0 0 18px;color:var(--bone-2);max-width:60ch;font-size:clamp(17px,1.4vw,19px)}

/* figures */
.figs{padding-block:clamp(40px,6vw,80px) clamp(56px,8vw,100px)}
.figs-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--bone);margin-top:14px}
.figs-row div{padding:20px 20px 0 0}
.figs-row div + div{padding-left:20px;border-left:1px solid var(--line)}
.figs-row b{display:block;white-space:nowrap;font-size:clamp(52px,7.2vw,120px);color:var(--bone);font-variant-numeric:tabular-nums}
.figs-row span{display:block;margin-top:10px;color:var(--ash);font-size:15px;max-width:24ch}
.figs-note{margin:28px 0 0;color:var(--bone-2);max-width:66ch}

/* strip (sequence chips) */
.strip{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0;border-top:2px solid var(--bone)}
.strip li{position:relative;padding:14px 26px 14px 0;font:400 clamp(17px,1.5vw,21px)/1.2 var(--sans);font-stretch:118%;color:var(--bone-2)}
.strip li:not(:last-child)::after{content:"→";position:absolute;right:8px;color:var(--rust)}
.strip li:first-child{color:var(--acid)}
.strip-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.strip-4 li{padding:18px 30px 18px 0;font-size:15px;color:var(--ash);font-stretch:100%}
.strip-4 li b{display:block;font:400 clamp(22px,2vw,30px)/1.1 var(--sans);font-stretch:118%;color:var(--bone);margin-bottom:6px}
.strip-4 li:first-child{color:var(--ash)}
.strip-4 li:last-child b{color:var(--acid)}
.on-paper{border-top-color:var(--p-ink)}
.on-paper li,.on-paper li:first-child{color:var(--p-2)}
.on-paper li b,.on-paper li:last-child b{color:var(--p-ink)}
.fw-sec,.rt-spine,.rt-route{padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--line)}

/* route stages */
.stage{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(18px,3vw,48px);padding:clamp(28px,3vw,44px) 0;border-top:1px solid var(--line)}
.stage-h h3{font-size:clamp(40px,4.4vw,72px);margin:8px 0 8px}
.stage-h p:not(.cap){margin:16px 0 0;color:var(--bone-2);max-width:46ch}
.stage-h .cap + h3 + .cap{color:var(--rust)}
.sends{list-style:none;margin:0;padding:0;border-top:2px solid var(--bone)}
.sends li{display:grid;grid-template-columns:92px 64px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.sends .when{font:500 12px var(--mono);letter-spacing:.04em;color:var(--bone)}
.sends .ch{font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash);border:1px solid var(--ash-2);padding:2px 6px;justify-self:start}
.sends .ch.sms{color:var(--ink);background:var(--acid);border-color:var(--acid)}
.sends .what{color:var(--bone-2);font-size:15px}
.sends .what b{display:block;color:var(--bone);font-weight:600;font-size:16px;margin-bottom:2px}

/* rules (paper) */
.rt-rules,.fw-relay{padding-block:clamp(64px,9vw,130px)}
.rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,48px) clamp(24px,4vw,64px);margin-top:clamp(28px,3vw,44px)}
.rules div{border-top:2px solid var(--p-ink);padding-top:16px}
.rules h3{font-size:clamp(22px,2.1vw,30px);margin:0 0 10px;color:var(--p-ink);line-height:1.15}
.rules p{margin:0;color:var(--p-2);max-width:52ch}
.ships-h{margin:clamp(48px,6vw,80px) 0 14px}
.ships{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--p-ink)}
.ships li{padding:16px 20px 18px 0;border-bottom:1px solid var(--p-line);color:var(--p-2);font-size:15px}
.ships b{display:block;color:var(--p-ink);font-weight:600;margin-bottom:4px}

/* framework */
.six{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(18px,2.4vw,32px);margin-top:clamp(28px,3vw,40px);list-style:none;padding:0}
.six > *{border-top:1px solid var(--line);padding:16px 0 20px}
.six h3{margin:0 0 6px;color:var(--bone)}
.six p{margin:0;color:var(--bone-2);font-size:15px}
.six-n{counter-reset:q}
.six-n li{counter-increment:q}
.six-n li::before{content:"0" counter(q);display:block;font:500 11px var(--mono);letter-spacing:.08em;color:var(--rust);margin-bottom:8px}
.six-n b{display:block;font-size:clamp(22px,2vw,28px);line-height:1.15;margin-bottom:4px}
.six-n span{color:var(--ash);font-size:15px}
.loop14{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:2px solid var(--bone)}
.loop14 li{padding:14px 12px 16px 0;border-bottom:1px solid var(--line);font:400 clamp(16px,1.4vw,20px)/1.2 var(--sans);font-stretch:118%}
.loop14 li i{display:block;font-style:normal;margin-bottom:6px;color:var(--rust)}
.loop14 li em{display:block;font:500 11px var(--mono);font-style:normal;letter-spacing:.06em;color:var(--acid);margin-top:6px}
.sig{margin-top:clamp(32px,4vw,56px)}
.sig b{color:var(--bone);font-weight:600}
.st14 summary{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.st14 summary i{font-style:normal;color:var(--rust)}
.st14 summary em{font-style:normal;color:var(--ash);font-size:.8em}
.st14 .rule{margin:0 0 22px;font-size:16px;padding:10px 0;border-bottom:0}
.build8{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--bone);counter-reset:b}
.build8 li{counter-increment:b;padding:18px 18px 22px 0;border-bottom:1px solid var(--line)}
.build8 li::before{content:"0" counter(b);display:block;font:500 11px var(--mono);letter-spacing:.08em;color:var(--ash);margin-bottom:8px}
.build8 b{display:block;font-size:clamp(34px,3.4vw,52px);margin-bottom:6px}
.build8 span{color:var(--bone-2);font-size:15px}
.ask{border-top:2px solid var(--bone)}
.ask > div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(16px,3vw,48px);padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ask s{color:var(--ash);text-decoration-color:var(--rust);text-decoration-thickness:1.5px;font-size:clamp(16px,1.4vw,19px)}
.ask b{font-size:clamp(20px,2vw,28px);line-height:1.2;color:var(--bone)}
.ask .ask-h{padding:10px 0}
.eq{font-size:clamp(22px,2.4vw,34px);color:var(--bone-2);margin:0 0 18px}
.eq span{color:var(--acid)}

/* teardown */
.td-bar{position:sticky;top:64px;z-index:5;background:rgba(11,10,9,.92);backdrop-filter:blur(8px);border-block:1px solid var(--line)}
.td-bar-in{display:flex;align-items:center;gap:24px;padding-block:12px}
.td-count{margin:0;font-size:15px;color:var(--ash);white-space:nowrap}
.td-count b{font:800 28px/1 var(--sans);font-stretch:62%;color:var(--bone);vertical-align:-3px}
.td-meter{flex:1;height:2px;background:var(--line)}
.td-meter i{display:block;height:100%;width:0;background:var(--acid);transition:width .4s var(--ease)}
.td-act{display:flex;gap:18px}
.td-act button{background:none;border:0;border-bottom:1px solid var(--ash-2);cursor:pointer;font-family:inherit;padding:0 0 2px}
.td-group{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);padding-block:clamp(44px,6vw,80px);border-bottom:1px solid var(--line)}
.td-group header{grid-column:1/5;align-self:start;position:sticky;top:140px}
.td-group h2{font-size:clamp(44px,4.6vw,76px);margin:8px 0 8px}
.td-group header p{color:var(--rust)}
.td-list{grid-column:5/13;list-style:none;margin:0;padding:0;border-top:2px solid var(--bone)}
.td-list li{border-bottom:1px solid var(--line);transition:opacity .3s}
.td-list label{display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;padding:22px 0;cursor:pointer}
.td-list label{position:relative}
.td-list input{position:absolute;left:0;top:26px;width:24px;height:24px;margin:0;opacity:0;pointer-events:none}
.td-list .box{width:24px;height:24px;border:1.5px solid var(--ash);margin-top:4px;position:relative;transition:background .2s,border-color .2s}
.td-list input:focus-visible + .box{outline:2px solid var(--acid);outline-offset:3px}
.td-list .done .box{background:var(--acid);border-color:var(--acid)}
.td-list .done .box::after{content:"";position:absolute;left:7px;top:2px;width:6px;height:12px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.td-list .t{display:flex;flex-direction:column;gap:8px}
.td-list .t b{font-size:clamp(24px,2.4vw,34px);line-height:1.1}
.td-list .do{color:var(--bone-2);max-width:60ch}
.td-list .good{font-size:15px;color:var(--bone)}
.td-list .good i{font-style:normal;color:var(--acid);margin-right:10px}
.td-list .sting{color:var(--ash);font-size:17px}
.td-list .done .t b{text-decoration:line-through;text-decoration-color:var(--rust);text-decoration-thickness:2px}
.td-list .done .do,.td-list .done .good,.td-list .done .sting{opacity:.55}
.td-end{padding-block:clamp(64px,9vw,130px)}
.td-end-g{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:start}
.td-end h2{font-size:clamp(56px,7vw,112px);margin:10px 0 22px;color:var(--p-ink)}
.td-end p{color:var(--p-2);max-width:56ch}
.td-end .lead{font-size:clamp(20px,1.8vw,24px);color:var(--p-ink)}
.td-dig{background:var(--p-ink);color:var(--bone);padding:clamp(22px,2.4vw,34px)}
.td-dig .cap{color:var(--acid)}
.td-dig p{color:var(--bone-2)}
.td-dig ul{margin:0 0 24px;padding:0;list-style:none;border-top:1px solid rgba(235,227,210,.2)}
.td-dig li{padding:10px 0;border-bottom:1px solid rgba(235,227,210,.2);font-size:15px}
.td-dig .btn{background:var(--bone);color:var(--ink)}
.td-dig .btn:hover{background:var(--acid)}
.td-dig .soft a{color:var(--bone-2)}

@media (max-width:900px){
  .facts-3,.facts-4{grid-template-columns:1fr 1fr}
  .rt-why,.stage,.td-group,.td-end-g{display:block}
  .rt-why .l{margin-bottom:20px}
  .stage-h{margin-bottom:22px}
  .figs-row{grid-template-columns:1fr}
  .figs-row div + div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .figs-row div{padding:16px 0}
  .strip-4,.rules,.ships,.six,.build8{grid-template-columns:1fr 1fr}
  .loop14{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sends li{grid-template-columns:72px minmax(0,1fr)}
  .sends .ch{grid-column:1;grid-row:2}
  .sends .what{grid-column:2;grid-row:1/3}
  .td-group header{position:static;margin-bottom:18px}
  .td-bar{top:56px}
  .td-dig{margin-top:32px}
  .ask > div{grid-template-columns:1fr;gap:6px}
  .ask .ask-h{display:none}
}
@media (max-width:560px){.strip-4,.rules,.ships,.six,.build8,.facts-3,.facts-4{grid-template-columns:1fr}.td-act{gap:12px}}

@media print{
  header.top,footer,.td-bar,.td-end,.lb,.jump{display:none!important}
  body,.pg{background:#fff;color:#000}
  .td-list .do,.td-list .good,.td-list .sting,.cap,.lede{color:#222!important}
  .td-list .box{border-color:#000}
  .td-group{break-inside:avoid;border-color:#ccc}
  .td-group header{position:static}
}

.td .pg-hero h1{font-size:clamp(56px,8.6vw,140px)}
.strip-4 li:not(:last-child)::after{top:22px;right:10px}
.fw .pg-hero h1,.rt .pg-hero h1{font-size:clamp(56px,8.6vw,140px)}
