/* RichardCiano.com — Editorial / Market-insights
   v3 — bolder colour, dynamic portrait treatment, no outbound to Yorkville.
*/

:root {
  --paper:      #faf6ef;
  --paper-2:    #f3ece0;
  --paper-3:    #eee4d2;
  --ink:        #0b1220;
  --ink-2:      #1a2234;
  --ink-3:      #2a3346;
  --muted:      #5a6173;
  --muted-2:    #828a9e;
  --border:     #e5dfd3;
  --border-2:   #d8d0bf;
  --accent:     #c0392b;
  --accent-2:   #e67e22;
  --accent-3:   #2980b9;
  --accent-4:   #16a085;
  --accent-5:   #8e44ad;
  --accent-dark:#7a1f18;

  --t-housing-bg:    #f2e4d1;  --t-housing-ink:    #7b3f12;
  --t-crypto-bg:     #dae3f2;  --t-crypto-ink:     #1e3a78;
  --t-surveillance-bg:#e7dcee;  --t-surveillance-ink:#4a1f6b;
  --t-markets-bg:    #dee8dd;  --t-markets-ink:    #1f5132;
  --t-aviation-bg:   #dce8ef;  --t-aviation-ink:   #1a4a6b;
  --t-elections-bg:  #ecd9d6;  --t-elections-ink:  #7a1a1a;
  --t-ruleoflaw-bg:  #e2e0d6;  --t-ruleoflaw-ink:  #2a3346;
  --t-selfdefence-bg:#f0dcd1;  --t-selfdefence-ink:#6b2a12;
  --t-trade-bg:      #e9e3cf;  --t-trade-ink:      #4a3d12;
  --t-foreign-bg:    #d9dce0;  --t-foreign-ink:    #223447;
  --t-fiscal-bg:     #dde6dc;  --t-fiscal-ink:     #1a4a33;
  --t-supply-bg:     #ebe4cb;  --t-supply-ink:     #52430b;
  --t-press-bg:      #1a2234;  --t-press-ink:      #faf6ef;

  --shadow:  0 1px 2px rgba(11, 18, 32, 0.05), 0 6px 24px rgba(11, 18, 32, 0.06);
  --shadow-2:0 2px 4px rgba(11, 18, 32, 0.08), 0 12px 36px rgba(11, 18, 32, 0.08);
  --shadow-3:10px 10px 0 var(--accent-2);
  --serif:   "Playfair Display", "Georgia", "Times New Roman", serif;
  --sans:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono:    ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --container: 1180px;
  --gap: 1.5rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--accent-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }
.rule { border: 0; border-top: 1px solid var(--border); margin: 3rem 0; }
.rule-thin { border: 0; border-top: 1px solid var(--border); margin: 1.25rem 0; }

/* Rainbow bar above tickertape */
.rainbow-bar {
  height: 6px;
  background: linear-gradient(90deg,
    var(--accent) 0%,
    var(--accent-2) 20%,
    var(--t-housing-ink) 35%,
    var(--accent-4) 50%,
    var(--t-crypto-ink) 65%,
    var(--accent-5) 80%,
    var(--accent) 100%);
}

/* Tickertape */
.tickertape { background: var(--ink); color: var(--paper); font-family: var(--sans); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; overflow: hidden; position: relative; border-bottom: 1px solid var(--ink-3); }
.tickertape-track { display: flex; gap: 3rem; padding: .6rem 0; white-space: nowrap; animation: ticker-scroll 44s linear infinite; width: max-content; }
.tickertape-track span { display: inline-flex; align-items: center; gap: .75rem; }
.tickertape-track span::before { content: "\25CF"; color: var(--accent); font-size: .75rem; }
.tickertape-track span.t-c1::before { color: var(--accent); }
.tickertape-track span.t-c2::before { color: var(--accent-2); }
.tickertape-track span.t-c3::before { color: var(--accent-3); }
.tickertape-track span.t-c4::before { color: var(--accent-4); }
.tickertape-track span.t-c5::before { color: var(--accent-5); }
.tickertape-track span.t-c6::before { color: var(--t-housing-bg); }
.tickertape-track span.t-c7::before { color: var(--t-crypto-bg); }
@keyframes ticker-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .tickertape-track { animation: none; width: 100%; justify-content: center; flex-wrap: wrap; white-space: normal; } }

