:root{
  --ink:#11213D;
  --navy-deep:#0A1730;
  --navy-mid:#41567A;
  --paper:#EFE7D6;
  --caliche:#F8F2E4;
  --cream-lt:#FCF7EC;
  --cream-mute:#D6CCB6;
  --cream-dim:#BFB49C;
  --redbed:#B02A24;
  --redbed-dark:#8A1F1A;
  --red-lt:#E4837B;
  --slate:#4E5D75;
  --rule:4px;
  --wrap:46rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;font-size:1.0625rem;line-height:1.62}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem}
h1,h2,h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-weight:900;
  letter-spacing:-.02em;line-height:1.04;text-wrap:balance}
a{color:var(--redbed-dark);text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--redbed);outline-offset:3px}
p{margin:0 0 1.05rem}

/* ---- nav ---- */
nav{background:var(--navy-deep);border-bottom:var(--rule) solid var(--redbed)}
nav .wrap{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem 1.15rem;padding-top:.9rem;padding-bottom:.9rem}
nav .mark{font-family:Archivo,sans-serif;font-weight:900;font-size:.95rem;color:var(--cream-lt);
  text-decoration:none;margin-right:.4rem;letter-spacing:-.01em;white-space:nowrap}
nav a.pg{font-family:"IBM Plex Mono",monospace;font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cream-mute);text-decoration:none;padding:.2rem 0}
nav a.pg:hover{color:var(--cream-lt)}
nav a.pg[aria-current="page"]{color:var(--red-lt);border-bottom:2px solid var(--red-lt)}

/* ---- page head ---- */
.head{background:var(--navy-deep);color:var(--caliche);padding:2.6rem 0 2.2rem}
.head h1{font-size:clamp(1.9rem,7.5vw,3.1rem);margin:.55rem 0 .85rem;color:var(--cream-lt)}
.head .sub{font-size:1.05rem;color:var(--cream-mute);max-width:34rem;margin:0}
.head .fine{color:var(--cream-dim);font-size:.92rem}
.head a{color:var(--cream-lt)}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--red-lt);margin:0}

.alert{margin-top:1.9rem;border:2px solid var(--redbed);background:rgba(228,131,123,.10);padding:1.1rem 1.15rem}
.alert .lbl{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--red-lt);display:block;margin-bottom:.45rem}
.alert .when{font-family:Archivo,sans-serif;font-weight:700;font-size:1.3rem;color:var(--cream-lt);line-height:1.2}
.alert .where{font-family:"IBM Plex Mono",monospace;font-size:.85rem;color:var(--cream-mute);margin-top:.4rem;line-height:1.5}

/* ---- sections ---- */
section{padding:3rem 0;border-bottom:1px solid rgba(17,33,61,.16)}
section:last-of-type{border-bottom:0}
.band{background:var(--caliche)}
h2{font-size:clamp(1.45rem,5.2vw,1.95rem);margin:0 0 .35rem}
.kicker{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--redbed);margin:0 0 .85rem}
.lede{font-size:1.1rem;margin:.85rem 0 1.5rem}
.fine{font-size:.9rem;color:var(--slate)}

/* ---- figures ---- */
.figs{display:grid;gap:1px;background:rgba(17,33,61,.2);border:1px solid rgba(17,33,61,.2);margin:1.5rem 0}
@media(min-width:34rem){.figs{grid-template-columns:1fr 1fr}}
.fig{background:var(--paper);padding:1.1rem 1.05rem}
.band .fig{background:var(--caliche)}
.fig b{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:1.5rem;display:block;
  line-height:1.1;color:var(--redbed-dark)}
.fig span{display:block;font-size:.92rem;color:var(--slate);margin-top:.3rem}

/* ---- docket ---- */
.docket{display:grid;gap:1.1rem;margin-top:1.5rem}
.card{border:2px solid var(--ink);background:var(--paper);padding:1.15rem 1.1rem 1.25rem;position:relative}
.band .card{background:var(--caliche)}
.card h3{font-size:1.1rem;margin:0 0 .5rem;padding-right:7rem}
.card p{font-size:.98rem;margin:0 0 .6rem}
.card p:last-of-type{margin-bottom:0}
.stamp{position:absolute;top:.85rem;right:.9rem;font-family:"IBM Plex Mono",monospace;
  font-weight:600;font-size:.64rem;letter-spacing:.1em;padding:.3rem .45rem;
  border:2px solid currentColor;transform:rotate(-4deg);white-space:nowrap}
.s-open{color:var(--redbed)}
.s-closed{color:var(--slate);opacity:.8}
.s-soon{color:var(--navy-mid)}
.card .who{font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--slate);
  margin-top:.75rem;display:block}

