/* ============================================================
   Calmistry Journey — profile, stack hub, consolidated report.
   Shares the landing's azure→indigo instrument palette so the whole
   product reads as one. Self-contained (no dependency on app.css).
   ============================================================ */
:root{
  /* alias rose accents -> journey's azure/indigo so the shared report layer themes correctly */
  --rose:var(--azure,#019df8); --rose-deep:var(--indigo-deep,#2c3da6);
  --rose-wash:color-mix(in srgb,var(--azure,#019df8) 10%,transparent);
  --panel-2:#f7faff;
  --bg:#f4f7fc; --bg-2:#e9f0f9; --panel:#ffffff;
  --ink:#16203b; --ink-2:#46506e; --muted:#838da8;
  --line:rgba(22,32,59,.10); --line-2:rgba(22,32,59,.17);
  --azure:#019df8; --azure-ink:#0b82d6; --indigo:#3850cd; --indigo-deep:#2c3da6;
  --grad:linear-gradient(100deg,var(--azure) 0%,var(--indigo) 100%);
  --azure-wash:color-mix(in srgb,var(--azure) 10%,transparent);
  --indigo-wash:color-mix(in srgb,var(--indigo) 9%,transparent);
  --warn:#d98a63; --warn-deep:#bd6a44;
  --ok:#16a777;
  --shadow:0 20px 50px -28px rgba(22,32,59,.30);
  --shadow-sm:0 10px 30px -18px rgba(22,32,59,.25);
  --ff-disp:"Fraunces",Georgia,serif; --ff-body:"IBM Plex Sans",system-ui,sans-serif; --ff-mono:"IBM Plex Mono",ui-monospace,monospace;
  --maxw:1080px;
}
/* slot accents */
.s-source{--ac:#019df8}.s-processing{--ac:#8b7bf0}.s-coping{--ac:#14b88a}.s-body{--ac:#e07a5f}.s-regulation{--ac:#4f72c4}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ff-body);color:var(--ink-2);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}
::selection{background:var(--azure);color:#fff}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--ff-disp);font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.bgfx{position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(90% 60% at 50% -8%,color-mix(in srgb,var(--azure) 10%,transparent),transparent 60%),
             radial-gradient(70% 50% at 88% 4%,color-mix(in srgb,var(--indigo) 8%,transparent),transparent 60%),var(--bg)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.kicker{font-family:var(--ff-mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--indigo-deep);display:inline-flex;align-items:center;gap:.7em}
.kicker::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--grad)}
.kicker.warn{color:var(--warn-deep)}.kicker.warn::before{background:var(--warn)}
.mono{font-family:var(--ff-mono)}

/* nav */
.jnav{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:16px;
  padding:14px clamp(20px,4vw,40px);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:.55em;font-family:var(--ff-disp);font-weight:600;font-size:1.25rem;color:var(--ink);flex:0 0 auto}
.logo svg{width:26px;height:26px}
.jnav .right{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  padding-left:14px;margin-left:2px;border-left:1px solid var(--line-2)}
.jnav-nav{margin-left:auto;display:flex;align-items:center;gap:clamp(14px,2.4vw,26px);flex:0 0 auto}
.jnl{font-family:var(--ff-mono);font-size:.74rem;font-weight:500;letter-spacing:.04em;color:var(--ink-2);
  white-space:nowrap;transition:color .18s;position:relative}
.jnl:hover{color:var(--indigo-deep)}
.jnl.on{color:var(--indigo-deep)}
.jnl.on::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:var(--grad)}
.jnav-cta{padding:.6em 1.1em!important;font-size:.74rem}
@media(max-width:640px){.jnav .right{display:none}.jnl{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--ff-mono);font-size:.78rem;font-weight:500;letter-spacing:.04em;
  padding:.95em 1.5em;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:transform .18s,box-shadow .25s,border-color .2s}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 28px -12px color-mix(in srgb,var(--indigo) 55%,transparent)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--shadow-sm)}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--azure)}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}
.btn[disabled]{opacity:.5;pointer-events:none}

.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(24px,4vw,40px)}

/* ---- begin (profile) ---- */
.begin{min-height:calc(100vh - 64px);display:flex;align-items:center;padding:48px 0}
.begin .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,60px);align-items:center}
@media(max-width:820px){.begin .grid{grid-template-columns:1fr;gap:32px}}
.begin h1{font-size:clamp(2rem,4.4vw,3.1rem);margin:1rem 0 .6rem}
.begin .lead{font-size:1.08rem;max-width:46ch;color:var(--ink-2)}
.begin .why{margin-top:1.6rem;display:grid;gap:.7rem}
.begin .why li{list-style:none;display:flex;gap:.6em;align-items:flex-start;font-size:.96rem}
.begin .why .ic{color:var(--azure-ink);font-family:var(--ff-mono);flex:0 0 auto}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo-deep);margin-bottom:.45em}
.field label .opt{color:var(--muted);text-transform:none;letter-spacing:0}
.field input,.field select{width:100%;font-family:var(--ff-body);font-size:1rem;color:var(--ink);background:var(--bg-2);
  border:1px solid var(--line-2);border-radius:11px;padding:.8em .9em;transition:border-color .15s,background .15s}
