/* ============================================================
   LANDING + CATEGORY PAGES + DISCOURSE FORUM
   Extends styles/outpost.css. Establishes the multi-category
   color system, the home hero, the category grid, the category
   subheader, and the Discourse forum widget.
   ============================================================ */

:root{
  /* Per-category tones - used by nav, category cards, headers, forum */
  --cat-enterprise-1: #6FA3FF;   /* sky blue */
  --cat-enterprise-2: #B5D0FF;
  --cat-enterprise-bg: rgba(111,163,255,0.10);

  --cat-dagnation-1: #1FFFF2;    /* electric cyan - matches existing DAG theme */
  --cat-dagnation-2: #A8FFF8;
  --cat-dagnation-bg: rgba(31,255,242,0.08);

  --cat-traders-1: #5EE6A8;      /* trading green */
  --cat-traders-2: #B4F5D2;
  --cat-traders-bg: rgba(94,230,168,0.10);

  --cat-federal-1: #FF7474;      /* federal crimson */
  --cat-federal-2: #FFB5B5;
  --cat-federal-bg: rgba(255,116,116,0.10);

  --cat-web3-1: #BFB3FF;         /* violet */
  --cat-web3-2: #D8D0FF;
  --cat-web3-bg: rgba(191,179,255,0.10);

  --cat-health-1: #FFB870;       /* warm amber */
  --cat-health-2: #FFD9A8;
  --cat-health-bg: rgba(255,184,112,0.10);

  --cat-ai-1: #F48FD0;           /* orchid magenta */
  --cat-ai-2: #FBC8EC;
  --cat-ai-bg: rgba(244,143,208,0.10);
}

/* ============================================================
   NAV - category nav items (replaces old per-section nav)
   ============================================================ */
.op-nav__sec--cat{
  gap: 0;
}
.op-nav__sec--cat .op-nav__sec-dot{
  width:6px; height:6px; display:inline-block;
  margin-right:8px; flex-shrink:0;
  background:currentColor;
  box-shadow: 0 0 8px currentColor;
}
.op-nav__sec--cat .op-nav__sec-label{ font-weight:500; }
.op-nav__sec--cat .op-nav__count{
  padding:2px 5px; border:1px solid currentColor;
  letter-spacing:0.06em; opacity:0.55;
  color: currentColor;
  margin-left:10px;
}
.op-nav__sec--cat.is-active::after{ background:currentColor; }

.cn-root .op-nav__sec--enterprise{ color: var(--cat-enterprise-1); }
.cn-root .op-nav__sec--enterprise:hover,
.cn-root .op-nav__sec--enterprise.is-active{ color: var(--cat-enterprise-2); background: var(--cat-enterprise-bg); }

.cn-root .op-nav__sec--dagnation{ color: var(--cat-dagnation-1); }
.cn-root .op-nav__sec--dagnation:hover,
.cn-root .op-nav__sec--dagnation.is-active{ color: var(--cat-dagnation-2); background: var(--cat-dagnation-bg); }

.cn-root .op-nav__sec--traders{ color: var(--cat-traders-1); }
.cn-root .op-nav__sec--traders:hover,
.cn-root .op-nav__sec--traders.is-active{ color: var(--cat-traders-2); background: var(--cat-traders-bg); }

.cn-root .op-nav__sec--federal{ color: var(--cat-federal-1); }
.cn-root .op-nav__sec--federal:hover,
.cn-root .op-nav__sec--federal.is-active{ color: var(--cat-federal-2); background: var(--cat-federal-bg); }

.cn-root .op-nav__sec--web3{ color: var(--cat-web3-1); }
.cn-root .op-nav__sec--web3:hover,
.cn-root .op-nav__sec--web3.is-active{ color: var(--cat-web3-2); background: var(--cat-web3-bg); }

.cn-root .op-nav__sec--health{ color: var(--cat-health-1); }
.cn-root .op-nav__sec--health:hover,
.cn-root .op-nav__sec--health.is-active{ color: var(--cat-health-2); background: var(--cat-health-bg); }

.cn-root .op-nav__sec--ai{ color: var(--cat-ai-1); }
.cn-root .op-nav__sec--ai:hover,
.cn-root .op-nav__sec--ai.is-active{ color: var(--cat-ai-2); background: var(--cat-ai-bg); }

/* Tighten nav at narrower widths so 6 categories fit */
@media (max-width: 1280px){
  .op-nav__sec--cat{ padding: 0 11px; }
  .op-nav__sec--cat .op-nav__count{ display:none; }
}
@media (max-width: 1100px){
  .op-search{ width:200px; }
}
@media (max-width: 1024px){
  .op-nav__sec--cat{ padding: 0 9px; font-size:12px; }
}

