/* ==========================================================================
   pages-programs.css · page group "programs" (v3f page kit, 2026-09-30). Linked ONLY by start.html, ai-training.html,
   pricing.html, free-seo-audit.html, digital-funding.html and careers.html (markup: _build/pages/programs.py).
   Loads after d5.css + d5-kit.css; uses only their tokens (golden type --fs-*, Fibonacci --sp-1..7, discs 34 / 55 / 89,
   lane classes .is-start .is-run .is-learn .is-prog .is-neutral) and the MOTION attributes (data-reveal / data-at).
   Every hidden start state belongs to d5.css (html.mo); nothing here hides content with JS off or in reduced motion.

   CLASS MAP (local components; candidates for the kit)
   .pp-h1l ........ long SEO H1: one golden step under --fs-h1 (phi^2 x sqrt(phi) = 60px), 17ch measure
   .pp-art ........ a code-built picture in the sub-hero art column (.pp-first "Read this first", the scope card)
   .pp-mock ....... Example screens (the home's .mock: paper, ink outline, stamp shadow, sun tag): .pp-setmock (setup),
                    .pp-rulesmock (AI rules), .pp-scopemock (written scope), .pp-repmock (SEO report)
   .pp-doors ...... featured door + three open doors          .pp-setup ...... vine + "Your business" card ticking Live
   .pp-own ........ "In your name" row                         .pp-note ....... quiet aside (disc, title, line, link)
   .pp-pledge ..... honest statement + list                    .pp-duo ........ two labelled open lists
   .pp-syl ........ module ledger                              .pp-scales ..... scope scales on pixel-square tracks
   .pp-ways ....... three open columns with a lane bar         .pp-prom ....... five promises
   .pp-track ...... horizontal three-node track                .pp-fit ........ fits / not on its own
   .pp-src ........ grouped official links                     .pp-steps ...... numbered prose steps (funding)
   .pp-vals ....... four 89px discs + labels                   .pp-role ....... job posting + disclosures
   Phones (<= 760px): one column, open rows instead of boxes (round 5), big type (d5.css phone tokens), targets >= 56px.
   ========================================================================== */

/* ---------- sub-hero additions ---------- */
.pp-h1l h1{font-size:clamp(var(--fs-h2),calc(var(--fs-body) * 1.2 + 3.1vw),calc(var(--fs-body) * 3.33));line-height:1.02;max-width:17ch}
.pp-art{width:min(100%,420px);aspect-ratio:auto}
.ksub--cream .pp-art .pp-mock{background:#fffdf7}
.pg-careers .ksub__art--pic{width:min(100%,380px)}
.pg-careers .ksub__art--pic img{border-radius:0;box-shadow:none;filter:drop-shadow(0 24px 30px rgba(23,58,39,.16))}
@media (prefers-reduced-motion:no-preference){
  html:not(.rm) .pg-careers .ksub__art--pic img{animation:k-float 9s ease-in-out infinite alternate}
  html.mo:not(.mo-lite) .pg-careers .ksub__art--pic:not(.mo-done) img{animation-play-state:paused}
}
.ksub__note .pill{margin-right:6px}

/* ---------- Example screens ---------- */
.pp-mockwrap{position:relative;width:100%;max-width:400px}
.pp-mock{padding:var(--sp-3) var(--sp-3) var(--sp-2);max-width:none;transform:rotate(-.8deg)}
.pp-mock__h{display:flex;align-items:center;gap:var(--sp-1);padding:2px 0 var(--sp-2);border-bottom:1px solid var(--rule);font:800 var(--fs-body)/1.2 var(--font)}
.pp-mock__h img{width:20px;height:20px}
.pp-mock__h{flex-wrap:wrap}
.pp-nw{white-space:nowrap}
.pp-mock__h .ico{color:var(--green)}

/* ---------- start: doors ---------- */
.pp-doors{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-5);align-items:stretch}
.pp-doors__main{position:relative;border-radius:var(--r-xl)}
.pp-door.pp-door--main{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);height:100%;padding:var(--sp-5);border-radius:var(--r-xl);
  background:linear-gradient(160deg,var(--c-soft),var(--c-tint));color:var(--ink);text-decoration:none;transition:box-shadow .2s var(--ease)}