.field input:focus,.field select:focus{outline:none;border-color:var(--azure);background:#fff}
.field .err{color:var(--warn-deep);font-size:.8rem;margin-top:.35em;font-family:var(--ff-mono)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:480px){.row2{grid-template-columns:1fr}}
.consent{font-size:.78rem;color:var(--muted);margin-top:.6em;line-height:1.5}

/* ---- hub (the stack) ---- */
.hub{padding:40px 0 80px}
.hub-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:1.8rem}
.hub-head h1{font-size:clamp(1.9rem,3.8vw,2.7rem)}
.hub-prog{min-width:200px}
.hub-prog .lab{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:.4em}
.hub-prog .track{height:7px;border-radius:5px;background:rgba(22,32,59,.09);overflow:hidden}
.hub-prog .track i{display:block;height:100%;background:var(--grad);transition:width .8s cubic-bezier(.2,.7,.2,1)}

.stack{display:grid;gap:14px}
.slot{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;
  border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:18px 20px;box-shadow:var(--shadow-sm);
  border-left:4px solid var(--ac);transition:transform .2s,box-shadow .2s}
.slot.empty{background:color-mix(in srgb,var(--bg-2) 60%,#fff);border-left-color:rgba(22,32,59,.12);box-shadow:none}
.slot.current{box-shadow:0 16px 40px -22px color-mix(in srgb,var(--ac) 70%,transparent)}
.slot .num{font-family:var(--ff-disp);font-weight:600;font-size:1.8rem;line-height:1.1;color:var(--ac);width:1.2em;text-align:center}
.slot.empty .num{color:rgba(22,32,59,.22)}
.slot .body{min-width:0}
.slot .body .lbl{display:flex;align-items:baseline;gap:.6em;flex-wrap:wrap}
.slot .body .name{font-family:var(--ff-disp);font-size:1.18rem;color:var(--ink)}
.slot .body .sub{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.slot .body .state{margin-left:auto;font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.slot .body .state.ok{color:var(--ok)}
.slot .body .state.go{color:var(--ac)}
.slot .arche{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ac);margin-top:.5em}
.slot .chips{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5em;margin-top:.4em}
.slot .block-chip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ff-mono);font-size:.74rem;
  color:#fff;background:var(--ac);border-radius:99px;padding:.34em .9em;letter-spacing:.01em;white-space:normal}
.slot .sec{font-family:var(--ff-mono);font-size:.68rem;color:var(--muted)}
.slot .reading{font-size:.95rem;color:var(--ink-2);margin-top:.6em;line-height:1.5;overflow-wrap:anywhere}
.slot .reading.muted{color:var(--muted)}
.slot .reframe-mini{font-size:.9rem;color:var(--ink-2);margin-top:.5em;line-height:1.45}
.slot .reframe-mini b{color:var(--indigo-deep)}
.hub-cta{margin-top:2rem;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hub-note{margin-top:1.1rem;font-family:var(--ff-disp);font-style:italic;color:var(--muted)}

/* ---- report ---- */
.report{padding:40px 0 90px}
.report .rhead{text-align:center;max-width:42ch;margin:0 auto 2.4rem}
.report .rhead h1{font-size:clamp(2.1rem,4.6vw,3.2rem);margin:.8rem 0}
.throughline{max-width:60ch;margin:0 auto 2.6rem;font-family:var(--ff-disp);font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.45;text-align:center;color:var(--ink)}
.throughline b{font-weight:600;color:var(--indigo-deep)}
.chain{display:grid;gap:16px;margin:0 0 2.6rem}
.stage-card{border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow-sm);padding:clamp(20px,3vw,30px);border-top:4px solid var(--ac)}
.stage-card .top{display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap}
.stage-card .top .n{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stage-card h3{font-size:1.5rem;margin:.15em 0 .1em}
.stage-card .arche{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.stage-card .sec-line{font-family:var(--ff-mono);font-size:.72rem;color:var(--muted);margin-top:.3em}
.stage-card .read{font-size:.98rem;color:var(--ink-2);margin-top:.8em;line-height:1.5}
.stage-card .reframe{font-size:.93rem;color:var(--ink-2);margin-top:.6em}
.stage-card .reframe b{color:var(--indigo-deep)}
.stage-card .ev{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1em}
@media(max-width:560px){.stage-card .ev{grid-template-columns:1fr}}
.evbox{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:12px 14px}
.evbox .t{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4em}
.evbox.help .t{color:var(--ok)}.evbox.avoid .t{color:var(--warn-deep)}
.evbox p{font-size:.92rem;color:var(--ink-2)}
.confbar{display:flex;align-items:center;gap:.6em;margin-top:.8em;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.confbar .t2{flex:1;max-width:160px;height:5px;border-radius:4px;background:rgba(22,32,59,.1);overflow:hidden}
.confbar .t2 i{display:block;height:100%;background:var(--ac)}

.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:2.4rem 0}
@media(max-width:820px){.tips{grid-template-columns:1fr}}
.tipcol{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-sm);padding:20px 22px}
.tipcol h4{font-size:1.1rem;display:flex;align-items:center;gap:.5em}
.tipcol.do h4{color:var(--ok)}.tipcol.monitor h4{color:var(--azure-ink)}.tipcol.avoid h4{color:var(--warn-deep)}
.tipcol ul{list-style:none;margin-top:.8em;display:grid;gap:.7em}
.tipcol li{font-size:.92rem;color:var(--ink-2);padding-left:1.1em;position:relative;line-height:1.45}
.tipcol li::before{content:"–";position:absolute;left:0;color:var(--muted)}

.expert{margin-top:1rem;border:1px solid var(--line-2);border-radius:18px;background:linear-gradient(180deg,var(--azure-wash),transparent);padding:clamp(24px,4vw,38px)}
.expert h3{font-size:1.6rem;margin:.6rem 0 .4rem}
.expert p{max-width:56ch;font-size:1rem}
.expert form{margin-top:1.2rem;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
.expert textarea{flex:1;min-width:240px;font-family:var(--ff-body);font-size:.96rem;color:var(--ink);background:#fff;
  border:1px solid var(--line-2);border-radius:11px;padding:.8em .9em;min-height:54px;resize:vertical}
.expert textarea:focus{outline:none;border-color:var(--azure)}
.expert .done{margin-top:1rem;font-family:var(--ff-mono);font-size:.84rem;color:var(--ok);display:flex;align-items:center;gap:.5em}

/* ---- blog: the curiosity field guide ---- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.blog{padding:40px 0 90px}
.blog-hero{max-width:64ch;margin:0 auto 2.6rem;text-align:center}
.blog-hero h1{font-size:clamp(2.1rem,5vw,3.4rem);margin:1rem 0 1.2rem}
.blog-hero .lead{font-size:clamp(1.05rem,1.7vw,1.22rem);color:var(--ink-2);margin:0 auto 1rem;max-width:60ch}

/* the architecture legend */
.frame{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin:0 0 3rem;
  border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow-sm);padding:clamp(20px,3vw,30px)}
@media(max-width:760px){.frame{grid-template-columns:1fr;gap:26px}}
.frame-h{display:flex;flex-direction:column;margin-bottom:1em}
.frame-h .ft{font-family:var(--ff-disp);font-size:1.2rem;color:var(--ink)}
.frame-h .fs{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:.2em}
.beats{list-style:none;display:grid;gap:8px;counter-reset:b}
.beat{display:grid;grid-template-columns:auto 1fr;gap:.7em;align-items:baseline;border-left:3px solid var(--ac,#019df8);
  padding:.5em .8em;background:var(--bg-2);border-radius:0 10px 10px 0}
.beat.b1{--ac:#019df8}.beat.b2{--ac:#4a78c4}.beat.b3{--ac:#3850cd}.beat.b4{--ac:#d98a63}.beat.b5{--ac:#2c3da6}.beat.b6{--ac:#16a777}
.beat .bn{font-family:var(--ff-mono);font-size:.74rem;font-weight:500;color:var(--ac);text-transform:uppercase;letter-spacing:.06em}
.beat .bj{font-size:.92rem;color:var(--ink)}
.beat .bd{grid-column:2;font-family:var(--ff-mono);font-size:.66rem;color:var(--muted)}
.moves{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:440px){.moves{grid-template-columns:1fr}}
.movechip{border:1px solid var(--line);border-radius:10px;padding:.55em .7em;background:var(--bg-2)}
.movechip b{display:block;font-family:var(--ff-mono);font-size:.72rem;color:var(--indigo-deep);letter-spacing:.02em}
.movechip span{font-size:.78rem;color:var(--muted)}

/* an act (one module) */
.act{margin:0 0 2.6rem;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow);
  padding:clamp(24px,4vw,42px);border-top:5px solid var(--ac)}
.act-head{display:flex;align-items:center;gap:18px;margin-bottom:1.4rem}
.act-n{font-family:var(--ff-disp);font-weight:600;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;color:var(--ac)}
.act-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.act-head .act-sub{font-family:var(--ff-disp);font-style:italic;font-weight:400;color:var(--muted);font-size:.7em}
.movetag{display:inline-block;margin-top:.3em;font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.movetag b{color:var(--ac)}

.beatline{display:grid;gap:12px;margin-bottom:1.4rem}
.bc{border-left:3px solid var(--bcc,var(--ac));background:var(--bg-2);border-radius:0 12px 12px 0;padding:14px 18px}
.bc-l{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bcc,var(--ac));display:block;margin-bottom:.4em}
.bc p{font-size:1.02rem;color:var(--ink-2);line-height:1.6}
.bc.spark{--bcc:#019df8}.bc.think{--bcc:#4a78c4}.bc.commit{--bcc:#3850cd}.bc.hold{--bcc:#bd6a44;background:color-mix(in srgb,#d98a63 8%,var(--bg-2))}
.bc.teach{--bcc:#2c3da6;background:var(--indigo-wash)}
.bc.return{--bcc:#16a777;background:color-mix(in srgb,#16a777 8%,var(--bg-2));margin-top:1.4rem}
.bc.commit p,.bc.think p{font-family:var(--ff-disp);font-style:italic;color:var(--ink)}

.blocks-wrap{margin:.4rem 0 0;border-top:1px dashed var(--line-2);padding-top:1.3rem}
.blocks-intro{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ac);margin-bottom:1rem}
.blockgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px}
.blockcard{border:1px solid var(--line);border-radius:14px;background:var(--bg-2);padding:16px 18px;border-top:3px solid var(--ac)}
.blockcard .ba{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.blockcard h4{font-size:1.08rem;margin:.25em 0 .35em;color:var(--ink)}
.blockcard .bdef{font-size:.9rem;color:var(--ink-2);line-height:1.45}
.blockcard .bref{font-size:.86rem;color:var(--ink-2);line-height:1.45;margin-top:.55em;font-style:italic}
.blockcard .baph{font-size:.84rem;color:var(--ac);margin-top:.55em;line-height:1.4}

.blog-cta{text-align:center;max-width:52ch;margin:3rem auto 0;border:1px solid var(--line-2);border-radius:20px;
  background:linear-gradient(180deg,var(--azure-wash),transparent);padding:clamp(28px,4vw,44px)}
.blog-cta h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin:.8rem 0}
.blog-cta p{margin:0 auto 1.4rem;max-width:46ch}
.blog-cta .btn{margin:0 .4em}

.report .foot-cta{margin-top:2.6rem;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.fine{margin-top:2.4rem;font-family:var(--ff-mono);font-size:.66rem;color:var(--muted);line-height:1.8;max-width:80ch;text-align:center;margin-left:auto;margin-right:auto}

/* ============================================================
   The Calmistry Journal — series index + per-block article
   ============================================================ */
.wrap-narrow{max-width:728px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

/* ---- index ---- */
.jindex{padding:40px 0 90px}
.jindex-hero{max-width:60ch;margin:0 auto 2.8rem;text-align:center}
.jindex-hero h1{font-size:clamp(2.1rem,5vw,3.4rem);margin:1rem 0 1.1rem}
.jindex-hero .lead{font-size:clamp(1.05rem,1.7vw,1.22rem);color:var(--ink-2);max-width:58ch;margin:0 auto}
.jindex-jump{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:1.8rem}
.jchip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.02em;
  border:1px solid var(--line-2);border-radius:99px;padding:.5em .95em;color:var(--ink);background:var(--panel);box-shadow:var(--shadow-sm);transition:transform .15s,border-color .15s}
.jchip:hover{transform:translateY(-2px);border-color:var(--ac)}
.jchip b{color:var(--ac);font-weight:600}

.jsec{margin:0 0 2.8rem;scroll-margin-top:80px}
.jsec-head{display:flex;align-items:center;gap:16px;margin-bottom:1.2rem;padding-bottom:.8rem;border-bottom:2px solid var(--ac)}
.jsec-n{font-family:var(--ff-disp);font-weight:600;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1;color:var(--ac)}
.jsec-head h2{font-size:clamp(1.5rem,3vw,2.1rem)}
.jsec-sub{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.jgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.jcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--panel);
  box-shadow:var(--shadow-sm);padding:20px 22px;border-top:3px solid var(--ac);transition:transform .18s,box-shadow .25s}
.jcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.jc-arche{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ac);margin-bottom:.3em}
.jcard h3{font-size:1.18rem;line-height:1.22;margin-bottom:.4em;color:var(--ink)}
.jcard p{font-size:.93rem;color:var(--ink-2);line-height:1.45;flex:1}
.jc-read{margin-top:.9em;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ac)}

.jindex-cta{text-align:center;max-width:52ch;margin:3rem auto 0;border:1px solid var(--line-2);border-radius:20px;
  background:linear-gradient(180deg,var(--azure-wash),transparent);padding:clamp(28px,4vw,44px)}
.jindex-cta h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:.8rem 0 1.4rem}
.jindex-cta .btn{margin:0 .4em}

/* ---- article ---- */
.post{padding:32px 0 90px}
.crumb{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.02em;color:var(--muted);margin-bottom:1.6rem}
.crumb a:hover{color:var(--ac)}.crumb em{color:var(--ink-2);font-style:normal}
.post-head{border-left:4px solid var(--ac);padding-left:1.1em;margin-bottom:1.8rem}
.post-kick{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ac)}
.post-head h1{font-size:clamp(2rem,4.4vw,3rem);margin:.5rem 0 .6rem;line-height:1.08}
.post-dek{font-family:var(--ff-disp);font-style:italic;font-size:clamp(1.1rem,2vw,1.35rem);color:var(--ink-2);line-height:1.4}
.post-pull{font-family:var(--ff-disp);font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.3;color:var(--ink);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.2rem 0;margin:0 0 1.8rem}
.post-body p{font-size:1.1rem;line-height:1.72;color:var(--ink-2);margin:0 0 1.15em}
.post-body h2{font-size:clamp(1.4rem,2.4vw,1.7rem);margin:2rem 0 .7rem;color:var(--ink)}
.post-body p:first-of-type{font-size:1.16rem;color:var(--ink)}

.post-box{display:grid;gap:14px;margin:2rem 0 1.2rem}
@media(min-width:560px){.post-box{grid-template-columns:1fr 1fr}}
.pb{border:1px solid var(--line);border-radius:14px;background:var(--bg-2);padding:16px 18px}
.pb-t{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.4em}
.pb.help .pb-t{color:var(--ok)}.pb.avoid .pb-t{color:var(--warn-deep)}
.pb p{font-size:.97rem;color:var(--ink-2);line-height:1.5}
.post-track{font-family:var(--ff-mono);font-size:.8rem;color:var(--muted);margin:.4rem 0}
.post-track b{color:var(--ac)}
.post-caveat{font-size:.9rem;color:var(--ink-2);line-height:1.5;margin:1.2rem 0;background:color-mix(in srgb,var(--coral) 9%,transparent);
  border:1px solid var(--line);border-radius:12px;padding:.8em .95em}
.post-caveat b{display:block;font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warn-deep);margin-bottom:.3em}
.post-aph{font-family:var(--ff-disp);font-style:italic;font-size:1.2rem;color:var(--ac);margin:1.8rem 0;text-align:center}

