/* AI Early Edition — Publisher cyberpunk palette (2026-09-07) */
:root{
  --ground:#07060c;
  --ink:#f2e9f5;
  --muted:#a89bb8;
  --rule:#3d2a55;
  --desk:#ff2d95;
  --cyan:#2ee6d6;
  --magenta:#d946ef;
  --orange:#ff6b35;
  --yellow:#ffe566;
  --card:#120e1c;
  --max:42rem;
  --wide:56rem;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:18px}
body{
  margin:0;
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(46,230,214,.12), transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 0%, rgba(255,45,149,.1), transparent 50%),
    linear-gradient(180deg, #0a0814 0%, var(--ground) 40%, #05040a 100%);
  color:var(--ink);
  font-family:Georgia,"Times New Roman",Times,serif;
  line-height:1.55;
  min-height:100vh;
}
a{color:var(--cyan);text-underline-offset:2px}a:hover{color:var(--desk)}
.wrap{max-width:var(--wide);margin:0 auto;padding:1.25rem 1.25rem 3rem}
.site-header{border-bottom:2px solid var(--rule);padding-bottom:.85rem;margin-bottom:1.5rem;box-shadow:0 1px 0 rgba(46,230,214,.25)}
.chrome-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.85rem}
.chrome-nav a{text-decoration:none;border-bottom:1px solid transparent;color:var(--ink)}
.chrome-nav a:hover{border-bottom-color:var(--cyan);color:var(--cyan)}
.masthead{text-align:center;padding:.5rem 0 .75rem}
.masthead .paper-name{font-family:"Times New Roman",Times,Georgia,serif;font-size:clamp(2rem,6vw,3.4rem);font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.05}
.masthead .paper-name a{text-decoration:none;background:linear-gradient(90deg,var(--cyan),var(--magenta),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
.masthead .tagline{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.85rem;font-style:italic;color:var(--muted);margin:.45rem 0 .65rem}
.masthead .meta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.4rem 0}
.section-chip{color:var(--cyan);font-weight:700}
.edition-date{color:var(--orange);font-weight:700}
.desk-label{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--desk);text-shadow:0 0 12px rgba(255,45,149,.35)}
.dateline{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.kicker{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;margin-bottom:.35rem}
h1.hed{font-size:clamp(1.55rem,3.5vw,2.15rem);line-height:1.15;margin:.15rem 0 .5rem;font-weight:700;color:var(--ink)}
.dek{font-size:1.05rem;color:var(--muted);margin:0 0 .75rem;line-height:1.4}
.byline{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.82rem;margin:0 0 1.25rem;font-weight:600;color:var(--cyan)}
.lead-block{border-bottom:1px solid var(--rule);padding-bottom:1.5rem;margin-bottom:1.5rem}
.lead-block .hed a{text-decoration:none;color:var(--ink)}.lead-block .hed a:hover{color:var(--cyan)}
.section-label{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--desk);padding-bottom:.3rem;margin:0 0 1rem;color:var(--magenta)}
.brief-teaser,.also-today,.corrections-block{margin-bottom:1.75rem}
.brief-teaser p{margin:.4rem 0 .75rem}
.card-list{list-style:none;padding:0;margin:0}
.card-list li,.story-card{display:flex;gap:.85rem;align-items:flex-start;padding:.85rem 0;border-bottom:1px solid var(--rule)}
.story-card__body{min-width:0;flex:1 1 auto}
.card-list .hed-link{font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-block;line-height:1.25;margin:.2rem 0;color:var(--ink)}
.card-list .hed-link:hover{color:var(--cyan)}
.story-card .byline{margin:0.35rem 0 0}
/* ===== Item 2 (2026-10-02): front cards 5–7 + 2-column grid ===== */
.story-card .card-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .75rem;margin:.4rem 0 0}
.story-card .card-meta .byline{margin:0}
.story-card .card-meta .dateline{font-size:.7rem}
time.dateline{text-transform:none;letter-spacing:.02em}
.story-card .kicker{margin-bottom:.15rem}
.card-list .hed-link{overflow-wrap:break-word;hyphens:manual}
@media(min-width:768px){
  .card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.75rem;align-items:stretch}
  .card-list>li{min-width:0}
  .card-list>li:only-child{grid-column:1/-1}
}
@media(min-width:768px) and (max-width:1023px){.story-card .hed-image.card,.story-card .hed-image.card .hed-image__frame{width:120px;max-width:120px}}
/* ===== end item 2 ===== */
.story-body{max-width:var(--max)}
.story-body p{margin:0 0 1rem}
.story-body h2{font-size:1.15rem;margin:1.5rem 0 .6rem;border-bottom:1px solid var(--rule);padding-bottom:.25rem;color:var(--cyan)}
.story-body ul,.story-body ol{margin:0 0 1rem;padding-left:1.25rem}
.story-body li{margin-bottom:.35rem}
.story-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:#1a1528;color:var(--yellow);padding:.05em .3em;border:1px solid var(--rule)}
.meta-block{max-width:var(--max);margin-top:2rem;padding-top:1rem;border-top:1px solid var(--rule)}
.meta-block h2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--desk);margin:1.25rem 0 .5rem}
.meta-block ol,.meta-block ul{margin:0 0 .5rem;padding-left:1.2rem}
.meta-block li{margin-bottom:.35rem;font-size:.95rem}
.correction{max-width:var(--max);border:1px solid var(--desk);background:rgba(255,45,149,.08);padding:.85rem 1rem;margin:1.5rem 0;box-shadow:0 0 24px rgba(255,45,149,.15)}
.correction h2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--desk);margin:0 0 .4rem}
.edition-stamp{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;color:var(--muted);margin-top:1.5rem}
.site-footer{margin-top:2.5rem;padding-top:1rem;border-top:2px solid var(--rule);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;color:var(--muted);box-shadow:0 -1px 0 rgba(46,230,214,.2)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.04em}
.site-footer a{text-decoration:none;color:var(--ink)}.site-footer a:hover{color:var(--cyan)}
.desk-page h1,.file-page h1,.page-title{font-size:1.75rem;margin:0 0 1rem}
.desk-page dt{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--desk);margin-top:1rem}
.desk-page dd{margin:.2rem 0 0}
.file-table{width:100%;border-collapse:collapse;font-size:.92rem}
.file-table th,.file-table td{text-align:left;vertical-align:top;padding:.55rem .4rem;border-bottom:1px solid var(--rule)}
#archive-table td:last-child{overflow-wrap:anywhere}
.meta-block a{overflow-wrap:anywhere}
.file-table th{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.not-in-file{text-align:center;padding:4rem 1rem}
.not-in-file h1{font-size:1.75rem;margin-bottom:1rem}
/* Headline images — lead > story > card hierarchy (IA rev E) */
.hed-image{margin:0 0 1rem;max-width:100%}
.hed-image__frame{overflow:hidden;width:100%;aspect-ratio:3/2;background:var(--card);border:1px solid var(--rule)}
.hed-image__frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.hed-image__credit{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;color:var(--muted);margin:.35rem 0 0;line-height:1.35}
.hed-image.lead{margin:0 auto 1.15rem;max-width:560px}
.hed-image.lead .hed-image__frame{aspect-ratio:5/4;min-height:0;max-height:320px}
.hed-image.lead .hed-image__frame img{object-fit:cover;object-position:center 42%;max-width:560px}
.hed-image.story{margin:.25rem 0 1.35rem;max-width:var(--max)}
.hed-image.story .hed-image__frame{aspect-ratio:3/2;min-height:0;max-height:260px}
.hed-image.story .hed-image__frame img{object-position:center top}
.hed-image.card{margin:0;flex:0 0 auto;width:144px;max-width:160px}
.hed-image.card .hed-image__frame{width:144px;max-width:160px;aspect-ratio:4/3;min-height:0;max-height:none}
.hed-image.card .hed-image__frame img{object-fit:cover;object-position:center 40%}
.hed-image.card .hed-image__credit{display:none}
@media(max-width:640px){html{font-size:17px}.wrap{padding:1rem .9rem 2.5rem}}

/* ===== Item 1 wiring (2026-10-02): AP times, Updated line, masthead Updated ===== */
time.dateline{text-transform:none;letter-spacing:.02em}
.updated{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;color:var(--orange);margin:-.9rem 0 1.25rem;letter-spacing:.02em}
.updated time{color:inherit}
.masthead .meta-row .masthead-updated{color:var(--muted);font-weight:600;text-transform:none;letter-spacing:.02em}
/* ===== end item 1 wiring ===== */

/* — Publisher rework: tickers, about, archive, signup, trending — */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.archive-dek{color:var(--muted);font-style:italic;margin:-.5rem 0 1.25rem}
.archive-search{display:block;width:100%;max-width:28rem;margin:0 0 1rem;padding:.55rem .7rem;background:#0a0814;border:1px solid var(--rule);color:var(--ink);font-size:.95rem}
.trending-block{margin-bottom:1.75rem}
.trending-list{list-style:none;padding:0;margin:0}
.trending-list li{padding:.55rem 0;border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}
.trending-list a{text-decoration:none;color:var(--ink);font-weight:600}.trending-list a:hover{color:var(--cyan)}
.trend-tag{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);border:1px solid var(--orange);padding:.1rem .35rem}
/* For You (Oct 3): square corners, house palette; the Trending label lives only in .for-you.
   Compact card (Publisher, Oct 3 8:40 p.m. CT): one link per card in the Market Pulse tile frame (.pulse-box:
   var(--card), 1px var(--rule) border, square corners), clearly secondary to the lead: a small thumb on the left that
   fills the card's full inner height edge to edge (one frame: no inner border, padding or background; object-fit cover
   with the story's focal point; the story's hed_image or the wordmark card), then Trending, the hed and the section.
   FIXED card height for every story (--fy-h); the hed is clamped to the lines a 70-character hed needs (3 at <= 480,
   2 above) and scripts/check-foryou.py fails on any truncation. "Trending": plain text, no box, #ff8f45 (8.38:1 on
   var(--card)), aria-hidden (Rim). Carousel at every width: one card at a time on a scroll-snap track (swipes with no
   JS); /scripts/foryou.js adds auto-advance (5 s, loop), dots and pause/play. The control row's height is reserved and
   it becomes visible once the script runs (data-carousel="on"): no CLS. --foryou-css is the sentinel foryou.js reads
   before it reveals the controls (they ship with `hidden`): bump it with any change the script depends on. */
.for-you{--fy-h:6rem;--fy-thumb:9rem;--fy-lines:2;--fy-hed:1.05rem;--foryou-css:2}
.for-you .foryou-strip{list-style:none;margin:0;padding:0;display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.for-you .foryou-strip::-webkit-scrollbar{display:none}
.for-you .foryou-card{flex:0 0 100%;min-width:0;scroll-snap-align:start;padding:0;border:0;display:block}
.for-you .foryou-box{display:flex;flex-direction:row;align-items:stretch;box-sizing:border-box;height:var(--fy-h);padding:0;overflow:hidden;background:var(--card);border:1px solid var(--rule);border-radius:0;color:var(--ink);text-decoration:none}
.for-you a.foryou-box:hover .foryou-hed{color:var(--cyan)}
.for-you a.foryou-box:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.for-you .hed-image.card,.for-you .hed-image.card .hed-image__frame{flex:0 0 var(--fy-thumb);width:var(--fy-thumb);max-width:none;height:100%;margin:0;padding:0}
.for-you .hed-image.card .hed-image__frame{aspect-ratio:auto;border:0;background:none;border-radius:0}
.for-you .hed-image.card .hed-image__frame img{width:100%;height:100%;object-fit:cover}
.for-you .foryou-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:.5rem .6rem}
.for-you .trend-tag{border:0;padding:0;background:none;border-radius:0;display:block;line-height:1.2;margin:0;color:#ff8f45;font-weight:700}
.for-you .foryou-hed{font-family:"Times New Roman",Times,Georgia,serif;font-size:var(--fy-hed);font-weight:600;line-height:1.25;color:var(--ink);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--fy-lines);line-clamp:var(--fy-lines);overflow:hidden;flex:0 0 auto}
.for-you .trend-desk{white-space:nowrap;line-height:1.2;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.for-you .foryou-controls{display:flex;align-items:center;justify-content:center;gap:.15rem;height:2.25rem;margin-top:.35rem;visibility:hidden}
.for-you[data-carousel="on"] .foryou-controls{visibility:visible}
.for-you .foryou-dot,.for-you .foryou-toggle{flex:0 0 auto;width:28px;height:28px;padding:0;margin:0;border:0;background:none;border-radius:0;cursor:pointer;display:grid;place-items:center;color:var(--ink)}
.for-you .foryou-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:rgba(242,233,245,.35)}
.for-you .foryou-dot[aria-current="true"]::before{background:var(--ink)}
.for-you .foryou-toggle{margin-right:.35rem}
.for-you .foryou-toggle__icon{display:block;width:10px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor;box-sizing:border-box}
.for-you .foryou-toggle[aria-label="Play carousel"] .foryou-toggle__icon{width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent currentColor}
.for-you .foryou-dot:focus-visible,.for-you .foryou-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
@media(max-width:480px){.for-you{--fy-h:6.75rem;--fy-thumb:6.5rem;--fy-lines:3;--fy-hed:.95rem}}
@media(prefers-reduced-motion:reduce){.for-you[data-carousel="on"] .foryou-toggle{visibility:hidden}}
.signup-block,.contact-block{margin-bottom:1.5rem;padding:1rem;background:var(--card);border:1px solid var(--rule)}
.signup-copy{margin:.35rem 0 1rem;color:var(--muted)}
.signup-form{display:flex;flex-wrap:wrap;gap:.5rem}
.signup-form input[type=email]{flex:1 1 12rem;min-width:10rem;padding:.55rem .7rem;background:#0a0814;border:1px solid var(--rule);color:var(--ink);font-size:.95rem}
.signup-form button{padding:.55rem 1rem;background:var(--desk);color:#fff;border:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.signup-form button:hover{background:var(--magenta)}
.signup-note{font-size:.78rem;color:var(--muted);margin:.65rem 0 0}
.signup-note code{font-size:.9em;color:var(--cyan)}
.about-page .about-grid{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:1.5rem 2rem;align-items:start}
@media(max-width:640px){.about-page .about-grid{grid-template-columns:1fr}}
.photo-placeholder{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;background:var(--card);border:1px dashed var(--rule);color:var(--muted);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.photo-caption{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;margin:.4rem 0 0;color:var(--cyan)}
.about-role{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--desk);margin:-.5rem 0 1rem}
.about-copy h2{font-size:1.25rem;margin:1.5rem 0 .6rem;color:var(--cyan);border-bottom:1px solid var(--rule);padding-bottom:.25rem}
.about-copy h2:first-child{margin-top:0}
.about-copy p{margin:0 0 1rem;max-width:var(--max)}

.about-photo{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center top;border:1px solid var(--rule);box-shadow:0 0 28px rgba(46,230,214,.12)}
.photo-placeholder{display:none}

/* About photo — small */
.about-page .about-grid{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem 1.25rem;align-items:start}
.about-photo-slot{max-width:96px;width:96px}
.about-photo{display:block;width:96px;height:128px;object-fit:cover;object-position:center top;border:1px solid var(--rule);box-shadow:0 0 16px rgba(46,230,214,.12)}
.about-copy{min-width:0}
.photo-placeholder{display:none}
@media(max-width:640px){.about-page .about-grid{grid-template-columns:80px minmax(0,1fr)}.about-photo-slot,.about-photo{width:80px;max-width:80px;height:106px}}

/* About photo — natural aspect */
.about-page .about-grid{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem 1.25rem;align-items:start}
.about-photo-slot{max-width:96px;width:96px}
.about-photo{display:block;width:96px;height:auto;max-width:96px;aspect-ratio:auto;object-fit:contain;object-position:center top;border:1px solid var(--rule);box-shadow:0 0 16px rgba(46,230,214,.12)}
.about-copy{min-width:0}
@media(max-width:640px){.about-page .about-grid{grid-template-columns:80px minmax(0,1fr)}.about-photo-slot{width:80px;max-width:80px}.about-photo{width:80px;max-width:80px;height:auto}}

/* About photo — slightly larger, tighter gap */
.about-page .about-grid{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:0.85rem;row-gap:1rem;align-items:start;justify-items:start}
.about-photo-slot{max-width:112px;width:112px;justify-self:start}
.about-photo{display:block;width:112px;height:auto;max-width:112px;aspect-ratio:auto;object-fit:contain;object-position:center top;border:1px solid var(--rule);box-shadow:0 0 16px rgba(46,230,214,.12)}
.about-copy{min-width:0}
.photo-caption{margin-top:.35rem}
@media(max-width:640px){.about-page .about-grid{grid-template-columns:96px minmax(0,1fr);column-gap:0.75rem}.about-photo-slot{width:96px;max-width:96px}.about-photo{width:96px;max-width:96px;height:auto}}

.hed-image[data-fit="contain"] .hed-image__frame{background:var(--card)}
.hed-image[data-fit="contain"] .hed-image__frame img{object-fit:contain}
/* Publisher zoom-out: lead contain drops fixed 5:4 crop box so full asset reads */
.hed-image.lead[data-fit="contain"]{max-width:480px}
.hed-image.lead[data-fit="contain"] .hed-image__frame{aspect-ratio:auto;max-height:none;height:auto;min-height:0}
.hed-image.lead[data-fit="contain"] .hed-image__frame img{object-fit:contain;object-position:center center;width:100%;height:auto;max-height:560px;max-width:100%}

/* ===== Item 3 (2026-10-02): Sections menu + section fronts ===== */
.chrome-nav{align-items:center;justify-content:space-between;position:relative;z-index:20}
.sections-menu{position:relative}
.sections-menu>summary{list-style:none;cursor:pointer;color:var(--ink);font-weight:700;padding:.35rem .1rem;display:inline-flex;align-items:center;gap:.4rem;border-bottom:1px solid transparent;-webkit-user-select:none;user-select:none}
.sections-menu>summary::-webkit-details-marker{display:none}
.sections-menu>summary::marker{content:""}
.sections-menu>summary::after{content:"";width:0;height:0;border-left:.3rem solid transparent;border-right:.3rem solid transparent;border-top:.36rem solid var(--cyan);transition:transform .15s}
.sections-menu[open]>summary::after{transform:rotate(180deg)}
.sections-menu>summary:hover,.sections-menu[open]>summary{color:var(--cyan);border-bottom-color:var(--cyan)}
.sections-menu>summary:focus-visible,.sections-panel a:focus-visible,.rail-subscribe:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sections-panel{position:absolute;left:0;top:calc(100% + .35rem);margin:0;padding:.35rem 0;list-style:none;min-width:12rem;max-width:calc(100vw - 2rem);background:var(--card);border:1px solid var(--rule);border-top:2px solid var(--desk);box-shadow:0 10px 28px rgba(0,0,0,.6),0 0 18px rgba(46,230,214,.12)}
.sections-panel li{margin:0;padding:0;border:0}
.sections-panel a{display:block;padding:.6rem 1rem;color:var(--ink);text-decoration:none;border-bottom:0;white-space:nowrap}
.sections-panel a:hover,.sections-panel a:focus-visible{color:var(--cyan);background:rgba(46,230,214,.08)}
.sections-panel a[aria-current="page"]{color:var(--desk)}
.chrome-nav .rail-subscribe{color:var(--desk);font-weight:700;padding:.35rem .1rem}
.chrome-nav .rail-subscribe:hover{color:var(--cyan)}
.section-title{color:var(--magenta);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--desk);padding-bottom:.35rem}
.section-lead h2.hed{font-size:clamp(1.4rem,3.2vw,1.95rem);line-height:1.15;margin:.15rem 0 .5rem;font-weight:700}
.section-lead .hed a{color:var(--ink);text-decoration:none}.section-lead .hed a:hover{color:var(--cyan)}
.shelf-group{margin-bottom:1.75rem}
time.dateline{text-transform:none;letter-spacing:.02em}
.card-list .hed-link{overflow-wrap:break-word}
/* ===== end item 3 ===== */

/* — Labels (Architect A): AP edition dates keep their case inside uppercase chrome ("Oct. 2, 2026", "(5pm)") — */
.ap-date{text-transform:none;letter-spacing:.02em}
/* — Card times (Conti ruling): "… CT. Updated 4:55 p.m." on cards and front leads — */
.card-time{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.72rem;color:var(--muted);letter-spacing:.02em}
.story-card .card-meta .card-time{font-size:.7rem}
.card-time .card-updated{color:var(--orange)}
/* — Item 5 story chrome (StoryTools + MoreFrom): small sans text links, no icons — */
.story-tools{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.1rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;margin:-.6rem 0 1.25rem}
.story-tools .tool-link{font:inherit;color:var(--cyan);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule)}
.story-tools .tool-link:hover{color:var(--desk)}
.story-tools summary.tool-link{list-style:none}
.story-tools summary.tool-link::-webkit-details-marker{display:none}
.story-tools summary.tool-link::after{content:" +";color:var(--muted)}
.story-tools details[open]>summary.tool-link::after{content:" \2212"}
.story-tools .tool-copied{color:var(--ink);font-weight:600}
.story-tools .tool-copied:empty{display:none}
.story-tools .tool-copy.is-done{color:var(--ink);text-decoration-style:solid;text-decoration-color:var(--ink)}
.story-tools .tool-copy-field{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--rule);padding:.15rem .35rem;width:min(100%,24rem)}
.story-tools details{display:inline}
.story-tools .tool-share[open]{display:inline-flex;flex-wrap:wrap;gap:.35rem .9rem}
.story-tools .tool-share-links{display:inline-flex;flex-wrap:wrap;gap:.35rem .9rem}
.story-tools .tool-sources[open]{display:block;flex-basis:100%}
.story-tools .tool-sources-list{margin:.4rem 0 0;padding-left:1.2rem;font-size:.82rem;line-height:1.45}
.story-tools .tool-sources-list a{overflow-wrap:anywhere}
.story-tools .tool-native[hidden]{display:none}
@media (max-width:767px){
  .story-tools.has-native .tool-share{display:none}
  .story-tools .tool-share[open]{display:flex;flex-basis:100%}
}
@media (min-width:768px){.story-tools .tool-native{display:none}}
/* Story-page Share (Publisher, Oct 4 6:21 a.m. CT): the first Share control (native button on phones with Web Share,
   else the disclosure) in a thin Trending-orange box with an inline share arrow. #ff8f45 beats house orange #ff6b35
   on the ground #07060c (8.91:1 vs 7.12:1). Same font and line-height as Copy link, icon after the label (Oct 4 8:01 a.m.).
   Same label and behaviour; the end-of-story callout is unchanged. */
