:root {
  --bg: #f4f3ef;
  --surface: #ffffff;
  --ink: #141414;
  --muted: #6b6a66;
  --faint: #a3a19b;
  --line: #dcdad3;
  --accent: #2346d8;
  --accent-ink: #ffffff;
  --radius: 14px;
  --maxw: 1180px;
  --gut: clamp(20px, 5vw, 56px);
  --font: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --ease: cubic-bezier(.16, 1, .3, 1);
}
html[data-theme="dark"] {
  --bg: #111110;
  --surface: #1a1a19;
  --ink: #efeee9;
  --muted: #9b9a94;
  --faint: #66655f;
  --line: #2b2b29;
  --accent: #7d95ff;
  --accent-ink: #0d0d0c;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background .3s var(--ease), color .3s var(--ease);
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
::selection { background: var(--accent); color: var(--accent-ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }

/* language switching */
html[data-lang="ru"] [lang="en"]:not(html) { display: none !important; }
html[data-lang="en"] [lang="ru"]:not(html) { display: none !important; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gut); }
.mono { font-family: var(--mono); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }

/* header */
.header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s var(--ease);
}
.header.scrolled { border-bottom-color: var(--line); }
.header .wrap { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 16px; }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; letter-spacing: -.01em; white-space: nowrap; }
.brand-mark {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--ink); color: var(--bg);
  display: grid; place-items: center; font-size: 12px; font-weight: 600; letter-spacing: .02em;
}
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { white-space: nowrap;
  font-size: 14px; color: var(--muted); padding: 6px 12px; border-radius: 99px;
  transition: color .2s, background .2s;
}
.nav a:hover { color: var(--ink); }
.nav a[aria-current="page"] { color: var(--ink); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.tools { display: flex; align-items: center; gap: 6px; }
.chip-btn {
  appearance: none; border: 1px solid var(--line); background: transparent; color: var(--ink);
  height: 34px; min-width: 34px; padding: 0 10px; border-radius: 99px; cursor: pointer;
  font: 500 12px var(--mono); letter-spacing: .04em; display: inline-grid; place-items: center;
  transition: background .2s, border-color .2s;
}
.chip-btn:hover { border-color: var(--ink); }
.menu-btn { display: none; }

@media (max-width: 1480px) {
  .menu-btn { display: inline-grid; }
  .nav {
    position: fixed; inset: 68px 0 auto 0; flex-direction: column; align-items: stretch;
    background: var(--bg); border-bottom: 1px solid var(--line);
    padding: 12px var(--gut) 20px; gap: 2px;
    transform: translateY(-8px); opacity: 0; pointer-events: none;
    transition: opacity .25s var(--ease), transform .25s var(--ease);
  }
  .nav.open { opacity: 1; transform: none; pointer-events: auto; }
  .nav a { font-size: 18px; padding: 12px 4px; border-radius: 0; border-bottom: 1px solid var(--line); }
  .nav a[aria-current="page"] { background: none; box-shadow: none; }
}

/* sections */
main { min-height: 70vh; }
.section { padding: clamp(56px, 9vw, 120px) 0; }
.section + .section { border-top: 1px solid var(--line); }
.sec-head { display: grid; grid-template-columns: 220px 1fr; gap: 32px; margin-bottom: 48px; align-items: baseline; }
.sec-head h2 { margin: 0; font-size: clamp(26px, 3.4vw, 40px); font-weight: 500; letter-spacing: -.03em; line-height: 1.1; }
@media (max-width: 820px) { .sec-head { grid-template-columns: 1fr; gap: 10px; margin-bottom: 32px; } }

/* hero */
.hero { padding: clamp(64px, 12vw, 150px) 0 clamp(56px, 8vw, 100px); }
.hero-top { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(32px, 6vw, 72px); }
.status { display: inline-flex; align-items: center; gap: 8px; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: #2fb36d; box-shadow: 0 0 0 4px color-mix(in srgb, #2fb36d 20%, transparent); }
.hero h1 {
  margin: 0; font-weight: 500; letter-spacing: -.055em; line-height: .92;
  font-size: clamp(56px, 13vw, 176px);
}
.hero h1 .thin { color: var(--faint); }
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: clamp(36px, 6vw, 72px); align-items: end; }
.lead { font-size: clamp(18px, 1.7vw, 22px); line-height: 1.45; letter-spacing: -.01em; max-width: 34ch; margin: 0; }
.hero-cta { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 820px) { .hero-grid { grid-template-columns: 1fr; gap: 28px; } .hero-cta { justify-content: flex-start; } }

.btn {
  display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 22px;
  border-radius: 99px; font-size: 15px; font-weight: 500; border: 1px solid var(--line);
  transition: transform .2s var(--ease), background .2s, border-color .2s, color .2s;
}
.btn:hover { border-color: var(--ink); }
.btn:active { transform: scale(.98); }
.btn-primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.btn-primary:hover { background: color-mix(in srgb, var(--accent) 88%, var(--ink)); border-color: transparent; }
.btn svg { width: 18px; height: 18px; }
.arrow { transition: transform .25s var(--ease); }
a:hover .arrow { transform: translate(3px, -3px); }

/* linkedin feature */
.li-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: calc(var(--radius) + 6px);
  display: grid; grid-template-columns: 300px 1fr; overflow: hidden;
}
.li-side { padding: 36px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 22px; }
.li-logo { width: 44px; height: 44px; border-radius: 10px; background: #0a66c2; color: #fff; display: grid; place-items: center; }
.li-logo svg { width: 24px; height: 24px; }
.li-name { font-size: 22px; font-weight: 600; letter-spacing: -.02em; margin: 0; line-height: 1.2; }
.li-headline { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.li-meta { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--muted); margin-top: auto; }
.li-body { padding: 36px clamp(24px, 4vw, 48px); }
.li-body h3 { margin: 0 0 18px; font-size: 13px; font-family: var(--mono); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.li-body p { margin: 0 0 16px; max-width: 66ch; }
.li-body p:last-of-type { margin-bottom: 28px; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tags li { font-size: 13px; padding: 6px 12px; border-radius: 99px; border: 1px solid var(--line); color: var(--ink); }
.li-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
@media (max-width: 860px) {
  .li-card { grid-template-columns: 1fr; }
  .li-side { border-right: 0; border-bottom: 1px solid var(--line); padding: 28px 24px; }
  .li-body { padding: 28px 24px; }
}

/* facts */
.facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.fact { padding: 28px 24px 0 0; }
.fact + .fact { padding-left: 24px; border-left: 1px solid var(--line); }
.fact b { display: block; font-size: clamp(28px, 3.4vw, 44px); font-weight: 500; letter-spacing: -.04em; line-height: 1.1; margin-bottom: 8px; }
.fact > span { color: var(--muted); font-size: 14px; }
@media (max-width: 700px) {
  .facts { grid-template-columns: 1fr; }
  .fact, .fact + .fact { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--line); }
}

/* link list */
.links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.links a {
  display: grid; grid-template-columns: 44px 1fr auto 24px; gap: 18px; align-items: center;
  padding: 22px 4px; border-bottom: 1px solid var(--line);
  transition: padding .3s var(--ease), background .3s;
}
.links a:hover { padding-left: 14px; padding-right: 14px; background: var(--surface); }
.links .ico { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; }
.links .ico svg { width: 20px; height: 20px; }
.links .t { font-size: clamp(18px, 2vw, 24px); font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.links .s { display: block; color: var(--muted); font-size: 13px; font-weight: 400; letter-spacing: 0; margin-top: 2px; }
.links .h { font-family: var(--mono); font-size: 13px; color: var(--muted); text-align: right; }
.links .arrow { width: 20px; height: 20px; color: var(--muted); }
.links a.featured .ico { background: #0a66c2; border-color: #0a66c2; color: #fff; }
@media (max-width: 640px) {
  .links a { grid-template-columns: 40px 1fr 20px; gap: 14px; }
  .links .ico { width: 40px; height: 40px; }
  .links .h { display: none; }
}

/* about */
.about-grid { display: grid; grid-template-columns: 220px 1fr; gap: 32px; }
.about-text { font-size: clamp(20px, 2.2vw, 28px); line-height: 1.4; letter-spacing: -.02em; margin: 0; max-width: 32ch; }
.about-text .muted { color: var(--muted); }
@media (max-width: 820px) { .about-grid { grid-template-columns: 1fr; gap: 10px; } }

/* page header */
.page-head { padding: clamp(56px, 10vw, 120px) 0 clamp(40px, 6vw, 72px); border-bottom: 1px solid var(--line); }
.page-head h1 { margin: 16px 0 0; font-size: clamp(44px, 8vw, 104px); font-weight: 500; letter-spacing: -.05em; line-height: .95; }
.page-head p { margin: 24px 0 0; color: var(--muted); max-width: 52ch; font-size: 17px; }

/* projects */
.filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
.filters button {
  appearance: none; border: 1px solid var(--line); background: transparent; color: var(--muted);
  font: 500 13px var(--font); padding: 8px 14px; border-radius: 99px; cursor: default;
}
.filters button[aria-pressed="true"] { color: var(--ink); border-color: var(--ink); }
.empty {
  border: 1px dashed var(--line); border-radius: calc(var(--radius) + 6px);
  padding: clamp(40px, 7vw, 88px) clamp(24px, 5vw, 64px);
  display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end;
}
.empty h2 { margin: 12px 0 10px; font-size: clamp(26px, 3.4vw, 40px); font-weight: 500; letter-spacing: -.03em; line-height: 1.1; }
.empty p { margin: 0; color: var(--muted); max-width: 48ch; }
.slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 16px; }
.slot { aspect-ratio: 4/3; border-radius: var(--radius); background: repeating-linear-gradient(135deg, transparent 0 10px, color-mix(in srgb, var(--line) 55%, transparent) 10px 11px); border: 1px solid var(--line); display: flex; align-items: flex-end; padding: 16px; }
@media (max-width: 760px) { .empty { grid-template-columns: 1fr; } .slots { grid-template-columns: 1fr 1fr; } .slot:nth-child(3) { display: none; } }

/* resume */
.cv { display: grid; grid-template-columns: 220px 1fr; gap: 32px; padding: 40px 0; border-bottom: 1px solid var(--line); }
.cv:last-child { border-bottom: 0; }
.cv h2 { margin: 0; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding-top: 6px; }
.cv-item + .cv-item { margin-top: 28px; }
.cv-item h3 { margin: 0; font-size: 20px; font-weight: 500; letter-spacing: -.02em; line-height: 1.3; }
.cv-item .when { font-family: var(--mono); font-size: 12px; color: var(--muted); margin: 4px 0 10px; }
.cv-item p { margin: 0; max-width: 64ch; color: color-mix(in srgb, var(--ink) 82%, var(--bg)); }
.cv ul.plain { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; max-width: 64ch; }
.cv ul.plain li { padding-left: 20px; position: relative; }
.cv ul.plain li::before { content: ""; position: absolute; left: 0; top: .72em; width: 8px; height: 1px; background: var(--ink); }
.lang-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); max-width: 520px; }
.lang-row:first-child { padding-top: 0; }
.bar { display: flex; gap: 4px; }
.bar i { width: 22px; height: 6px; border-radius: 3px; background: var(--line); }
.bar i.on { background: var(--ink); }
.cv-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
@media (max-width: 820px) { .cv { grid-template-columns: 1fr; gap: 14px; padding: 32px 0; } }

/* contacts */
.contact-big { display: block; font-size: clamp(26px, 5.4vw, 72px); font-weight: 500; letter-spacing: -.045em; line-height: 1.05; word-break: break-word; padding: 8px 0; }
.contact-big:hover { color: var(--accent); }
.copy-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
.toast {
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0;
  background: var(--ink); color: var(--bg); padding: 10px 18px; border-radius: 99px; font-size: 14px;
  transition: opacity .25s var(--ease), transform .25s var(--ease); pointer-events: none; z-index: 100;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* footer */
.footer { border-top: 1px solid var(--line); padding: 32px 0 40px; margin-top: 0; }
.footer .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; }
.footer nav { display: flex; gap: 18px; flex-wrap: wrap; }
.footer nav a { font-size: 14px; color: var(--muted); }
.footer nav a:hover { color: var(--ink); }

/* reveal */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ===== peace / values design elements ===== */
body::before {
  content: ""; position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60;
  background: linear-gradient(90deg, #e5484d 0 16.66%, #f2994a 0 33.33%, #f2c94c 0 50%, #30a46c 0 66.66%, #3e63dd 0 83.33%, #8e4ec6 0);
}
.hero { position: relative; overflow: hidden; }
.hero .wrap { position: relative; z-index: 1; }
.hero-peace {
  position: absolute; z-index: 0; right: -8vw; top: 50%; width: min(78vw, 820px); aspect-ratio: 1;
  transform: translateY(-46%); color: var(--line); pointer-events: none;
}
.hero-peace svg { width: 100%; height: 100%; animation: spin 140s linear infinite; }
.badge { position: absolute; right: var(--gut); top: clamp(120px, 17vw, 230px); width: 150px; height: 150px; }
.badge-ring { width: 100%; height: 100%; animation: spin 26s linear infinite; }
.badge-ring text { font: 500 14px var(--mono); letter-spacing: 0; fill: var(--ink); }
.badge-core { position: absolute; inset: 36%; color: var(--accent); }
.badge-core svg { width: 100%; height: 100%; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 820px) {
  .badge { width: 96px; height: 96px; top: auto; bottom: auto; right: var(--gut); margin-top: -96px; position: relative; margin-left: auto; }
  .hero-peace { right: -30vw; width: 110vw; top: 34%; }
}

.marquee { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 0; background: var(--bg); }
.marquee--ink { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.marquee-track { display: flex; width: max-content; animation: marquee 42s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-row { display: flex; align-items: center; gap: 28px; padding-right: 28px; }
.marquee-row span { font-size: clamp(22px, 3vw, 38px); font-weight: 500; letter-spacing: -.02em; line-height: 1; white-space: nowrap; }
.marquee-row span:nth-of-type(even) { color: transparent; -webkit-text-stroke: 1px var(--ink); }
.marquee--ink .marquee-row span:nth-of-type(even) { -webkit-text-stroke-color: var(--bg); }
.m-sym { width: clamp(20px, 2.4vw, 30px); height: auto; flex: none; opacity: .9; }
.marquee + .footer { border-top: 0; }
@keyframes marquee { to { transform: translateX(-50%); } }

.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.value { padding: 32px 24px 36px; transition: background .3s var(--ease); }
.value + .value { border-left: 1px solid var(--line); }
.value:hover { background: var(--surface); }
.value:hover .v-sym { transform: rotate(-12deg); color: var(--accent); }
.v-sym { width: 56px; height: 56px; margin-bottom: 40px; transition: transform .5s var(--ease), color .3s; }
.value h3 { margin: 0 0 10px; font-family: var(--mono); font-size: 14px; font-weight: 500; letter-spacing: .1em; }
.value p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.manifesto {
  margin: clamp(48px, 7vw, 88px) 0 0; font-size: clamp(30px, 6.6vw, 92px); font-weight: 500;
  letter-spacing: -.045em; line-height: 1.08; color: transparent; -webkit-text-stroke: 1px var(--ink);
}
.manifesto .ms { display: inline-block; width: .62em; height: .62em; color: var(--accent); vertical-align: .02em; margin: 0 .06em; }
@media (max-width: 960px) {
  .values { grid-template-columns: 1fr 1fr; }
  .value:nth-child(3) { border-left: 0; }
  .value:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .values { grid-template-columns: 1fr; }
  .value + .value { border-left: 0; border-top: 1px solid var(--line); }
  .v-sym { margin-bottom: 20px; }
}

.page-head { position: relative; overflow: hidden; }
.page-head .wrap { position: relative; z-index: 1; }
.page-head::after {
  content: ""; position: absolute; right: -60px; top: 50%; width: 420px; height: 420px; transform: translateY(-50%);
  background: var(--line);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='black' stroke-width='1.2'%3E%3Ccircle cx='50' cy='50' r='46'/%3E%3Cpath d='M50 4v92M50 50 17.5 82.5M50 50l32.5 32.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='black' stroke-width='1.2'%3E%3Ccircle cx='50' cy='50' r='46'/%3E%3Cpath d='M50 4v92M50 50 17.5 82.5M50 50l32.5 32.5'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (max-width: 700px) { .page-head::after { width: 260px; height: 260px; right: -90px; } }

@media (prefers-reduced-motion: reduce) {
  .hero-peace svg, .badge-ring, .marquee-track { animation: none; }
}

/* ===== Take Act!on / Go!Green ===== */
body.cause-takeaction, .cc-act { --accent: #d23c2a; --accent-ink: #fff; }
body.cause-gogreen, .cc-green { --accent: #1b7f45; --accent-ink: #fff; }
html[data-theme="dark"] body.cause-takeaction, html[data-theme="dark"] .cc-act { --accent: #ff7d6b; --accent-ink: #0d0d0c; }
html[data-theme="dark"] body.cause-gogreen, html[data-theme="dark"] .cc-green { --accent: #5fd08a; --accent-ink: #0d0d0c; }
.wordmark { font-weight: 600; letter-spacing: -.05em; }
.wordmark em { font-style: normal; color: var(--accent); display: inline-block; transform: skewX(-10deg); }
.cause-head::after { display: none; }
.cause-grid { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center; }
.cause-badge { position: relative; width: clamp(180px, 22vw, 260px); aspect-ratio: 1; color: var(--accent); }
.cause-badge .cb-ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 24s linear infinite; }
.cause-badge text { font-family: var(--mono); font-size: 14.2px; letter-spacing: .18em; fill: var(--ink); }
.cause-badge .cause-mark { position: absolute; inset: 24%; width: 52%; height: 52%; }
@media (prefers-reduced-motion: reduce) { .cause-badge .cb-ring { animation: none; } }
@media (max-width: 760px) { .cause-grid { grid-template-columns: 1fr; gap: 32px; } .cause-badge { width: 170px; } }

.orgs { display: grid; gap: 16px; }
.orgs-2 { grid-template-columns: 1fr 1fr; }
.org { display: flex; flex-direction: column; gap: 14px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: border-color .3s var(--ease), transform .3s var(--ease); }
.org:hover { border-color: var(--accent); transform: translateY(-2px); }
.org-tag { color: var(--accent); }
.org h3 { margin: 0; font-size: clamp(24px, 2.6vw, 32px); font-weight: 500; letter-spacing: -.03em; line-height: 1.1; }
.org p { margin: 0; color: var(--muted); max-width: 52ch; }
.org-link { margin-top: auto; padding-top: 12px; display: flex; justify-content: space-between; align-items: center; font-family: var(--mono); font-size: 13px; border-top: 1px solid var(--line); }
.org-link .arrow { width: 20px; height: 20px; }
.org-feat { padding: clamp(32px, 4vw, 48px); }
.org-feat h3 { font-size: clamp(30px, 3.6vw, 48px); }
@media (max-width: 760px) { .orgs-2 { grid-template-columns: 1fr; } .org { padding: 24px; } }

.posts { display: grid; border-top: 1px solid var(--line); }
.posts-3 { grid-template-columns: repeat(3, 1fr); }
.post { padding: 28px 24px 32px 0; border-bottom: 1px solid var(--line); }
.post:not(:nth-child(3n+1)) { padding-left: 24px; border-left: 1px solid var(--line); }
.post .mono { color: var(--accent); }
.post h3 { margin: 18px 0 10px; font-size: 20px; font-weight: 500; letter-spacing: -.02em; line-height: 1.25; }
.post p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
@media (max-width: 860px) {
  .posts-3 { grid-template-columns: 1fr 1fr; }
  .post:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; }
  .post:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--line); }
}
@media (max-width: 560px) { .posts-3 { grid-template-columns: 1fr; } .post:nth-child(2n) { padding-left: 0; border-left: 0; } }

.fine { margin: 20px 0 0; font-size: 13px; color: var(--muted); max-width: 70ch; }
.legal { display: flex; gap: 16px; align-items: flex-start; margin-top: 40px; padding: 20px 24px; border-radius: var(--radius); border: 1px dashed var(--accent); }
.legal svg { width: 24px; height: 24px; flex: none; color: var(--accent); }
.legal p { margin: 0; font-size: 14px; color: var(--muted); max-width: 80ch; }

.cause-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cause-card { position: relative; display: flex; flex-direction: column; gap: 14px; padding: clamp(28px, 4vw, 44px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; transition: border-color .3s var(--ease); }
.cause-card:hover { border-color: var(--accent); }
.cause-card .cause-mark { width: 56px; height: 56px; color: var(--accent); transition: transform .5s var(--ease); }
.cause-card:hover .cause-mark { transform: rotate(-12deg) scale(1.05); }
.cause-card .wordmark { font-size: clamp(32px, 4.4vw, 56px); line-height: 1; }
.cc-text { color: var(--muted); }
.cause-card .arrow { position: absolute; top: clamp(28px, 4vw, 44px); right: clamp(28px, 4vw, 44px); width: 24px; height: 24px; color: var(--muted); }
@media (max-width: 700px) { .cause-cards { grid-template-columns: 1fr; } }

/* NoHate! & Women!Matter */
body.cause-nohate, .cc-nohate { --accent: #c4560e; --accent-ink: #fff; }
body.cause-women, .cc-women { --accent: #7a32c4; --accent-ink: #fff; }
html[data-theme="dark"] body.cause-nohate, html[data-theme="dark"] .cc-nohate { --accent: #ff9a52; --accent-ink: #0d0d0c; }
html[data-theme="dark"] body.cause-women, html[data-theme="dark"] .cc-women { --accent: #c69bff; --accent-ink: #0d0d0c; }
.topics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.topic { display: flex; flex-direction: column; gap: 12px; padding: clamp(28px, 3.4vw, 40px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); border-top: 3px solid var(--accent); }
.topic .mono { color: var(--accent); }
.topic h3 { margin: 0; font-size: clamp(26px, 3vw, 38px); font-weight: 500; letter-spacing: -.03em; line-height: 1.1; }
.topic p { margin: 0; color: var(--muted); max-width: 56ch; }
.hotlines { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.hotline { display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: border-color .3s var(--ease); }
.hotline:hover { border-color: var(--accent); }
.hotline .mono { color: var(--accent); }
.hotline strong { white-space: nowrap; font-size: clamp(19px, 1.7vw, 24px); font-weight: 500; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.hotline p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.section.section-tight { padding-top: 0; border-top: 0; }
@media (max-width: 1000px) { .hotlines { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .topics, .hotlines { grid-template-columns: 1fr; } }
/* NoHate! homophobia blocks */
.sec-lead { grid-column: 2; margin: 4px 0 0; color: var(--muted); max-width: 68ch; }
@media (max-width: 820px) { .sec-lead { grid-column: 1; } }
.timeline { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.tl-item { display: grid; grid-template-columns: 220px 1fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.tl-year { font-size: clamp(24px, 2.3vw, 32px); font-weight: 600; letter-spacing: -.04em; line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; }
.tl-body { display: flex; flex-direction: column; gap: 10px; max-width: 72ch; }
.tl-body p { margin: 0; color: var(--muted); }
.tl-src { display: inline-flex; align-items: center; gap: 6px; width: fit-content; font-family: var(--mono); font-size: 12px; color: var(--ink); border-bottom: 1px solid var(--line); padding-bottom: 2px; transition: border-color .2s, color .2s; }
.tl-src:hover { color: var(--accent); border-color: var(--accent); }
.tl-src svg { width: 14px; height: 14px; }
@media (max-width: 820px) { .tl-item { grid-template-columns: 1fr; gap: 12px; } }
.myths { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.myth { display: flex; flex-direction: column; gap: 10px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.myth h3 { margin: 0 0 8px; font-size: 22px; font-weight: 500; letter-spacing: -.02em; line-height: 1.2; text-decoration: line-through; text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.myth-tag { color: var(--muted); }
.fact-tag { color: var(--accent); padding-top: 12px; border-top: 1px solid var(--line); }
.myth p { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.55; }
@media (max-width: 1000px) { .myths { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .myths { grid-template-columns: 1fr; } }