.post-self-cta{text-align:center;border:1px solid var(--line-2);border-radius:18px;background:linear-gradient(180deg,var(--azure-wash),transparent);
  padding:clamp(22px,3vw,32px);margin:2.4rem 0}
.post-self-cta p{font-size:1.05rem;color:var(--ink);margin-bottom:1.1rem}

.post-related{margin-top:2.6rem;border-top:1px solid var(--line);padding-top:1.6rem}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:1rem}
.relcard{display:flex;flex-direction:column;gap:.25em;border:1px solid var(--line);border-radius:12px;background:var(--panel);
  padding:14px 16px;border-left:3px solid var(--ac);transition:transform .15s,box-shadow .2s}
.relcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.rl-mod{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rl-name{font-family:var(--ff-disp);font-size:1.02rem;color:var(--ink);line-height:1.2}

/* ============================================================
   The Field Guide — pillar series + upgraded reading layout
   ============================================================ */

/* scroll-progress bar */
.readbar{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:60;pointer-events:none}
.readbar i{display:block;height:100%;width:0;background:var(--grad);box-shadow:0 0 12px -2px var(--azure)}

/* two-column reading layout (pillar + cluster article) */
.pillar{padding:26px 0 90px}
.pillar-wrap{display:grid;grid-template-columns:minmax(0,720px) 290px;gap:clamp(28px,4vw,56px);justify-content:center;
  max-width:1140px;margin:0 auto;padding:0 clamp(20px,4vw,40px);align-items:start}
.pillar-main{min-width:0}
@media(max-width:980px){.pillar-wrap{grid-template-columns:minmax(0,720px);justify-content:center}
  .pillar-rail{display:none}}

/* pillar header */
.pillar-head{border-left:4px solid var(--ac,var(--indigo));padding-left:1.1em;margin:1rem 0 1.6rem}
.pillar-head h1{font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.06;margin:.5rem 0 .6rem}
.pillar-dek{font-family:var(--ff-disp);font-style:italic;font-size:clamp(1.12rem,2vw,1.4rem);color:var(--ink-2);line-height:1.42}
.pillar-byline{display:flex;align-items:center;gap:.6em;flex-wrap:wrap;margin-top:1.1rem;
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.03em;color:var(--muted)}
.pillar-byline a{color:var(--ac,var(--indigo-deep));border-bottom:1px solid transparent}
.pillar-byline a:hover{border-bottom-color:currentColor}
.pb-dot{width:7px;height:7px;border-radius:99px;background:var(--ac,var(--indigo))}
.pb-sep{opacity:.5}

/* GEO answer-first box */
.answer-box{border:1px solid var(--line-2);border-radius:16px;background:var(--panel);
  box-shadow:var(--shadow-sm);padding:18px 22px;margin:0 0 1.8rem;position:relative;
  border-left:4px solid var(--ac,var(--indigo))}
.ab-tag{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ac,var(--indigo-deep));display:block;margin-bottom:.5em}
.answer-box p{font-size:1.04rem;line-height:1.6;color:var(--ink)}