.story-tools--accent .tool-native,.story-tools--accent .tool-share>summary.tool-link{display:inline-flex;align-items:center;gap:.3rem;font:inherit;line-height:inherit;color:#ff8f45;border:1px solid #ff8f45;border-radius:3px;padding:.05rem .5rem;white-space:nowrap;text-decoration:none}
.story-tools--accent .tool-native[hidden]{display:none}
.story-tools--accent .tool-native:hover,.story-tools--accent .tool-share>summary.tool-link:hover{color:#ff8f45;background:rgba(255,143,69,.14)}
.story-tools--accent .tool-native:focus-visible,.story-tools--accent .tool-share>summary.tool-link:focus-visible{outline:2px solid #ff8f45;outline-offset:2px;background:rgba(255,143,69,.14)}
/* No "+"/"−" on the accent Share (Publisher, Oct 4 8:01 a.m. CT): the native <details> toggle and aria-expanded are unchanged. */
.story-tools--accent .tool-share>summary.tool-link::after,.story-tools--accent details.tool-share[open]>summary.tool-link::after{content:none}
.story-tools .tool-share-icon{width:1em;height:1em;flex:0 0 auto}
@media (min-width:768px){.story-tools--accent .tool-native{display:none}}
.more-from{margin:2rem 0 0}
.more-from .more-list{margin-top:0}
/* — Item 6 desk pages (/by/<slug>) + byline links. --desk-red #ff4d4d: 6.17:1 on --ground #07060c, 5.81:1 on --card, >=5.6:1 on the pink top gradient (WCAG AA) — */
:root{--desk-red:#ff4d4d}
.byline a,.site-footer a.byline-link,a.byline-link{color:inherit;text-decoration-color:var(--rule);text-underline-offset:2px}
.byline a:hover,a.byline-link:hover{color:var(--desk-red)}
.author-mark{display:inline-flex;align-items:stretch;border:2px solid var(--ink);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;margin:0 0 1rem;line-height:1}
.author-mark .author-initials{font-size:1.6rem;font-weight:700;letter-spacing:.06em;padding:.45rem .6rem}
.author-mark .author-desk{border-left:2px solid var(--ink);color:var(--desk-red);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.45rem .6rem;display:flex;align-items:center}
.author-title{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:-.5rem 0 .75rem}
.author-page .author-name{margin-bottom:.5rem}
.author-beat{font-size:1.05rem;margin:0 0 1rem}
.author-section{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.85rem;font-weight:700;margin:0 0 1.5rem}
.author-sections ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.9rem}
.author-stories{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.author-stories li{padding:.7rem 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:.2rem}
.author-stories .hed-link{font-size:1.05rem;font-weight:700;color:var(--ink);text-decoration:none;line-height:1.3;overflow-wrap:break-word}
.author-stories .hed-link:hover{color:var(--cyan)}
/* — Item 4 trust pages + /corrections list — */
.trust-page .trust-body{margin-bottom:1.5rem}
.corrections-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.corrections-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .9rem;padding:.7rem 0;border-bottom:1px solid var(--rule)}
.corrections-list .hed-link{flex-basis:100%;font-size:1.05rem;font-weight:700;color:var(--ink);text-decoration:none;line-height:1.3;overflow-wrap:break-word}
.corrections-list .hed-link:hover{color:var(--cyan)}
.corrections-list .correction-text{flex-basis:100%;margin:.15rem 0 0;font-size:.95rem;line-height:1.5}
.corrections-index{margin-top:1.5rem}
/* — Edition bar colors (Publisher order, Oct 2 5:31 PM CT): match the masthead wordmark gradient
   (linear-gradient(90deg,var(--cyan),var(--magenta),var(--orange))). Edition date = middle stop --magenta;
   masthead "Updated" time = --orange. Replaces the old "edition date = orange" rule. — */
.masthead .meta-row .edition-date{color:var(--orange)} /* Sidney, Oct 3 5:39 a.m. CT: edition date back to --orange (was --magenta from Oct 2) */
.masthead .meta-row .masthead-updated{color:var(--orange)}

/* — Front declutter (Publisher order, Oct 3 5:12 a.m. CT): the masthead "Updated" time moves from the edition bar up to
   the top rail, between Sections and Subscribe. Rail colors:
   Sections --cyan, Updated --orange (Sidney's Oct 2 lock: the Updated time is orange), Subscribe --magenta (Calder, Oct 3 round 2).
   One line at every width: no wrap, nothing shrinks below its text; the rail type steps down at <=480px. — */
.chrome-nav{flex-wrap:nowrap;gap:.6rem;white-space:nowrap}
.sections-menu>summary{color:var(--cyan)}
.sections-menu>summary:hover,.sections-menu[open]>summary{color:var(--cyan);border-bottom-color:var(--cyan)}
.chrome-nav .rail-updated{color:var(--orange);font-weight:600;text-transform:none;letter-spacing:.02em;flex:0 0 auto}
.chrome-nav .rail-subscribe{color:var(--magenta)}
.chrome-nav .rail-subscribe:hover{color:var(--cyan)}
@media (max-width:480px){.chrome-nav{font-size:.72rem;letter-spacing:.03em;gap:.4rem}}

/* — Front declutter round 2 (Calder, Oct 3): FRONT page lead photo only, phones (<=480px): a shorter 16:9 box. Default
   remain CONTAINED (object-fit:contain!important) so the whole image shows; spare space is --card. Conti Oct 5: when
   hed_image_fit is cover (data-fit=cover), fill the frame edge to edge instead. — */
@media (max-width:480px){
  .front-lead .hed-image.lead .hed-image__frame{aspect-ratio:16/9;height:auto;max-height:none;min-height:0;background:var(--card)}
  .front-lead .hed-image.lead:not([data-fit="cover"]) .hed-image__frame img{width:100%;height:100%;max-height:none;max-width:100%;object-fit:contain!important;object-position:center center!important}
  .front-lead .hed-image.lead[data-fit="cover"] .hed-image__frame img{width:100%;height:100%;max-height:none;max-width:100%;object-fit:cover!important;object-position:center center!important}
}

/* — Front declutter round 2, gap (Calder, Oct 3): FRONT page, phones only (<=480px): the space between the ticker bar and the
   lead photo goes from ~42px (header padding 14.45 + 2px purple rule + 25.5 margin) to 16px (6 + 2px rule + 8). The rule stays.
   CSS-only via :has(.front-lead), which only the front's lead-block carries; browsers without :has keep the old gap. — */
@media (max-width:480px){
  .wrap:has(.front-lead) .site-header{padding-bottom:6px;margin-bottom:8px}
}

/* — Share callout (Publisher, Oct 3 9:49 a.m. CT; Briefs added later Oct 3): end of every story and Brief page, after the
   body / What’s next / correction / edition stamp and before related stories. Thin wordmark-gradient border (--orange to --magenta; square corners, house
   style). The Share link reuses the story-chrome share action (StoryTools.astro). — */
.share-callout{max-width:var(--max);margin:1.75rem 0 0;padding:1rem 1.15rem;background:var(--card);border:2px solid transparent;border-image:linear-gradient(90deg,var(--orange),var(--magenta)) 1}
.share-callout p{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.02rem;line-height:1.45;color:var(--ink);overflow-wrap:break-word}
.share-callout strong{font-weight:700}
.share-callout-link{color:var(--orange);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.share-callout-link:hover{color:var(--magenta)}
.share-callout-link:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.share-callout-status{display:inline-block;margin-left:.5rem;font-size:.85rem;font-weight:600;color:var(--cyan)}
.share-callout-status:empty{display:none}

/* — /brief/ section front (Publisher, Oct 3 10:17 a.m. CT): the newest Brief opens in full, styled like the front-page lead.
   Hed at the front lead's h1 scale; on phones the lead photo sits in the same 16:9 CONTAINED box as the front lead (never
   cropped). The front-only 16px header gap is not applied here. — */
.brief-lead h2.hed{font-size:clamp(1.55rem,3.5vw,2.15rem);line-height:1.15;margin:.15rem 0 .5rem;font-weight:700}
.brief-lead .story-body{margin-top:.5rem}
.brief-older{margin-top:.5rem}
@media (max-width:480px){
  .brief-lead .hed-image.lead .hed-image__frame{aspect-ratio:16/9;height:auto;max-height:none;min-height:0;background:var(--card)}
  .brief-lead .hed-image.lead:not([data-fit="cover"]) .hed-image__frame img{width:100%;height:100%;max-height:none;max-width:100%;object-fit:contain!important;object-position:center center!important}
  .brief-lead .hed-image.lead[data-fit="cover"] .hed-image__frame img{width:100%;height:100%;max-height:none;max-width:100%;object-fit:cover!important;object-position:center center!important}
}

/* — "Continue reading" button (Publisher, Oct 3 10:21 a.m. CT): under the featured (lead) story on the Policy, Product,
   Markets and Wire section fronts (SectionFront.astro only). House palette: orange label, orange→magenta border, square
   corners like the share box; 44px minimum tap height. — */
.continue-wrap{margin:.25rem 0 0}
.continue-reading{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;padding:.5rem 1.1rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.92rem;font-weight:700;letter-spacing:.02em;color:var(--orange);background:var(--card);text-decoration:none;border:2px solid transparent;border-image:linear-gradient(90deg,var(--orange),var(--magenta)) 1}
.section-lead .continue-reading{color:var(--orange)}
.continue-reading:hover,.section-lead .continue-reading:hover{color:var(--magenta)}
.continue-reading:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* — Market sparkline tiles (Publisher, Oct 3 5:48 p.m. CT: "all market charts should look like the pulse tiles";
   src/components/SparkTile.astro, public/scripts/pulse.js). Top bar on every page: compact tiles in the old ticker
   position, no strip outline (BTC, NVDA, AI basket); /tape/ "Market Pulse" panel: the 8 AI stocks (desktop 4x2 grid,
   phones one horizontal-scroll strip whose third tile peeks in; the page itself never scrolls sideways). Each tile is a
   square link box; the SVG height is fixed so "—" and the drawn line are the same height (no CLS). Up green #22c55e,
   down red #ef4444, 0.0% in var(--ink) (Rim). First-party only; no source or as-of text. — */
.ticker-bar{list-style:none;display:flex;justify-content:center;gap:.4rem;margin:.75rem 0 0;padding:0;border:0;background:none}
.pulse-tile{margin:0;min-width:0}
.pulse-box{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:.4rem;row-gap:.15rem;position:relative;box-sizing:border-box;height:100%;padding:.45rem .6rem;background:var(--card);border:1px solid var(--rule);border-radius:0;color:var(--ink);text-decoration:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
a.pulse-box:hover{border-color:var(--orange)}
a.pulse-box:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.pulse-lab{font-size:.85rem;font-weight:700;letter-spacing:.03em;color:var(--ink);white-space:nowrap}
.pulse-chg{font-size:.85rem;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;white-space:nowrap}
.pulse-name{grid-column:1/-1;font-size:.75rem;color:var(--muted);white-space:nowrap}
.pulse-svg{grid-column:1/-1;display:block;width:100%;height:32px;overflow:visible}
.pulse-zero{stroke:var(--rule);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.pulse-line{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:square;vector-effect:non-scaling-stroke}
.pulse-area{stroke:none;fill:var(--ink);opacity:.12}
.pulse-tile.up .pulse-chg{color:#22c55e}.pulse-tile.up .pulse-line{stroke:#22c55e}.pulse-tile.up .pulse-area{fill:#22c55e}
.pulse-tile.down .pulse-chg{color:#ef4444}.pulse-tile.down .pulse-line{stroke:#ef4444}.pulse-tile.down .pulse-area{fill:#ef4444}
.pulse-tile.flat .pulse-chg{color:var(--ink)}
/* compact bar tiles: one text row (symbol + change) over a 16px line */
.pulse-tile--bar{flex:1 1 0;max-width:8.5rem}
.pulse-tile--bar .pulse-box{padding:.25rem .45rem;row-gap:.1rem;line-height:1.2}
.pulse-tile--bar .pulse-lab,.pulse-tile--bar .pulse-chg{font-size:.72rem}
.pulse-tile--bar .pulse-svg{height:16px}
/* /tape/ Market Pulse panel */
.markets-panel{margin:0 0 1.25rem}
.markets-panel__h{margin:0 0 .5rem;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange)}
.markets-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
@media (max-width:480px){
  .markets-panel{display:flex;align-items:stretch;gap:.5rem;margin:-.25rem 0 .6rem}
  .markets-panel__h{flex:0 0 auto;align-self:center;margin:0;width:3.4rem;line-height:1.2}
  .markets-grid{flex:1 1 auto;min-width:0;display:flex;gap:.4rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:2px}
  .pulse-tile--panel{flex:0 0 7.2rem;scroll-snap-align:start}
  .pulse-tile--panel .pulse-box{padding:.3rem .5rem;row-gap:0;line-height:1.25}
  .pulse-tile--panel .pulse-svg{height:24px;margin-top:.15rem}
  .section-front[data-section=tape] .section-title{margin-bottom:.6rem}
}
