/*
Theme Name: Alussein
Theme URI: https://alussein.com
Author: Alussein
Description: Custom theme for the Alussein site. Page content lives in the database and is edited in WordPress; this theme supplies the design.
Version: 2.0
Requires at least: 6.0
Tested up to: 7.1
License: Proprietary
Text Domain: alussein
*/

/* ---------------------------------------------------------------------------
   One stylesheet for the whole site.

   Each page used to inline its own copy: eight sheets that were 94.7%-100%
   identical, ~21KB every page load, cached never. This is the union of all
   234 distinct rules, served once and cached.
   --------------------------------------------------------------------------- */

:root{
    --bg: #ffffff;
    --bg-alt: #f6f3ee;
    --bg-deep: #ede8df;
    --ink: #17140f;
    --ink-dim: #4b4436;
    --muted: #6e6555;
    --hairline: #e2ddd1;
    --amber: #a8611b;
    --amber-dim: #ecd2ab;
    --teal: #2c6469;
    --teal-dim: #bfdcde;
    --max: 1220px;
    --font-display: "Fraunces", serif;
    --font-body: "IBM Plex Sans", sans-serif;
    --font-mono: "IBM Plex Mono", monospace;
  }
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior: auto; } }
body{
    margin:0; background: var(--bg); color: var(--ink);
    font-family: var(--font-body); line-height: 1.5;
    -webkit-font-smoothing: antialiased; overflow-x: hidden;
  }