/* pull quote */
.pillar-pull{font-family:var(--ff-disp);font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.3;color:var(--ink);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.2rem 0;margin:0 0 1.8rem;font-style:italic}

/* body typography */
.pillar-body p{font-size:1.1rem;line-height:1.74;color:var(--ink-2);margin:0 0 1.15em}
.pillar-body h2{font-size:clamp(1.35rem,2.4vw,1.65rem);margin:2.1rem 0 .7rem;color:var(--ink)}
.pillar-body > p:first-of-type{font-size:1.18rem;color:var(--ink)}
.pillar-body > p:first-of-type::first-letter{font-family:var(--ff-disp);font-weight:600;font-size:3.1rem;line-height:.8;
  float:left;margin:.06em .12em 0 0;color:var(--ac,var(--indigo))}

/* in-body callout (reader-task / held tension) */
.cs-callout{border:0;border-radius:16px;background:var(--indigo-wash);padding:18px 22px;margin:1.8rem 0;
  border-left:4px solid var(--ac,var(--indigo))}
.cs-callout p{font-family:var(--ff-disp);font-style:italic;font-size:1.1rem;line-height:1.55;color:var(--ink);margin:0}
.cs-callout p + p{margin-top:.6em}

/* in-body stat / data point */
.cs-stat{margin:2rem 0;text-align:center;padding:1.4rem 1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cs-big{display:block;font-family:var(--ff-disp);font-weight:600;font-size:clamp(2rem,5vw,3.2rem);line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.35em}
.cs-stat figcaption{font-size:.98rem;color:var(--ink-2);line-height:1.5;max-width:46ch;margin:0 auto}

/* go deeper — cluster roll-up */
.go-deeper{margin:2.8rem 0 0;border-top:1px dashed var(--line-2);padding-top:1.8rem}
.go-deeper h2{font-size:clamp(1.4rem,2.6vw,1.8rem);margin:.5rem 0 .4rem}
.gd-lead{font-size:1rem;color:var(--ink-2);margin-bottom:1.2rem;max-width:54ch}
.gd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gd-card{display:flex;flex-direction:column;gap:.3em;border:1px solid var(--line);border-radius:14px;background:var(--panel);
  padding:15px 17px;border-left:3px solid var(--ac);box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .22s}
.gd-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.gd-mod{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ac)}
.gd-name{font-family:var(--ff-disp);font-size:1.06rem;color:var(--ink);line-height:1.2}
.gd-go{font-family:var(--ff-mono);font-size:.66rem;color:var(--ac);margin-top:.2em}