/* Masthead */
.masthead { border-bottom: 2px solid var(--ink); background: var(--paper); position: relative; }
.masthead-inner { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; max-width: var(--container); margin: 0 auto; gap: 1rem; }
.wordmark { font-family: var(--serif); font-weight: 700; letter-spacing: .01em; font-size: 1.35rem; color: var(--ink); white-space: nowrap; display: flex; align-items: baseline; gap: .5rem; }
.wordmark a { color: inherit; text-decoration: none; }
.wordmark a:hover { color: var(--accent); }
.wordmark-dot { display: inline-block; width: 9px; height: 9px; background: var(--accent); border-radius: 50%; transform: translateY(-1px); }
.nav { display: flex; gap: 1.75rem; font-size: .88rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 500; }
.nav a { color: var(--ink-2); text-decoration: none; border-bottom: 2px solid transparent; padding-bottom: 2px; transition: all .15s ease; }
.nav a:hover, .nav a.active { color: var(--accent); border-bottom-color: var(--accent); }

/* Hero / Billboard (with colour overlay) */
.billboard { padding: 4rem 0 3rem; text-align: center; border-bottom: 1px solid var(--border); position: relative; overflow: hidden; background: linear-gradient(180deg, var(--paper) 0%, var(--t-crypto-bg) 160%); }
.billboard::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(to right, transparent 0%, transparent 49.7%, var(--border) 49.7%, var(--border) 50.3%, transparent 50.3%); opacity: .14; pointer-events: none; }
.billboard::after { content: ""; position: absolute; top: 20px; right: 8%; width: 180px; height: 180px; background: radial-gradient(circle, var(--accent-2) 0%, transparent 60%); opacity: .18; pointer-events: none; border-radius: 50%; }
.billboard > * { position: relative; }
.kicker { font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 1.25rem; display: inline-flex; align-items: center; gap: .6rem; }
.kicker-mark { display: inline-block; width: 10px; height: 10px; background: var(--accent-2); transform: rotate(45deg); }
h1.display { font-family: var(--serif); font-weight: 700; font-size: clamp(2.8rem, 7vw, 5.4rem); line-height: 1.02; letter-spacing: -.015em; margin: 0 0 1rem; color: var(--ink); }
h1.display em { font-style: italic; color: var(--accent); }
.tagline { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 2.3vw, 1.55rem); color: var(--ink-2); max-width: 820px; margin: 0 auto 1.5rem; line-height: 1.45; font-weight: 400; }
.intro { max-width: 680px; margin: 0 auto; color: var(--muted); font-size: 1.05rem; }
.billboard-meta { display: flex; justify-content: center; gap: 2rem; margin-top: 2rem; padding-top: 1.75rem; border-top: 1px solid var(--border); font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); font-weight: 500; flex-wrap: wrap; }
.billboard-meta b { color: var(--ink); font-weight: 700; font-size: 1.6rem; font-family: var(--serif); display: block; letter-spacing: -.01em; }
.billboard-meta > span { display: inline-block; }
.billboard-meta > span:nth-child(1) b { color: var(--accent); }
.billboard-meta > span:nth-child(2) b { color: var(--accent-3); }
.billboard-meta > span:nth-child(3) b { color: var(--accent-4); }

/* Section headings */
section { padding: 3.5rem 0; }
.section-title { font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700; margin: 0 0 .35rem; color: var(--ink); letter-spacing: -.01em; }
.section-sub { color: var(--muted); font-size: 1rem; margin-bottom: 2rem; max-width: 680px; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); position: relative; }
.section-head::before { content: ""; position: absolute; left: 0; bottom: -1px; width: 72px; height: 3px; background: var(--accent); }
.section-head .section-title { margin: 0; }
.section-head-link { font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); font-weight: 600; white-space: nowrap; }
.section-kicker { color: var(--muted); font-size: 1rem; margin: 0 0 1.25rem; max-width: 680px; font-family: var(--sans); }