.pp-door--main:hover{box-shadow:var(--sh-2)}
.pp-door__txt{display:block;min-width:0}
.pp-door--main .pp-door__t{display:block;font:800 var(--fs-h3)/1.15 var(--font);letter-spacing:-.02em}
.pp-door--main .pp-door__p{display:block;margin-top:var(--sp-1);max-width:30ch;font-size:var(--fs-lead);line-height:1.45;color:var(--ink-2)}
.pp-door__go{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:auto;font:700 var(--fs-body)/1.2 var(--font);color:var(--green-ink)}
.pp-door__go span[aria-hidden]{transition:transform .18s var(--ease)}
.pp-door--main:hover .pp-door__go span[aria-hidden]{transform:translateX(3px)}
.pp-doors__rest{display:grid;align-content:center}
.pp-door{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);min-height:89px;padding:var(--sp-3) 2px;
  box-shadow:0 1px 0 var(--rule);color:var(--ink);text-decoration:none}
.pp-doors__rest li:first-child .pp-door{box-shadow:0 -1px 0 var(--rule),0 1px 0 var(--rule)}
.pp-door:not(.pp-door--main) .pp-door__t{display:block;font:750 var(--fs-lead)/1.25 var(--font)}
.pp-door:not(.pp-door--main) .pp-door__p{display:block;margin-top:2px;font-size:var(--fs-body);line-height:1.45;color:var(--ink-2)}
.pp-door__arr{font-weight:700;color:var(--green);transition:transform .18s var(--ease)}
.pp-door:hover .pp-door__arr{transform:translateX(3px)}
.pp-door:not(.pp-door--main):hover .pp-door__t{color:var(--green-ink)}
.pp-door:not(.pp-door--main):hover .disc{background:var(--c);color:var(--c-on)}
.pp-door.is-prog:not(.pp-door--main):hover .disc{color:var(--sun)}

/* ---------- start: setup scene (vine + Example card) ---------- */
.pp-setup .ksteps__head .sec-line{max-width:30ch}
.pp-setup__card{margin-top:var(--sp-4)}
.pp-mrows{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.pp-mrow{--wait:0;display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--rule);border-radius:6px;background:#fff;font-weight:700;
  opacity:calc(1 - var(--wait) * .4);transition:opacity .3s steps(3,end)}
.pp-mrow>.ico{color:var(--green)}
.pp-mrow__l{flex:1;min-width:0}
.pp-st{display:grid;flex:none}
.pp-st>span{grid-area:1/1;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:var(--fs-sm);font-weight:750;transition:opacity .3s steps(3,end)}
.pp-st__on{background:var(--start-tint);color:var(--start-ink);opacity:calc(1 - var(--wait))}
.mock .pp-st__on .ico{color:var(--start-ink)}
.pp-st__off{background:var(--cream);color:var(--ink-3);opacity:var(--wait)}
.pp-setup__foot{display:flex;align-items:center;gap:var(--sp-1);margin:var(--sp-5) 0 0 calc(55px + var(--sp-4));font:650 var(--fs-body)/1.5 var(--font);color:var(--ink-3)}
/* a card row reads "Next" until the stem lights its step (desktop, motion on; JS off / reduced motion: all Live) */
@media (min-width:981px){
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(1) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(1),
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(2) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(2),
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(3) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(3),
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(4) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(4),
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(5) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(5),
  html.mo .pp-setup:has(.kvine.has-stem .kvine__step:nth-child(6) .kvine__node:not(.is-lit)) .pp-mrow:nth-child(6){--wait:1}
}
.kvine.is-start{--c:var(--start);--c-on:#fff;--c-icon:var(--green)}

/* ---------- start: in your name ---------- */
.pp-own{max-width:1000px;margin:0 auto;text-align:center}
.pp-own__list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp-3)}
.pp-own__i{display:grid;justify-items:center;align-content:start;gap:var(--sp-2);font:700 var(--fs-body)/1.3 var(--font)}
.pp-own__i .disc{background:#fff;color:var(--green);box-shadow:inset 0 0 0 1.5px var(--start-tint),var(--sh-1)}
.pp-own__line{display:inline-flex;align-items:center;gap:10px;margin-top:var(--sp-5);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);
  background:var(--start-soft);font:700 var(--fs-lead)/1.3 var(--font);color:var(--start-ink);text-wrap:balance}