/* ============================================================
   HERO - index.html
   ============================================================ */
.dn-hero{
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--c-line);
  padding: 80px 0 96px;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(10,55,216,0.16) 0%, transparent 60%);
}
.dn-hero__bg{ position:absolute; inset:0; opacity:0.45; pointer-events:none; }
.dn-hero__inner{ position:relative; z-index:1; max-width:1100px; }
.dn-hero__eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:12px;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--c-fg-3);
  margin-bottom:28px;
}
.dn-hero__eyebrow-dot{
  width:7px; height:7px; background:var(--op-accent);
  box-shadow:0 0 10px var(--op-accent);
}
.dn-hero__eyebrow-sep{ color:var(--c-fg-4); }
.dn-hero__h{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(48px, 6.2vw, 84px); line-height:1.02;
  letter-spacing:-0.045em; color:var(--c-fg); margin:0;
  text-wrap:balance;
}
.dn-hero__h-gray{ color:var(--c-fg-3); }
.dn-hero__lede{
  margin: 28px 0 0; max-width:760px;
  color:var(--c-fg-2); font-size:19px; line-height:1.6;
}
.dn-hero__sub{
  margin: 14px 0 0; max-width:680px;
  color:var(--c-fg-3); font-size:15px; line-height:1.65;
}
.dn-hero__cta{
  display:flex; gap:10px; margin-top:32px; flex-wrap:wrap;
}
.dn-hero__stats{
  display:grid; grid-template-columns: repeat(4, auto); gap:8px 48px;
  margin-top:48px;
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-3);
  letter-spacing:0.04em;
}
.dn-hero__stats b{
  color:var(--c-fg); font-weight:500;
  font-family:var(--font-display); font-size:28px;
  letter-spacing:-0.02em; display:block;
}

@media (max-width: 900px){
  .dn-hero{ padding: 56px 0 64px; }
  .dn-hero__stats{ grid-template-columns: repeat(2, 1fr); gap:16px 24px; }
}

/* ============================================================
   CATEGORY GRID
   ============================================================ */
.dn-cats{
  padding: 72px 0;
  border-bottom:1px solid var(--c-line);
}
.dn-cats__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:32px; margin-bottom:40px; flex-wrap:wrap;
}
.dn-cats__eyebrow{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--c-fg-3);
}
.dn-cats__h{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(32px, 4vw, 48px); letter-spacing:-0.03em;
  color:var(--c-fg); margin:8px 0 0; line-height:1.1;
}
.dn-cats__sub{
  max-width:480px; color:var(--c-fg-3);
  font-size:14px; line-height:1.6; margin:0;
}
.dn-cats__grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:0;
  border-top:1px solid var(--c-line);
  border-left:1px solid var(--c-line);
}
.dn-cat{
  display:flex; flex-direction:column; gap:14px;
  padding:28px;
  border-right:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
  text-decoration:none; color:inherit;
  transition: background var(--dur-base) var(--ease-standard);
  position:relative;
}
.dn-cat::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background: currentColor;
  opacity:0.7;
}
.dn-cat:hover{ background: rgba(255,255,255,0.025); }
.dn-cat:hover .dn-cat__arr{ transform: translateX(6px); }
.dn-cat:hover .dn-cat__cta-arr{ transform: translateX(4px); }

.dn-cat--enterprise{ color: var(--cat-enterprise-1); }
.dn-cat--dagnation { color: var(--cat-dagnation-1);  }
.dn-cat--traders   { color: var(--cat-traders-1);    }
.dn-cat--federal   { color: var(--cat-federal-1);    }
.dn-cat--web3      { color: var(--cat-web3-1);       }
.dn-cat--health    { color: var(--cat-health-1);     }
.dn-cat--ai        { color: var(--cat-ai-1);         }