/* Topic pillars — now boldly coloured */
.topics-section { background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); position: relative; }
.topics-section::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--t-surveillance-ink), var(--t-housing-ink), var(--t-crypto-ink)); }
.topics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 860px) { .topics-grid { grid-template-columns: 1fr; } }
.topic-pillar { border: 1px solid var(--border); padding: 1.75rem 1.5rem; position: relative; transition: transform .2s ease, box-shadow .2s ease; overflow: hidden; background: var(--paper); }
.topic-pillar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: currentColor; }
.topic-pillar::after { content: ""; position: absolute; top: -30px; right: -30px; width: 120px; height: 120px; border-radius: 50%; background: currentColor; opacity: .08; }
.topic-pillar:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.topic-pillar.t-p-surveillance { color: var(--t-surveillance-ink); background: linear-gradient(155deg, var(--t-surveillance-bg) 0%, var(--paper) 85%); }
.topic-pillar.t-p-housing { color: var(--t-housing-ink); background: linear-gradient(155deg, var(--t-housing-bg) 0%, var(--paper) 85%); }
.topic-pillar.t-p-crypto { color: var(--t-crypto-ink); background: linear-gradient(155deg, var(--t-crypto-bg) 0%, var(--paper) 85%); }
.topic-pillar > * { position: relative; z-index: 1; }
.topic-pillar .t-label, .topic-pillar-num { font-family: var(--mono); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: currentColor; margin-bottom: .6rem; opacity: .75; }
.topic-pillar h3, .topic-pillar-title { font-family: var(--serif); font-size: 1.6rem; font-weight: 700; margin: 0 0 .6rem; line-height: 1.15; letter-spacing: -.005em; color: currentColor; }
.topic-pillar p, .topic-pillar-text { color: var(--ink-2); font-size: .97rem; margin: 0 0 1rem; }
.topic-pillar .t-link { font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: currentColor; }

/* Featured */
.featured-section { background: var(--ink); color: var(--paper); padding: 4rem 0; position: relative; overflow: hidden; }
.featured-section::before { content: ""; position: absolute; top: 0; left: 0; bottom: 0; width: 6px; background: linear-gradient(180deg, var(--accent), var(--accent-2), var(--accent-4)); }
.featured-section .kicker { color: var(--accent-2); }
.featured-section .section-title { color: var(--paper); }
.featured-section .section-head { border-bottom-color: var(--ink-3); }
.featured-section .section-head::before { background: var(--accent-2); }
.featured { display: grid; grid-template-columns: 1.25fr 1fr; gap: 2.5rem; align-items: center; }
.featured-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--ink-3); border: 1px solid var(--ink-3); position: relative; box-shadow: 12px 12px 0 var(--accent); }
.featured-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.featured-img:hover img { transform: scale(1.03); }
.featured-body .outlet-badge { margin-bottom: 1rem; background: var(--accent); color: var(--paper); border-color: var(--accent); }
.featured-body h3 { font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 700; line-height: 1.15; margin: 0 0 1rem; letter-spacing: -.01em; color: var(--paper); }
.featured-body h3 a { color: var(--paper); text-decoration: none; }
.featured-body h3 a:hover { color: var(--accent-2); }
.featured-body .excerpt { color: var(--muted-2); font-size: 1.05rem; margin-bottom: 1.25rem; }
.read-link { display: inline-flex; align-items: center; gap: .5rem; font-size: .88rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; color: var(--accent-2); border-bottom: 1.5px solid var(--accent-2); padding-bottom: 2px; }
.read-link:hover { color: var(--paper); border-color: var(--paper); text-decoration: none; }
@media (max-width: 780px) { .featured { grid-template-columns: 1fr; gap: 1.5rem; } .featured-img { box-shadow: 8px 8px 0 var(--accent); } }

