/* Infrastructure front: lead package with a due-date plate, then the systems stack. */
.fi{padding:24px 0 0;margin-bottom:10px}
.fi-top{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:0 30px;align-items:start}
.fi .bs-hed{font-size:clamp(2rem,4.7vw,4.3rem)}
.fi .bs-dek{grid-template-columns:minmax(0,1fr) 1.9fr;padding-bottom:24px}
.fi .bs-dek p{font-size:1.12rem}
.fi .bs-dek-meta{line-height:1.35}
.fi .bs-dek-meta div{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;font-weight:600;color:#1a1a1a;padding:0 0 10px}
.fi .bs-dek-meta div+div{padding-top:10px;border-top:1px dotted #888}
.fi .bs-dek-meta b{margin:0 0 2px;color:#c41200}
.fi .bs-dek-meta span{font-family:'Fira Code',monospace;font-size:0.68rem;font-weight:400;color:#555}

.fi-plate{position:relative;margin-top:4px;border:1px solid #1a1a1a;padding:16px 16px 14px;text-align:center;background:#fff}
.fi-plate::after{content:'';position:absolute;inset:3px;border:1px solid #e0e0e0;pointer-events:none}
.fi-plate-k{font-family:'Source Sans 3',sans-serif;font-size:0.64rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#1a1a1a;padding-bottom:10px;border-bottom:1px solid #1a1a1a}
.fi-plate-d{display:flex;flex-direction:column;align-items:center;padding:12px 0 6px}
.fi-plate-d .m{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.5rem;letter-spacing:0.18em;text-transform:uppercase;color:#c41200;line-height:1}
.fi-plate-d .n{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:7.4rem;line-height:1;letter-spacing:-0.04em;color:#1a1a1a}
.fi-plate-w{margin-top:12px;font-family:'Fira Code',monospace;font-size:0.72rem;color:#555}
.fi-plate-left{font-family:'Fira Code',monospace;font-size:0.78rem;font-weight:500;color:#c41200;min-height:1.2em;margin-top:4px}
.fi-plate-s{margin-top:12px;padding-top:10px;border-top:3px double #1a1a1a;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;font-size:0.98rem;color:#1a1a1a;line-height:1.3}
.fi-plate-fig{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:2.6rem;line-height:1;padding:16px 0 4px;color:#a0750a}

.fi-stack{position:relative;border-top:1px solid #1a1a1a;padding-top:4px}
.fi-stack::before{content:'';position:absolute;left:0;right:0;top:3px;border-top:3px solid #1a1a1a}
.fi-stack-h{display:grid;grid-template-columns:230px minmax(0,1.55fr) minmax(0,1fr);gap:0 26px;padding:14px 0 8px;font-family:'Source Sans 3',sans-serif;font-size:0.62rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#888}
.fi-stack-h span:first-child{color:#c41200}
.fi-row{display:grid;grid-template-columns:230px minmax(0,1.55fr) minmax(0,1fr);gap:0 26px;padding:16px 0 18px;border-top:1px solid #1a1a1a}
.fi-sys{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-content:start}
.fi-sys-i{font-family:'Fira Code',monospace;font-size:0.72rem;color:#c41200;padding-top:0.55em}
.fi-sys h3{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:1.6rem;line-height:1.08;letter-spacing:-0.01em;color:#1a1a1a}
.fi-sys-c{grid-column:2;font-family:'Fira Code',monospace;font-size:0.68rem;color:#555;margin-top:6px}
.fi-row--quiet .fi-sys h3{color:#555}
.fi-notices,.fi-file{list-style:none;min-width:0}
.fi-notice{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:0 12px;align-items:baseline;padding:7px 0 8px}
.fi-notice+.fi-notice{border-top:1px solid #e0e0e0}
.fi-notice time{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:1.12rem;color:#1a1a1a;white-space:nowrap}
.fi-notice b{display:block;font-family:'Source Sans 3',sans-serif;font-weight:700;font-size:0.98rem;line-height:1.28;color:#1a1a1a;overflow-wrap:anywhere}
.fi-notice span{display:block;font-family:'Fira Code',monospace;font-size:0.66rem;color:#555;line-height:1.5;margin-top:2px;overflow-wrap:anywhere}
.fi-notice em{font-style:normal;font-family:'Fira Code',monospace;font-size:0.66rem;color:#c41200;white-space:nowrap}
.fi-notice.is-lapsed{display:none}
.fi-file{border-left:1px dotted #888;padding-left:20px}
.fi-file li+li{margin-top:10px;padding-top:10px;border-top:1px solid #e0e0e0}
.fi-file a{color:inherit;display:block}
.fi-file a:hover b{color:#c41200}
.fi-file .k{display:block;font-family:'Source Sans 3',sans-serif;font-size:0.6rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#a0750a}
.fi-file b{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.04rem;line-height:1.2;color:#1a1a1a}
.fi-file i{display:block;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;font-size:0.92rem;line-height:1.25;color:#333}
.fi-file .v{display:block;font-family:'Fira Code',monospace;font-size:0.64rem;color:#888;margin-top:3px}
.fi-row--quiet .fi-notices{display:none}
.fi-row--quiet .fi-file{grid-column:2 / -1;border-left:none;padding-left:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 26px}
.fi-row--quiet .fi-file li+li{margin-top:0;padding-top:0;border-top:none}

@media(max-width:900px){
  .fi-top{grid-template-columns:minmax(0,1fr) 210px;gap:0 22px}
  .fi-plate-d .n{font-size:5.6rem}
  .fi-stack-h{display:none}
  .fi-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 22px}
  .fi-sys{grid-column:1 / -1;grid-template-columns:auto auto 1fr;align-items:baseline}
  .fi-sys-c{grid-column:auto;margin:0 0 0 6px}
  .fi-row--quiet .fi-file{grid-column:1 / -1}
}
@media(max-width:700px){
  .fi{padding-top:18px}
  .fi-top{grid-template-columns:1fr}
  .fi .bs-dek{grid-template-columns:1fr}
  .fi .bs-dek-meta{display:block}
  .fi .bs-dek p{font-size:1.04rem}
  .fi-plate{margin:0 0 22px;display:grid;grid-template-columns:auto 1fr;gap:0 16px;text-align:left;align-items:center}
  .fi-plate-k{grid-column:1 / -1;margin-bottom:10px}
  .fi-plate-d{grid-row:2 / span 3;padding:0}
  .fi-plate-d .n{font-size:4.6rem}
  .fi-plate-s{grid-column:1 / -1;margin-top:18px}
  .fi-row{grid-template-columns:1fr}
  .fi-sys{grid-template-columns:auto 1fr}
  .fi-sys-c{grid-column:2;margin:4px 0 0}
  .fi-file{border-left:none;padding-left:0;border-top:1px dotted #888;padding-top:12px}
  .fi-row--quiet .fi-file{border-top:none;padding-top:0;grid-template-columns:1fr}
  .fi-row--quiet .fi-file li+li{margin-top:10px;padding-top:10px;border-top:1px solid #e0e0e0}
  .fi-notice{grid-template-columns:54px minmax(0,1fr)}
  .fi-notice em{grid-column:2}
}