.dn-cat__head{
  display:flex; align-items:center; gap:14px;
}
.dn-cat__icon{
  width:40px; height:40px; display:grid; place-items:center;
  border:1px solid currentColor;
  background: rgba(255,255,255,0.025);
}
.dn-cat__icon svg{ width:22px; height:22px; color:currentColor; }
.dn-cat__title{ flex:1; display:flex; flex-direction:column; line-height:1.2; }
.dn-cat__title b{
  color:var(--c-fg); font-family:var(--font-display); font-weight:500;
  font-size:22px; letter-spacing:-0.02em;
}
.dn-cat__title span{
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  letter-spacing:0.04em; margin-top:4px;
}
.dn-cat__arr{
  color:currentColor; font-size:18px;
  transition: transform var(--dur-base) var(--ease-standard);
}
.dn-cat__blurb{
  color:var(--c-fg-3); font-size:14px; line-height:1.55; margin:0;
}
.dn-cat__heds{
  list-style:none; padding:0; margin:8px 0 0;
  display:flex; flex-direction:column; gap:8px;
  border-top:1px solid var(--c-line); padding-top:14px;
}
.dn-cat__heds li{
  display:grid; grid-template-columns: 10px 1fr auto; gap:8px; align-items:baseline;
  font-size:13px; line-height:1.4; color:var(--c-fg-2);
}
.dn-cat__hed-bullet{ color: currentColor; font-size:9px; }
.dn-cat__hed-title{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.dn-cat__hed-meta{
  font-family:var(--font-mono); font-size:10px; color:var(--c-fg-4);
}
.dn-cat__cta{
  margin-top:auto; padding-top:14px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase;
  color: currentColor; font-weight:500;
  display:inline-flex; align-items:center; gap:6px;
}
.dn-cat__cta-arr{ transition: transform var(--dur-base) var(--ease-standard); }

@media (max-width: 1024px){ .dn-cats__grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px){  .dn-cats__grid{ grid-template-columns: 1fr; } }

/* ============================================================
   DISCOURSE FORUM WIDGET
   ============================================================ */
.dn-forum{
  padding: 72px 0 96px;
  border-bottom:1px solid var(--c-line);
  background:
    radial-gradient(ellipse 60% 100% at 0% 0%, rgba(155,140,255,0.06) 0%, transparent 50%),
    radial-gradient(ellipse 60% 100% at 100% 100%, rgba(94,230,168,0.06) 0%, transparent 50%);
}
.dn-forum__head{
  display:grid; grid-template-columns: 1fr auto; gap:32px;
  align-items:flex-end; margin-bottom:32px; flex-wrap:wrap;
}
.dn-forum__eyebrow{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--c-fg-3);
  margin-bottom:8px;
}
.dn-forum__eyebrow-pill{
  display:inline-block; padding: 3px 8px;
  background: #f0eee3; color:#231f20; font-weight:600;
  letter-spacing:0.1em;
}
.dn-forum__h{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(28px, 3.5vw, 40px); letter-spacing:-0.03em;
  color:var(--c-fg); margin:8px 0 0; line-height:1.1;
}
.dn-forum__sub{
  margin: 14px 0 0; max-width:580px;
  color:var(--c-fg-3); font-size:14px; line-height:1.6;
}
.dn-forum__head-r{
  display:flex; flex-direction:column; gap:12px; align-items:flex-end;
}
.dn-forum__stats{
  display:flex; gap:16px;
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-3);
  letter-spacing:0.04em;
}
.dn-forum__stats b{ color:var(--c-fg); font-weight:500; }
.dn-forum__signup-cta{ align-self:flex-end; }
.dn-forum__user{
  display:flex; align-items:center; gap:10px;
  padding:8px 12px; border:1px solid var(--c-line);
  background:rgba(255,255,255,0.02);
}
.dn-forum__user > div{ display:flex; flex-direction:column; line-height:1.2; }
.dn-forum__user b{ color:var(--c-fg); font-weight:500; font-size:13px; }
.dn-forum__user span{ font-family:var(--font-mono); font-size:10px; color:var(--c-success); letter-spacing:0.04em; }

/* Board layout */
.dn-forum__board{
  display:grid; grid-template-columns: 240px 1fr; gap:0;
  border:1px solid var(--c-line);
  background: rgba(255,255,255,0.012);
}