/* Article grid */
.writings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem 1.75rem; }
@media (max-width: 960px) { .writings-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .writings-grid { grid-template-columns: 1fr; } }
.article-card { display: flex; flex-direction: column; background: var(--paper); transition: transform .25s ease; }
.article-card:hover { transform: translateY(-3px); }

/* Topic tile */
.topic-tile { aspect-ratio: 16 / 10; min-height: 0; display: grid; grid-template-rows: auto 1fr auto; padding: 1rem 1.25rem; border: 1px solid var(--border); margin-bottom: 1rem; background: var(--paper-2); color: var(--ink-2); position: relative; overflow: hidden; transition: transform .4s ease; text-decoration: none; }
.topic-tile::before { content: ""; position: absolute; top: -30%; right: -30%; width: 180px; height: 180px; border-radius: 50%; background: currentColor; opacity: .07; pointer-events: none; }
.topic-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.16) 0%, rgba(0,0,0,0.08) 100%); pointer-events: none; }
.topic-tile .t-corner { font-family: var(--mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; opacity: .78; display: flex; justify-content: space-between; gap: 1rem; z-index: 1; }
.topic-tile .t-word, .topic-tile-word { font-family: var(--serif); font-style: italic; font-weight: 700; font-size: clamp(1.55rem, 3.2vw, 2.35rem); line-height: 1.05; letter-spacing: -.015em; align-self: center; z-index: 1; min-width: 0; overflow-wrap: break-word; hyphens: auto; }
.topic-tile .t-rule { height: 3px; background: currentColor; opacity: .4; z-index: 1; }
.article-card:hover .topic-tile { transform: scale(1.015) rotate(-.25deg); }

.t-housing       { background: var(--t-housing-bg);     color: var(--t-housing-ink); }
.t-crypto        { background: var(--t-crypto-bg);      color: var(--t-crypto-ink); }
.t-surveillance  { background: var(--t-surveillance-bg);color: var(--t-surveillance-ink); }
.t-markets       { background: var(--t-markets-bg);     color: var(--t-markets-ink); }
.t-aviation      { background: var(--t-aviation-bg);    color: var(--t-aviation-ink); }
.t-elections     { background: var(--t-elections-bg);   color: var(--t-elections-ink); }
.t-ruleoflaw     { background: var(--t-ruleoflaw-bg);   color: var(--t-ruleoflaw-ink); }
.t-selfdefence   { background: var(--t-selfdefence-bg); color: var(--t-selfdefence-ink); }
.t-trade         { background: var(--t-trade-bg);       color: var(--t-trade-ink); }
.t-foreign       { background: var(--t-foreign-bg);     color: var(--t-foreign-ink); }
.t-fiscal        { background: var(--t-fiscal-bg);      color: var(--t-fiscal-ink); }
.t-supply        { background: var(--t-supply-bg);      color: var(--t-supply-ink); }
.t-press         { background: var(--t-press-bg);       color: var(--t-press-ink); border-color: var(--ink); }

.article-card h4 { font-family: var(--serif); font-size: 1.35rem; line-height: 1.25; font-weight: 700; margin: .4rem 0 .6rem; letter-spacing: -.005em; }
.article-card h4 a { color: var(--ink); text-decoration: none; }
.article-card h4 a:hover { color: var(--accent); }
.article-card .excerpt { color: var(--muted); font-size: .95rem; line-height: 1.55; margin: 0 0 .75rem; }
.article-meta { display: flex; align-items: center; gap: .5rem .75rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-top: auto; flex-wrap: wrap; }
.article-meta > time { flex-basis: 100%; margin-top: .15rem; }
.outlet-badge { display: inline-block; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); font-weight: 700; padding: 3px 8px; border: 1.5px solid var(--accent); border-radius: 2px; }
.outlet-badge[data-outlet="Financial Post"]   { color: var(--accent);   border-color: var(--accent); }
.outlet-badge[data-outlet="National Post"]    { color: var(--t-crypto-ink); border-color: var(--t-crypto-ink); }
.outlet-badge[data-outlet="iPolitics"]        { color: var(--accent-4); border-color: var(--accent-4); }
.outlet-badge[data-outlet="Toronto Star"]     { color: var(--accent-5); border-color: var(--accent-5); }
.topic-chip { display: inline-block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; padding: 2px 8px; background: var(--paper-2); border: 1px solid var(--border); border-radius: 99px; }

