/* product.css */
/* Component primitives and interaction states. Visual theme: particle-theme.css. */
:root {
  --bg:#090b0e;
  --panel:#12161b;
  --panel2:#1a2028;
  --text:#f4f5f7;
  --muted:#8d96a5;
  --line:#272d37;
  --accent:#b7d8b0;
  --soft:#b7d8b019;
  --header:#090b0ef2;
  --danger:#f7a6a3;
  --reading:19px;
  color-scheme:dark
}
html[data-theme=light] {
  --bg:#f7f8fa;
  --panel:#fff;
  --panel2:#eef1f5;
  --text:#141b25;
  --muted:#687386;
  --line:#dce1e8;
  --header:#f7f8faf2;
  --soft:#60895614;
  --danger:#a93232;
  color-scheme:light
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:14px/1.65 "DM Sans","PingFang SC",system-ui,sans-serif
}
button,input,select,textarea {
  font:inherit
}
button,a,summary {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a {
  text-decoration:none;
  color:inherit
}
button {
  color:inherit
}
img,svg {
  max-width:100%
}
button:disabled {
  opacity:.45;
  cursor:wait
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px
}
[hidden] {
  display:none!important
}
.skip {
  position:fixed;
  top:-70px;
  left:10px;
  z-index:9999;
  padding:10px 15px;
  background:var(--text);
  color:var(--bg);
  border-radius:5px
}
.skip:focus {
  top:10px
}
.brand-strip {
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:6px 25px;
  background:linear-gradient(100deg,#452a433b,#141820,#29453b46);
  border-bottom:1px solid #4350443d;
  font-size:10px;
  color:#c5d1c5
}
.brand-strip p {
  margin:0
}
.strip-star {
  color:#d4e7c9;
  font-size:17px;
  line-height:1
}
.brand-strip a {
  margin-left:18px;
  color:#a4bba4;
  font-size:9px
}
.brand-strip a span {
  margin-left:6px
}
html[data-theme=light] .brand-strip {
  color:#48604a;
  background:linear-gradient(90deg,#e7e2ec,#eef4ed);
  border-color:#dbe5dc
}
.app-header {
  position:sticky;
  top:0;
  z-index:40;
  background:var(--header);
  backdrop-filter:blur(20px)
}
.header-inner {
  max-width:1500px;
  padding:22px 42px;
  display:flex;
  align-items:center;
  gap:23px;
  margin:auto;
  min-height:91px
}
.icon-button {
  display:inline-grid;
  place-items:center;
  flex:none;
  width:36px;
  height:36px;
  border:1px solid var(--line);
  border-radius:10px;
  background:transparent;
  position:relative
}
.icon-button:hover {
  background:var(--panel2)
}
.icon-button svg {
  width:19px;
  height:19px
}
.menu-button {
  width:34px;
  height:34px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:9px;
  flex-shrink:0
}
.brand>svg {
  width:29px;
  height:29px;
  color:#dce7d7
}
.brand>span {
  font-size:24px;
  font-weight:600;
  letter-spacing:-1.25px;
  white-space:nowrap
}
.brand b {
  font-weight:700
}
.brand small {
  font-size:18px;
  color:#687584;
  letter-spacing:-.8px;
  margin-left:2px
}
html[data-theme=light] .brand>svg {
  color:#4e7651
}
.header-search {
  max-width:470px;
  min-width:180px;
  flex:1;
  margin:0 auto;
  display:flex;
  gap:10px;
  align-items:center;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:11px;
  padding:9px 13px
}
.header-search>svg {
  width:16px;
  height:16px;
  color:var(--muted);
  flex:none
}
.header-search input {
  width:100%;
  background:none;
  border:0;
  outline:0;
  color:var(--text);
  font-size:12px;
  min-width:0
}
.header-search input::placeholder {
  color:var(--muted)
}
#global-search input:focus,
#global-search input:focus-visible {
  outline:none;
  box-shadow:none
}
kbd {
  white-space:nowrap;
  color:var(--muted);
  font:9px/1.4 inherit;
  border:1px solid var(--line);
  border-radius:4px;
  padding:2px 5px
}
.header-tools {
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0
}
.subscribe-button,.primary-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  min-height:39px;
  border:0;
  border-radius:25px;
  padding:10px 20px;
  background:var(--text);
  color:var(--bg);
  font-size:11px;
  font-weight:600;
  white-space:nowrap
}
.subscribe-button:hover,.primary-button:hover {
  filter:brightness(.9)
}
.subscribe-button span {
  font-size:17px;
  line-height:1
}
.saved-count {
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:16px;
  height:16px;
  display:grid;
  place-items:center;
  padding:0 4px;
  border-radius:9px;
  font-size:8px;
  background:var(--accent);
  color:#122010
}
.mobile-search,.search-close {
  display:none
}
.channel-tabs {
  border-bottom:1px solid var(--line)
}
.channel-inner {
  display:flex;
  align-items:center;
  gap:29px;
  max-width:1416px;
  padding:2px 0 15px;
  margin:auto;
  overflow-x:auto;
  scrollbar-width:none
}
.channel-inner::-webkit-scrollbar {
  display:none
}
.channel-tab {
  font-size:22px;
  font-weight:600;
  letter-spacing:-.7px;
  color:#626d7d;
  white-space:nowrap;
  line-height:1.5;
  padding-bottom:5px;
  position:relative;
  transition:color .2s
}
.channel-tab:hover {
  color:var(--text)
}
.channel-tab.active {
  color:var(--text)
}
.channel-tab.active:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-15px;
  height:3px;
  border-radius:3px;
  background:var(--accent)
}
.app-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 244px;
  gap:43px;
  max-width:1416px;
  margin:0 auto;
  padding:28px 0 50px
}
main {
  min-width:0;
  outline:none
}
.desktop-rail {
  padding-top:15px
}
.rail-block {
  padding-bottom:24px;
  margin-bottom:24px;
  border-bottom:1px solid var(--line)
}
.rail-block h2 {
  font-size:11px;
  font-weight:500;
  color:var(--muted);
  letter-spacing:1px;
  margin:0 0 17px
}
.rail-channel {
  display:flex;
  align-items:center;
  gap:11px;
  padding:10px 0
}
.channel-icon {
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:color-mix(in srgb,var(--ch) 13%,transparent);
  color:var(--ch);
  flex:none
}
.channel-icon svg {
  width:17px;
  height:17px
}
.rail-channel strong {
  display:block;
  font-size:11px;
  font-weight:500
}
.rail-channel small {
  font-size:9px;
  color:var(--muted);
  display:block
}
.rail-channel b {
  margin-left:auto;
  font-weight:400;
  color:var(--muted);
  font-size:15px
}
.rail-copy {
  font-size:11px;
  line-height:1.9;
  color:var(--muted);
  margin:0 0 17px
}
.rail-subscribe {
  display:block;
  width:100%;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--text);
  border-radius:8px;
  padding:10px;
  font-size:10px
}
.rail-note {
  font-size:9px;
  line-height:1.8;
  color:var(--muted);
  margin-top:12px
}
.rail-link {
  display:block;
  font-size:11px;
  padding:8px 0;
  color:var(--muted)
}
.rail-link:hover {
  color:var(--text)
}
.page-heading {
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:flex-start;
  padding:12px 0 24px
}
.eyebrow {
  font-size:9px;
  font-weight:500;
  letter-spacing:1.5px;
  color:var(--accent);
  text-transform:uppercase;
  margin:0 0 9px
}
.page-heading h1 {
  font-size:32px;
  line-height:1.2;
  letter-spacing:-1.1px;
  font-weight:600;
  margin:0 0 12px
}
.page-heading p:not(.eyebrow) {
  font-size:11px;
  line-height:1.9;
  color:var(--muted);
  margin:0;
  max-width:670px
}
.heading-actions {
  display:flex;
  align-items:center;
  gap:10px;
  padding-top:19px;
  white-space:nowrap
}
.outline-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:25px;
  padding:9px 17px;
  min-height:37px;
  font-size:11px
}
.outline-button:hover {
  background:var(--panel2)
}
.outline-button.active {
  border-color:var(--accent);
  color:var(--accent);
  background:var(--soft)
}
.snapshot-label {
  font-size:9px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:7px;
  margin:9px 0 0
}
.snapshot-label:before {
  content:"";
  width:4px;
  height:4px;
  background:#839b85;
  border-radius:50%
}
.topic-rail {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:4px;
  margin-bottom:24px;
  scrollbar-width:none
}
.topic-chip {
  background:var(--panel2);
  border:1px solid transparent;
  color:#b8c1d0;
  padding:7px 13px;
  border-radius:22px;
  white-space:nowrap;
  font-size:10px
}
.topic-chip:hover,.topic-chip.active {
  border-color:var(--accent);
  color:var(--accent)
}
html[data-theme=light] .topic-chip {
  color:#566577
}
.feature-grid {
  display:grid;
  grid-template-columns:1.32fr 1fr;
  grid-template-rows:201px 201px;
  gap:17px;
  margin-bottom:33px
}
.feature-card {
  position:relative;
  display:block;
  border-radius:17px;
  overflow:hidden;
  background:#18202a;
  min-width:0;
  color:#fff;
  isolation:isolate
}
.feature-card:first-child {
  grid-row:1/3
}
.feature-card>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-3;
  transition:transform .45s
}
.feature-card:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(180deg,#060b0c12 2%,#080b11a8 48%,#080b11f2 100%)
}
.feature-card:hover>img {
  transform:scale(1.04)
}
.feature-card-content {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:23px
}
.feature-card .card-meta {
  color:#d8dce6;
  font-size:8px;
  margin-bottom:10px
}
.feature-card h2 {
  font-size:23px;
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.7px;
  margin:0 0 10px;
  text-wrap:pretty
}
.feature-card:first-child h2 {
  font-size:30px;
  letter-spacing:-.8px
}
.feature-card p {
  font-size:11px;
  line-height:1.7;
  color:#d3d8e2;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.feature-card:not(:first-child) p {
  display:none
}
.card-meta {
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.15px;
  flex-wrap:wrap
}
.card-meta .channel-pill {
  display:inline-flex;
  align-items:center;
  color:var(--ch);
  font-size:8px;
  font-weight:500;
  padding:3px 7px;
  border-radius:5px;
  background:color-mix(in srgb,var(--ch) 12%,#0a1018aa)
}
.card-meta .dot {
  font-size:9px;
  color:#697587
}
.feature-card .card-meta .channel-pill {
  background:#161b24c9;
  color:var(--ch)
}
.section-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  padding-top:23px;
  margin-bottom:20px
}
.section-title h2 {
  margin:0;
  font-size:17px;
  line-height:1.5;
  font-weight:500;
  letter-spacing:-.3px
}
.section-title>span {
  font-size:9px;
  color:var(--muted)
}
.feed-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:17px;
  flex-wrap:wrap;
  margin-bottom:21px
}
.feed-toolbar .filter-group {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap
}
.filter-label {
  font-size:10px;
  color:var(--muted)
}
select {
  border:1px solid var(--line);
  border-radius:7px;
  padding:7px 10px;
  background:var(--panel);
  font-size:10px;
  color:var(--text);
  max-width:230px
}
.filter-summary {
  font-size:10px;
  color:var(--muted);
  margin:0
}
.feed-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px 18px
}
.feed-card {
  min-width:0;
  position:relative;
  display:flex;
  flex-direction:column
}
.feed-image {
  display:block;
  aspect-ratio:1.5;
  border-radius:11px;
  overflow:hidden;
  background:var(--panel2);
  position:relative
}
.feed-image>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s
}
.feed-image:hover>img {
  transform:scale(1.045)
}
.feed-image .preview-chip {
  position:absolute;
  left:10px;
  bottom:10px;
  font-size:8px;
  border-radius:5px;
  padding:3px 6px;
  color:#dee2eb;
  background:#090d12c4;
  backdrop-filter:blur(10px)
}
.feed-card .card-meta {
  margin-top:12px;
  font-size:8px;
  gap:5px
}
.feed-card .card-meta .channel-pill {
  font-size:7px;
  padding:3px 5px
}
.feed-card h2,.feed-card h3 {
  font-size:17px;
  font-weight:500;
  line-height:1.35;
  letter-spacing:-.35px;
  margin:9px 0 10px;
  overflow-wrap:anywhere
}
.feed-card h2 a:hover,.feed-card h3 a:hover {
  color:var(--accent)
}
.feed-card>p {
  font-size:10px;
  color:var(--muted);
  line-height:1.8;
  margin:0 0 13px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  flex:1
}
.card-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 0;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:8px;
  line-height:1.7
}
.card-footer>.source-name {
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.save-button {
  display:grid;
  place-items:center;
  width:25px;
  height:27px;
  background:none;
  border:0;
  color:var(--muted);
  flex:none;
  border-radius:6px
}
.save-button svg {
  width:15px;
  height:15px
}
.save-button[aria-pressed=true] {
  color:var(--accent);
  background:var(--soft)
}
.save-button[aria-pressed=true] svg {
  fill:currentColor
}
.save-button:hover {
  background:var(--panel2);
  color:var(--text)
}
.load-wrap {
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:12px;
  margin:37px 0 20px
}
.load-wrap p {
  font-size:10px;
  color:var(--muted);
  margin:0
}
.load-wrap .outline-button {
  min-width:150px
}
.empty-state {
  grid-column:1/-1;
  text-align:center;
  padding:65px 25px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:15px
}
.empty-state .empty-icon {
  font-size:36px;
  line-height:1;
  color:var(--accent)
}
.empty-state h2 {
  font-size:23px;
  font-weight:500;
  letter-spacing:-.5px;
  margin:20px 0 12px
}
.empty-state p {
  font-size:12px;
  color:var(--muted);
  max-width:490px;
  margin:0 auto 25px;
  line-height:1.9
}
.loading-screen {
  text-align:center;
  min-height:420px;
  padding:100px 20px
}
.loading-screen h1 {
  font-size:22px;
  font-weight:500
}
.loading-screen p {
  font-size:12px;
  color:var(--muted)
}
.spinner {
  display:inline-block;
  width:25px;
  height:25px;
  border:2px solid var(--line);
  border-top-color:var(--accent);
  border-radius:50%;
  animation:spin .8s linear infinite
}
@keyframes spin {
  to {
    transform:rotate(360deg)
  }
  
}
.app-footer {
  max-width:1416px;
  padding:30px 0 35px;
  margin:auto;
  border-top:1px solid var(--line);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px
}
.footer-brand {
  font-size:16px;
  font-weight:600;
  letter-spacing:-.4px
}
.footer-brand span {
  font-size:9px;
  font-weight:400;
  color:var(--muted);
  display:block;
  margin-top:5px;
  letter-spacing:0
}
.app-footer nav {
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  font-size:10px;
  color:var(--muted);
  padding-top:4px
}
.app-footer>p {
  font-size:8px;
  color:var(--muted);
  line-height:1.9;
  max-width:200px;
  margin:3px 0 0;
  text-align:right
}
.drawer {
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  right:auto;
  margin:0;
  width:min(370px,100vw);
  height:100dvh;
  max-height:none;
  border:0;
  border-right:1px solid var(--line);
  background:var(--bg);
  padding:40px 28px;
  color:var(--text);
  overflow:auto;
  border-radius:0
}
.drawer::backdrop {
  background:#02050ba8;
  backdrop-filter:blur(6px)
}
.dialog-close {
  position:absolute;
  top:12px;
  right:16px;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  font-size:25px;
  line-height:1;
  color:var(--muted);
  border:0;
  background:none
}
.drawer h2 {
  font-size:26px;
  font-weight:500;
  letter-spacing:-.7px;
  margin:14px 0 8px
}
.drawer-subtitle {
  font-size:11px;
  color:var(--muted);
  margin:0 0 25px
}
.drawer nav>a {
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:9px;
  padding:12px 7px;
  font-size:12px
}
.drawer nav>a:hover,.drawer nav>a.active {
  background:var(--panel)
}
.drawer nav>a>span:last-child {
  color:var(--muted);
  margin-left:auto;
  font-size:9px
}
.drawer-account {
  border-top:1px solid var(--line);
  margin-top:22px;
  padding:23px 7px
}
.drawer-account strong {
  display:block;
  overflow-wrap:anywhere;
  font-size:12px;
  font-weight:500
}
.drawer-account small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin:6px 0 15px
}
.drawer-account button {
  font-size:11px
}
.drawer-bottom {
  border-top:1px solid var(--line);
  padding:18px 7px 0
}
.drawer-bottom a {
  display:flex;
  justify-content:space-between;
  font-size:11px;
  color:var(--muted);
  padding:9px 0
}
.drawer-bottom a:hover {
  color:var(--text)
}
.modal {
  position:fixed;
  inset:0;
  margin:auto;
  padding:37px 32px 30px;
  width:min(500px,calc(100vw - 28px));
  max-height:90dvh;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel);
  color:var(--text);
  box-shadow:0 20px 100px #0008
}
.modal::backdrop {
  background:#05080b91;
  backdrop-filter:blur(9px)
}
.modal h2 {
  font-size:27px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:-.7px;
  margin:0 0 16px
}
.modal>p {
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
  margin:0 0 20px
}
.modal .eyebrow {
  font-size:8px;
  color:var(--accent);
  margin-bottom:14px
}
.modal label.field-label {
  display:block;
  font-size:11px;
  margin:18px 0 7px;
  color:var(--muted)
}
.modal input:not([type=checkbox]),.modal textarea {
  width:100%;
  min-height:44px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--text);
  outline:none;
  font-size:13px
}
.modal input:not([type=checkbox]):focus,.modal textarea:focus {
  border-color:var(--accent)
}
.modal .primary-button {
  width:100%;
  margin-top:24px
}
.modal .text-button {
  display:block;
  margin:17px auto 0
}
.text-button {
  border:0;
  background:none;
  color:var(--accent);
  font-size:11px;
  padding:4px
}
.modal .disclosure {
  font-size:10px;
  line-height:1.9;
  color:var(--muted);
  margin:20px 0 0;
  padding-top:15px;
  border-top:1px solid var(--line)
}
.modal .form-error {
  font-size:11px;
  color:var(--danger);
  line-height:1.9;
  margin:12px 0
}
.channel-checks {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin:18px 0
}
.channel-check {
  display:flex;
  align-items:center;
  gap:9px;
  padding:12px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--bg);
  font-size:11px;
  line-height:1.5
}
.channel-check input {
  accent-color:var(--ch);
  flex:none;
  width:14px;
  height:14px
}
.channel-check span {
  min-width:0
}
.channel-check small {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:3px
}
.channel-check:has(input:checked) {
  border-color:var(--ch);
  background:color-mix(in srgb,var(--ch) 7%,var(--bg))
}
.modal textarea {
  resize:vertical;
  min-height:110px;
  font-size:11px;
  line-height:1.8
}
.toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  z-index:300;
  max-width:calc(100vw - 30px);
  padding:12px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel2);
  color:var(--text);
  font-size:11px;
  box-shadow:0 8px 35px #0004;
  line-height:1.8
}
.topic-search {
  display:flex;
  align-items:center;
  gap:15px;
  margin:8px 0 28px
}
.topic-search input {
  flex:1;
  min-width:0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:9px;
  padding:12px 14px;
  font-size:12px;
  color:var(--text)
}
.topics-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px
}
.topic-tile {
  padding:23px 20px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:11px;
  position:relative;
  transition:border-color .2s
}
.topic-tile:hover {
  border-color:var(--accent)
}
.topic-tile>span {
  font-size:8px;
  color:var(--accent);
  letter-spacing:1px
}
.topic-tile h2 {
  font-size:19px;
  line-height:1.4;
  font-weight:500;
  margin:14px 0;
  overflow-wrap:anywhere;
  letter-spacing:-.4px
}
.topic-tile p {
  font-size:10px;
  color:var(--muted);
  margin:0
}
.topic-tile b {
  position:absolute;
  right:17px;
  bottom:18px;
  font-weight:400;
  font-size:17px;
  color:var(--muted)
}
.shelf-tabs,.reader-tabs {
  display:flex;
  gap:7px;
  border-bottom:1px solid var(--line);
  padding:0 0 14px;
  margin-bottom:25px;
  overflow:auto
}
.shelf-tabs button,.reader-tabs button {
  padding:8px 17px;
  background:none;
  border:1px solid transparent;
  border-radius:22px;
  white-space:nowrap;
  color:var(--muted);
  font-size:11px
}
.shelf-tabs button[aria-selected=true],.reader-tabs button[aria-selected=true] {
  border-color:var(--line);
  background:var(--panel2);
  color:var(--text)
}
.reader-header {
  max-width:900px;
  margin:auto;
  padding:5px 0 25px
}
.back-link {
  display:inline-flex;
  gap:7px;
  align-items:center;
  font-size:10px;
  color:var(--muted);
  margin:0 0 25px
}
.back-link:hover {
  color:var(--text)
}
.reader-header .card-meta {
  font-size:9px;
  margin-bottom:15px
}
.reader-header h1 {
  font-size:clamp(32px,3.5vw,50px);
  line-height:1.13;
  font-weight:600;
  letter-spacing:-1.5px;
  margin:0 0 20px;
  overflow-wrap:anywhere
}
.reader-deck {
  font-size:16px;
  line-height:1.8;
  color:#b2bbca;
  margin:0 0 22px
}
html[data-theme=light] .reader-deck {
  color:#657285
}
.reader-byline {
  display:flex;
  align-items:center;
  gap:12px;
  padding:18px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.author-avatar {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--soft);
  color:var(--accent);
  font-size:16px;
  flex:none
}
.reader-byline>div strong {
  display:block;
  font-size:11px;
  font-weight:500
}
.reader-byline>div span {
  font-size:9px;
  color:var(--muted)
}
.reader-actions {
  margin-left:auto;
  display:flex;
  gap:8px
}
.reader-actions .icon-button {
  width:32px;
  height:32px;
  border-radius:8px
}
.reader-actions svg {
  width:16px;
  height:16px
}
.reading-shell {
  max-width:900px;
  margin:auto
}
.reader-hero {
  width:100%;
  height:330px;
  object-fit:cover;
  border-radius:13px;
  display:block;
  margin:0 0 25px
}
.reading-subnav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid var(--line);
  margin-bottom:26px
}
.reader-tabs {
  margin:0;
  border:0;
  padding-bottom:12px
}
.text-size {
  display:flex;
  gap:2px;
  flex-shrink:0;
  align-items:center;
  padding-bottom:12px
}
.text-size button {
  background:none;
  border:1px solid transparent;
  padding:4px 7px;
  font-size:12px;
  border-radius:5px
}
.text-size button[aria-pressed=true] {
  border-color:var(--line);
  background:var(--panel2);
  color:var(--accent)
}
.overview-panel {
  padding:26px 29px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:13px;
  margin-bottom:28px
}
.overview-panel h2 {
  font-size:20px;
  letter-spacing:-.4px;
  font-weight:500;
  margin:0 0 20px
}
.overview-panel ul {
  padding-left:18px;
  margin:0
}
.overview-panel li {
  font-size:15px;
  line-height:1.9;
  color:#c4ccd7;
  padding:0 0 16px 5px
}
.overview-panel li:last-child {
  padding-bottom:0
}
html[data-theme=light] .overview-panel li {
  color:#526170
}
.overview-note {
  font-size:10px;
  color:var(--muted);
  line-height:1.9;
  margin-top:19px
}
.editorial-question {
  border-left:2px solid var(--accent);
  padding:2px 0 2px 18px;
  margin:30px 0
}
.editorial-question small {
  font-size:8px;
  letter-spacing:1.3px;
  color:var(--accent)
}
.editorial-question h3 {
  font-size:19px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:-.3px;
  margin:8px 0 0
}
.body-note,.preview-note {
  padding:17px 20px;
  background:var(--soft);
  border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));
  border-radius:9px;
  font-size:10px;
  line-height:1.9;
  color:var(--muted);
  margin-bottom:25px
}
.preview-note h2 {
  font-size:17px;
  font-weight:500;
  color:var(--text);
  margin:0 0 10px
}
.preview-note p {
  margin:0 0 15px
}
.article-body {
  font-size:var(--reading);
  line-height:1.9;
  color:#ccd2dd;
  overflow-wrap:anywhere
}
.article-body p {
  margin:1.25em 0
}
.article-body h2 {
  font-size:1.45em;
  line-height:1.4;
  letter-spacing:-.6px;
  color:var(--text);
  margin:1.6em 0 .7em;
  font-weight:500
}
.article-body h3 {
  font-size:1.2em;
  line-height:1.4;
  color:var(--text);
  margin:1.5em 0 .7em;
  font-weight:500
}
.article-body h4 {
  font-weight:500
}
.article-body a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:4px
}
.article-body img {
  display:block;
  max-width:100%;
  height:auto;
  border-radius:9px;
  margin:auto;
  cursor:zoom-in
}
.article-body figure {
  margin:30px 0;
  max-width:100%
}
.article-body figcaption {
  font-size:10px;
  color:var(--muted);
  text-align:center;
  margin-top:8px
}
.article-body blockquote {
  border-left:2px solid var(--accent);
  padding-left:22px;
  margin:25px 0;
  font-style:italic;
  color:var(--muted)
}
.article-body hr {
  border:0;
  border-top:1px solid var(--line);
  margin:35px 0
}
.article-body pre {
  background:var(--panel2);
  border-radius:9px;
  padding:20px;
  overflow:auto;
  font-size:.7em
}
.article-body table {
  display:block;
  overflow:auto;
  font-size:11px;
  border-collapse:collapse;
  white-space:nowrap;
  max-width:100%
}
.article-body td,.article-body th {
  padding:8px 10px;
  border-bottom:1px solid var(--line)
}
.article-body .kg-gallery-row {
  display:flex;
  gap:10px
}
.article-body .kg-gallery-image {
  flex:1
}
.article-body .kg-bookmark-card,.article-body .kg-callout-card {
  padding:22px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:11px;
  font-size:13px
}
.article-body .kg-bookmark-container {
  display:flex;
  gap:15px;
  text-decoration:none
}
.article-body .kg-bookmark-thumbnail {
  max-width:30%
}
.article-body .kg-bookmark-title {
  color:var(--text);
  font-size:17px;
  font-weight:500
}
.article-body .kg-bookmark-description {
  font-size:11px;
  color:var(--muted)
}
.article-body .kg-bookmark-metadata {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:9px
}
.article-body .kg-bookmark-icon {
  width:18px
}
.article-body .kg-btn {
  display:inline-block;
  border:1px solid var(--line);
  border-radius:25px;
  padding:10px 22px;
  text-decoration:none;
  background:var(--panel2);
  font-size:12px
}
.article-body .offline-embed {
  display:block;
  width:100%;
  min-height:90px;
  border:1px solid var(--line);
  background:var(--panel);
  padding:20px;
  color:var(--muted);
  border-radius:10px;
  font-size:11px
}
.article-body .kg-toggle-content {
  display:block
}
.article-body .kg-toggle-heading button {
  display:none
}
html[data-theme=light] .article-body {
  color:#3f4d60
}
.source-list {
  display:grid;
  gap:10px
}
.source-row {
  display:flex;
  align-items:center;
  gap:16px;
  padding:17px 20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel)
}
.source-row .source-letter {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  background:var(--panel2);
  color:var(--accent);
  border-radius:9px;
  font-size:15px;
  flex:none
}
.source-row h3 {
  font-size:12px;
  line-height:1.6;
  font-weight:500;
  margin:0 0 4px
}
.source-row p {
  font-size:9px;
  color:var(--muted);
  margin:0;
  overflow-wrap:anywhere
}
.source-row>b {
  margin-left:auto;
  flex:none;
  font-weight:400;
  color:var(--muted)
}
.reader-tags {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:25px 0 35px
}
.reader-tags a {
  font-size:10px;
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:20px;
  padding:6px 13px
}
.reader-tags a:hover {
  color:var(--accent);
  border-color:var(--accent)
}
.reading-progress {
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:2px;
  z-index:100;
  pointer-events:none
}
.reading-progress>span {
  display:block;
  width:0;
  height:100%;
  background:var(--accent)
}
.reader-related {
  border-top:1px solid var(--line);
  padding-top:27px;
  margin-top:40px
}
.reader-related h2 {
  font-size:18px;
  font-weight:500;
  margin:0 0 22px
}
.related-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:25px 18px
}
.settings-grid {
  display:grid;
  gap:18px
}
.settings-card {
  padding:27px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:13px
}
.settings-card h2 {
  font-size:19px;
  font-weight:500;
  margin:0 0 12px
}
.settings-card>p {
  font-size:11px;
  color:var(--muted);
  line-height:1.9;
  margin:0 0 22px
}
.segmented {
  display:inline-flex;
  gap:5px;
  border:1px solid var(--line);
  padding:5px;
  border-radius:10px;
  background:var(--bg)
}
.segmented button {
  border:0;
  border-radius:7px;
  background:none;
  color:var(--muted);
  padding:8px 21px;
  font-size:11px
}
.segmented button[aria-pressed=true] {
  background:var(--panel2);
  color:var(--text)
}
.settings-card .channel-checks {
  max-width:750px;
  grid-template-columns:repeat(3,1fr)
}
.settings-card .field-label {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin:15px 0 7px
}
.settings-card input[type=text] {
  width:100%;
  max-width:400px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  padding:11px 13px;
  color:var(--text);
  font-size:12px
}
.settings-status {
  font-size:11px;
  color:var(--accent);
  min-height:20px;
  margin-top:15px
}
.about-hero {
  padding:25px 0 35px
}
.about-hero h1 {
  font-size:44px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:-1.6px;
  max-width:800px;
  margin:12px 0 23px
}
.about-hero>p:not(.eyebrow) {
  font-size:14px;
  line-height:2;
  color:var(--muted);
  max-width:750px
}
.good-values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:13px;
  margin:5px 0 40px
}
.good-value {
  padding:24px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px
}
.good-value>span {
  color:var(--accent);
  font-size:9px
}
.good-value h2 {
  font-size:23px;
  font-weight:500;
  letter-spacing:-.5px;
  margin:15px 0 12px
}
.good-value p {
  font-size:11px;
  line-height:1.9;
  color:var(--muted);
  margin:0
}
.about-channels {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px
}
.about-channel {
  display:block;
  position:relative;
  padding:24px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:11px
}
.about-channel h2 {
  font-size:20px;
  font-weight:500;
  letter-spacing:-.6px;
  margin:14px 0 10px
}
.about-channel h3 {
  font-size:12px;
  color:var(--ch);
  font-weight:500;
  margin:0 0 12px
}
.about-channel p {
  font-size:11px;
  line-height:1.9;
  color:var(--muted);
  margin:0
}
.scope-note {
  padding:25px 0;
  border-top:1px solid var(--line);
  margin:35px 0 0
}
.scope-note h2 {
  font-size:19px;
  font-weight:500
}
.scope-note p,.privacy-copy p,.privacy-copy li {
  font-size:12px;
  line-height:2;
  color:var(--muted);
  max-width:840px
}
.privacy-copy h2 {
  font-size:22px;
  font-weight:500;
  letter-spacing:-.4px;
  margin:30px 0 15px
}
.privacy-copy a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px
}
.image-viewer {
  padding:40px 15px 15px;
  width:min(1100px,96vw);
  max-width:96vw;
  background:var(--bg)
}
.image-viewer img {
  display:block;
  max-width:100%;
  max-height:75dvh;
  object-fit:contain;
  margin:auto
}
.image-viewer-controls {
  display:flex;
  justify-content:center;
  gap:18px;
  margin-top:15px
}
.image-viewer-controls button {
  font-size:11px
}
.no-scroll {
  overflow:hidden
}
.noscript {
  max-width:650px;
  margin:40px auto;
  padding:20px;
  color:var(--text)
}
@media(min-width:1550px) {
  .app-layout,.channel-inner,.app-footer {
    max-width:1416px
  }
  .header-inner {
    max-width:1500px
  }
  
}
@media(max-width:1530px) {
  .app-layout,.channel-inner,.app-footer {
    margin-left:42px;
    margin-right:42px
  }
  
}
@media(max-width:1250px) {
  .app-layout {
    display:block
  }
  .desktop-rail {
    display:none
  }
  .channel-inner {
    gap:27px
  }
  .channel-tab {
    font-size:22px
  }
  .app-header .header-inner {
    gap:19px
  }
  .brand>span {
    font-size:22px
  }
  .brand small {
    font-size:15px
  }
  .feature-grid {
    grid-template-columns:1.3fr 1fr;
    grid-template-rows:200px 200px
  }
  .reader-header,.reading-shell {
    max-width:850px
  }
  .header-search {
    max-width:440px
  }
  .app-footer>p {
    max-width:180px
  }
  
}
@media(max-width:850px) {
  .header-inner {
    padding:19px 26px;
    gap:15px;
    min-height:80px
  }
  .brand {
    gap:7px
  }
  .brand>svg {
    width:25px;
    height:25px
  }
  .brand>span {
    font-size:21px
  }
  .brand small {
    font-size:13px
  }
  .header-search {
    padding:8px 11px;
    min-width:120px
  }
  .header-search kbd {
    display:none
  }
  .header-tools {
    gap:10px
  }
  .subscribe-button {
    padding:9px 15px;
    font-size:10px;
    gap:13px
  }
  .app-layout,.channel-inner,.app-footer {
    margin-left:26px;
    margin-right:26px
  }
  .channel-inner {
    padding-bottom:13px;
    gap:25px
  }
  .channel-tab {
    font-size:23px
  }
  .channel-tab.active:after {
    bottom:-13px
  }
  .page-heading {
    padding-top:8px
  }
  .feature-grid {
    grid-template-rows:185px 185px;
    gap:13px
  }
  .feature-card-content {
    padding:20px
  }
  .feature-card:first-child h2 {
    font-size:26px
  }
  .feature-card h2 {
    font-size:20px
  }
  .feature-card:first-child p {
    font-size:10px
  }
  .feed-grid {
    gap:25px 16px
  }
  .feed-card h2,.feed-card h3 {
    font-size:16px
  }
  .feed-card>p {
    font-size:10px
  }
  .topics-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .reader-header h1 {
    font-size:39px
  }
  .reader-hero {
    height:300px
  }
  .overview-panel li {
    font-size:14px
  }
  .settings-card .channel-checks {
    grid-template-columns:repeat(2,1fr)
  }
  .app-footer {
    flex-wrap:wrap
  }
  .app-footer>p {
    max-width:none;
    text-align:left;
    width:100%;
    font-size:8px;
    margin-top:-10px
  }
  .about-hero h1 {
    font-size:39px
  }
  .good-values {
    gap:10px
  }
  .good-value {
    padding:20px
  }
  .good-value p {
    font-size:10px
  }
  
}
@media(max-width:650px) {
  .brand-strip {
    min-height:31px;
    padding:5px 18px;
    font-size:9px;
    justify-content:flex-start;
    gap:7px
  }
  .brand-strip a {
    font-size:8px;
    margin-left:auto
  }
  .brand-strip a span {
    display:none
  }
  .strip-star {
    font-size:14px
  }
  .header-inner {
    padding:19px 17px 16px;
    min-height:76px;
    gap:10px
  }
  .menu-button {
    width:31px;
    height:31px;
    border-radius:8px
  }
  .menu-button svg {
    width:17px
  }
  .brand {
    gap:7px
  }
  .brand>svg {
    width:23px;
    height:23px
  }
  .brand>span {
    font-size:20px;
    letter-spacing:-1.05px
  }
  .brand small {
    font-size:12px;
    letter-spacing:-.5px
  }
  .header-tools {
    margin-left:auto;
    gap:7px
  }
  .header-tools .shelf-link {
    width:30px;
    height:30px;
    border:0
  }
  .header-tools .shelf-link svg {
    width:18px;
    height:18px
  }
  .mobile-search {
    display:grid;
    width:30px;
    height:30px;
    border:0
  }
  .header-tools .subscribe-button {
    display:none
  }
  .header-search {
    display:none
  }
  .search-expanded .header-search {
    display:flex;
    position:absolute;
    left:17px;
    right:17px;
    top:17px;
    z-index:2;
    max-width:none;
    background:var(--panel2);
    padding:11px 12px;
    min-height:43px
  }
  .search-expanded .search-close {
    display:block;
    background:none;
    border:0;
    color:var(--muted);
    font-size:23px;
    line-height:1;
    padding:0 3px
  }
  .channel-inner {
    margin:0 0 0 17px;
    gap:23px;
    padding:0 18px 13px 0
  }
  .channel-tab {
    font-size:25px;
    line-height:1.4;
    letter-spacing:-.9px
  }
  .channel-tab.active:after {
    bottom:-13px;
    height:2px
  }
  .app-layout {
    margin:0 17px;
    padding:23px 0 30px
  }
  .page-heading {
    padding:0 0 22px;
    gap:13px
  }
  .page-heading h1 {
    font-size:28px;
    letter-spacing:-.9px;
    margin-bottom:11px;
    line-height:1.2
  }
  .page-heading p:not(.eyebrow) {
    font-size:10px;
    line-height:1.9
  }
  .page-heading .eyebrow {
    font-size:8px;
    letter-spacing:1px
  }
  .heading-actions {
    padding-top:19px
  }
  .heading-actions .outline-button {
    font-size:9px;
    min-height:31px;
    padding:7px 11px
  }
  .snapshot-label {
    font-size:8px;
    margin-top:11px
  }
  .topic-rail {
    margin-bottom:21px;
    gap:7px;
    margin-right:-17px;
    padding-right:17px
  }
  .topic-chip {
    font-size:10px;
    padding:6px 11px
  }
  .feature-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:345px auto;
    gap:11px;
    margin-bottom:27px
  }
  .feature-card {
    border-radius:12px;
    min-height:180px
  }
  .feature-card:first-child {
    grid-row:1;
    grid-column:1/3
  }
  .feature-card:first-child h2 {
    font-size:29px;
    line-height:1.12;
    letter-spacing:-.8px
  }
  .feature-card h2 {
    font-size:16px;
    line-height:1.2;
    letter-spacing:-.35px;
    margin-bottom:0
  }
  .feature-card-content {
    padding:16px 13px
  }
  .feature-card:first-child .feature-card-content {
    padding:22px 20px
  }
  .feature-card .card-meta {
    font-size:7px;
    gap:4px;
    margin-bottom:10px
  }
  .feature-card .card-meta .channel-pill {
    font-size:7px;
    padding:2px 4px
  }
  .feature-card:first-child p {
    font-size:10px;
    line-height:1.8;
    -webkit-line-clamp:2
  }
  .feature-card:first-child .card-meta {
    font-size:8px
  }
  .feature-card:not(:first-child) .card-meta>span:last-child {
    display:none
  }
  .section-title {
    padding-top:20px;
    margin-bottom:17px
  }
  .section-title h2 {
    font-size:16px
  }
  .section-title>span {
    font-size:8px
  }
  .feed-toolbar {
    gap:12px;
    margin-bottom:19px
  }
  .feed-toolbar .filter-group {
    gap:8px
  }
  .filter-label {
    font-size:9px
  }
  select {
    font-size:9px;
    padding:7px 8px;
    max-width:155px
  }
  .filter-summary {
    font-size:9px
  }
  .feed-grid {
    grid-template-columns:1fr 1fr;
    gap:26px 13px
  }
  .feed-image {
    aspect-ratio:1.24;
    border-radius:9px
  }
  .feed-image .preview-chip {
    font-size:7px;
    bottom:7px;
    left:7px;
    padding:2px 5px
  }
  .feed-card .card-meta {
    font-size:7px;
    gap:3px;
    margin-top:10px
  }
  .feed-card .card-meta .channel-pill {
    font-size:7px;
    padding:2px 4px
  }
  .feed-card .card-meta>.dot {
    display:none
  }
  .feed-card .card-meta>time {
    font-size:7px
  }
  .feed-card h2,.feed-card h3 {
    font-size:16px;
    line-height:1.3;
    letter-spacing:-.35px;
    margin:9px 0 10px
  }
  .feed-card>p {
    font-size:9px;
    line-height:1.7;
    -webkit-line-clamp:2;
    margin-bottom:11px
  }
  .card-footer {
    font-size:7px;
    gap:7px;
    padding:7px 0
  }
  .save-button {
    width:23px;
    height:24px
  }
  .save-button svg {
    width:14px;
    height:14px
  }
  .load-wrap {
    margin-top:30px;
    gap:10px
  }
  .load-wrap p {
    font-size:9px
  }
  .empty-state {
    padding:45px 20px
  }
  .empty-state h2 {
    font-size:21px
  }
  .empty-state p {
    font-size:11px
  }
  .app-footer {
    margin:0 17px;
    padding:25px 0 30px;
    gap:21px
  }
  .footer-brand {
    font-size:16px
  }
  .footer-brand span {
    font-size:8px
  }
  .app-footer nav {
    font-size:9px;
    gap:16px
  }
  .app-footer>p {
    font-size:8px;
    line-height:1.9;
    margin-top:-5px
  }
  .reader-header {
    padding:0 0 22px
  }
  .back-link {
    font-size:9px;
    margin-bottom:23px
  }
  .reader-header .card-meta {
    font-size:8px;
    margin-bottom:16px
  }
  .reader-header h1 {
    font-size:32px;
    letter-spacing:-.85px;
    line-height:1.13;
    margin-bottom:18px
  }
  .reader-deck {
    font-size:13px;
    line-height:1.8;
    margin-bottom:20px
  }
  .reader-byline {
    padding:16px 0;
    gap:10px
  }
  .author-avatar {
    width:29px;
    height:29px;
    font-size:14px
  }
  .reader-byline>div strong {
    font-size:10px
  }
  .reader-byline>div span {
    font-size:8px;
    line-height:1.7
  }
  .reader-actions {
    gap:6px
  }
  .reader-actions .icon-button {
    width:28px;
    height:28px
  }
  .reader-actions svg {
    width:14px;
    height:14px
  }
  .reader-hero {
    height:230px;
    border-radius:10px;
    margin-bottom:23px
  }
  .reading-subnav {
    gap:12px;
    margin-bottom:22px
  }
  .reader-tabs {
    gap:3px;
    padding-bottom:10px
  }
  .reader-tabs button {
    font-size:10px;
    padding:7px 12px
  }
  .text-size {
    padding-bottom:10px;
    gap:0
  }
  .text-size button {
    font-size:10px;
    padding:3px 5px
  }
  .overview-panel {
    padding:23px 20px;
    margin-bottom:23px;
    border-radius:11px
  }
  .overview-panel h2 {
    font-size:19px;
    margin-bottom:18px
  }
  .overview-panel ul {
    padding-left:15px
  }
  .overview-panel li {
    font-size:13px;
    line-height:1.85;
    padding:0 0 14px 4px
  }
  .overview-note {
    font-size:9px;
    line-height:1.9
  }
  .editorial-question {
    padding-left:15px;
    margin:26px 0
  }
  .editorial-question small {
    font-size:7px
  }
  .editorial-question h3 {
    font-size:17px;
    line-height:1.7
  }
  .body-note,.preview-note {
    padding:16px 17px;
    font-size:9px;
    border-radius:8px
  }
  .preview-note h2 {
    font-size:16px
  }
  .article-body {
    font-size:calc(var(--reading) - 1px);
    line-height:1.9
  }
  .article-body h2 {
    font-size:1.4em
  }
  .article-body h3 {
    font-size:1.16em
  }
  .article-body table {
    font-size:10px
  }
  .article-body figure {
    margin:24px 0
  }
  .article-body figcaption {
    font-size:9px
  }
  .source-row {
    gap:12px;
    padding:15px 14px
  }
  .source-row .source-letter {
    width:29px;
    height:29px;
    font-size:13px
  }
  .source-row h3 {
    font-size:11px
  }
  .source-row p {
    font-size:8px
  }
  .reader-tags {
    gap:6px;
    margin:23px 0 27px
  }
  .reader-tags a {
    font-size:9px;
    padding:5px 10px
  }
  .reader-related {
    margin-top:28px;
    padding-top:22px
  }
  .reader-related h2 {
    font-size:17px
  }
  .related-grid {
    gap:23px 13px
  }
  .modal {
    padding:35px 23px 25px;
    border-radius:15px
  }
  .modal h2 {
    font-size:25px
  }
  .modal>p {
    font-size:11px
  }
  .modal .eyebrow {
    font-size:7px
  }
  .modal input:not([type=checkbox]),.modal textarea {
    font-size:12px
  }
  .channel-checks {
    gap:8px
  }
  .channel-check {
    font-size:10px;
    padding:11px 9px;
    gap:7px
  }
  .channel-check small {
    font-size:8px
  }
  .modal .disclosure {
    font-size:9px
  }
  .modal .form-error {
    font-size:10px
  }
  .drawer {
    padding:38px 23px
  }
  .drawer h2 {
    font-size:25px
  }
  .drawer nav>a {
    font-size:12px
  }
  .topic-search {
    gap:9px;
    margin-bottom:24px
  }
  .topic-search input {
    font-size:11px;
    padding:11px 12px
  }
  .topics-grid {
    gap:11px
  }
  .topic-tile {
    padding:19px 16px
  }
  .topic-tile h2 {
    font-size:18px;
    margin:13px 0
  }
  .topic-tile p {
    font-size:9px
  }
  .topic-tile>b {
    font-size:16px;
    right:13px;
    bottom:15px
  }
  .topic-tile>span {
    font-size:7px
  }
  .settings-card {
    padding:23px 20px;
    border-radius:11px
  }
  .settings-card h2 {
    font-size:18px
  }
  .settings-card>p {
    font-size:10px;
    line-height:1.9
  }
  .settings-card .channel-checks {
    grid-template-columns:repeat(2,1fr)
  }
  .segmented button {
    font-size:10px;
    padding:8px 17px
  }
  .settings-status {
    font-size:10px
  }
  .about-hero {
    padding:8px 0 24px
  }
  .about-hero h1 {
    font-size:34px;
    letter-spacing:-1px
  }
  .about-hero>p:not(.eyebrow) {
    font-size:12px;
    line-height:2
  }
  .good-values {
    grid-template-columns:1fr;
    gap:11px;
    margin-bottom:28px
  }
  .good-value {
    padding:21px 22px
  }
  .good-value h2 {
    font-size:24px;
    margin:11px 0 9px
  }
  .good-value p {
    font-size:11px
  }
  .about-channels {
    grid-template-columns:1fr;
    gap:12px
  }
  .about-channel {
    padding:22px
  }
  .about-channel h2 {
    font-size:21px
  }
  .about-channel p {
    font-size:11px
  }
  .scope-note h2 {
    font-size:18px
  }
  .scope-note p,.privacy-copy p,.privacy-copy li {
    font-size:11px;
    line-height:2
  }
  .privacy-copy h2 {
    font-size:20px
  }
  .toast {
    bottom:15px;
    font-size:10px;
    padding:11px 15px;
    max-width:calc(100vw - 28px);
    text-align:center
  }
  .loading-screen {
    min-height:400px;
    padding-top:85px
  }
  .loading-screen h1 {
    font-size:21px
  }
  .image-viewer {
    padding:36px 10px 13px
  }
  .image-viewer-controls {
    gap:11px
  }
  .image-viewer-controls button {
    font-size:10px
  }
  
}
@media(max-width:360px) {
  .brand>svg {
    display:none
  }
  .header-inner {
    gap:9px
  }
  .brand>span {
    font-size:20px
  }
  .feature-card:first-child h2 {
    font-size:26px
  }
  .feature-card h2 {
    font-size:15px
  }
  .feed-grid {
    grid-template-columns:1fr
  }
  .feed-image {
    aspect-ratio:1.65
  }
  .feed-card h2,.feed-card h3 {
    font-size:21px
  }
  .feed-card>p {
    font-size:11px
  }
  .feed-card .card-meta {
    font-size:9px
  }
  .card-footer {
    font-size:9px
  }
  .brand-strip a {
    display:none
  }
  .channel-checks,.settings-card .channel-checks {
    grid-template-columns:1fr
  }
  
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important;
    animation:none!important
  }
  
}
.drawer nav>a>svg {
  width:22px;
  height:22px;
  flex:none
}
.preview-label {
  font-size:.86em;
  padding:2px 5px;
  border:1px solid currentColor;
  border-radius:3px;
  white-space:nowrap;
  opacity:.8
}
@media(max-width:650px) {
  .brand-strip {
    font-size:10px
  }
  .brand-strip a {
    font-size:9px
  }
  .page-heading>div>p:not(.eyebrow) {
    font-size:12px;
    line-height:1.8
  }
  .snapshot-label {
    font-size:10px;
    line-height:1.8
  }
  .eyebrow {
    font-size:9px
  }
  .topic-chip {
    font-size:12px;
    padding:8px 12px
  }
  .feature-card:first-child p {
    font-size:12px
  }
  .feature-card:first-child .card-meta {
    font-size:9px
  }
  .feature-card .card-meta .preview-label {
    display:none
  }
  .feed-card .card-meta {
    font-size:9px;
    flex-wrap:wrap;
    row-gap:4px
  }
  .feed-card .card-meta .channel-pill,.feed-card .card-meta>time {
    font-size:9px
  }
  .feed-card>p {
    font-size:11px
  }
  .card-footer {
    font-size:9px;
    align-items:center
  }
  .save-button {
    width:34px;
    height:34px;
    flex:none
  }
  .save-button svg {
    width:18px;
    height:18px
  }
  .filter-label,select,.filter-summary {
    font-size:11px
  }
  .outline-button,.primary-button,.text-button {
    font-size:12px
  }
  .filter-group {
    flex-wrap:wrap
  }
  .feed-toolbar {
    align-items:flex-start
  }
  .load-wrap p {
    font-size:11px
  }
  .app-footer nav {
    font-size:11px
  }
  .app-footer>p,.footer-brand span {
    font-size:10px
  }
  .back-link,.reader-header .card-meta {
    font-size:11px
  }
  .reader-byline>div strong {
    font-size:12px
  }
  .reader-byline>div span {
    font-size:10px
  }
  .reader-actions .icon-button {
    width:34px;
    height:34px
  }
  .reader-tabs button {
    font-size:12px;
    min-height:38px
  }
  .text-size button {
    font-size:11px;
    min-height:36px
  }
  .overview-note,.body-note,.preview-note {
    font-size:11px
  }
  .source-row h3 {
    font-size:13px
  }
  .source-row p {
    font-size:10px
  }
  .reader-tags a {
    font-size:11px
  }
  .modal>p,.modal input:not([type=checkbox]),.modal textarea {
    font-size:13px
  }
  .modal .disclosure,.modal .form-error {
    font-size:11px
  }
  .channel-check {
    font-size:11px
  }
  .channel-check small {
    font-size:10px
  }
  .topic-search input {
    font-size:12px
  }
  .topic-tile p {
    font-size:11px
  }
  .settings-card>p,.settings-status,.good-value p,.about-channel p,.scope-note p,.privacy-copy p,.privacy-copy li {
    font-size:12px
  }
  .segmented button {
    font-size:12px
  }
  .toast {
    font-size:12px
  }
  .body-note {
    line-height:1.8
  }
  
}

