/* Lampline apex layout: shared stylesheet
   Navy ground. Lora headlines. Public Sans body at 16 to 17 px.
   Amber is used only for the lamp mark and sign-up buttons.
   Red is used only for Breaking. Controls are at least 48 px tall.
   Image and ad spaces are reserved in advance so nothing shifts. */

:root{
  --ground:#0B1220;
  --navy:#14213D;
  --navy-2:#1B2A4A;
  --surface:#FFFFFF;
  --surface-2:#F4F5F7;
  --ink:#14213D;
  --muted:#4A5568;
  --rule:#DCE0E7;
  --amber:#D9922A;
  --amber-dark:#B97A1E;
  --red:#B42318;
  --red-bg:#FDECEA;
  --red-ink:#7A1A12;
  --accent:#14213D;
  --f-display:"Lora", Georgia, "Times New Roman", serif;
  --f-body:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16.5px;
  line-height:1.55;
}
body.story-page{padding-bottom:92px}
.wrap{max-width:1180px;margin:0 auto;padding-left:16px;padding-right:16px}
a{color:var(--navy)}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid currentColor;outline-offset:2px}
button{font:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--f-display);line-height:1.15;margin:0}
p{margin:0}

/* Top bar: date, edition, city switcher */
.topbar{background:#060B16;color:#C8D2E4;font-size:14px}
.topbar .wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.topbar .edition-name{color:#FFFFFF;font-weight:600}
.cities{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap}
.cities a{
  color:#C8D2E4;text-decoration:none;font-weight:600;
  min-height:48px;display:inline-flex;align-items:center;padding:0 12px;
  border-bottom:3px solid transparent;
}
.cities a:hover{color:#FFFFFF}
.cities a[aria-current="page"]{color:#FFFFFF;border-bottom-color:#FFFFFF}

/* Masthead */
.masthead{background:var(--surface);border-bottom:1px solid var(--rule)}
.masthead .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-logo{display:block;width:197px;height:auto}
.brand-logo--compact{width:123px}
.brand-city{color:var(--ink);font-size:15px;font-weight:600;white-space:nowrap}
.masthead .spacer{flex:1}
.signin{color:var(--ink);font-weight:600;text-decoration:none;min-height:48px;display:inline-flex;align-items:center;padding:0 8px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:10px 20px;border-radius:6px;border:0;
  font-weight:700;text-decoration:none;font-size:16px;
}
.btn-navy{background:var(--navy);color:#FFFFFF}
.btn-navy:hover{background:var(--navy-2)}
.btn-amber{background:var(--amber);color:var(--navy)}
.btn-amber:hover{background:var(--amber-dark);color:#FFFFFF}

/* Beat nav */
.beatnav{background:var(--surface);border-bottom:1px solid var(--rule)}
.beatnav .wrap{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.beatnav a, .beatnav button{
  background:none;border:0;color:var(--ink);font-weight:600;text-decoration:none;
  min-height:48px;display:inline-flex;align-items:center;padding:0 14px;white-space:nowrap;
  border-bottom:3px solid transparent;
}
.beatnav a:hover, .beatnav button:hover{color:var(--accent)}
.beatnav [aria-pressed="true"]{border-bottom-color:var(--accent)}

/* Breaking bar: the only red on any page */
.breaking{background:var(--red-bg);color:var(--red-ink);border-bottom:2px solid var(--red)}
.breaking .wrap{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.breaking .flag{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.breaking a{color:var(--red-ink);font-weight:700}

/* Page sheet on the navy ground */
.sheet{padding-top:24px;padding-bottom:40px}
.panel{background:var(--surface);border-radius:8px;padding:28px}
@media (max-width:640px){.panel{padding:20px}}

/* Lead story */
.lead{display:flex;flex-direction:column;gap:14px}
.label{
  font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}
.label .type{color:var(--accent)}
.label .type.breaking-type{color:var(--red)}
.label .sample-tag{background:var(--ink);color:#FFFFFF;padding:2px 8px;border-radius:4px}
.lead h1, .lead h2{font-size:clamp(30px,4.6vw,46px);font-weight:700;max-width:24ch;text-wrap:balance}
.dek{font-size:19px;color:var(--muted);max-width:62ch}
.byline{font-size:14px;color:var(--muted)}
.byline .author{color:var(--ink);font-weight:600}
.photo{
  aspect-ratio:3/2;background:var(--surface-2);border:1px solid var(--rule);border-radius:6px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--muted);font-size:13px;padding:16px;
}
/* Filled lead photo: image with its credit line, cropped to 3:2.
   Width and height attributes reserve the space so the page does not
   shift while it loads. In-body figures (.bodyphoto) keep their own
   proportions. */
.leadphoto{margin:0;width:100%;min-width:0;overflow:hidden;border-radius:6px}
.leadphoto img{
  display:block;width:100%;max-width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border:1px solid var(--rule);border-radius:6px;
  background:var(--surface-2);
}
.bodyphoto{margin:18px 0;width:100%;min-width:0;overflow:hidden;border-radius:6px}
.bodyphoto img{
  display:block;width:100%;max-width:100%;height:auto;border:1px solid var(--rule);border-radius:6px;
  background:var(--surface-2);
}
.photo-credit{font-size:12.5px;color:var(--muted);margin-top:6px}
.photo-credit a{color:inherit}
.pt-where{margin-top:10px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{
  display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:5px 12px;
  border:1px solid var(--rule);border-radius:999px;font-size:14px;font-weight:600;color:var(--ink);
  background:var(--surface);text-decoration:none;
}
.chip.live{border-color:var(--red);color:var(--red)}
.nextline{border-top:1px solid var(--rule);padding-top:12px;font-size:16.5px}
.nextline strong{font-weight:700}

/* Newsletter band */
.daily{background:var(--navy);color:#FFFFFF;border-radius:8px;padding:28px;margin-top:24px}
.daily h2{font-size:clamp(24px,3vw,32px);margin-bottom:6px}
.daily p{color:#C8D2E4;max-width:56ch}
.signup-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.signup-form label{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.signup-form input{
  flex:1 1 260px;min-height:48px;padding:10px 14px;border-radius:6px;border:1px solid var(--rule);
  font:inherit;font-size:16px;background:#FFFFFF;color:var(--ink);
}
.signup-done{margin-top:16px;font-weight:600;color:#FFFFFF}

/* Section headings */
.sec-h{
  font-family:var(--f-body);font-size:13px;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:#C8D2E4;margin:32px 0 14px;
}
.sec-h.on-light{color:var(--muted)}

/* Story cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.card{
  background:var(--surface);border-radius:8px;padding:22px;
  display:flex;flex-direction:column;gap:9px;min-width:0;
}
.card-thumb{
  display:block;width:calc(100% + 44px);max-width:none;height:auto;aspect-ratio:16/9;
  object-fit:cover;flex:none;margin:-22px -22px 3px;border-radius:8px 8px 0 0;background:var(--surface-2);
}
.card h3{font-size:23px;font-weight:600;text-wrap:balance}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.card .dek-sm{color:var(--muted);font-size:15.5px}
.meta-line{font-size:13.5px;color:var(--muted);display:flex;gap:6px 12px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.receipt{align-self:flex-start}

/* Two-column row: Your block + In brief */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}
@media (max-width:860px){.duo{grid-template-columns:minmax(0,1fr)}}
.duo .panel h2{font-size:26px;margin-bottom:8px}
.duo .panel p{color:var(--muted)}
.block-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.block-form label{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.block-form input{
  flex:1 1 220px;min-height:48px;padding:10px 14px;border-radius:6px;
  border:1px solid var(--rule);font:inherit;font-size:16px;
}
.block-result{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}
.block-result ul{margin:8px 0 0;padding-left:20px}
.block-result li{margin-bottom:4px}
.briefs{list-style:none;margin:0;padding:0}
.briefs li{padding:12px 0;border-bottom:1px solid var(--rule)}
.briefs li:last-child{border-bottom:0}
.briefs a{font-weight:600;color:var(--ink);text-decoration:none;line-height:1.35;display:block}
.briefs a:hover{text-decoration:underline}
.briefs .meta-line{margin-top:2px;padding-top:0}

/* Reporters Explain video row */
.videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;align-items:start}
.tile{
  background:var(--navy);border-radius:8px;color:#FFFFFF;
  display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding:16px;position:relative;
}
.tile .play{
  position:static;flex:none;width:44px;height:44px;border-radius:50%;
  border:2px solid #FFFFFF;display:flex;align-items:center;justify-content:center;font-size:15px;
}
.tile .dur{position:static;align-self:flex-start;font-size:13px;font-weight:700;background:#060B16;padding:3px 8px;border-radius:4px}
.tile .t{font-weight:600;line-height:1.3;font-size:15.5px}
.tile .r{font-size:13px;color:#C8D2E4}

/* House ad: one designed unit per homepage, in the reserved ad space.
   Navy ground from the site palette, Lora headline, the two covers composed
   as an overlapping pair, amber reserved for the purchase buttons, and the
   Lampline wordmark as the sponsor signature. */
.housead{
  margin-top:28px;min-height:132px;background:var(--navy);color:#E6EBF4;
  border:1.5px solid #3A4A6B;border-radius:8px;padding:26px;
}
.housead-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.housead-label{
  font-size:12.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#8FA0BC;
}
.housead-mark{display:block;width:23px;height:30px;flex:none}
.housead-headline{
  font-family:var(--f-display);color:#FFFFFF;font-size:29px;line-height:1.2;
  margin-top:14px;max-width:27ch;text-wrap:balance;
}
.housead-stage{display:flex;gap:30px;margin-top:22px;align-items:flex-start}
.housead-covers{position:relative;width:284px;max-width:100%;flex:none;min-height:248px}
.housead-covers img{
  display:block;height:auto;border-radius:4px;border:1px solid #3A4A6B;
  box-shadow:0 10px 24px rgba(0,0,0,.35);
}
.housead-covers .cover-main{width:150px;position:relative;z-index:2}
.housead-covers .cover-back{
  width:142px;position:absolute;right:0;top:20px;z-index:1;transform:rotate(3deg);
}
.housead-items{display:flex;flex-direction:column;gap:22px;flex:1;min-width:0}
.housead-item h3{color:#FFFFFF;font-size:20px;line-height:1.25}
.housead-item p{margin-top:7px;font-size:15.5px;color:#C8D2E4;max-width:56ch}
.housead-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:13px}
.housead .btn-ghost{background:transparent;border:1.5px solid #8FA0BC;color:#FFFFFF}
.housead .btn-ghost:hover{border-color:#FFFFFF}
.housead-sign{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px;
  padding-top:16px;border-top:1px solid #3A4A6B;color:#8FA0BC;font-size:13.5px;
}
.housead-sign img{display:block;width:110px;height:auto}
@media (max-width:720px){.housead-stage{flex-direction:column}}
@media (max-width:480px){
  .housead-covers{width:100%;min-height:196px}
  .housead-covers .cover-main{width:118px}
  .housead-covers .cover-back{width:112px;top:16px}
}

/* Story page */
.story-panel{max-width:820px;margin:0 auto}
.story-panel h1{font-size:clamp(30px,5vw,44px);font-weight:700;text-wrap:balance}
.shortversion{
  background:var(--surface-2);border:1px solid var(--rule);border-left:5px solid var(--accent);
  border-radius:6px;padding:20px 22px;margin-top:20px;
}
.shortversion h2{
  font-family:var(--f-body);font-size:12.5px;font-weight:800;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:12px;
}
.shortversion dl{margin:0;display:flex;flex-direction:column;gap:10px}
.shortversion dt{font-weight:700}
.shortversion dd{margin:0;color:var(--ink)}
.story-body{margin-top:22px;display:flex;flex-direction:column;gap:16px;font-size:17px}
.story-body h2{font-size:26px;margin-top:12px}
.papertrail{
  background:var(--navy);color:#FFFFFF;border-radius:8px;padding:22px;margin-top:24px;
}
.papertrail h2{font-size:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
.papertrail h2 .count{font-family:var(--f-body);font-size:14px;font-weight:700;color:#FFFFFF}
.papertrail ul{margin:12px 0 0;padding-left:20px;color:#E6EBF4}
.papertrail li{margin-bottom:5px}
.papertrail p{color:#C8D2E4;margin-top:10px}
.papertrail a{color:#FFFFFF;text-decoration:underline;text-underline-offset:2px}
.papertrail a:hover{color:var(--amber)}
.howwe{
  margin-top:24px;border-top:1px solid var(--rule);padding-top:16px;font-size:14.5px;color:var(--muted);
}
.howwe h2{
  font-family:var(--f-body);font-size:12.5px;font-weight:800;letter-spacing:.11em;
  text-transform:uppercase;margin-bottom:8px;color:var(--muted);
}
.signup-box{background:var(--surface-2);border:1px solid var(--rule);border-radius:8px;padding:22px;margin-top:24px}
.signup-box h2{font-size:24px;margin-bottom:6px}
.signup-box p{color:var(--muted)}
.signup-box .signup-form .signup-done{color:var(--ink)}
.action-row{margin-top:14px}

/* Sticky Share / Watch / Save bar on story pages */
.actionbar{
  position:fixed;left:0;right:0;bottom:0;background:var(--navy);color:#FFFFFF;
  border-top:1px solid var(--navy-2);z-index:20;
}
.actionbar .wrap{display:flex;gap:8px;padding-top:10px;padding-bottom:10px}
.actionbar button{
  flex:1;min-height:52px;background:transparent;color:#FFFFFF;border:1px solid #3A4A6B;
  border-radius:6px;font-weight:700;font-size:15.5px;
}
.actionbar button:hover{border-color:#FFFFFF}

/* Simple pages */
.prose{max-width:760px;margin:0 auto}
.prose h1{font-size:clamp(30px,5vw,42px);margin-bottom:14px}
.prose p{margin-bottom:14px;font-size:17px}
.prose ul{margin:0 0 14px;padding-left:22px}
.prose li{margin-bottom:8px;font-size:17px}
.prose h2{font-size:25px;margin:22px 0 10px}
.empty-state{
  border:1px dashed var(--rule);border-radius:8px;padding:24px;text-align:center;
  color:var(--muted);font-size:17px;margin-bottom:20px;
}

/* Footer */
footer{background:#060B16;color:#8FA0BC;margin-top:44px}
footer .wrap{padding-top:28px;padding-bottom:28px;display:flex;flex-direction:column;gap:12px}
footer nav{display:flex;gap:6px;flex-wrap:wrap}
footer nav a{
  color:#C8D2E4;text-decoration:none;font-weight:600;min-height:48px;
  display:inline-flex;align-items:center;padding:0 10px;
}
footer nav a:hover{color:#FFFFFF}
footer .sample-note{font-size:13.5px}
footer .brandline{display:flex;align-items:center;gap:10px;color:#FFFFFF;font-family:var(--f-display);font-size:20px}
footer .brandline-logo{display:block;width:148px;height:auto}

/* World headlines module: linked headlines from free, terms-verified sources */
.headlines{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.headlines{grid-template-columns:minmax(0,1fr)}}
.headline-block{background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:8px;padding:22px}
.headline-block h3{font-size:21px;margin-top:6px}
.headline-list{list-style:none;margin:10px 0 0;padding:0}
.headline-list li{padding:10px 0;border-bottom:1px solid var(--rule)}
.headline-list li:last-child{border-bottom:0}
.headline-list a{font-weight:600;color:var(--ink);text-decoration:none;line-height:1.35}
.headline-list a:hover{text-decoration:underline}
.headline-sum{font-size:14px;color:var(--muted);margin-top:3px}
.source-note{font-size:13px;color:var(--muted);margin-top:12px}
.headlines-note{color:#C8D2E4;font-size:13.5px;margin-top:14px}

/* Beat nav: current section on link based navs */
.beatnav a[aria-current="page"]{border-bottom-color:var(--accent)}

/* Music releases: text listings; small cover thumbnails on review notes only */
.music-entry{padding:14px 0;border-bottom:1px solid var(--rule)}
.music-entry:last-child{border-bottom:0}
.music-entry .m-line{font-size:16.5px}
.music-entry .m-meta{font-size:13.5px;color:var(--muted);margin-top:3px}
.music-note{margin-top:8px;max-width:68ch}
.music-review{display:flex;gap:18px;align-items:flex-start}
.music-review img{width:180px;height:auto;border-radius:4px;border:1px solid var(--rule);flex:none}
@media (max-width:640px){.music-review{flex-direction:column}}
.cover-credit{font-size:13px;color:var(--muted);margin-top:8px}
.city-tag{
  display:inline-block;border:1px solid var(--rule);border-radius:999px;padding:1px 10px;
  font-size:12.5px;font-weight:700;color:var(--ink);background:var(--surface-2);
}

/* Call to action strip: two actions on a navy band, amber on buttons only */
.ctastrip{
  background:var(--navy);color:#FFFFFF;border-radius:8px;padding:28px;margin-top:24px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 36px;
}
@media (max-width:720px){.ctastrip{grid-template-columns:minmax(0,1fr)}}
.ctastrip h2{font-size:clamp(22px,2.6vw,28px);margin-bottom:6px}
.ctastrip p{color:#C8D2E4;max-width:46ch}
.ctastrip .btn{margin-top:14px}

/* Exit notice: shown once per visit, on the first link off the site.
   Navy card on a dim backdrop, amber only on Continue, layered above
   the sticky story action bar (z-index 20). The mailing list row is
   a quiet outline treatment so it never competes with Continue. */
.exit-notice{
  position:fixed;inset:0;z-index:200;background:rgba(6,11,22,.62);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.exit-notice[hidden]{display:none}
.exit-notice-card{
  background:var(--navy);color:#FFFFFF;border:1px solid var(--navy-2);
  border-radius:8px;padding:24px;width:100%;max-width:480px;
}
.exit-notice-card h2{font-size:24px;margin-bottom:8px}
.exit-notice-body{color:#C8D2E4}
.exit-notice-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.exit-notice-actions .btn{flex:1 1 180px}
.exit-notice-stay{background:transparent;border:1.5px solid #8FA0BC;color:#FFFFFF}
.exit-notice-stay:hover{border-color:#FFFFFF}
.exit-notice-join{margin-top:20px;padding-top:16px;border-top:1px solid var(--navy-2)}
.exit-notice-join p{color:#C8D2E4;font-size:14.5px;margin-bottom:10px}
.exit-notice-join-btn{background:transparent;border:1px solid #8FA0BC;color:#FFFFFF;font-weight:600}
.exit-notice-join-btn:hover{border-color:#FFFFFF}
@media (max-width:480px){
  .exit-notice-card{padding:20px}
  .exit-notice-actions{flex-direction:column}
  .exit-notice-actions .btn{flex:none;width:100%}
}

/* Home screen install button: stays hidden until the browser offers an install prompt */
#install-app[hidden]{display:none}

/* ---------- Redesign canvas chrome (2026-10-22) ----------
   Publisher's approved homepage boards, implemented over the existing
   design system. The logo lockup art is unchanged. Homepage headlines
   and chrome type move to Public Sans at heavy weights; story page
   typography is untouched. */

/* Top bar: date, city pills, one amber Daily button */
.topbar .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.topbar .tdate{color:#C8D2E4;font-size:12.5px;white-space:nowrap}
.citypills{display:flex;gap:8px;flex-wrap:wrap;margin-right:auto}
.citypills .pill{display:inline-flex;align-items:center;min-height:34px;padding:5px 15px;border:1px solid #3A4A6B;border-radius:999px;color:#E6EBF4;font-size:13px;font-weight:600;text-decoration:none}
.citypills .pill:hover{border-color:var(--amber);color:#fff}
.citypills .pill.active{background:var(--amber);border-color:var(--amber);color:var(--navy)}
.topbar .getdaily{margin-left:auto}
/* Masthead: unchanged logo lockup, edition name, search button */
.masthead .wrap{display:flex;align-items:center;gap:16px}
.masthead .brand{flex:0 0 auto}
.masthead .brand-city{color:var(--muted);font-size:19px;font-weight:500}
.mast-spacer{flex:1 1 auto}
.search-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--rule);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;flex:0 0 auto}
.search-btn:hover{border-color:var(--amber-deep)}
.getdaily-m{display:none}
/* Countdown strip */
.countdown{background:#FBF0DC;border-bottom:1px solid #EBD9B4}
.countdown .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.cd-pill{background:#0B1220;color:#fff;font-family:var(--f-body);font-weight:800;font-size:13px;letter-spacing:.06em;padding:7px 12px;border-radius:7px;white-space:nowrap}
.cd-text{font-family:var(--f-body);font-weight:800;font-size:17px;color:var(--ink);letter-spacing:-.01em}
.countdown a{color:#8A5A0B;font-weight:700;font-size:15px;text-decoration:none}
.countdown a:hover{text-decoration:underline}
/* Footer in canvas form */
footer .foot-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer nav{display:flex;gap:22px;flex-wrap:wrap}
footer nav a{color:#E6EBF4;font-size:14.5px;font-weight:600;text-decoration:none}
footer nav a:hover{color:#fff;text-decoration:underline}
/* Phone tab bar (hidden on desktop) */
.tabbar{display:none}
@media (max-width:860px){
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom)}
  .tabbar .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 7px;background:none;border:none;color:#5A6B8C;font-family:var(--f-body);font-size:11.5px;font-weight:600;text-decoration:none;cursor:pointer;min-height:56px;justify-content:center}
  .tabbar .tab:first-child{color:var(--ink)}
  body{padding-bottom:70px}
  body.story-page{padding-bottom:calc(92px + 70px)}
  .actionbar{bottom:70px}
  header{display:flex;flex-direction:column}
  .masthead{order:1}
  .topbar{order:2;background:#fff;border-bottom:1px solid var(--rule)}
  .beatnav{order:3;display:none}
  .topbar .tdate{display:none}
  .topbar .getdaily{display:none}
  .citypills{margin:2px 0}
  .citypills .pill{border-color:var(--rule);color:var(--ink)}
  .citypills .pill.active{background:var(--navy);border-color:var(--navy);color:#fff}
  .getdaily-m{display:inline-flex;padding:10px 16px;font-size:14px}
  .masthead .brand-city{display:none}
  .countdown .wrap{gap:10px}
  .cd-text{font-size:15px}
}
/* Search overlay */
.search-overlay{position:fixed;inset:0;z-index:300;background:rgba(6,11,22,.72);display:flex;align-items:flex-start;justify-content:center;padding:24px 16px}
.search-overlay[hidden]{display:none}
.search-panel{background:#fff;border-radius:14px;width:min(640px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:20px 22px}
.search-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.search-title{font-family:var(--f-body);font-weight:800;font-size:21px;letter-spacing:-.01em;margin:0;color:var(--ink)}
.search-close{background:none;border:1px solid var(--rule);border-radius:8px;width:44px;height:44px;font-size:24px;line-height:1;color:var(--ink);cursor:pointer}
.search-input{width:100%;margin-top:14px;padding:13px 14px;font:inherit;font-size:16px;border:1px solid var(--rule);border-radius:9px}
.search-results{list-style:none;margin:14px 0 0;padding:0}
.search-results li{border-top:1px solid var(--soft)}
.search-results a{display:block;padding:11px 4px;color:var(--ink);text-decoration:none;font-weight:600}
.search-results a:hover{background:var(--soft)}
.search-kick{display:block;font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:2px}
.search-empty{color:var(--muted);margin:14px 0 4px}

/* ---------- Homepage (redesign boards) ---------- */
body.home{background:#fff}
body.home footer{margin-top:0}
body.home .sheet{padding-bottom:36px}
.home .sec-title{font-family:var(--f-body);font-weight:800;font-size:27px;letter-spacing:-.015em;color:var(--ink);margin:38px 0 18px;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.home .sec-title-sub{color:#7A879E;font-weight:700}
.home .label .type,.home .label{color:var(--amber-deep)}
.home .card{border:1px solid var(--rule)}
.home .card h3{font-family:var(--f-body);font-weight:800;font-size:20px;letter-spacing:-.01em;line-height:1.22}
.home .card h3 a{color:var(--ink)}
.frontgrid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:34px;margin-top:22px}
.lead-block .label{margin-bottom:12px}
.lead-stamp{color:var(--muted);font-weight:600;letter-spacing:0;text-transform:none;font-size:12.5px}
.lead-photo{display:block}
.lead-photo img{width:100%;height:auto;border-radius:12px;display:block}
.lead-block .credit{margin-top:8px}
.lead-h{font-family:var(--f-body);font-weight:800;font-size:clamp(32px,4.4vw,52px);line-height:1.05;letter-spacing:-.02em;margin:14px 0 0;color:var(--ink)}
.lead-h a{color:inherit;text-decoration:none}
.lead-h a:hover{text-decoration:underline}
.lead-sv{margin-top:20px;background:#F4F5F7;border:none}
.rail{display:flex;flex-direction:column;gap:22px}
.rail-h{font-family:var(--f-body);font-weight:800;font-size:14px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);margin:4px 0 6px;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.tstory{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid var(--soft)}
.tstory-thumb{flex:0 0 96px}
.tstory-thumb img{width:96px;height:72px;object-fit:cover;border-radius:8px;display:block}
.tstory-body{min-width:0}
.tstory .label{margin-bottom:5px}
.tstory h3{font-family:var(--f-body);font-weight:700;font-size:16.5px;line-height:1.28;letter-spacing:-.005em;margin:0;color:var(--ink)}
.tstory h3 a{color:inherit;text-decoration:none}
.tstory h3 a:hover{text-decoration:underline}
.tstory-meta{display:flex;align-items:center;gap:10px;margin-top:8px;color:var(--muted);font-size:13px}
.records-pill{display:inline-flex;align-items:center;gap:6px;background:#FBF0DC;color:#7A4A12;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.card .records-pill{margin:2px 0 10px}
/* Your block, dark card */
.blockcard{background:var(--ground);border-radius:14px;padding:22px;color:#E6EBF4}
.bc-kicker{font-family:var(--f-body);font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin:0 0 10px}
.bc-lede{font-family:var(--f-body);font-weight:800;font-size:21px;line-height:1.25;letter-spacing:-.01em;color:#fff;margin:0 0 16px}
.blockcard .block-form{display:grid;gap:10px}
.blockcard .block-form label{font-size:13px;color:#C8D2E4;font-weight:600}
.blockcard .block-form input{min-height:48px;padding:11px 13px;font:inherit;font-size:16px;color:#fff;background:#1B2A4A;border:1px solid #3A4A6B;border-radius:9px;width:100%}
.blockcard .block-form input::placeholder{color:#8FA3C4}
.blockcard .block-form button{min-height:48px;justify-content:center}
.blockcard .block-result{margin-top:14px;border-top:1px solid #3A4A6B;padding-top:12px;color:#E6EBF4;font-size:14.5px}
.blockcard .block-result:empty{display:none}
.blockcard .block-result a{color:#fff;font-weight:700}
/* Weather chip */
.wxchip{display:flex;gap:13px;align-items:flex-start;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:15px 16px;text-decoration:none;color:var(--ink)}
.wx-ic{flex:0 0 auto;width:40px;height:40px;border:1px solid var(--rule);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--navy-2)}
.wx-t{display:block;font-family:var(--f-body);font-weight:700;font-size:15px;line-height:1.3}
.wx-s{display:block;color:var(--muted);font-size:13px;margin-top:3px}
/* Reporters Explain tiles */
.vids{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.vtile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:60px;aspect-ratio:3/4.1;background:linear-gradient(165deg,#1B2A4A,#0D1830);border-radius:13px;padding:18px;color:#fff;text-decoration:none}
.vtile:hover{background:linear-gradient(165deg,#22355C,#101E3C)}
.vt-play{width:44px;height:44px;border-radius:50%;background:var(--amber);color:var(--navy);display:flex;align-items:center;justify-content:center}
.vt-title{font-family:var(--f-body);font-weight:700;font-size:17.5px;line-height:1.3;letter-spacing:-.005em}
/* Schools cards: credit line under the photo */
.scard .card-credit{font-size:12px;color:var(--muted);margin:7px 0 0}
/* Latest cards on white need their hairline */
.latest-sec .card{box-shadow:none}
/* Across Lampline */
.across{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.across-card{border:1px solid var(--rule);border-radius:12px;padding:18px;background:#fff}
.across-line{font-family:var(--f-body);font-weight:800;font-size:19px;letter-spacing:-.01em;color:var(--ink);margin:8px 0 10px}
.across-card a{color:#8A5A0B;font-weight:700;font-size:14.5px;text-decoration:none}
.across-card a:hover{text-decoration:underline}
/* Daily band in canvas form (dark input) */
.daily .signup-form input{background:#1B2A4A;border-color:#3A4A6B;color:#fff}
.daily .signup-form input::placeholder{color:#8FA3C4}
@media (max-width:980px){
  .frontgrid{grid-template-columns:1fr}
  .across{grid-template-columns:1fr}
}
@media (max-width:860px){
  .vids{display:flex;overflow-x:auto;gap:12px;padding-bottom:8px}
  .vtile{flex:0 0 62vw}
  .home .sec-title{font-size:24px;margin-top:30px}
  .lead-h{font-size:33px}
  .topbar .wrap{padding-top:8px;padding-bottom:8px}
}
/* Schools card photos: crop the linked thumbnail to 16:9 like the other cards */
.scard a.card-thumb{border-radius:10px 10px 0 0}
.scard a.card-thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* Homepage Daily band: two columns on desktop, as drawn on the board */
@media (min-width:861px){
  .home .daily{display:grid;grid-template-columns:1.05fr .95fr;column-gap:34px;grid-template-areas:"h f" "p f" "i f"}
  .home .daily h2{grid-area:h}
  .home .daily > p:first-of-type{grid-area:p}
  .home .daily .signup-form{grid-area:f;align-self:center}
  .home .daily > p:last-of-type{grid-area:i}
}
