@charset "utf-8";
/* Machina Institute. Style 03, Editorial.
   Light theme, committed. Cream ground, near-black ink, one editorial red.
   Wordmark: the text lives in .wordmark on index.html and path.html. */

:root{
  --serif: Charter,"Bitstream Charter","Iowan Old Style","Sitka Text",Georgia,"Times New Roman",serif;
  --sans: ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --paper:#FBF9F5;
  --paper2:#F2EFE7;
  --ink:#1A1A1A;
  --ink2:#57534A;
  --rule:#DAD4C8;
  --rule2:#B9B2A4;
  --ui:#8A8377;
  --ink3:#6E6860;
  --red:#B22222;
  --red2:#8C1A1A;
  --tab:64px;
  color-scheme: light;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:16.5px;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:1px}

.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.wrap{max-width:39rem;margin:0 auto;padding:0 16px}
.wrap-wide{max-width:52rem;margin:0 auto;padding:0 16px}

/* ---------- shared type ---------- */
.kicker{
  font-family:var(--sans);font-size:12px;line-height:1.4;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink2);margin:0 0 10px;
}
.kicker b{color:var(--red);font-weight:700;letter-spacing:.1em}
.sec-h{
  font-size:clamp(21px,5.4vw,31px);line-height:1.18;font-weight:600;
  letter-spacing:-.012em;text-wrap:balance;
}
.lede{margin-top:14px;color:var(--ink)}
.note{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--ink2)}
.sec{padding:34px 0;border-top:1px solid var(--rule)}
.sec-first{border-top:0}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--ink);background:var(--paper)}
.masthead .wrap-wide{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:space-between;gap:6px}
.wordmark{
  font-family:var(--serif);font-size:10px;line-height:1.16;letter-spacing:.15em;
  text-transform:uppercase;text-decoration:none;display:flex;flex-direction:column;
  justify-content:center;font-weight:600;flex:0 0 auto;width:6.3em;
}
.mast-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;font-family:var(--sans);min-width:0}
.mast-nav a{
  display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;
  font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink2);
  padding:0 2px;min-width:44px;min-height:44px;
}
.mast-nav a:hover{color:var(--red)}
.mast-meta{display:flex;align-items:center;text-align:right;font-family:var(--sans);font-size:12px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}

@media (max-width:479px){
  .masthead .wrap-wide{flex-wrap:wrap;padding-top:5px}
  .wordmark{flex-direction:row;align-items:center;width:auto;font-size:11.5px;letter-spacing:.14em;
    white-space:nowrap;padding-bottom:5px}
  .mast-nav{width:100%;justify-content:space-between;border-top:1px solid var(--rule)}
  .mast-nav a{padding:0 2px;min-height:42px}
  .masthead .mast-meta{margin-left:auto;padding-bottom:5px}
}

