/* publications.css — production Publications page, Forge design system. */
body.publications-page{--pub-ink:#f4f1ea;--pub-muted:#bcc5c2;--pub-line:rgba(188,197,194,.18);--pub-card:#151b1d;--pub-card-strong:#1b2325;--pub-accent:#bd452f;--pub-accent-2:#8db7b3;--pub-brass:#cfb772;--pub-radius:18px;--pub-shadow:0 22px 58px rgba(0,0,0,.34);--pub-serif:var(--font-sans);background:radial-gradient(circle at 18% 7%,rgba(207,183,114,.035),transparent 34rem),radial-gradient(circle at 84% 28%,rgba(141,183,179,.025),transparent 40rem),linear-gradient(180deg,#0b1112 0%,#070b0c 58%,#040607 100%)}body.publications-page::before{display:none}.pub-container{width:min(1120px,calc(100% - 48px));margin-inline:auto}
.pub-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:.72rem 1rem;border:1px solid var(--pub-line);border-radius:8px;font-weight:760;text-decoration:none;text-align:center;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.pub-btn:hover{transform:translateY(-2px);text-decoration:none}.pub-btn-primary{background:var(--pub-accent);border-color:var(--pub-accent);color:#fff}.pub-btn-primary:hover,.pub-btn-primary:focus-visible{background:#ca4c36;border-color:#ca4c36;color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.28)}.pub-btn-secondary{background:var(--pub-card);border-color:#657679;color:var(--pub-ink)}.pub-btn-secondary:hover,.pub-btn-secondary:focus-visible{background:var(--pub-card-strong);border-color:var(--pub-accent-2);color:var(--pub-ink)}
.pub-hero{position:relative;overflow:hidden;padding:clamp(1.4rem,2.8vw,2.5rem) 0 clamp(2.5rem,4.5vw,4rem)}.pub-hero::after{content:"";position:absolute;inset:10% -12% auto auto;width:42vw;height:42vw;border-radius:50%;background:radial-gradient(circle,rgba(141,183,179,.04),transparent 68%);pointer-events:none}.pub-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.5fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:end}.pub-eyebrow{display:inline-flex;align-items:center;gap:.6rem;color:var(--pub-brass);font-size:.78rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.pub-eyebrow::before{content:"";width:2.75rem;height:1px;background:var(--pub-accent)}.pub-title{margin:1rem 0 1.2rem;color:var(--pub-ink);font-size:clamp(3rem,5.8vw,5.4rem);font-weight:720;line-height:.96;letter-spacing:-.045em;text-wrap:balance}.pub-title span{display:block;margin-top:.08em;color:var(--pub-accent-2);font-style:italic;font-weight:390}.pub-kicker{max-width:760px;margin:0;color:#e2dfd8;font-size:clamp(1.1rem,2vw,1.36rem);line-height:1.5}.pub-lead{max-width:760px;margin:1rem 0 0;color:var(--pub-muted);line-height:1.72}.pub-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}.pub-proof-card{padding:1.2rem;border:1px solid var(--pub-line);border-radius:var(--pub-radius);background:var(--pub-card);box-shadow:var(--pub-shadow)}.pub-proof-card h2{margin:0 0 .45rem;font-size:1.8rem;line-height:1.05}.pub-proof-card p{margin:0 0 .9rem;color:var(--pub-muted);line-height:1.6}
.pub-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden;border:1px solid var(--pub-line);border-radius:12px;background:var(--pub-line);box-shadow:0 16px 38px rgba(0,0,0,.24)}.pub-metric{min-height:108px;padding:1.05rem;background:var(--pub-card)}.pub-metric strong{display:block;color:var(--pub-brass);font-size:clamp(2rem,4vw,3rem);line-height:.95}.pub-metric span{display:block;margin-top:.5rem;color:var(--pub-muted);font-size:.84rem;font-weight:700;line-height:1.35}
.pub-section{padding:clamp(3.3rem,6.5vw,5.5rem) 0}.pub-section-head{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:2rem;align-items:end;margin-bottom:1.6rem}.pub-section-title{margin:0;color:var(--pub-ink);font-size:clamp(2.3rem,4.8vw,4.3rem);line-height:.98;letter-spacing:-.045em}.pub-section-copy{margin:0;color:var(--pub-muted);font-size:1.02rem;line-height:1.72}.pub-feature-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:.9rem}.pub-landmark{padding:clamp(1.35rem,3vw,2.2rem);border:1px solid var(--pub-line);border-left:4px solid var(--pub-accent);border-radius:15px;background:var(--pub-card-strong);box-shadow:0 14px 34px rgba(0,0,0,.22)}.pub-landmark h3{margin:.55rem 0 .65rem;color:var(--pub-ink);font-size:clamp(1.8rem,3.5vw,3rem);line-height:1;letter-spacing:-.04em}.pub-landmark p{color:var(--pub-muted);line-height:1.7}.pub-card{display:flex;flex-direction:column;gap:.65rem;padding:1.2rem;border:1px solid var(--pub-line);border-radius:13px;background:var(--pub-card);box-shadow:0 14px 34px rgba(0,0,0,.22)}.pub-card h3{margin:.05rem 0;color:var(--pub-ink);font-size:1.14rem;line-height:1.3}.pub-card p{margin:0;color:var(--pub-muted);font-size:.94rem;line-height:1.6}.pub-card .pub-year{color:var(--pub-brass);font-size:.78rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.pub-tags{display:flex;flex-wrap:wrap;gap:.38rem}.pub-tag{padding:.29rem .5rem;border:1px solid var(--pub-line);border-radius:6px;background:var(--pub-card-strong);color:var(--pub-muted);font-size:.69rem;font-weight:800}.pub-card .pub-btn{align-self:flex-start;margin-top:auto;font-size:.86rem}
.pub-filterbar{position:sticky;top:calc(var(--nav-height) + .5rem);z-index:8;display:flex;flex-wrap:wrap;gap:.45rem;margin:1.4rem 0 1.8rem;padding:.7rem;border:1px solid var(--pub-line);border-radius:11px;background:rgba(11,17,18,.97);box-shadow:0 14px 34px rgba(0,0,0,.24)}.pub-filterbar button{min-height:40px;padding:.52rem .78rem;border:1px solid var(--pub-line);border-radius:7px;background:var(--pub-card);color:var(--pub-muted);font:inherit;font-size:.83rem;font-weight:750;cursor:pointer}.pub-filterbar button:hover,.pub-filterbar button:focus-visible{border-color:var(--pub-accent-2);color:var(--pub-ink)}.pub-filterbar button.active{border-color:var(--pub-accent);background:rgba(189,69,47,.18);color:var(--pub-ink)}.pub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.pub-final-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;margin:clamp(3rem,6vw,5rem) 0;padding:clamp(1.8rem,4vw,3.4rem);border:1px solid var(--pub-line);border-left:4px solid var(--pub-accent);border-radius:17px;background:linear-gradient(135deg,var(--pub-card-strong),var(--color-bg-alt));box-shadow:var(--pub-shadow)}.pub-final-cta h2{margin:0 0 .75rem;font-size:clamp(2.2rem,5vw,4.2rem);line-height:.96;letter-spacing:-.045em}.pub-final-cta p{max-width:660px;margin:0;color:var(--pub-muted);line-height:1.7}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.pub-card,.pub-landmark{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.pub-card:hover,.pub-landmark:hover{border-color:rgba(189,69,47,.46);transform:translateY(-3px);box-shadow:var(--pub-shadow)}}
@media(max-width:980px){.pub-hero-grid,.pub-section-head,.pub-final-cta{grid-template-columns:1fr}.pub-feature-grid{grid-template-columns:1fr}.pub-grid{grid-template-columns:repeat(2,1fr)}.pub-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.pub-container{width:min(100% - 28px,1120px)}.pub-hero{padding:1.2rem 0 2rem}.pub-hero::after{display:none}.pub-title{font-size:clamp(2.65rem,12vw,4rem)}.pub-actions{display:grid;grid-template-columns:1fr}.pub-btn{width:100%}.pub-grid{grid-template-columns:1fr}.pub-section{padding:3.2rem 0}.pub-card,.pub-landmark,.pub-proof-card{border-radius:12px}.pub-filterbar{overflow-x:auto;flex-wrap:nowrap}.pub-filterbar button{white-space:nowrap}.pub-final-cta{padding:1.25rem;border-radius:13px}}
@media(forced-colors:active){.pub-btn,.pub-card,.pub-landmark,.pub-proof-card,.pub-final-cta{border:1px solid CanvasText}}

/* =====================================================================
   V5 HERO AND NEURAL REFINEMENTS
   Controlled two-line heading aligned with the homepage treatment.
   ===================================================================== */
body.publications-page {
  --neural-opacity: 0.23;
  --neural-intensity: 1;
}
.pub-hero .pub-container { width: min(1280px, calc(100% - 48px)); }
.pub-hero-grid { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: clamp(1.5rem, 3.4vw, 3rem); align-items: center; }
.pub-title { margin: 1rem 0 1.25rem; font-size: inherit; line-height: .97; text-wrap: initial; }
.pub-title-primary,
.pub-title-secondary { display: block; }
.pub-title-primary {
  white-space: nowrap;
  color: var(--pub-ink);
  font-size: clamp(3rem, 4.6vw, 4.75rem);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -.042em;
}
.pub-title-secondary {
  margin-top: .10em;
  color: var(--pub-accent-2);
  font-size: clamp(3rem, 4.7vw, 4.85rem);
  font-style: italic;
  font-weight: 390;
  line-height: .98;
  letter-spacing: -.045em;
}
@media (max-width: 1180px) {
  .pub-title-primary { white-space: normal; }
}
@media (max-width: 680px) {
  .pub-title-primary,
  .pub-title-secondary { font-size: clamp(2.45rem, 10.5vw, 3.8rem); }
}


/* =====================================================================
   V8 MOBILE LAYOUT CORRECTIONS
   ===================================================================== */
@media (max-width: 1040px) {
  .pub-hero .pub-container {
    width: min(780px, calc(100% - 36px));
  }

  .pub-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
  }

  .pub-hero-grid > * {
    min-width: 0;
    width: 100%;
  }

  .pub-title-primary {
    white-space: normal;
  }

  .pub-proof-card {
    width: 100%;
    max-width: 780px;
    justify-self: start;
  }
}

@media (max-width: 680px) {
  .pub-hero .pub-container,
  .pub-container {
    width: calc(100% - 28px);
  }

  .pub-hero {
    padding: 1.15rem 0 1.8rem;
  }

  .pub-title {
    max-width: 100%;
    margin: .8rem 0 1rem;
  }

  .pub-title-primary,
  .pub-title-secondary {
    font-size: clamp(2.4rem, 11.8vw, 3.4rem);
    line-height: 1;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .pub-title-secondary {
    margin-top: .12em;
  }

  .pub-kicker {
    max-width: none;
    font-size: 1.05rem;
    line-height: 1.55;
  }

  .pub-lead {
    max-width: none;
    font-size: .98rem;
    line-height: 1.65;
  }

  .pub-proof-card h2 {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }

  .pub-metrics {
    grid-template-columns: 1fr;
  }

  .pub-metric {
    min-height: 0;
  }
}