.pp-own__line .ico{color:var(--green)}

/* ---------- quiet aside ---------- */
.pp-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-2) var(--sp-3);max-width:900px;margin:var(--sp-6) auto 0;
  padding:var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-3);border-radius:var(--r-xl);background:var(--c-soft);text-align:left}
.pp-note__t{font:800 var(--fs-lead)/1.25 var(--font);color:var(--ink)}
.pp-note__p{margin-top:2px;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2)}
.pp-note.is-run .pp-note__go .go{color:var(--run-ink)}
.pp-tight{padding-top:0}
.pp-tight .pp-note{margin-top:0}
.pp-how .pp-note{margin-top:var(--sp-6)}

/* ---------- AI: honest start ---------- */
.pp-pledge{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--sp-6);align-items:center}
.pp-pledge__big{max-width:26ch;font:600 var(--fs-h3)/1.35 var(--font);letter-spacing:-.015em;color:var(--ink);text-wrap:pretty}
.pp-pledge__big b{font-weight:800;color:var(--learn-ink)}
.pp-pledge__side{padding:var(--sp-1) 0 var(--sp-1) var(--sp-5);box-shadow:inset 3px 0 0 var(--learn)}
.pp-pledge__h{font:750 var(--fs-body)/1.3 var(--font);color:var(--ink-3)}
.pp-pledge__list{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}
.pp-pledge__i{display:flex;align-items:center;gap:var(--sp-2);font:750 var(--fs-lead)/1.25 var(--font)}

/* ---------- AI: two lists ---------- */
.pp-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6)}
.pp-duo__h{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font:800 var(--fs-lead)/1.2 var(--font)}
.pp-duo .klist__i{color:var(--learn-icon)}