/* Pull-quote */
.pullquote-section { background: var(--ink); color: var(--paper); padding: 4rem 0; border-top: 4px solid var(--accent); border-bottom: 4px solid var(--accent-2); position: relative; overflow: hidden; }
.pullquote-section::before { content: "\201C"; position: absolute; top: -2rem; left: 4%; font-family: var(--serif); font-size: 14rem; color: var(--accent); opacity: .22; line-height: 1; font-weight: 700; }
.pullquote { font-family: var(--serif); font-style: italic; font-size: clamp(1.5rem, 3.2vw, 2.3rem); line-height: 1.3; font-weight: 400; max-width: 900px; margin: 0 auto; text-align: center; letter-spacing: -.005em; position: relative; }
.pullquote-source { margin-top: 1.25rem; text-align: center; font-family: var(--sans); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); font-style: normal; font-weight: 700; position: relative; }

/* -------- Portrait: real photo with offset accent block -------- */
.portrait-frame {
  position: relative;
  max-width: 340px;
  margin: 0 auto;
  aspect-ratio: 4 / 5;
  isolation: isolate;
}
.portrait-frame .portrait-block {
  position: absolute;
  inset: 14px -14px -14px 14px;
  background: var(--accent);
  z-index: 0;
}
.portrait-frame .portrait {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 2px solid var(--ink);
  background: var(--paper);
  aspect-ratio: 4 / 5;
  max-width: none;
  width: 100%;
  height: 100%;
  box-shadow: var(--shadow);
}
.portrait-frame .portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Legacy portrait class retained for non-framed use (e.g., small images) */
.portrait { aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--border); background: var(--paper-2); max-width: 360px; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* About */
.about-teaser { display: grid; grid-template-columns: 1fr 1.4fr; gap: 3rem; align-items: center; }
@media (max-width: 800px) { .about-teaser { grid-template-columns: 1fr; gap: 2rem; } }
.about-body p { color: var(--ink-2); font-size: 1.06rem; line-height: 1.7; }
.about-body p + p { margin-top: 1rem; }
.about-body .lede, .lede { font-family: var(--serif); font-size: 1.3rem; line-height: 1.5; color: var(--ink); font-weight: 500; border-left: 4px solid var(--accent); padding-left: 1rem; }

/* Areas / creds */
.areas-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem 2rem; margin-top: 2rem; }
@media (max-width: 780px) { .areas-grid { grid-template-columns: 1fr; } }
.creds { margin: 1rem 0 0; }
.creds p { padding: .6rem 0; border-bottom: 1px solid var(--border); font-size: .96rem; color: var(--ink-2); margin: 0; }

/* Collab */
.collab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 780px) { .collab-grid { grid-template-columns: 1fr; } }
.collab-card { background: var(--paper-2); border: 1px solid var(--border); padding: 2rem 1.75rem; border-left: 5px solid var(--accent); transition: transform .2s ease, box-shadow .2s ease; }
.collab-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.collab-card:nth-child(2) { border-left-color: var(--accent-3); }
.collab-card:nth-child(3) { border-left-color: var(--accent-4); }
.collab-card:nth-child(4) { border-left-color: var(--accent-5); }
.collab-card:nth-child(5) { border-left-color: var(--accent-2); }
.collab-card:nth-child(6) { border-left-color: var(--t-housing-ink); }
.collab-card h3 { font-family: var(--serif); font-size: 1.3rem; font-weight: 700; margin: 0 0 .75rem; color: var(--ink); }
.collab-card p { color: var(--muted); font-size: .98rem; margin: 0 0 1rem; }
.collab-card ul { margin: 0 0 1rem 1.15rem; padding: 0; color: var(--ink-2); font-size: .95rem; }
.collab-card ul li { margin-bottom: .25rem; }
.collab-cta { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .88rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }

