/* Uptown Informer — newspaper layout. Mobile-first, no frameworks. */
:root{
  /* Brand: Uptown purple #31064d + Informer teal #028fa2 (sampled from the brand sheet). */
  --purple:#31064d;--purple-2:#5b2a86;--purple-deep:#1f0333;--ink:#1a1023;--teal:#028fa2;--teal-ink:#027a8a;--teal-2:#3fd0dc;
  --accent:#028fa2;--accent-ink:#027a8a;--plum:#5b2a86;--violet:#7a2f8f;--sports:#1d5fa8;--sports-deep:#0f2f5e;
  --display:"Montserrat","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --bg:#f4f3f7;--card:#fff;--line:#dfe3e8;--line-2:#c9d0d8;--muted:#4f5b6c;--muted-2:#667085;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1200px;--gap:16px;--pad:16px;--radius:2px;
  /* 1.2.10 colour-scheme tokens (light values; dark values below). --purple / --teal-ink / --accent-ink are TEXT colours;
     backgrounds that carry white text use --purple-bg / --teal-bg, and --brand is always the dark brand purple. */
  --brand:#31064d;--purple-bg:#31064d;--purple-bg-2:#5b2a86;--teal-bg:#027a8a;--newsletter-bg:#31064d;
  --text-2:#2e2638;--body-ink:#1b1424;--slot-bg:#e8ebef;--input-bg:#fff;--notice-bg:#e9f6f8;--promo-a:#e6f5f7;
  --shadow:rgba(49,6,77,.12);--scrim:rgba(26,16,35,.55);--stripe:#f0f0f0;
  --kicker:#5b2a86;--k-events:#027a8a;--k-eat:#7a2f8f;--k-night:#5b2a86;--k-guide:#02626f;--k-sports:#1d5fa8;
  --logo-light:block;--logo-dark:none;--tt-moon:block;--tt-sun:none;--tt-to-dark:inline;--tt-to-light:none;
  --logo-plate-bg:transparent;--logo-plate-pad:0;
  color-scheme:light;
}
/* ---------- Dark mode (1.2.10) ----------
   <html data-theme="dark"> is set before first paint by the inline script in <head> (saved choice, else the OS setting).
   The media query is the no-JavaScript fallback: it follows the OS unless the page says data-theme="light". */