a{ color:inherit; }
::selection{ background: var(--amber); color: var(--bg-deep); }
a:focus-visible, button:focus-visible{ outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 2px; }
.grain{
    position: fixed; inset:0; pointer-events:none; z-index: 5; opacity: 0.035; mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
.cookie-banner{
    position: fixed; left:0; right:0; bottom:0; z-index: 70;
    background: var(--bg); border-top: 1px solid var(--hairline);
    box-shadow: 0 -14px 34px rgba(20,16,10,.08);
    padding: 26px 40px; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
    transform: translateY(120%); transition: transform .6s cubic-bezier(.2,.8,.2,1);
  }
.cookie-banner.show{ transform: translateY(0); }
@media (max-width: 640px){ .cookie-banner{ padding: 22px 24px; } }
.cookie-copy{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; max-width: 62ch; }
.cookie-copy .eyebrow{ font-family: var(--font-mono); font-size: 11px; letter-spacing:.12em; text-transform:uppercase; color: var(--amber); flex:none; }
.cookie-copy p{ margin:0; font-size: 14px; color: var(--ink-dim); line-height:1.6; }
.cookie-copy a{ color: var(--ink); text-decoration: underline; text-decoration-color: var(--hairline); text-underline-offset: 3px; }
.cookie-actions{ display:flex; align-items:center; gap: 18px; flex:none; }
.btn-cookie{ font-family: var(--font-mono); font-size: 12px; letter-spacing:.06em; text-transform:uppercase; padding: 12px 22px; border-radius: 3px; border: 1px solid var(--ink); background: var(--ink); color: var(--bg); cursor:pointer; transition: opacity .2s ease; }
.btn-cookie:hover{ opacity:.82; }
.btn-cookie-ghost{ font-family: var(--font-mono); font-size: 12px; letter-spacing:.06em; text-transform:uppercase; background:none; border:none; color: var(--muted); cursor:pointer; border-bottom: 1px solid var(--hairline); padding-bottom: 2px; }
.btn-cookie-ghost:hover{ color: var(--ink); }
.container{ max-width: var(--max); margin:0 auto; padding: 0 40px; }
@media (max-width:640px){ .container{ padding: 0 24px; } }
header.site-nav{
    position: fixed; top:0; left:0; right:0; z-index: 50;
    backdrop-filter: blur(10px); background: rgba(255,255,255,0.78); border-bottom: 1px solid var(--hairline);
  }
.nav-row{ display:flex; align-items:center; justify-content:space-between; padding: 20px 40px; max-width: var(--max); margin:0 auto; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand-icon{ height:19px; width:auto; display:block; flex:none; }
.brand-word{ height:15px; width:auto; display:block; }
nav.links{ display:flex; gap: 34px; }
nav.links a{ font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; text-decoration:none; color: var(--ink-dim); transition: color .2s ease; }
nav.links a:hover{ color: var(--amber); }
.nav-toggle{
    display:none; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em;
    text-transform: uppercase; color: var(--ink-dim); background:none; border:0;
    padding: 6px 2px; cursor:pointer; line-height:1;
  }
.nav-toggle:hover{ color: var(--amber); }
/* Below 760px the desktop nav BECOMES the panel — it is not duplicated.
     Every page points its own nav entry at #top, so a second copy of this
     markup would be five copies that drift. */
@media (max-width: 760px){
    .nav-toggle{ display:block; }
    nav.links{
      display:flex; flex-direction:column; gap:0;
      /* absolute against header.site-nav, which is fixed and therefore the
         containing block — so top:100% sits exactly under the bar with no
         hard-coded header height to go stale. */
      position:absolute; top:100%; left:0; right:0;
      background: var(--bg); border-bottom: 1px solid var(--hairline);
      padding: 0 24px 12px;
      opacity:0; visibility:hidden; transform: translateY(-6px);
      transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
    }
    .site-nav.nav-open nav.links{
      opacity:1; visibility:visible; transform:none;
      transition: opacity .2s ease, transform .2s ease, visibility 0s;
    }
    nav.links a{ padding: 15px 2px; border-top: 1px solid var(--hairline); font-size: 13px; }
  }
@media (prefers-reduced-motion: reduce){ nav.links{ transition: none !important; } }
/* section rail / editorial grid */
section{ padding: 176px 0; position: relative; }
@media (max-width: 760px){ section{ padding: 108px 0; } }
section.alt{ background: var(--bg-alt); }
.section-grid{ display:grid; grid-template-columns: 232px 1fr; gap: 56px; }
@media (max-width: 900px){ .section-grid{ grid-template-columns: 1fr; gap: 28px; } }
.rail{ position: sticky; top: 140px; align-self:start; }
@media (max-width: 900px){ .rail{ position: static; } }
.slate{ font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); display:flex; align-items:baseline; gap:6px; white-space: nowrap; }
.slate::before{ content:"["; color: var(--amber); }
.slate::after{ content:"]"; color: var(--teal); }
h2.section-title{ font-family: var(--font-display); font-weight: 500; font-size: clamp(30px, 4vw, 48px); margin: 0 0 40px; max-width: 17ch; letter-spacing: -0.01em; }
.eyebrow-sub{ font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); letter-spacing: .04em; margin-bottom: 28px; max-width: 52ch; }
/* reveal: focus-pull motion (blur -> sharp) */
.reveal{ opacity: 0; transform: translateY(26px); filter: blur(6px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform: translateY(0); filter: blur(0); }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; filter:none; transition:none; } }
/* placeholder frame (ref-frame device) */
.frame-placeholder{
    position: relative; border: 1px solid var(--hairline); border-radius: 2px; overflow:hidden;
    background:
      radial-gradient(circle at 30% 20%, rgba(168,97,27,.12), transparent 55%),
      radial-gradient(circle at 75% 80%, rgba(44,100,105,.14), transparent 55%),
      var(--bg-deep);
    display:flex; align-items:center; justify-content:center;
  }