/* FAQ */
.faq{margin:2.8rem 0 0;border-top:1px dashed var(--line-2);padding-top:1.8rem}
.faq h2{font-size:clamp(1.4rem,2.6vw,1.8rem);margin:.5rem 0 1rem}
.faq-item{border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:10px;padding:0 18px;box-shadow:var(--shadow-sm)}
.faq-item summary{font-family:var(--ff-disp);font-size:1.08rem;color:var(--ink);padding:15px 0;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--ff-mono);color:var(--ac,var(--indigo));font-size:1.2rem;flex:0 0 auto}
.faq-item[open] summary::after{content:"–"}
.faq-item p{font-size:1rem;line-height:1.6;color:var(--ink-2);padding:0 0 16px}

/* next-up cliffhanger card */
.next-up{display:block;margin:2.8rem 0 1.6rem;border:1px solid var(--line-2);border-radius:20px;
  background:linear-gradient(165deg,color-mix(in srgb,var(--ac,var(--indigo)) 12%,var(--panel)),var(--panel));
  box-shadow:var(--shadow);padding:clamp(22px,3.4vw,34px);transition:transform .18s,box-shadow .25s}
.next-up:hover{transform:translateY(-3px);box-shadow:0 28px 60px -30px color-mix(in srgb,var(--ac,var(--indigo)) 60%,transparent)}
.nu-tag{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ac,var(--indigo-deep))}
.nu-title{display:block;font-family:var(--ff-disp);font-size:clamp(1.4rem,2.8vw,1.95rem);color:var(--ink);line-height:1.14;margin:.5rem 0 .7rem}
.nu-cliff{font-size:1.04rem;line-height:1.6;color:var(--ink-2);margin-bottom:1rem;max-width:60ch}
.nu-go{font-family:var(--ff-mono);font-size:.78rem;letter-spacing:.04em;color:var(--ac,var(--indigo-deep));display:inline-flex;align-items:center;gap:.5em}
.next-up:hover .arr{transform:translateX(4px)}
.nu-go .arr{transition:transform .2s}