/* Category sidebar */
.dn-forum__cats{
  display:flex; flex-direction:column;
  border-right:1px solid var(--c-line);
  background: rgba(0,0,0,0.18);
}
.dn-forum__cats-h{
  padding:14px 18px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--c-fg-4);
  border-bottom:1px solid var(--c-line);
}
.dn-forum__cat{
  display:grid; grid-template-columns: 12px 1fr auto; gap:10px; align-items:center;
  padding:12px 18px;
  background:transparent; border:0;
  border-bottom:1px solid var(--c-line);
  font-family:var(--font-body); font-size:13px;
  text-align:left; cursor:pointer; color:var(--c-fg-3);
  transition: background var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard);
}
.dn-forum__cat:hover{ color:var(--c-fg); background:rgba(255,255,255,0.025); }
.dn-forum__cat-dot{
  width:8px; height:8px; background: currentColor; display:inline-block;
  box-shadow: 0 0 8px currentColor;
}
.dn-forum__cat-label{ flex:1; }
.dn-forum__cat-count{
  font-family:var(--font-mono); font-size:10px; color:var(--c-fg-4);
  letter-spacing:0.04em;
}
.dn-forum__cat.is-active{
  color:var(--c-fg); background:rgba(255,255,255,0.04);
  border-left:2px solid currentColor; padding-left:16px;
}
.dn-forum__cat--enterprise{ color: var(--cat-enterprise-1); }
.dn-forum__cat--dagnation{  color: var(--cat-dagnation-1); }
.dn-forum__cat--traders{    color: var(--cat-traders-1); }
.dn-forum__cat--federal{    color: var(--cat-federal-1); }
.dn-forum__cat--web3{       color: var(--cat-web3-1); }
.dn-forum__cat--health{     color: var(--cat-health-1); }
.dn-forum__cat--ai{         color: var(--cat-ai-1); }
.dn-forum__cat--enterprise.is-active{ color: var(--cat-enterprise-2); }
.dn-forum__cat--dagnation.is-active{  color: var(--cat-dagnation-2); }
.dn-forum__cat--traders.is-active{    color: var(--cat-traders-2); }
.dn-forum__cat--federal.is-active{    color: var(--cat-federal-2); }
.dn-forum__cat--web3.is-active{       color: var(--cat-web3-2); }
.dn-forum__cat--health.is-active{     color: var(--cat-health-2); }
.dn-forum__cat--ai.is-active{         color: var(--cat-ai-2); }
.dn-forum__cats-foot{
  padding:14px 18px;
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  letter-spacing:0.04em;
}
.dn-forum__cats-foot a{ color:var(--c-fg-3); }
.dn-forum__cats-foot a:hover{ color: var(--op-accent-text); }

/* Main board */
.dn-forum__main{ display:flex; flex-direction:column; min-width:0; }
.dn-forum__main-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; border-bottom:1px solid var(--c-line);
  flex-wrap:wrap; gap:14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.025), transparent);
}
.dn-forum__crumb{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:12px; color:var(--c-fg-3);
  letter-spacing:0.04em;
}
.dn-forum__crumb a{ color:var(--c-fg-3); }
.dn-forum__crumb a:hover{ color:var(--op-accent-text); }
.dn-forum__crumb-cat{ color:var(--c-fg); font-weight:500; }
.dn-forum__crumb-cat--enterprise{ color: var(--cat-enterprise-1); }
.dn-forum__crumb-cat--dagnation{  color: var(--cat-dagnation-1); }
.dn-forum__crumb-cat--traders{    color: var(--cat-traders-1); }
.dn-forum__crumb-cat--federal{    color: var(--cat-federal-1); }
.dn-forum__crumb-cat--web3{       color: var(--cat-web3-1); }
.dn-forum__crumb-cat--health{     color: var(--cat-health-1); }
.dn-forum__crumb-cat--ai{         color: var(--cat-ai-1); }

.dn-forum__tools{
  display:flex; align-items:center; gap:0;
  border:1px solid var(--c-line);
}
.dn-forum__filter{
  padding: 7px 12px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--c-fg-3);
  border-right:1px solid var(--c-line);
  cursor:pointer;
}
.dn-forum__filter:last-of-type{ border-right:0; }
.dn-forum__filter:hover{ color:var(--c-fg); background:rgba(255,255,255,0.02); }
.dn-forum__filter.is-active{ color:var(--c-fg); background:rgba(255,255,255,0.04); }
.dn-forum__new{
  padding: 7px 14px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase;
  background: var(--op-accent); color:#fff;
  border:0; cursor:pointer; margin-left:10px;
}
.dn-forum__new:hover{ background:#2C56EA; }

/* Topic column headers */
.dn-forum__cols{
  display:grid;
  grid-template-columns: 12px 1fr 80px 80px 90px;
  gap:14px; align-items:center;
  padding:12px 20px;
  font-family:var(--font-mono); font-size:10px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--c-fg-4);
  border-bottom:1px solid var(--c-line);
}

/* Topic rows */
.dn-forum__topics{ display:flex; flex-direction:column; }
.dn-forum__topic{
  display:grid;
  grid-template-columns: 12px 1fr 80px 80px 90px;
  gap:14px; align-items:center;
  padding:16px 20px;
  border-bottom:1px solid var(--c-line);
  text-decoration:none; color:inherit;
  transition: background var(--dur-base) var(--ease-standard);
}
.dn-forum__topic:last-child{ border-bottom:0; }
.dn-forum__topic:hover{ background: rgba(255,255,255,0.02); }
.dn-forum__topic-cat{
  width:8px; height:8px; border-radius:50%;
}
.dn-forum__topic-cat--enterprise{ background: var(--cat-enterprise-1); box-shadow: 0 0 8px var(--cat-enterprise-1); }
.dn-forum__topic-cat--dagnation{  background: var(--cat-dagnation-1);  box-shadow: 0 0 8px var(--cat-dagnation-1); }
.dn-forum__topic-cat--traders{    background: var(--cat-traders-1);    box-shadow: 0 0 8px var(--cat-traders-1); }
.dn-forum__topic-cat--federal{    background: var(--cat-federal-1);    box-shadow: 0 0 8px var(--cat-federal-1); }
.dn-forum__topic-cat--web3{       background: var(--cat-web3-1);       box-shadow: 0 0 8px var(--cat-web3-1); }
.dn-forum__topic-cat--health{     background: var(--cat-health-1);     box-shadow: 0 0 8px var(--cat-health-1); }
.dn-forum__topic-cat--ai{         background: var(--cat-ai-1);         box-shadow: 0 0 8px var(--cat-ai-1); }

