    /* ── EXPLORE FRONT — Broadsheet lead spread + rail ──
       Ported verbatim from explore-redesign-v2.html (Direction 1,
       round 2) — the approved public design for the homepage front. */
    .kicker { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.16em; color:var(--tide-water); display:block; }
    .prov { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.15em; color:var(--brass); display:block; }
    .prov .p-src { color:var(--text-muted); }
    .prov .p-ts { font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:400; letter-spacing:.05em; color:var(--text-dim); text-transform:none; font-variant-caps:normal; margin-left:10px; }
    .deck-serif { font-family:Georgia,'Times New Roman',serif; font-size:17px; line-height:1.7; color:var(--text-muted); }
    .why-now { font-family:'Playfair Display',Georgia,serif; font-style:italic; font-size:13.5px; color:var(--text-muted); }
    .why-now em { color:var(--brass); font-style:normal; font-variant:small-caps; letter-spacing:.10em; font-weight:600; font-size:12px; }
    .alert-line { display:flex; gap:10px; align-items:baseline; background:var(--bg-alert-r); border-left:3px solid var(--red); padding:10px 14px; font-size:14px; line-height:1.5; }
    .alert-line .a-dot { width:8px; height:8px; border-radius:50%; background:var(--red); flex-shrink:0; align-self:center; }
    /* Advisory-class (not warning-class) active alert — amber, never red. */
    .alert-line.alert-line--caution { background:var(--bg-alert-a); border-left-color:var(--amber); }
    .alert-line.alert-line--caution .a-dot { background:var(--amber); }
    /* Issued but not yet begun — neutral, not red or amber; the BEGINS clock is the point. */
    .alert-line.alert-line--upcoming { background:var(--bg-card-hi); border-left-color:var(--text-dim); }
    .alert-line.alert-line--upcoming .a-dot { background:var(--text-dim); }
    .alert-line .a-begins { font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.03em; color:var(--text-dim); white-space:nowrap; }
    .signal-stale-banner { display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; background:var(--bg-alert-a); border-left:3px solid var(--amber); padding:10px 14px; font-size:14px; line-height:1.5; color:var(--text); margin-bottom:12px; }
    .signal-stale-banner .ssb-date { font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.03em; color:var(--amber); white-space:nowrap; }
    .verbatim { background:var(--bg-card-hi); border:1px solid var(--border-soft); padding:14px 16px; }
    .verbatim-tag { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.14em; color:var(--text-dim); display:block; margin-bottom:8px; }
    /* Official zone title inside the box. Dark type, never brass — brass stays on the rail rule. */
    .verbatim-official { font-size:12.5px; font-weight:600; color:var(--text); line-height:1.3; display:block; margin-bottom:8px; }
    .verbatim-official .vo-lab { font-variant-caps:small-caps; letter-spacing:.12em; font-weight:600; }
    .verbatim p { font-size:14px; line-height:1.65; color:var(--text); white-space:pre-line; }
    .otw { font-family:Georgia,serif; font-size:17px; line-height:1.75; color:var(--text); }
    .figcap { font-size:13px; color:var(--text-muted); line-height:1.5; margin-top:9px; }
    .figcap .cred { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--text-dim); margin-left:8px; }
    .status-clear { font-family:'Playfair Display',Georgia,serif; font-size:15px; color:var(--green); }

    .d1-spread { display:grid; grid-template-columns:1.9fr 1fr; gap:34px; align-items:start; }
    @media (max-width:1000px) { .d1-spread { grid-template-columns:1fr; } }
    .d1-lead-fig { margin:0 0 20px; }
    .d1-lead-fig img { width:100%; aspect-ratio:21/9; object-fit:cover; }
    @media (max-width:640px) { .d1-lead-fig img { aspect-ratio:16/10; } }
    .d1-lead .kicker { margin-bottom:12px; }
    .d1-lead-title { font-family:'Playfair Display',Georgia,serif; font-size:34px; font-weight:600; line-height:1.14; margin:6px 0 16px; letter-spacing:-.005em; color:var(--text); }
    @media (min-width:1080px) { .d1-lead-title { font-size:46px; } }
    .d1-lead-deck { max-width:var(--reading); margin-bottom:14px; }
    .d1-lead-byline { font-variant-caps:small-caps; font-size:12px; font-weight:500; letter-spacing:.14em; color:var(--text-muted); margin-top:10px; }
    .d1-lead-byline .read-feature { color:var(--brass); border-bottom:1px solid var(--brass-soft); margin-left:14px; }
    a.d1-lead, a.d1-card { color: inherit; text-decoration: none; }
    .d1-lead .why-now { margin-top:14px; padding-top:12px; border-top:1px solid var(--border-soft); max-width:var(--reading); }
    .d1-rail { border-left:1px solid var(--brass-soft); padding-left:28px; display:flex; flex-direction:column; gap:22px; }
    @media (max-width:1000px) { .d1-rail { border-left:none; padding-left:0; border-top:1px solid var(--brass-soft); padding-top:24px; } }

    /* ── THE FRAME — fixed-height lead+rail spread ───────────────────
       The lead-and-rail spread is the SAME fixed height every day at each desktop width, so the
       front's geometry never changes and nothing on the operator's desk can alter it. Below
       1001px the spread collapses to one stacked column (rules above) and the frame does not
       apply. Inside the frame the story column absorbs ALL content variance in the PHOTOGRAPH —
       never by clamping a word of editorial text: a longer deck yields a shorter photo, nothing
       else. The row track is minmax(0,1fr) so both columns are exactly the frame height and can
       overflow it (the lead visibly, if the story alone is taller; the rail clipped). */
    @media (min-width:1001px) {
      .d1-spread { height:650px; grid-template-rows:minmax(0,1fr); align-items:stretch; }
      .d1-lead { display:flex; flex-direction:column; min-height:0; }
      /* The figure absorbs the column's slack; the img grows/shrinks with it. flex, NOT
         height:100% — the figcaption is a child of the figure and height:100% would push it out
         and clip it, and editorial text is never clipped. aspect-ratio is dropped so the photo
         is free to be any height; object-fit:cover + the inline object-position focal value
         (untouched) keep the framing. */
      .d1-lead-fig { flex:1 1 auto; min-height:140px; display:flex; flex-direction:column; }
      .d1-lead-fig img { flex:1 1 auto; min-height:0; aspect-ratio:auto; }
      /* The rail is the frame height and clips any pre-hydrate baked overrun — the static page
         renders every row before fitLoopWatch() runs, so without this the baked rail could
         visually spill past the frame for one paint. */
      .d1-rail { overflow:hidden; }
    }
    @media (min-width:1280px) { .d1-spread { height:700px; } }
    @media (min-width:1520px) { .d1-spread { height:740px; } }
    .d1-rail-title { font-family:'Playfair Display',Georgia,serif; font-variant:small-caps; font-size:17px; font-weight:600; letter-spacing:.08em; padding-bottom:8px; border-bottom:1px solid var(--brass); color:var(--text); }
    /* Same register as Loop Watch's left-column water (.lwc-corr) — mixed case, not small-caps. */
    .d1-water { font-size:12.5px; font-weight:600; color:var(--text); line-height:1.3; display:block; margin-bottom:6px; }
    .d1-signal .prov { margin-bottom:10px; }
    .d1-signal .alert-line { margin-bottom:12px; }
    .d1-signal .otw { margin-bottom:14px; }
    .d1-otw-kick { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.16em; color:var(--brass); display:block; margin-bottom:6px; }
    /* "Also on the Water" — the kicker over each extra rail water. Same brass small-caps
       pattern as the existing rail kickers; the .d1-rail-extra wrapper is a direct child of
       the flex rail, so it inherits the 22px column gap without its own rule. */
    .d1-also-kick { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.16em; color:var(--brass); display:block; margin-bottom:6px; }
    .d1-rail .otw { font-size:16px; }
    /* Clamp the rail's verbatim forecast to ~5 lines — line-clamp only, no height
       cap + gradient: a fixed max-height fade would show a fade-to-nothing over
       blank space on short inland forecasts. line-clamp's box sizes to actual
       content, so it stays full height (no ellipsis) when text already fits. */
    .d1-rail .verbatim p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; line-clamp:5; overflow:hidden; }
    .verbatim-zone { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--brass); display:block; margin-bottom:8px; }
    .d1-full-forecast { font-size:12px; margin-top:8px; }
    .d1-full-forecast a { color:var(--brass); }

    /* WEATHER EYE — coverage-wide forward-look device (docs/weather-eye-refinement.html §5).
       B2 top-framed aside: 2px tide-water top frame, faint wash, hairline base. Crosses
       themes on tokens alone — no dark override needed. Duplicated (not shared) in
       atlas.html's own per-corridor Eye, which doesn't load this file. */
    .we { background:var(--we-tint-faint); border-top:2px solid var(--we-frame); border-bottom:1px solid var(--we-line); padding:15px 16px 14px; }
    .we-head { display:flex; justify-content:space-between; align-items:baseline; gap:6px 12px; margin-bottom:9px; flex-wrap:wrap; }
    .we-flag { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.15em; color:var(--tide-water); white-space:nowrap; }
    .we-stamp { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.04em; color:var(--text-dim); white-space:nowrap; }
    .we-body { font-size:14px; line-height:1.62; color:var(--text); }
    .we-body strong { font-weight:600; }
    /* Verbatim NHC advisory headline — a quiet transcribed machine line, not editorial voice.
       No text-transform: NHC's own all-caps shows as issued, just de-emphasized enough to read
       calm rather than shouted. */
    .we-headline { font-size:13px; line-height:1.6; letter-spacing:.01em; color:var(--text-muted); text-transform:none; margin:8px 0 0; }
    .we-corr { font-size:13.5px; line-height:1.7; color:var(--text); margin-top:9px; }
    .we-corr .we-corr-lab { color:var(--text-muted); }
    .we-corr a { color:var(--text); text-decoration:none; border-bottom:1px solid var(--we-link); padding-bottom:1px; }
    .we-corr a:hover { border-bottom-color:var(--text); }
    .we-corr .sep { color:var(--text-dim); padding:0 3px; }
    .we-link { margin-top:11px; font-size:13px; }
    .we-link a { color:var(--text); text-decoration:none; border-bottom:1px solid var(--we-link); padding-bottom:1px; }
    .we-link a:hover { border-bottom-color:var(--text); }
    .we-link .arr { color:var(--text-muted); }

    /* WEATHER EYE — editor's pin, Direction B (Chunk 6, Fable's approved
       docs/weather-eye-design/weather-eye-pinned-desktop.html §2/§5 — supersedes the
       Chunk 5 full-width-then-sibling-note layout below this comment used to describe).
       One frame spans the full band; the tint wash covers only .we-machine; the note
       sits on bare paper in .we-noteside — outside the tint by geometry, not adjacency.
       No new tokens. Mobile (<=1000px) collapses to the shipped stacked order. */
    .we-pin-band { border-top:2px solid var(--we-frame); border-bottom:1px solid var(--we-line); display:grid; grid-template-columns:1.9fr 1fr; gap:0 34px; align-items:stretch; margin-bottom:30px; }
    .we-pin-band .we-machine { background:var(--we-tint-faint); padding:15px 16px 14px; }
    .we-pin-band .we-noteside { padding:13px 0 12px; }
    .we-pin-band .we-noteside .hmn1 { margin-top:0; }
    .we-pin-band.no-note .we-machine { grid-column:1 / -1; }
    /* measure cap — full-width machine text was running ~130ch; the rail Eye never needs this. */
    .we-pin-band .we-body, .we-pin-band .we-corr { max-width:78ch; }
    @media (max-width:1000px) { .we-pin-band { display:block; } .we-pin-band .we-machine { border-bottom:1px solid var(--we-line); } }

    /* the chip is an editorial kicker, not a mono badge — mono-as-label and sub-12px are
       both on the design-system ban list. */
    .pin-kick { display:block; font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.16em; color:var(--brass); margin-bottom:10px; }
    .pin-kick .dia { opacity:.85; margin-right:2px; }

    .hmn1 { margin-top:12px; border-left:2px solid var(--brass-soft); padding:3px 0 3px 14px; }
    .hmn1-lab { font-variant-caps:small-caps; font-size:11px; font-weight:600; letter-spacing:.14em; color:var(--brass); display:block; margin-bottom:4px; }
    .hmn1-text { font-family:Georgia,serif; font-size:15px; line-height:1.65; color:var(--text); }

    .d1-rwa { border-top:1px solid var(--border-soft); padding-top:16px; }
    .d1-rwa-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
    .d1-rwa-title { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.15em; color:var(--text-muted); }
    .d1-rwa-ts { font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--text-dim); }
    .d1-rwa p { font-size:14px; line-height:1.6; color:var(--text); }
    .d1-rwa .sca { color:var(--red); font-weight:500; }

    .hm-note { margin-top:6px; }

    /* SIGHTLINES LEDGER — full-width band below Radar (docs/explore-front-sightlines-ledger-MEMO.md,
       Decision 4 — supersedes the earlier rail-mounted .slb-card, retired). All widths — not desktop-only. */
    .sl-ledger { background:var(--bg-card); border:1px solid var(--border); padding:6px 24px; }
    .sl-row { display:grid; grid-template-columns:170px 1fr auto; gap:16px; padding:14px 0; border-bottom:1px solid var(--border-soft); align-items:baseline; }
    .sl-row:last-of-type { border-bottom:none; }
    .sl-src { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--brass); }
    .sl-hl { font-family:'Playfair Display',Georgia,serif; font-size:17px; font-weight:500; line-height:1.35; }
    .sl-hl a { color:inherit; text-decoration:none; }
    .sl-hl a:hover { border-bottom:1px solid var(--brass-soft); }
    .sl-ext { font-family:'Inter',sans-serif; font-size:12px; color:var(--brass); margin-left:6px; }
    .sl-ts { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-muted); white-space:nowrap; }
    .sl-foot { font-size:12.5px; font-style:italic; color:var(--text-dim); padding:12px 0 10px; border-top:1px solid var(--border-soft); }
    /* HM note run-on (docs/sightlines-hm-note-options.html §B/§D, LOCKED — Decision 5): inline
       after the headline+↗, inside .sl-hl, never inside <a> — commentary is not a tap target. */
    .sl-row .hm-note { display:inline; margin-left:10px; }
    @media (max-width:700px) {
      .sl-row { grid-template-columns:1fr auto; }
      .sl-row .sl-ts { grid-row:1; grid-column:2; }
      .sl-row .sl-hl { grid-column:1 / -1; }
      .sl-row .hm-note { display:block; margin:6px 0 0; }
    }

    /* Per-section addressable wrapper — box-free, so it never affects layout,
       spacing, or margin-collapse. Each Explore Front band is wrapped in one
       of these (see atlas-render.js renderExploreFront). */
    .ef-band { display:contents; }

    /* SECTION OPENERS */
    .sec-opener { display:flex; align-items:center; gap:16px; margin:56px 0 22px; padding-bottom:10px; border-bottom:1px solid var(--brass); }
    /* Re-scoped for .ef-band wrappers: each band's .sec-opener is now the
       first-of-type within its OWN wrapper, so :first-of-type alone would
       zero out every section's top margin, not just the first. Match the
       first band instead, exactly as :first-of-type did before wrapping. */
    .ef-band:first-child .sec-opener { margin-top:0; }
    .sec-ornament { font-family:'Playfair Display',Georgia,serif; font-size:18px; color:var(--brass); letter-spacing:.18em; line-height:1; flex-shrink:0; }
    .sec-title { font-family:'Playfair Display',Georgia,serif; font-variant:small-caps; font-size:22px; font-weight:600; letter-spacing:.08em; color:var(--text); }
    .sec-rubric { font-family:'Inter',-apple-system,sans-serif; font-style:italic; font-size:13px; color:var(--text-muted); margin-left:auto; }
    @media (min-width:768px) { .sec-title { font-size:24px; } }
    @media (max-width:640px) { .sec-rubric { display:none; } }

    /* HARBOR JOURNAL 3-UP BAND */
    .d1-second-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
    @media (max-width:900px) { .d1-second-grid { grid-template-columns:1fr; } }
    .d1-card { background:var(--bg-card); border:1px solid var(--border); border-top:3px solid var(--brass); padding:0 0 20px; display:flex; flex-direction:column; }
    .d1-card .ph img { width:100%; aspect-ratio:3/2; object-fit:cover; }
    .d1-card-in { padding:18px 22px 0; display:flex; flex-direction:column; gap:9px; flex:1; }
    .d1-card-title { font-family:'Playfair Display',Georgia,serif; font-size:21px; font-weight:600; line-height:1.25; color:var(--text); }
    .d1-card-deck { font-size:14px; line-height:1.6; color:var(--text-muted); flex:1; }
    .d1-card .prov { margin-top:4px; }

    /* THE ATLAS & THE SHELF DUO */
    .d1-duo { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; align-items:stretch; }
    @media (max-width:900px) { .d1-duo { grid-template-columns:1fr; } }
    .d1-vessel { background:var(--bg-card); border:1px solid var(--border); border-top:3px solid var(--tide-water); padding:24px 28px; display:flex; flex-direction:column; gap:12px; }
    .d1-vessel-name { font-family:'Playfair Display',Georgia,serif; font-size:27px; font-weight:600; line-height:1.15; color:var(--text); }
    .d1-vessel-type { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.14em; color:var(--text-muted); }
    .d1-vessel-dek { font-family:Georgia,serif; font-size:15.5px; line-height:1.65; color:var(--text-muted); }
    .d1-missions { display:flex; gap:8px; flex-wrap:wrap; }
    .d1-mission { font-variant-caps:small-caps; font-size:12px; letter-spacing:.10em; color:var(--text-muted); border:1px solid var(--border); border-radius:3px; padding:3px 9px; }
    .d1-shelf { background:var(--bg-card); border:1px solid var(--border); padding:8px 28px; display:flex; flex-direction:column; }
    .d1-shelf-row { padding:15px 0; border-bottom:1px solid var(--border-soft); }
    .d1-shelf-row:last-child { border-bottom:none; }
    .d1-shelf-cat { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.13em; color:var(--tide-water); display:block; margin-bottom:4px; }
    .d1-shelf-title { font-family:'Playfair Display',Georgia,serif; font-size:17.5px; font-weight:500; line-height:1.3; color:var(--text); }
    .d1-shelf-deck { font-size:13.5px; color:var(--text-muted); line-height:1.55; margin-top:4px; }

    /* THE TOOL LOCKER — steps up on quiet weeks */
    .tl-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    @media (max-width:1000px) { .tl-grid { grid-template-columns:1fr 1fr; } }
    @media (max-width:560px) { .tl-grid { grid-template-columns:1fr; } }
    .tl-card { background:var(--bg-card); border:1px solid var(--border); border-top:3px solid var(--tide-water); padding:20px 22px; display:flex; flex-direction:column; gap:8px; }
    .tl-name { font-family:'Playfair Display',Georgia,serif; font-size:19px; font-weight:600; line-height:1.25; }
    .tl-desc { font-size:13.5px; line-height:1.6; color:var(--text-muted); flex:1; }
    .tl-meta { font-family:'Inter',-apple-system,sans-serif; font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--text-muted); }

    /* THE REFERENCE SHELF — expanded on quiet weeks */
    .shelf-2col { display:grid; grid-template-columns:1fr 1fr; gap:0 44px; background:var(--bg-card); border:1px solid var(--border); padding:8px 28px; }
    @media (max-width:820px) { .shelf-2col { grid-template-columns:1fr; } }

    /* FROM THE WATER — the Harbormaster's Office */
    .hw-duo { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; align-items:stretch; }
    @media (max-width:900px) { .hw-duo { grid-template-columns:1fr; } }
    .hw-report { background:var(--bg-card); border:1px solid var(--border); border-left:3px solid var(--brass); padding:22px 26px; display:flex; flex-direction:column; gap:10px; }
    .hw-rtype { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.13em; color:var(--brass); }
    .hw-position { font-variant-caps:small-caps; font-size:12px; font-weight:500; letter-spacing:.12em; color:var(--text-muted); }
    .hw-observation { font-family:Georgia,serif; font-size:15.5px; line-height:1.65; color:var(--text); }
    .hw-byline { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.03em; color:var(--text-muted); padding-top:10px; border-top:1px solid var(--border-soft); text-transform:uppercase; }
    .hw-specimen { font-style:italic; font-size:12.5px; color:var(--text-dim); }
    .hw-intake { background:var(--bg-card-hi); border:1px solid var(--border); padding:22px 26px; display:flex; flex-direction:column; gap:12px; }
    .hw-intake-title { font-family:'Playfair Display',Georgia,serif; font-size:20px; font-weight:600; line-height:1.25; color:var(--text); }
    .hw-intake-sub { font-size:13.5px; line-height:1.55; color:var(--text-muted); }
    .hw-flabel { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.13em; color:var(--text-muted); }
    .hw-chips { display:flex; gap:7px; flex-wrap:wrap; }
    .hw-chip { font-size:12.5px; color:var(--text-muted); border:1px solid var(--border); border-radius:3px; padding:4px 10px; background:var(--bg-card); }
    .hw-field { font-family:Georgia,serif; font-style:italic; font-size:14px; color:var(--text-dim); border:1px solid var(--border); background:var(--bg-card); padding:10px 12px; line-height:1.5; }
    .hw-cta { align-self:flex-start; font-variant-caps:small-caps; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--bg); background:var(--text); border-radius:4px; padding:10px 20px; margin-top:2px; text-decoration:none; }
    .hw-note { font-size:12.5px; color:var(--text-dim); font-style:italic; }

    /* THE WORKING WATERFRONT — broker + manuals & services */
    .ww-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
    @media (max-width:900px) { .ww-grid { grid-template-columns:1fr; } }
    .ww-card { background:var(--bg-card); border:1px solid var(--border); border-top:3px solid var(--brass); padding:22px 26px; display:flex; flex-direction:column; gap:10px; }
    .ww-flag { font-variant-caps:small-caps; font-size:12px; font-weight:700; letter-spacing:.16em; color:var(--brass); }
    .ww-name { font-family:'Playfair Display',Georgia,serif; font-size:24px; font-weight:600; line-height:1.18; }
    .ww-role { font-variant-caps:small-caps; font-size:12px; font-weight:500; letter-spacing:.13em; color:var(--text-muted); }
    .ww-dek { font-family:Georgia,serif; font-size:15px; line-height:1.65; color:var(--text-muted); flex:1; }
    .ww-sysrow { display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid var(--border-soft); font-size:14px; }
    .ww-sysrow:last-of-type { border-bottom:none; }
    .ww-syslabel { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--text-muted); }
    .ww-sysval { text-align:right; line-height:1.45; }
    .ww-census { font-family:'Inter',-apple-system,sans-serif; font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--text-muted); }

    /* ARCHIVE PHOTO — From the Wheelhouse, full-width plate */
    .d1-plate { background:var(--bg-card); border:1px solid var(--border); }
    .d1-plate .ph { margin:0; }
    .d1-plate .ph img { width:100%; aspect-ratio:21/9; object-fit:cover; display:block; }
    .d1-plate-strip { display:grid; grid-template-columns:1fr auto; gap:8px 40px; align-items:baseline; padding:20px 28px 22px; }
    .d1-plate-kicker { grid-column:1; }
    .d1-plate-title { grid-column:1; font-family:'Playfair Display',Georgia,serif; font-size:26px; font-weight:600; line-height:1.2; }
    .d1-plate-cap { grid-column:1; font-size:14px; line-height:1.6; color:var(--text-muted); max-width:88ch; }
    .d1-plate-prov { grid-column:2; grid-row:1 / span 3; align-self:end; text-align:right; display:flex; flex-direction:column; gap:6px; }
    .d1-plate-prov .cred { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--text-dim); }
    @media (max-width:820px) { .d1-plate-strip { grid-template-columns:1fr; } .d1-plate-prov { grid-column:1; grid-row:auto; text-align:left; } }

    /* RADAR LEDGER (retired on the public band; kept for mockups) */
    .d1-ledger { background:var(--bg-card); border:1px solid var(--border); padding:6px 24px; }
    .d1-ledger-row { display:grid; grid-template-columns:150px 1fr auto; gap:16px; padding:13px 0; border-bottom:1px solid var(--border-soft); align-items:baseline; }
    .d1-ledger-row:last-child { border-bottom:none; }
    .d1-ledger-src { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--brass); }
    .d1-ledger-hl { font-size:14px; line-height:1.5; color:var(--text); }
    .d1-ledger-ts { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-muted); white-space:nowrap; }
    .d1-ledger-row .hm-note { grid-column:1 / -1; }
    @media (max-width:700px) { .d1-ledger-row { grid-template-columns:1fr auto; } .d1-ledger-hl { grid-column:1/-1; } }

    /* RADAR CARDS — signed Layout C. White cards on beige, no outer plate. */
    .radar-duo { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; margin-bottom:22px; min-width:0; }
    .radar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start; min-width:0; }
    .radar-duo:empty, .radar-grid:empty { display:none; }
    .radar-card { background:var(--bg-card); border:1px solid var(--border); border-top:3px solid var(--link); border-radius:4px; padding:16px 18px 18px; min-width:0; overflow:visible; }
    .radar-card .rd-src { font:600 12px/1.3 'Inter',sans-serif; margin:0 0 8px; }
    .radar-card .rd-src, .radar-card .rd-src a { color:var(--link); }
    .radar-card .rd-src a { text-decoration:none; border-bottom:1px solid var(--link); }
    .radar-card .rd-head { font-family:'Playfair Display',Georgia,serif; font-weight:600; font-size:19px; line-height:1.2; letter-spacing:-.005em; color:var(--text); margin:0 0 6px; overflow-wrap:anywhere; }
    .radar-card .rd-gloss { font:italic 400 13px/1.4 Georgia,serif; color:var(--text-muted); margin:0 0 10px; overflow-wrap:anywhere; }
    .radar-card .rd-row { display:grid; grid-template-columns:3.6rem minmax(0,1fr); gap:2px 10px; padding:7px 0; border-top:1px solid var(--border-soft); min-width:0; }
    .radar-card .rd-k { font:700 10.5px/1.5 'Inter',sans-serif; letter-spacing:.09em; text-transform:uppercase; color:var(--brass); }
    .radar-card .rd-v { font:400 13.5px/1.5 'Inter',sans-serif; color:var(--text); min-width:0; overflow-wrap:anywhere; }
    .radar-do { margin-top:10px; background:var(--bg-card-hi); border:1px solid var(--border-soft); border-left:3px solid var(--brass); border-radius:0 3px 3px 0; padding:8px 10px; min-width:0; }
    .radar-do .rd-dok { display:block; font:700 10px/1.4 'Inter',sans-serif; letter-spacing:.11em; text-transform:uppercase; color:var(--brass); margin-bottom:2px; }
    .radar-do .rd-dov { font:400 13.5px/1.5 'Inter',sans-serif; color:var(--text); min-width:0; overflow-wrap:anywhere; }
    .radar-duo .radar-card .rd-head { font-size:22px; }
    .radar-desk { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-top:16px; padding-top:12px; border-top:1px solid var(--border-soft); }
    .radar-desk a { font:600 13px/1.3 'Inter',sans-serif; color:var(--link); text-decoration:none; border-bottom:1px solid var(--link); }
    .radar-desk .rd-hint { font-size:12.5px; color:var(--text-muted); font-style:italic; }
    @media (max-width:820px) { .radar-duo, .radar-grid { gap:14px; } .radar-card { padding:13px 13px 14px; } .radar-card .rd-head { font-size:17px; } .radar-duo .radar-card .rd-head { font-size:20px; } }
    @media (max-width:520px) { .radar-duo, .radar-grid { grid-template-columns:1fr; } .radar-desk { flex-direction:column; gap:6px; } .radar-card .rd-row { grid-template-columns:auto minmax(0,1fr); } }

    /* BEFORE YOU LEAVE THE DOCK — Float Plan closer */
    .brass-link { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--brass); border-bottom:1px solid var(--brass); padding-bottom:1px; display:inline-block; text-decoration:none; }
    .fp-band { display:grid; grid-template-columns:1.3fr 1fr; gap:0; background:var(--bg-card); border:1px solid var(--border); border-left:4px solid var(--brass); }
    @media (max-width:820px) { .fp-band { grid-template-columns:1fr; } }
    .fp-pitch { padding:26px 30px; display:flex; flex-direction:column; gap:10px; justify-content:center; }
    .fp-title { font-family:'Playfair Display',Georgia,serif; font-size:24px; font-weight:600; line-height:1.2; color:var(--text); }
    .fp-dek { font-family:Georgia,serif; font-size:15.5px; line-height:1.65; color:var(--text-muted); max-width:56ch; }
    .fp-promise { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.13em; color:var(--brass); }
    .fp-mini { padding:26px 30px; border-left:1px solid var(--border-soft); background:var(--bg-card-hi); display:flex; flex-direction:column; gap:10px; justify-content:center; }
    @media (max-width:820px) { .fp-mini { border-left:none; border-top:1px solid var(--border-soft); } }
    .fp-row { display:grid; grid-template-columns:110px 1fr; gap:12px; align-items:center; }
    .fp-lab { font-variant-caps:small-caps; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--text-muted); }
    .fp-val { font-family:Georgia,serif; font-style:italic; font-size:14px; color:var(--text-dim); border-bottom:1px solid var(--border); padding:6px 2px; }
    .fp-cta { align-self:flex-start; margin-top:6px; }