/* ---------- hero ---------- */
.hero{padding:6px 0 20px;border-bottom:1px solid var(--rule)}
.hero-h{
  font-size:clamp(18.6px,4.92vw,44px);line-height:1.14;font-weight:600;
  letter-spacing:-.018em;text-wrap:balance;
}
.hero-sub{
  margin-top:6px;font-size:clamp(14.4px,3.8vw,19px);line-height:1.45;color:var(--ink2);
}
.dateline{margin-top:6px;font-family:var(--sans);font-size:12px;line-height:1.3;color:var(--ink2)}
.dateline .free{color:var(--red);font-weight:600;letter-spacing:.01em}
.dateline p{margin:0}
.seats{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px}
.seats b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.bar{flex:0 0 62px;height:5px;background:var(--paper2);border:1px solid var(--rule2)}
.bar i{display:block;height:100%;background:var(--red)}
.signup{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.signup input{
  flex:1 1 7rem;min-width:0;font-family:var(--sans);font-size:15px;color:var(--ink);
  background:#fff;border:1px solid var(--ui);border-radius:0;padding:0 10px;height:44px;
}
.signup input::placeholder{color:var(--ink3)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;
  min-height:44px;padding:0 14px;border:1px solid var(--red);border-radius:0;
  background:var(--red);color:#fff;text-decoration:none;cursor:pointer;white-space:nowrap;
}
.btn:hover{background:var(--red2);border-color:var(--red2)}
.btn-ghost{background:transparent;color:var(--red);border-color:var(--red)}
.btn-ghost:hover{background:var(--red);color:#fff}
.microcopy{margin-top:8px;font-family:var(--sans);font-size:12px;color:var(--ink2)}

/* ---------- proof strip ---------- */
.proof{border-bottom:1px solid var(--ink);background:var(--paper2)}
.proof ul{display:grid;grid-template-columns:1fr 1fr;padding:14px 0 16px}
.proof li{padding:6px 10px 6px 0;border-right:1px solid var(--rule)}
.proof li:nth-child(2n){border-right:0;padding-left:10px}
.proof li:nth-child(5){grid-column:1 / -1;border-right:0;padding-left:0;
  border-top:1px solid var(--rule);margin-top:6px;padding-top:8px}
.proof-n{display:block;font-size:26px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums}
.proof-l{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink2);margin-top:4px}

/* ---------- differentiator ---------- */
.raised::first-letter{
  float:left;font-family:var(--serif);font-size:3.1em;line-height:.8;font-weight:600;
  color:var(--red);padding:.06em .1em 0 0;
}
.diff-rule{width:64px;height:2px;background:var(--red);margin-top:20px}

/* ---------- anatomy ---------- */
.anatomy{margin-top:22px;border-top:1px solid var(--ink)}
.ana{padding:14px 0 16px;border-bottom:1px solid var(--rule);display:grid;gap:3px}
.ana-min{
  font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--red);font-weight:600;
}
.ana-min b{font-size:14px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.ana-name{font-size:19px;line-height:1.25;font-weight:600}
.ana-n{color:var(--ink3);font-variant-numeric:tabular-nums;margin-right:.4em}
.ana-desc{font-size:15.5px;line-height:1.55;color:var(--ink2)}
.ana-total{
  flex-wrap:wrap;padding:12px 0;font-family:var(--sans);font-size:12px;letter-spacing:.13em;
  text-transform:uppercase;display:flex;justify-content:space-between;
}
.ana-total b{color:var(--red)}

/* ---------- courses, contents page ---------- */
.toc{margin-top:20px;border-top:1px solid var(--ink)}
.toc li{padding:11px 0 12px;border-bottom:1px solid var(--rule)}
.toc-line{display:flex;align-items:baseline;gap:0 7px;font-size:16px;line-height:1.3}
.toc-n{font-family:var(--sans);font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums;
  letter-spacing:.06em;flex:0 0 auto}
.toc-t{font-weight:600;min-width:0}
.toc-dots{flex:1 1 14px;min-width:10px;border-bottom:1px dotted var(--rule2);
  transform:translateY(-.26em);height:0}
.toc-h{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--ink2)}
.toc-meta{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink2);margin-top:4px}
.flagship{
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);font-weight:700;
}
.toc li.is-flagship{border-left:2px solid var(--red);padding-left:10px;margin-left:-12px}
.toc-note{margin-top:14px}

/* ---------- certificate ---------- */
.pull{margin:22px 0 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:20px 0}
.pull blockquote{margin:0}
.pull p{font-size:clamp(26px,7.2vw,46px);line-height:1.06;font-weight:600;letter-spacing:-.024em;
  text-indent:-.05em}
.pull .q{color:var(--red)}
.pull figcaption{margin-top:12px;font-family:var(--sans);font-size:12px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink2)}
.after-pull{margin-top:16px}

/* ---------- access, audience ---------- */
.ruled{margin-top:18px;border-top:1px solid var(--ink)}
.ruled li{padding:11px 0;border-bottom:1px solid var(--rule);display:grid;
  grid-template-columns:22px 1fr;gap:10px;font-size:15.5px;line-height:1.55}