/* finale (last pillar) */
.pillar-finale{text-align:center;margin:2.8rem 0 0;border:1px solid var(--line-2);border-radius:22px;
  background:linear-gradient(180deg,var(--azure-wash),transparent);padding:clamp(28px,4vw,46px)}
.pf-cliff{font-family:var(--ff-disp);font-style:italic;font-size:clamp(1.15rem,2.2vw,1.45rem);color:var(--ink-2);line-height:1.45;max-width:54ch;margin:0 auto 1.6rem}
.pillar-finale h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:.6rem 0 1.5rem}

/* prev/next page nav */
.series-page-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:2rem 0 0;border-top:1px solid var(--line);padding-top:1.6rem}
@media(max-width:560px){.series-page-nav{grid-template-columns:1fr}}
.spn{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 18px;box-shadow:var(--shadow-sm);transition:transform .15s,border-color .15s}
.spn:hover{transform:translateY(-2px);border-color:var(--indigo)}
.spn.next{text-align:right}
.spn-t{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.3em}
.spn-n{font-family:var(--ff-disp);font-size:1.02rem;color:var(--ink);line-height:1.2}

/* side rail */
.pillar-rail{position:sticky;top:84px;display:grid;gap:16px}
.rail-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-sm);padding:18px 20px}
.rail-h{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--indigo-deep);display:block;margin-bottom:.9em}
.rail-list{list-style:none;counter-reset:none;display:grid;gap:2px}
.rail-list li{border-radius:9px}
.rail-list li a,.rail-list li.is-here{display:grid;grid-template-columns:auto 1fr;gap:.65em;align-items:start;padding:.5em .6em;border-radius:9px}
.rail-list li a:hover{background:var(--bg-2)}
.rail-list .rl-n{font-family:var(--ff-mono);font-size:.7rem;color:var(--muted);padding-top:.1em}
.rail-list .rl-t{font-size:.86rem;line-height:1.3;color:var(--ink-2)}
.rail-list li.is-here{background:var(--indigo-wash)}
.rail-list li.is-here .rl-n{color:var(--indigo-deep)}
.rail-list li.is-here .rl-t{color:var(--ink);font-weight:500}
.rl-you{grid-column:2;font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo-deep);margin-top:.2em}
.rail-cta p{font-size:.9rem;color:var(--ink-2);line-height:1.5;margin-bottom:1em}
.rail-rel{display:grid;gap:9px}
.rail-relcard{display:flex;flex-direction:column;gap:.2em;border:1px solid var(--line);border-radius:11px;background:var(--bg-2);
  padding:11px 13px;border-left:3px solid var(--ac);transition:transform .14s}