.dn-forum__topic-body{ min-width:0; display:flex; flex-direction:column; gap:6px; }
.dn-forum__topic-title{
  font-size:14px; line-height:1.4; color:var(--c-fg); font-weight:500;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.dn-forum__topic-pin{ font-size:12px; opacity:0.7; }
.dn-forum__topic-hot{
  padding:1px 6px; font-family:var(--font-mono); font-size:9px;
  letter-spacing:0.12em; background:var(--c-danger); color:#fff;
}
.dn-forum__topic.is-pinned .dn-forum__topic-title{ color:var(--c-fg); }
.dn-forum__topic-by{
  display:flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  letter-spacing:0.04em;
}
.dn-forum__topic-by b{ color:var(--c-fg-2); font-weight:500; }
.dn-forum__topic-av{ width:18px; height:18px; }
.dn-forum__topic-in--enterprise{ color: var(--cat-enterprise-1); }
.dn-forum__topic-in--dagnation{  color: var(--cat-dagnation-1); }
.dn-forum__topic-in--traders{    color: var(--cat-traders-1); }
.dn-forum__topic-in--federal{    color: var(--cat-federal-1); }
.dn-forum__topic-in--web3{       color: var(--cat-web3-1); }
.dn-forum__topic-in--health{     color: var(--cat-health-1); }
.dn-forum__topic-in--ai{         color: var(--cat-ai-1); }

.dn-forum__topic-n{
  font-family:var(--font-mono); font-size:13px;
  color:var(--c-fg-2); text-align:right;
}
.dn-forum__topic-act{
  font-family:var(--font-mono); font-size:11px;
  color:var(--c-fg-4); letter-spacing:0.04em;
  text-align:right;
}

.dn-forum__foot{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; border-top:1px solid var(--c-line);
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  letter-spacing:0.04em;
}
.dn-forum__foot b{ color:var(--c-fg-2); font-weight:500; }
.dn-forum__foot a{ color:var(--c-fg-3); }
.dn-forum__foot a:hover{ color:var(--op-accent-text); }

@media (max-width: 1024px){
  .dn-forum__board{ grid-template-columns: 1fr; }
  .dn-forum__cats{ flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--c-line); }
  .dn-forum__cats-h{ display:none; }
  .dn-forum__cat{ flex-shrink:0; border-bottom:0; border-right:1px solid var(--c-line); padding:14px 16px; }
  .dn-forum__cat.is-active{ border-left:0; border-bottom:2px solid currentColor; padding-left:16px; }
  .dn-forum__cats-foot{ display:none; }
  .dn-forum__cols{ grid-template-columns: 8px 1fr 60px 70px; }
  .dn-forum__cols span:nth-child(3){ display:none; }
  .dn-forum__topic{ grid-template-columns: 8px 1fr 60px 70px; }
  .dn-forum__topic > span:nth-child(4){ display:none; }
}

/* ============================================================
   SIGNUP MODAL
   ============================================================ */