/* ---- asks ---- */
.asks{counter-reset:a;list-style:none;padding:0;margin:1.3rem 0 0}
.asks li{position:relative;padding-left:2.6rem;margin-bottom:1.1rem}
.asks li::before{counter-increment:a;content:counter(a);position:absolute;left:0;top:.1rem;
  font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.85rem;
  width:1.75rem;height:1.75rem;display:grid;place-items:center;
  background:var(--ink);color:var(--cream-lt)}
.asks b{font-family:Archivo,sans-serif;font-weight:700}

/* ---- actions ---- */
.act{border-left:var(--rule) solid var(--redbed);padding:.15rem 0 .15rem 1.1rem;margin:0 0 1.5rem}
.act h3{font-size:1.05rem;margin:0 0 .35rem}
.act p{font-size:.98rem;margin:0 0 .6rem}
.act p:last-of-type{margin-bottom:0}
.due{display:inline-block;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.66rem;
  letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--cream-lt);
  padding:.22rem .45rem;margin-bottom:.5rem}
.due.warm{background:var(--redbed);color:var(--cream-lt)}
.owner{display:block;font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--slate);margin-top:.55rem}
.phase{font-family:Archivo,sans-serif;font-weight:900;font-size:1.15rem;margin:2.3rem 0 1.15rem;
  padding-top:1rem;border-top:var(--rule) solid var(--ink)}
.phase:first-of-type{margin-top:1.5rem}

/* ---- timeline ---- */
.tl{list-style:none;margin:1.4rem 0 0;padding:0}
.tl li{padding:0 0 1.35rem 4.9rem;position:relative}
.tl li::before{content:attr(data-d);position:absolute;left:0;top:.18rem;
  font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:600;color:var(--redbed)}
.tl li::after{content:"";position:absolute;left:4.05rem;top:.3rem;bottom:0;width:2px;background:rgba(17,33,61,.18)}
.tl li:last-child::after{display:none}
.tl b{font-family:Archivo,sans-serif;font-weight:700;display:block;font-size:1rem}

/* ---- contacts ---- */
.reps{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:.95rem}
.reps th{text-align:left;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--slate);border-bottom:2px solid var(--ink);
  padding:0 .5rem .45rem 0;font-weight:600}
.reps td{padding:.6rem .5rem .6rem 0;border-bottom:1px solid rgba(17,33,61,.16);vertical-align:top}
.reps td:first-child{font-family:Archivo,sans-serif;font-weight:700}
.reps a{font-family:"IBM Plex Mono",monospace;font-size:.9rem;white-space:nowrap}

/* ---- faq ---- */
details{border-bottom:1px solid rgba(17,33,61,.2);padding:.15rem 0}
details summary{cursor:pointer;list-style:none;padding:.95rem 2rem .95rem 0;position:relative;
  font-family:Archivo,sans-serif;font-weight:700;font-size:1.02rem;line-height:1.3}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";position:absolute;right:.2rem;top:.82rem;
  font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:1.25rem;color:var(--redbed)}
details[open] summary::after{content:"–"}
details .ans{padding:0 0 1.1rem;font-size:1rem}
details .ans p:last-child{margin-bottom:0}
.faqgroup{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--redbed);margin:2.1rem 0 .4rem;padding-top:.9rem;
  border-top:var(--rule) solid var(--ink)}
.faqgroup:first-of-type{margin-top:1.4rem}

/* ---- docs ---- */
.docs{list-style:none;padding:0;margin:1.2rem 0 0}
.docs li{border-bottom:1px solid rgba(17,33,61,.18);padding:.85rem 0}
.docs a{font-family:Archivo,sans-serif;font-weight:700;text-decoration:none;font-size:1rem;display:block}
.docs a:hover{text-decoration:underline}
.docs span{display:block;font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--slate);margin-top:.25rem}

/* ---- next / cta ---- */
.next{background:var(--navy-deep);color:var(--caliche);padding:2.9rem 0}
.next h2{color:var(--cream-lt)}
.next p{color:var(--cream-mute)}
.next .fine{color:var(--cream-dim);font-size:.92rem}
.next a:not(.btn){color:var(--cream-lt)}
.btn{display:inline-block;background:var(--cream-lt);color:var(--ink);font-family:Archivo,sans-serif;
  font-weight:900;font-size:1rem;padding:.95rem 1.5rem;text-decoration:none;margin-top:.6rem}