:root[data-theme="dark"]{
  --bg:#0c0e1b;--card:#161a2c;--line:#2a2f48;--line-2:#3d4362;--muted:#aaa5be;--muted-2:#9a95b0;
  --ink:#eeeaf6;--body-ink:#e6e1ee;--text-2:#cdc6da;
  --purple:#d4bbf7;--purple-bg:#5b2a8c;--purple-bg-2:#7038a8;--purple-deep:#140a22;--newsletter-bg:#2a1148;
  --teal-ink:#5ad7e3;--accent-ink:#74e1eb;--accent:#2cc3d2;
  --slot-bg:#1b1f33;--input-bg:#0f1222;--notice-bg:#0f2f38;--promo-a:#11343e;
  --shadow:rgba(0,0,0,.5);--scrim:rgba(0,0,0,.66);--stripe:#1b1f33;
  --kicker:#cba6f4;--k-events:#5ad7e3;--k-eat:#e5a9f3;--k-night:#cba6f4;--k-guide:#5fd3c6;--k-sports:#8fbdf3;
  --logo-light:none;--logo-dark:block;--tt-moon:none;--tt-sun:block;--tt-to-dark:none;--tt-to-light:inline;
  --logo-plate-bg:rgba(255,255,255,.94);--logo-plate-pad:4px 8px;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0c0e1b;--card:#161a2c;--line:#2a2f48;--line-2:#3d4362;--muted:#aaa5be;--muted-2:#9a95b0;
    --ink:#eeeaf6;--body-ink:#e6e1ee;--text-2:#cdc6da;
    --purple:#d4bbf7;--purple-bg:#5b2a8c;--purple-bg-2:#7038a8;--purple-deep:#140a22;--newsletter-bg:#2a1148;
    --teal-ink:#5ad7e3;--accent-ink:#74e1eb;--accent:#2cc3d2;
    --slot-bg:#1b1f33;--input-bg:#0f1222;--notice-bg:#0f2f38;--promo-a:#11343e;
    --shadow:rgba(0,0,0,.5);--scrim:rgba(0,0,0,.66);--stripe:#1b1f33;
    --kicker:#cba6f4;--k-events:#5ad7e3;--k-eat:#e5a9f3;--k-night:#cba6f4;--k-guide:#5fd3c6;--k-sports:#8fbdf3;
    --logo-light:none;--logo-dark:block;--tt-moon:none;--tt-sun:block;--tt-to-dark:none;--tt-to-light:inline;
    --logo-plate-bg:rgba(255,255,255,.94);--logo-plate-pad:4px 8px;
    color-scheme:dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
/* html carries the footer colour so iOS overscroll bounce past the footer shows purple, not the body grey (body keeps --bg). */
html{-webkit-text-size-adjust:100%;scroll-padding-top:64px;background:var(--purple-deep,#1f0333)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.55 var(--sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--teal-ink);text-underline-offset:.18em}
a:hover{color:var(--accent-ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4{color:var(--purple);line-height:1.15;margin:0 0 .5em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;background:var(--purple-bg);color:#fff;padding:10px 16px;font-weight:700}
.skip-link:focus{left:8px;color:#fff}
.site-main:focus{outline:0}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- Buttons & forms ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;border:0;border-radius:var(--radius);padding:.7em 1.1em;font:700 .875rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;cursor:pointer}
.btn--navy,.btn--purple{background:var(--purple-bg);color:#fff}.btn--navy:hover,.btn--purple:hover{background:var(--purple-bg-2);color:#fff}
.btn--accent{background:var(--teal-2);color:var(--brand)}.btn--accent:hover{background:#fff;color:var(--brand)}
.btn--teal{background:var(--teal-bg);color:#fff}.btn--teal:hover{background:var(--purple-bg);color:#fff}
.btn[disabled]{opacity:.6;cursor:not-allowed}
.search-form{display:flex;gap:8px;max-width:640px}
.search-form__input,input[type=email],input[type=text],input[type=url],textarea{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:var(--radius);padding:.65em .8em;background:var(--input-bg);color:var(--ink)}
:root[data-theme="dark"] ::placeholder{color:var(--muted-2);opacity:1}

/* ---------- Masthead ---------- */
.masthead{background:var(--card);position:relative;z-index:40}
.masthead__top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding-top:10px;padding-bottom:10px}
.masthead__dateline{font-size:.75rem;color:var(--muted);display:flex;flex-direction:column;line-height:1.35}
.masthead__dateline time{font-weight:700;color:var(--ink)}
.masthead__utility{justify-self:end}
.utility-menu{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center;font-size:.78rem}
.utility-menu li+li::before{content:"|";color:var(--line-2);margin-right:4px}
.utility-menu a{color:var(--ink);text-decoration:none;font-weight:500}
.utility-menu a:hover{text-decoration:underline;color:var(--ink)}
.utility-menu__cta,.utility-menu .menu-item:last-child a{font-weight:800!important}
.brand{margin:0;font-size:inherit;line-height:1}
.brand__link{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--purple)}
.brand__logo{display:block;width:auto;height:64px;max-width:100%}
.brand__tag{font:600 .62rem/1.2 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.drawer__head .brand__logo{height:40px}

/* Section bar */
.sectionbar{background:var(--card);border-top:1px solid var(--purple-bg);border-bottom:3px solid var(--purple-bg);position:sticky;top:0;z-index:45}
.admin-bar .sectionbar{top:32px}
@media (max-width:782px){.admin-bar .sectionbar{top:0}}
.sectionbar::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;background:linear-gradient(90deg,var(--purple-bg) 0 33%,var(--teal) 33% 66%,transparent 66%);opacity:0;transition:opacity .2s}
.sectionbar.is-stuck{box-shadow:0 4px 14px var(--shadow)}
.sectionbar__inner{display:flex;align-items:center;gap:8px;min-height:44px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;background:none;border:0;border-radius:var(--radius);color:var(--purple);cursor:pointer}
.icon-btn:hover{background:var(--bg)}
.sectionbar__mini{display:none;flex:none;line-height:0;text-decoration:none}
.sectionbar__mini img{width:30px;height:30px;border-radius:7px}
.sectionbar.is-stuck .sectionbar__mini{display:inline-block}
.sectionnav{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 92%,transparent)}
.sectionnav::-webkit-scrollbar{display:none}
.sectionnav .menu{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:2px;white-space:nowrap}
.sectionnav a{display:block;padding:12px 10px;font:700 .76rem/1 var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-3px}
.sectionnav a:hover{color:var(--teal-ink);border-bottom-color:var(--teal)}
.sectionnav .current-menu-item>a,.sectionnav .current-category-ancestor>a,.sectionnav .current-post-ancestor>a,.sectionnav a[aria-current="page"]{color:var(--purple);border-bottom-color:var(--accent)}
.site-search{border-top:1px solid var(--line);padding:12px 0;background:var(--card)}

/* Drawer */
.drawer{position:fixed;inset:0;z-index:100}
.drawer[hidden]{display:none}
.drawer__scrim{position:absolute;inset:0;background:var(--scrim)}
.drawer__panel{position:relative;z-index:1;width:min(360px,88vw);height:100%;overflow-y:auto;background:var(--card);padding:16px;border-right:4px solid var(--accent)}
.drawer__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.drawer .search-form{margin-bottom:16px}
.drawer__menu,.drawer .menu{list-style:none;margin:0;padding:0}
.drawer__menu a,.drawer .menu a{display:block;padding:13px 4px;border-bottom:1px solid var(--line);font:700 1rem var(--display);color:var(--purple);text-decoration:none}
.drawer__menu .sub-menu{list-style:none;padding-left:14px}
.drawer__menu .sub-menu a{font-weight:500;font-size:.95rem}
body.drawer-open{overflow:hidden}

/* ---------- Slots (ads / sponsors) ---------- */
.slot{text-align:center}
.slot--leaderboard{background:var(--slot-bg);padding:12px 0}
.slot__label{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px}
.slot .widget{margin:0 auto}
.slot img{margin:0 auto}
.slot--rail{background:var(--slot-bg);padding:12px;min-height:0}
.slot--infeed{background:var(--slot-bg);padding:16px;margin:0 0 var(--gap)}

/* ---------- Cards ---------- */
.card{background:var(--card);display:flex;flex-direction:column;min-width:0}
.card__body{padding:0 var(--pad)}
.card__media{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--brand)}
.card__media img{width:100%;height:100%;object-fit:cover}
.media-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:radial-gradient(120% 120% at 85% 0%,rgba(63,208,220,.32),transparent 55%),linear-gradient(155deg,var(--brand),var(--purple-deep));position:relative}
.card__media,.card__media:hover{text-decoration:none}
.card__media .media-fallback__mark{display:block;width:auto;height:46%;max-height:150px;min-height:40px;opacity:.96;filter:drop-shadow(0 2px 10px rgba(0,0,0,.18))}
.media-fallback--events{background:radial-gradient(120% 120% at 15% 0%,rgba(255,255,255,.2),transparent 55%),linear-gradient(155deg,#02535e,var(--teal-bg))}
.media-fallback--eat-drink{background:radial-gradient(120% 120% at 85% 0%,rgba(255,255,255,.18),transparent 55%),linear-gradient(155deg,var(--purple-2),#8e3fa8)}
.media-fallback--nightlife-music{background:radial-gradient(120% 120% at 85% 0%,rgba(63,208,220,.3),transparent 55%),linear-gradient(155deg,var(--purple-deep),var(--brand))}
.media-fallback--sports{background:radial-gradient(120% 120% at 85% 0%,rgba(63,208,220,.28),transparent 55%),linear-gradient(155deg,var(--sports-deep),var(--sports))}
.media-fallback--neighborhood-guide{background:radial-gradient(120% 120% at 15% 0%,rgba(63,208,220,.3),transparent 55%),linear-gradient(155deg,#2a0a45,#02626f)}
.card--compact .card__media .media-fallback__mark{height:52%}

.kicker{display:inline-block;font:800 .68rem/1.2 var(--display);letter-spacing:.09em;text-transform:uppercase;color:var(--kicker);text-decoration:none;margin-bottom:6px}
.kicker:hover{color:var(--accent-ink);text-decoration:underline}
.kicker--events{color:var(--k-events)}.kicker--eat-drink{color:var(--k-eat)}.kicker--nightlife-music{color:var(--k-night)}.kicker--neighborhood-guide{color:var(--k-guide)}.kicker--sports{color:var(--k-sports)}
.card__title{font:700 1.06rem/1.25 var(--serif);letter-spacing:-.005em;margin:0 0 8px;font-variation-settings:"opsz" 24}
.card__title a{color:var(--ink);text-decoration:none}
.card__title a:hover{color:var(--teal-ink);text-decoration:underline;text-decoration-thickness:1px}
.card__title--lead{font-size:clamp(1.55rem,3.4vw,2.25rem);line-height:1.1;letter-spacing:-.015em;font-weight:750;margin-bottom:14px;font-variation-settings:"opsz" 72}
.card__title--sm{font-size:.98rem}
.card__dek{font:400 1.0625rem/1.5 Georgia,"Times New Roman",serif;color:var(--text-2);margin:14px 0 8px}
.card__dek--sm{font-size:.94rem;margin:0 0 8px}
.card__meta{margin:auto 0 0;font-size:.75rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.card__meta .sep{color:var(--line-2)}
.meta-time.is-fresh{color:var(--accent-ink);font-weight:600}
.badge-sample{display:inline-block;vertical-align:.12em;font:800 .62rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;background:var(--teal-2);color:var(--brand);padding:3px 5px 2px;border-radius:2px;margin-right:4px}

.card--lead{padding:var(--pad) 0}
.card--lead .card__media{margin:0 var(--pad)}
.card--standard{padding:var(--pad)}
.card--standard .card__body{padding:12px 0 0;display:flex;flex-direction:column;flex:1}
.card--compact{flex-direction:row;gap:12px;padding:14px var(--pad);border-top:1px solid var(--line)}
.card--compact .card__body{padding:0;flex:1;display:flex;flex-direction:column}
.card--compact .card__media{width:96px;flex:none;aspect-ratio:3/2;align-self:flex-start}

/* Panels (Latest, Trending, promos) */
.panel{background:var(--card);padding:var(--pad);display:flex;flex-direction:column}
.panel+.panel{margin-top:var(--gap)}
.panel__title{font:800 1.02rem/1.2 var(--display);text-transform:uppercase;letter-spacing:.02em;color:var(--purple);margin:0 0 12px;padding-bottom:10px;border-bottom:3px solid var(--purple-bg);position:relative}
.panel__title::after{content:"";position:absolute;left:0;bottom:-3px;width:44px;height:3px;background:var(--accent)}
.panel__title--serif{font:750 1.35rem/1.15 var(--serif);text-transform:none;letter-spacing:-.01em;border:0;padding:0}
.panel__title--serif::after{display:none}
.panel__eyebrow{font:800 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink);margin:0 0 8px}
.panel__more{margin-top:12px;font:800 .78rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--teal-ink);text-decoration:none}
.panel__more:hover{text-decoration:underline}
.panel__empty{color:var(--muted);font-size:.9rem}
.panel--promo{background:linear-gradient(160deg,var(--promo-a),var(--card) 70%);border-top:4px solid var(--teal-2)}
.panel--promo p{font-size:.92rem;color:var(--text-2)}
.panel--promo .btn{align-self:flex-start}
.list{list-style:none;margin:0;padding:0}
.list-item{padding:10px 0;border-bottom:1px solid var(--line)}
.list-item:first-child{padding-top:2px}
.list-item:last-child{border-bottom:0}
.list-item__title{display:block;font:700 .95rem/1.3 var(--sans);color:var(--ink);text-decoration:none;margin-bottom:4px}
.list-item__title:hover{color:var(--teal-ink);text-decoration:underline}

/* ---------- Front page grid ---------- */
.front{padding-top:var(--gap);padding-bottom:var(--gap)}
.top,.second{display:grid;gap:var(--gap);margin-bottom:var(--gap)}
.second__grid{display:grid;gap:var(--gap)}
.rail{display:flex;flex-direction:column;gap:var(--gap)}
.rail .panel+.panel{margin-top:0}

/* Sections */
.section-block{margin:calc(var(--gap)*1.5) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line-2);padding-bottom:8px;margin-bottom:var(--gap)}
.section-head__title{font:750 clamp(1.45rem,3vw,1.9rem)/1.1 var(--serif);letter-spacing:-.015em;margin:0;position:relative;padding-left:14px}
.section-head__title::before{content:"";position:absolute;left:0;top:.12em;bottom:.12em;width:5px;background:var(--accent)}
.section-block--events .section-head__title::before{background:var(--teal)}
.section-block--nightlife-music .section-head__title::before{background:var(--plum)}
.section-block--neighborhood-guide .section-head__title::before{background:var(--teal-2)}
.section-block--sports .section-head__title::before{background:var(--sports)}
.section-head__more{font:800 .75rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--teal-ink);text-decoration:none;white-space:nowrap}
.section-head__more:hover{text-decoration:underline}
.section-block__desc{color:var(--muted);margin-top:calc(var(--gap)*-.5);font-size:.92rem}
.section-block__grid{display:grid;gap:var(--gap)}
.section-block__side{background:var(--card);display:flex;flex-direction:column}
.section-block__side .card--compact:first-child{border-top:0}
.section-block__side .panel--promo{margin-top:auto}

/* Newsletter strip */
.newsletter{background:var(--newsletter-bg);color:#ece4f3;border-top:4px solid var(--accent);margin:var(--gap) 0 0;position:relative;overflow:hidden}
.newsletter::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 260px at 90% 0%,rgba(63,208,220,.25),transparent 60%);pointer-events:none}
.newsletter__inner{position:relative;display:grid;gap:16px;padding-top:28px;padding-bottom:28px;align-items:center}
.newsletter__eyebrow{font:800 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-2);margin:0 0 8px}
.newsletter__title{color:#fff;font:750 clamp(1.4rem,3vw,1.9rem)/1.1 var(--serif);margin:0 0 6px}
.newsletter__text{margin:0;color:#dccfe8}
.newsletter__form{display:flex;flex-wrap:wrap;gap:8px}
.newsletter__form input{flex:1 1 220px;border:0;padding:.8em .9em}
.newsletter__soon{flex-basis:100%;margin:0;font-size:.78rem;color:#c4b3d6}
.newsletter+.wrap,.newsletter+.site-footer{margin-top:0}

/* ---------- Archives ---------- */
.archive-layout{padding-top:calc(var(--gap)*1.5);padding-bottom:var(--gap)}
.archive-head{margin-bottom:var(--gap);padding-bottom:12px;border-bottom:3px solid var(--purple-bg)}
.archive-head__eyebrow{font:800 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 8px}
.archive-head__title{font:800 clamp(2rem,5vw,3rem)/1.05 var(--serif);letter-spacing:-.02em;margin:0 0 6px}
.archive-head__desc{color:var(--muted);max-width:70ch}
.archive-head__desc p{margin:0 0 .5em}
.archive-head .search-form{margin-top:12px}
.subnav ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.subnav a{display:block;padding:6px 10px;border:1px solid var(--line-2);background:var(--card);font:700 .78rem var(--sans);color:var(--purple);text-decoration:none}
.archive-body{display:grid;gap:var(--gap)}
.archive-main{min-width:0;display:flex;flex-direction:column;gap:var(--gap)}
.grid{display:grid;gap:var(--gap)}
.search-results{list-style:none;margin:0;padding:0;background:var(--card)}
.search-results>li{padding-bottom:6px;border-top:1px solid var(--line)}
.search-results .card--compact{border-top:0}
.search-results__excerpt{padding:0 var(--pad);margin:0 0 10px;color:var(--muted);font-size:.92rem}
.empty-state{background:var(--card);padding:24px var(--pad)}
.pagination{background:var(--card);padding:12px var(--pad)}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pagination .page-numbers{display:inline-block;padding:8px 12px;border:1px solid var(--line-2);color:var(--purple);text-decoration:none;font-weight:700;font-size:.85rem}
.pagination .page-numbers.current{background:var(--purple-bg);color:#fff;border-color:var(--purple-bg)}

/* ---------- Article ---------- */
.article-layout{display:grid;gap:var(--gap);padding-top:calc(var(--gap)*1.5);padding-bottom:var(--gap)}
.article,.page-article,.error-404{background:var(--card);padding:20px var(--pad) 28px;min-width:0}
.article__head{max-width:720px;margin:0 auto}
.article__title,.page-article__title{font:800 clamp(1.9rem,4.6vw,3rem)/1.08 var(--serif);letter-spacing:-.02em;margin:4px 0 14px;font-variation-settings:"opsz" 96}
.article__dek{font:400 1.2rem/1.45 Georgia,"Times New Roman",serif;color:var(--text-2);margin:0 0 16px}
.article__byline{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:20px}
.article__author{font-weight:700;color:var(--ink)}
.article__author a{color:var(--ink)}
.article__media{margin:0 auto 22px;max-width:960px}
.article__media img{width:100%}
.article__media figcaption,.wp-caption-text,.wp-element-caption,figcaption{font-size:.8rem;color:var(--muted);padding-top:6px}
.notice{padding:12px 14px;border-left:4px solid var(--accent);background:var(--notice-bg);font-size:.92rem;margin:0 0 16px}
.entry-content{max-width:720px;margin:0 auto;font:400 1.125rem/1.7 Georgia,"Times New Roman",serif;color:var(--body-ink)}
.entry-content>*{margin-top:0;margin-bottom:1.1em}
.entry-content h2,.entry-content h3,.entry-content h4{font-family:var(--serif);margin-top:1.6em;letter-spacing:-.01em}
.entry-content h2{font-size:1.65rem}.entry-content h3{font-size:1.3rem}
.entry-content a{color:var(--teal-ink);text-decoration-thickness:1px}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content li{margin-bottom:.35em}
.entry-content blockquote,.entry-content .wp-block-quote{margin-left:0;padding:4px 0 4px 18px;border-left:4px solid var(--teal-2);font-style:italic}
.entry-content .wp-block-pullquote{border-top:4px solid var(--purple-bg);border-bottom:4px solid var(--purple-bg);padding:1em 0;text-align:center}
.entry-content table{width:100%;border-collapse:collapse;font:400 .95rem/1.45 var(--sans)}
.entry-content th,.entry-content td{border-bottom:1px solid var(--line);padding:8px;text-align:left}
.entry-content img{height:auto}
.entry-content .alignwide{max-width:960px;margin-left:auto;margin-right:auto}
.entry-content .alignfull{max-width:none}
.alignleft{float:left;margin:0 1em 1em 0}.alignright{float:right;margin:0 0 1em 1em}.aligncenter{margin-left:auto;margin-right:auto}
.entry-content .wp-block-button__link{background:var(--purple-bg);color:#fff;border-radius:var(--radius);font:700 .9rem var(--sans);text-decoration:none}
.entry-content .wp-block-separator{border:0;border-top:1px solid var(--line-2)}
.entry-content::after{content:"";display:table;clear:both}
.article__foot{max-width:720px;margin:24px auto 0;padding-top:16px;border-top:1px solid var(--line)}
.tag-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tag-list a{display:block;padding:5px 9px;background:var(--bg);font:700 .75rem var(--sans);color:var(--purple);text-decoration:none}
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;margin-bottom:12px}
.share__label{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--muted)}
.share a{padding:6px 10px;border:1px solid var(--line-2);color:var(--purple);text-decoration:none;font-weight:700}
.share a:hover{background:var(--purple-bg);color:#fff}
.article__corrections{font-size:.85rem;color:var(--muted)}
.related{padding-bottom:var(--gap)}
.page-layout{padding-top:calc(var(--gap)*1.5);padding-bottom:calc(var(--gap)*1.5);display:grid;gap:var(--gap)}
.page-article{max-width:880px;width:100%;margin:0 auto}
.page-article__head{max-width:720px;margin:0 auto}
.error-404 .search-form{margin:16px 0}
.error-404__sections .menu{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.error-404__sections a{display:block;padding:8px 12px;background:var(--bg);font-weight:700;font-size:.85rem;color:var(--purple);text-decoration:none}
.comments{max-width:720px;margin:28px auto 0}
.comment-list{padding-left:1.2em}

/* Mobile order like a news app: lead, Latest, more stories, then rail */
@media (max-width:999px){
  .front:not(.front--sections){display:flex;flex-direction:column;gap:var(--gap)}
  .front:not(.front--sections)>.top,.front:not(.front--sections)>.second{display:contents}
  .top__lead{order:1}.second__latest{order:2}.second__grid{order:3}.top>.rail{order:4}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--purple-deep);color:#cdbfdc;font-size:.88rem}
.site-footer__grid{display:grid;gap:24px;padding-top:36px;padding-bottom:28px}
.site-footer .brand__link{align-items:flex-start;color:#fff}
.site-footer .brand__logo{height:48px}
.site-footer__about p{margin:12px 0 0;max-width:36ch}
.site-footer__h{font:800 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.footer-links a,.site-footer a{color:#ece4f3;text-decoration:none}
.footer-links a{display:inline-block;padding:4px 0}
.site-footer a:hover{color:var(--teal-2);text-decoration:underline}
.site-footer__bar{border-top:1px solid rgba(255,255,255,.1)}
.site-footer__barinner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:14px;padding-bottom:14px;font-size:.78rem}
.site-footer__barinner p{margin:0}
.legal-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px}
.site-footer .widget ul{list-style:none;margin:0;padding:0}
.site-footer .widget li{padding:4px 0}
.site-footer .widget+.widget{margin-top:18px}
.site-footer .widget h2,.site-footer .widget-title{font:800 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff}

/* ---------- Responsive ---------- */
@media (max-width:719px){
  :root{--pad:14px;--gap:12px}
  .masthead__top{grid-template-columns:1fr auto;padding-top:8px;padding-bottom:8px}
  .masthead__dateline{display:none}
  .masthead__brand{justify-self:start}
  .brand__logo{height:40px}
  .utility-menu li:not(:last-child){display:none}
  .utility-menu li+li::before{display:none}
  .brand__tag{display:none}
  .sectionnav .menu{justify-content:flex-start}
  .sectionnav a{padding:12px 9px;font-size:.74rem}
  .front{padding-left:0;padding-right:0}
  .front .section-head{margin-left:var(--pad);margin-right:var(--pad)}
  .front .section-block__desc{padding:0 var(--pad)}
  /* Dense mobile cards: thumb right, like a news app */
  .second__grid .card--standard,.section-block--row .card--standard{flex-direction:row-reverse;gap:12px;padding:14px var(--pad)}
  .second__grid .card--standard .card__media,.section-block--row .card--standard .card__media{width:104px;flex:none;aspect-ratio:3/2;align-self:flex-start}
  .second__grid .card--standard .card__body,.section-block--row .card--standard .card__body{padding:0}
  .second__grid,.section-block--row .section-block__grid{gap:1px;background:var(--line)}
  .card__media .media-fallback__mark{height:56%;min-height:0}
  .article,.page-article,.error-404{padding-left:var(--pad);padding-right:var(--pad)}
  .article-layout,.page-layout,.archive-layout{padding-left:0;padding-right:0}
  .archive-head{margin-left:var(--pad);margin-right:var(--pad)}
  .entry-content{font-size:1.06rem}
}
@media (min-width:720px){
  .second__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section-block--row .section-block__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section-block--feature .section-block__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
  .section-block--neighborhood-guide.section-block--row .panel--promo{grid-column:1/-1}
  .grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .newsletter__inner{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);padding-top:36px;padding-bottom:36px}
  .site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
  .top{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}
  .second{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
  .second__latest{display:flex}.second__latest .panel{flex:1}
  .section-block--row .section-block__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .section-block--neighborhood-guide.section-block--row .panel--promo{grid-column:auto}
  .grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .archive-body,.article-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}
  .article-layout .rail,.archive-body .rail{position:sticky;top:64px}
  .admin-bar .article-layout .rail,.admin-bar .archive-body .rail{top:96px}
  .page-layout{grid-template-columns:minmax(0,1fr)}
  .site-footer__grid{grid-template-columns:1.4fr repeat(3,minmax(0,1fr))}
  .site-footer__grid:has(> :nth-child(5)){grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}
  .card--lead .card__title--lead{font-size:2.3rem}
}
@media print{
  .sectionbar,.drawer,.slot,.newsletter,.rail,.share,.site-footer__grid{display:none!important}
  body{background:#fff}
}
.site-footer__tip a{text-decoration:underline}

/* ---------- Author (1.2.1): byline avatar, "About the author" box, author archive header ---------- */
.article__author{display:inline-flex;align-items:center;gap:10px}
.article__avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:var(--bg)}
.article__byline{align-items:center}
.author-box{max-width:720px;margin:28px auto 0;display:flex;gap:20px;align-items:flex-start;background:var(--bg);border-radius:12px;padding:22px 24px;border-left:4px solid var(--purple-bg)}
.author-box__media{flex:none;line-height:0;text-decoration:none}
.author-box__avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--card),0 0 0 4px var(--line-2)}
.author-box__body{min-width:0;flex:1}
.author-box__eyebrow{font:800 .7rem/1 "Inter",system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink);margin:0 0 6px}
.author-box__name{font:750 1.45rem/1.15 "Fraunces",Georgia,serif;letter-spacing:-.01em;margin:0 0 8px;font-variation-settings:"opsz" 48}
.author-box__name a{color:var(--purple);text-decoration:none}
.author-box__name a:hover{color:var(--teal-ink);text-decoration:underline}
.author-box__bio{font:400 .95rem/1.55 "Inter",system-ui,sans-serif;color:var(--text-2)}
.author-box__bio p{margin:0 0 .6em}
.author-box__bio a,.author-box__more{color:var(--teal-ink)}
.author-box__more{display:inline-block;margin-top:2px;font:800 .78rem/1 "Inter",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.author-box__more:hover{color:var(--purple);text-decoration:underline}
.archive-head--author{display:flex;gap:20px;align-items:center}
.archive-head__media{flex:none;line-height:0}
.archive-head__avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--card),0 0 0 4px var(--line-2)}
.archive-head__text{min-width:0}
.archive-head--author .archive-head__desc{font-family:var(--sans)}
@media (max-width:519px){
  .author-box{flex-direction:column;align-items:center;text-align:center;gap:12px;padding:20px 16px;border-left:0;border-top:4px solid var(--purple-bg)}
  .author-box__avatar{width:84px;height:84px}
  .archive-head--author{flex-direction:column;align-items:flex-start;gap:12px}
  .archive-head__avatar{width:80px;height:80px}
}
@media print{.author-box{break-inside:avoid;background:none;border:1px solid #ccc}}

/* ---------- Social links (1.2.2) ---------- */
.masthead__utility{display:flex;align-items:center;gap:12px}
.social-links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:6px}
.social-links__link{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s}
.social-links__icon{width:16px;height:16px}
.social-links--masthead .social-links__link{color:var(--purple);border:1px solid var(--line-2);background:var(--card)}
.social-links--masthead .social-links__link:hover,.social-links--masthead .social-links__link:focus-visible{color:#fff;background:var(--teal);border-color:var(--teal)}
.site-footer__follow{display:flex;align-items:center;gap:12px;margin-top:16px}
.site-footer__follow-label{font:800 .72rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.social-links--footer .social-links__link{width:34px;height:34px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18)}
.social-links--footer .social-links__icon{width:17px;height:17px}
.site-footer .social-links--footer .social-links__link:hover,.site-footer .social-links--footer .social-links__link:focus-visible{color:var(--purple-deep);background:var(--teal-2);border-color:var(--teal-2);text-decoration:none}
@media (max-width:719px){
  .masthead__utility{gap:8px}
  .social-links{gap:4px}
  .social-links--masthead .social-links__link{width:28px;height:28px}
  .social-links--masthead .social-links__icon{width:15px;height:15px}
}
@media print{.social-links{display:none!important}}
.newsletter__msg{flex-basis:100%;margin:0;font-size:.85rem;color:#fff}
.newsletter__msg--error{color:#ffd1d1}
.newsletter__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Dark mode toggle + theme-aware details (1.2.10) ---------- */
.theme-toggle{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px 0 9px;flex:none;border:1px solid var(--line-2);border-radius:999px;background:var(--card);color:var(--purple);font:800 .68rem/1 var(--display);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--purple-bg);border-color:var(--purple-bg);color:#fff}
.theme-toggle__icon{width:16px;height:16px;flex:none}
.theme-toggle__icon--moon{display:var(--tt-moon)}
.theme-toggle__icon--sun{display:var(--tt-sun)}
.theme-toggle__label--dark{display:var(--tt-to-dark)}
.theme-toggle__label--light{display:var(--tt-to-light)}
/* Without JavaScript the button cannot work, so it is hidden (the OS setting still applies). */
html:not(.ui-js) .theme-toggle{display:none}
@media (max-width:719px){
  .theme-toggle{width:30px;padding:0;justify-content:center}
  .theme-toggle__label{display:none!important}
}
@media (max-width:379px){
  .masthead__utility .social-links__link{width:26px;height:26px}
  .masthead__utility .social-links__icon{width:14px;height:14px}
  .brand__logo{height:34px}
}
@media print{.theme-toggle{display:none!important}}

/* Logo: the default lockup swaps to the reversed (white) one in dark mode. A custom logo gets a light plate so it stays legible. */
.brand__logo--light{display:var(--logo-light)}
.brand__logo--dark{display:var(--logo-dark)}
.brand--masthead .brand__logo:not(.brand__logo--light):not(.brand__logo--dark),.brand--drawer .brand__logo:not(.brand__logo--light):not(.brand__logo--dark){background:var(--logo-plate-bg);padding:var(--logo-plate-pad);border-radius:6px;box-sizing:content-box}

/* Dark-only details. Everything else is driven by the colour tokens at the top of this file. */
:root[data-theme="dark"] .sectionbar__mini img{box-shadow:0 0 0 1px var(--line-2)}
/* Core block styles hard-code a light grey for striped tables. */
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:var(--stripe)}
/* Rendered X / Twitter embeds (iframes) keep their own palette; widgets.js is asked for its dark theme (see theme-toggle.js). */
.entry-content iframe{color-scheme:normal}

/* Print always uses the light palette */
@media print{
  :root,:root[data-theme="dark"]{
    --bg:#f4f3f7;--card:#fff;--line:#dfe3e8;--line-2:#c9d0d8;--muted:#4f5b6c;--muted-2:#667085;--ink:#1a1023;--body-ink:#1b1424;--text-2:#2e2638;
    --purple:#31064d;--purple-bg:#31064d;--teal-ink:#027a8a;--accent-ink:#027a8a;--accent:#028fa2;--notice-bg:#e9f6f8;--stripe:#f0f0f0;
    --kicker:#5b2a86;--k-events:#027a8a;--k-eat:#7a2f8f;--k-night:#5b2a86;--k-guide:#02626f;--k-sports:#1d5fa8;
    --logo-light:block;--logo-dark:none;--logo-plate-bg:transparent;--logo-plate-pad:0;color-scheme:light;
  }
}