/* ---------- AI: module ledger ---------- */
.pp-syl__head,.pp-syl__row{display:grid;grid-template-columns:34px minmax(0,4fr) minmax(0,5fr) minmax(0,4fr);column-gap:var(--sp-4);align-items:start}
.pp-syl__head{padding-bottom:var(--sp-2);box-shadow:0 1px 0 var(--rule-2);font:750 var(--fs-sm)/1.3 var(--font);color:var(--ink-3)}
.pp-syl__head span:first-child{grid-column:1/3}
.pp-syl__row{padding:var(--sp-3) 0;box-shadow:0 1px 0 var(--rule)}
.pp-syl__n{display:grid;place-items:center;width:34px;height:34px;border-radius:6px;background:var(--learn-tint);color:var(--learn-ink);font:800 var(--fs-sm)/1 var(--font);font-variant-numeric:tabular-nums}
.pp-syl__name{display:flex;align-items:center;gap:var(--sp-1);min-height:34px;font:800 var(--fs-lead)/1.2 var(--font);letter-spacing:-.01em}
.pp-syl__name .ico{color:var(--learn-icon)}
.pp-syl__learn{padding-top:4px;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2)}
.pp-syl__keep{display:flex;align-items:flex-start;gap:8px;padding-top:4px;font:650 var(--fs-body)/1.5 var(--font);color:var(--learn-ink)}
.pp-syl__keep .ico{margin-top:3px;color:var(--learn)}
.pp-syl__lab{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pp-syl__row:hover .pp-syl__n{background:var(--learn);color:#fff}
.pp-after{margin-top:var(--sp-5)}

/* ---------- AI: privacy (sky band) ---------- */
.sec--sky .ksplit__vis{background:linear-gradient(160deg,#fff,var(--learn-soft))}
.ksplit .krow__t em{color:var(--learn-ink)}
.pp-rules{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.pp-rules li{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--rule);border-radius:6px;background:#fff;font-weight:700}
.pp-rules li>span{flex:1;min-width:0}
.pp-rules b{flex:none;padding:3px 10px;border-radius:999px;font-size:var(--fs-sm);font-weight:750}
.pp-rules .is-ok b{background:var(--start-tint);color:var(--start-ink)}
.pp-rules .is-no b{background:var(--ink);color:var(--paper)}
.mock .pp-rules .is-no .ico{color:var(--ink)}
.pp-rules .is-no>span{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--ink-3)}

/* ---------- pricing: written scope card (hero) ---------- */
.pp-scope{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.pp-scope li{display:grid;grid-template-columns:auto minmax(0,1fr) 34%;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--rule);border-radius:6px;background:#fff;font-weight:700}
.pp-scope li>i{height:8px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--rule) 0 13px,transparent 13px 18px)}
.pp-scope__ok{display:flex;align-items:center;gap:8px;margin-top:var(--sp-2);padding:9px 10px;border-radius:6px;background:var(--start-tint);font-weight:750;color:var(--start-ink)}
.mock .pp-scope__ok .ico{color:var(--start-ink)}

/* ---------- pricing: what changes the scope ---------- */
.pp-scales{max-width:1000px;margin:0 auto}
.pp-scales__key{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--sp-5);padding-bottom:var(--sp-2);box-shadow:0 1px 0 var(--rule-2);font:750 var(--fs-sm)/1.3 var(--font);color:var(--ink-3)}
.pp-scales__key span:first-child{grid-column:2;grid-row:1}
.pp-scales__key span:last-child{grid-column:2;grid-row:1;justify-self:end}
.pp-scale{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--sp-5);align-items:center;padding:var(--sp-4) 0;box-shadow:0 1px 0 var(--rule)}
.pp-scale__lab{display:flex;align-items:center;gap:var(--sp-2)}
.pp-scale__lab b{display:block;font:800 var(--fs-lead)/1.25 var(--font);color:var(--ink)}
.pp-scale__lab small{display:block;margin-top:2px;font-size:var(--fs-sm);line-height:1.4;color:var(--ink-3)}
.pp-scale__lab .disc{background:#fff;color:var(--green)}
.pp-scale__bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:var(--sp-1)}
/* pixel squares, light to deep green: the old blocky way of reading a scale, drawn modern */
.pp-scale__track{grid-column:1/-1;height:13px;background:linear-gradient(90deg,var(--start-tint),var(--green-2) 60%,var(--green));
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 13px,transparent 13px 21px);mask:repeating-linear-gradient(90deg,#000 0 13px,transparent 13px 21px)}
.pp-scale__end{font:650 var(--fs-sm)/1.35 var(--font);color:var(--ink-2)}
.pp-scale__end--hi{text-align:right}

/* ---------- pricing: ways to pay ---------- */
.pp-ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-way{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) var(--sp-3)}
.pp-way+.pp-way{box-shadow:inset 1px 0 0 var(--rule)}
.pp-way::before{content:"";position:absolute;left:var(--sp-4);top:0;width:55px;height:4px;border-radius:2px;background:var(--c-dot,var(--c))}
.pp-way__t{margin-top:var(--sp-1);font:800 var(--fs-h3)/1.15 var(--font);letter-spacing:-.02em}
.pp-way__p{max-width:28ch;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2)}
.pp-way__go{margin-top:auto}