.dn-modal{
  position:fixed; inset:0; z-index:50;
  background: rgba(8,10,18,0.78);
  backdrop-filter: blur(8px);
  display:grid; place-items:center;
  padding:24px;
}
.dn-modal__card{
  width:100%; max-width:480px;
  background: #1B1E29;
  border:1px solid var(--c-line);
  padding:32px;
  position:relative;
}
.dn-modal__close{
  position:absolute; right:14px; top:10px;
  background:transparent; border:0;
  color:var(--c-fg-3); font-size:24px; cursor:pointer;
  width:32px; height:32px;
}
.dn-modal__close:hover{ color:var(--c-fg); }
.dn-modal__eyebrow{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--c-fg-3);
  margin-bottom:8px;
}
.dn-modal__h{
  font-family:var(--font-display); font-weight:500;
  font-size:28px; letter-spacing:-0.02em; color:var(--c-fg);
  margin: 0 0 12px;
}
.dn-modal__sub{
  color:var(--c-fg-3); font-size:14px; line-height:1.55;
  margin: 0 0 24px;
}
.dn-modal__form{ display:flex; flex-direction:column; gap:16px; }
.dn-modal__field{
  display:flex; flex-direction:column; gap:6px;
}
.dn-modal__field > span{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--c-fg-3);
}
.dn-modal__input{
  display:flex; align-items:center;
  border:1px solid var(--c-line);
  background:var(--c-bg-sunken); height:44px;
  transition: border-color var(--dur-base) var(--ease-standard);
}
.dn-modal__input:focus-within{ border-color: var(--op-accent); }
.dn-modal__input--plain{ padding:0 14px; }
.dn-modal__input--plain input{ width:100%; height:100%; background:transparent; border:0; outline:0; color:var(--c-fg); font-size:14px; }
.dn-modal__prefix{
  padding:0 14px; height:100%;
  display:inline-flex; align-items:center;
  font-family:var(--font-mono); font-size:13px;
  color:var(--c-fg-4); border-right:1px solid var(--c-line);
}
.dn-modal__input input{
  flex:1; background:transparent; border:0; outline:0;
  padding:0 14px; color:var(--c-fg); font-size:14px; height:100%;
}
.dn-modal__check{
  display:flex; gap:10px; align-items:flex-start;
  font-size:13px; color:var(--c-fg-3); line-height:1.45;
}
.dn-modal__check input{ margin-top:3px; }
.dn-modal__check a{ color:var(--op-accent-text); }
.dn-modal__cta{ display:flex; gap:10px; margin-top:8px; }
.dn-modal__cta button{ flex:1; justify-content:center; }
.dn-modal__cta button:disabled{ opacity:0.5; cursor:not-allowed; }
.dn-modal__alt{
  font-size:13px; color:var(--c-fg-3);
  text-align:center; padding-top:16px;
  border-top:1px solid var(--c-line);
}
.dn-modal__alt a{ color:var(--op-accent-text); }

/* ============================================================
   CATEGORY HEADER - used on each category page (Enterprise, DAG
   Nation, Traders, Federal, Web3, Health & Nutrition)
   ============================================================ */
.dn-cathead{
  position:relative; overflow:hidden;
  padding: 56px 0 64px;
  border-bottom:1px solid var(--c-line);
}
.dn-cathead__bg{ position:absolute; inset:0; opacity:0.5; pointer-events:none; }
.dn-cathead__inner{ position:relative; z-index:1; }

.dn-cathead--enterprise{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(111,163,255,0.18) 0%, transparent 60%),
    #14172B;
}
.dn-cathead--dagnation{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(31,255,242,0.10) 0%, transparent 60%),
    #11151E;
}
.dn-cathead--traders{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(94,230,168,0.16) 0%, transparent 60%),
    #131F1B;
}
.dn-cathead--federal{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,116,116,0.16) 0%, transparent 60%),
    #1F1418;
}
.dn-cathead--web3{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(191,179,255,0.18) 0%, transparent 60%),
    #181527;
}
.dn-cathead--ai{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(244,143,208,0.16) 0%, transparent 60%),
    #1E1626;
}
.dn-cathead--health{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,184,112,0.16) 0%, transparent 60%),
    #1F1A14;
}

.dn-cathead__crumb{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--c-fg-3); margin-bottom:24px;
}
.dn-cathead__crumb a{ color:var(--c-fg-3); }
.dn-cathead__crumb a:hover{ color: var(--op-accent-text); }
.dn-cathead__crumb-cat{ color:var(--c-fg); font-weight:500; }

.dn-cathead--enterprise .dn-cathead__crumb-cat{ color: var(--cat-enterprise-1); }
.dn-cathead--dagnation  .dn-cathead__crumb-cat{ color: var(--cat-dagnation-1); }
.dn-cathead--traders    .dn-cathead__crumb-cat{ color: var(--cat-traders-1); }
.dn-cathead--federal    .dn-cathead__crumb-cat{ color: var(--cat-federal-1); }
.dn-cathead--web3       .dn-cathead__crumb-cat{ color: var(--cat-web3-1); }
.dn-cathead--health     .dn-cathead__crumb-cat{ color: var(--cat-health-1); }
.dn-cathead--ai         .dn-cathead__crumb-cat{ color: var(--cat-ai-1); }