.ruled svg{width:15px;height:15px;margin-top:5px;color:var(--red)}
.ruled.is-not svg{color:var(--ink2)}
.aud{margin-top:26px}
.aud h3{font-size:19px;font-weight:600;line-height:1.25}
.aud-not{margin-top:30px}

/* ---------- final cta, footer ---------- */
.final{background:var(--ink);color:var(--paper);padding:34px 0 36px}
.final .sec-h{color:var(--paper)}
.final .sub{margin-top:10px;font-family:var(--sans);font-size:13.5px;color:#D9D2C6}
.final .sub b{color:#fff}
.final .signup{margin-top:16px}
.final .signup input{background:#141414;color:#fff;border-color:#6E675C}
.final .signup input::placeholder{color:#9A9389}
.final .conditions{margin-top:16px;font-family:var(--sans);font-size:12px;line-height:1.6;color:#C8C1B5;
  border-top:1px solid #3A3733;padding-top:14px}
.site-foot{padding:22px 0 96px;font-family:var(--sans);font-size:12px;line-height:1.6;color:var(--ink2)}
.site-foot .wordmark{font-size:11px;margin-bottom:6px}

/* ---------- sticky cta ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);
  border-top:1px solid var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;
  padding:8px 16px calc(8px + env(safe-area-inset-bottom));
}
.sticky p{font-family:var(--sans);font-size:12px;line-height:1.3;color:var(--ink2);flex:1 1 auto}
.sticky b{display:block;color:var(--ink);font-size:13px;font-weight:600}
.sticky .btn{flex:0 0 auto}

/* ================= path.html ================= */
.skip{
  position:absolute;left:-9999px;top:0;background:var(--red);color:#fff;font-family:var(--sans);
  font-size:13px;padding:10px 14px;z-index:99;text-decoration:none;
}
.skip:focus{left:0}
.page-path{padding-bottom:calc(var(--tab) + 24px)}
.ph{border-bottom:1px solid var(--ink);padding:10px 0 12px}
.ph-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.avatar{
  flex:0 0 auto;width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;
  letter-spacing:.04em;
}
.ph-who{min-width:0}
.ph-name{overflow-wrap:break-word;font-size:15.5px;font-weight:600;line-height:1.25;letter-spacing:-.01em}
.ph-meta{font-family:var(--sans);font-size:12px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink2);margin-top:2px}
.cadence{margin-top:11px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}
.cadence-label{font-family:var(--sans);font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink2)}
.cadence-label b{color:var(--ink)}
.cadence-bar{display:flex;gap:4px;flex:0 0 auto}
.cadence-bar i{display:block;width:22px;height:6px;border:1px solid var(--rule2);background:var(--paper)}
.cadence-bar i.on{background:var(--red);border-color:var(--red)}

/* resume card */
.resume{margin:16px 0 0;border:2px solid var(--ink);background:#fff}
.resume-top{height:5px;background:var(--red)}
.resume-in{padding:14px 14px 16px}
.resume-kick{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--red);font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.resume-kick svg{width:13px;height:13px}
.resume-t{overflow-wrap:break-word;font-size:20px;line-height:1.2;font-weight:600;margin-top:7px;letter-spacing:-.012em}
.resume-num{font-family:var(--sans);font-size:12px;letter-spacing:.08em;color:var(--ink2);
  text-transform:uppercase;margin-top:2px}
.steps{display:flex;gap:4px;margin-top:12px}
.steps i{flex:1 1 0;height:7px;border:1px solid var(--rule2);background:var(--paper)}
.steps i.on{background:var(--ink);border-color:var(--ink)}
.resume-meta{font-family:var(--sans);font-size:12.5px;color:var(--ink2);margin-top:7px}
.resume .btn{width:100%;margin-top:12px;min-height:50px;font-size:15px}

/* copy block */
.copy{margin-top:22px;border-top:1px solid var(--ink);padding-top:14px}
.copy-h{font-family:var(--sans);font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink2)}
.copy-pre{
  margin-top:9px;background:var(--paper2);border:1px solid var(--rule2);padding:11px 12px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--ink);
  -webkit-user-select:text;user-select:text;
}
.copy-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:9px}
.copy-btn{min-height:44px;padding:0 14px;font-size:13px}
.copy-live{font-family:var(--sans);font-size:12px;color:var(--red);font-weight:600}

/* path list */
.path{margin-top:26px}
.path-h{font-size:20px;font-weight:600;line-height:1.25}
.path-note{font-family:var(--sans);font-size:12.5px;color:var(--ink2);margin-top:4px}
.nodes{margin-top:14px;border-top:1px solid var(--ink)}
.node{position:relative;padding:0 0 0 2.9em;min-height:56px;scroll-margin-top:14px}
.node::before{content:"";position:absolute;left:1.02em;top:0;bottom:0;width:1px;background:var(--rule2)}
.node:first-child::before{top:.85em}
.node:last-child::before{bottom:auto;height:1.6em}
.node-in{padding:10px 0 12px;border-bottom:1px solid var(--rule);min-height:56px;min-width:0;
  overflow-wrap:break-word}
.marker{
  position:absolute;left:.12em;top:.72em;width:1.8em;height:1.8em;border-radius:50%;
  background:var(--paper);border:1px solid var(--ink);display:flex;align-items:center;
  justify-content:center;color:var(--ink);
}
.marker svg{width:.92em;height:.92em}
.node-kick{font-family:var(--sans);font-size:12px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink2);font-variant-numeric:tabular-nums}
.node-t{font-size:16.5px;line-height:1.3;font-weight:600;letter-spacing:-.008em;margin-top:1px;
  overflow-wrap:break-word}