/* ---------- pricing: promises ---------- */
.pp-prom{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-4);text-align:center}
.pp-prom__i{display:grid;justify-items:center;align-content:start;gap:var(--sp-2);font:700 var(--fs-body)/1.4 var(--font);color:var(--ink);text-wrap:balance}
.pp-prom__i .disc{background:#fff;color:var(--green);box-shadow:var(--sh-1)}

/* ---------- audit: Example report ---------- */
.pp-rep__site{margin-left:auto;font:600 calc(var(--fs-sm) * .85)/1 var(--mono);color:var(--ink-3)}
.pp-rep{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.pp-rep__sec{padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:#fff}
.pp-rep__k{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:800}
.mock .pp-rep__k .ico{color:var(--run-icon)}
.pp-rep__checks{display:flex;flex-wrap:wrap;gap:6px}
.pp-rep__checks li{padding:3px 10px;border-radius:999px;background:var(--run-tint);font-size:var(--fs-sm);font-weight:700;color:var(--run-ink)}
.pp-rep__bars{display:grid;gap:5px}
.pp-rep__bars li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:700;color:var(--ink-3)}
.pp-rep__bars li.is-you{color:var(--ink)}
.pp-rep__bar{display:block;width:var(--w);height:10px;border-radius:3px;background:var(--rule-2)}
.pp-rep__bar.is-you{background:var(--run-dot)}
.pp-rep__fix{display:grid;gap:6px}
.pp-rep__fix li{display:flex;align-items:center;gap:8px}
.pp-rep__fix li::before{content:"";flex:none;width:14px;height:14px;border:1.5px solid var(--ink);border-radius:3px}
.pp-rep__fix li i{flex:1;max-width:var(--fw,70%);height:8px;border-radius:4px;background:var(--rule)}
.pp-rep__fix li:nth-child(2) i{--fw:56%}.pp-rep__fix li:nth-child(3) i{--fw:42%}
.pg-free-seo-audit .klist__i{color:var(--run-icon)}
.pp-get__go{margin-top:var(--sp-3)}
.pp-get__go .go{color:var(--green-ink)}

/* ---------- audit: three-node track ---------- */
.pp-track{position:relative;max-width:1000px;margin:0 auto}
.pp-track__line{position:absolute;left:calc((100% - 2 * var(--sp-5)) / 6);right:calc((100% - 2 * var(--sp-5)) / 6);top:26px;height:3px;border-radius:2px;background:var(--run-dot)}
.pp-track__list{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}
.pp-track__step{display:grid;justify-items:center;align-content:start;gap:var(--sp-2);text-align:center}
.pp-track__n{position:relative;z-index:1;display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:var(--run-tint);color:var(--run-ink);
  font:800 var(--fs-body)/1 var(--font);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 2px var(--run-dot),0 0 0 8px var(--cream)}
.pp-track__t{display:inline-flex;align-items:center;gap:8px;margin-top:var(--sp-1);font:800 var(--fs-h3)/1.15 var(--font);letter-spacing:-.02em}
.pp-track__t .ico{color:var(--run-icon)}
.pp-track__p{max-width:26ch;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2)}

/* ---------- funding: read this first (hero) ---------- */
.pp-first__card{padding:var(--sp-4);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-2)}
.pp-first__h{display:flex;align-items:center;gap:var(--sp-2);font:800 var(--fs-lead)/1.2 var(--font);color:var(--ink)}
.pp-first__list{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}
.pp-first__list li{display:flex;align-items:flex-start;gap:var(--sp-2);font:700 var(--fs-body)/1.4 var(--font);color:var(--ink)}
.pp-first__list .ico{margin-top:2px;color:var(--ink-2)}
.pp-first__list li:last-child .ico{color:var(--green)}
.pp-first__foot{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--rule);font-size:var(--fs-sm);line-height:1.5;color:var(--ink-3)}

