/* Mawqif Apply — component styles
   Nav / hero / ticker / role-card / buttons copied from
   apply-mawqif-hero-prototype.html — do not diverge. */

/* Tokens inlined here so a stale cached tokens.css cannot blank the hero.
   tokens.css remains the canonical source; keep both in sync. */
:root{
  --ink-navy:#1B3A6B;
  --ink-navy-dark:#0F2647;
  --ink-navy-darker:#0A1B34;
  --ink-navy-light:#4A6FA5;
  --paper:#FFFFFF;
  --paper-dim:#F5F6F8;
  --line:#E4E7EE;
  --ink-70:rgba(255,255,255,.7);
  --ink-40:rgba(255,255,255,.4);
  --navy-40:rgba(27,58,107,.4);
  --navy-15:rgba(27,58,107,.12);
  --font-display:'Instrument Serif', Georgia, serif;
  --font-body:'Inter', system-ui, sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --body-muted:#5C6579;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--paper,#fff);color:var(--ink-navy-dark,#0F2647);font-family:var(--font-body,Inter,system-ui,sans-serif);}
a{color:inherit;}
img{max-width:100%;height:auto;display:block;}
ul,ol{list-style:none;margin:0;padding:0;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}

.skip-link{
  position:absolute;left:16px;top:-60px;z-index:100;
  background:var(--ink-navy);color:#fff;padding:10px 16px;border-radius:8px;
  font-family:var(--font-mono);font-size:12px;text-decoration:none;
}
.skip-link:focus{top:12px;}

:focus-visible{
  outline:2px solid var(--ink-navy-light);
  outline-offset:3px;
}

/* ---------- NAV (prototype) ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 40px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-brand{display:flex; align-items:center; text-decoration:none; color:inherit; flex-shrink:0;}
.nav-brand-logo{
  height:42px;
  width:auto;
  max-width:min(200px, 46vw);
  object-fit:contain;
  display:block;
}
.nav-links{display:flex; align-items:center; gap:30px; font-size:14.5px; font-weight:500;}
.nav-links a{text-decoration:none; color:var(--ink-navy-dark); opacity:.72; transition:opacity .18s var(--ease);}
.nav-links a:hover,
.nav-links a.is-active{opacity:1;}
.nav-cta{
  font-family:var(--font-body); font-weight:600; font-size:14px;
  background:var(--ink-navy); color:#fff; padding:10px 20px; border-radius:100px;
  text-decoration:none; transition:transform .18s var(--ease), background .18s var(--ease);
  display:inline-block;
}
.nav-cta:hover{background:var(--ink-navy-dark); transform:translateY(-1px); color:#fff;}

/* Roles dropdown (desktop) */
.nav-drop{position:relative;}
.nav-drop__btn{
  font:inherit; font-size:14.5px; font-weight:500;
  color:var(--ink-navy-dark); opacity:.72; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
  transition:opacity .18s var(--ease);
  background:none; border:none; padding:0;
}
.nav-drop__btn:hover,
.nav-drop.is-open .nav-drop__btn,
.nav-drop__btn.is-active{opacity:1;}
.nav-drop__caret{
  width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;
  transition:transform .18s var(--ease);
}
.nav-drop.is-open .nav-drop__caret{transform:rotate(180deg);}
.nav-drop__menu{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  min-width:160px; background:#fff; border:1px solid var(--line);
  border-radius:12px; padding:8px; box-shadow:0 16px 32px -12px var(--navy-40);
  z-index:60;
}
.nav-drop__menu[hidden]{display:none;}
.nav-drop__menu a{
  display:block; padding:10px 12px; border-radius:8px;
  text-decoration:none; color:var(--ink-navy-dark); opacity:1; font-size:14px;
}
.nav-drop__menu a:hover{background:var(--paper-dim);}

/* Mobile hamburger */
.nav-toggle{
  display:none; width:42px; height:42px; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:10px; background:#fff;
}
.nav-toggle__bars,
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  display:block; width:18px; height:1.5px; background:var(--ink-navy-dark); position:relative;
  transition:transform .18s var(--ease), opacity .18s var(--ease);
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{content:''; position:absolute; left:0;}
.nav-toggle__bars::before{top:-6px;}
.nav-toggle__bars::after{top:6px;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{top:0; transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{top:0; transform:rotate(-45deg);}

.nav-drawer{
  display:none;
  position:fixed; inset:73px 0 auto 0; z-index:49;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:12px 24px 24px;
  flex-direction:column; gap:4px;
  box-shadow:0 20px 40px -20px var(--navy-40);
}
.nav-drawer.is-open{display:flex;}
.nav-drawer a,
.nav-drawer .nav-drop__btn{
  display:block; width:100%; text-align:left;
  padding:14px 8px; font-size:16px; font-weight:500;
  text-decoration:none; color:var(--ink-navy-dark); opacity:.85;
  border-bottom:1px solid var(--line);
}
.nav-drawer .nav-drop__menu{
  position:static; transform:none; box-shadow:none; border:none;
  padding:0 0 8px 12px; border-radius:0;
}
.nav-drawer .nav-drop__menu a{border:none; padding:10px 8px; font-size:15px; opacity:.72;}
.nav-drawer .nav-cta{margin-top:16px; text-align:center; opacity:1;}

/* ---------- HERO (prototype) ---------- */
.hero{
  position:relative;
  /* Solid fallback first — if gradient vars fail, navy still shows */
  background-color:#0A1B34;
  background-image:linear-gradient(160deg, var(--ink-navy-darker,#0A1B34), var(--ink-navy-dark,#0F2647) 45%, var(--ink-navy,#1B3A6B) 100%);
  background-size:180% 180%;
  animation:driftGradient 32s ease-in-out infinite;
  color:#fff;
  overflow:hidden;
  padding-bottom:80px;
}
.hero--compact{padding-bottom:64px;}
@keyframes driftGradient{
  0%{background-position:0% 20%;}
  50%{background-position:100% 80%;}
  100%{background-position:0% 20%;}
}

.ticker-wrap{
  position:relative;
  border-bottom:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.18);
  overflow:hidden;
  white-space:nowrap;
  padding:10px 0;
}
.ticker-label{
  position:absolute;
  left:0; top:0; bottom:0;
  z-index:2;
  display:flex; align-items:center;
  font-family:var(--font-mono,'IBM Plex Mono',monospace); font-size:11px; letter-spacing:.12em;
  color:rgba(255,255,255,.55);
  padding:0 28px 0 40px;
  /* Opaque plate — headlines pass behind, never through */
  background:#0A1B34;
  box-shadow:12px 0 18px 8px #0A1B34;
  pointer-events:none;
}
.ticker-track{
  display:inline-flex;
  padding-left:110px; /* clear the WIRE label box */
  animation:tickerScroll 42s linear infinite;
}
.ticker-wrap:hover .ticker-track{animation-play-state:paused;}
.ticker-item{
  font-family:var(--font-mono,'IBM Plex Mono',monospace); font-size:12.5px; letter-spacing:.01em;
  color:var(--ink-70,rgba(255,255,255,.7)); padding:0 24px; white-space:nowrap;
}
.ticker-dot{color:var(--ink-navy-light,#4A6FA5); margin:0 2px;}
@keyframes tickerScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

.hero-inner{max-width:900px; margin:0 auto; padding:64px 40px 0; text-align:left;}
.hero--compact .hero-inner{padding-top:48px;}
.hero-status{
  font-family:var(--font-mono,'IBM Plex Mono',monospace); font-size:12px; letter-spacing:.12em;
  color:var(--ink-navy-light,#4A6FA5); text-transform:uppercase;
  display:flex; align-items:center; gap:9px; margin-bottom:26px;
  /* Literal easing — never depend on --ease for entrance visibility */
  opacity:0; animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .05s both;
}
.hero-status .pulse{
  width:7px; height:7px; border-radius:50%; background:#7FA0D9;
  box-shadow:0 0 0 0 rgba(127,160,217,.6);
  animation:pulse 2.4s ease-out infinite;
  flex-shrink:0;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(127,160,217,.55);}
  70%{box-shadow:0 0 0 8px rgba(127,160,217,0);}
  100%{box-shadow:0 0 0 0 rgba(127,160,217,0);}
}
.hero h1{
  font-family:var(--font-display,'Instrument Serif',Georgia,serif); font-weight:400; font-style:normal;
  font-size:clamp(46px, 7vw, 84px); line-height:1.02; letter-spacing:-.01em;
  margin:0 0 22px;
  color:#fff;
  opacity:0; animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .15s both;
}
.hero--compact h1{font-size:clamp(36px, 5.5vw, 64px);}
.hero p{
  font-size:17.5px; line-height:1.6; color:rgba(255,255,255,.7); max-width:560px; margin:0 0 34px;
  opacity:0; animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .28s both;
}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .4s both;}
.btn-primary{
  font-family:var(--font-body,Inter,system-ui,sans-serif); font-weight:600; font-size:15px;
  background:#fff; color:var(--ink-navy-dark,#0F2647); padding:15px 28px; border-radius:100px;
  text-decoration:none; transition:transform .18s cubic-bezier(.22,1,.36,1), box-shadow .18s cubic-bezier(.22,1,.36,1);
  display:inline-block; box-shadow:0 1px 2px rgba(0,0,0,.1);
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.25); color:var(--ink-navy-dark);}
.btn-secondary{
  font-family:var(--font-body); font-weight:600; font-size:15px;
  background:transparent; color:#fff; padding:15px 28px; border-radius:100px;
  border:1px solid rgba(255,255,255,.35);
  text-decoration:none; transition:border-color .18s var(--ease), background .18s var(--ease);
  display:inline-block;
}
.btn-secondary:hover{border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.06); color:#fff;}

/* Light-surface button variants (same motion language) */
.btn-navy{
  font-family:var(--font-body); font-weight:600; font-size:15px;
  background:var(--ink-navy); color:#fff; padding:15px 28px; border-radius:100px;
  text-decoration:none; display:inline-block;
  transition:transform .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);
}
.btn-navy:hover{background:var(--ink-navy-dark); transform:translateY(-2px); color:#fff; box-shadow:0 10px 24px -8px var(--navy-40);}
.btn-outline{
  font-family:var(--font-body); font-weight:600; font-size:15px;
  background:transparent; color:var(--ink-navy); padding:15px 28px; border-radius:100px;
  border:1px solid var(--ink-navy-light);
  text-decoration:none; display:inline-block;
  transition:border-color .18s var(--ease), background .18s var(--ease), transform .18s var(--ease);
}
.btn-outline:hover{border-color:var(--ink-navy); background:var(--navy-15); color:var(--ink-navy-dark); transform:translateY(-1px);}

/* ---------- ROLES (prototype) ---------- */
.roles{padding:90px 40px 100px; max-width:1180px; margin:0 auto;}
.roles-eyebrow{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; color:var(--ink-navy-light);
  text-transform:uppercase; margin-bottom:14px;
}
.roles h2{
  font-family:var(--font-display); font-weight:400; font-size:clamp(32px,4vw,44px);
  margin:0 0 12px; color:var(--ink-navy-dark);
}
.roles-sub{font-size:16px; color:#5C6579; margin:0 0 48px; max-width:520px;}

.role-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;}
.role-card{
  position:relative;
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  padding:30px 26px 28px;
  text-decoration:none;
  color:var(--ink-navy-dark);
  transition:transform .32s var(--ease), box-shadow .32s var(--ease), border-color .32s var(--ease), background .32s var(--ease);
}
.role-card:hover{
  transform:translateY(-6px) rotate(-0.4deg);
  box-shadow:0 24px 40px -18px var(--navy-40);
  border-color:var(--ink-navy-light);
  background:#fff;
}
.role-code{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em;
  color:var(--ink-navy-light); margin-bottom:18px; display:block;
}
.role-card h3{
  font-family:var(--font-display); font-weight:400; font-size:30px; margin:0 0 12px;
}
.role-card p{font-size:14.5px; line-height:1.55; color:#5C6579; margin:0 0 22px;}
.role-link{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.03em;
  color:var(--ink-navy); text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
}
.role-link .arrow{transition:transform .22s var(--ease);}
.role-card:hover .role-link .arrow{transform:translateX(4px);}

/* ---------- Extended system (same tokens / motion) ---------- */
.section{
  padding:90px 40px;
  max-width:1180px;
  margin:0 auto;
}
.section--full{
  max-width:none;
  padding:0;
}
.section--dim{
  background:var(--paper-dim);
  max-width:none;
  padding:90px 40px;
}
.section--dim > .section-inner,
.section--band > .section-inner{
  max-width:1180px;
  margin:0 auto;
}
.section-eyebrow{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; color:var(--ink-navy-light);
  text-transform:uppercase; margin-bottom:14px;
}
.section-title{
  font-family:var(--font-display); font-weight:400; font-size:clamp(32px,4vw,44px);
  margin:0 0 12px; color:var(--ink-navy-dark);
}
.section-sub{font-size:16px; color:#5C6579; margin:0 0 48px; max-width:520px;}

.proof-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.proof-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  padding:28px 24px;
}
.proof-card__label{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em;
  color:var(--ink-navy-light); text-transform:uppercase; margin-bottom:12px;
}
.proof-card__value{
  font-family:var(--font-mono); font-size:15px; font-weight:500;
  color:var(--ink-navy-dark); line-height:1.45;
}

.closing{
  text-align:center;
  padding:90px 40px 100px;
  max-width:720px;
  margin:0 auto;
}
.closing h2{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(32px,4vw,44px); margin:0 0 14px; color:var(--ink-navy-dark);
}
.closing p{font-size:16px; color:#5C6579; margin:0 0 28px; line-height:1.6;}
.closing-ctas{display:flex; gap:14px; flex-wrap:wrap; justify-content:center;}

/* Content panels */
.panel-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.panel{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  padding:30px 26px;
}
.panel h3{
  font-family:var(--font-display); font-weight:400; font-size:26px;
  margin:0 0 16px; color:var(--ink-navy-dark);
}
.panel ul{display:flex; flex-direction:column; gap:10px;}
.panel li{
  position:relative; padding-left:16px;
  font-size:14.5px; line-height:1.55; color:#5C6579;
}
.panel li::before{
  content:''; position:absolute; left:0; top:.55em;
  width:6px; height:6px; border-radius:50%; background:var(--ink-navy-light);
}

.task-box{
  border:1px solid var(--ink-navy-light);
  border-radius:16px;
  background:var(--navy-15);
  padding:28px 26px;
  margin:40px 0;
}
.task-box__label{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em;
  color:var(--ink-navy); text-transform:uppercase; margin-bottom:10px;
}
.task-box p{font-size:15.5px; line-height:1.6; color:var(--ink-navy-dark); margin:0; max-width:65ch;}

.cross-roles{
  margin-top:48px;
  padding-top:32px;
  border-top:1px solid var(--line);
}
.cross-roles > p{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em;
  color:var(--ink-navy-light); text-transform:uppercase; margin:0 0 20px;
}

/* Process sequences */
.sequence{margin-bottom:72px;}
.sequence:last-child{margin-bottom:0;}
.sequence-head{margin-bottom:28px;}
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.step{
  position:relative;
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  padding:26px 22px 48px;
  min-height:200px;
}
.step__num{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em;
  color:var(--ink-navy-light); margin-bottom:14px; display:block;
}
.step h3{
  font-family:var(--font-display); font-weight:400; font-size:24px;
  margin:0 0 10px; color:var(--ink-navy-dark);
}
.step p{font-size:14px; line-height:1.55; color:#5C6579; margin:0;}

.stamp{
  position:absolute; right:14px; bottom:14px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-navy);
  border:2px solid var(--ink-navy);
  border-radius:2px;
  padding:6px 8px;
  transform:rotate(-9deg) scale(1.35);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s var(--ease), transform .38s cubic-bezier(.34,1.56,.64,1);
}
.stamp.is-stamped{
  opacity:.88;
  transform:rotate(-9deg) scale(1);
}

/* Timeline */
.timeline{
  max-width:680px;
  border-left:2px solid var(--line);
  display:flex; flex-direction:column; gap:36px;
  padding-left:28px;
}
.timeline-item{position:relative;}
.timeline-item::before{
  content:''; position:absolute; left:-35px; top:6px;
  width:12px; height:12px; border-radius:50%;
  background:var(--ink-navy); border:2px solid var(--paper);
  box-shadow:0 0 0 2px var(--navy-15);
}
.timeline-item__date{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-navy-light); margin-bottom:8px;
}
.timeline-item h3{
  font-family:var(--font-display); font-weight:400; font-size:26px;
  margin:0 0 8px; color:var(--ink-navy-dark);
}
.timeline-item p{font-size:15px; line-height:1.6; color:#5C6579; margin:0; max-width:55ch;}
.timeline-note{
  margin-top:36px; max-width:680px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.04em;
  color:var(--body-muted); line-height:1.55;
}

/* FAQ */
.faq-list{max-width:720px; display:flex; flex-direction:column; gap:12px;}
.faq-item{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  transition:border-color .22s var(--ease), background .22s var(--ease), box-shadow .32s var(--ease);
}
.faq-item.is-open{
  background:#fff;
  border-color:var(--ink-navy-light);
  box-shadow:0 16px 32px -18px var(--navy-40);
}
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 22px; text-align:left;
  font-family:var(--font-body); font-size:16px; font-weight:600;
  color:var(--ink-navy-dark);
}
.faq-q::after{
  content:'+'; font-family:var(--font-mono); font-size:18px; font-weight:400;
  color:var(--ink-navy); flex-shrink:0;
}
.faq-item.is-open .faq-q::after{content:'−';}
.faq-a{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .42s var(--ease);
}
.faq-item.is-open .faq-a{grid-template-rows:1fr;}
.faq-a__inner{overflow:hidden;}
.faq-a p{
  padding:0 22px 18px; margin:0;
  font-size:15px; line-height:1.6; color:#5C6579; max-width:60ch;
}
.faq-a a{color:var(--ink-navy); text-decoration:underline; text-underline-offset:3px;}

/* About */
.team-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.team-card{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  padding:30px 26px;
  transition:transform .32s var(--ease), box-shadow .32s var(--ease), border-color .32s var(--ease), background .32s var(--ease);
}
.team-card__photo{
  width:72px; height:72px; border-radius:50%;
  object-fit:cover; margin-bottom:14px;
  background:var(--ink-navy-dark);
}
.team-card:hover{
  transform:translateY(-6px) rotate(-0.4deg);
  box-shadow:0 24px 40px -18px var(--navy-40);
  border-color:var(--ink-navy-light);
  background:#fff;
}
.team-card__role{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em;
  color:var(--ink-navy-light); text-transform:uppercase; margin-bottom:10px;
}
.team-card__name{
  font-family:var(--font-display); font-weight:400; font-size:28px;
  margin:0; color:var(--ink-navy-dark);
}

.affiliation{
  border:1.5px dashed var(--ink-navy-light);
  border-radius:16px;
  background:var(--navy-15);
  padding:28px 24px;
  text-align:center;
  margin:0 0 48px;
}
.affiliation p{
  font-family:var(--font-mono); font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-navy); margin:0; line-height:1.6;
  max-width:52ch; margin-inline:auto;
}

.article-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.article-card{
  display:flex; flex-direction:column;
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  text-decoration:none; color:var(--ink-navy-dark);
  transition:transform .32s var(--ease), box-shadow .32s var(--ease), border-color .32s var(--ease), background .32s var(--ease);
}
.article-card:hover{
  transform:translateY(-6px) rotate(-0.4deg);
  box-shadow:0 24px 40px -18px var(--navy-40);
  border-color:var(--ink-navy-light);
  background:#fff;
}
.article-card__img{
  aspect-ratio:16/10; background:var(--ink-navy-dark);
  object-fit:cover; width:100%; display:block;
}
.article-card__img--placeholder{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(255,255,255,.45);
}
.article-card__body{padding:22px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1;}
.article-card__byline{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-navy-light);
}
.article-card__title{
  font-family:var(--font-display); font-weight:400; font-size:22px;
  line-height:1.2; margin:0;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--line);
  background:var(--paper-dim);
  padding:36px 40px;
}
.footer-inner{
  max-width:1180px; margin:0 auto;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; align-items:flex-end;
}
.footer-dateline{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-navy-light); margin:0 0 8px;
}
.footer-copy{font-size:13.5px; color:#5C6579; margin:0;}
.footer-links{display:flex; flex-wrap:wrap; gap:18px;}
.footer-links a{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.04em;
  text-decoration:none; color:var(--ink-navy-dark); opacity:.72;
  transition:opacity .18s var(--ease);
}
.footer-links a:hover{opacity:1;}

/* Scroll reveal (same fadeUp distance/easing as hero) */
.reveal{
  opacity:0; transform:translateY(14px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-visible{opacity:1; transform:translateY(0);}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .nav{padding:14px 20px;}
  .nav-links{display:none;}
  .nav-cta.nav-cta--desktop{display:none;}
  .nav-toggle{display:inline-flex;}
  .role-grid{grid-template-columns:1fr;}
  .hero-inner{padding:48px 20px 0;}
  .ticker-label{padding-left:20px; padding-right:16px;}
  .ticker-track{padding-left:88px;}
  .nav-brand-logo{height:36px;}
  .roles,.section,.closing,.site-footer{padding-left:20px; padding-right:20px;}
  .section--dim{padding-left:20px; padding-right:20px;}
  .proof-grid,.panel-grid,.team-grid,.article-grid,.steps{grid-template-columns:1fr;}
}

@media (max-width:360px){
  .hero-ctas .btn-primary,
  .hero-ctas .btn-secondary,
  .closing-ctas a{width:100%; text-align:center;}
}

@media (prefers-reduced-motion: reduce){
  .hero{animation:none;}
  .ticker-track{animation:none;}
  .hero-status,.hero h1,.hero p,.hero-ctas{animation:none; opacity:1;}
  .hero-status .pulse{animation:none;}
  .role-card:hover,
  .team-card:hover,
  .article-card:hover{transform:none;}
  .reveal{opacity:1; transform:none; transition:none;}
  .stamp{opacity:0; transform:rotate(-9deg) scale(1); transition:opacity .2s ease;}
  .stamp.is-stamped{opacity:.88;}
  .faq-a{transition:none;}
}