.dn-cathead__h{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(40px, 5.2vw, 72px); line-height:1.0;
  letter-spacing:-0.045em; color:var(--c-fg); margin:0;
  text-wrap:balance;
}
.dn-cathead__h-dim{ color:var(--c-fg-3); }
.dn-cathead__lede{
  margin: 22px 0 0; max-width:680px;
  color:var(--c-fg-2); font-size:17px; line-height:1.6;
}
.dn-cathead__sub{
  margin: 12px 0 0; max-width:620px;
  color:var(--c-fg-3); font-size:14px; line-height:1.6;
}
.dn-cathead__meta{
  margin-top: 26px;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:12px; color:var(--c-fg-3);
  letter-spacing:0.04em;
}
.dn-cathead__meta b{ color:var(--c-fg); font-weight:500; }

/* ============================================================
   STUB-PAGE EMPTY STATE - category pages that don't have full
   content yet show an EmptyFeed instead of the dagnation feed.
   ============================================================ */
.dn-empty{
  padding: 96px 24px;
  text-align:center;
  max-width: 640px; margin: 0 auto;
}
.dn-empty__icon{
  width:64px; height:64px; margin:0 auto 24px;
  border:1px dashed var(--c-line-strong);
  display:grid; place-items:center;
  font-size:24px; color:var(--c-fg-3);
}
.dn-empty__h{
  font-family:var(--font-display); font-weight:500;
  font-size:28px; letter-spacing:-0.02em; color:var(--c-fg);
  margin: 0 0 12px;
}
.dn-empty__sub{
  color:var(--c-fg-3); font-size:14px; line-height:1.6; margin: 0 0 24px;
}

/* ============================================================
   BLANK CARDS - placeholder feed for stub category pages
   ============================================================ */
.op-card--blank{
  cursor: default;
  pointer-events:none;
  opacity: 0.55;
  transition: opacity var(--dur-base) var(--ease-standard);
}
.op-card--blank:hover{ background:transparent; }
.op-blank__pill{
  display:inline-block; width:70px; height:11px;
  background: rgba(255,255,255,0.06);
  border:1px solid var(--c-line);
}
.op-blank__pill--sm{ width:42px; height:9px; }
.op-blank__media{
  aspect-ratio: 16/9;
  border:1px solid var(--c-line);
  background:
    repeating-linear-gradient(135deg,
      rgba(255,255,255,0.02) 0 12px,
      rgba(255,255,255,0.035) 12px 24px);
  position:relative;
}
.op-blank__media::before, .op-blank__media::after{
  content:""; position:absolute;
  background: var(--c-line);
}
.op-blank__media::before{
  left:0; right:0; top:50%;
  height:1px;
}
.op-blank__media::after{
  top:0; bottom:0; left:50%;
  width:1px;
}
.op-blank__h{
  height:18px; width:90%;
  background: rgba(255,255,255,0.06);
  border:1px solid var(--c-line);
}
.op-blank__line{
  height:10px; width:100%;
  background: rgba(255,255,255,0.04);
  border:1px solid var(--c-line);
}
.op-blank__line--short{ width:60%; }

/* Subtle category-color tint on the blank card top edge */
.op-card--blank-enterprise{ border-top: 2px solid var(--cat-enterprise-1); }
.op-card--blank-dagnation { border-top: 2px solid var(--cat-dagnation-1);  }
.op-card--blank-traders   { border-top: 2px solid var(--cat-traders-1);    }
.op-card--blank-federal   { border-top: 2px solid var(--cat-federal-1);    }
.op-card--blank-web3      { border-top: 2px solid var(--cat-web3-1);       }
.op-card--blank-health    { border-top: 2px solid var(--cat-health-1);     }

/* ============================================================
   SECTION HEADER + LIVE CHAT (two-column inside .dn-cathead)
   ============================================================ */
.dn-cathead__grid{
  display:grid; grid-template-columns: minmax(0,1fr) 380px;
  gap:48px; align-items:start;
}
.dn-cathead__text{ min-width:0; }
@media (max-width: 1024px){
  .dn-cathead__grid{ grid-template-columns: 1fr; gap:32px; }
}