/* ---------- funding: the guide (kit article) ---------- */
.pp-guide{padding-top:var(--sp-6)}
.kprose .pp-fit ul,.kprose .pp-src ul,.kprose ol.pp-steps{padding-left:0;list-style:none}
.kprose .pp-fit li+li,.kprose .pp-src li+li{margin-top:0}
.pp-fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}
.pp-fit__col{padding:var(--sp-3);border-radius:var(--r-l);background:var(--c-soft)}
.pp-fit__col.is-neutral{background:var(--cream)}
.pp-fit__col.is-neutral .disc--solid{background:var(--ink-2);color:var(--paper)}
.pp-fit__h{display:flex;align-items:center;gap:var(--sp-1);font:800 var(--fs-body)/1.3 var(--font);color:var(--ink)}
.pp-fit ul{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.pp-fit__i{display:flex;align-items:center;gap:var(--sp-1);font-weight:650;color:var(--ink)}
.pp-fit__i .ico{color:var(--c-icon)}
.pp-src{display:grid;gap:var(--sp-4);margin-top:var(--sp-3)}
.pp-src__h{display:flex;align-items:center;gap:var(--sp-1);margin:0 0 var(--sp-1)!important;font:800 var(--fs-body)/1.3 var(--font)!important;color:var(--ink)}
.pp-src__h .disc{background:var(--start-tint);color:var(--start-icon)}
.kprose a.pp-src__a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--sp-2);align-items:center;min-height:56px;padding:var(--sp-1) 2px;
  box-shadow:0 1px 0 var(--rule);font-weight:400;color:var(--ink);text-decoration:none}
.pp-src__list li:first-child .pp-src__a{box-shadow:0 -1px 0 var(--rule),0 1px 0 var(--rule)}
.pp-src__t{font-weight:750;line-height:1.3}
.pp-src__p{grid-column:1;font-size:var(--fs-sm);line-height:1.4;color:var(--ink-3)}
.pp-src__d{grid-column:2;grid-row:1/3;font:650 var(--fs-sm)/1.2 var(--font);color:var(--green);overflow-wrap:anywhere;text-align:right}
.pp-src__d::after{content:" \2197"}
.kprose a.pp-src__a:hover .pp-src__t{color:var(--green-ink);text-decoration:underline;text-underline-offset:3px}
.pp-reviewed{display:flex;align-items:flex-start;gap:8px;margin-top:var(--sp-3)!important;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-3)}
.pp-reviewed .ico{margin-top:1px;flex:none}
.kprose ol.pp-steps{display:grid;gap:var(--sp-2);counter-reset:pps}
.kprose ol.pp-steps li{position:relative;min-height:34px;margin:0;padding:4px 0 0 calc(34px + var(--sp-2));counter-increment:pps}
.kprose ol.pp-steps li::before{content:counter(pps);position:absolute;left:0;top:0;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:var(--start-tint);color:var(--start-ink);font:800 var(--fs-sm)/1 var(--font)}

