/* Floor Talks — "The Spec Sheet" design layer (sc-ft-design.php). Owner's pick 2026-09-11. */
/* Floor Talks — Option B "Spec Sheet / Workshop" */
:root{
  --rail:216px;
  --ground:#E4E3DF;   /* concrete, light */
  --ground-2:#D6D5D0; /* concrete, mid   */
  --sheet:#F2F2EF;    /* sheet stock     */
  --ink:#16181B;      /* graphite        */
  --ink-2:#4A4F57;    /* graphite, 2nd   */
  --rule:#B4B2AC;
  --blue:#143F78;     /* blueprint       */
  --blue-deep:#0C2A52;
  --blue-ink:#DCE6F5;
  --blue-line:rgba(170,195,235,.13);
  --hivis:#FFD000;    /* safety yellow   */
  --f-display:"Big Shoulders Display","Arial Narrow","Helvetica Neue",sans-serif;
  --f-body:"Barlow","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --pad:48px;
  --h:clamp(560px,94vh,1200px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:400 18px/1.6 var(--f-body);
  /* calc(50% - 50vw) overshoots by half a classic scrollbar (vw includes it): measured +8px at 1280 in Chrome.
     clip (not hidden) so position:sticky keeps working. */
  overflow-x:clip}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--hivis);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--hivis);color:var(--ink);padding:10px 14px;font:600 14px var(--f-mono);z-index:99}
.skip:focus{left:8px;top:8px}
.mono{font-family:var(--f-mono)}

/* ───────── RAIL (header + primary nav) ───────── */
.rail{position:fixed;top:0;bottom:0;left:0;width:var(--rail);z-index:50;display:flex;flex-direction:column;overflow-y:auto;
  background-color:var(--blue-deep);
  background-image:linear-gradient(var(--blue-line) 1px,transparent 1px),linear-gradient(90deg,var(--blue-line) 1px,transparent 1px);
  background-size:24px 24px;color:var(--blue-ink);border-right:1px solid rgba(255,255,255,.14)}