.rail-relcard:hover{transform:translateX(2px)}
.rr-mod{font-family:var(--ff-mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rr-name{font-family:var(--ff-disp);font-size:.96rem;color:var(--ink);line-height:1.2}
.rail-all{display:inline-block;margin-top:1em;font-family:var(--ff-mono);font-size:.7rem;color:var(--indigo-deep)}
.btn-sm{font-size:.72rem;padding:.7em 1.1em;width:100%;justify-content:center}

/* ---- index: the field guide rail ---- */
.guide{margin:0 0 3.4rem}
.guide-head{max-width:60ch;margin:0 auto 1.8rem;text-align:center}
.guide-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);margin:.7rem 0 .6rem}
.guide-lead{font-size:1.04rem;color:var(--ink-2);max-width:54ch;margin:0 auto}
.guide-rail{list-style:none;display:grid;gap:12px;max-width:760px;margin:0 auto;counter-reset:none}
.guide-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.1em;align-items:center;
  border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-sm);
  padding:18px 22px;transition:transform .16s,box-shadow .24s,border-color .16s}
.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--indigo)}
.gc-n{font-family:var(--ff-disp);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.gc-body h3{font-size:clamp(1.12rem,2vw,1.4rem);color:var(--ink);line-height:1.16;margin-bottom:.25em}
.gc-body p{font-size:.95rem;color:var(--ink-2);line-height:1.45}
.gc-meta{display:inline-block;margin-top:.5em;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.04em;color:var(--muted)}
.gc-go{font-family:var(--ff-disp);font-size:1.6rem;color:var(--indigo);transition:transform .18s}
.guide-card:hover .gc-go{transform:translateX(5px)}
.guide-start{margin:1.8rem auto 0;display:inline-flex}
.guide{text-align:center}
.guide-rail,.guide-head{text-align:left}
.guide-head{text-align:center}

/* notes intro divider */
.notes-intro{max-width:60ch;margin:0 auto 2rem;text-align:center;border-top:1px solid var(--line);padding-top:2.6rem}
.notes-intro h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin:.7rem 0 .6rem}
.notes-intro p{font-size:1.02rem;color:var(--ink-2);max-width:54ch;margin:0 auto}