/* ---------- careers ---------- */
.pp-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);max-width:1000px;margin:0 auto;text-align:center}
.pp-val{display:grid;justify-items:center;align-content:start;gap:var(--sp-2);font:800 var(--fs-lead)/1.25 var(--font);text-wrap:balance}
.pp-val .disc{background:var(--start-tint);color:var(--start-icon)}
.pp-roles{display:grid;gap:var(--sp-5)}
.pp-role{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-1)}
.pp-role::before{content:"";position:absolute;left:var(--sp-5);top:0;width:89px;height:4px;border-radius:0 0 2px 2px;background:var(--c)}
.pp-role__t{font:800 var(--fs-h3)/1.15 var(--font);letter-spacing:-.02em}
.pp-role__meta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin-top:var(--sp-2)}
.pp-role__m{display:inline-flex;align-items:center;gap:6px;font:650 var(--fs-sm)/1.35 var(--font);color:var(--ink-2)}
.pp-role__m .ico{color:var(--c-icon)}
.pp-role__sum{margin-top:var(--sp-3);font-size:var(--fs-body);line-height:var(--lh);color:var(--ink-2);text-wrap:pretty}
.pp-role__pay{display:flex;align-items:flex-start;gap:8px;margin-top:var(--sp-2);font:650 var(--fs-sm)/1.45 var(--font);color:var(--ink-2)}
.pp-role__pay .ico{flex:none;margin-top:1px;color:var(--green)}
.pp-role__act{margin-top:var(--sp-4)}
.pp-role__body{align-self:start;box-shadow:0 -1px 0 var(--rule)}
.pp-role__ul{display:grid;gap:6px;padding:0 var(--sp-4) var(--sp-3) 1.2em;list-style:disc;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2)}
ol.pp-role__ul{list-style:decimal}
.pp-role__ul li::marker{color:var(--c)}
.pp-roles__note{margin-top:var(--sp-4);text-align:center;font-size:var(--fs-body);color:var(--ink-2)}
.pp-roles__note a{font-weight:700;color:var(--green-ink);overflow-wrap:anywhere}
.pg-careers .kcta .sec-line{overflow-wrap:anywhere}