/* Filter bar */
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; padding-bottom: 1rem; align-items: center; }
.filter-bar + .filter-bar { border-top: 1px dashed var(--border); padding-top: 1rem; }
.filter-group-label { font-family: var(--mono); font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); align-self: center; margin-right: .5rem; padding-right: .75rem; border-right: 1px solid var(--border); }
.filter-btn { font-family: var(--sans); font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding: .5rem 1rem; background: transparent; color: var(--ink-2); border: 1.5px solid var(--border); border-radius: 999px; cursor: pointer; transition: all .15s ease; }
.filter-btn:hover { border-color: var(--ink); color: var(--ink); }
.filter-btn.active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.count { color: var(--muted); font-size: .9rem; margin-left: auto; align-self: center; }

/* Press cards */
.press-card { display: grid; grid-template-columns: 160px 1fr; gap: 1.5rem; align-items: start; padding: 1.5rem 0; border-bottom: 1px solid var(--border); }
.press-card:last-child { border-bottom: 0; }
.press-card .press-outlet { font-family: var(--serif); font-weight: 700; font-size: 1.1rem; color: var(--accent-5); letter-spacing: -.005em; }
.press-card .press-date { font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-top: .25rem; }
.press-card h4 { font-family: var(--serif); font-size: 1.15rem; margin: 0 0 .4rem; line-height: 1.3; font-weight: 600; letter-spacing: -.005em; }
.press-card h4 a { color: var(--ink); }
.press-card h4 a:hover { color: var(--accent); }
.press-card .pull { font-family: var(--serif); font-style: italic; color: var(--ink-2); font-size: 1rem; margin: 0; line-height: 1.55; }
@media (max-width: 640px) { .press-card { grid-template-columns: 1fr; gap: .5rem; } }

/* Contact */
.contact-lead { font-family: var(--serif); font-size: 1.4rem; font-style: italic; color: var(--ink-2); max-width: 720px; line-height: 1.45; }
.contact-email { display: inline-block; font-family: var(--serif); font-size: 1.6rem; font-weight: 700; color: var(--accent); margin-top: 1rem; border-bottom: 3px solid var(--accent-2); padding-bottom: 4px; }
.contact-email:hover { color: var(--accent-dark); }

/* Footer */
.site-footer { margin-top: 4rem; padding: 3rem 0 2rem; border-top: 2px solid var(--ink); background: var(--ink); color: var(--paper); }
.site-footer a { color: var(--paper); }
.site-footer a:hover { color: var(--accent-2); }
.footer-inner { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2rem; }
@media (max-width: 780px) { .footer-inner { grid-template-columns: 1fr; gap: 1.5rem; } }
.footer-brand { font-family: var(--serif); font-weight: 700; font-size: 1.3rem; color: var(--paper); margin-bottom: .5rem; }
.footer-sub { color: var(--muted-2); font-size: .92rem; line-height: 1.6; }
.footer-col h5 { font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--accent-2); margin: 0 0 .75rem; font-weight: 700; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: .4rem; font-size: .95rem; }
.footer-col a { color: var(--paper); opacity: .82; }
.footer-col a:hover { color: var(--accent-2); opacity: 1; }
.footer-bottom { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ink-3); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; color: var(--muted-2); font-size: .85rem; }

/* Skip link */
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--ink); color: var(--paper); padding: .5rem 1rem; z-index: 100; }
.skip-link:focus { left: 1rem; top: 1rem; }

/* Utility */
.hidden { display: none !important; }
.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; }

/* Print */
@media print {
  .masthead, .tickertape, .site-footer, .filter-bar, .collab-grid, .rainbow-bar { display: none; }
  body { background: white; color: black; }
}