.frame-placeholder .corner{ position:absolute; width:16px; height:16px; border-color: var(--muted); opacity:.7; }
.frame-placeholder .corner.tl{ top:10px; left:10px; border-top:1px solid; border-left:1px solid; }
.frame-placeholder .corner.tr{ top:10px; right:10px; border-top:1px solid; border-right:1px solid; }
.frame-placeholder .corner.bl{ bottom:10px; left:10px; border-bottom:1px solid; border-left:1px solid; }
.frame-placeholder .corner.br{ bottom:10px; right:10px; border-bottom:1px solid; border-right:1px solid; }
.frame-placeholder .cap{ font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); text-align:center; }
.frame-art{ position:absolute; inset:0; width:100%; height:100%; }
.frame-art svg{ width:100%; height:100%; display:block; }
/* HERO */
.hero{ min-height: 100vh; display:flex; align-items:center; padding-top: 130px; position:relative; }
.hero-spot{ position:absolute; inset:0; pointer-events:none; background: radial-gradient(480px circle at var(--mx,50%) var(--my,30%), rgba(168,97,27,.08), transparent 60%); transition: background .1s linear; }
.hero-grid{ display:block; position:relative; z-index:2; }
.render-line{ font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); text-transform: uppercase; margin-bottom: 32px; display:flex; align-items:center; gap:12px; }
.render-track{ width: 140px; height: 2px; background: var(--hairline); position: relative; overflow:hidden; }
.render-fill{ position:absolute; left:0; top:0; bottom:0; width:0%; background: linear-gradient(90deg, var(--amber), var(--teal)); animation: renderfill 1.4s ease forwards; }
@keyframes renderfill{ to{ width: 100%; } }
@media (prefers-reduced-motion: reduce){ .render-fill{ animation:none; width:100%; } }
.hero h1{ font-family: var(--font-display); font-weight: 500; font-size: clamp(42px, 6.6vw, 88px); line-height: 1.0; letter-spacing: -0.01em; margin: 0 0 32px; }
.hero h1 em{ font-style: italic; color: var(--amber); }
.hero .sub{ font-size: 19px; color: var(--ink-dim); max-width: 46ch; margin: 0 0 20px; font-weight: 400; line-height:1.6; }
.hero .tagline{ font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); letter-spacing:.08em; text-transform:uppercase; margin: 0 0 48px; }
.hero .meta-row{ display:flex; align-items:center; gap: 30px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 13px; color: var(--muted); letter-spacing: .04em; }
.cta{ display:inline-flex; align-items:center; gap:8px; font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal); text-decoration:none; border-bottom: 1px solid var(--teal-dim); padding-bottom: 4px; transition: color .2s ease, border-color .2s ease; }
.cta:hover{ color: var(--ink); border-color: var(--ink); }
.hero .frame-placeholder{ aspect-ratio: 4/5; will-change: transform; }
/* ABOUT */
.lede{ font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: clamp(24px, 3vw, 34px); line-height: 1.32; color: var(--ink); margin: 0 0 36px; max-width: 30ch; }
.about-body p{ color: var(--ink-dim); font-size: 16.5px; line-height: 1.8; margin: 0 0 20px; max-width: 62ch; }
.about-body strong{ color: var(--ink); font-weight: 500; }
.pullquote{ margin: 48px 0 0; padding-left: 26px; border-left: 2px solid var(--amber-dim); max-width: 46ch; }
.pullquote p{ font-family: var(--font-display); font-style: italic; font-size: clamp(20px,2.4vw,26px); line-height:1.4; color: var(--ink); margin: 0 0 10px; }
.pullquote span{ font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); letter-spacing:.04em; }
/* THE GAP */
.gap-intro{ font-size: 17px; color: var(--ink-dim); max-width: 58ch; line-height:1.75; margin: 0 0 64px; }
.gap-columns{ display:grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 64px; }
@media (max-width: 700px){ .gap-columns{ grid-template-columns: 1fr; gap:40px; } }
.gap-col h4{ font-family: var(--font-mono); font-size: 12px; letter-spacing:.1em; text-transform:uppercase; margin: 0 0 22px; display:flex; align-items:center; gap:10px; }
.gap-col h4 .dot{ width:7px; height:7px; border-radius:50%; display:inline-block; }
.gap-col.ai h4 .dot{ background: var(--teal); }
.gap-col.cinema h4 .dot{ background: var(--amber); }
.gap-col ul{ list-style:none; margin:0; padding:0; }
.gap-col li{ font-family: var(--font-display); font-size: 21px; color: var(--ink-dim); padding: 14px 0; border-bottom: 1px solid var(--hairline); }
.gap-col.cinema li{ color: var(--ink); }
.gap-close{ font-family: var(--font-display); font-style: italic; font-size: clamp(21px,2.6vw,28px); line-height:1.45; max-width: 42ch; color: var(--ink); }
.gap-close-cap{ font-family: var(--font-mono); font-size: 11px; letter-spacing:.12em; text-transform:uppercase; color: var(--muted); margin-top:20px; }
/* ECOSYSTEM */
.pillars{ display:grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 20px; align-items:center; margin-bottom: 80px; }
@media (max-width: 820px){ .pillars{ grid-template-columns: 1fr; } .pillar-arrow{ transform: rotate(90deg); margin: 6px 0; } }
.pillar{ padding: 8px 0; }
.pillar .n{ font-family: var(--font-mono); font-size: 11px; color: var(--muted); letter-spacing:.1em; text-transform:uppercase; display:block; margin-bottom:12px; }
.pillar h4{ font-family: var(--font-display); font-weight:500; font-size: 24px; margin:0 0 10px; }
.pillar p{ color: var(--muted); font-size: 14.5px; margin:0; }
.pillar.engine h4{ color: var(--amber); }
.pillar-arrow{ font-family: var(--font-mono); color: var(--muted); font-size: 20px; text-align:center; }
.definition{ border-top: 1px solid var(--hairline); padding-top: 40px; max-width: 60ch; }
.definition .term{ display:flex; align-items:baseline; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.definition .term span.word{ font-family: var(--font-display); font-style:italic; font-size: 26px; }
.definition .term span.pos{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.definition p{ color: var(--ink-dim); font-size: 16px; line-height: 1.75; margin: 0; }
.definition p.phonetic{ font-family: var(--font-mono); font-size: 15px; color: var(--muted); letter-spacing:.02em; }
.definition .steps{ display:flex; gap: 22px; margin-top: 22px; flex-wrap:wrap; font-family: var(--font-mono); font-size: 12px; letter-spacing:.08em; text-transform:uppercase; color: var(--teal); }
.ecosystem-close{ font-family: var(--font-mono); font-size: 13px; letter-spacing:.06em; color: var(--muted); margin-top: 40px; text-transform:uppercase; }
/* CAPABILITY - editorial list */
.cap-list{ display:flex; flex-direction:column; }
.cap-item{ display:grid; grid-template-columns: 90px 1fr; gap: 32px; padding: 40px 0; border-bottom: 1px solid var(--hairline); }
.cap-item:first-child{ padding-top:0; }
@media (max-width:600px){ .cap-item{ grid-template-columns: 1fr; gap:12px; } }
.cap-item .num{ font-family: var(--font-mono); font-size: 15px; color: var(--muted); }
.cap-item h4{ font-family: var(--font-display); font-weight:500; font-size: 26px; margin: 0 0 12px; }
.cap-item p{ color: var(--ink-dim); font-size: 15.5px; line-height:1.75; margin:0; max-width: 62ch; }
/* ECONOMICS */
.timeline{ display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 64px; }
.t-step{ flex:1; min-width: 130px; }
.t-step .arrow{ font-family: var(--font-mono); color: var(--muted); font-size:16px; padding: 0 6px; align-self:center; }
.t-time{ font-family: var(--font-mono); font-size: 26px; color: var(--amber); display:block; margin-bottom: 10px; }
.t-label{ font-size: 13.5px; color: var(--ink-dim); line-height:1.4; }
.timeline-row{ display:flex; align-items:flex-start; gap: 4px; flex-wrap: wrap; }
.result-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 48px; }
@media (max-width:700px){ .result-grid{ grid-template-columns:1fr; } }
.result-grid .lede{ font-size: clamp(18px,2vw,22px); margin-bottom:0; max-width: none; }
/* DELIVERY */
.stat-row{ display:flex; gap: 80px; flex-wrap:wrap; margin-bottom: 24px; }
.stat .n{ font-family: var(--font-mono); font-size: clamp(48px, 6vw, 76px); color: var(--ink); line-height: 1; display:block; margin-bottom: 12px; }
.stat .label{ font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.stat .label b{ color: var(--teal); font-weight: 500; }
.stat-note{ font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); }
/* PIONEERS */
.team-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 56px 40px; }
@media (max-width: 700px){ .team-grid{ grid-template-columns: 1fr; } }
.team-card{ display:grid; grid-template-columns: 84px 1fr; gap: 22px; }
.avatar{ width:84px; height:84px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--font-display); font-size:24px; color: var(--bg-deep); flex:none; }
.team-info .role{ font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal); display:block; margin-bottom: 8px; }
.team-info h4{ font-family: var(--font-display); font-weight: 500; font-size: 20px; margin: 0 0 10px; }
.team-info p{ color: var(--muted); font-size: 13.5px; line-height: 1.65; margin: 0 0 12px; }
.li-link{ font-family: var(--font-mono); font-size: 11px; letter-spacing: .05em; text-decoration:none; color: var(--muted); border-bottom: 1px solid var(--hairline); padding-bottom: 2px; }
.li-link:hover{ color: var(--amber); border-color: var(--amber); }
/* NEWS */
.news-row{ display:grid; grid-template-columns: 220px 1fr; gap: 40px; align-items:center; }
@media (max-width: 640px){ .news-row{ grid-template-columns: 1fr; } }
.news-row .frame-placeholder{ aspect-ratio: 4/3; }
.news-row h3{ font-family: var(--font-display); font-weight: 500; font-size: clamp(20px,2.6vw,28px); line-height:1.35; margin:0 0 14px; max-width: 34ch; }
.news-row a.read{ font-family: var(--font-mono); font-size: 12px; text-transform:uppercase; letter-spacing:.06em; color: var(--amber); text-decoration:none; border-bottom:1px solid var(--amber-dim); padding-bottom:3px; }
footer{ background: var(--bg-deep); padding: 100px 0 40px; position:relative; overflow:hidden; }
.footer-stamp{ position:absolute; top:-130px; right:-130px; width:520px; height:auto; opacity:0.05; pointer-events:none; z-index:0; }
footer .container{ position:relative; z-index:1; }
.contact-grid{ display:grid; grid-template-columns: 1.2fr 1fr; gap: 48px; margin-bottom: 72px; }
@media (max-width: 760px){ .contact-grid{ grid-template-columns: 1fr; } }
footer h2{ font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: clamp(32px,4.4vw,54px); margin:0 0 26px; line-height:1.2; }
.contact-links{ display:flex; flex-direction:column; gap:16px; }
.contact-links a{ font-family: var(--font-mono); font-size: 16px; text-decoration:none; color: var(--ink-dim); }
.contact-links a:hover{ color: var(--amber); }
.locations{ font-family: var(--font-mono); font-size: 13px; color: var(--muted); letter-spacing:.05em; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; border-top: 1px solid var(--hairline); padding-top: 26px; padding-bottom: 34px; font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); letter-spacing: .04em; }
.foot-bottom a{ color: var(--muted); text-decoration:none; }
.foot-bottom a:hover{ color: var(--ink); }
.foot-links{ display:flex; align-items:center; gap:18px; }
.foot-cookie{ font: inherit; letter-spacing: inherit; color: var(--muted);
                background:none; border:0; padding:0; cursor:pointer; }