.node-t a{display:block;padding:10px 0;min-height:44px;text-decoration:none;
  text-decoration-color:var(--rule2);margin:-8px 0 -10px}
.node-t a:hover{text-decoration:underline}
.node-t.plain{padding:2px 0 3px;color:var(--ink2);font-weight:600}
.status{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:7px;
  font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink2)}
.chip{
  flex:0 0 auto;max-width:100%;overflow-wrap:anywhere;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  border:1px solid var(--ui);color:var(--ink);padding:2px 5px;
}
.chip.red{border-color:var(--red);color:var(--red)}
.chip.solid{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.outcome{margin-top:8px;font-size:14.5px;line-height:1.5;color:var(--ink);
  border-left:2px solid var(--red);padding-left:10px}

/* node variants */
.node--module{padding-left:0;min-height:0}
.node--module::before{display:none}
.node--module .node-in{border-bottom:2px solid var(--ink);background:var(--paper2);
  margin-top:16px;padding:12px 12px 13px}
.mod-label{font-family:var(--sans);font-size:12px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--red);font-weight:700}
.mod-title{overflow-wrap:break-word;font-size:18px;line-height:1.22;font-weight:600;margin-top:3px;letter-spacing:-.012em}
.node--day5 .node-in{background:var(--paper2);border:1px solid var(--rule2);border-left:3px solid var(--ink);
  padding:11px 12px;margin:2px 0}
.node--day5 .marker{border-width:2px}
.node--cert .node-in{border:1px solid var(--ink);padding:12px;margin:2px 0}
.node--proj .node-in,.node--peer .node-in,.node--deliv .node-in{border-left:2px solid var(--rule2);padding-left:11px}
.node--today{scroll-margin-top:14px}
.node--today .node-in{border-bottom:0}
.node--today{background:linear-gradient(to right,rgba(178,34,34,.05),rgba(178,34,34,0) 70%)}
.node--today .marker{border:2px solid var(--red);color:var(--red)}
.node--today::before{background:var(--red)}
.node--cohort{padding-left:0;min-height:0}
.node--cohort::before{display:none}
.node--cohort .node-in{border-bottom:0;padding:0;margin:14px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.node--cohort .rule{flex:1 1 auto;height:1px;background:var(--red)}
.node--cohort span.lbl{max-width:100%;overflow-wrap:anywhere;font-family:var(--sans);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);font-weight:700;flex:0 0 auto}
.is-locked .marker{border-color:var(--ui);color:var(--ui);border-style:dashed}
.is-locked .node-kick{color:var(--ink3)}
.is-skipped .node-t.plain{text-decoration:line-through;text-decoration-color:var(--ui)}
.is-locked .node-t.plain{font-style:italic;font-weight:400;color:var(--ink2)}
.is-locked .node-in{padding-top:12px;padding-bottom:14px}