/* particle-theme.css */
/* Particle visual system. Shared tokens, navigation, story cards, reading, breakpoints. */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --bg: #fff;
  --panel: #fffaf8;
  --panel2: #f4efed;
  --text: #101010;
  --muted: #77706e;
  --line: #ded9d7;
  --accent: #e94427;
  --soft: #f8c7bc80;
  --header: #fff9;
  --danger: #b62d26;
  --wash: #f7c6bc;
  --chip: #f4bfb3;
  --reading: 19px;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #050505;
  --panel: #151211;
  --panel2: #24201e;
  --text: #faf9f8;
  --muted: #a49b97;
  --line: #332e2b;
  --accent: #f48b73;
  --soft: #713c3048;
  --header: #100b0999;
  --danger: #ffa998;
  --wash: #3d231e;
  --chip: #44271f;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "PingFang SC", sans-serif;
  font-size: 16px;
  background: radial-gradient(ellipse 880px 800px at 180px 260px, var(--wash), transparent 83%) fixed, var(--bg);
}
button, a, input, select, textarea { transition: background-color .15s, border-color .15s, color .15s; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* Quiet header and the original magenta-to-green announcement treatment. */
.app-header { background: linear-gradient(95deg, color-mix(in srgb, var(--wash) 52%, var(--bg)), var(--bg) 75%); backdrop-filter: none; }
.header-inner { max-width: 1760px; min-height: 96px; padding: 26px 32px; gap: 24px; }
.menu-button { display: none; }
.brand { gap: 8px; }
.brand > svg, html[data-theme="light"] .brand > svg { width: 30px; height: 30px; color: var(--text); }
.brand > span { font-size: 25px; font-weight: 750; letter-spacing: -1.2px; }
.brand small { color: #948783; font-size: 24px; letter-spacing: -1px; }
.header-search { max-width: 390px; border-radius: 24px; background: #ffffff33; padding: 10px 16px; }
html[data-theme="dark"] .header-search { background: #0003; }
.header-search input { font-size: 14px; }
kbd { font-family: inherit; font-size: 11px; line-height: 1.4; }
.header-tools { gap: 16px; }
.icon-button { width: 40px; height: 40px; border-radius: 50%; }
.subscribe-button, .account-button, .primary-button { font-size: 14px; min-height: 44px; font-weight: 600; }
.subscribe-button, .account-button { padding: 9px 24px; border: 2px solid var(--line); border-radius: 28px; background: transparent; color: var(--text); white-space: nowrap; }
.subscribe-button { background: linear-gradient(110deg, #edc0c7, #d0e6d7); color: #49403e; }
html[data-theme="dark"] .subscribe-button { background: linear-gradient(110deg, #3e0d21, #102b1e); color: #e8dad6; }
.subscribe-button span { display: none; }
.account-button:hover { background: var(--panel2); }
.brand-strip, html[data-theme="light"] .brand-strip {
  min-height: 43px; padding: 8px 32px; justify-content: flex-start;
  background: linear-gradient(90deg, #8e2b5e, #3a2430 22%, #1d1c1c 52%, #25322a 78%, #2f6b46);
  color: #f1e6eb; border: 0; font-size: 14px; gap: 12px;
}
.strip-star { color: white; font-size: 20px; }
.brand-strip a { font-size: 12px; color: white; margin-left: auto; padding: 3px 14px; background: #ffffff24; border-radius: 20px; }
.channel-tabs { display: none; }

/* Six channels live in the left column, as Particle's categories do. */
.app-layout { display: grid; grid-template-columns: 224px minmax(0, 1fr); gap: 32px; max-width: 1760px; margin: auto; padding: 22px 24px 64px 16px; }
#main { grid-column: 2; grid-row: 1; }
.desktop-rail { display: block; grid-column: 1; grid-row: 1; position: sticky; top: 108px; align-self: start; max-height: calc(100dvh - 120px); overflow: auto; padding: 0 7px 20px 0; scrollbar-width: thin; }
.rail-block { border: 0; margin: 0 0 26px; padding: 0; }
.rail-navigation { margin-top: -7px; }
.rail-channel { padding: 10px 16px; border-radius: 28px; line-height: 1.25; color: var(--muted); }
.rail-channel strong { font-size: 19px; font-weight: 650; letter-spacing: -.45px; }
.rail-channel small { font-size: 11px; margin-top: 3px; color: inherit; opacity: .8; }
.rail-channel:hover { color: var(--text); }
.rail-channel.active { color: var(--accent); background: var(--soft); }
.rail-home { display: flex; gap: 8px; margin-bottom: 3px; font-size: 20px; font-weight: 650; width: max-content; max-width: 100%; }
.home-symbol { font-size: 22px; line-height: 1; }
.rail-block h2 { font-size: 11px; font-weight: 650; letter-spacing: 1.4px; padding-left: 16px; color: var(--muted); margin: 0 0 10px; }
.rail-link { display: block; padding: 7px 16px; font-size: 15px; font-weight: 550; }
.rail-link.active { color: var(--accent); }
.rail-purpose { padding: 0 16px; }
.rail-purpose h2 { padding: 0; }
.rail-copy { white-space: pre-line; font-size: 14px; line-height: 1.7; margin: 0 0 16px; }
.rail-subscribe { font-size: 12px; border-radius: 22px; padding: 9px 12px; background: transparent; }
.rail-note { font-size: 11px; white-space: pre-line; line-height: 1.65; }
.rail-bottom { padding: 0 16px; display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }

/* Large category heading and warm coral text links. */
.page-heading { padding: 0 0 22px; gap: 24px; }
.page-heading .eyebrow { display: none; }
.page-heading h1 { font-size: clamp(42px, 4.5vw, 68px); letter-spacing: -2.8px; font-weight: 750; margin: 0 0 12px; line-height: 1.08; }
.page-heading p:not(.eyebrow) { font-size: 14px; line-height: 1.7; max-width: 720px; }
.snapshot-label { margin-top: 5px; font-size: 11px; color: var(--muted); }
.snapshot-label::before { display: none; }
.heading-actions { padding-top: 14px; }
.outline-button { min-height: 40px; font-size: 13px; padding: 9px 18px; background: transparent; }
.outline-button.active { color: var(--accent); border-color: var(--accent); }
.topic-rail { gap: 28px; margin-bottom: 24px; padding: 3px 0 6px; }
.topic-chip, html[data-theme="light"] .topic-chip { color: var(--accent); font-size: 15px; font-weight: 550; border: 0; border-radius: 0; padding: 0; background: transparent; }
.topic-chip:hover, .topic-chip.active { color: var(--accent); text-decoration: underline; text-underline-offset: 5px; }
.feed-toolbar { margin-bottom: 22px; }
.filter-label, .filter-summary { font-size: 12px; }
select { font-size: 12px; border-radius: 18px; background: #ffffff55; padding: 7px 12px; }
html[data-theme="dark"] select { background: var(--panel); }
.section-title { padding-top: 24px; margin: 28px 0 20px; }
.section-title h2 { font-size: 24px; font-weight: 700; }
.section-title > span { font-size: 11px; }

body[data-view="home"] .page-heading { padding-bottom: 16px; }
body[data-view="home"] .page-heading p, body[data-view="home"] .snapshot-label { position: absolute; width: 1px; height: 1px; margin: -1px; clip-path: inset(50%); overflow: hidden; }
body[data-view="home"] .page-heading h1 { margin-bottom: 0; }

/* Image-derived solid colors rise through the photographs, matching Particle's cards. */
.feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; gap: 16px; margin-bottom: 0; }
.feature-card, .feature-card:first-child { grid-row: auto; grid-column: auto; height: 340px; border-radius: 15px; background: var(--story, #3b4f9a); border: 1px solid #0000000d; }
.feature-card > img { height: 100%; object-position: center 35%; }
.feature-card::after { background: linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--story) 60%, transparent) 57%, var(--story) 88%); }
.feature-card-content { padding: 16px 14px; }
.feature-card h2, .feature-card:first-child h2 { font-size: 23px; letter-spacing: -.5px; line-height: 1.22; font-weight: 700; margin: 7px 0 5px; }
.feature-card p, .feature-card:not(:first-child) p { display: -webkit-box; -webkit-line-clamp: 2; font-size: 15px; line-height: 1.35; color: #fff; opacity: .9; }
.card-meta { letter-spacing: .1px; }
.feature-card .card-meta, .feed-card .card-meta { font-size: 10px; color: #fff; opacity: .9; gap: 6px; margin: 0; line-height: 1.4; }
.feature-card .card-meta .channel-pill, .feed-card .card-meta .channel-pill { background: transparent; color: white; padding: 0; font-size: 10px; border-radius: 0; font-weight: 550; }
.feature-card .card-meta time, .feed-card .card-meta time { margin-left: auto; font-size: 10px; }
.feature-card .card-meta .dot, .feed-card .card-meta .dot { display: none; }
.feature-card .card-meta > span:not(.channel-pill):not(.preview-label), .feed-card .card-meta > span:not(.channel-pill):not(.preview-label) { display: none; }
.preview-label { color: #fff; border-color: #ffffff80; padding: 1px 4px; font-size: 9px; }
.feed-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.feed-card { display: block; min-height: 320px; overflow: hidden; border-radius: 15px; color: white; background: var(--story, #3b4f9a); isolation: isolate; border: 1px solid #0000000d; }
.feed-image { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; z-index: -2; background: var(--story); }
.feed-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 22%, color-mix(in srgb, var(--story) 40%, transparent) 48%, var(--story) 83%); }
.feed-image > img { object-position: center 30%; }
.feed-card-content { position: absolute; inset: auto 0 0; padding: 14px; pointer-events: none; }
.feed-card-content a, .feed-card-content button { pointer-events: auto; }
.feed-card h3 { font-size: 17px; letter-spacing: -.2px; line-height: 1.22; font-weight: 700; margin: 8px 0 6px; }
.feed-card h3 a:hover { color: white; text-decoration: underline; text-underline-offset: 3px; }
.feed-card-content > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 14px; line-height: 1.3; opacity: .9; margin: 0; }
.card-footer { border: 0; padding: 5px 0 0; font-size: 10px; color: #fff; opacity: .9; line-height: 1.4; }
.save-button { width: 32px; height: 30px; border-radius: 50%; color: white; }
.save-button:hover, .save-button[aria-pressed=true] { color: white; background: #ffffff30; }
.save-button svg { width: 17px; height: 17px; }
.related-grid { gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.related-grid .feed-card { min-height: 310px; }
.load-wrap { margin: 36px 0 16px; }
.load-wrap p { font-size: 12px; }

/* Reader: strong black headline, image alongside it, serif article and overview text. */
.reader-page { display: grid; grid-template-columns: 1.05fr 1fr; column-gap: 32px; row-gap: 24px; align-items: start; }
.reader-header { grid-column: 1; grid-row: 1; margin: 0; padding: 12px 0 0; }
.reader-header h1 { font-size: clamp(32px, 3.4vw, 54px); font-weight: 750; letter-spacing: -1.5px; line-height: 1.12; }
.reader-header .card-meta { color: var(--muted); font-size: 11px; }
.reader-header .channel-pill { background: transparent; color: var(--accent); font-size: 11px; padding: 0; }
.reader-header .preview-label { color: var(--accent); border-color: currentColor; }
.back-link { font-size: 12px; margin-bottom: 20px; }
.reader-deck, html[data-theme="light"] .reader-deck { color: var(--muted); font-size: 15px; line-height: 1.65; }
.reader-byline { padding: 14px 0; border: 0; }
.reader-byline > div strong { font-size: 12px; }
.reader-byline > div span { font-size: 11px; }
.reader-actions .save-button { color: var(--muted); }
.reader-actions .save-button[aria-pressed=true] { color: var(--accent); background: var(--soft); }
.reading-shell { display: contents; }
.reader-hero { grid-column: 2; grid-row: 1; height: 360px; width: 100%; margin: 20px 0 0; border-radius: 15px; }
.reading-subnav, .reader-panel, .reader-tags, .reader-related { grid-column: 1 / -1; width: 100%; }
.reading-subnav { margin: 8px 0 0; }
.reader-panel { max-width: 900px; }
.reader-tabs button, .shelf-tabs button { font-size: 14px; min-height: 40px; }
.reader-tabs button[aria-selected=true], .shelf-tabs button[aria-selected=true] { color: var(--text); background: var(--soft); border-color: transparent; font-weight: 600; }
.text-size button { font-size: 13px; min-width: 32px; min-height: 36px; }
.overview-panel { border: 0; background: transparent; padding: 8px 0; margin: 0 0 22px; }
.overview-panel h2 { font-size: 26px; font-weight: 700; }
.overview-panel li, html[data-theme="light"] .overview-panel li { font-family: Georgia, "Songti SC", serif; font-size: 18px; line-height: 1.65; color: var(--text); }
.overview-panel li::marker { color: var(--accent); }
.overview-note, .body-note, .preview-note { font-size: 12px; }
.body-note { background: transparent; border: 0; border-left: 2px solid var(--accent); border-radius: 0; padding: 4px 0 4px 15px; }
.article-body, html[data-theme="light"] .article-body { font-family: Georgia, "Songti SC", serif; color: var(--text); font-size: var(--reading); line-height: 1.8; }
.article-body h2, .article-body h3, .article-body h4 { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "PingFang SC", sans-serif; font-weight: 700; }
.article-body figcaption { font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
.source-row { background: var(--panel); border-radius: 12px; padding: 16px; }
.source-row h3 { font-size: 15px; }
.source-row p { font-size: 12px; }
.source-row .source-letter { font-size: 14px; border-radius: 50%; }
.reader-related { margin: 8px 0 0; }
.reader-related h2 { font-size: 24px; font-weight: 700; }
.reader-tags { margin: 8px 0 0; }
.reader-tags a { font-size: 12px; }

/* Form, topic and auxiliary pages share the same neutral surfaces and coral accent. */
.settings-grid { max-width: 980px; }
.settings-card, .topic-tile, .good-value, .about-channel, .empty-state { background: color-mix(in srgb, var(--bg) 85%, transparent); border-color: var(--line); border-radius: 14px; }
.settings-card h2, .topic-tile h2 { font-size: 23px; font-weight: 700; }
.settings-card > p, .settings-status, .topic-tile p, .empty-state p { font-size: 14px; }
.settings-card .channel-checks { max-width: none; }
.channel-check { font-size: 13px; background: transparent; }
.channel-check small { font-size: 11px; }
.channel-check input { accent-color: var(--accent); }
.channel-check:has(input:checked) { background: var(--soft); border-color: var(--accent); }
.segmented button { font-size: 13px; }
.topic-search input { font-size: 15px; background: var(--bg); }
.topic-tile { min-height: 165px; }
.topic-tile > span { font-size: 10px; }
.about-hero h1 { font-size: 56px; font-weight: 750; line-height: 1.2; }
.about-hero > p:not(.eyebrow), .good-value p, .about-channel p, .scope-note p, .privacy-copy p { font-size: 15px; line-height: 1.85; }
.about-channel h2 { color: var(--text); font-weight: 700; }
.about-channel h3 { color: var(--accent); }
.good-value h2 { font-weight: 700; }
.modal { background: var(--bg); border-radius: 22px; box-shadow: 0 20px 100px #0003; }
.modal::backdrop { background: #0005; backdrop-filter: blur(7px); }
.modal h2 { font-weight: 700; font-size: 29px; }
.modal > p, .modal input:not([type=checkbox]), .modal textarea { font-size: 14px; }
.modal .eyebrow, .modal .disclosure, .modal .form-error { font-size: 12px; }
.modal input:not([type=checkbox]), .modal textarea { background: var(--panel); border-radius: 10px; }
.modal label.field-label { font-size: 13px; }
.primary-button { background: var(--text); color: var(--bg); }
.text-button { font-size: 13px; }
.drawer { background: var(--bg); }
.drawer .channel-icon { color: var(--accent); background: var(--soft); }
.drawer h2 { font-weight: 700; }
.drawer nav > a { font-size: 15px; }
.drawer nav > a > span:last-child { font-size: 11px; }
.drawer-subtitle, .drawer-account small, .drawer-bottom a { font-size: 12px; }
.drawer-account strong { font-size: 14px; }
.dialog-close { min-width: 36px; min-height: 36px; }
.toast { font-size: 13px; background: var(--text); color: var(--bg); box-shadow: 0 6px 30px #0002; }
.app-footer { margin-left: 272px; margin-right: 24px; max-width: none; padding: 28px 0; }
.app-footer nav { font-size: 12px; }
.app-footer > p, .footer-brand span { font-size: 11px; }
.image-viewer .image-viewer-controls button { font-size: 13px; min-height: 40px; }

@media (min-width: 1760px) {
  .app-footer { max-width: 1488px; margin-left: auto; margin-right: auto; }
}
@media (max-width: 1250px) and (min-width: 1051px) {
  .app-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 22px; }
  .rail-channel strong { font-size: 17px; }
  .header-search { max-width: 320px; }
  .header-tools { gap: 10px; }
  .feature-card, .feature-card:first-child { height: 320px; }
  .feature-card h2, .feature-card:first-child h2 { font-size: 21px; }
  .feed-grid, .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-footer { margin-left: 248px; }
}
@media (max-width: 1050px) {
  .header-inner { padding: 20px 24px; min-height: 84px; gap: 16px; }
  .menu-button { display: inline-grid; }
  .header-search { max-width: 320px; }
  .header-tools { gap: 10px; }
  .subscribe-button, .account-button { padding: 8px 18px; font-size: 12px; }
  .brand-strip { padding: 8px 24px; }
  .channel-tabs { display: block; border-bottom: 0; }
  .channel-inner { padding: 20px 24px 0; gap: 25px; }
  .channel-tab { font-size: 32px; font-weight: 750; color: color-mix(in srgb, var(--text) 42%, transparent); padding-bottom: 0; line-height: 1.25; }
  .channel-tab.active::after { display: none; }
  .app-layout { display: block; padding: 20px 24px 48px; }
  .desktop-rail { display: none; }
  .page-heading h1 { font-size: 48px; }
  .feed-grid, .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-footer { margin: 0 24px; }
  .reader-header h1 { font-size: 38px; }
  .reader-hero { height: 320px; }
}
@media (max-width: 950px) {
  .header-search { display: none; }
  .header-tools { margin-left: auto; }
  .mobile-search { display: inline-grid; }
  .search-expanded .header-search { display: flex; position: absolute; left: 24px; right: 24px; top: 19px; z-index: 3; max-width: none; background: var(--bg); min-height: 46px; }
  .search-expanded .search-close { display: block; font-size: 22px; background: none; border: 0; }
  .search-expanded .header-search kbd { display: none; }
  .reader-page { display: block; }
  .reader-hero { height: 320px; margin: 18px 0 24px; }
  .reader-header { padding-top: 0; }
  .reading-subnav { margin-bottom: 24px; }
  .reader-panel { max-width: none; }
}
@media (max-width: 650px) {
  body { background-image: radial-gradient(ellipse 520px 600px at 0 80px, var(--wash), transparent 80%); background-color: var(--bg); background-size: auto; background-position: 0 0; }
  .header-inner { min-height: 76px; padding: 16px; gap: 12px; }
  .brand > svg { width: 25px; height: 25px; }
  .brand > span { font-size: 21px; letter-spacing: -.8px; }
  .brand small { font-size: 19px; }
  .header-tools { gap: 6px; }
  .icon-button { width: 34px; height: 34px; border: 0; border-radius: 8px; }
  .icon-button svg { width: 19px; height: 19px; }
  .subscribe-button, .account-button { display: none; }
  .brand-strip, html[data-theme="light"] .brand-strip { min-height: 38px; padding: 7px 16px; font-size: 12px; gap: 8px; }
  .brand-strip a { font-size: 10px; padding: 3px 9px; }
  .brand-strip a span { display: none; }
  .channel-inner { padding: 21px 16px 0; gap: 24px; }
  .channel-tab { font-size: 32px; letter-spacing: -.8px; }
  .app-layout { padding: 20px 16px 36px; }
  .page-heading { padding-bottom: 18px; gap: 10px; }
  body[data-view="home"] .page-heading { padding-bottom: 0; }
  .page-heading h1 { font-size: 34px; letter-spacing: -1px; }
  .page-heading > div > p:not(.eyebrow) { font-size: 13px; }
  body[data-page="browse"]:has(.feature-grid:not([hidden])) .page-heading h1 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip-path: inset(50%); overflow: hidden; }
  .page-heading p:not(.eyebrow) { line-height: 1.65; }
  .snapshot-label { font-size: 10px; margin-top: 5px; }
  .heading-actions { padding-top: 0; }
  .heading-actions .outline-button { padding: 7px 11px; min-height: 34px; font-size: 11px; }
  .topic-rail { gap: 8px; margin: 0 -16px 22px; padding: 0 16px 3px; }
  .topic-chip, html[data-theme="light"] .topic-chip { font-size: 14px; padding: 7px 15px; background: var(--chip); border-radius: 22px; }
  .feature-grid, .feed-grid, .related-grid { grid-template-columns: 1fr; gap: 16px; }
  .feature-card, .feature-card:first-child { height: 330px; border-radius: 14px; }
  .feature-card-content, .feed-card-content { padding: 14px; }
  .feature-card h2, .feature-card:first-child h2, .feed-card h3 { font-size: 19px; line-height: 1.25; margin: 8px 0 6px; letter-spacing: -.3px; }
  .feature-card p, .feature-card:first-child p, .feature-card:not(:first-child) p, .feed-card-content > p { font-size: 14px; line-height: 1.35; -webkit-line-clamp: 2; }
  .feature-card .card-meta, .feature-card:first-child .card-meta, .feed-card .card-meta { font-size: 10px; }
  .feature-card .card-meta .channel-pill, .feed-card .card-meta .channel-pill { font-size: 10px; padding: 0; }
  .feature-card .card-meta .preview-label { display: inline-block; }
  .feed-card, .related-grid .feed-card { min-height: 320px; }
  .card-footer { font-size: 10px; padding-top: 5px; }
  .save-button { width: 34px; height: 30px; }
  .section-title { margin-top: 27px; padding-top: 21px; }
  .section-title h2 { font-size: 22px; }
  .section-title > span { font-size: 10px; }
  .feed-toolbar { gap: 12px; }
  .feed-toolbar .filter-group { gap: 7px; }
  .filter-label, select, .filter-summary { font-size: 11px; }
  select { padding: 7px 10px; max-width: 155px; }
  .search-expanded .header-search { top: 15px; left: 16px; right: 16px; }
  .outline-button, .primary-button, .text-button { font-size: 13px; }
  .load-wrap p { font-size: 11px; }
  .reader-header h1 { font-size: 35px; letter-spacing: -.9px; }
  .reader-header .card-meta { font-size: 11px; }
  .reader-deck, html[data-theme="light"] .reader-deck { font-size: 15px; }
  .reader-byline { gap: 10px; }
  .reader-byline > div strong { font-size: 12px; }
  .reader-byline > div span { font-size: 10px; }
  .reader-hero { height: 250px; }
  .reader-tabs button { font-size: 13px; padding: 8px 12px; }
  .overview-panel { padding: 4px 0; }
  .overview-panel h2 { font-size: 24px; }
  .overview-panel li { font-size: 17px; line-height: 1.7; }
  .article-body { font-size: var(--reading); }
  .overview-note, .body-note, .preview-note { font-size: 11px; }
  .source-row h3 { font-size: 14px; }
  .source-row p { font-size: 11px; }
  .source-row { padding: 14px; }
  .reader-related h2 { font-size: 22px; }
  .topic-search { flex-wrap: wrap; }
  .topic-search input { font-size: 14px; min-height: 44px; flex-basis: 100%; }
  .topics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .topic-tile { padding: 20px 15px; }
  .topic-tile h2 { font-size: 20px; }
  .topic-tile p { font-size: 12px; }
  .settings-card { padding: 24px 20px; }
  .settings-card h2 { font-size: 22px; }
  .settings-card > p, .settings-status { font-size: 13px; }
  .settings-card .channel-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .channel-check { font-size: 12px; padding: 12px 9px; }
  .channel-check small { font-size: 10px; }
  .segmented button { font-size: 13px; }
  .about-hero h1 { font-size: 39px; }
  .about-hero > p:not(.eyebrow), .good-value p, .about-channel p, .scope-note p, .privacy-copy p { font-size: 14px; }
  .modal { padding: 38px 24px 28px; }
  .modal h2 { font-size: 27px; }
  .modal > p, .modal input:not([type=checkbox]), .modal textarea { font-size: 14px; }
  .modal .eyebrow, .modal .disclosure, .modal .form-error { font-size: 11px; }
  .drawer nav > a { font-size: 14px; padding: 12px 4px; }
  .drawer nav > a > span:last-child { font-size: 10px; }
  .app-footer { margin: 0 16px; padding: 26px 0; flex-direction: column; gap: 20px; }
  .app-footer nav { gap: 20px; font-size: 12px; }
  .app-footer > p { max-width: none; text-align: left; font-size: 11px; margin: 0; }
  .footer-brand span { font-size: 11px; }
}
@media (max-width: 360px) {
  .brand > svg { display: none; }
  .header-inner { gap: 8px; }
  .brand > span { font-size: 20px; }
  .brand-strip a { display: none; }
  .channel-checks, .settings-card .channel-checks { grid-template-columns: 1fr; }
  .reading-subnav { gap: 6px; }
  .reader-tabs button { font-size: 12px; padding: 8px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

.feature-card h2, .feed-card h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
@media(max-width:650px){.feature-card:not(:first-child) .card-meta .preview-label { display: inline-block; }}

@media(max-width:650px){.feature-card:first-child .feature-card-content{padding:14px}}

/* page-design.css */
/* Page-specific patterns observed across Particle's saved page families. */
:root, html[data-theme="light"] {
  --accent: var(--page-light, #c93620);
  --soft: color-mix(in srgb, var(--accent) 12%, var(--bg));
  --chip: color-mix(in srgb, var(--accent) 15%, var(--bg));
  --wash: color-mix(in srgb, var(--accent) 24%, var(--bg));
}
html[data-theme="dark"] {
  --accent: var(--page-dark, #ee8877);
  --soft: color-mix(in srgb, var(--accent) 16%, var(--bg));
  --chip: color-mix(in srgb, var(--accent) 20%, var(--bg));
  --wash: color-mix(in srgb, var(--accent) 19%, var(--bg));
}

/* Navigation stays familiar; only the feed uses the category wash and announcement. */
body:not([data-layout="feed"]) { background: var(--bg); }
body:not([data-layout="feed"]) .app-header { background: var(--bg); }
body:not([data-layout="feed"]) .header-inner { max-width: 1440px; }
body:not([data-layout="feed"]) .menu-button { display: inline-grid; }
body:not([data-layout="feed"]) .brand-strip,
body:not([data-layout="feed"]) .channel-tabs,
body:not([data-layout="feed"]) .desktop-rail { display: none; }
body:not([data-layout="feed"]) .app-layout {
  display: block; max-width: 1040px; padding: 40px 32px 64px;
}
body:not([data-layout="feed"]) .app-footer {
  max-width: 976px; margin: 0 auto; padding: 28px 0 36px;
}
body:not([data-layout="feed"]) .page-heading h1 { font-size: 48px; letter-spacing: -1.8px; }
body:not([data-layout="feed"]) .page-heading { padding-bottom: 28px; }
.page-breadcrumb { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; margin-bottom: 18px; }
.page-breadcrumb a:hover { color: var(--accent); }
.page-breadcrumb > span[aria-current] { color: var(--accent); }
.page-breadcrumb > span:not([aria-current]) { opacity: .5; }
.drawer .channel-icon { background: color-mix(in srgb, var(--ch) 12%, var(--bg)); color: var(--ch); }
html[data-theme="dark"] .drawer .channel-icon { color: color-mix(in srgb, var(--ch), white 45%); }

/* Topic pages follow the centered, light-surface, single-column reference. */
body[data-layout="topic"] .app-layout { max-width: 824px; }
body[data-layout="topic"] .app-footer { max-width: 760px; }
.topic-results .page-heading { display: block; }
.topic-results .page-heading h1 { margin-top: 0; }
.topic-results .page-heading .heading-actions { padding-top: 16px; }
.topic-results .topic-rail { gap: 7px; flex-wrap: wrap; overflow: visible; }
.topic-results .topic-chip, html[data-theme="light"] .topic-results .topic-chip {
  border-radius: 20px; background: var(--chip); padding: 4px 11px; font-size: 14px;
}
.topic-results .section-title { margin: 10px 0 18px; border-top: 0; padding-top: 0; }
.topic-results .section-title h2 { font-size: 22px; }
.topic-results .feed-grid { grid-template-columns: 1fr; gap: 24px; }
.topic-results .feed-card {
  min-height: 0; height: auto; display: block; background: var(--panel);
  border: 1px solid var(--line); border-top-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  border-radius: 16px; padding: 16px; color: var(--text);
}
.topic-results .feed-image {
  position: relative; inset: auto; display: block; height: auto; width: 100%;
  aspect-ratio: 16 / 8.7; border-radius: 10px; z-index: 0; background: var(--panel2);
}
.topic-results .feed-image::after { display: none; }
.topic-results .feed-card-content { position: static; padding: 17px 0 0; pointer-events: auto; }
.topic-results .feed-card h3 { font-size: 23px; line-height: 1.25; margin: 9px 0 11px; }
.topic-results .feed-card-content > p { font-size: 15px; color: var(--muted); opacity: 1; line-height: 1.5; }
.topic-results .card-footer { padding-top: 12px; }
body[data-layout="topics"] .app-layout { max-width: 1100px; }
body[data-layout="topics"] .topic-tile {
  border-top: 3px solid var(--topic); background: color-mix(in srgb, var(--topic) 3%, var(--bg));
  border-radius: 12px; padding: 24px; min-height: 176px;
}
body[data-layout="topics"] .topic-tile:hover { border-color: var(--topic); }
body[data-layout="topics"] .topic-tile > span { color: var(--topic); font-size: 11px; }
body[data-layout="topics"] .topic-tile h2 { font-size: 23px; font-weight: 700; }
body[data-layout="topics"] .topic-tile > b { color: var(--topic); }

/* Search and personal reading use the quieter editorial rows of Particle's blog. */
body:is([data-layout="search"], [data-layout="shelf"]) .feed-grid { grid-template-columns: 1fr; gap: 0; }
body:is([data-layout="search"], [data-layout="shelf"]) .feed-card {
  display: grid; grid-template-columns: minmax(0, 1fr) 176px; gap: 26px;
  min-height: 0; height: auto; padding: 26px 0; background: transparent;
  border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--text);
}
body:is([data-layout="search"], [data-layout="shelf"]) .feed-image {
  grid-column: 2; grid-row: 1; position: relative; inset: auto; height: 136px;
  width: 100%; aspect-ratio: auto; border-radius: 10px; background: var(--panel2); z-index: 0;
}
body:is([data-layout="search"], [data-layout="shelf"]) .feed-image::after { display: none; }
body:is([data-layout="search"], [data-layout="shelf"]) .feed-card-content { grid-column: 1; grid-row: 1; position: static; padding: 0; pointer-events: auto; }
body:is([data-layout="search"], [data-layout="shelf"]) .feed-card h3 { font-size: 23px; line-height: 1.25; margin: 9px 0; }
body:is([data-layout="search"], [data-layout="shelf"]) .feed-card-content > p { color: var(--muted); opacity: 1; font-size: 15px; line-height: 1.5; }
body:is([data-layout="search"], [data-layout="shelf"]) .section-title { border: 0; margin-top: 0; padding-top: 0; }
body:is([data-layout="search"], [data-layout="shelf"]) .section-title h2 { font-size: 22px; }
body:is([data-layout="search"], [data-layout="shelf"]) .feed-toolbar { padding-bottom: 15px; margin-bottom: 0; border-bottom: 1px solid var(--line); }
body:is([data-layout="search"], [data-layout="shelf"]) .topic-rail { gap: 20px; }

/* Caption colors must remain readable on white/list surfaces, including hover and saved states. */
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .feed-card .card-meta { color: var(--muted); opacity: 1; font-size: 11px; }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .feed-card .channel-pill { color: var(--accent); font-size: 11px; }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .feed-card h3 a:hover { color: var(--accent); }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .card-footer { color: var(--muted); opacity: 1; }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .save-button { color: var(--muted); }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .save-button[aria-pressed="true"] { color: var(--accent); background: var(--soft); }
body:is([data-layout="search"], [data-layout="shelf"], [data-layout="topic"]) .preview-label { color: var(--accent); border-color: currentColor; }

/* Article hue comes from its photograph; the page has a hero and an actual sources rail. */
body[data-layout="reader"] {
  background: radial-gradient(ellipse 1200px 470px at 50% 0, var(--wash), transparent 85%) no-repeat, var(--bg);
}
body[data-layout="reader"] .app-header { background: color-mix(in srgb, var(--wash) 26%, var(--bg)); }
body[data-layout="reader"] .app-layout { max-width: 1304px; padding-top: 42px; }
.reader-page { grid-template-columns: minmax(0, 1fr) 300px; gap: 30px 48px; }
.reader-cover { grid-column: 1 / -1; display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; gap: 48px; min-width: 0; }
.reader-cover .reader-header { grid-column: 1; grid-row: 1; margin: 0; padding: 0; max-width: none; min-width: 0; }
.reader-cover .reader-hero { grid-column: 2; grid-row: 1; width: 100%; height: 390px; margin: 0; border-radius: 16px; }
.reader-header h1 { font-size: clamp(34px, 3.7vw, 56px); line-height: 1.1; font-weight: 800; }
.headline-highlight { color: var(--accent); }
.reader-deck, html[data-theme="light"] .reader-deck { color: var(--muted); font-size: 16px; }
.reader-panel { grid-column: 1; max-width: none; min-width: 0; }
.reading-subnav { margin-top: 4px; }
.article-sources-rail { grid-column: 2; grid-row: auto; position: sticky; top: 114px; align-self: start; min-width: 0; }
.article-sources-rail > h2 { font-size: 23px; letter-spacing: -.5px; margin: 8px 0 7px; font-weight: 750; }
.article-sources-rail > h2 > span { color: var(--muted); }
.sources-rail-note { font-size: 11px; color: var(--muted); margin: 0 0 14px; }
.article-sources-rail .source-list { max-height: 62dvh; overflow: auto; padding: 2px 5px 3px 0; gap: 7px; scrollbar-width: thin; }
.article-sources-rail .source-row { padding: 12px; align-items: flex-start; gap: 9px; border-radius: 13px; }
.article-sources-rail .source-row:hover { background: var(--soft); }
.article-sources-rail .source-letter { width: 25px; height: 25px; font-size: 10px; }
.article-sources-rail .source-row p { font-size: 10px; color: var(--muted); letter-spacing: .6px; text-transform: uppercase; margin-bottom: 4px; }
.article-sources-rail .source-row h3 { font-size: 13px; line-height: 1.3; margin: 0; font-weight: 650; }
.article-sources-rail > .text-button { margin-top: 12px; font-size: 12px; }
.reader-page.sources-open .reader-panel { grid-column: 1 / -1; }
.reader-page.sources-open .article-sources-rail { display: none; }
.reader-page .reader-tags, .reader-page .reader-related { grid-column: 1 / -1; }
.overview-panel li { font-size: 18px; line-height: 1.75; }
.reader-related .related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* About, data notices and preferences retain the restrained informational-page family. */
body[data-layout="about"] .app-layout { max-width: 1180px; padding-top: 70px; }
body[data-layout="about"] .app-footer { max-width: 1116px; }
.about-hero { text-align: center; padding: 0 0 72px; }
.about-hero > .eyebrow { color: var(--muted); font-size: 11px; }
.about-hero h1 { font-size: clamp(40px, 4.3vw, 64px); line-height: 1.23; font-weight: 800; margin: 18px 0 24px; }
.about-hero > p:not(.eyebrow) { max-width: 660px; margin: 0 auto; color: var(--muted); font-size: 16px; }
.brand-good { color: #31806b; }
html[data-theme="dark"] .brand-good { color: #82d2b9; }
.good-values { gap: 48px; margin: 0 0 76px; }
.good-value { border: 0; border-radius: 0; background: transparent; padding: 0; }
.good-value > span { color: var(--muted); font-size: 11px; }
.good-value h2 { font-size: 36px; font-weight: 750; margin: 17px 0 12px; }
.good-value p { font-size: 15px; }
.good-value:nth-child(1) h2 { color: #a83c6c; }
.good-value:nth-child(2) h2 { color: #316da0; }
.good-value:nth-child(3) h2 { color: #31806b; }
html[data-theme="dark"] .good-value h2 { filter: brightness(1.6); }
.about-channel { border: 0; border-top: 1px solid var(--line); background: transparent; border-radius: 0; padding: 30px 0; }
.about-channel:hover { border-color: var(--ch); }
.about-channel .channel-icon { width: 40px; height: 40px; border-radius: 50%; }
.about-channel h2 { font-size: 25px; }
.about-channel h3 { font-size: 15px; color: var(--ch); }
.about-channel p { max-width: 440px; }
.scope-note { max-width: 760px; margin: 42px auto 0; border-top: 1px solid var(--line); padding-top: 32px; }
body[data-layout="document"] .app-layout { max-width: 784px; padding-top: 52px; }
body[data-layout="document"] .app-footer { max-width: 720px; }
body[data-layout="document"] .page-heading h1 { font-size: 40px; line-height: 1.2; }
.privacy-copy h2 { font-size: 24px; font-weight: 700; margin: 32px 0 13px; }
.privacy-copy p { font-size: 16px; line-height: 1.9; color: var(--muted); }
body[data-layout="settings"] .app-layout { max-width: 984px; }
body[data-layout="settings"] .app-footer { max-width: 920px; }
body[data-layout="settings"] .page-heading h1 { font-size: 40px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.settings-grid > form, .settings-grid > section:last-child { grid-column: 1 / -1; }
.settings-card { border-radius: 16px; background: var(--panel); padding: 28px; }
.settings-card h2 { font-size: 22px; }
.settings-card .channel-checks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.settings-card input[type="text"] { font-size: 14px; }

/* Header forms borrow Particle's anchored popover, with a usable sheet on phones. */
.account-modal {
  inset: 92px 32px auto auto; margin: 0; width: 400px; max-height: calc(100dvh - 114px);
  border-radius: 24px; padding: 34px 24px 24px; background: var(--panel2);
  box-shadow: 0 8px 28px #0002;
}
.account-modal::backdrop { background: color-mix(in srgb, var(--bg) 18%, transparent); backdrop-filter: blur(1px); }
.account-modal h2 { font-size: 27px; }
.account-modal .eyebrow { font-size: 10px; color: var(--muted); }
.account-modal input:not([type="checkbox"]) { border-radius: 17px; min-height: 48px; background: var(--bg); }
.account-modal .primary-button { border-radius: 18px; font-size: 14px; min-height: 48px; margin-top: 18px; }
.account-modal .channel-checks { gap: 7px; margin-top: 0; }
.account-modal .channel-check { background: var(--bg); padding: 10px 8px; }
.account-modal .channel-check:has(input:checked) { background: var(--soft); }
.account-modal .disclosure { font-size: 11px; }

@media (max-width: 1100px) {
  .reader-page { grid-template-columns: minmax(0, 1fr) 260px; column-gap: 28px; }
  .reader-cover { gap: 28px; }
  .reader-cover .reader-hero { height: 330px; }
  .reader-header h1 { font-size: 42px; }
  .article-sources-rail .source-row { padding: 10px; }
}
@media (max-width: 950px) {
  .reader-page { display: block; }
  .reader-cover { gap: 24px; margin-bottom: 28px; }
  .reader-cover .reader-hero { height: 300px; }
  .reader-header h1 { font-size: 36px; }
  .article-sources-rail { display: none; }
  .reading-subnav { margin-bottom: 26px; }
  .reader-panel { max-width: none; }
  .reader-page .reader-related { margin-top: 30px; }
  .reader-page .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .good-values { gap: 28px; }
  body:not([data-layout="feed"]) .app-footer { margin: 0 32px; }
}
@media (max-width: 650px) {
  body:not([data-layout="feed"]) .app-layout { padding: 26px 16px 40px; }
  body:not([data-layout="feed"]) .app-footer { margin: 0 16px; }
  body:not([data-layout="feed"]) .page-heading h1 { font-size: 34px; letter-spacing: -1px; }
  body:not([data-layout="feed"]) .page-heading { padding-bottom: 24px; }
  .page-breadcrumb { font-size: 12px; gap: 7px; margin-bottom: 16px; flex-wrap: wrap; }
  .topic-results .feed-card { padding: 12px; border-radius: 14px; }
  .topic-results .feed-card h3 { font-size: 21px; }
  .topic-results .feed-card-content > p { font-size: 14px; }
  .topic-results .feed-card-content { padding-top: 14px; }
  .topic-results .topic-rail { margin: 0 0 20px; padding: 0; }
  .topic-results .topic-chip, html[data-theme="light"] .topic-results .topic-chip { font-size: 12px; }
  body[data-layout="topics"] .topic-tile { padding: 20px 15px; min-height: 160px; }
  body[data-layout="topics"] .topic-tile h2 { font-size: 20px; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card { grid-template-columns: minmax(0, 1fr) 104px; gap: 14px; padding: 22px 0; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-image { height: 104px; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card h3 { font-size: 19px; line-height: 1.3; -webkit-line-clamp: 3; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card-content > p { font-size: 13px; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card .card-meta time { display: none; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card .card-footer .source-name { display: none; }
  body:is([data-layout="search"], [data-layout="shelf"]) .card-footer { padding-top: 4px; justify-content: flex-start; }
  .reader-cover { display: flex; flex-direction: column; align-items: stretch; gap: 24px; margin-bottom: 24px; }
  .reader-header h1 { font-size: 36px; }
  .reader-cover .reader-hero { height: 250px; margin: 0; }
  .reader-cover .reader-header { width: 100%; }
  .reader-deck, html[data-theme="light"] .reader-deck { font-size: 15px; }
  .reader-page .related-grid { grid-template-columns: 1fr; }
  .overview-panel li { font-size: 17px; line-height: 1.75; }
  .about-hero { padding-bottom: 48px; text-align: left; }
  .about-hero h1 { font-size: 39px; }
  .about-hero > p:not(.eyebrow) { font-size: 15px; }
  .good-values { gap: 32px; margin-bottom: 46px; }
  .good-value h2 { font-size: 32px; margin: 12px 0; }
  .good-value p { font-size: 15px; }
  .about-channel h2 { font-size: 25px; }
  .privacy-copy p { font-size: 15px; }
  .privacy-copy h2 { font-size: 23px; }
  .settings-grid { grid-template-columns: 1fr; gap: 16px; }
  .settings-card { padding: 24px 20px; }
  .settings-card .channel-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-modal { inset: auto 12px 12px; width: calc(100vw - 24px); margin: 0; max-height: calc(100dvh - 40px); padding: 38px 22px 24px; border-radius: 24px; }
  .account-modal .channel-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 360px) {
  .settings-card .channel-checks, .account-modal .channel-checks { grid-template-columns: 1fr; }
  .reader-header h1 { font-size: 32px; }
  .about-hero h1 { font-size: 35px; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-card { grid-template-columns: minmax(0, 1fr) 86px; gap: 12px; }
  body:is([data-layout="search"], [data-layout="shelf"]) .feed-image { height: 90px; }
}

.article-sources-rail > .text-button { display:block; text-align:left; margin:0 0 14px; padding:0; min-height:30px; }

/* Long search terms and source labels must not force a narrow page wider. */
.page-heading > div, .source-row > div { min-width: 0; }
.page-heading h1, .page-heading p, .source-row h3, .modal h2 { overflow-wrap: anywhere; }

.settings-card p, .scope-note p, .privacy-copy p { overflow-wrap:anywhere; }

html[data-theme="dark"] :is(.topic-tile > span,.topic-tile > b) { color:color-mix(in srgb,var(--topic),white 45%); }
html[data-theme="dark"] .about-channel h3 { color:color-mix(in srgb,var(--ch),white 45%); }
@media(max-width:650px){
  .account-modal input:not([type=checkbox]), .modal textarea, .topic-search input,
  .header-search input, .settings-card input[type=text] { font-size:16px; }
}

.page-heading > .heading-actions { flex:0 0 auto; min-width:max-content; }
.page-heading > div:not(.heading-actions) { flex:1; }

.account-modal h2 { text-wrap:balance; }
.account-modal .modal-close-rail { position:sticky; top:-24px; height:0; margin-top:-24px; z-index:3; }
.account-modal .dialog-close { position:absolute; inset:0 -10px auto auto; margin:0; background:var(--panel2); border-radius:50%; }
.account-modal > .eyebrow { padding-right:34px; }

.headline-highlight:hover { text-decoration:underline; text-underline-offset:5px; }

/* content-structure.css */
/* Saved publication hierarchy within the existing Particle design system. */
.channel-subnav {display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 30px;padding:16px 0;border-block:1px solid var(--line);}
.channel-subnav a {padding:8px 13px;border-radius:20px;font-size:13px;font-weight:650;color:var(--muted);text-decoration:none;}
.channel-subnav a:hover,.channel-subnav a.active {background:var(--soft);color:var(--accent);}
body[data-layout="directory"] :is(.desktop-rail,.brand-strip,.channel-tabs) {display:none;}
body[data-layout="directory"] .menu-button {display:grid;}
body[data-layout="directory"] .app-layout {display:block;max-width:1160px;margin:0 auto;padding:48px 32px 80px;}
body[data-layout="directory"] {background:var(--bg);}
.directory-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px;}
.directory-card {min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:28px;border-top:3px solid var(--ch);}
.directory-card h2 {font-size:30px;letter-spacing:-1px;margin:8px 0;}
.directory-card h2 a {text-decoration:none;color:var(--text);}
.directory-card p {line-height:1.7;color:var(--muted);font-size:14px;}
.directory-card .directory-subtitle {font-size:16px;color:var(--text);margin:4px 0 12px;}
.directory-primary {display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:22px 0;}
.directory-primary .outline-button {font-size:13px;}
.directory-group {border-top:1px solid var(--line);padding-top:18px;margin-top:20px;}
.directory-group h3 {font-size:13px;margin:0 0 12px;color:var(--muted);font-weight:600;}
.directory-links {display:flex;flex-wrap:wrap;gap:8px;}
.directory-links a {display:flex;align-items:baseline;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:13px;max-width:100%;text-decoration:none;}
.directory-links a:hover {border-color:var(--accent);background:var(--soft);}
.directory-links span {overflow-wrap:anywhere;}
.directory-links small {white-space:nowrap;color:var(--muted);font-size:11px;}
.directory-note {font-size:13px!important;}
.directory-group .text-button {display:inline-block;margin-top:12px;padding-left:0;}
.reference-list {margin-top:22px;border-top:1px solid var(--line);padding-top:16px;font-size:13px;}
.reference-list summary {cursor:pointer;color:var(--muted);}
.reference-list a {display:block;padding:10px 0;overflow-wrap:anywhere;}
.channel-about-copy {max-width:820px;margin:36px auto 0;}
.channel-about-copy > section {margin:38px 0;}
.channel-about-copy h2 {font-size:27px;letter-spacing:-.7px;line-height:1.35;}
.channel-about-copy p {line-height:1.85;color:var(--muted);font-size:16px;}
.channel-focus {padding:0;list-style:none;margin:25px 0;}
.channel-focus li {display:flex;align-items:baseline;gap:25px;border-top:1px solid var(--line);padding:20px 0;}
.channel-focus li > span {font-size:12px;color:var(--accent);}
.channel-focus h3 {margin:0;font-size:20px;}
.article-outline {background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:15px 20px;margin:0 0 30px;}
.article-outline summary {cursor:pointer;font-size:14px;font-weight:650;line-height:1.5;}
.article-outline ol {padding:12px 0 0 22px;max-height:360px;overflow-y:auto;}
.article-outline li {padding:4px 0;color:var(--muted);font-size:12px;}
.article-outline li[data-level="3"] {margin-left:15px;}
.article-outline li[data-level="4"] {margin-left:30px;}
.article-outline .outline-link {border:0;background:none;text-align:left;padding:5px 8px;color:var(--text);font:inherit;font-size:14px;line-height:1.5;cursor:pointer;overflow-wrap:anywhere;}
.article-outline .outline-link:hover {color:var(--accent);text-decoration:underline;}
.article-body :is(h1,h2,h3,h4,h5,h6) {scroll-margin-top:130px;overflow-wrap:anywhere;}
.article-body h2 {font-size:1.5em;line-height:1.3;margin:2em 0 .8em;}
.article-body h3 {font-size:1.22em;line-height:1.4;margin:1.7em 0 .8em;}
.article-body :is(h4,h5,h6) {font-size:1.08em;line-height:1.5;margin:1.5em 0 .7em;}
.article-body :is(h1,h2,h3,h4,h5,h6):focus {outline:2px solid var(--accent);outline-offset:8px;border-radius:2px;}
.reader-byline strong a {text-decoration:none;color:inherit;}
.reader-byline strong a:hover {color:var(--accent);text-decoration:underline;}
.section-match {font-size:13px;line-height:1.6;color:var(--accent);overflow-wrap:anywhere;margin:0 0 12px;display:block;}
.reference-body {margin:36px 0;}
html[data-theme="dark"] .directory-card {border-top-color:color-mix(in srgb,var(--ch),white 45%);}
@media(max-width:900px){.directory-grid{grid-template-columns:1fr;}.directory-card{padding:24px;}}
@media(max-width:650px){body[data-layout="directory"] .app-layout{padding:28px 20px 60px;}.directory-card{padding:22px 18px;}.directory-card h2{font-size:28px;}.channel-subnav{gap:6px;margin-bottom:20px;}.channel-subnav a{font-size:12px;padding:8px 10px;}.article-outline{padding:14px;}.channel-about-copy h2{font-size:24px;}.channel-about-copy p{font-size:15px;}.article-body :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:90px;}}

/* topic-entities.css */
/* Topics: the source's people / companies / products editorial directory. */
body:is([data-layout="topics"],[data-layout="entity"]) {--bg:#faf8f4;--panel:#fffdf9;--panel2:#f0ece5;--line:#dcd6cb;--text:#191a17;--muted:#77776e;--accent:#343d32;background:var(--bg);}
html[data-theme="dark"] body:is([data-layout="topics"],[data-layout="entity"]) {--bg:#11110f;--panel:#1b1b17;--panel2:#25251f;--line:#36372d;--text:#f2f0e8;--muted:#aaa99d;--accent:#ced4c5;}
body:is([data-layout="topics"],[data-layout="entity"]) .app-layout {max-width:1320px;padding:38px 60px 80px;margin:0 auto;}
body:is([data-layout="topics"],[data-layout="entity"]) .app-header {background:color-mix(in srgb,var(--bg) 92%,transparent);}
body:is([data-layout="topics"],[data-layout="entity"]) .app-footer {max-width:1200px;}
.entity-index-header .page-breadcrumb {margin-bottom:50px;}
.entity-index-header > .eyebrow {display:none;}
.entity-index-header h1 {font:normal clamp(80px,10vw,144px)/.95 Georgia,"Times New Roman",serif;letter-spacing:-7px;margin:0 0 46px;}
.entity-index-deck {font-size:23px;line-height:1.75;color:var(--muted);margin:0 0 36px;max-width:940px;}
.entity-search {display:grid;grid-template-columns:minmax(0,1fr) 200px auto;gap:16px;align-items:center;margin:32px 0;}
.entity-search input,.entity-search select {min-width:0;width:100%;border:1px solid var(--line);background:transparent;color:var(--text);border-radius:8px;padding:12px 15px;font:inherit;font-size:14px;}
.entity-search select {height:46px;}
.entity-category-nav {display:flex;gap:12px 32px;align-items:center;flex-wrap:wrap;border-block:1px solid var(--line);padding:18px 0;}
.entity-category-nav button {font-size:15px;display:flex;align-items:baseline;gap:10px;padding:6px 0;background:none;border:0;color:var(--muted);border-radius:0;white-space:nowrap;}
.entity-category-nav button span {font-size:13px;font-weight:400;}
.entity-category-nav button.active {color:var(--text);box-shadow:0 2px 0 var(--text);}
.entity-index-status {font-size:12px;color:var(--muted);line-height:1.65;margin:15px 0 8px;}
.entity-group {margin:58px 0 70px;scroll-margin-top:120px;}
.entity-group > header {display:flex;justify-content:space-between;align-items:baseline;gap:32px;margin-bottom:34px;}
.entity-group h2 {font:normal 46px/1.1 Georgia,"Times New Roman",serif;letter-spacing:-1.2px;margin:0;}
.entity-group h2 small {display:block;font:13px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:0;color:var(--muted);margin-top:10px;}
.entity-group > header > p {max-width:430px;line-height:1.8;color:var(--muted);font-size:14px;margin:0;}
.entity-directory {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;}
.entity-row {display:flex;align-items:center;gap:18px;min-width:0;min-height:108px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;}
.entity-row:hover {background:color-mix(in srgb,var(--text) 3%,transparent);}
.entity-mark {width:52px;height:52px;flex:0 0 52px;overflow:hidden;border-radius:4px;background:var(--panel2);display:grid;place-items:center;}
.entity-mark img {width:100%;height:100%;object-fit:cover;display:block;}
.entity-mark.people img {filter:none;}
.entity-mark.companies img,.entity-mark.products img {object-fit:contain;padding:5px;}
.entity-mark.other > span {font:normal 28px Georgia,serif;color:var(--muted);}
.entity-label {display:block;flex:1;min-width:0;}
.entity-label strong {font:normal 29px/1.2 Georgia,"Times New Roman",serif;letter-spacing:-.6px;overflow-wrap:anywhere;display:block;}
.entity-label > small {display:block;font:11px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--muted);margin-top:6px;overflow-wrap:anywhere;}
.entity-row-meta {display:flex;align-items:center;gap:15px;flex-shrink:0;color:var(--muted);}
.entity-row-meta small {font-size:11px;white-space:nowrap;}
.entity-row-meta b {font-size:24px;font-weight:400;}
.entity-profile-cover {display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:70px;align-items:center;padding:35px 0 42px;}
.entity-profile-intro h1 {font:normal clamp(46px,5vw,76px)/1.04 Georgia,"Times New Roman",serif;letter-spacing:-2.8px;margin:20px 0;overflow-wrap:anywhere;}
.entity-role {font-size:16px;color:var(--muted);margin-bottom:22px;}
.entity-description {font-size:17px;line-height:1.85;color:var(--muted);}
.entity-profile-intro .outline-button {margin-top:18px;font-size:13px;}
.entity-portrait {margin:0;min-width:0;}
.entity-portrait > img {width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;display:block;background:var(--panel2);}
.entity-portrait.people > img {filter:none;}
.entity-portrait.companies > img,.entity-portrait.products > img {object-fit:contain;padding:50px;background:#f0eee8;}
.entity-credit {color:var(--muted);font-size:10px;line-height:1.6;margin-top:10px;}
.entity-credit figcaption {margin:0;}
.entity-credit figcaption > span {display:block;}
.entity-credit a:hover {text-decoration:underline;}
.entity-profile-nav {display:flex;gap:28px;flex-wrap:wrap;border-block:1px solid var(--line);padding:18px 0;margin:8px 0 20px;font-size:14px;}
.entity-profile-nav a:hover {text-decoration:underline;}
.entity-archive-note {color:var(--muted);font-size:12px;line-height:1.8;margin:0 0 42px;}
:is(#entity-background,#entity-timeline,#entity-coverage) {scroll-margin-top:120px;outline-offset:8px;}
.entity-background .person-dossier {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start;}
.entity-background h2,.entity-coverage h2,.entity-related h2 {font:normal 34px/1.2 Georgia,"Times New Roman",serif;letter-spacing:-.7px;margin:0 0 22px;}
.entity-background p {font-size:15px;line-height:1.85;overflow-wrap:anywhere;}
.entity-background .person-bio,.entity-background .person-career-intro {color:var(--muted);}
.entity-background dl {margin:28px 0;}
.entity-background dl > div {display:grid;grid-template-columns:125px minmax(0,1fr);gap:20px;border-top:1px solid var(--line);padding:15px 0;font-size:13px;line-height:1.8;}
.entity-background dt {color:var(--muted);}
.entity-background dd {margin:0;overflow-wrap:anywhere;}
.entity-background a {text-decoration:underline;text-underline-offset:3px;}
.entity-background .person-resources {display:flex;gap:16px;flex-wrap:wrap;font-size:12px;}
.entity-background .person-checked {font-size:11px;color:var(--muted);line-height:1.8;margin-top:24px;}
.entity-background .person-timeline {list-style:none;padding:0;margin:25px 0 0;}
.entity-background .person-timeline > li {display:grid;grid-template-columns:66px minmax(0,1fr);gap:20px;border-top:1px solid var(--line);padding:22px 0;}
.entity-background .person-timeline time {font-size:12px;line-height:1.65;color:var(--muted);}
.entity-background .person-timeline h3 {font-size:17px;line-height:1.5;margin:0 0 10px;}
.entity-background .person-timeline p {font-size:13px;line-height:1.8;color:var(--muted);}
.entity-background .person-timeline a {font-size:11px;}
.entity-background .person-history {border-block:1px solid var(--line);padding:16px 0;font-size:13px;}
.entity-background .person-history summary {cursor:pointer;line-height:1.8;}
.entity-coverage {border-top:1px solid var(--line);padding-top:50px;margin-top:60px;}
.entity-coverage > header p {font-size:14px;line-height:1.8;color:var(--muted);}
.entity-coverage .feed-toolbar {display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.entity-coverage .filter-group {flex-wrap:wrap;}
.entity-coverage-grid .feed-card {display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:26px;min-height:0;height:auto;padding:26px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--text);}
.entity-coverage-grid .feed-image {position:static;grid-column:2;grid-row:1;width:100%;height:132px;aspect-ratio:auto;border-radius:8px;}
.entity-coverage-grid .feed-image::after {display:none;}
.entity-coverage-grid .feed-card-content {position:static;grid-column:1;grid-row:1;padding:0;min-width:0;pointer-events:auto;}
.entity-coverage-grid .card-meta {color:var(--muted);font-size:11px;}
.entity-coverage-grid .feed-card h3 {font-size:25px;line-height:1.3;margin:10px 0;color:var(--text);}
.entity-coverage-grid .feed-card-content > p {font-size:14px;line-height:1.65;color:var(--muted);opacity:1;}
.entity-coverage-grid .card-footer {padding-top:10px;}
.entity-coverage-grid .save-button {border:1px solid var(--line);background:transparent;color:var(--muted);}
.entity-coverage-grid .source-name {font-size:11px;}
.entity-search-more {display:block;padding:24px 0;font-size:14px;text-decoration:underline;text-underline-offset:4px;}
.entity-related {margin-top:55px;}
.entity-bottom-links {display:flex;gap:18px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:32px;margin-top:45px;}
@media(max-width:1000px){body:is([data-layout="topics"],[data-layout="entity"]) .app-layout{padding:32px 32px 65px;}.entity-index-header h1{font-size:110px;}.entity-index-deck{font-size:20px;}.entity-directory{column-gap:30px;}.entity-label strong{font-size:25px;}.entity-row-meta{gap:8px;}.entity-row{gap:12px;}.entity-profile-cover{gap:35px;}.entity-background .person-dossier{gap:35px;}.entity-background dl>div{grid-template-columns:100px minmax(0,1fr);gap:12px;}}
@media(max-width:760px){.entity-directory{grid-template-columns:1fr;}.entity-profile-cover{grid-template-columns:1fr;gap:30px;padding-top:20px;}.entity-portrait{max-width:440px;}.entity-background .person-dossier{grid-template-columns:1fr;gap:40px;}.entity-group>header{display:block;}.entity-group>header>p{margin-top:18px;}.entity-group h2{font-size:40px;}.entity-profile-intro h1{font-size:56px;}.entity-index-header .page-breadcrumb{margin-bottom:40px;}.entity-index-header h1{font-size:100px;letter-spacing:-5px;margin-bottom:30px;}}
@media(max-width:650px){body:is([data-layout="topics"],[data-layout="entity"]) .app-layout{padding:25px 20px 55px;}.entity-index-header h1{font-size:86px;letter-spacing:-4px;}.entity-index-deck{font-size:16px;line-height:1.85;}.entity-index-deck br{display:none;}.entity-search{grid-template-columns:minmax(0,1fr) auto;gap:12px;}.entity-search input{grid-column:1/-1;font-size:16px;}.entity-search select{font-size:13px;}.entity-category-nav{gap:12px 18px;}.entity-category-nav button{font-size:12px;gap:6px;}.entity-category-nav button span{font-size:11px;}.entity-group{margin:38px 0 48px;}.entity-group>header{margin-bottom:14px;}.entity-group h2{font-size:36px;}.entity-group>header>p{font-size:13px;}.entity-row{min-height:100px;gap:14px;padding:20px 0;}.entity-label strong{font-size:26px;}.entity-mark{width:46px;height:46px;flex-basis:46px;}.entity-row-meta{gap:10px;}.entity-row-meta b{font-size:22px;}.entity-row-meta small{font-size:10px;}.entity-profile-intro h1{font-size:46px;letter-spacing:-1.8px;}.entity-description{font-size:15px;}.entity-profile-nav{gap:20px;font-size:12px;}.entity-background h2,.entity-coverage h2,.entity-related h2{font-size:29px;}.entity-background dl>div{grid-template-columns:90px minmax(0,1fr);}.entity-background .person-timeline>li{grid-template-columns:55px minmax(0,1fr);gap:15px;}.entity-coverage-grid .feed-card{grid-template-columns:minmax(0,1fr) 86px;gap:14px;padding:22px 0;}.entity-coverage-grid .feed-image{height:90px;}.entity-coverage-grid .feed-card h3{font-size:20px;}.entity-coverage-grid .feed-card-content>p{font-size:13px;}.entity-coverage-grid .card-meta{font-size:10px;}.entity-archive-note{font-size:11px;}.entity-coverage .filter-group{gap:8px;}.entity-coverage select{max-width:100%;}.entity-portrait.companies>img,.entity-portrait.products>img{padding:40px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

.entity-mark.companies,.entity-mark.products {background:#efeee9;}

/* Native timeline disclosure and readable metadata on editorial list surfaces. */
.entity-background .person-history:not([open]) .history-hide {display:none;}
.entity-background .person-history[open] .history-show {display:none;}
.entity-background .person-history .history-range {display:block;color:var(--muted);font-size:11px;margin-top:4px;}
.entity-coverage-grid .feed-card .card-meta {color:var(--muted);opacity:1;}
.entity-coverage-grid .feed-card .card-meta .channel-pill {color:var(--accent);}
.entity-coverage-grid .feed-card .card-footer {color:var(--muted);opacity:1;}
.entity-coverage-grid .feed-card .preview-label {color:var(--accent);border-color:currentColor;}
.entity-coverage-grid .feed-card .save-button[aria-pressed="true"] {color:var(--accent);background:var(--soft);}

@media(max-width:650px){
 .entity-index-header .page-breadcrumb{margin-bottom:24px;}
 .entity-index-header h1{font-size:76px;margin-bottom:22px;}
 .entity-index-deck{font-size:15px;line-height:1.7;margin-bottom:24px;}
 .entity-search{margin:22px 0;}
 .entity-category-nav{gap:10px 12px;padding:14px 0;}
 .entity-category-nav button{font-size:11px;}
 .entity-category-nav button[data-category="all"]{display:none;}
 .entity-group{margin-top:28px;}
 .entity-group>header>p{margin-top:12px;}
}

/* newsroom.css */
/* Editorial ingestion and Chinese news, within the established Particle palette. */
body:is([data-layout="news"],[data-layout="manage"]) {background:var(--bg);}
body:is([data-layout="news"],[data-layout="manage"]) .app-layout {max-width:1300px;padding:42px 42px 70px;margin:auto;display:block;}
body[data-layout="manage"] .app-layout {max-width:1440px;}
.news-badge {display:inline-block;padding:3px 9px;border:1px solid var(--line);border-radius:20px;font-size:11px;line-height:1.5;white-space:nowrap;color:var(--muted);}
.news-badge:is(.status-published,.status-verified,.status-done,.status-success,.status-not_modified) {color:#34734b;background:#6fbb7b16;}
.news-badge:is(.status-failed,.status-restricted,.status-withdrawn) {color:var(--danger);background:#c94d3810;}
.news-badge:is(.status-blocked,.status-policy_blocked,.status-changed) {color:#9a6d27;background:#c9a44913;}
html[data-theme="dark"] .news-badge:is(.status-published,.status-verified,.status-done,.status-success,.status-not_modified) {color:#9ed3aa;}
html[data-theme="dark"] .news-badge:is(.status-blocked,.status-policy_blocked,.status-changed) {color:#e4c48c;}
.news-operation-note {border:1px solid var(--line);border-radius:12px;padding:14px 18px;display:flex;gap:15px;align-items:baseline;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:12px 0 25px;}
.news-operation-note strong {font-size:13px;color:var(--text);}
.news-public-search,.editor-list-controls {display:flex;align-items:center;gap:12px;margin:25px 0;flex-wrap:wrap;}
.news-public-search > input,.editor-list-controls > input {flex:1;min-width:180px;}
:is(.news-public-search,.editor-list-controls,.editor-form-grid) :is(input,select,textarea),.news-field :is(input,textarea,select) {font:inherit;font-size:14px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:11px 13px;min-width:0;max-width:100%;}
.news-list-status,.editor-muted {color:var(--muted);font-size:13px;line-height:1.8;overflow-wrap:anywhere;}
.news-public-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.news-public-grid>.empty-state {grid-column:1/-1;}
.news-card {border:1px solid var(--line);border-radius:16px;padding:26px;min-width:0;background:var(--panel);}
.news-card h2 {font-size:25px;line-height:1.5;letter-spacing:-.6px;margin:16px 0;overflow-wrap:anywhere;}
.news-card > p {font-size:14px;line-height:1.85;color:var(--muted);}
.news-meta {font-size:11px;color:var(--muted);display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.news-card-bottom {border-top:1px solid var(--line);padding-top:15px;margin-top:22px;display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);flex-wrap:wrap;}
.news-card a:hover {color:var(--accent);}
.news-links {display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:20px 0;}
.news-live-strip {margin:0 0 35px;}
.news-live-strip .section-title {padding-top:16px;margin-bottom:16px;}
.news-live-strip .section-title h2 {font-size:24px;}
.news-strip-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.news-strip-grid .news-card {padding:20px;}
.news-strip-grid .news-card h2 {font-size:20px;}
.news-strip-empty {background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;font-size:13px;line-height:1.8;color:var(--muted);}
.news-reading {max-width:840px;margin:35px auto;}
.news-reading h1 {font-size:45px;line-height:1.4;letter-spacing:-1.4px;overflow-wrap:anywhere;margin:25px 0;}
.news-date-line {font-size:12px;color:var(--muted);line-height:1.7;}
.news-reading-summary {font-size:21px;line-height:2;margin:35px 0;}
.news-why {border-left:3px solid var(--accent);background:var(--panel2);padding:20px 25px;margin:35px 0;}
.news-why h2 {font-size:17px;margin:0 0 10px;}
.news-why p {font-size:15px;line-height:1.9;margin:0;}
.news-editor-note {font-size:13px;line-height:1.8;color:var(--muted);}
.news-citations {margin:40px 0;}
.news-citations h2 {font-size:23px;margin-bottom:20px;}
.news-citation {border-top:1px solid var(--line);padding:18px 0;display:flex;gap:15px;flex-wrap:wrap;align-items:baseline;}
.news-citation .news-external {flex:1;min-width:180px;}
.news-citation small {color:var(--muted);font-size:11px;}
.news-external {overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px;font-size:13px;line-height:1.7;}
.editor-heading {margin-bottom:32px;}
.editor-heading h1 {font-size:44px;letter-spacing:-1.4px;margin:8px 0;}
.editor-heading>p:not(.eyebrow) {color:var(--muted);font-size:14px;}
.editor-layout {display:grid;grid-template-columns:190px minmax(0,1fr);gap:38px;align-items:start;}
.editor-nav {position:sticky;top:120px;display:grid;gap:6px;}
.editor-nav a {font-size:14px;padding:10px 13px;border-radius:9px;}
.editor-nav a.active,.editor-nav a:hover {background:var(--soft);color:var(--accent);}
.editor-nav button {justify-self:start;padding:10px 13px;}
.editor-panel {min-width:0;}
.editor-panel h2 {font-size:29px;line-height:1.5;letter-spacing:-.7px;margin:0 0 22px;overflow-wrap:anywhere;}
.editor-panel h3 {font-size:19px;margin:30px 0 18px;}
.editor-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.editor-metrics article {border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--panel);}
.editor-metrics small {color:var(--muted);font-size:12px;display:block;}
.editor-metrics strong {display:block;font-size:30px;line-height:1.6;}
.editor-notice {padding:16px 19px;background:var(--panel2);border-radius:10px;font-size:13px;line-height:1.9;overflow-wrap:anywhere;}
.editor-table-wrap {width:100%;overflow-x:auto;margin:20px 0 28px;border:1px solid var(--line);border-radius:12px;}
.editor-table {border-collapse:collapse;width:100%;font-size:12px;line-height:1.75;table-layout:fixed;min-width:560px;}
.editor-table th {text-align:left;color:var(--muted);font-weight:500;background:var(--panel2);padding:13px 15px;}
.editor-table td {padding:15px;vertical-align:top;border-top:1px solid var(--line);overflow-wrap:anywhere;}
.editor-table td small {display:block;color:var(--muted);font-size:11px;margin-top:6px;}
.editor-table a:hover {color:var(--accent);text-decoration:underline;}
.editor-table .text-button {font-size:11px;padding:0;}
.editor-feedback {font-size:13px;line-height:1.8;color:var(--accent);overflow-wrap:anywhere;}
.editor-warning {color:var(--danger)!important;}
.editor-alerts {padding:0;list-style:none;}
.editor-alerts li {padding:15px 18px;border:1px solid var(--line);border-left:3px solid var(--danger);border-radius:9px;margin-bottom:12px;font-size:13px;line-height:1.7;}
.editor-alerts small {display:block;color:var(--muted);font-size:11px;margin-top:8px;}
.editor-tabs {display:flex;gap:18px;border-bottom:1px solid var(--line);padding:12px 0;margin:20px 0;font-size:14px;flex-wrap:wrap;}
.editor-tabs .active {color:var(--accent);font-weight:700;}
.news-field {display:grid;gap:8px;font-size:13px;margin:16px 0;min-width:0;}
.news-field > span {color:var(--muted);font-size:12px;}
.news-field input,.news-field textarea {width:100%;}
.news-field textarea {resize:vertical;}
.editor-form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;align-items:start;}
.editor-checkbox {display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.8;margin:15px 0;}
.editor-checkbox input {margin-top:5px;flex-shrink:0;width:15px;height:15px;}
.editor-source {border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:18px 22px;margin:15px 0;}
.editor-source summary {display:flex;gap:12px;align-items:center;cursor:pointer;flex-wrap:wrap;}
.editor-source summary strong {flex:1;min-width:140px;font-size:14px;}
.editor-source summary>span {font-size:11px;color:var(--muted);}
.editor-login {max-width:580px;border:1px solid var(--line);border-radius:16px;padding:28px;margin:25px auto;background:var(--panel);}
.editor-login>p {font-size:14px;line-height:1.9;color:var(--muted);}
.editor-settings-card {border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:25px;background:var(--panel);}
.editor-settings-card>h3 {margin-top:0;}
.editor-settings-card>p {font-size:13px;line-height:1.9;}
.editor-review-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.8fr);gap:32px;align-items:start;}
.editor-edit-pane,.editor-evidence {min-width:0;}
.editor-edit-pane>h3,.editor-evidence>h3 {margin-top:20px;}
.editor-evidence {background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;}
.editor-reference {padding:18px 0;border-top:1px solid var(--line);}
.editor-reference>strong {font-size:13px;display:block;margin-bottom:8px;}
.editor-reference>.news-external {display:block;margin:10px 0;}
.editor-reference>small {font-size:11px;color:var(--muted);}
.editor-reference p {font-size:12px;line-height:1.8;}
.editor-reference summary {font-size:12px;cursor:pointer;line-height:1.8;}
.editor-reference blockquote {margin:12px 0;border-left:2px solid var(--line);padding-left:15px;font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;max-height:380px;overflow:auto;}
.editor-quality {font-size:12px;line-height:1.8;color:var(--muted);padding-left:18px;}
.editor-checklist {border-top:1px solid var(--line);margin-top:25px;}
.editor-checklist h3 {font-size:16px;}
.editor-tools {border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin:32px 0;}
.editor-tools summary {cursor:pointer;font-size:14px;}
.editor-list-controls input {min-width:160px;}
@media(max-width:1050px){.editor-review-grid{grid-template-columns:1fr;}.editor-evidence{margin-top:0;}.news-strip-grid{grid-template-columns:1fr;}.editor-layout{grid-template-columns:160px minmax(0,1fr);gap:25px;}.editor-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.editor-layout{grid-template-columns:1fr;gap:25px;}.editor-nav{position:static;display:flex;flex-wrap:wrap;gap:4px 8px;border-bottom:1px solid var(--line);padding-bottom:18px;}.editor-nav a{font-size:12px;padding:7px 10px;}.editor-nav button{font-size:12px;padding:7px 10px;}.news-public-grid{grid-template-columns:1fr;}.editor-form-grid{grid-template-columns:1fr;}.news-reading h1{font-size:34px;}.news-reading-summary{font-size:19px;}}
@media(max-width:650px){body:is([data-layout="news"],[data-layout="manage"]) .app-layout{padding:28px 20px 55px;}.editor-heading h1{font-size:34px;}.editor-panel h2{font-size:25px;}.editor-source{padding:16px;}.editor-evidence{padding:16px;}.editor-settings-card{padding:18px;}.news-card{padding:20px;}.news-card h2{font-size:22px;}.news-reading h1{font-size:29px;}.news-reading-summary{font-size:17px;}.news-public-search>input,.editor-list-controls>input{width:100%;flex-basis:100%;}.news-field :is(input,textarea),.news-public-search>input,.editor-list-controls>input{font-size:16px;}.editor-metrics strong{font-size:26px;}.news-operation-note{font-size:11px;gap:8px;}.news-strip-empty{font-size:12px;padding:15px;}.news-reading{margin-top:24px;}}

/* brand-identity.css */
/* Chinese reading names and English sub-brands have distinct roles. */
.brand-strip p {display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;}
.brand-strip .slogan-en {font-size:13px;letter-spacing:.01em;}
.brand-strip .slogan-zh {font-size:13px;}
.rail-channel strong[lang="zh-CN"] {font-size:14px;letter-spacing:0;}
.rail-channel small[lang="en"] {font-size:10px;letter-spacing:.13em;margin-top:5px;}
.rail-copy .rail-slogan-en,.rail-copy .rail-slogan-zh {display:block;white-space:normal;}
.rail-copy .rail-slogan-en {font-size:13px;line-height:1.6;margin-bottom:8px;}
.rail-copy .rail-slogan-zh {font-size:14px;line-height:1.7;}
.directory-card .directory-subtitle[lang="en"],.about-channel h3[lang="en"] {font-size:12px;letter-spacing:.06em;line-height:1.7;color:var(--muted);}
.about-hero .about-slogan-en {font-size:clamp(18px,2vw,26px);line-height:1.5;letter-spacing:-.3px;margin:0 0 24px;}
.app-footer .footer-brand>span[lang="en"] {font-size:12px;margin-top:9px;line-height:1.6;}
.app-footer .footer-brand>span[lang="zh-CN"] {font-size:12px;margin-top:3px;line-height:1.6;}
@media(max-width:650px){.brand-strip p{display:grid;gap:2px;}.brand-strip .slogan-en{font-size:11px;}.brand-strip .slogan-zh{font-size:12px;}.brand-strip a{display:none;}.page-heading .eyebrow{font-size:10px;letter-spacing:1px;overflow-wrap:anywhere;}}

/* brand-locale.css */
.language-toggle{font:inherit;font-size:12px;line-height:1.3;border:1px solid var(--line);border-radius:20px;color:var(--text);background:var(--panel);min-width:46px;padding:9px 10px;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.language-toggle:hover{border-color:var(--accent);color:var(--accent);}
.language-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.editor-source summary .source-channel{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;color:var(--muted);}
.editor-source summary .source-channel small{font-size:10px;letter-spacing:.08em;}
.channel-heading .eyebrow{display:block;font-size:11px;letter-spacing:.08em;line-height:1.6;margin-bottom:12px;}
html[data-language="en"] :is(.slogan-zh,.rail-slogan-zh,.footer-brand>span[lang="zh-CN"],.about-slogan-en){display:none;}
html[data-language="zh-CN"] :is(.slogan-en,.rail-slogan-en,.footer-brand>span[lang="en"]){display:none;}
.about-hero h1[lang="en"]{font-size:clamp(34px,4.3vw,60px);overflow-wrap:normal;}
html[data-language="en"] .rail-channel strong{line-height:1.45;font-size:13px;}
.rail-channel small[lang="en"]{margin-top:0;margin-bottom:5px;}
@media(max-width:650px){.language-toggle{min-width:33px;padding:7px 5px;font-size:11px;}.header-tools{gap:6px;}.app-header .header-inner{gap:6px;padding:16px 12px;}.app-header .brand{gap:6px;}.app-header .brand>span{font-size:19px;letter-spacing:-.8px;}.app-header .brand small{font-size:17px;}.brand-strip p{min-width:0;}.brand-strip .slogan-en{font-size:11px;}}
@media(max-width:650px){body[data-page="browse"] #main .channel-heading h1{position:static;width:auto;height:auto;clip-path:none;overflow:visible;white-space:normal;}}
@media(max-width:650px){.channel-heading{flex-direction:column;gap:14px;}.channel-heading>div:not(.heading-actions){width:100%;}.channel-heading .heading-actions{padding-top:0;}.channel-inner{padding-top:14px;gap:18px;}.channel-tab{font-size:14px;letter-spacing:0;white-space:nowrap;}}

/* Prevent a Chinese UI flash while the saved English locale initializes. */
html[data-language="en"][data-locale-ready="pending"] body{visibility:hidden;}

/* channel-portals.css */
/* Minimal brand navigation: typography, numerical indices and a fine light trace. */
.channel-portal{
 --rail-tone:var(--rail-light);--portal-open:0;position:relative;isolation:isolate;display:block;box-sizing:border-box;
 margin:0 0 4px;padding:14px 15px;overflow:hidden;border:1px solid transparent;
 border-bottom-color:color-mix(in srgb,var(--text) 8%,transparent);border-radius:12px;
 color:var(--text);background:transparent;box-shadow:none;transform:perspective(900px) translateZ(0);transform-origin:30% 50%;
 transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s,border-color .28s,background .28s;
}
html[data-theme="dark"] .channel-portal{--rail-tone:var(--rail-dark);}
.channel-portal::before,.channel-portal::after{content:"";position:absolute;pointer-events:none;z-index:-1;}
.channel-portal::before{inset:0;opacity:var(--portal-open);transition:opacity .3s;background:radial-gradient(ellipse at 95% 5%,color-mix(in srgb,var(--rail-tone) 9%,transparent),transparent 70%),linear-gradient(90deg,transparent 0 82%,color-mix(in srgb,var(--rail-tone) 5%,transparent) 82% calc(82% + 1px),transparent calc(82% + 1px));}
.channel-portal::after{left:15px;bottom:0;height:1px;width:calc(100% - 30px);background:linear-gradient(90deg,var(--rail-tone),transparent);transform:scaleX(var(--portal-open));transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.channel-portal .portal-identity{display:block;position:relative;padding-right:16px;}
.channel-portal .portal-title[lang]{display:block;font-size:27px;font-weight:700;line-height:1.08;letter-spacing:-.035em;margin:0 0 8px;color:var(--text);opacity:1;transition:font-size .28s,letter-spacing .28s,color .28s;}
.channel-portal .portal-name[lang]{display:block;font-size:12px;line-height:1.5;font-weight:450;letter-spacing:0;color:var(--muted);transition:color .28s;}
html[data-language="en"] .channel-portal .portal-name{font-size:12px;}
.channel-portal .portal-index,.channel-portal .portal-orbit{position:absolute;right:14px;top:20px;display:grid;place-items:center;width:18px;height:18px;border:0;border-radius:0;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:400;letter-spacing:0;color:var(--muted);transition:opacity .25s,transform .25s;}
.channel-portal .portal-index{opacity:.6;}
.channel-portal .portal-orbit{font-size:17px;color:var(--rail-tone);opacity:0;transform:translate(-3px,3px);}
.channel-portal .portal-details{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transform:translateY(5px);transition:grid-template-rows .3s,opacity .25s,transform .3s,visibility .3s;}
.channel-portal .portal-description{display:block;min-height:0;overflow:hidden;font-size:12px;line-height:1.8;color:var(--text);}
.channel-portal .portal-cta{display:none;font-size:10px;font-weight:550;letter-spacing:.015em;color:var(--rail-tone);padding-top:12px;}
.channel-portal.active{border-color:color-mix(in srgb,var(--rail-tone) 10%,transparent);background:linear-gradient(115deg,color-mix(in srgb,var(--rail-tone) 6%,var(--bg)),color-mix(in srgb,var(--rail-tone) 2%,var(--bg)));}
.channel-portal.active .portal-title[lang]{color:var(--rail-tone);}
.channel-portal.active .portal-index{color:var(--rail-tone);opacity:.8;}
.channel-portal:is(:focus-visible,.is-revealed){--portal-open:1;outline:none;border-color:color-mix(in srgb,var(--rail-tone) 18%,transparent);background:color-mix(in srgb,var(--panel) 87%,transparent);box-shadow:0 8px 20px color-mix(in srgb,var(--text) 5%,transparent),inset 0 1px 0 color-mix(in srgb,var(--bg) 80%,transparent);}
.channel-portal:is(:focus-visible,.is-revealed) .portal-title[lang]{font-size:21px;letter-spacing:-.015em;color:var(--rail-tone);}
.channel-portal:is(:focus-visible,.is-revealed) .portal-name{color:var(--text);font-weight:550;}
.channel-portal:is(:focus-visible,.is-revealed) .portal-details{grid-template-rows:1fr;opacity:1;visibility:visible;transform:translateY(0);padding-top:13px;}
.channel-portal:is(:focus-visible,.is-revealed) .portal-cta{display:block;}
.channel-portal:is(:focus-visible,.is-revealed) .portal-index{opacity:0;transform:translate(3px,-3px);}
.channel-portal:is(:focus-visible,.is-revealed) .portal-orbit{opacity:1;transform:translate(0,0);}
.channel-portal:focus-visible{outline:2px solid var(--rail-tone);outline-offset:2px;}
@media(hover:hover) and (pointer:fine){
 .channel-portal:hover{--portal-open:1;transform:perspective(900px) rotateY(-1.5deg) translateY(-1px);border-color:color-mix(in srgb,var(--rail-tone) 18%,transparent);background:color-mix(in srgb,var(--panel) 87%,transparent);box-shadow:2px 7px 20px color-mix(in srgb,var(--text) 5%,transparent),inset 0 1px 0 color-mix(in srgb,var(--bg) 80%,transparent);}
 .channel-portal:hover .portal-title[lang]{font-size:21px;letter-spacing:-.015em;color:var(--rail-tone);}
 .channel-portal:hover .portal-name{color:var(--text);font-weight:550;}
 .channel-portal:hover .portal-details{grid-template-rows:1fr;opacity:1;visibility:visible;transform:translateY(0);padding-top:13px;}
 .channel-portal:hover .portal-cta{display:block;}
 .channel-portal:hover .portal-index{opacity:0;transform:translate(3px,-3px);}
 .channel-portal:hover .portal-orbit{opacity:1;transform:translate(0,0);}
}
.drawer #drawer-nav>.drawer-channel{display:block;padding:18px 16px;margin-bottom:5px;min-height:84px;border-radius:12px;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent);}
.drawer #drawer-nav>.drawer-channel>span:last-child{font-size:inherit;}
.drawer-channel .portal-details{grid-template-rows:0fr;}
.portal-touch-hint{display:none;}
@media(hover:none),(pointer:coarse){.portal-touch-hint{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 16px;}}
@media(prefers-reduced-motion:reduce){.channel-portal,.channel-portal *,.channel-portal::before,.channel-portal::after{transition:none!important;animation:none!important;}.channel-portal:hover{transform:none;}}

/* about-editorial.css */
/* Brand story follows one editorial grid, from purpose to practical reading. */
body[data-layout="about"] .app-layout{max-width:1180px;padding:44px 40px 80px;}
body[data-layout="about"] .app-footer{max-width:1100px;}
.about-editorial{--purpose:#31806b;}
html[data-theme="dark"] .about-editorial{--purpose:#82d2b9;}
.about-editorial .about-kicker{font:10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--muted);margin:0;}
.about-editorial .about-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);column-gap:64px;row-gap:36px;text-align:left;padding:0 0 54px;border-bottom:1px solid var(--line);}
.about-editorial .about-hero>.about-hero-kicker{grid-column:1/-1;display:flex;align-items:center;gap:10px;width:100%;max-width:none;margin:0;font-size:10px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.about-status-dot{width:6px;height:6px;flex:none;border-radius:50%;background:var(--purpose);box-shadow:0 0 0 4px color-mix(in srgb,var(--purpose) 8%,transparent);}
.about-editorial .about-hero h1{max-width:none;margin:0;font-size:clamp(48px,5.6vw,76px);font-weight:750;line-height:1.18;letter-spacing:-.055em;text-wrap:balance;}
.about-editorial .about-hero h1[lang="en"]{font-size:clamp(40px,4.3vw,60px);line-height:1.1;letter-spacing:-.05em;text-wrap:initial;overflow-wrap:normal;}
.about-editorial .brand-good{color:var(--purpose);}
.about-hero-intro{align-self:end;padding:2px 0 4px 25px;border-left:1px solid color-mix(in srgb,var(--purpose) 32%,var(--line));}
.about-editorial .about-intro-label{font-size:12px;font-weight:600;color:var(--purpose);margin:0 0 14px;}
.about-editorial .about-meaning{font-size:16px;line-height:1.9;color:var(--muted);margin:0;max-width:380px;}
.about-hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:25px;}
.about-primary-link,.about-secondary-link{display:inline-flex;align-items:center;min-height:40px;font-size:12px;line-height:1.5;}
.about-primary-link{border-radius:6px;background:var(--text);color:var(--bg);padding:10px 15px;transition:background .2s;}
.about-primary-link:hover{background:var(--purpose);}
.about-secondary-link{color:var(--muted);}
.about-secondary-link:hover{color:var(--text);}
.about-primary-link:focus-visible,.about-secondary-link:focus-visible,.about-reference-link:focus-visible,.about-editorial .about-channel:focus-visible{outline:2px solid var(--purpose);outline-offset:4px;}
.about-editorial .about-approach,.about-editorial .about-sections{padding-top:48px;}
.about-section-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:56px;row-gap:10px;align-items:end;margin-bottom:26px;}
.about-section-heading>.about-kicker{grid-column:1/-1;}
.about-section-heading h2{font-size:clamp(24px,2.5vw,31px);line-height:1.35;letter-spacing:-.04em;font-weight:650;margin:0;}
.about-section-heading .about-section-copy{font-size:13px;line-height:1.8;color:var(--muted);margin:0;max-width:400px;justify-self:end;}
.about-editorial .good-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.about-editorial .good-value{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:26px 28px;}
.about-editorial .good-value:first-child{padding-left:0;}
.about-editorial .good-value:last-child{padding-right:0;border-right:0;}
.about-editorial .good-value .value-step{font:10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.035em;color:var(--muted);}
.about-editorial .good-value h3{font-size:27px;line-height:1.3;font-weight:650;letter-spacing:-.04em;color:var(--text);margin:18px 0 12px;}
.about-editorial .good-value p{font-size:14px;line-height:1.8;max-width:290px;text-wrap:pretty;}
.about-editorial .about-sections{scroll-margin-top:110px;}
.about-editorial .about-channels{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.about-editorial .about-channel{padding:23px 21px 24px;border:1px solid var(--line);border-radius:10px;background:transparent;transition:background .22s,border-color .22s,transform .22s;}
.about-channel-index{display:block;font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;color:var(--muted);margin-bottom:22px;}
.about-channel-arrow{position:absolute;right:21px;top:21px;color:var(--muted);font-size:17px;transition:transform .22s,color .22s;}
.about-channel-brand{display:block;font-size:23px;font-weight:700;line-height:1.1;letter-spacing:-.03em;color:var(--text);margin-bottom:10px;}
.about-editorial .about-channel h3[lang]{font-size:14px;line-height:1.5;font-weight:600;letter-spacing:0;color:var(--ch);margin:0 0 13px;}
html[data-theme="dark"] .about-editorial .about-channel h3[lang]{color:color-mix(in srgb,var(--ch),white 45%);}
.about-editorial .about-channel p{font-size:13px;line-height:1.8;max-width:none;color:var(--muted);}
.about-editorial .about-channel:hover{border-color:color-mix(in srgb,var(--ch) 40%,var(--line));background:color-mix(in srgb,var(--ch) 3%,var(--bg));transform:translateY(-2px);}
.about-editorial .about-channel:hover .about-channel-arrow{color:var(--text);transform:translate(2px,-2px);}
.about-editorial .scope-note{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;max-width:none;margin:52px 0 0;padding:30px 0 0;border-top:1px solid var(--line);}
#what-we-believe{scroll-margin-top:110px;}
.scope-heading h2{font-size:24px;line-height:1.45;font-weight:600;letter-spacing:-.03em;max-width:340px;margin:15px 0 0;text-wrap:balance;}
.about-editorial .scope-body p{font-size:14px;line-height:1.9;margin:0 0 18px;max-width:none;}
.about-editorial .scope-body p:last-child{margin-bottom:0;}
.about-reference-link{display:inline-flex;min-height:36px;align-items:center;font-size:12px;color:var(--purpose);}
@media(max-width:900px){
 .about-editorial .about-hero{column-gap:36px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);}
 .about-editorial .about-hero h1{font-size:58px;}
 .about-editorial .about-hero h1[lang="en"]{font-size:44px;}
 .about-editorial .about-channels{grid-template-columns:repeat(2,minmax(0,1fr));}
 .about-editorial .good-value{padding:24px 20px;}
 .about-editorial .scope-note{gap:36px;}
}
@media(max-width:650px){
 body[data-layout="about"] .app-layout{padding:25px 20px 48px;}
 body[data-layout="about"] .app-footer{margin:0 20px;}
 .about-editorial .about-hero{grid-template-columns:1fr;row-gap:24px;padding-bottom:34px;}
 .about-editorial .about-hero>.about-hero-kicker{font-size:9px;letter-spacing:.04em;align-items:flex-start;line-height:1.8;padding-bottom:17px;}
 .about-status-dot{margin-top:5px;}
 .about-editorial .about-hero h1{font-size:clamp(44px,11vw,62px);letter-spacing:-.05em;line-height:1.18;}
 .about-editorial .about-hero h1[lang="en"]{font-size:clamp(35px,8.5vw,48px);line-height:1.13;letter-spacing:-.045em;}
 .about-hero-intro{padding:0 0 0 17px;}
 .about-editorial .about-intro-label{margin-bottom:10px;}
 .about-editorial .about-meaning{font-size:14px;line-height:1.85;max-width:none;}
 .about-hero-actions{margin-top:18px;gap:18px;}
 html[data-language="en"] .about-hero-actions{flex-direction:column;align-items:flex-start;gap:4px;}
 .about-editorial .about-approach,.about-editorial .about-sections{padding-top:34px;}
 .about-section-heading{grid-template-columns:1fr;row-gap:9px;margin-bottom:20px;}
 .about-section-heading h2{font-size:25px;}
 .about-section-heading .about-section-copy{font-size:13px;justify-self:start;max-width:none;}
 .about-editorial .good-values{grid-template-columns:1fr;}
 .about-editorial .good-value,.about-editorial .good-value:first-child,.about-editorial .good-value:last-child{display:grid;grid-template-columns:95px minmax(0,1fr);column-gap:16px;padding:22px 0;border-right:0;border-bottom:1px solid var(--line);}
 .about-editorial .good-value:last-child{border-bottom:0;}
 .about-editorial .good-value .value-step{grid-column:1/-1;margin-bottom:13px;font-size:9px;}
 .about-editorial .good-value h3{font-size:24px;margin:0;}
 .about-editorial .good-value p{font-size:13px;max-width:none;}
 html[data-language="en"] .about-editorial .good-value{grid-template-columns:1fr;}
 html[data-language="en"] .about-editorial .good-value h3{margin-bottom:10px;}
 .about-editorial .about-channels{grid-template-columns:1fr;gap:10px;}
 .about-editorial .about-channel{padding:20px;}
 .about-channel-index{margin-bottom:16px;}
 .about-editorial .scope-note{grid-template-columns:1fr;gap:20px;margin-top:34px;padding-top:25px;}
 .scope-heading h2{font-size:23px;max-width:none;margin-top:12px;}
}
@media(prefers-reduced-motion:reduce){.about-editorial *{transition:none!important;}.about-editorial .about-channel:hover{transform:none;}}

/* reading-typography.css */
/* One reading scale powers the real article and the settings preview. */
:root{--read-title:clamp(32px,calc(var(--reading) * 2.5),60px);--read-deck:calc(var(--reading) * 1.04);--read-subhead:calc(var(--reading) * 1.4);}
.reader-header h1,.news-reading h1,.typography-preview .reading-sample-title{font-size:var(--read-title);line-height:1.18;letter-spacing:-.04em;text-wrap:pretty;}
.reader-deck,html[data-theme="light"] .reader-deck,.typography-preview .reading-sample-deck{font-size:var(--read-deck);line-height:1.7;}
.article-body,html[data-theme="light"] .article-body,.typography-preview .reading-sample-body{font-size:var(--reading);line-height:1.85;overflow-wrap:break-word;}
.article-body :is(p,li),.typography-preview .reading-sample-body p{font-size:inherit;line-height:inherit;}
.article-body p,.typography-preview .reading-sample-body p{margin:1.15em 0;}
.article-body :is(h1,h2),.typography-preview .reading-sample-body h4{font-size:var(--read-subhead);line-height:1.4;letter-spacing:-.025em;margin:1.6em 0 .65em;font-weight:650;}
.article-body h3{font-size:calc(var(--reading) * 1.2);line-height:1.45;margin:1.5em 0 .6em;}
.article-body h4{font-size:calc(var(--reading) * 1.08);line-height:1.5;}
.overview-panel h2{font-size:var(--read-subhead);line-height:1.4;}
.overview-panel li,html[data-theme="light"] .overview-panel li{font-size:var(--reading);line-height:1.85;margin-bottom:.85em;}
.editorial-question h3{font-size:calc(var(--reading) * 1.15);line-height:1.6;}
.news-reading-summary{font-size:var(--read-deck);line-height:1.85;margin:1.6em 0;}
.news-why p{font-size:var(--reading);line-height:1.85;}
.news-citations h2{font-size:var(--read-subhead);line-height:1.4;}
.settings-grid>.typography-card{grid-column:1/-1;display:grid;grid-template-columns:230px minmax(0,1fr);gap:36px;align-items:start;padding:28px;}
.settings-grid>.settings-card:has(>.segmented){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:center;}
.settings-grid>.settings-card:has(>.segmented)>h2{margin:0;}
.settings-grid>.settings-card:has(>.segmented)>p{margin:8px 0 0;}
.settings-grid>.settings-card:has(>.segmented)>.segmented{grid-column:2;grid-row:1/3;}
.typography-options>h2{margin-top:0;}
.typography-options>p{font-size:13px;line-height:1.85;color:var(--muted);margin:12px 0 20px;}
.size-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.size-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:85px;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted);cursor:pointer;font:inherit;padding:12px 6px;}
.size-options .size-label{display:grid;place-items:center;height:27px;font-weight:550;}
.size-options .size-value{font:10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;}
.size-options button[aria-pressed="true"]{color:var(--text);border-color:var(--text);background:color-mix(in srgb,var(--text) 5%,var(--bg));box-shadow:inset 0 0 0 1px var(--text);}
.size-options button:hover{color:var(--text);border-color:var(--text);}
.size-options button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.typography-options .size-status{font:10px/1.8 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);margin:17px 0 10px;}
.typography-options .size-save-note{font-size:12px;line-height:1.8;margin:0;color:var(--muted);}
.typography-preview{border-left:1px solid var(--line);padding:0 0 0 30px;min-width:0;}
.typography-preview .type-preview-label{font-size:10px;letter-spacing:.06em;line-height:1.6;color:var(--muted);margin:0 0 23px;}
.typography-preview .reading-sample-title{font-weight:750;color:var(--text);margin:0 0 .4em;}
.typography-preview .reading-sample-deck{color:var(--muted);margin:0 0 1.5em;}
.typography-preview .reading-sample-body{font-family:Georgia,"Songti SC",serif;color:var(--text);}
.typography-preview .reading-sample-body h4{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,"PingFang SC",sans-serif;}
.typography-preview .reading-sample-body p:last-child{margin-bottom:0;}
@media(max-width:650px){
 :root{--read-title:clamp(28px,calc(var(--reading) * 1.65),42px);}
 .settings-grid>.typography-card{grid-template-columns:1fr;gap:25px;padding:23px 20px;}
 .settings-grid>.settings-card:has(>.segmented){grid-template-columns:1fr;}
 .settings-grid>.settings-card:has(>.segmented)>.segmented{grid-column:1;grid-row:auto;justify-self:start;margin-top:18px;}
 .typography-preview{border-left:0;border-top:1px solid var(--line);padding:23px 0 0;}
 .size-options button{min-height:78px;}
 .article-body :is(h1,h2),.typography-preview .reading-sample-body h4{font-size:calc(var(--reading) * 1.3);}
 .reader-header h1,.news-reading h1{overflow-wrap:break-word;}
}

/* discovery-toolbar.css */
/* Clear topic shortcuts and one consistent, labelled filter surface. */
#main .discovery-topics{display:block;margin:0 0 26px;padding:0;overflow:visible;}
.discovery-topic-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.5;}
.discovery-all-topics{font-size:11px;color:var(--muted);min-height:28px;display:inline-flex;align-items:center;}
.discovery-all-topics:hover{color:var(--text);}
.discovery-topic-links{display:flex;flex-wrap:wrap;gap:8px;}
#main .discovery-topics .topic-chip{display:inline-flex;align-items:center;justify-content:center;min-height:36px;max-width:100%;margin:0;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg) 80%,transparent);font-size:13px;line-height:1.4;font-weight:500;letter-spacing:0;color:var(--muted);text-decoration:none;transition:background .2s,border-color .2s,color .2s;}
#main .discovery-topics .topic-chip:hover,#main .discovery-topics .topic-chip.active{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--bg));color:var(--accent);}
.discovery-topics a:focus-visible,.discovery-reset:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
#main .discovery-heading{margin:26px 0 16px;padding:0;align-items:baseline;gap:16px;}
#main .discovery-heading h2{font-size:25px;line-height:1.3;letter-spacing:-.04em;}
#main .discovery-heading>span{font-size:11px;line-height:1.6;color:var(--muted);}
#main .discovery-toolbar{display:block;margin:0 0 24px;padding:18px 18px 0;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 75%,transparent);}
#main .discovery-toolbar .discovery-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;align-items:start;}
.discovery-field{display:flex;flex-direction:column;gap:8px;min-width:0;}
.discovery-field>span{font-size:11px;font-weight:500;line-height:1.4;color:var(--muted);}
#main .discovery-field select{width:100%;max-width:100%;min-width:0;min-height:42px;border:1px solid var(--line);border-radius:7px;background-color:var(--bg);font-size:13px;line-height:1.5;color:var(--text);padding:9px 30px 9px 11px;cursor:pointer;}
#main .discovery-field select:focus,#main .discovery-field select:focus-visible{outline:none;box-shadow:none;}
.discovery-filter-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:51px;margin-top:17px;border-top:1px solid var(--line);}
#main .discovery-filter-footer .filter-summary{font-size:12px;line-height:1.6;color:var(--muted);margin:0;padding:10px 0;}
.discovery-reset{flex-shrink:0;display:inline-flex;align-items:center;min-height:36px;background:none;border:0;padding:6px 0 6px 12px;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;}
.discovery-reset:hover{text-decoration:underline;text-underline-offset:4px;}
@media(max-width:650px){
 #main .discovery-topics{margin:0 0 24px;}
 .discovery-topic-links{gap:7px;}
 #main .discovery-topics .topic-chip{min-height:38px;font-size:12px;padding:8px 11px;}
 #main .discovery-heading{margin-top:24px;gap:10px;flex-wrap:wrap;}
 #main .discovery-heading h2{font-size:23px;}
 #main .discovery-heading>span{font-size:10px;}
 #main .discovery-toolbar{padding:15px 14px 0;}
 #main .discovery-toolbar .discovery-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px;}
 .discovery-field:last-child:nth-child(odd){grid-column:1/-1;}
 #main .discovery-field select{font-size:13px;min-height:44px;}
 #main .discovery-filter-footer .filter-summary{font-size:11px;}
 .discovery-reset{font-size:11px;}
}
@media(max-width:380px){#main .discovery-toolbar .discovery-filter-grid{grid-template-columns:1fr;}.discovery-field:last-child:nth-child(odd){grid-column:auto;}.discovery-filter-footer{align-items:flex-start;flex-wrap:wrap;gap:0;}.discovery-reset{margin-left:auto;}}
@media(prefers-reduced-motion:reduce){#main .discovery-topics .topic-chip{transition:none;}}

/* navigation-refinement.css */
/* System typography, restrained materials and grouped navigation. */
:root,html[data-theme="light"]{--bg:#fff;--panel:#fff;--panel2:#f5f5f7;--text:#1d1d1f;--muted:#6e6e73;--line:#dedee3;--nav-surface:rgba(255,255,255,.82);--nav-hover:rgba(0,0,0,.035);}
html[data-theme="dark"]{--bg:#101012;--panel:#1c1c1e;--panel2:#2c2c2e;--text:#f5f5f7;--muted:#a1a1a6;--line:#38383c;--nav-surface:rgba(28,28,30,.88);--nav-hover:rgba(255,255,255,.055);}
body[data-layout="feed"]{background:radial-gradient(ellipse 800px 700px at 0 100px,color-mix(in srgb,var(--accent) 5%,transparent),transparent 80%) fixed,var(--panel2);}
body[data-layout="reader"]{background:radial-gradient(ellipse 1000px 400px at 50% 0,color-mix(in srgb,var(--accent) 6%,transparent),transparent 90%) no-repeat,var(--bg);}
.app-header,body:not([data-layout="feed"]) .app-header,body[data-layout="reader"] .app-header{background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent);}
.app-header .header-inner{min-height:80px;padding:18px 28px;gap:18px;}
.app-header .brand>span{font-size:23px;letter-spacing:-.9px;}
.app-header .brand small{font-size:22px;color:var(--muted);}
.app-header .header-search{background:var(--nav-hover);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);max-width:360px;}
.app-header .subscribe-button,.app-header .account-button{font-size:13px;min-height:38px;padding:8px 18px;border-width:1px;}
.app-header .subscribe-button{background:var(--text);border-color:var(--text);color:var(--bg);}
.app-header .account-button{background:transparent;}
.app-header .language-toggle{min-height:36px;background:transparent;}
.brand-strip,html[data-theme="light"] .brand-strip{min-height:38px;padding:7px 28px;background:color-mix(in srgb,var(--bg) 80%,transparent);color:var(--muted);border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:12px;}
.brand-strip .strip-star{font-size:17px;color:var(--accent);}
.brand-strip a{background:var(--nav-hover);color:var(--text);font-size:11px;}
body[data-layout="feed"] .app-layout{grid-template-columns:248px minmax(0,1fr);gap:32px;padding:22px 24px 56px 20px;}
.desktop-rail{top:98px;max-height:calc(100dvh - 156px);padding:12px 10px 14px;border:1px solid color-mix(in srgb,var(--line) 60%,transparent);border-radius:18px;background:var(--nav-surface);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);box-shadow:0 4px 24px rgba(0,0,0,.025);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 30%,transparent) transparent;}
.desktop-rail .rail-block{margin:0 0 14px;padding:0;border:0;}
.desktop-rail .rail-navigation{margin-top:0;}
.desktop-rail .rail-home{font-size:14px;font-weight:600;line-height:1.5;min-height:38px;width:100%;padding:8px 12px;gap:10px;border-radius:9px;margin:0 0 7px;box-sizing:border-box;}
.desktop-rail .home-symbol{font-size:17px;line-height:1;color:var(--accent);}
.desktop-rail .rail-home.active{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text);}
.desktop-rail .rail-block h2{font-size:11px;font-weight:600;line-height:1.5;letter-spacing:.025em;color:var(--muted);padding:0 12px;margin:0 0 7px;}
.desktop-rail .rail-reading{padding-top:15px;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent);}
.desktop-rail .rail-link{display:flex;align-items:center;gap:10px;min-height:35px;padding:7px 12px;border-radius:9px;font-size:13px;font-weight:500;line-height:1.55;color:var(--muted);}
.rail-link>svg,.drawer-utility>svg,.drawer #drawer-nav>.drawer-utility>svg{width:17px;height:17px;flex:none;stroke-width:1.6;}
.rail-link>span,.drawer-utility>span{min-width:0;}
.desktop-rail .rail-link:hover{background:var(--nav-hover);color:var(--text);}
.desktop-rail .rail-link.active{background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--accent);}
.desktop-rail .rail-purpose{padding:16px 12px 0;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent);}
.desktop-rail .rail-purpose h2{padding:0;margin:0 0 7px;font-size:12px;letter-spacing:-.01em;color:var(--text);}
.desktop-rail .rail-copy{margin:0 0 14px;line-height:1.6;color:var(--muted);}
.desktop-rail .rail-copy .rail-slogan-zh,.desktop-rail .rail-copy .rail-slogan-en{font-size:12px;line-height:1.6;margin:0;}
.desktop-rail .rail-subscribe{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;width:100%;border:0;border-radius:9px;background:var(--text);color:var(--bg);font-size:12px;font-weight:500;padding:9px 8px;line-height:1.4;}
.rail-subscribe>svg{width:15px;height:15px;flex:none;}
.desktop-rail .rail-note{font-size:10px;line-height:1.75;color:var(--muted);margin:12px 0 0;white-space:pre-line;}
.desktop-rail .rail-bottom{padding:0 12px;gap:15px;font-size:11px;line-height:1.7;}
.desktop-rail .rail-bottom a:hover{color:var(--text);}
/* Keep the larger resting title and reveal interaction, with quieter emphasis. */
.channel-portal{padding:8px 12px;margin-bottom:2px;border-color:transparent;border-bottom:0;border-radius:10px;box-shadow:none;}
.channel-portal .portal-title[lang]{font-size:22px;font-weight:650;letter-spacing:-.025em;line-height:1.1;margin-bottom:5px;}
.channel-portal .portal-name[lang],html[data-language="en"] .channel-portal .portal-name{font-size:12px;line-height:1.5;font-weight:400;color:var(--muted);}
.channel-portal .portal-index,.channel-portal .portal-orbit{right:11px;top:14px;font-size:10px;}
.channel-portal .portal-orbit{font-size:16px;}
.channel-portal.active{background:color-mix(in srgb,var(--rail-tone) 8%,transparent);border-color:transparent;}
.channel-portal::before{background:radial-gradient(ellipse at 90% 10%,color-mix(in srgb,var(--rail-tone) 6%,transparent),transparent 75%);}
.channel-portal::after{left:12px;width:calc(100% - 24px);opacity:.45;}
.channel-portal:is(:focus-visible,.is-revealed){background:var(--nav-hover);border-color:transparent;box-shadow:none;}
.channel-portal:is(:focus-visible,.is-revealed) .portal-title[lang]{font-size:20px;letter-spacing:-.015em;}
@media(hover:hover) and (pointer:fine){.channel-portal:hover{background:var(--nav-hover);border-color:transparent;box-shadow:0 4px 12px rgba(0,0,0,.025);transform:translateY(-1px);}.channel-portal:hover .portal-title[lang]{font-size:20px;letter-spacing:-.015em;}}
@media(hover:hover) and (pointer:fine){.desktop-rail .channel-portal .portal-identity{min-height:49px;}.desktop-rail .channel-portal .portal-title[lang]{line-height:26px;}.desktop-rail .channel-portal .portal-details{display:none!important;}.desktop-rail .channel-portal:hover{transform:none;}}
@media(hover:hover) and (pointer:fine){.drawer .channel-portal:not(.is-revealed) .portal-details{display:none!important;}.drawer .channel-portal .portal-identity{min-height:49px;}.drawer .channel-portal .portal-title[lang]{line-height:26px;}}
.portal-preview{--preview-tone:var(--preview-light);position:fixed;z-index:300;pointer-events:none;width:280px;padding:19px 20px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:14px;background:var(--nav-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 35px rgba(0,0,0,.1);}
html[data-theme="dark"] .portal-preview{--preview-tone:var(--preview-dark);}
.portal-preview .preview-brand{font-size:20px;font-weight:650;letter-spacing:-.025em;color:var(--preview-tone);line-height:1.2;margin:0 0 7px;}
.portal-preview .preview-name{font-size:13px;font-weight:600;line-height:1.5;margin:0 0 12px;color:var(--text);}
.portal-preview .preview-description{font-size:13px;line-height:1.8;color:var(--muted);margin:0;}
/* One grouped navigation language on smaller screens. */
.drawer{background:var(--nav-surface);backdrop-filter:blur(24px) saturate(1.1);-webkit-backdrop-filter:blur(24px) saturate(1.1);}
.drawer::backdrop{background:rgba(0,0,0,.25);backdrop-filter:blur(4px);}
.drawer h2{font-size:23px;font-weight:650;letter-spacing:-.035em;}
.drawer-subtitle{font-size:12px;line-height:1.7;}
.drawer #drawer-nav>.drawer-channel{padding:12px;margin:0 0 3px;min-height:68px;border:1px solid transparent;border-radius:10px;}
.drawer .drawer-group-label{font-size:11px;font-weight:600;color:var(--muted);margin:20px 0 6px;padding:17px 12px 0;border-top:1px solid var(--line);}
.drawer #drawer-nav>.drawer-utility,.drawer #drawer-nav>.drawer-home{display:flex;align-items:center;gap:10px;min-height:42px;padding:9px 12px;font-size:14px;font-weight:500;line-height:1.5;border-radius:9px;}
.drawer #drawer-nav>.drawer-utility>span:last-child,.drawer #drawer-nav>.drawer-home>span:last-child{font-size:inherit;color:inherit;margin-left:0;}
.drawer #drawer-nav>.drawer-home{margin:0 0 8px;}
.drawer #drawer-nav>a.active{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);}
.drawer-account{padding:20px 12px;border-top:1px solid var(--line);}
@media(max-width:1050px){body[data-layout="feed"] .app-layout{display:block;padding:20px 24px 48px;}.desktop-rail{display:none;}}
@media(max-width:650px){
 .app-header .header-inner{min-height:70px;padding:14px 12px;gap:6px;}
 .app-header .brand>span{font-size:19px;letter-spacing:-.8px;}.app-header .brand small{font-size:17px;}
 .app-header .subscribe-button,.app-header .account-button{display:none;}
 .app-header .header-tools{gap:6px;}.app-header .language-toggle{min-height:32px;}
 .brand-strip,html[data-theme="light"] .brand-strip{padding:7px 16px;}
 body[data-layout="feed"] .app-layout{padding:18px 16px 36px;}
 .drawer{width:min(352px,calc(100vw - 28px));padding:32px 20px;}
 .drawer .portal-title[lang]{font-size:22px;}
}
@media(prefers-reduced-motion:reduce){.channel-portal:hover{transform:none;}.app-header,.desktop-rail,.drawer{scroll-behavior:auto;}}
@media(prefers-reduced-transparency:reduce){.app-header,body:not([data-layout="feed"]) .app-header,.desktop-rail,.drawer{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none;}}

/* membership.css */
html:has(body[data-layout="membership"]){scroll-behavior:auto;}
body[data-layout="membership"] .app-layout{max-width:1160px;padding:48px 32px 70px;}
body[data-layout="membership"] .app-footer{max-width:1096px;}
.membership-page{--membership-accent:#31806b;}
html[data-theme="dark"] .membership-page{--membership-accent:#82d2b9;}
.membership-hero{max-width:800px;margin:0 0 36px;}
.membership-kicker{font:10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--muted);margin:0 0 18px;}
.membership-hero h1{font-size:clamp(35px,4.2vw,57px);line-height:1.15;letter-spacing:-.045em;font-weight:700;margin:0 0 20px;text-wrap:balance;}
.membership-hero>p:not(.membership-kicker){font-size:17px;line-height:1.85;color:var(--muted);max-width:650px;margin:0;}
.membership-overview{display:flex;flex-wrap:wrap;gap:8px;margin-top:23px;}
.membership-overview span{font-size:11px;line-height:1.5;color:var(--muted);padding:6px 10px;background:var(--panel2);border-radius:6px;}
.membership-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch;}
.membership-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:18px;padding:28px;background:var(--panel);}
.membership-card.deep{border-color:var(--membership-accent);background:color-mix(in srgb,var(--membership-accent) 2%,var(--bg));}
.membership-card-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;}
.membership-card-top>span:first-child{font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);}
.membership-category{font-size:11px;line-height:1.5;color:var(--muted);padding:5px 9px;border-radius:6px;background:var(--panel2);}
.membership-card.deep .membership-category{color:var(--membership-accent);background:color-mix(in srgb,var(--membership-accent) 10%,var(--bg));}
.membership-card h2{font-size:28px;line-height:1.3;letter-spacing:-.035em;font-weight:650;margin:0 0 17px;}
.membership-promise{font-size:15px;font-weight:600;line-height:1.7;color:var(--text);margin:0 0 12px;}
.membership-description{font-size:14px;line-height:1.9;color:var(--muted);margin:0 0 23px;}
.membership-outcome{border-top:1px solid var(--line);padding:19px 0 0;margin:0 0 24px;}
.membership-outcome h3{font-size:11px;line-height:1.5;font-weight:600;color:var(--muted);margin:0 0 8px;}
.membership-outcome p{font-size:14px;line-height:1.8;color:var(--text);margin:0;}
.membership-card-bottom{margin-top:auto;}
.membership-price{min-height:90px;margin-bottom:20px;}
.membership-price strong{font-size:39px;line-height:1.2;font-weight:650;letter-spacing:-.035em;}
.membership-price>div{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;}
.membership-price span{font-size:14px;color:var(--muted);}
.membership-price .membership-price-note{font-size:13px;line-height:1.7;color:var(--muted);margin:8px 0 0;}
.membership-cta{display:flex;width:100%;align-items:center;justify-content:center;min-height:46px;border:1px solid var(--line);border-radius:9px;padding:12px 16px;background:var(--bg);color:var(--text);font:inherit;font-size:14px;font-weight:550;line-height:1.5;cursor:pointer;}
.membership-cta:hover{border-color:var(--text);background:var(--panel2);}
.membership-cta.primary{background:var(--membership-accent);color:var(--bg);border-color:var(--membership-accent);}
.membership-cta.primary:hover{filter:brightness(.93);}
.membership-notes{margin-top:28px;padding:24px 0;border-bottom:1px solid var(--line);}
.membership-notes>p{max-width:800px;font-size:13px;line-height:1.85;color:var(--muted);margin:0 0 12px;}
.membership-notes .membership-currency{font-size:12px;margin-bottom:8px;}
.membership-notes .membership-availability{font-size:12px;margin:0;color:var(--text);}
.membership-account-link{margin-top:20px;font-size:13px;}
.membership-requests{margin-top:36px;scroll-margin-top:110px;}
.membership-requests h2{font-size:25px;font-weight:600;letter-spacing:-.03em;}
.membership-request-note{font-size:13px;line-height:1.8;color:var(--muted);}
.membership-request-list>article{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 0;border-top:1px solid var(--line);}
.membership-request-list strong{font-size:16px;font-weight:550;}
.membership-request-list p{font-size:13px;color:var(--muted);margin:6px 0 0;}
.membership-request-list small{display:block;font-size:11px;color:var(--muted);margin-top:7px;}
.membership-status{font-size:12px;padding:5px 8px;background:var(--panel2);border-radius:5px;}
.membership-form-modal{max-width:680px;}
.membership-form-modal .membership-form-intro{font-size:14px;line-height:1.8;color:var(--muted);}
.membership-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.membership-field{display:flex;flex-direction:column;gap:8px;margin:0 0 17px;min-width:0;}
.membership-field>span{font-size:12px;font-weight:500;color:var(--muted);line-height:1.5;}
.membership-application .membership-field :is(input,textarea,select){width:100%;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);padding:12px;font:inherit;font-size:16px;line-height:1.6;}
.membership-application textarea{resize:vertical;min-height:110px;}
.membership-application input[readonly]{color:var(--muted);background:var(--panel2);}
.membership-quote{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;border:1px solid var(--line);border-radius:8px;padding:14px;margin:20px 0;font-size:13px;line-height:1.7;}
.membership-quote>span{color:var(--muted);}
.membership-quote code{font-size:11px;overflow-wrap:anywhere;}
.membership-form-disclosure{font-size:12px;line-height:1.8;color:var(--muted);}
@media(max-width:650px){
 body[data-layout="membership"] .app-layout{padding:28px 20px 45px;}
 body[data-layout="membership"] .app-footer{margin:0 20px;}
 .membership-hero{margin-bottom:26px;}
 .membership-kicker{font-size:9px;letter-spacing:.04em;}
 .membership-hero h1{font-size:35px;line-height:1.2;}
 .membership-hero>p:not(.membership-kicker){font-size:15px;}
 .membership-grid{grid-template-columns:1fr;gap:16px;}
 .membership-card{padding:23px 20px;border-radius:14px;}
 .membership-card h2{font-size:26px;}
 .membership-description,.membership-outcome p{font-size:14px;}
 .membership-price{min-height:0;}
 .membership-price strong{font-size:34px;}
 .membership-form-grid{grid-template-columns:1fr;gap:0;}
 .membership-request-list>article{align-items:flex-start;}
}

/* particle-original-colors.css */
/* Particle local snapshot color rules; keep AI for Good content and interactions. */
:root,html[data-theme="light"]{
 color-scheme:light;--bg:#fff;--panel:#fff;--panel2:#f5f5f5;--text:#000;--muted:#707070;--line:#d9d9d9;
 --accent:var(--page-light,#e2391d);--soft:color-mix(in srgb,var(--accent) 12%,var(--bg));
 --chip:color-mix(in srgb,var(--accent) 15%,var(--bg));--wash:color-mix(in srgb,var(--accent) 24%,var(--bg));
 --nav-surface:#fff;--nav-hover:#f3f3f3;--danger:#b62d26;
}
html[data-theme="dark"]{
 color-scheme:dark;--bg:#000;--panel:#121212;--panel2:#202020;--text:#fff;--muted:#aaa;--line:#333;
 --accent:var(--page-dark,#ee8877);--soft:color-mix(in srgb,var(--accent) 16%,var(--bg));
 --chip:color-mix(in srgb,var(--accent) 20%,var(--bg));--wash:color-mix(in srgb,var(--accent) 19%,var(--bg));
 --nav-surface:#111;--nav-hover:#202020;--danger:#ffa998;
}
html,body{background-color:var(--bg);color:var(--text);}
body[data-layout="feed"]{background:radial-gradient(ellipse 1000px 900px at 0 100px,var(--wash),transparent 75%) fixed,var(--bg);}
body[data-layout="reader"]{background:radial-gradient(ellipse 1000px 500px at 50% 0,var(--wash),transparent 90%) no-repeat,var(--bg);}
body:not([data-layout="feed"]):not([data-layout="reader"]){background:var(--bg);}
.app-header,body:not([data-layout="feed"]) .app-header,body[data-layout="reader"] .app-header{background:var(--bg);border-color:var(--line);backdrop-filter:none;-webkit-backdrop-filter:none;}
body[data-layout="feed"] .app-header{background:linear-gradient(95deg,color-mix(in srgb,var(--wash) 52%,var(--bg)),var(--bg) 75%);}
.desktop-rail{background:color-mix(in srgb,var(--bg) 85%,transparent);border-color:color-mix(in srgb,var(--line) 65%,transparent);}
.drawer,.portal-preview,.modal{background:var(--bg);color:var(--text);}
html[data-theme] .app-header .subscribe-button,.desktop-rail .rail-subscribe,.primary-button{background:var(--text);border-color:var(--text);color:var(--bg);}
html[data-theme] .app-header .account-button{background:transparent;color:var(--text);}
.brand-strip,html[data-theme="light"] .brand-strip{background:linear-gradient(90deg,#8e2b5e,#3a2430 22%,#1d1c1c 52%,#25322a 78%,#2f6b46);color:#f1e6eb;}
.brand-strip .strip-star,.brand-strip a{color:#fff;}
.brand-strip a{background:#ffffff24;}
.channel-portal.active{background:color-mix(in srgb,var(--rail-tone) 12%,transparent);}
html[data-theme] .channel-portal:is(.active,:hover,:focus-visible) .portal-title[lang]{color:var(--rail-tone);}
.topic-chip,html[data-theme="light"] .topic-chip{background:var(--chip);color:var(--text);}
body[data-layout="topic"] .topic-chip,body[data-layout="topics"] .topic-chip,body[data-layout="entity"] .topic-chip{background:var(--panel2);color:var(--text);}
.article-body,html[data-theme="light"] .article-body,.overview-panel li,html[data-theme="light"] .overview-panel li{color:var(--text);}
.article-body a{color:var(--text);text-decoration:underline;text-underline-offset:.2em;}
.settings-card,.topic-tile,.editor-settings-card,.membership-card{background:var(--panel);border-color:var(--line);}
.membership-page,html[data-theme="dark"] .membership-page{--membership-accent:var(--text);}
.membership-card.deep{border-color:var(--text);background:var(--panel);}
.membership-cta.primary{background:var(--text);color:var(--bg);border-color:var(--text);}
.membership-category,.membership-card.deep .membership-category{color:var(--muted);background:var(--panel2);}
.about-editorial,html[data-theme="dark"] .about-editorial{--purpose:var(--text);}
.about-editorial .about-slogan-accent{color:var(--text);}
.modal input:not([type=checkbox]),.modal select,.modal textarea{background:var(--panel);color:var(--text);}
:focus-visible{outline-color:var(--text);}
@media(max-width:600px){.settings-grid .segmented{flex-wrap:wrap;}.settings-grid .segmented button{font-size:12px;padding:10px 9px;}}
/* Topic templates previously had a separate warm palette; align their local tokens too. */
html[data-theme="light"] body:is([data-layout="topics"],[data-layout="entity"]){--bg:#fff;--panel:#fff;--panel2:#f5f5f5;--line:#d9d9d9;--text:#000;--muted:#707070;--accent:#000;background:var(--bg);}
html[data-theme="dark"] body:is([data-layout="topics"],[data-layout="entity"]){--bg:#000;--panel:#121212;--panel2:#202020;--line:#333;--text:#fff;--muted:#aaa;--accent:#fff;background:var(--bg);}
.entity-mark.companies,.entity-mark.products,.entity-portrait.companies>img,.entity-portrait.products>img{background:#f5f5f5;}

/* footer-layout.css */
/* Brand left, three compact link groups right; source note on its own baseline. */
body .app-footer{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:start;justify-content:normal;gap:26px 48px;padding:32px 0 24px;border-top:1px solid var(--line);}
body .app-footer .footer-brand{display:block;min-width:0;width:fit-content;max-width:100%;font-size:20px;line-height:1.4;font-weight:650;letter-spacing:-.55px;white-space:nowrap;color:var(--text);}
body .app-footer .footer-brand>span[lang]{font-size:12px;font-weight:400;line-height:1.7;letter-spacing:0;margin-top:8px;color:var(--muted);white-space:normal;max-width:250px;}
body .app-footer .footer-brand>span[lang="zh-CN"]{white-space:nowrap;}
body .app-footer nav{display:grid;grid-template-columns:repeat(3,max-content);gap:0 36px;justify-self:end;align-items:start;padding:0;margin:0;min-width:0;max-width:100%;font-size:12px;line-height:1.65;color:var(--muted);}
body .app-footer .footer-link-group{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;max-width:190px;}
body .app-footer nav a{display:inline-flex;align-items:center;width:fit-content;min-height:30px;max-width:100%;padding:4px 0;line-height:1.65;text-wrap:pretty;border-radius:3px;}
body .app-footer nav a:hover{color:var(--text);text-decoration:underline;text-underline-offset:4px;}
body .app-footer nav a:focus-visible{outline:2px solid var(--text);outline-offset:4px;}
body .app-footer>p{grid-column:1/-1;max-width:none;width:auto;margin:0;padding:16px 0 0;border-top:1px solid var(--line);font-size:10px;line-height:1.8;text-align:left;color:var(--muted);}
@media(max-width:1100px){body .app-footer{grid-template-columns:minmax(160px,1fr) auto;column-gap:28px;}body .app-footer nav{column-gap:24px;}body .app-footer .footer-link-group{max-width:155px;}}
@media(max-width:800px){body .app-footer{grid-template-columns:minmax(0,1fr);gap:24px;padding:28px 0 24px;}body .app-footer nav{justify-self:start;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px;}body .app-footer .footer-link-group{max-width:none;}}
@media(max-width:520px){body .app-footer nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;font-size:13px;}body .app-footer .footer-link-group:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-items:start;}body .app-footer .footer-link-group{gap:2px;}body .app-footer nav a{min-height:40px;}body .app-footer>p{font-size:11px;}}

/* Keep account access visible in the mobile header. */
@media(max-width:650px){
 .app-header .header-tools{flex-shrink:0;}
 .app-header .account-button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;font-size:12px;line-height:1.3;flex-shrink:0;}
}
@media(max-width:480px){
 .app-header .brand small{display:none;}
 .app-header .header-tools{gap:4px;}
}
@media(max-width:390px){.app-header .brand>svg{display:none;}}
@media(max-width:360px){
 .app-header .header-inner{padding-inline:10px;gap:4px;}
 .app-header .brand>span{font-size:15px;}
 .app-header .header-tools{gap:3px;}
 .app-header .menu-button,.app-header .mobile-search{width:30px;}
 .app-header .account-button{padding:7px 8px;}
}

/* Long profiles keep their main sections together for continuous reading. */
.entity-background .person-dossier[data-profile-detail]{display:block;max-width:920px;margin-inline:auto;}
.entity-background .person-dossier[data-profile-detail]>section+section{margin-top:48px;}
.entity-background .person-dossier[data-profile-detail] h2:not(:first-child){margin-top:36px;}
.entity-background :is(#person-profile,#person-work,#person-context,#person-timeline){scroll-margin-top:120px;}
.entity-background .person-facts a{color:var(--text);}
@media(max-width:650px){.entity-profile-nav{gap:14px 20px;}.entity-background .person-dossier[data-profile-detail]>section+section{margin-top:36px;}}

.profile-entry-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;}
.profile-entry-modal #modal-title{font-size:28px;line-height:1.35;padding-right:28px;}
.profile-entry-body{font-size:16px;line-height:1.9;overflow-wrap:anywhere;}
.profile-entry-body p{margin:0 0 20px;}.profile-entry-body p:last-child{margin-bottom:0;}
.entity-background [data-profile-entry]{cursor:pointer;}
.entity-background [data-profile-entry]:focus-visible{outline:2px solid var(--text);outline-offset:4px;}
@media(max-width:650px){.profile-entry-modal{padding:28px 22px;}.profile-entry-modal #modal-title{font-size:23px;}.profile-entry-body{font-size:16px;}}

.profile-entry-modal[open]{display:flex;flex-direction:column;overflow:hidden;}.profile-entry-modal .profile-entry-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:6px;}

/* Preserve natural color for the additional people portraits. */
.entity-mark.people img[src*="/people-color-20261102/"],.entity-portrait.people>img[src*="/people-color-20261102/"]{filter:none;}

/* Privacy notice: readable policy text with an accessible section directory. */
body[data-layout="document"]:has(.privacy-document) .app-layout { max-width:1180px; }
.privacy-document { max-width:1160px; margin:0 auto; }
.privacy-hero { padding:34px 0 32px; border-bottom:1px solid var(--line); }
.privacy-hero h1 { margin:12px 0 20px; font-size:clamp(38px,5.4vw,68px); line-height:1.1; letter-spacing:-.035em; }
.privacy-lead { max-width:760px; color:var(--muted); font-size:18px; line-height:1.7; }
.privacy-meta { display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:24px; font-size:13px; color:var(--muted); }
.privacy-meta a { color:var(--text); text-underline-offset:4px; }
.privacy-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:44px; padding:32px 0 56px; align-items:start; }
.privacy-toc { position:sticky; top:110px; max-height:calc(100dvh - 130px); overflow:auto; font-size:13px; line-height:1.55; }
.privacy-toc > p { margin:0 0 14px; font-size:11px; letter-spacing:.12em; color:var(--muted); }
.privacy-toc ol { margin:0; padding-left:22px; }
.privacy-toc li { margin:0 0 11px; padding-left:2px; }
.privacy-toc a { color:var(--muted); text-decoration:none; }
.privacy-toc a:hover { color:var(--text); text-decoration:underline; text-underline-offset:4px; }
.privacy-section { scroll-margin-top:110px; padding:0 0 30px; margin-bottom:30px; border-bottom:1px solid var(--line); }
.privacy-copy .privacy-section h2 { margin-top:0; line-height:1.4; font-size:24px; }
.privacy-copy .privacy-section p { margin:14px 0; }
.privacy-section-links { display:flex; gap:12px 24px; flex-wrap:wrap; margin-top:20px; }
.privacy-section-links .text-button { padding:0; font-size:13px; line-height:1.6; text-underline-offset:4px; }
.privacy-table-wrap { max-width:100%; overflow:auto; margin-top:22px; }
.privacy-table { width:100%; border-collapse:collapse; font-size:14px; line-height:1.8; }
.privacy-table th,.privacy-table td { padding:16px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.privacy-table thead th { background:var(--panel2); font-size:12px; }
.privacy-table tbody th { min-width:110px; width:22%; font-weight:600; }
.privacy-table td { color:var(--muted); }
.privacy-table caption.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:900px){.privacy-layout { grid-template-columns:1fr; gap:26px; }.privacy-toc { position:static; max-height:none; border-bottom:1px solid var(--line); padding-bottom:22px; }.privacy-toc ol { columns:2; column-gap:28px; }.privacy-toc li { break-inside:avoid; }.privacy-hero { padding-top:22px; }}
@media(max-width:520px){.privacy-toc ol { columns:1; }.privacy-table { font-size:13px; }.privacy-table th,.privacy-table td { padding:12px 8px; }.privacy-table tbody th { min-width:72px; }.privacy-lead { font-size:16px; }.privacy-copy .privacy-section h2 { font-size:21px; }}

/* One header geometry for every route and account/language state. */
html { scrollbar-gutter:stable; }
html body[data-layout] .app-header { background:var(--bg); backdrop-filter:none; }
html body[data-layout] .app-header .header-inner { position:relative; display:flex; align-items:center; width:100%; max-width:1800px; height:80px; min-height:80px; padding:0 28px; gap:14px; margin:0 auto; }
html body[data-layout] .app-header .brand { flex:0 0 auto; gap:8px; margin:0; }
html body[data-layout] .app-header .brand>svg { display:block; width:30px; height:30px; flex:none; }
html body[data-layout] .app-header .brand>span { font-family:inherit; font-size:23px; line-height:1; letter-spacing:-1px; white-space:nowrap; }
html body[data-layout] .app-header .brand small { display:inline; font-size:22px; }
html body[data-layout] .app-header .icon-button { width:40px; height:40px; min-width:40px; padding:0; border:1px solid var(--line); border-radius:50%; }
html body[data-layout] .app-header .menu-button { display:inline-grid; border-color:transparent; }
html body[data-layout] .app-header .header-tools { display:flex; align-items:center; flex:0 0 auto; gap:10px; margin:0 0 0 auto; }
html body[data-layout] .app-header :is(.account-button,.subscribe-button,.language-toggle) { display:inline-flex; align-items:center; justify-content:center; flex:none; height:40px; min-height:40px; padding:0 10px; border:1px solid var(--line); border-radius:999px; font-family:inherit; font-size:13px; line-height:1; font-weight:600; white-space:nowrap; }
html body[data-layout] .app-header .account-button { width:104px; }
html body[data-layout] .app-header .subscribe-button { width:172px; }
html body[data-layout] .app-header .language-toggle { width:46px; min-width:46px; }
html body[data-layout] .app-header .header-search { display:flex; position:absolute; left:50%; right:auto; top:17px; transform:translateX(-50%); width:clamp(220px,calc(100vw - 880px),360px); max-width:360px; height:46px; min-height:46px; margin:0; border-radius:999px; }
html body[data-layout] .app-header .header-search input { font-size:13px; line-height:1.4; }
html body[data-layout] .app-header .mobile-search { display:none; }
@media(max-width:1100px) {
 html body[data-layout] .app-header .header-inner { height:70px; min-height:70px; padding:0 12px; gap:4px; }
 html body[data-layout] .app-header .brand { gap:4px; }
 html body[data-layout] .app-header .brand>svg { display:block; width:22px; height:22px; }
 html body[data-layout] .app-header .brand>span { font-size:17px; letter-spacing:-.7px; }
 html body[data-layout] .app-header .brand small { display:none; }
 html body[data-layout] .app-header .header-tools { gap:4px; }
 html body[data-layout] .app-header .icon-button { width:28px; min-width:28px; height:34px; border:0; border-radius:999px; }
 html body[data-layout] .app-header .mobile-search { display:inline-grid; }
 html body[data-layout] .app-header :is(.account-button,.language-toggle) { height:34px; min-height:34px; padding:0 4px; font-size:12px; }
 html body[data-layout] .app-header .account-button { width:76px; }
 html body[data-layout] .app-header .language-toggle { width:34px; min-width:34px; }
 html body[data-layout] .app-header .subscribe-button { display:none; }
 html body[data-layout] .app-header .header-search { display:none; }
 html body[data-layout].search-expanded .app-header .header-search { display:flex; left:12px; right:12px; top:12px; width:auto; max-width:none; transform:none; z-index:3; background:var(--bg); }
 html body[data-layout].search-expanded .app-header .search-close { display:block; font-size:22px; background:none; border:0; }
}
@media(max-width:370px) { html body[data-layout] .app-header .shelf-link { display:none; } }

/* Center desktop search on the viewport, independently of header controls. */
@media(min-width:1101px) {
 html { scrollbar-gutter:stable both-edges; }
 html body[data-layout] .app-header .header-inner { position:relative; }
 html body[data-layout] .app-header .header-search { left:50%; }
}

/* Hide section numbering in the home navigation. */
body[data-layout="feed"] .desktop-rail .portal-index { display:none; }

/* Center search text within the full field, with balanced icon space. */
html body[data-layout] .app-header .header-search { padding-inline:44px; }
html body[data-layout] .app-header .header-search>svg { position:absolute; left:18px; top:50%; transform:translateY(-50%); }
html body[data-layout] .app-header .header-search input { width:100%; min-width:0; text-align:center; padding-inline:0; }
html body[data-layout] .app-header .header-search .search-close { position:absolute; right:14px; top:50%; transform:translateY(-50%); }
html body[data-layout] .app-header .header-search input::-webkit-search-cancel-button { -webkit-appearance:none; }

/* Slightly stronger outlines without changing header button geometry. */
html body[data-layout] .app-header .header-tools :is(.shelf-link,.language-toggle,.subscribe-button,.account-button) { border-width:2px; border-style:solid; }

/* Match the search outline to the header buttons. */
html body[data-layout] .app-header .header-search { border-width:2px; border-style:solid; }

/* Keep the placeholder centered while typing starts beside the search icon. */
html body[data-layout] .app-header .header-search input { text-align:left; }
html body[data-layout] .app-header .header-search input::placeholder { text-align:center; }

/* Use the same solid outline as the saved and language controls. */
html body[data-layout] .app-header .header-search { border:2px solid var(--line); }

/* Reveal feed cards once as they enter the viewport; keep layout space reserved. */
.feed-grid .feed-card[data-feed-reveal="pending"] { opacity:0; }
.feed-grid .feed-card[data-feed-reveal="visible"] { animation:feed-card-reveal 480ms cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms) both; }
@keyframes feed-card-reveal { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
.feed-grid .feed-card[data-feed-reveal]:focus-within { opacity:1; animation:none; }
@media(prefers-reduced-motion:reduce) { .feed-grid .feed-card[data-feed-reveal] { opacity:1; animation:none; } }

/* Let the home background reach the browser edge without a mirrored gutter. */
@media(min-width:1101px) {
 html { scrollbar-gutter:auto; }
 html body[data-layout] .app-header .header-inner { position:static; }
 html body[data-layout] .app-header .header-search { left:50vw; }
}

/* Keep the reading-space title on two deliberate lines in either language. */
#drawer-title .drawer-brand-title { display:block; font-size:22px; line-height:1.35; }
#drawer-title .drawer-space-title { display:block; margin-top:5px; font-size:18px; line-height:1.4; letter-spacing:0; }

/* Home already exposes navigation in the desktop sidebar. */
@media(min-width:1101px) { html body[data-layout="feed"] .app-header .menu-button { visibility:hidden; pointer-events:none; } }

/* Remove section ordinals from sidebar and drawer navigation on every route. */
.channel-portal .portal-index { display:none; }

/* Keep the mobile/PWA saved control circular and aligned with header controls. */
html body[data-layout] .app-header .header-tools .shelf-link {
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  flex:none;
  border:2px solid var(--line);
  border-radius:50%;
}
@media(max-width:1100px) {
  html body[data-layout] .app-header .header-tools .shelf-link {
    width:34px;
    min-width:34px;
    height:34px;
  }
}

.account-password-reset { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.account-password-reset h3 { margin:0 0 10px; font-size:18px; }
.account-password-reset p { color:var(--muted); }

/* Shared browser / standalone PWA image attribution. */
.reader-hero-figure{margin:0 0 25px;min-width:0;max-width:100%}.reader-hero-figure .reader-hero{margin-bottom:0}.reader-image-caption{display:block;width:100%;max-width:100%;margin:5px 0 0;padding:0 0 3px;font-size:10px!important;line-height:1.5;font-weight:400;color:var(--muted,#888);white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;text-align:left}.reader-image-caption a{font-size:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px}

/* Compact colored transition with bottom-aligned copy and top bookmark. */
.feature-card::after,.feed-image::after{background:linear-gradient(180deg,transparent 59%,color-mix(in srgb,var(--story) 50%,transparent) 64%,var(--story) 70%);}
.feed-card-content,.feature-card-content{bottom:0;padding-bottom:12px;}
.feed-card > .save-button{position:absolute;top:10px;right:10px;z-index:4;width:34px;height:34px;display:grid;place-items:center;background:rgba(0,0,0,.48);border:1px solid #ffffff70;color:#fff;backdrop-filter:blur(4px);}
.feed-card > .save-button:hover,.feed-card > .save-button[aria-pressed="true"]{background:rgba(0,0,0,.75);}
.feed-card .card-footer .source-name{display:none;}

/* Mobile homepage: approved clean cards with compact summaries. */
@media(max-width:650px){
body[data-view="home"] .feed-grid{gap:22px;}
body[data-view="home"] .feed-grid .feed-card{min-height:330px;border:0;border-radius:16px;box-shadow:none;--clean-story:color-mix(in srgb,var(--story) 70%,#171b22);background:var(--clean-story);}
body[data-view="home"] .feed-grid .feed-image::after{background:linear-gradient(180deg,transparent 52%,color-mix(in srgb,var(--clean-story) 65%,transparent) 61%,var(--clean-story) 69%);}
body[data-view="home"] .feed-grid .feed-card-content{padding:16px;bottom:0;}
body[data-view="home"] .feed-grid .feed-card-content>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;line-height:1.45;opacity:.82;margin:7px 0 0;}
body[data-view="home"] .feed-grid .feed-card h3{font-size:20px;line-height:1.3;letter-spacing:-.2px;margin:8px 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
body[data-view="home"] .feed-grid .card-meta{font-size:10px;opacity:.78;}
body[data-view="home"] .feed-grid .feed-card>.save-button{width:30px;height:30px;top:12px;right:12px;border:0;background:#0006;box-shadow:none;}
}

.reader-related-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.reader-related-heading h2{margin:0}.reader-read-more{flex-shrink:0;color:inherit;font-size:14px;text-decoration:underline;text-underline-offset:5px}

/* Bound the sticky sources rail to the article, above tags and next articles. */
.reader-content-layout{grid-column:1 / -1;display:grid;grid-template-columns:inherit;column-gap:inherit;align-items:start;min-width:0}
.reader-page.sources-open .reader-content-layout{grid-template-columns:minmax(0,1fr)}