/* ---------- tablets ---------- */
@media (max-width:980px){
  .pp-doors{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .pp-setup__card{max-width:400px}
  .pp-setup__foot{margin-left:calc(55px + var(--sp-3))}
  .pp-own__list{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--sp-4)}
  .pp-pledge{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .pp-prom{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--sp-5)}
  .pp-role{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .pp-syl__head{display:none}
  .pp-syl__row{grid-template-columns:34px minmax(0,1fr);row-gap:var(--sp-1)}
  .pp-syl__learn,.pp-syl__keep{grid-column:2}
  .pp-syl__keep .pp-syl__lab{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap;flex:none;font-weight:800;color:var(--learn-ink)}
  .pp-syl__keep .pp-syl__lab::after{content:":"}
  .pp-syl__keep{display:block}
  .pp-syl__keep .ico{display:none}
  .pp-syl__keep>span:last-child{margin-left:.35em}
}

/* ---------- phones (<= 760px): one column, open rows, big type, centred blocks ---------- */
@media (max-width:760px){
  .pp-h1l h1{font-size:clamp(2.25rem,10.4vw,var(--fs-h1));max-width:none}
  .pp-art{width:100%;max-width:420px}
  .pp-mock{transform:none}
  .pp-mockwrap{max-width:none}
  .pg-careers .ksub__art--pic{width:min(64vw,260px)}
  /* doors: the featured door keeps its soft ground; the others are open rows */
  .pp-door--main{padding:var(--sp-4) var(--sp-3);gap:var(--sp-2)}
  .pp-door--main .disc--xl{--d:55}
  .pp-door--main .disc--xl .ico{--n:28}
  .pp-door--main .pp-door__p{font-size:var(--fs-body)}
  .pp-door{gap:var(--sp-2);min-height:4.5rem;padding:var(--sp-2) 2px}
  .pp-door:not(.pp-door--main) .pp-door__t{font-size:var(--fs-body)}
  .pp-setup__card{max-width:none;margin-top:var(--sp-3)}
  .pp-setup__foot{margin:var(--sp-4) 0 0;font-size:var(--fs-body)}
  .pp-own__list{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:var(--sp-3) var(--sp-2)}
  .pp-own__line{display:flex;justify-content:center;margin-top:var(--sp-4);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-l);font-size:var(--fs-body)}
  .pp-note{grid-template-columns:auto minmax(0,1fr);margin-top:var(--sp-5);padding:var(--sp-3);border-radius:var(--r-l)}
  .pp-note>div:last-child{grid-column:1/-1}
  .pp-note__t{font-size:var(--fs-body)}
  .pp-pledge__big{font-size:var(--fs-lead)}
  .pp-pledge__side{padding-left:var(--sp-3)}
  .pp-pledge__i{font-size:var(--fs-body)}
  .pp-duo{grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
  .pp-duo__h{font-size:var(--fs-body)}
  .pp-syl__name{font-size:var(--fs-body)}
  .pp-scales__key{display:none}
  .pp-scale{grid-template-columns:minmax(0,1fr);row-gap:var(--sp-2);padding:var(--sp-3) 0}
  .pp-scale__lab b{font-size:var(--fs-body)}
  /* ways: open rows with the lane bar on the left (no columns, no boxes) */
  .pp-ways{grid-template-columns:minmax(0,1fr)}
  .pp-way{padding:var(--sp-3) 0 var(--sp-3) var(--sp-3);gap:var(--sp-1)}
  .pp-way+.pp-way{box-shadow:0 -1px 0 var(--rule)}
  .pp-way::before{left:0;top:var(--sp-3);bottom:var(--sp-3);width:4px;height:auto}
  .pp-way__t{font-size:var(--fs-lead)}
  .pp-way .disc{display:none}
  /* promises: open rows, disc left */
  .pp-prom{grid-template-columns:minmax(0,1fr);gap:0;text-align:left}
  .pp-prom__i{grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:start;min-height:4.5rem;padding:var(--sp-1) 0;box-shadow:0 1px 0 var(--rule);text-wrap:pretty}
  /* track: vertical, the line runs down the node column */
  .pp-track__list{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .pp-track__line{left:26px;right:auto;top:28px;bottom:28px;width:3px;height:auto}
  .pp-track__step{grid-template-columns:55px minmax(0,1fr);justify-items:start;column-gap:var(--sp-3);row-gap:2px;text-align:left}
  .pp-track__n{grid-row:1/3}
  .pp-track__t{margin-top:10px;font-size:var(--fs-lead)}
  .pp-track__p{grid-column:2}
  .pp-fit{grid-template-columns:minmax(0,1fr)}
  .kprose a.pp-src__a{grid-template-columns:minmax(0,1fr);padding:var(--sp-2) 2px}
  .pp-src__d{grid-column:1;grid-row:auto;margin-top:2px;text-align:left}
  .pp-vals{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:var(--sp-4) var(--sp-2)}
  .pp-val{font-size:var(--fs-body)}
  .pp-val .disc--xl{--d:89}
  /* roles: open blocks on phones (round 5: fewer boxes), the lane bar stays */
  .pp-roles{gap:var(--sp-6)}
  .pp-role{padding:var(--sp-4) 0 0;border-radius:0;background:none;box-shadow:none}
  .pp-role::before{left:0}
  .pp-role__act .btn{width:100%}
  .pp-role__ul{padding-right:var(--sp-1)}
  .pp-after .btn{width:100%}
  .pp-guide .ktoc a{padding:12px 0 12px var(--sp-2);font-size:var(--fs-body)}
  /* 200% text at 320px (WCAG 1.4.4 / 1.4.10): long words break instead of pushing the page sideways */
  body.pp main{overflow-wrap:anywhere}
  .pp .ksplit__vis{padding:var(--sp-3) var(--sp-2)}
  .pp-rules li,.pp-mrow{flex-wrap:wrap}
  .pp-rep__site{margin-left:0;flex-basis:100%;overflow-wrap:anywhere}
  .pp-scope li{grid-template-columns:auto minmax(0,1fr)}
  .pp-scope li>i{grid-column:1/-1}
  .pp-src__t,.pp-door__t,.pp-way__t,.pp-role__t,.pp-syl__name{overflow-wrap:anywhere}
}
@media (prefers-reduced-motion:reduce){
  .pp-door:hover .pp-door__arr,.pp-door--main:hover .pp-door__go span[aria-hidden]{transform:none}
  .pp-mrow,.pp-st>span{transition:none}
}