/* Live chat panel */
.dn-chat{
  display:flex; flex-direction:column;
  border:1px solid var(--c-line);
  background:var(--c-bg-raised);
  box-shadow: var(--shadow-overlay);
}
.dn-chat--enterprise{ --chat-accent: var(--cat-enterprise-1); }
.dn-chat--dagnation { --chat-accent: var(--cat-dagnation-1);  }
.dn-chat--traders   { --chat-accent: var(--cat-traders-1);    }
.dn-chat--federal   { --chat-accent: var(--cat-federal-1);    }
.dn-chat--web3      { --chat-accent: var(--cat-web3-1);       }
.dn-chat--health    { --chat-accent: var(--cat-health-1);     }
.dn-chat--ai        { --chat-accent: var(--cat-ai-1);         }
.dn-chat__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--c-line);
}
.dn-chat__title{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--c-fg-2);
}
.dn-chat__live-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--c-danger); box-shadow:0 0 8px var(--c-danger);
  animation: op-pulse 1.5s ease-in-out infinite;
}
.dn-chat__online{
  display:flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-3);
}
.dn-chat__online b{ color:var(--c-fg); font-weight:500; }
.dn-chat__online .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--c-success); box-shadow:0 0 8px var(--c-success);
}
.dn-chat__body{
  flex:1; overflow-y:auto;
  padding:14px 16px;
  display:flex; flex-direction:column; gap:13px;
  min-height:236px; max-height:300px;
  scrollbar-width:thin;
}
.dn-chat__msg{ display:flex; flex-direction:column; gap:3px; }
.dn-chat__msg-head{ display:flex; align-items:baseline; gap:8px; }
.dn-chat__msg-author{
  font-family:var(--font-mono); font-size:12px; font-weight:600;
  color: var(--chat-accent, var(--c-fg));
}
.dn-chat__msg-time{ font-family:var(--font-mono); font-size:10px; color:var(--c-fg-4); }
.dn-chat__msg-text{ font-size:13px; line-height:1.45; color:var(--c-fg-2); }
.dn-chat__msg--me .dn-chat__msg-author{ color: var(--op-accent-text); }
.dn-chat__foot{ border-top:1px solid var(--c-line); padding:12px 16px; }
.dn-chat__signin-row{
  display:flex; flex-direction:column; gap:10px;
}
.dn-chat__signin-note{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.04em;
  color:var(--c-fg-4); text-align:center;
}
.dn-chat__signin{ width:100%; justify-content:center; }
.dn-chat__composer{ display:flex; gap:8px; }
.dn-chat__input{
  flex:1; min-width:0; background:var(--c-bg-sunken);
  border:1px solid var(--c-line); color:var(--c-fg);
  font-family:var(--font-body); font-size:13px; padding:9px 11px; outline:none;
}
.dn-chat__input:focus{ border-color:var(--op-accent); }
.dn-chat__send{
  background:var(--op-accent); color:#fff; border:0; padding:0 14px; cursor:pointer;
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
}
.dn-chat__send:hover{ background:#2C56EA; }
.dn-chat__send:disabled{ opacity:0.45; cursor:not-allowed; }

/* ============================================================
   SECTION BLOG
   ============================================================ */
.dn-blog{
  padding: 64px 0;
  border-bottom:1px solid var(--c-line);
}
.dn-blog__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; margin-bottom:28px; flex-wrap:wrap;
}
.dn-blog__eyebrow{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase;
  color: var(--blog-accent, var(--c-fg-3));
  display:inline-flex; align-items:center; gap:8px;
}
.dn-blog__eyebrow::before{
  content:""; width:8px; height:8px; background:currentColor;
  box-shadow:0 0 8px currentColor;
}
.dn-blog__h{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(28px, 3.4vw, 40px); letter-spacing:-0.03em;
  color:var(--c-fg); margin:10px 0 0; line-height:1.1;
}
.dn-blog__all{
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--c-fg-3);
  display:inline-flex; align-items:center; gap:6px;
}
.dn-blog__all:hover{ color:var(--op-accent-text); text-decoration:none; }
.dn-blog__list{
  border-top:1px solid var(--c-line);
}
.dn-blog__post{
  display:grid; grid-template-columns: 132px minmax(0,1fr) 96px;
  gap:28px; align-items:baseline;
  padding:24px 12px; border-bottom:1px solid var(--c-line);
  text-decoration:none; color:inherit;
  transition: background var(--dur-base) var(--ease-standard);
}
.dn-blog__post:hover{ background: var(--op-accent-soft); text-decoration:none; }
.dn-blog__date{
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  letter-spacing:0.04em; padding-top:4px;
}
.dn-blog__main{ min-width:0; display:flex; flex-direction:column; gap:8px; }
.dn-blog__kicker{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.1em;
  text-transform:uppercase; color: var(--blog-accent, var(--c-fg-3));
}
.dn-blog__title{
  font-family:var(--font-display); font-weight:500;
  font-size:21px; letter-spacing:-0.02em; color:var(--c-fg);
  line-height:1.25; margin:0;
}
.dn-blog__post:hover .dn-blog__title{ color: var(--blog-accent, var(--c-fg)); }
.dn-blog__excerpt{
  color:var(--c-fg-3); font-size:14px; line-height:1.55; margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.dn-blog__read{
  font-family:var(--font-mono); font-size:11px; color:var(--c-fg-4);
  text-align:right; padding-top:4px;
}
@media (max-width: 720px){
  .dn-blog__post{ grid-template-columns: 1fr; gap:8px; }
  .dn-blog__read{ text-align:left; }
}