.btn:hover{background:#fff}
.onward{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.4rem}
.onward a{display:block;flex:1 1 12rem;border:2px solid var(--ink);padding:.85rem .9rem;
  text-decoration:none;background:var(--paper)}
.band .onward a{background:var(--caliche)}
.onward b{display:block;font-family:Archivo,sans-serif;font-weight:700;font-size:1rem;color:var(--ink)}
.onward span{display:block;font-size:.88rem;color:var(--slate);margin-top:.2rem}

/* ---- misc ---- */
.todo{background:var(--redbed);color:var(--cream-lt);font-family:"IBM Plex Mono",monospace;
  font-size:.78rem;padding:.15rem .4rem;font-weight:600}
footer{padding:2.4rem 0 3.4rem;font-size:.88rem;color:var(--slate)}
footer strong{color:var(--ink)}

.rise{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.rise.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rise{opacity:1;transform:none;transition:none}}

/* ---- source provenance badges ---- */
.src{display:inline-block;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.6rem;
  letter-spacing:.12em;text-transform:uppercase;padding:.18rem .4rem;margin-right:.45rem;
  vertical-align:.08em;white-space:nowrap;border:1.5px solid currentColor}
.src.t1{background:var(--ink);color:var(--cream-lt);border-color:var(--ink)}
.src.t2{color:var(--ink)}
.src.t3{color:var(--redbed)}
.src.t4{color:var(--slate)}
.src.t5{color:var(--slate);border-style:dashed}
.srcline{font-size:.85rem;color:var(--slate);margin:1rem 0 0;line-height:1.5}
.srcline a{color:var(--redbed-dark)}
.card .srcline{margin-top:.8rem}
.head .src.t1{background:var(--cream-lt);color:var(--ink);border-color:var(--cream-lt)}
.tiers{list-style:none;padding:0;margin:1.4rem 0 0}
.tiers li{border-bottom:1px solid rgba(17,33,61,.18);padding:1rem 0}
.tiers b{font-family:Archivo,sans-serif;font-weight:700;display:block;margin:.3rem 0 .25rem}
.tiers p{font-size:.96rem;margin:0}

/* ---- ask block inside docket cards ---- */
.ask{margin-top:.9rem;border-top:2px solid var(--ink);padding-top:.7rem}
.ask .lbl{display:block;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.63rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--redbed);margin-bottom:.3rem}
.ask p{font-size:.96rem;margin:0 0 .4rem}
.ask p:last-child{margin-bottom:0}
.ask .meta{font-family:"IBM Plex Mono",monospace;font-size:.74rem;color:var(--slate)}
.ask.none .lbl{color:var(--slate)}
.ask.none{border-top-color:rgba(17,33,61,.3)}

/* ---- contact form ---- */
.form{margin-top:1.6rem;max-width:34rem}
.field{margin-bottom:1.3rem}
.field label{display:block;font-family:Archivo,sans-serif;font-weight:700;font-size:.98rem;margin-bottom:.15rem}
.field .hint{display:block;font-size:.86rem;color:var(--slate);margin-bottom:.45rem;line-height:1.45}
.field input,.field select,.field textarea{
  width:100%;font-family:"Source Serif 4",Georgia,serif;font-size:1rem;color:var(--ink);
  background:var(--caliche);border:2px solid var(--ink);border-radius:0;
  padding:.7rem .75rem;line-height:1.45}
.band .field input,.band .field select,.band .field textarea{background:var(--paper)}
.field textarea{min-height:11rem;resize:vertical}
.field select{appearance:none;background-image:none}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:3px solid var(--redbed);outline-offset:2px}
.optional{font-family:"IBM Plex Mono",monospace;font-size:.63rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--slate);border:1.5px solid currentColor;
  padding:.14rem .36rem;margin-left:.5rem;vertical-align:.14em;font-weight:600}
.submit{display:inline-block;background:var(--redbed);color:var(--cream-lt);border:0;
  font-family:Archivo,sans-serif;font-weight:900;font-size:1rem;padding:.95rem 1.6rem;
  cursor:pointer;border-radius:0}
.submit:hover{background:var(--redbed-dark)}
.submit[disabled]{opacity:.55;cursor:default}
.status{margin-top:1.2rem;font-size:1rem;line-height:1.55}
.status:empty{margin:0}
.status.ok{border-left:var(--rule) solid var(--redbed);padding:.5rem 0 .5rem 1.1rem}
.status.ok b{font-family:Archivo,sans-serif;font-weight:900;display:block;font-size:1.15rem;margin-bottom:.25rem}
.status.err{border-left:var(--rule) solid var(--navy-mid);padding:.5rem 0 .5rem 1.1rem;color:var(--slate)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