/* jump + tabs */
.jump{
  position:fixed;right:14px;bottom:calc(var(--tab) + 14px + env(safe-area-inset-bottom));z-index:41;
  display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;
  background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:600;
  letter-spacing:.03em;text-decoration:none;border:1px solid var(--ink);
  box-shadow:0 2px 0 rgba(26,26,26,.18);
}
.jump svg{width:13px;height:13px}
.jump:hover{background:var(--red);border-color:var(--red)}
.tabs{
  position:fixed;left:0;right:0;bottom:0;z-index:42;background:var(--paper);
  border-top:1px solid var(--ink);padding-bottom:env(safe-area-inset-bottom);
}
.tabs ul{display:flex}
.tabs li{flex:1 1 0}
.tabs a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:var(--tab);padding:6px 2px;text-decoration:none;color:var(--ink2);
  font-family:var(--sans);font-size:12px;letter-spacing:.03em;
}
.tabs svg{width:19px;height:19px;flex:0 0 auto}
.tabs span{overflow-wrap:anywhere;text-align:center}
.tabs a[aria-current="page"]{color:var(--red);box-shadow:inset 0 3px 0 var(--red)}

/* ---------- wider screens ---------- */
@media (min-width:560px){
  body{font-size:17.5px}
  .wordmark{flex-direction:row;align-items:center;width:auto;font-size:13px;letter-spacing:.13em;
    white-space:nowrap}
  .mast-nav a{font-size:11px;letter-spacing:.06em;padding:0 9px}
  .mast-meta{font-size:11px;letter-spacing:.09em}
  .hero{padding:26px 0 30px}
  .hero-sub{margin-top:12px;max-width:40ch}
  .dateline{margin-top:16px;font-size:12.5px}
  .signup{margin-top:16px;max-width:30rem}
  .proof ul{grid-template-columns:repeat(5,1fr)}
  .proof li{border-right:1px solid var(--rule);padding:6px 8px}
  .proof li:nth-child(2n){padding-left:8px;border-right:1px solid var(--rule)}
  .proof li:first-child{padding-left:0}
  .proof li:nth-child(5){grid-column:auto;border-right:0;border-top:0;margin-top:0;padding-top:6px}
  .sec{padding:52px 0}
  .anatomy{margin-top:30px}
  .resume-in{padding:20px}
  .resume-t{font-size:24px}
  .resume .btn{width:auto;min-width:15rem}
  .node-t{font-size:18px}
  .tabs a{font-size:12.5px}
}
@media (min-width:900px){
  .wrap,.wrap-wide{max-width:46rem}
  .hero-h{max-width:36rem}
  .hero-sub,.lede,.note,.sec-h,.ana-desc,.ruled li,.aud h3,.final .sub,.final .conditions,
  .toc-meta,.site-foot p{max-width:34rem}
  .pull p{max-width:38rem}
  .ana{grid-template-columns:6rem 1fr;column-gap:2rem;align-items:baseline;padding:18px 0 20px}
  .ana-min{grid-column:1;grid-row:1;text-align:right;padding-top:4px}
  .ana-name{grid-column:2;grid-row:1}
  .ana-desc{grid-column:2;grid-row:2}
  .ana-total{padding:16px 0}
  .sticky{display:none}
  .site-foot{padding-bottom:40px}
  .toc-line{font-size:19px}
  .path{max-width:44rem}
}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .btn,.jump,.mast-nav a{transition:background-color .16s ease,color .16s ease,border-color .16s ease}
}
@media print{.sticky,.tabs,.jump{display:none}}