.foot-cookie:hover{ color: var(--ink); }
.hero-kicker{ font-family: var(--font-display); font-style:italic; font-weight:500; font-size: clamp(18px,2.2vw,24px); color: var(--amber); margin: 0 0 20px; }
.feat-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 40px 48px; margin-top: 8px; }
@media (max-width:700px){ .feat-grid{ grid-template-columns: 1fr; } }
.feat-item{ border-left: 2px solid var(--hairline); padding-left: 20px; }
.feat-item h4{ font-family: var(--font-display); font-weight:600; font-size: 20px; margin: 0 0 10px; }
.feat-item p{ color: var(--ink-dim); font-size: 15px; line-height:1.7; margin:0; max-width: 46ch; }
.work-tiles{ display:grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-bottom: 44px; }
@media (max-width:700px){ .work-tiles{ grid-template-columns: 1fr; } }
.work-tiles .frame-placeholder{ aspect-ratio: 16/10; }
.work-tiles .tile-cap{ font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); margin-top: 10px; }
.credibility{ display:flex; align-items:baseline; gap: 40px; flex-wrap:wrap; margin-top: 8px; }
.credibility .stat .n{ font-family: var(--font-mono); font-size: clamp(40px,5vw,60px); color: var(--ink); line-height:1; display:block; margin-bottom:8px; }
.credibility .stat .label{ font-family: var(--font-mono); font-size: 11.5px; letter-spacing:.06em; text-transform:uppercase; color: var(--muted); }
.hero-grid{ display:grid; grid-template-columns: 1.15fr 0.85fr; gap: 72px; align-items:center; position:relative; z-index:2; }
@media (max-width: 900px){ .hero-grid{ grid-template-columns: 1fr; } }
#heroFrame{ aspect-ratio: 8/5; }
.frame-art img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.t-icon{ color: var(--amber); margin-bottom: 16px; }
.t-icon svg{ width: 32px; height: 32px; display:block; }
.arrow{ font-family: var(--font-mono); color: var(--muted); font-size: 17px; padding: 0 4px; align-self:flex-start; margin-top: 15px; }
.t-time{ font-family: var(--font-mono); font-size: 22px; color: var(--amber); display:block; margin-bottom: 8px; }
.page-hero{ padding: 168px 0 56px; }
.page-hero h1{ font-family: var(--font-display); font-style:italic; font-weight:500; font-size: clamp(40px,6vw,64px); margin:22px 0 20px; line-height:1.05; }
.news-list{ display:flex; flex-direction:column; }
.news-item{ padding: 44px 0; border-bottom: 1px solid var(--hairline); }
.news-item:first-child{ padding-top:0; }
.news-item:last-child{ border-bottom:none; }
.news-item .date{ font-family: var(--font-mono); font-size: 12px; letter-spacing:.06em; text-transform:uppercase; color: var(--muted); display:block; margin-bottom: 14px; }
.news-item h2{ font-family: var(--font-display); font-weight:500; font-size: clamp(24px, 3vw, 32px); margin: 0 0 14px; }
.news-item h2 a{ color: var(--ink); text-decoration:none; }
.news-item h2 a:hover{ color: var(--amber); }
.news-item p{ color: var(--ink-dim); font-size: 15.5px; line-height:1.75; margin:0 0 16px; max-width: 66ch; }
.news-item .read{ font-family: var(--font-mono); font-size: 12px; text-transform:uppercase; letter-spacing:.06em; color: var(--teal); text-decoration:none; border-bottom:1px solid var(--teal-dim); padding-bottom:3px; }
.news-item .read:hover{ color: var(--ink); border-color: var(--ink); }
.article-back{ font-family: var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.06em; color: var(--muted); text-decoration:none; display:inline-block; margin-top:22px; }
.article-back:hover{ color: var(--amber); }
.article-meta{ font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); letter-spacing:.04em; margin-top: 10px; }
.article-body p{ color: var(--ink-dim); font-size: 16.5px; line-height:1.85; margin: 0 0 22px; max-width: 68ch; }
.article-body p:last-child{ margin-bottom:0; }
.article-body h3{ font-family: var(--font-display); font-weight:600; font-size: 22px; margin: 44px 0 16px; color: var(--ink); }
.article-body strong{ color: var(--ink); font-weight:600; }
.article-note{ font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--hairline); max-width: 68ch; line-height:1.7; }
.legal-toc{ display:flex; flex-direction:column; gap:13px; margin-top:26px; }
.legal-toc a{ font-family: var(--font-mono); font-size:12px; color: var(--ink-dim); text-decoration:none; line-height:1.5; }
.legal-toc a:hover{ color: var(--amber); }
.back-link{ font-family: var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color: var(--ink-dim); text-decoration:none; }
.back-link:hover{ color: var(--amber); }
.legal-section{ display:grid; grid-template-columns: 60px 1fr; gap: 28px; padding: 44px 0; border-bottom:1px solid var(--hairline); }
.legal-section:first-child{ padding-top:0; }
.legal-section:last-child{ border-bottom:none; }
@media (max-width:600px){ .legal-section{ grid-template-columns:1fr; gap:10px; } }
.legal-section .num{ font-family: var(--font-mono); font-size:14px; color: var(--muted); }
.legal-section h2{ font-family: var(--font-display); font-weight:500; font-size: clamp(22px,2.6vw,28px); margin:0 0 16px; scroll-margin-top: 150px; }
.legal-section h3{ font-family: var(--font-body); font-weight:600; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color: var(--ink); margin: 26px 0 10px; }
.legal-section h3:first-of-type{ margin-top: 8px; }
.legal-section p{ color: var(--ink-dim); font-size:15.5px; line-height:1.75; margin:0 0 14px; max-width:66ch; }
.legal-section ul{ margin:0 0 14px; padding-left:20px; color: var(--ink-dim); font-size:15px; line-height:1.85; max-width:64ch; }
.legal-section li{ margin-bottom:6px; }
.legal-section a{ color: var(--amber); }
.legal-hero{ padding: 168px 0 56px; }
.legal-dates{ display:flex; gap: 28px; flex-wrap:wrap; font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); letter-spacing:.04em; margin-top: 8px; }