.brand{display:block;padding:22px 20px 18px;text-decoration:none;color:#fff;border-bottom:1px solid rgba(255,255,255,.16)}
.brand-mark{display:block;font:800 36px/.86 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
.brand-mark span{display:block;color:var(--hivis)}
.brand-sub{display:block;margin-top:12px;font:500 10px/1.45 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:#A9BEDF}
.rail-label{margin:0;padding:16px 20px 6px;font:500 10px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:#8FA7CE}
.sw-list{list-style:none;margin:0;padding:0 10px}
.sw{display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:center;padding:6px 10px;text-decoration:none;color:#fff;border-left:3px solid transparent}
.sw img{width:40px;height:40px;object-fit:cover;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.4)}
.sw-code{display:block;font:500 9.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:#A3B8DA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-name{display:block;margin-top:2px;font:700 19px/1.02 var(--f-display);letter-spacing:.02em;text-transform:uppercase}
.sw:hover{background:rgba(255,255,255,.07)}
.sw[aria-current]{border-left-color:var(--hivis);background:rgba(255,208,0,.1)}
.sw[aria-current] .sw-name{color:var(--hivis)}
.rail-hubs{list-style:none;margin:0;padding:0 20px}
.rail-hubs a{display:block;padding:5px 0;font:500 11px/1.3 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:#fff;text-decoration:none}
.rail-hubs a::before{content:"→ ";color:var(--hivis)}
.rail-hubs a:hover{color:var(--hivis)}
.rail-foot{margin-top:auto;padding:14px 20px 18px;font:500 10px/1.5 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:#8FA7CE;border-top:1px solid rgba(255,255,255,.14)}
.rail-foot a{color:#DCE6F5;text-decoration:none}
.rail-foot a:hover{color:var(--hivis)}

/* page column beside the rail */
.site{margin-left:var(--rail)}
.wrap{padding-left:var(--pad);padding-right:var(--pad);max-width:1240px}

/* ───────── HERO (full-bleed; GP: generate_after_header) ───────── */
.hero{--iw:2400;--ih:1600;--ox:.5;--oy:.5;
  --s:max(100vw / 2400, var(--h) / 1600);
  position:relative;height:var(--h);overflow:hidden;background:#2b2d30;color:#fff;
  margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:calc(var(--ox) * 100%) calc(var(--oy) * 100%);display:block}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(8,20,38,.86) 0%,rgba(8,20,38,.55) 26%,rgba(8,20,38,0) 50%),
             linear-gradient(to right,rgba(8,20,38,.42) 0%,rgba(8,20,38,0) 34%)}
.hero > *:not(.hero-img){z-index:2}
/* keynote markers pinned to image pixels (object-fit:cover math, no JS) */
.km{position:absolute;
  left:calc((100vw - 2400 * var(--s)) * var(--ox) + var(--px) * var(--s));
  top:calc((var(--h) - 1600 * var(--s)) * var(--oy) + var(--py) * var(--s));
  width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;
  background:var(--hivis);color:var(--ink);font:700 13px/30px var(--f-mono);text-align:center;
  box-shadow:0 0 0 3px rgba(12,42,82,.7),0 0 0 10px rgba(255,208,0,.22)}
.km-t{position:absolute;top:50%;left:40px;transform:translateY(-50%);white-space:nowrap;
  padding:5px 9px;background:rgba(12,42,82,.9);color:#fff;font:500 11px/1.2 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;border-left:2px solid var(--hivis)}
.km--below .km-t{top:40px;left:auto;right:-6px;transform:none}
.spec-tag{position:absolute;top:32px;left:calc(var(--rail) + var(--pad));display:grid;font-family:var(--f-mono);text-transform:uppercase;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.spec-tag b{display:block;background:var(--hivis);color:var(--ink);font:700 22px/1 var(--f-mono);letter-spacing:.06em;padding:9px 12px 7px}
.spec-tag span{display:block;background:var(--blue-deep);color:#fff;font:600 12px/1.3 var(--f-mono);letter-spacing:.06em;padding:7px 12px}
.spec-tag small{display:block;background:rgba(12,42,82,.82);color:#AFC3E2;font:500 10px/1.45 var(--f-mono);letter-spacing:.05em;padding:6px 12px 8px}
.hero-copy{position:absolute;left:calc(var(--rail) + var(--pad));right:var(--pad);bottom:40px;max-width:940px}
.hero-kicker{display:inline-block;margin:0 0 14px;font:600 12px/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--hivis);padding:6px 10px}
.hero h1{margin:0;font:800 clamp(48px,6.1vw,100px)/.9 var(--f-display);text-transform:uppercase;letter-spacing:.005em;text-shadow:0 2px 24px rgba(0,0,0,.35);text-wrap:balance}
.hero h1 span{display:block;text-wrap:balance}
.hero-deck{margin:18px 0 0;max-width:60ch;font:400 19px/1.5 var(--f-body);color:#EAF0F7}
.hero-credit{position:absolute;right:28px;bottom:10px;font:500 10px/1.3 var(--f-mono);color:rgba(255,255,255,.82);letter-spacing:.03em}
.hero-credit a{color:#fff}
/* keynote legend strip (the drawing's legend) */
.keynotes{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:var(--blue-deep);color:var(--blue-ink);border-top:4px solid var(--hivis);
  padding:13px var(--pad) 13px calc(var(--rail) + var(--pad));display:flex;flex-wrap:wrap;gap:6px 28px;font:500 12px/1.5 var(--f-mono)}
.keynotes strong{color:#fff;letter-spacing:.14em;font-weight:700}
.kn i{display:inline-block;width:20px;height:20px;margin-right:8px;border-radius:50%;background:var(--hivis);color:var(--ink);font:700 11px/20px var(--f-mono);font-style:normal;text-align:center}

/* ───────── SHEET HEADINGS ───────── */
.sheet{padding-top:72px}
.sheet-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:6px 18px;border-bottom:3px solid var(--ink);padding-bottom:10px;margin-bottom:0}
.sheet-no{font:600 11px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--hivis);padding:6px 8px;align-self:center}
.sheet-head :is(h2,h1){margin:0;font:800 clamp(34px,3.6vw,50px)/.95 var(--f-display);text-transform:uppercase;letter-spacing:.005em}
.sheet-link{font:600 11.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid var(--hivis);padding-bottom:2px;white-space:nowrap}
.sheet-link:hover{background:var(--hivis)}
.sheet-sub{margin:12px 0 22px;font:500 12px/1.5 var(--f-mono);color:var(--ink-2);letter-spacing:.03em}

/* ───────── DATA-SHEET CARDS ───────── */
.ds-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.ds{position:relative;display:flex;flex-direction:column;background:var(--sheet);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-width:0}
.ds-top{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule)}
.ds-top img{width:52px;height:52px;object-fit:cover;display:block;box-shadow:0 0 0 1px var(--ink)}
.ds-sec{display:block;font:700 12px/1.25 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.ds-cat{display:block;font:500 11px/1.35 var(--f-mono);color:var(--ink-2)}
.ds h3{margin:18px 18px 8px;font:600 21px/1.24 var(--f-body);letter-spacing:-.003em}
.ds h3 a{text-decoration:none}
.ds h3 a::after{content:"";position:absolute;inset:0}
.ds:hover h3 a{text-decoration:underline;text-decoration-color:var(--hivis);text-decoration-thickness:4px;text-underline-offset:3px}
.ds p{margin:0 18px 18px;font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.ds dl{margin:auto 0 0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,.85fr);border-top:1px solid var(--rule)}
.ds dl div{padding:9px 8px 10px 14px;border-left:1px solid var(--rule);min-width:0}
.ds dl div:first-child{border-left:0}
.ds dt{font:500 9.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.ds dd{margin:3px 0 0;font:600 12.5px/1.3 var(--f-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds--lead{grid-column:span 2;display:grid;grid-template-columns:132px minmax(0,1fr)}
.ds--lead .ds-band{position:relative;border-right:1px solid var(--ink);min-height:100%}
.ds--lead .ds-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ds--lead .ds-band span{position:absolute;left:10px;bottom:10px;background:var(--ink);color:var(--hivis);font:600 10.5px/1 var(--f-mono);letter-spacing:.08em;padding:5px 6px}
.ds--lead .ds-body{display:flex;flex-direction:column;min-width:0}
.ds--lead .ds-top{grid-template-columns:minmax(0,1fr)}
.ds--lead h3{font:700 clamp(26px,2.4vw,34px)/1.12 var(--f-body);margin:22px 22px 10px;letter-spacing:-.01em}
.ds--lead p{font-size:17px;margin:0 22px 22px;max-width:60ch}

/* recently filed index */
.index{margin:28px 0 0;border-top:1px solid var(--ink)}
.index-row{display:grid;grid-template-columns:104px 150px minmax(0,1fr) 88px;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.index-row:hover{background:var(--sheet)}
.index-row .d,.index-row .w{font:500 12px/1.3 var(--f-mono);color:var(--ink-2)}
.index-row .w{text-align:right}
.index-row .s{font:600 11px/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;display:flex;gap:8px;align-items:center}
.index-row .s img{width:16px;height:16px;object-fit:cover;box-shadow:0 0 0 1px var(--ink)}
.index-row .t{font:500 16.5px/1.35 var(--f-body)}
.index-row:hover .t{text-decoration:underline;text-decoration-color:var(--hivis);text-decoration-thickness:3px}

/* ───────── GENERAL NOTES (explainer) ───────── */
.notes-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;margin-top:0;border-left:1px solid var(--ink);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--sheet)}
.notes-margin{padding:28px 22px;border-right:1px solid var(--rule);font:500 11.5px/1.55 var(--f-mono);color:var(--ink-2)}
.notes-margin .sticky{position:sticky;top:24px}
.notes-margin b{display:block;color:var(--ink);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.notes-margin ol{list-style:none;margin:14px 0 0;padding:0;counter-reset:n}
.notes-margin li{counter-increment:n;padding:6px 0;border-top:1px solid var(--rule)}
.notes-margin li::before{content:"N-" counter(n) "  ";color:var(--blue);font-weight:700}
.notes-margin a{text-decoration:none}
.notes-margin a:hover{text-decoration:underline}
.prose-notes{padding:40px 56px 48px;max-width:calc(68ch + 112px);counter-reset:note}
.prose-notes p{margin:0 0 1.15em;font-size:19px;line-height:1.72;max-width:68ch}
.prose-notes > p:first-child{font-size:22px;line-height:1.55;font-weight:500}
.prose-notes h3{counter-increment:note;margin:1.9em 0 .5em;font:800 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em;max-width:68ch}
.prose-notes h3::before{content:"N-" counter(note);display:block;margin-bottom:6px;font:700 11px/1 var(--f-mono);letter-spacing:.14em;color:var(--blue)}
.prose-notes a{color:var(--blue);text-decoration-color:rgba(20,63,120,.45);text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose-notes a:hover{text-decoration-color:var(--hivis);text-decoration-thickness:3px}
.prose-notes ul.ix{list-style:none;margin:0 0 1.4em;padding:0;max-width:68ch;border-top:1px solid var(--rule)}
.prose-notes ul.ix li{padding:9px 0 9px 26px;border-bottom:1px solid var(--rule);font-size:16.5px;line-height:1.45;position:relative}
.prose-notes ul.ix li::before{content:"›";position:absolute;left:6px;top:8px;color:var(--blue);font:700 16px var(--f-mono)}
.prose-notes ul.ix a{color:var(--ink);text-decoration:none}
.prose-notes ul.ix a:hover{text-decoration:underline;text-decoration-color:var(--hivis);text-decoration-thickness:3px}
.prose-notes em{color:var(--ink-2)}

/* ───────── SAMPLE BOARD (section entry points) ───────── */
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink);margin-top:0}
.tile{position:relative;display:flex;flex-direction:column;background:var(--sheet);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-width:0}
.tile-img{position:relative;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid var(--ink);background:#999}
.tile-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.tile:hover .tile-img img{transform:scale(1.04)}
.tile-code{position:absolute;left:0;top:0;background:var(--ink);color:var(--hivis);font:700 11px/1 var(--f-mono);letter-spacing:.08em;padding:7px 8px}
.tile-mat{position:absolute;right:0;top:0;background:rgba(242,242,239,.92);color:var(--ink);font:500 10px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:7px 8px}
.tile-credit{position:absolute;right:0;bottom:0;background:rgba(22,24,27,.72);color:#fff;font:500 9px/1.2 var(--f-mono);padding:4px 6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-credit a{color:#fff}
.tile-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.tile h3{margin:0;font:800 30px/.95 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
.tile h3 a{text-decoration:none}
.tile h3 a:hover{text-decoration:underline;text-decoration-color:var(--hivis);text-decoration-thickness:4px}
.tile p{margin:8px 0 12px;font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.tile ul{list-style:none;margin:auto 0 0;padding:0;border-top:1px solid var(--rule)}
.tile li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--rule);font:500 11.5px/1.35 var(--f-mono)}
.tile li a{text-decoration:none}
.tile li a:hover{text-decoration:underline}
.tile li span{color:var(--ink-2);white-space:nowrap}
.tile--hub{background:var(--blue-deep);color:var(--blue-ink);background-image:linear-gradient(var(--blue-line) 1px,transparent 1px),linear-gradient(90deg,var(--blue-line) 1px,transparent 1px);background-size:24px 24px;padding:18px}
.tile--hub h3{color:#fff}
.tile--hub p{color:#C4D3EA}
.hub-link{display:block;margin-top:12px;padding:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);text-decoration:none;color:#fff}
.hub-link b{display:block;font:800 24px/1 var(--f-display);text-transform:uppercase}
.hub-link small{display:block;margin-top:6px;font:500 11px/1.4 var(--f-mono);color:#AFC3E2}
.hub-link:hover{border-color:var(--hivis)}
.hub-link:hover b{color:var(--hivis)}

/* ───────── SHOWS & EVENTS (recurring calendar) ───────── */
.cal{background:var(--blue-deep);color:var(--blue-ink);border:1px solid var(--ink);border-top:0;
  background-image:linear-gradient(var(--blue-line) 1px,transparent 1px),linear-gradient(90deg,var(--blue-line) 1px,transparent 1px);background-size:24px 24px;padding:24px 24px 20px}
.cal-grid{display:grid;grid-template-columns:minmax(220px,300px) repeat(12,minmax(0,1fr));align-items:stretch}
.cal-m{font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-align:center;padding:8px 0;border-left:1px solid rgba(255,255,255,.16);color:#AFC3E2}
.cal-m abbr{text-decoration:none}
.cal-name{padding:14px 16px 14px 0;border-top:1px solid rgba(255,255,255,.16)}
.cal-name b{display:block;font:800 22px/1 var(--f-display);text-transform:uppercase;color:#fff;letter-spacing:.01em}
.cal-name span{display:block;margin-top:5px;font:500 11.5px/1.4 var(--f-mono);color:#C4D3EA}
.cal-track{grid-column:2 / -1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16);position:relative;
  background-image:linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:calc(100% / 12) 100%}
.cal-bar{align-self:center;height:30px;display:flex;align-items:center;padding:0 10px;font:700 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);white-space:nowrap;overflow:hidden}
.cal-bar--fixed{background:var(--hivis)}
.cal-bar--season{background:repeating-linear-gradient(135deg,var(--hivis) 0 8px,#E3B900 8px 16px);opacity:.9}
.cal-note{margin:18px 0 0;font:500 12px/1.55 var(--f-mono);color:#C4D3EA;max-width:92ch}
.cal-note a{color:#fff;text-decoration-color:var(--hivis);text-decoration-thickness:2px;text-underline-offset:3px}
.legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:14px;font:500 11px/1.4 var(--f-mono);color:#C4D3EA}
.legend i{display:inline-block;width:22px;height:10px;margin-right:8px;vertical-align:middle}

/* ───────── TRAINING & PROGRAMS ───────── */
.prog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-left:1px solid var(--ink)}
.prog article{background:var(--sheet);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column;min-width:0}
.prog-head{padding:16px 18px 14px;border-bottom:1px solid var(--rule)}
.prog-head small{display:block;font:600 10.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.prog-head h3{margin:6px 0 0;font:800 34px/.92 var(--f-display);text-transform:uppercase}
.prog-head p{margin:6px 0 0;font:500 13.5px/1.35 var(--f-body);color:var(--ink-2)}
.prog dl{margin:0}
.prog dl div{padding:10px 18px;border-bottom:1px solid var(--rule)}
.prog dl div:last-child{border-bottom:0}
.prog dt{font:500 9.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.prog dd{margin:4px 0 0;font-size:15px;line-height:1.45}
.training-band{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid var(--ink);border-top:0;background:var(--sheet)}
.training-band figure{margin:0;position:relative;border-right:1px solid var(--ink);min-height:260px}
.training-band figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.training-band figcaption{position:absolute;left:0;bottom:0;right:0;background:rgba(22,24,27,.78);color:#fff;font:500 10.5px/1.4 var(--f-mono);padding:7px 10px}
.training-band figcaption a{color:#fff}
.training-copy{padding:26px 28px}
.training-copy p{margin:0 0 1em;font-size:17px;line-height:1.62;max-width:60ch}
.training-copy p.fine{font:500 12px/1.55 var(--f-mono);color:var(--ink-2)}

/* ───────── FOOTER ───────── */
.ft-foot{margin-top:88px;background:var(--blue-deep);color:var(--blue-ink);
  background-image:linear-gradient(var(--blue-line) 1px,transparent 1px),linear-gradient(90deg,var(--blue-line) 1px,transparent 1px);background-size:24px 24px;border-top:4px solid var(--hivis)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:36px;padding-top:44px;padding-bottom:32px}
.foot-brand{font:800 40px/.86 var(--f-display);text-transform:uppercase;color:#fff}
.foot-brand span{display:block;color:var(--hivis)}
.foot-grid p{margin:14px 0 0;font-size:15px;line-height:1.55;color:#C4D3EA;max-width:44ch}
.foot-grid :is(h4,.foot-h){margin:0 0 10px;font:600 10.5px/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#8FA7CE}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li a{display:inline-block;padding:4px 0;color:#fff;text-decoration:none;font-size:15px}
.foot-grid li a:hover{color:var(--hivis)}
.ft-foot .sc-disclaimer{max-width:none;opacity:1;margin:0;padding:16px 0;border-top:1px solid rgba(255,255,255,.16);font:500 12.5px/1.5 var(--f-mono);color:#fff}
.ft-foot .sc-disclaimer p::before{content:"NOTE ";background:var(--hivis);color:var(--ink);padding:2px 6px;margin-right:10px;font-weight:700;letter-spacing:.08em}
.credits{padding-bottom:28px;border-top:1px solid rgba(255,255,255,.16);font:500 10.5px/1.6 var(--f-mono);color:#9FB5D8}
.credits summary{cursor:pointer;padding:12px 0;color:#DCE6F5;letter-spacing:.08em;text-transform:uppercase}
.credits ul{margin:0;padding:0 0 0 18px}
.credits a{color:#DCE6F5}

/* ───────── ARTICLE ───────── */
.art{display:grid;grid-template-columns:minmax(0,68ch) 272px;gap:56px;padding:36px var(--pad) 0;max-width:1180px}
.crumbs{margin:0 0 14px;font:500 11px/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{margin:0 7px;color:var(--rule)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.chip{display:inline-flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;background:var(--sheet);border:1px solid var(--ink);font:600 11px/1 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;text-decoration:none}
.chip img{width:22px;height:22px;object-fit:cover;display:block}
.chip--plain{padding:5px 10px;background:transparent;border-color:var(--rule);color:var(--ink-2)}
.chip:hover{background:var(--hivis)}
:is(.art h1,.ft-single h1.entry-title){margin:0;font:800 clamp(36px,3.9vw,52px)/1 var(--f-display);letter-spacing:.003em}
.byline{display:flex;flex-wrap:wrap;gap:4px 18px;margin:16px 0 22px;padding:10px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);font:500 12px/1.4 var(--f-mono);color:var(--ink-2)}
.byline b{color:var(--ink);font-weight:700}
:is(.prose,.ft-prose .entry-content){max-width:68ch;counter-reset:sec}
:is(.prose,.ft-prose .entry-content) p{margin:0 0 1.15em;font-size:18.5px;line-height:1.7}
:is(.prose,.ft-prose .entry-content) p.lede{font-size:21px;line-height:1.55;font-weight:500}
:is(.prose,.ft-prose .entry-content) h2{counter-increment:sec;margin:1.9em 0 .55em;font:800 31px/1.02 var(--f-display);text-transform:uppercase;letter-spacing:.01em;scroll-margin-top:24px}
:is(.prose,.ft-prose .entry-content) h2::before{content:"§ " counter(sec,decimal-leading-zero);display:block;margin-bottom:6px;font:700 11px/1 var(--f-mono);letter-spacing:.14em;color:var(--blue)}
:is(.prose,.ft-prose .entry-content) a{color:var(--blue);text-decoration-thickness:1.5px;text-underline-offset:3px}
:is(.prose,.ft-prose .entry-content) a:hover{text-decoration-color:var(--hivis);text-decoration-thickness:3px}
:is(.prose,.ft-prose .entry-content) strong{font-weight:700}
:is(.prose,.ft-prose .entry-content) figure{margin:30px 0 32px}
:is(.prose,.ft-prose .entry-content) figure img{width:100%;height:auto;display:block;border:1px solid var(--ink)}
:is(.prose,.ft-prose .entry-content) figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:9px 0 0;border-bottom:1px solid var(--rule);padding-bottom:10px;font-size:14.5px;line-height:1.45;color:var(--ink)}
:is(.prose,.ft-prose .entry-content) figcaption .fig-no{font:700 11px/1.6 var(--f-mono);letter-spacing:.08em;background:var(--ink);color:var(--hivis);padding:0 6px;align-self:start}
:is(.prose,.ft-prose .entry-content) figcaption .cr{grid-column:2;font:500 11px/1.45 var(--f-mono);color:var(--ink-2)}
:is(.prose,.ft-prose .entry-content) figcaption .cr a{color:var(--ink-2)}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table){overflow-x:auto;margin:26px 0 30px;border:1px solid var(--ink);background:var(--sheet);-webkit-overflow-scrolling:touch}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) table{border-collapse:collapse;width:100%;min-width:620px;font-size:15px;line-height:1.45}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) caption{caption-side:top;text-align:left;padding:10px 14px;font:700 11px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--hivis);color:var(--ink)}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) th{background:var(--blue-deep);color:#fff;text-align:left;font:600 10.5px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:10px 14px}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) td{padding:10px 14px;border-top:1px solid var(--rule);vertical-align:top}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) td:first-child{font-weight:600;min-width:180px}
:is(.table-scroll,.ft-prose .entry-content .wp-block-table) tr:nth-child(even) td{background:rgba(214,213,208,.35)}
.ad-break{height:0;margin:0}
.aside{position:relative}
.aside-inner{position:sticky;top:24px}
.panel{border:1px solid var(--ink);background:var(--sheet);margin-bottom:18px}
.panel h2{margin:0;padding:9px 12px;background:var(--ink);color:var(--hivis);font:700 10.5px/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.panel dl{margin:0}
.panel dl div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:8px 12px;border-top:1px solid var(--rule)}
.panel dl div:first-child{border-top:0}
.panel dt{font:500 9.5px/1.5 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.panel dd{margin:0;font-size:14px;line-height:1.4}
.panel ol{list-style:none;margin:0;padding:0;counter-reset:t}
.panel ol li{counter-increment:t;border-top:1px solid var(--rule)}
.panel ol li:first-child{border-top:0}
.panel ol a{display:grid;grid-template-columns:28px minmax(0,1fr);padding:8px 12px;font-size:14px;line-height:1.35;text-decoration:none}
.panel ol a::before{content:counter(t,decimal-leading-zero);font:700 10.5px/1.7 var(--f-mono);color:var(--blue)}
.panel ol a:hover{background:var(--hivis)}
.panel .hub{display:block;padding:10px 12px;border-top:1px solid var(--rule);font:600 12px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.05em;text-decoration:none}
.panel .hub:first-of-type{border-top:0}
.panel .hub::before{content:"→ ";color:var(--blue)}
.panel .hub:hover{background:var(--hivis)}
.art-end{padding:8px var(--pad) 0;max-width:1180px}
.more-links{margin:18px 0 0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.more-links li{border-bottom:1px solid var(--rule)}
.more-links a{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:11px 0;text-decoration:none;font-size:16.5px;line-height:1.4}
.more-links a span{font:600 11px/1.6 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.more-links a:hover{background:var(--sheet)}

/* ───────── RESPONSIVE ───────── */
@media (max-width:1279px){
  .ds-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prog{grid-template-columns:repeat(2,minmax(0,1fr))}
  .km-t{display:none}
  .art{grid-template-columns:minmax(0,1fr);max-width:calc(68ch + 96px)}
  .aside-inner{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .aside .panel{margin:0}
}
@media (min-width:1280px){ .ds--lead{grid-column:span 2} }
@media (max-width:1100px){
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notes-grid{grid-template-columns:minmax(0,1fr)}
  .notes-margin{border-right:0;border-bottom:1px solid var(--rule)}
  .notes-margin .sticky{position:static}
  .cal-grid{grid-template-columns:minmax(170px,210px) repeat(12,minmax(0,1fr))}
  .training-band{grid-template-columns:minmax(0,1fr)}
  .training-band figure{border-right:0;border-bottom:1px solid var(--ink)}
}
@media (max-width:899px){
  :root{--pad:20px;--h:clamp(440px,84vh,760px)}
  body{font-size:17px}
  .rail{position:sticky;top:0;bottom:auto;width:auto;height:auto;flex-direction:row;align-items:stretch;overflow:visible;border-right:0;border-bottom:3px solid var(--hivis)}
  .brand{flex:0 0 auto;padding:9px 12px;border-bottom:0;border-right:1px solid rgba(255,255,255,.2);display:flex;align-items:center}
  .brand-mark{font-size:19px;line-height:.86}
  .brand-sub,.rail-label,.rail-hubs,.rail-foot{display:none}
  .rail nav{flex:1 1 auto;min-width:0}
  .sw-list{display:flex;gap:2px;overflow-x:auto;padding:6px 8px;scrollbar-width:none;scroll-snap-type:x proximity;height:100%;align-items:center}
  .sw-list::-webkit-scrollbar{display:none}
  .sw-list li{flex:0 0 auto;scroll-snap-align:start}
  .sw{grid-template-columns:30px auto;gap:8px;padding:5px 9px 5px 6px;border-left:0;border-bottom:3px solid transparent}
  .sw img{width:30px;height:30px}
  .sw-code{display:none}
  .sw-name{font-size:16px;margin:0;white-space:nowrap}
  .sw[aria-current]{border-bottom-color:var(--hivis)}
  .site{margin-left:0}
  .hero{--ox:.44}
  .km-3,.km-4,.kn-3,.kn-4{display:none}
  .spec-tag{top:18px;left:var(--pad)}
  .spec-tag b{font-size:17px}
  .spec-tag small{display:none}
  .hero-copy{left:var(--pad);right:var(--pad);bottom:40px}
  .hero h1{font-size:clamp(40px,11.5vw,64px)}
  .hero-kicker{display:none}
  .hero-deck{font-size:16.5px}
  .hero-credit{right:auto;left:var(--pad);bottom:12px;font-size:9.5px}
  .keynotes{padding:12px var(--pad);gap:6px 18px;font-size:11.5px}
  .sheet{padding-top:52px}
  .sheet-head{grid-template-columns:minmax(0,1fr)}
  .sheet-no{justify-self:start}
  .ds-grid{grid-template-columns:minmax(0,1fr)}
  .ds--lead{grid-column:auto;grid-template-columns:minmax(0,1fr)}
  .ds--lead .ds-band{height:88px;border-right:0;border-bottom:1px solid var(--ink)}
  .index-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .index-row .t{grid-column:1 / -1;order:3}
  .index-row .s{order:1}
  .index-row .d{order:2;text-align:right}
  .index-row .w{display:none}
  .prose-notes{padding:26px 20px 30px}
  .prose-notes p{font-size:17.5px}
  .prose-notes > p:first-child{font-size:19.5px}
  .board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .tile p{display:none}
  .tile h3{font-size:24px}
  .tile li{font-size:10.5px}
  .tile li span{display:none}
  .tile--hub{grid-column:1 / -1}
  .cal{padding:18px 14px}
  .cal-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .cal-corner{display:none}
  .cal-m{font-size:9.5px;padding:6px 0}
  .cal-m .full{display:none}
  .cal-name{grid-column:1 / -1;padding:12px 0 6px}
  .cal-track{grid-column:1 / -1;border-top:0;min-height:34px}
  .cal-bar{height:24px;font-size:9.5px;padding:0 6px}
  .prog{grid-template-columns:minmax(0,1fr)}
  .foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px}
  .foot-grid > div:first-child{grid-column:1 / -1}
  .art{padding-top:24px;gap:36px}
  .aside-inner{grid-template-columns:minmax(0,1fr)}
  :is(.prose,.ft-prose .entry-content) p{font-size:17.5px}
  :is(.prose,.ft-prose .entry-content) p.lede{font-size:19px}
  :is(.prose,.ft-prose .entry-content) h2{font-size:27px}
  .more-links a{grid-template-columns:minmax(0,1fr);gap:2px}
}
.short{display:none}
@media (max-width:899px){ .full{display:none} .short{display:inline} }
@media (max-width:420px){
  .board{grid-template-columns:minmax(0,1fr)}
  .tile-img{aspect-ratio:16/9}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.cal-when{align-self:center;padding-left:12px;font:600 11.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:#fff;white-space:nowrap}
.credits-list{columns:2;column-gap:36px}@media (max-width:899px){.credits-list{columns:1}}

/* full-bleed boxes are 100vw wide: clip at the ROOT (body clip alone still lets the page scroll) */
html{overflow-x:clip}

/* staged explainer: h2 = numbered note, h3 = subhead; hero text clears the edge with a classic scrollbar */
.prose-notes h2{counter-increment:note;margin:1.9em 0 .5em;font:800 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em;max-width:68ch;scroll-margin-top:72px}
.prose-notes h2::before{content:"N-" counter(note);display:block;margin-bottom:6px;font:700 11px/1 var(--f-mono);letter-spacing:.14em;color:var(--blue)}
.prose-notes > h2:first-child{margin-top:0}
.prose-notes h3{counter-increment:none;margin:1.5em 0 .4em;font:700 21px/1.15 var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.prose-notes h3::before{content:none}
@media (max-width:899px){.hero-copy{left:calc(var(--pad) + 8px);right:calc(var(--pad) + 8px)}.hero-credit{left:calc(var(--pad) + 8px)}.prose-notes h2{font-size:25px}}

/* ═════════════════ GeneratePress bridge ═════════════════
   The block above is the approved mockup's CSS (design-options/B). Everything below maps it onto the
   markup GeneratePress actually renders. Scoped to body.ft so nothing leaks if the layer is off. */
:root{--contrast:#16181B;--contrast-2:#4A4F57;--contrast-3:#B4B2AC;--base:#D6D5D0;--base-2:#E4E3DF;--base-3:#F2F2EF;--accent:#143F78}
body.ft{background:var(--ground);color:var(--ink);font:400 18px/1.6 var(--f-body)}
body.ft a{color:inherit}
body.ft #page.site{max-width:none;margin:0 0 0 var(--rail);padding:0;background:transparent}
body.ft .site-content{padding:0;background:transparent}
body.ft.one-container .site-content,body.ft .one-container .container,body.ft .inside-article,body.ft .site-main{background:transparent}
body.ft.one-container .site-content{padding:0}
body.ft .site-main{margin:0}
body.ft .inside-article{padding:0}
body.ft .site-content .content-area{width:100%}
body.ft .site-footer{margin:88px 0 0 var(--rail);background:transparent;padding:0}
body.ft.admin-bar .rail{top:32px}
.ft-foot .foot-copy{margin:0;padding:0 0 26px;font:500 10.5px/1.5 var(--f-mono);color:#8FA7CE;letter-spacing:.06em;text-transform:uppercase}
.ft-foot .sc-disclaimer p{margin:0;max-width:110ch;font:inherit;color:inherit}
.ft-foot .sc-disclaimer strong{color:#fff}
.ft-foot .sc-disclaimer p::before{content:"NOTE"}
.sheet-link--plain{border:0}
.lg-fixed{background:var(--hivis)}
.lg-season{background:repeating-linear-gradient(135deg,var(--hivis) 0 5px,#E3B900 5px 10px)}
.cal-corner{text-align:left;border-left:0}

/* front page: the sheets bring their own .wrap padding */
body.ft-home .entry-content{margin:0}
body.ft-home .entry-header{display:none}

/* single article: GP's #primary + #right-sidebar become the mockup's grid; related reading spans it */
body.ft.ft-single .site-content,body.ft.ft-single.one-container .site-content{display:grid;grid-template-columns:minmax(0,68ch) 272px;column-gap:56px;align-items:start;padding:36px var(--pad) 0;max-width:1180px}
body.ft-single #primary{grid-column:1;grid-row:1;width:auto;min-width:0}
body.ft-single #right-sidebar{grid-column:2;grid-row:1;width:auto;align-self:stretch}
body.ft-single #right-sidebar .inside-right-sidebar{position:sticky;top:24px}
body.ft-single .ft-related{grid-column:1 / -1;grid-row:2;padding-left:0;padding-right:0;max-width:none}
body.ft-single .entry-header{margin:0}
body.ft-single .entry-content{margin-top:0}
body.ft .ft-prose .entry-content > p:first-of-type,body.ft-single .entry-content > p:first-of-type{font-size:21px;line-height:1.55;font-weight:500}

/* article body: what the posts actually contain */
.ft-prose .entry-content h3{margin:1.6em 0 .45em;font:700 23px/1.12 var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.ft-prose .entry-content ul,.ft-prose .entry-content ol{margin:0 0 1.15em 1.25em;padding:0;font-size:18px;line-height:1.6}
.ft-prose .entry-content li{margin:0 0 .35em}
.ft-prose .entry-content figure.wp-block-image{margin:30px 0 32px}
.ft-prose .entry-content figure.wp-block-image img{width:100%;height:auto;display:block;border:1px solid var(--ink)}
.ft-prose .entry-content figure.wp-block-image figcaption{display:block;margin:0;padding:9px 0 10px;border-bottom:1px solid var(--rule);font:500 12px/1.45 var(--f-mono);color:var(--ink-2);text-align:left}
.ft-prose .entry-content .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ft-prose .entry-content .wp-block-table table{border:0}
.ft-prose .entry-content .wp-block-table thead{border:0}
.ft-prose .entry-content .wp-block-table th,.ft-prose .entry-content .wp-block-table td{border:0;border-top:1px solid var(--rule)}
.ft-prose .entry-content .wp-block-table th{border-top:0}
.ft-prose .entry-content > table{display:block;overflow-x:auto;border-collapse:collapse;margin:26px 0 30px;border:1px solid var(--ink);background:var(--sheet);font-size:15px}
.ft-prose .entry-content > table th{background:var(--blue-deep);color:#fff;text-align:left;font:600 10.5px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:10px 14px}
.ft-prose .entry-content > table td{padding:10px 14px;border-top:1px solid var(--rule);vertical-align:top}
.ft-prose .entry-content blockquote{margin:24px 0;padding:6px 0 6px 18px;border-left:4px solid var(--hivis);font-size:19px}
.ft-prose .entry-content hr{border:0;border-top:1px solid var(--rule);margin:32px 0}

/* pages: a single reading sheet */
body.ft-page .inside-article{padding:40px var(--pad) 0;max-width:calc(68ch + 2 * var(--pad))}
body.ft-page .entry-header{border-bottom:3px solid var(--ink);padding-bottom:12px;margin:0 0 26px}
body.ft-page .entry-title{margin:0;font:800 clamp(38px,4.2vw,58px)/.95 var(--f-display);text-transform:uppercase;letter-spacing:.005em;color:var(--ink)}
body.ft-page .entry-content h2{counter-increment:none;margin:1.8em 0 .5em;font:800 30px/1.02 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
body.ft-page .entry-content h2::before{content:none}
body.ft-page .entry-content > p:first-of-type{font-size:20px;line-height:1.58;font-weight:500}

/* lists: category, search */
body.ft-list .ft-archive{padding-top:48px}
.ft-archive .sheet-head{margin-bottom:0}
.ft-archive .ds-grid{margin-top:22px}
.ft-archive .navigation{margin:28px 0 0}
.ft-archive .nav-links{display:flex;flex-wrap:wrap;gap:6px}
.ft-archive .page-numbers{display:inline-block;min-width:40px;padding:9px 12px;border:1px solid var(--ink);background:var(--sheet);font:600 12px/1 var(--f-mono);text-align:center;text-decoration:none;text-transform:uppercase;letter-spacing:.06em}
.ft-archive .page-numbers.current{background:var(--ink);color:var(--hivis)}
.ft-archive a.page-numbers:hover{background:var(--hivis)}

/* forms (contact page, search) */
body.ft input[type=text],body.ft input[type=email],body.ft input[type=search],body.ft input[type=url],body.ft textarea{background:#fff;border:1px solid var(--ink);border-radius:0;color:var(--ink);font:400 17px/1.4 var(--f-body);padding:10px 12px;max-width:100%}
body.ft button,body.ft input[type=submit]{background:var(--ink);color:var(--hivis);border:0;border-radius:0;font:700 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:13px 18px;cursor:pointer}
body.ft button:hover,body.ft input[type=submit]:hover{background:var(--blue)}

@media (max-width:1279px){
  body.ft.ft-single .site-content,body.ft.ft-single.one-container .site-content{grid-template-columns:minmax(0,1fr);max-width:calc(68ch + 2 * var(--pad))}
  body.ft-single #right-sidebar{grid-column:1;grid-row:2;margin-top:40px}
  body.ft-single #right-sidebar .inside-right-sidebar{position:static}
  body.ft-single .ft-related{grid-row:3}
}
@media (max-width:899px){
  body.ft #page.site,body.ft .site-footer{margin-left:0}
  body.ft.admin-bar .rail{top:0}
  body.ft.ft-single .site-content,body.ft.ft-single.one-container .site-content{padding-top:24px}
  body.ft-page .inside-article{padding-top:28px}
  body.ft-single .entry-content > p:first-of-type{font-size:19px}
  body.ft-list .ft-archive{padding-top:32px}
}

/* sheet components inside a page's reading column (shows / training pages) */
.ft-prose .entry-content .cal,.ft-prose .entry-content .prog{margin:28px 0 36px}
.ft-page .entry-content .cal{border-top:1px solid var(--ink)}
.ft-page .prog{grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.ft-page .cal-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
.ft-page .cal-corner{display:none}
.ft-page .cal-name{grid-column:1 / -1;padding:12px 0 6px}
.ft-page .cal-track{grid-column:1 / -1;border-top:0;min-height:34px}
.ft-prose .entry-content .cal p.cal-note{margin:18px 0 0;font:500 12px/1.55 var(--f-mono);color:#C4D3EA}
.ft-prose .entry-content .cal-note a{color:#fff}
.ft-prose .entry-content .prog-head h3{margin:6px 0 0;font:800 34px/.92 var(--f-display);letter-spacing:0}
.ft-prose .entry-content .prog-head p{margin:6px 0 0;font:500 13.5px/1.35 var(--f-body);color:var(--ink-2)}
.ft-prose .entry-content .prog dd{font-size:15px;line-height:1.45}
@media (max-width:899px){ .ft-page .prog{grid-template-columns:minmax(0,1fr)} }
/* GP ships .single .byline{display:inline} (0,2,0); the data-sheet byline is a flex strip */
body.ft-single p.byline{display:flex}
/* 404: GP's own template, given the sheet treatment */
body.ft.error404 .site-main{padding:48px var(--pad) 0;max-width:calc(68ch + 2 * var(--pad))}
body.ft.error404 .entry-header{border-bottom:3px solid var(--ink);padding-bottom:12px;margin:0 0 22px}
body.ft.error404 .entry-title{margin:0;font:800 clamp(38px,4.2vw,58px)/.95 var(--f-display);text-transform:uppercase}
body.ft.error404 .entry-content p{font-size:18px}
/* form submit buttons carry their own inline colour — the design's ink/hi-vis wins */
body.ft .entry-content form [type=submit],body.ft .entry-content form button{background:var(--ink)!important;color:var(--hivis)!important;border:0!important;border-radius:0!important;font:700 12px/1 var(--f-mono)!important;letter-spacing:.1em;text-transform:uppercase;padding:14px 20px!important}
body.ft .entry-content form [type=submit]:hover,body.ft .entry-content form button:hover{background:var(--blue)!important}
@media (max-width:899px){ body.ft.error404 .site-main{padding-top:32px} }
/* the mockup's figcaption is a 2-column grid for its FIG-n tag; real captions are text + credit link — keep them one flowing line */
.ft-prose .entry-content figure.wp-block-image figcaption a{color:var(--ink-2);text-decoration-thickness:1px;text-underline-offset:2px}