/* cluster card reading-time row */
.jc-read{display:flex;align-items:center;gap:.5em}
.jc-arr{transition:transform .18s}
.jcard:hover .jc-arr{transform:translateX(3px)}

/* report micro-label inside a stage "what we saw" paragraph */
.micro-lab{display:block;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--indigo-deep);margin-bottom:.3em}

/* ── consolidated report v2: chapters, early-signals, sequenced plan ── */
.stage-card .chap{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.chap-n{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ac,var(--indigo-deep))}
.chap-q{font-family:var(--ff-disp);font-weight:500;font-size:clamp(1.25rem,3vw,1.6rem);line-height:1.16;color:var(--ink);margin:.25em 0 .15em}
.chap-lens{font-size:.98rem;color:var(--ink-2);line-height:1.55;max-width:60ch}
.finding .ans{font-family:var(--ff-disp);font-size:1.3rem;color:var(--ink);margin-bottom:.15em}
.finding .ans-sec{font-size:.92rem;color:var(--muted);font-family:var(--ff-mono)}
.finding .actv{display:inline-block;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ac,var(--indigo-deep));background:color-mix(in srgb,var(--ac,#3850cd) 10%,transparent);
  border-radius:99px;padding:.3em .7em;margin-bottom:.5em}
.finding .reframe b,.finding .read .micro-lab{display:block}
.finding .reframe b{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ac,var(--indigo-deep));margin-bottom:.1em}

/* early-warning cards */
.early{display:grid;gap:14px;margin-top:1.2rem}
@media(min-width:600px){.early{grid-template-columns:1fr 1fr}}
.early-card{border:1px solid var(--line);border-left:4px solid var(--ac);border-radius:14px;background:var(--panel);
  box-shadow:var(--shadow-sm);padding:17px 19px}
.early-card .t{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ac)}
.early-card .where{font-family:var(--ff-disp);font-size:1.15rem;color:var(--ink);margin:.1em 0 .35em}
.early-card p{font-size:.96rem;color:var(--ink-2);line-height:1.55;margin:0}
.early-card p b{color:var(--ink)}

/* sequenced plan */
.plan{list-style:none;display:grid;gap:0;margin:0 0 1.4rem;counter-reset:p}
.pstep{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.pstep:last-child{border-bottom:0}
.pnum{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-family:var(--ff-disp);font-weight:600;
  font-size:1.2rem;color:#fff;background:var(--grad);box-shadow:var(--shadow-sm)}
.pwhen{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--indigo-deep);margin-bottom:.3em}
.pwhat{font-family:var(--ff-disp);font-size:1.12rem;color:var(--ink);line-height:1.4;margin:0 0 .3em}
.pwhy{font-size:.94rem;color:var(--ink-2);line-height:1.5;margin:0}
.plan-rails{display:grid;gap:14px}
@media(min-width:620px){.plan-rails{grid-template-columns:1fr 1fr}}
.rail{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:16px 18px}
.rail h4{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.6em}
.rail.monitor h4{color:var(--azure-ink)}.rail.avoid h4{color:var(--warn-deep)}
.rail ul{margin:0;padding-left:1.1em;display:grid;gap:.5em}
.rail li{font-size:.96rem;color:var(--ink-2);line-height:1.5}
