/* VESL story-first revision: photographic posts, short reads, optional narration. */
:root{--accent:#7cc4ff;--coral:#7cc4ff;--green:#7cc4ff}
.results-panel{padding-inline:22px}.news-post.visual-post{cursor:default;padding:20px 12px 17px;gap:11px}.visual-post .post-byline{margin-bottom:12px;gap:5px}.visual-post .post-avatar{margin-top:1px}.visual-post .post-handle{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visual-post .post-time{font-size:10px}.visual-story-link{display:block;width:100%;text-align:left;padding:0;border:0;background:transparent;color:var(--ink)}.visual-story-link:hover{background:transparent;color:white}.visual-story-link .post-title{display:block;font-size:19px;font-weight:800;letter-spacing:-.025em;line-height:1.3;margin:13px 0 7px}.visual-story-link .post-dek{font-size:13px;color:#aeb1bf;line-height:1.65}.story-visual{display:block;position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;border:1px solid #ffffff12;border-radius:10px;background:#19212a}.story-visual>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}.visual-story-link:hover .story-visual>img{transform:scale(1.025)}.visual-kane>img{object-position:50% 100%}.visual-credit{position:absolute;bottom:8px;left:8px;padding:3px 5px;border-radius:3px;font:8px/1.4 var(--mono);background:#0b0c10c9;color:#e9edf2}.visual-post .post-footer{display:flex;align-items:center;gap:15px;margin-top:13px;flex-wrap:wrap}.post-footer button{padding:0;background:none;border:0;min-height:28px;border-radius:0}.post-open{color:#e5e7ef;font-size:11px;font-weight:700}.post-open:hover{color:var(--accent)}.post-footer .post-source{font-size:10px;color:#808492;margin-left:0}.post-listen{display:flex;align-items:center;gap:5px;color:#a4b7c9;font-size:10px}.post-listen span{font:9px var(--mono)}.post-footer .post-region{font:8px var(--mono);color:var(--region-color);margin-left:auto;min-height:20px}.post-footer .post-region:hover{color:white}.visual-post.is-current-edition{box-shadow:none}
.weather-visual{background:radial-gradient(ellipse at 80% 20%,#69b7ff3b,transparent 60%),linear-gradient(135deg,#182e48,#0d1a2b);padding:20px 22px;color:#e6f3ff}.weather-place{display:block;font:9px var(--mono);text-transform:uppercase;letter-spacing:.09em;color:#a6c5df}.weather-number{display:block;font-size:68px;font-weight:500;letter-spacing:-.08em;line-height:1.15;margin:11px 0 15px}.weather-symbol{position:absolute;right:22px;top:45px;font-size:60px;color:#a6d7ff}.weather-stats{display:flex;gap:23px}.weather-stats>span{display:grid;gap:3px}.weather-stats small{font:8px var(--mono);color:#83a6c1;text-transform:uppercase}.weather-stats strong{font-size:15px;font-weight:700}.weather-visual .visual-credit{left:auto;right:8px;font-size:7px}
.channel-feature{max-width:920px;margin:0 auto 30px}.channel-feature>.story-visual{aspect-ratio:16/9;max-height:490px}.channel-feature>.visual-kane{aspect-ratio:3/2;max-height:530px}.channel-feature>.weather-visual{aspect-ratio:auto;min-height:300px;padding:35px 40px}.channel-feature>.weather-visual .weather-number{font-size:95px}.channel-feature>.weather-visual .weather-symbol{font-size:90px;top:55px;right:55px}.channel-feature .feature-copy{max-width:760px;margin:24px auto 0}.feature-byline{display:flex;gap:11px;align-items:center;margin-bottom:19px}.feature-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #445778;border-radius:50%;background:#1c283b;color:#9dbdf2;font-weight:800}.feature-byline>span:nth-child(2){display:grid;gap:3px}.feature-byline strong{font-size:12px;font-weight:700}.feature-byline small{font-size:10px;color:#9095a3}.feature-byline button{background:none;border:1px solid var(--line);border-radius:50%;width:34px;height:34px;padding:9px;color:#aab0be;margin-left:auto}.feature-byline svg{width:14px;height:14px}.feature-copy h2{font-size:clamp(28px,3vw,42px);line-height:1.15;letter-spacing:-.04em;margin:0 0 14px;font-weight:800}.feature-dek{font-size:17px;line-height:1.6;color:#afb5c5;margin:0 0 23px}.feature-body{font-size:16px;line-height:1.85;color:#d0d3dc}.feature-body p{margin:0 0 16px}.feature-audio{margin:25px 0;padding:16px 18px;border:1px solid #2a3444;border-radius:10px;display:flex;gap:18px;align-items:center;justify-content:space-between;background:#111a27}.feature-audio>span{font-size:14px;color:#7cc4ff;flex:none}.feature-audio strong{font-size:11px;color:#cbd7e5}.feature-audio small{display:block;font:8px var(--mono);color:#71859e;margin-top:5px;padding-left:18px}.feature-audio audio{min-width:0;max-width:340px;width:100%;height:34px}.feature-source{border-top:1px solid var(--line);padding-top:19px;font-size:11px;line-height:1.7;color:#9aa1b0}.feature-source>span{display:block;font:9px var(--mono);text-transform:uppercase;color:#687185;margin-bottom:6px}.feature-source>a{color:#b9c9e4;text-decoration:none}.feature-source>a:hover{text-decoration:underline}.feature-source button{display:block;margin-top:12px;color:#83bbed;font-size:11px;padding:0;background:none;border:0}.channel-reader .story-visual{margin-bottom:22px;max-height:360px}.channel-reader>.channel-reading-body .story-visual{aspect-ratio:16/9}.channel-reader .visual-kane{aspect-ratio:3/2!important}.channel-reader .detail-notice{font-size:10px!important}.channel-switcher .channel-button{border-radius:24px!important}.channel-button .channel-avatar{display:none!important}.channel-top .channel-navigation{align-items:center}.city-dashboard .channel-top .channel-button{min-width:95px;padding-inline:16px}.stage-ready{color:#738293}.city-dashboard .station-heading h2{font-size:clamp(34px,4vw,56px);text-transform:none}.channel-top{margin-bottom:24px}
@media(min-width:1600px){.explorer,.explorer.city-open{grid-template-columns:minmax(0,1fr) 500px}.visual-story-link .post-title{font-size:21px}.visual-story-link .post-dek{font-size:14px}}
@media(max-width:1180px){.feature-audio{display:block}.feature-audio audio{display:block;max-width:100%;margin-top:12px}.weather-number{font-size:57px}.weather-symbol{font-size:48px;right:16px}.weather-stats{gap:15px}.weather-stats strong{font-size:13px}.weather-visual{padding:15px 17px}.weather-place{font-size:8px}.feature-copy h2{font-size:30px}.channel-feature>.story-visual{aspect-ratio:3/2}.city-dashboard .channel-top .channel-button{min-width:0;flex:1}}
@media(max-width:760px){.results-panel,.mobile-pane-map .results-panel,.city-open .results-panel{padding-inline:17px}.news-post.visual-post{grid-template-columns:31px minmax(0,1fr);gap:9px;padding:18px 9px}.visual-post .post-avatar{width:31px;height:31px;font-size:13px}.visual-post .post-name{font-size:12px}.visual-post .post-byline{margin-bottom:10px;gap:4px}.visual-post .post-handle{font-size:10px}.visual-story-link .post-title{font-size:19px;line-height:1.3}.visual-story-link .post-dek{font-size:13px}.post-footer .post-region{font-size:7px}.visual-post .post-footer{gap:13px}.channel-feature .feature-copy{margin-top:19px}.feature-copy h2{font-size:29px}.feature-dek{font-size:15px}.feature-body{font-size:15px;line-height:1.8}.channel-feature>.weather-visual{min-height:265px;padding:23px}.channel-feature>.weather-visual .weather-number{font-size:80px}.channel-feature>.weather-visual .weather-symbol{font-size:65px;right:26px}.story-visual{border-radius:9px}.channel-top{margin-bottom:18px}.weather-stats{gap:20px}.visual-credit{font-size:7px;bottom:6px;left:6px}.feature-source{font-size:10px}.feature-audio{padding:14px}.channel-reader .story-visual{max-height:240px}}
@media(prefers-reduced-motion:reduce){.story-visual>img{transition:none}.visual-story-link:hover .story-visual>img{transform:none}}
.story-visual.visual-kane{aspect-ratio:1.42}.channel-feature>.story-visual.visual-kane{width:min(100%,640px);aspect-ratio:1.42;max-height:none;margin-inline:auto}.channel-reader .channel-reading-body .story-visual.visual-kane{aspect-ratio:1.42!important;max-height:none;max-width:560px;margin-inline:auto}
.story-kicker{position:absolute;top:10px;left:10px;border:1px solid #ffffff28;border-radius:5px;background:#11141cdd;color:#eef2fa;padding:6px 8px;font:700 8px/1.2 var(--mono);letter-spacing:.09em}
.story-facts{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0 0}.story-facts>span{display:inline-flex;align-items:center;border:1px solid #344154;border-radius:5px;color:#b7c7db;padding:5px 7px;font:9px/1.35 var(--mono)}.feature-copy>.story-facts{margin:-9px 0 24px}.feature-copy>.story-facts>span{font-size:11px;padding:7px 10px}
.story-visual.visual-fenway,.channel-feature>.story-visual.visual-fenway,.channel-reader .channel-reading-body .story-visual.visual-fenway{aspect-ratio:4/3;max-height:none}.visual-fenway>img{position:absolute;width:181.88%;max-width:none;height:auto;left:-19.16%;top:-99.88%;object-fit:initial}.visual-story-link:hover .visual-fenway>img{transform:none}
.visual-notice>img{object-fit:contain;background:#fff}.story-visual.visual-notice{aspect-ratio:1.896}.visual-artwork>img{object-fit:contain;background:#f7f4ec}.story-visual.visual-artwork{aspect-ratio:3/2}
.score-visual{padding:22px;background:radial-gradient(ellipse at 5% 30%,#41546a44,transparent 70%),#101a25;aspect-ratio:3/2;display:flex;flex-direction:column;justify-content:space-between}.score-label{color:#9faebe;font:9px var(--mono);letter-spacing:.16em}.score-teams{display:flex;align-items:center;justify-content:center;gap:25px}.score-team{display:grid;text-align:center;gap:5px;flex:1}.score-team>small{font:11px var(--mono);letter-spacing:.16em;color:#9baabc}.score-team>strong{font-size:70px;line-height:1.04;font-weight:800;letter-spacing:-.06em;color:#f2f4f7}.score-team>span{font-size:12px;font-weight:700;color:#c9d6e4}.score-divider{font-size:20px;color:#475b72}.score-note{border-top:1px solid #3c4c614d;padding-top:13px;color:#7cc4ff;font:8px var(--mono);letter-spacing:.05em}.channel-feature>.score-visual{min-height:290px;aspect-ratio:16/7}.channel-feature .score-team>strong{font-size:100px}.channel-feature .score-note{font-size:11px}.channel-reader .score-visual{color:#fff}
.gm-city.is-channel .gm-city-dot{fill:#9ebadb}
@media(max-width:760px){.score-visual{padding:17px}.score-teams{gap:15px}.score-team>strong{font-size:58px}.score-label,.score-note{font-size:8px}.story-kicker{font-size:7px}.story-facts>span{font-size:8px}.channel-feature>.score-visual{aspect-ratio:3/2;min-height:240px}.channel-feature .score-team>strong{font-size:70px}.channel-feature .score-note{font-size:8px}.feature-copy>.story-facts>span{font-size:9px}}

.newsroom-link{font-size:12px;text-decoration:none;color:#8bceff;padding:8px;border:1px solid #303541;border-radius:7px}.newsroom-link[data-state="paused"]{color:#e4b565}.visual-graphic img{object-fit:contain;background:#10131b}@media(max-width:760px){.newsroom-link{display:none}}

.home-city-controls{padding:18px 0;border-bottom:1px solid var(--border,#292c38)}.home-city-controls[hidden]{display:none}.home-city-controls p{margin:12px 0 6px}.home-city-controls small{color:#969aa9}
/* Video is a first-class city format; image failures retain a useful story card. */
.visual-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:28px;background:radial-gradient(circle at 100% 0,#345e834f,transparent 65%),#101823;color:#f2f5fa;gap:18px;text-align:left}.visual-fallback>span{font-weight:900;letter-spacing:.13em;font-size:17px}.visual-fallback>span small{font:8px var(--mono);color:#8ebbe2;letter-spacing:.1em;margin-left:9px}.visual-fallback>small{font:9px var(--mono);text-transform:uppercase;color:#8ebbe2}.visual-fallback>strong{font-size:clamp(18px,2vw,29px);line-height:1.2;letter-spacing:-.025em;max-width:650px}.visual-fallback>em{font:8px var(--mono);color:#8194aa}.story-visual>img[hidden]{display:none}.story-visual:not(.is-image-unavailable)>.visual-fallback{visibility:hidden}.is-image-unavailable>.story-kicker{display:none}.story-visual.visual-fenway.is-image-unavailable{aspect-ratio:3/2}.video-thumbnail{position:relative;display:block;border-radius:10px;overflow:hidden}.video-thumbnail:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#060a12c9);pointer-events:none}.video-thumbnail .story-visual{aspect-ratio:16/10}.video-thumbnail .visual-credit{bottom:38px;max-width:80%;font-size:7px;z-index:2}.video-play-glyph{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eff6ffed;border:1px solid #fff;color:#12243a;z-index:3;box-shadow:0 6px 30px #0006;transition:transform .2s}.video-play-glyph svg{width:19px;height:19px;fill:currentColor;stroke:none;margin-left:3px}.video-format-label,.video-duration{position:absolute;bottom:14px;z-index:3;font:700 8px var(--mono);letter-spacing:.08em;color:#f3f7ff}.video-format-label{left:14px}.video-duration{right:14px;background:#080c13ad;padding:4px 6px;border-radius:4px;bottom:10px}.post-media-button,.feature-watch{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit}.post-media-button:hover,.feature-watch:hover{background:none}.post-media-button:hover .video-play-glyph,.feature-watch:hover .video-play-glyph{transform:translate(-50%,-50%) scale(1.08)}.post-footer .post-watch{color:#8bcaff;font-size:11px;font-weight:700;display:flex;gap:7px;align-items:center}.post-watch>span{font:9px var(--mono);color:#8e9aae}.feature-watch-caption{display:flex;justify-content:space-between;gap:15px;align-items:center;border:1px solid #29364a;border-top:0;background:#121c29;padding:13px 17px;border-radius:0 0 10px 10px}.feature-watch-caption strong{font-size:13px;color:#c9e7ff}.feature-watch-caption>span{font:9px var(--mono);color:#8fabc6}.feature-watch-caption b{margin-left:8px;font-size:17px;color:#b7dfff}.feature-watch>.video-thumbnail{border-radius:10px 10px 0 0}.feature-watch .story-visual{border-radius:10px 10px 0 0;aspect-ratio:16/9;max-height:490px}.feature-watch .video-play-glyph{width:68px;height:68px}.feature-watch .video-format-label{font-size:10px}.feature-watch .video-duration{font-size:11px}.post-media-button:focus-visible,.feature-watch:focus-visible{outline:2px solid #7cc4ff;outline-offset:4px;border-radius:10px}@media(max-width:760px){.visual-fallback{padding:18px;gap:12px}.visual-fallback>strong{font-size:20px}.visual-fallback>span small{display:none}.feature-watch-caption{padding:12px}.feature-watch-caption>span{font-size:8px}.feature-watch .video-play-glyph{width:54px;height:54px}.feature-watch .video-format-label{font-size:8px}}@media(prefers-reduced-motion:reduce){.video-play-glyph{transition:none}}
.source-media{margin:27px 0}.source-media-heading{margin-bottom:12px}.source-media-heading>.eyebrow{font-size:9px;color:#8ebee9}.source-media-heading p{font-size:12px!important;line-height:1.5!important;margin:5px 0 0!important;color:#939eae!important}.source-media-card{border:1px solid #2c3748;border-radius:12px;overflow:hidden;background:#101722;margin-top:12px}.source-media-card>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border-bottom:1px solid #273141}.source-media-card>header>span{display:grid;gap:4px;min-width:0}.source-media-card>header strong{font-size:12px;color:#d3dce9;overflow-wrap:anywhere}.source-media-card>header small{font:8px var(--mono);color:#8797ab}.source-media-card>header a{font-size:10px;color:#87c6fc;text-decoration:none;white-space:nowrap}.source-media-card>header a:hover{text-decoration:underline}.source-embed-load{display:flex;align-items:center;gap:17px;width:100%;padding:27px 20px;text-align:left;border:0;border-radius:0;background:radial-gradient(ellipse at 100% 0,#31547744,transparent),#131d2b;color:#d8e9fa;min-height:132px}.source-embed-load:hover{background:#1b2a3d}.source-provider-mark{display:grid;place-items:center;flex:none;width:47px;height:47px;border-radius:14px;background:#263d56;color:#b9ddff;font-size:22px}.source-embed-load>span:nth-child(2){display:grid;gap:8px}.source-embed-load strong{font-size:14px}.source-embed-load small{font-size:10px;color:#96a8bf}.source-embed-load>span:last-child{margin-left:auto}.source-embed-load:disabled{opacity:.55;cursor:wait}.source-embed-slot>iframe{display:block;aspect-ratio:16/9;width:100%;height:auto;border:0;min-height:220px;background:#080b10}.source-x-mount{padding:0 12px;display:flex;justify-content:center;min-width:0}.source-x-mount .twitter-tweet{margin:12px 0!important}.source-embed-status{font-size:11px!important;line-height:1.5!important;padding:12px 16px!important;margin:0!important;color:#99aabc!important}.source-embed-status[hidden]{display:none}.source-embed-load:focus-visible{outline:2px solid #7cc4ff;outline-offset:-4px}@media(max-width:760px){.source-media-card>header{padding:13px}.source-media-card>header a{font-size:9px}.source-embed-load{padding:20px 15px;gap:12px;min-height:120px}.source-embed-load strong{font-size:12px}.source-embed-load small{font-size:9px}.source-provider-mark{width:38px;height:38px;font-size:19px}.source-embed-slot>iframe{min-height:200px}.source-x-mount{padding:0 7px}}

/* Equal map/feed browsing; give the story more room in a city channel. */
@media (min-width:761px) {
  .explorer { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .explorer.city-open { grid-template-columns:minmax(0,65fr) minmax(0,35fr); }
  .results-panel { grid-column:2; border-left:1px solid var(--line); border-right:0; }
  .map-panel,.city-open .map-panel,.mobile-pane-map .map-panel { grid-column:1; }
  .explorer.map-focused { grid-template-columns:minmax(0,1fr); }
  .explorer.map-focused .map-panel { grid-column:1; }
}

/* Compact story rows: author above, visual left, copy and actions right. */
.news-post.visual-post { display:block; }
.visual-post .post-byline { align-items:center; gap:6px; }
.visual-post .post-byline .post-avatar { width:28px;height:28px;font-size:12px;margin:0 4px 0 0; }
.post-copy { min-width:0; }
@media (min-width:761px) {
  .results-panel { container-type:inline-size; }
  .post-story { display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:20px;align-items:start; }
  .post-story .post-media-button { align-self:start;min-width:0; }
  .post-copy .visual-story-link .post-title { margin:0 0 8px;font-size:19px;line-height:1.3; }
  .post-copy .visual-story-link .post-dek { font-size:13px;line-height:1.6; }
  .post-copy .story-facts { margin-top:11px;gap:5px; }
  .post-copy .post-footer { margin-top:12px;gap:6px 12px; }
  .post-story .video-play-glyph { width:38px;height:38px; }
  .post-story .video-play-glyph svg { width:14px;height:14px; }
  .post-story .video-format-label { font-size:6px;left:8px;bottom:12px;letter-spacing:0; }
  .post-story .video-duration { font-size:7px;right:6px;bottom:7px;padding:3px 4px; }
  .post-story .visual-credit { font-size:6px;left:6px;bottom:6px;max-width:calc(100% - 12px); }
  .post-story .video-thumbnail .visual-credit { bottom:29px; }
  .post-story .story-kicker { font-size:6px;padding:4px 5px;left:6px;top:6px; }
  .post-story .score-visual { padding:12px; }
  .post-story .score-label,.post-story .score-note { font-size:6px;letter-spacing:0; }
  .post-story .score-teams { gap:6px; }
  .post-story .score-team { gap:3px; }
  .post-story .score-team>strong { font-size:clamp(26px,7cqw,52px); }
  .post-story .score-team>small { font-size:8px; }
  .post-story .score-team>span { font-size:8px; }
  .post-story .score-note { padding-top:7px; }
  .post-story .weather-visual { padding:12px; }
  .post-story .weather-place { font-size:6px;letter-spacing:0; }
  .post-story .weather-number { font-size:clamp(32px,8cqw,60px);margin:9px 0 5px; }
  .post-story .weather-symbol { font-size:27px;right:10px;top:29px; }
  .post-story .weather-stats { display:none; }
  .post-story .visual-fallback { padding:13px;gap:8px; }
  .post-story .visual-fallback>strong { font-size:clamp(12px,2.5cqw,20px); }
  .post-story .visual-fallback>span { font-size:12px; }
  .post-story .visual-fallback>span small,.post-story .visual-fallback>em { display:none; }
  @container (max-width:490px) {
    .post-story { grid-template-columns:minmax(0,34fr) minmax(0,66fr);gap:14px; }
    .post-copy .visual-story-link .post-title { font-size:16px; }
    .post-copy .visual-story-link .post-dek { font-size:12px; }
    .post-story .score-team>span,.post-story .score-note,.post-story .video-format-label { display:none; }
    .post-story .score-visual { padding:9px; }
    .post-copy .story-facts>span { font-size:8px;padding:4px 5px; }
    .post-copy .post-footer { gap:5px 10px; }
  }
}
