/* =============================================================
   BlueCapital Research — bcr.sg
   Design system: editorial / premium consulting
   ============================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  /* ink */
  --ink:        #0B1B24;
  --ink-2:      #122B37;
  --ink-3:      #1B3B48;
  /* paper */
  --paper:      #F2EEE5;
  --paper-lt:   #FBF8F2;
  --white:      #FFFFFF;
  /* accents */
  --tide:       #0C6B6A;
  --tide-2:     #2FA79C;
  --tide-3:     #8FD8CB;
  --tide-wash:  rgba(15,124,123,.08);
  --clay:       #B4673A;
  /* lines & text */
  --line:       rgba(11,27,36,.13);
  --line-soft:  rgba(11,27,36,.07);
  --line-inv:   rgba(242,238,229,.16);
  --body:       rgba(11,27,36,.76);
  --body-inv:   rgba(242,238,229,.72);
  --muted:      rgba(11,27,36,.63);
  --muted-inv:  rgba(242,238,229,.58);

  /* type */
  --serif: "Instrument Serif", "Times New Roman", Times, serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* metrics */
  --shell: 1320px;
  --gutter: clamp(20px, 5vw, 72px);
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html:focus-within{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper-lt);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden}
img,svg{max-width:100%;display:block}
h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
address{font-style:normal}
::selection{background:var(--tide);color:#fff}
:focus-visible{outline:2px solid var(--tide);outline-offset:3px;border-radius:1px}
.section--ink :focus-visible{outline-color:var(--tide-3)}

/* ---------- 3. Layout primitives ---------- */
.shell{
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.section{
  position:relative;
  padding-block:clamp(72px, 9vw, 136px);
  border-top:1px solid var(--line-soft);
}
.section--paper{background:var(--paper);border-top-color:var(--line)}
.section--ink{
  background:var(--ink);color:var(--paper-lt);border-top-color:transparent;
  --body: rgba(242,238,229,.74);
  --muted: rgba(242,238,229,.52);
}
.section--ink a:not(.btn):not(.link-arrow){color:var(--tide-3)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:var(--paper-lt);padding:12px 20px;font-size:.9rem;
}
.skip-link:focus{left:0}

/* ---------- 4. Typography ---------- */
.display{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.85rem, 7.6vw, 6.4rem);
  line-height:.96;
  letter-spacing:-.022em;
  margin-block:.06em .34em;
}
.display em{font-style:italic;color:var(--tide)}

.h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.05rem, 4.4vw, 3.6rem);
  line-height:1.04;
  letter-spacing:-.016em;
  max-width:19ch;
}
.h2 em{font-style:italic;color:var(--tide)}

.lede{
  font-size:clamp(1.05rem, 1.25vw, 1.24rem);
  line-height:1.62;
  color:var(--body);
  font-weight:300;
  max-width:56ch;
}
.lede strong{font-weight:500;color:var(--ink)}
.lede--tight{margin-top:1.4rem}
.lede--light{color:var(--body-inv)}
.lede--light strong{color:var(--paper-lt)}

.eyebrow{
  font-family:var(--mono);
  font-size:.69rem;
  font-weight:500;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--tide);
  display:flex;
  align-items:center;
  gap:.7em;
  flex-wrap:wrap;
}
.eyebrow--rule{
  padding-bottom:.75rem;
  border-bottom:1px solid var(--line);
  display:block;
}
.eyebrow--light{color:var(--tide-3);border-bottom-color:var(--line-inv)}
.eyebrow__dot{
  width:4px;height:4px;border-radius:50%;
  background:var(--tide);
  display:inline-block;
}

p + p{margin-top:1.1em}
p{color:var(--body)}
.section--ink p{color:var(--body-inv)}
.strong,strong{font-weight:500;color:var(--ink)}
.section--ink strong{color:var(--paper-lt)}
.muted{color:var(--muted)}
.cite{
  display:block;
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:.55em;
}
.section--ink .cite{color:var(--muted-inv)}

.link-arrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--tide);
  border-bottom:1px solid currentColor;
  padding-bottom:.35em;
  transition:gap .35s var(--ease), opacity .3s;
}
.link-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.link-arrow:hover{gap:.95em}
.section--ink .link-arrow{color:var(--tide-3)}

/* ---------- 5. Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--mono);
  font-size:.7rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  padding:.92em 1.5em;
  border:1px solid transparent;
  border-radius:var(--radius);
  cursor:pointer;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
  text-align:center;
}
.btn--solid{background:var(--ink);color:var(--paper-lt)}
.btn--solid:hover{background:var(--tide);transform:translateY(-1px)}
.btn--line{border-color:var(--line);color:var(--ink);background:transparent}
.btn--line:hover{border-color:var(--ink);background:rgba(11,27,36,.04)}
.btn--ghost{color:var(--muted);padding-inline:.6em}
.btn--ghost:hover{color:var(--ink)}
.btn--lg{padding:1.05em 1.7em;font-size:.73rem}
.btn--block{width:100%}
.section--ink .btn--solid{background:var(--tide-3);color:var(--ink)}
.section--ink .btn--solid:hover{background:#fff}

/* ---------- 6. Utility bar ---------- */
.utility{
  background:var(--ink);
  color:rgba(242,238,229,.66);
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.utility__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;min-height:38px;
}
.utility__item{margin:0;display:flex;align-items:center;gap:.7em;color:inherit}
.utility__item a{color:var(--tide-3);transition:color .25s}
.utility__item a:hover{color:#fff}
.utility__sep{opacity:.35}
.utility__item--lead{color:rgba(242,238,229,.72)}
.pulse{
  width:6px;height:6px;border-radius:50%;background:var(--tide-2);
  box-shadow:0 0 0 0 rgba(47,167,156,.65);
  animation:pulse 2.6s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(47,167,156,.55)}
  70%{box-shadow:0 0 0 7px rgba(47,167,156,0)}
  100%{box-shadow:0 0 0 0 rgba(47,167,156,0)}
}

/* ---------- 7. Navigation ---------- */
.nav{
  position:sticky;top:0;z-index:90;
  background:rgba(251,248,242,.88);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line-soft);
  transition:border-color .3s, background .3s;
}
.nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 1px 0 rgba(11,27,36,.04)}
.nav__inner{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  min-height:72px;
}
.brand{display:flex;align-items:center;gap:.7rem;flex:none}
.brand__mark{width:34px;height:34px;overflow:visible}
.brand__ring{fill:none;stroke:var(--ink);stroke-width:1.1;opacity:.22}
.brand__arc{fill:none;stroke:var(--tide);stroke-width:1.9;stroke-linecap:round}
.brand__drop{fill:var(--ink)}
.brand__type{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--serif);font-size:1.18rem;letter-spacing:-.01em}
.brand__sub{
  font-family:var(--mono);font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--muted);margin-top:.28em;
}
.nav__links{display:flex;gap:clamp(1rem,1.9vw,2.1rem)}
.nav__links a{
  font-size:.83rem;color:var(--body);position:relative;padding-block:.35rem;
  transition:color .25s;
}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--tide);
  transition:width .35s var(--ease);
}
.nav__links a:hover{color:var(--ink)}
.nav__links a:hover::after{width:100%}
.nav__actions{display:flex;align-items:center;gap:.85rem}
.nav__toggle{
  display:none;width:42px;height:42px;border:1px solid var(--line);background:transparent;
  border-radius:var(--radius);cursor:pointer;position:relative;
}
.nav__toggle span{
  position:absolute;left:11px;width:20px;height:1.5px;background:var(--ink);
  transition:transform .3s var(--ease), opacity .2s;
}
.nav__toggle span:nth-child(1){top:16px}
.nav__toggle span:nth-child(2){top:24px}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

.mobile-nav{
  position:fixed;left:0;right:0;top:110px;bottom:0;
  background:var(--paper-lt);
  border-top:1px solid var(--line);
  padding:2rem var(--gutter) 2.5rem;
  overflow-y:auto;
  display:flex;flex-direction:column;justify-content:space-between;
}
.mobile-nav[hidden]{display:none}
.mobile-nav nav a{
  display:flex;align-items:baseline;gap:1rem;
  font-family:var(--serif);font-size:1.7rem;padding:.55rem 0;
  border-bottom:1px solid var(--line-soft);
}
.mobile-nav nav a span{font-family:var(--mono);font-size:.65rem;color:var(--tide);letter-spacing:.1em}
.mobile-nav__foot{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.2rem}
.mobile-nav__foot p{font-size:.82rem;color:var(--muted);line-height:1.6}

/* ---------- 8. Hero ---------- */
.hero{
  position:relative;
  padding-top:clamp(48px, 6vw, 84px);
  padding-bottom:0;
  background:
    radial-gradient(120% 90% at 78% 8%, rgba(47,167,156,.10) 0%, rgba(47,167,156,0) 55%),
    radial-gradient(90% 70% at 10% 0%, rgba(11,27,36,.05) 0%, rgba(11,27,36,0) 60%),
    var(--paper-lt);
  overflow:hidden;
}
.hero__grain{
  position:absolute;inset:0;pointer-events:none;opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.hero__inner{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:clamp(2rem,4vw,4.5rem);
  align-items:center;
  padding-bottom:clamp(48px,6vw,90px);
}
.hero__copy{max-width:640px}
.hero__kicker{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.1rem}
.hero__kicker-main{
  font-family:var(--mono);font-size:.69rem;font-weight:500;letter-spacing:.19em;
  text-transform:uppercase;color:var(--tide);
}
.hero__kicker-meta{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.hero__actions{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:2.1rem}
.hero__proof{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;
  margin-top:clamp(2.4rem,4vw,3.6rem);
  padding-top:1.5rem;border-top:1px solid var(--line);
}
.hero__stat dt{
  font-family:var(--serif);font-size:clamp(1.9rem,3.1vw,2.6rem);line-height:1;
  display:flex;align-items:baseline;gap:.08em;
}
.hero__stat .unit{font-family:var(--sans);font-size:.42em;font-weight:300;color:var(--muted);letter-spacing:.02em}
.hero__stat dd{
  margin:.55rem 0 0;font-size:.74rem;line-height:1.45;color:var(--muted);max-width:22ch;
}
.hero__figure{position:relative}
.loop{margin:0}
.loop svg{width:100%;height:auto;overflow:visible}
.loop__grid{fill:none;stroke:var(--ink);stroke-width:1;opacity:.07}
.loop__grid--inner{opacity:.05}
.loop__dash{
  fill:none;stroke:var(--tide);stroke-width:1;stroke-dasharray:2 12;opacity:.5;
  transform-box:view-box;transform-origin:280px 280px;
  animation:spin 64s linear infinite;
}
.loop__dash--slow{stroke:var(--clay);opacity:.28;stroke-dasharray:1 16;animation-duration:96s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.loop__node circle{
  fill:var(--paper-lt);stroke:var(--ink);stroke-opacity:.2;stroke-width:1;
  transition:fill .4s var(--ease), stroke-opacity .4s;
}
.loop__node:hover circle{fill:#fff;stroke:var(--tide);stroke-opacity:1}
.loop__node-idx{
  font-family:var(--mono);font-size:11px;fill:var(--ink);text-anchor:middle;letter-spacing:.06em;
}
.loop__node-label{
  font-family:var(--mono);font-size:8px;fill:var(--muted);text-anchor:middle;letter-spacing:.1em;
}
.loop__flow path{
  fill:none;stroke:var(--tide-2);stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:5 9;
  animation:dash 3.2s linear infinite;
}
.loop__flow path:nth-child(2n){animation-duration:4.1s}
@keyframes dash{to{stroke-dashoffset:-28}}
.loop__core-bg{fill:var(--ink)}
.loop__core-line{fill:none;stroke:var(--tide-3);stroke-opacity:.45;stroke-width:1}
.loop__core-kicker{font-family:var(--mono);font-size:9.5px;letter-spacing:.3em;fill:var(--tide-3);text-anchor:middle}
.loop__core-title{font-family:var(--serif);font-size:27px;fill:var(--paper-lt);text-anchor:middle;letter-spacing:-.01em}
.loop__core-title--2{font-style:italic;fill:var(--tide-3)}
.loop__core-note{font-family:var(--mono);font-size:8px;letter-spacing:.06em;fill:rgba(242,238,229,.52);text-anchor:middle}
.loop__cap{
  margin-top:.4rem;font-size:.76rem;color:var(--muted);line-height:1.5;
  border-left:2px solid var(--tide-3);padding-left:.9rem;max-width:38ch;
}
.loop__cap-idx{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tide);display:block;margin-bottom:.25rem}

.panel{
  position:relative;
  width:100%;
  margin-top:1.5rem;
  background:#fff;
  border:1px solid var(--line);
  padding:1.15rem 1.25rem 1.1rem;
  box-shadow:0 24px 50px -44px rgba(11,27,36,.55);
}
.panel__kicker{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.panel__list{
  margin-top:.9rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem 1.8rem;
}
.panel__list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.72rem;color:var(--body)}
.bars{width:64px;height:3px;background:var(--line-soft);flex:none;overflow:hidden}
.bars i{display:block;height:100%;width:var(--w);background:var(--tide-2);transform-origin:left;animation:barIn 1.4s var(--ease) both}
@keyframes barIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.panel__foot{margin-top:.9rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;color:var(--muted);line-height:1.5}

.marquee{
  position:relative;z-index:2;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:var(--paper);
  overflow:hidden;
  padding-block:.9rem;
}
.marquee__track{
  display:flex;align-items:center;gap:1.6rem;width:max-content;
  animation:marquee 46s linear infinite;
}
.marquee__track span{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);
  white-space:nowrap;
}
.marquee__track i{width:5px;height:5px;border-radius:50%;background:var(--tide-2);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 9. Section head ---------- */
.sec-head{margin-bottom:clamp(2.4rem,4vw,4rem);max-width:860px}
.sec-head .h2{margin-top:1.1rem}
.sec-head__lede{margin-top:1.2rem;max-width:62ch}
.sec-head--light .h2{color:var(--paper-lt)}
.sec-head--split{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);
  gap:clamp(1.5rem,4vw,4rem);align-items:end;max-width:none;
}
.sec-head__aside{color:var(--muted);font-size:.96rem;line-height:1.6;max-width:42ch}
.sec-head__aside .link-arrow{margin-top:1.1rem}
.section--ink .sec-head__aside{color:var(--body-inv)}

/* ---------- 10. Thesis ---------- */
.thesis{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(2.5rem,5vw,5rem);align-items:start;
}
.thesis__statement p{font-size:1.02rem;line-height:1.72;max-width:62ch}
.thesis__sources{
  margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);
  font-size:.84rem!important;color:var(--muted)!important;line-height:1.7;
}
.thesis__sources a{
  color:var(--ink);border-bottom:1px solid var(--tide-2);
  transition:color .25s, border-color .25s;
}
.thesis__sources a:hover{color:var(--tide)}
.pull{
  border-top:2px solid var(--ink);
  padding-top:1.4rem;
}
.pull p{
  font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.62rem);line-height:1.3;
  color:var(--ink)!important;letter-spacing:-.01em;
}
.pull cite{
  display:block;margin-top:1.1rem;font-family:var(--mono);font-style:normal;
  font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.factlist{margin-top:2.4rem;display:flex;flex-direction:column;gap:1.6rem}
.fact{padding-top:1.1rem;border-top:1px solid var(--line)}
.fact__num{
  font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--tide)!important;
}
.fact__num span{font-family:var(--sans);font-size:.4em;font-weight:300;color:var(--muted);margin-left:.1em}
.fact__text{font-size:.85rem!important;line-height:1.55;color:var(--muted)!important;margin-top:.6rem}

/* ---------- 11. Cards (services) ---------- */
.cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.card{
  padding:clamp(1.6rem,2.4vw,2.3rem);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  position:relative;background:#fff;
  transition:box-shadow .45s var(--ease), transform .45s var(--ease);
}
.card::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--tide);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.card:hover{transform:translateY(-3px);box-shadow:0 26px 50px -42px rgba(11,27,36,.75);z-index:2}
.card:hover::after{transform:scaleX(1)}
.card__idx{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--tide)}
.card__title{
  font-family:var(--serif);font-size:1.42rem;line-height:1.16;letter-spacing:-.01em;
  margin-top:.9rem;color:var(--ink);
}
.card__body{font-size:.9rem;line-height:1.6;margin-top:.7rem}
.card__list{margin-top:1.2rem;display:flex;flex-direction:column;gap:.42rem}
.card__list li{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding-left:1rem;position:relative;
}
.card__list li::before{
  content:"";position:absolute;left:0;top:.52em;width:5px;height:1px;background:var(--tide-2);
}

/* ---------- 12. Platform ---------- */
.loop-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
  gap:clamp(2rem,4vw,4.5rem);align-items:start;
}
.loop-grid__modules{display:flex;flex-direction:column}
.mod{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) auto;
  gap:1.6rem;align-items:start;
  padding-block:1.4rem;border-top:1px solid var(--line-inv);
  transition:background .35s;
}
.mod:last-child{border-bottom:1px solid var(--line-inv)}
.loop-grid .mod__name{
  font-family:var(--serif);font-size:1.35rem;color:var(--paper-lt);
  display:flex;align-items:baseline;gap:.6rem;
}
.mod__code{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:var(--tide-3);
  border:1px solid var(--line-inv);padding:.15em .4em;
}
.loop-grid .mod__desc{font-size:.88rem;line-height:1.6}
.loop-grid .mod__meta{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted-inv);white-space:nowrap;padding-top:.4rem;
}
.console{
  position:sticky;top:104px;
  background:var(--paper-lt);color:var(--ink);
  --body: rgba(11,27,36,.76);
  --muted: rgba(11,27,36,.63);
  border:1px solid var(--line);
  box-shadow:0 40px 70px -50px rgba(0,0,0,.7);
}
.console__bar{
  display:flex;align-items:center;gap:.8rem;
  padding:.7rem .95rem;border-bottom:1px solid var(--line);
  background:var(--white);
}
.console__dots{display:flex;gap:4px}
.console__dots i{width:6px;height:6px;border-radius:50%;background:var(--line);display:block}
.console__title{font-family:var(--mono);font-size:.63rem;letter-spacing:.1em;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.console__badge{
  font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--line);padding:.2em .5em;color:var(--muted);
}
.console__body{padding:1.2rem 1.05rem 1.1rem}
.console .console__kicker{
  font-family:var(--mono);font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.7rem;
}
.console__kicker:not(:first-child){margin-top:1.4rem}
.bars-bars{display:flex;flex-direction:column;gap:.55rem}
.bars-bars li{display:grid;grid-template-columns:1fr;gap:.3rem}
.bars-bars__label{font-size:.73rem;color:var(--body)}
.bars-bars__track{height:5px;background:var(--line-soft);overflow:hidden;position:relative}
.bars-bars__track i{
  display:block;height:100%;width:var(--w);background:var(--tide-2);
  transform-origin:left;animation:barIn 1.2s var(--ease) both;
}
.bars-bars__val{font-family:var(--mono);font-size:.66rem;color:var(--ink);justify-self:end;margin-top:-1.25rem}
.console__metrics{display:flex;flex-direction:column;gap:.1rem}
.console__metrics li{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.5rem 0;border-bottom:1px dashed var(--line-soft);font-size:.76rem;color:var(--body);
}
.console__metrics b{font-family:var(--mono);font-size:.68rem;font-weight:500;color:var(--tide)}
.console__note{margin-top:1.1rem!important;font-family:var(--mono);font-size:.55rem;line-height:1.55;color:var(--muted)!important}

/* ---------- 13. Steps ---------- */
.steps{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(1.2rem,2.4vw,2.2rem);
  counter-reset:step;
  position:relative;
}
.steps::before{
  content:"";position:absolute;left:0;right:0;top:1.55rem;height:1px;
  background:linear-gradient(90deg,var(--tide-2) 0%, var(--tide-2) 18%, var(--line) 18%, var(--line) 100%);
}
.step{position:relative;padding-top:3.1rem}
.step__idx{
  position:absolute;top:0;left:0;
  width:3.1rem;height:3.1rem;border-radius:50%;
  display:grid;place-items:center;
  background:var(--paper);border:1px solid var(--line);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:var(--tide);
  z-index:2;
}
.step__title{font-family:var(--serif);font-size:1.5rem;letter-spacing:-.01em;color:var(--ink)}
.step__body{font-size:.87rem;line-height:1.62;margin-top:.6rem}
.step__out{
  margin-top:1rem!important;padding-top:.75rem;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.6;
}

/* ---------- 14. Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.6rem)}
.pillar{
  border-top:2px solid var(--ink);padding-top:1.4rem;position:relative;
}
.pillar::before{
  content:"";position:absolute;left:0;top:-2px;width:38px;height:2px;background:var(--tide);
}
.pillar__idx{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--tide)}
.pillar__title{font-family:var(--serif);font-size:clamp(1.5rem,2.2vw,1.95rem);line-height:1.12;margin-top:.8rem;color:var(--ink);letter-spacing:-.012em}
.pillar__body{font-size:.92rem;line-height:1.65;margin-top:.9rem}
.pillar__spec{margin-top:1.5rem;display:flex;flex-direction:column;gap:.85rem}
.pillar__spec dt{
  font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.pillar__spec dd{margin:.3rem 0 0;font-size:.83rem;line-height:1.55;color:var(--body)}

/* ---------- 15. Sectors ---------- */
.sectors{border-top:1px solid var(--line)}
.sector{
  display:grid;grid-template-columns:3.5rem minmax(0,1.25fr) minmax(0,1fr);
  gap:1.5rem;align-items:baseline;
  padding:1.35rem .4rem;border-bottom:1px solid var(--line);
  transition:background .35s var(--ease), padding-left .35s var(--ease);
}
.sector:hover{background:var(--paper-lt);padding-left:1rem}
.sector__idx{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:var(--tide)}
.sector__name{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.01em;color:var(--ink)}
.sector__note{font-size:.84rem;color:var(--muted);line-height:1.5}

/* ---------- 16. Insights ---------- */
.feature{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);
  gap:clamp(1.6rem,3.5vw,3.5rem);align-items:center;
  padding:clamp(1.8rem,3vw,3rem);
  background:var(--paper);
  border:1px solid var(--line);
  position:relative;overflow:hidden;
}
.feature::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tide);
}
.feature__meta{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.2rem}
.feature__tag{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tide);
}
.feature__date,.feature__read{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--muted);
}
.feature__title{
  font-family:var(--serif);font-size:clamp(1.75rem,3.2vw,2.65rem);line-height:1.1;
  letter-spacing:-.015em;color:var(--ink);max-width:22ch;
}
.feature__dek{margin-top:1.1rem;font-size:.96rem;line-height:1.68;max-width:58ch}
.feature__dek em{font-style:italic;color:var(--ink)}
.feature .link-arrow{margin-top:1.5rem}
.feature__fig{opacity:.95}
.feature__fig svg{width:100%;height:auto}
.ff-ring{fill:none;stroke:var(--ink);stroke-opacity:.14;stroke-width:1}
.ff-ring--faint{stroke-opacity:.07}
.ff-fill{fill:var(--tide);fill-opacity:.9}
.ff-fill--2{fill:var(--tide-2);fill-opacity:.55}
.ff-core{fill:var(--ink)}
.ff-label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;fill:var(--paper-lt);text-anchor:middle}

.insights-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:1px;
}
.post{
  background:#fff;padding:clamp(1.5rem,2.4vw,2.1rem);
  transition:background .4s var(--ease);
}
.post:hover{background:#fff}
.post__meta{display:flex;gap:1rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.post__meta span:first-child{color:var(--tide)}
.post__title{
  font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.18;
  margin-top:.9rem;color:var(--ink);letter-spacing:-.01em;
}
.post__dek{font-size:.88rem;line-height:1.62;margin-top:.75rem}
.post .link-arrow{margin-top:1.2rem}

/* ---------- 17. Differentiators / models ---------- */
.diffs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.4rem,2.6vw,2.4rem)}
.diff{border-top:2px solid var(--ink);padding-top:1.2rem}
.diff__idx{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--tide)}
.diff__title{font-family:var(--serif);font-size:1.45rem;line-height:1.14;margin-top:.7rem;color:var(--ink);letter-spacing:-.01em}
.diff__body{font-size:.87rem;line-height:1.62;margin-top:.7rem}

.models{margin-top:clamp(2.6rem,5vw,4.4rem);border-top:1px solid var(--line);padding-top:1.5rem}
.models__kicker{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.models__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,2.2rem);margin-top:1.5rem}
.model{background:#fff;border:1px solid var(--line);padding:1.35rem 1.3rem;transition:transform .4s var(--ease), border-color .4s, box-shadow .4s var(--ease)}
.model:hover{transform:translateY(-3px);border-color:var(--tide)}
.model__name{font-family:var(--serif);font-size:1.22rem;color:var(--ink);line-height:1.15}
.model__len{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tide);margin-top:.45rem}
.model__body{font-size:.83rem;line-height:1.58;margin-top:.7rem}

/* ---------- 18. Contact ---------- */
.contact{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(2.5rem,5vw,5rem);align-items:start;
}
.contact__copy .h2{margin-top:1.1rem}
.contact__details{margin-top:2.6rem;display:flex;flex-direction:column;gap:1.3rem;max-width:460px}
.contact .contact__k{color:var(--muted-inv)}
.contact__row{border-top:1px solid var(--line-inv);padding-top:.95rem}
.contact__k{font-family:var(--mono);font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted-inv)}
.contact__v{margin-top:.4rem!important;font-size:.95rem;line-height:1.55;color:var(--paper-lt)!important}
.contact__v--lg{
  font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.15rem)!important;letter-spacing:-.01em;
  border-bottom:1px solid var(--tide-3);display:inline-block;padding-bottom:.1em;transition:color .3s;
}
.contact__v--lg:hover{color:var(--tide-3)!important}

.contact__form-wrap{
  background:var(--paper-lt);color:var(--ink);
  --body: rgba(11,27,36,.76);
  --muted: rgba(11,27,36,.63);
  border:1px solid var(--line);
  padding:clamp(1.6rem,2.6vw,2.2rem);
}
.contact__form-wrap .form__kicker{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1.3rem}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.field label{font-family:var(--mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{
  border:1px solid var(--line);background:var(--white);padding:.78rem .85rem;
  font-size:.92rem;color:var(--ink);border-radius:0;width:100%;
  transition:border-color .25s, box-shadow .25s;
}
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230B1B24' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.2rem;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(11,27,36,.34)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--tide);box-shadow:0 0 0 3px rgba(15,124,123,.1);
}
.field textarea{resize:vertical;min-height:96px;font-family:var(--sans)}
.contact__form-wrap .form__note{
  margin-top:.9rem!important;font-family:var(--mono);font-size:.58rem;line-height:1.6;color:var(--muted)!important;
}

/* ---------- 19. Footer ---------- */
.footer{background:var(--ink);color:var(--body-inv);padding-block:clamp(2.6rem,5vw,4rem) 2rem}
.footer__top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;
  padding-bottom:2.2rem;border-bottom:1px solid var(--line-inv);flex-wrap:wrap;
}
.brand--footer .brand__ring{stroke:var(--paper-lt)}
.brand--footer .brand__drop{fill:var(--paper-lt)}
.brand--footer .brand__name{color:var(--paper-lt)}
.brand--footer .brand__sub{color:var(--muted-inv)}
.footer__nav{display:flex;flex-wrap:wrap;gap:1.6rem}
.footer__nav a{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--body-inv);transition:color .25s;
}
.footer__nav a:hover{color:var(--tide-3)}
.footer__legal{
  margin-top:2rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;
  gap:1.6rem;align-items:start;
}
.footer__entity,.footer__note,.footer__copy{
  font-family:var(--mono);font-size:.6rem;line-height:1.75;letter-spacing:.04em;color:var(--muted-inv)!important;
}
.footer__entity strong{color:var(--paper-lt);font-weight:500;letter-spacing:.08em}
.footer__note{max-width:60ch}
.footer__copy{white-space:nowrap}

/* ---------- 20. Reveal ---------- */
html.js [data-reveal]{
  opacity:0;transform:translateY(22px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);
  transition-delay:var(--rd,0ms);
}
html.js [data-reveal].is-in{opacity:1;transform:none}

/* ---------- 20b. Who we serve ---------- */
.served{
  margin-top:clamp(3rem,6vw,5.5rem);
  border-top:1px solid var(--line);padding-top:1.6rem;
}
.served__kicker{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.served__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.8rem);margin-top:1.8rem}
.served__item{border-top:1px solid var(--line);padding-top:1.2rem}
.served__idx{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--tide)}
.served__title{font-family:var(--serif);font-size:1.45rem;line-height:1.14;margin-top:.7rem;color:var(--ink);letter-spacing:-.01em}
.served__body{font-size:.87rem;line-height:1.62;margin-top:.7rem}

/* ---------- 20c. Proof band ---------- */
.proofband{
  border-top:1px solid var(--line-inv);border-bottom:1px solid var(--line-inv);
  padding-block:1.7rem;margin-bottom:clamp(2.4rem,4.5vw,3.6rem);
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);
  gap:1.6rem clamp(1.5rem,3vw,3rem);align-items:center;
}
.proofband .proofband__kicker{font-family:var(--serif);font-size:clamp(1.2rem,2.1vw,1.55rem);line-height:1.2;color:var(--paper-lt);letter-spacing:-.01em}
.proofband__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.proofband__stats dt{font-family:var(--serif);font-size:clamp(1.6rem,2.5vw,2.2rem);line-height:1;color:var(--tide-3)}
.proofband__stats dt span{font-family:var(--sans);font-size:.44em;font-weight:300;color:var(--paper-lt);opacity:.55;margin-left:.06em}
.proofband__stats dd{margin:.45rem 0 0;font-family:var(--mono);font-size:.57rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-inv);line-height:1.5}
.proofband__note{
  grid-column:1/-1;border-top:1px dashed var(--line-inv);padding-top:.8rem;
  font-family:var(--mono);font-size:.55rem;letter-spacing:.05em;color:var(--muted-inv)!important;line-height:1.6;
}

/* ---------- 21. Responsive ---------- */
@media (max-width:1180px){
  .nav__links{gap:1.1rem}
  .nav__links a{font-size:.78rem}
  .nav__cta-ghost{display:none}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:2.4rem}
  .steps::before{display:none}
  .step{padding-top:0;border-top:1px solid var(--line);padding-top:1.4rem}
  .step__idx{position:static;margin-bottom:.9rem;width:auto;height:auto;background:none;border:none;display:block;padding:0}
}
@media (max-width:1080px){
  .hero__inner{grid-template-columns:1fr;gap:3rem}
  .hero__copy{max-width:none}
  .hero__figure{max-width:620px;margin-inline:auto;width:100%}
  .panel{margin-top:1.4rem}
  .loop-grid{grid-template-columns:1fr}
  .console{position:static}
  .thesis{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .contact__form-wrap{max-width:560px}
  .diffs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .models__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pillars{grid-template-columns:1fr}
  .pillar{padding-bottom:1.4rem;border-bottom:1px solid var(--line)}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .served__grid{grid-template-columns:1fr}
  .proofband{grid-template-columns:1fr}
  .proofband__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .nav__links{display:none}
  .nav__toggle{display:block}
  .nav__actions .btn--solid{display:none}
  .sec-head--split{grid-template-columns:1fr;align-items:start}
  .feature{grid-template-columns:1fr}
  .feature__fig{max-width:220px;order:-1}
  .insights-grid{grid-template-columns:1fr}
  .sector{grid-template-columns:2.6rem minmax(0,1fr);row-gap:.35rem}
  .sector__note{grid-column:2}
  .mod{grid-template-columns:1fr;gap:.5rem}
  .mod__meta{padding-top:.2rem}
  .footer__legal{grid-template-columns:1fr}
}
@media (max-width:620px){
  .cards{grid-template-columns:1fr}
  .panel__list{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .diffs{grid-template-columns:1fr}
  .models__grid{grid-template-columns:1fr}
  .hero__proof{grid-template-columns:1fr 1fr;gap:1.2rem}
  .hero__stat:nth-child(3){grid-column:1 / -1}
  .utility__item--meta .utility__sep,
  .utility__item--meta span:first-child{display:none}
  .mobile-nav{top:110px}
  .footer__top{flex-direction:column}
}

/* ---------- 22. Article pages ---------- */
.article-hero{
  background:var(--ink);color:var(--paper-lt);
  padding:clamp(3rem,6vw,5.4rem) 0 clamp(2.6rem,5vw,4.2rem);
  border-bottom:1px solid var(--line-inv);
}
.article-hero .eyebrow{margin-bottom:1.4rem}
.article-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2.2rem,4.6vw,3.9rem);
  line-height:1.05;letter-spacing:-.018em;
  color:var(--paper-lt);max-width:24ch;
}
.article-dek{
  margin-top:1.5rem;max-width:60ch;
  font-size:clamp(1rem,1.15vw,1.16rem);line-height:1.6;
  font-weight:300;color:var(--body-inv);
}
.article-byline{
  margin-top:1.9rem;padding-top:1rem;border-top:1px solid var(--line-inv);
  font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted-inv);
}

.article-wrap{background:var(--paper-lt);border-top:1px solid transparent}
.article-body{max-width:70ch;padding:clamp(2.6rem,5vw,4.4rem) 0 clamp(3rem,6vw,5rem)}
.article-body > * + *{margin-top:1.15em}
.article-lede{
  font-size:clamp(1.1rem,1.45vw,1.32rem);line-height:1.55;
  font-weight:300;color:var(--ink);
}
.article-lede + p{margin-top:1.35em}
.article-body h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.6rem,2.6vw,2.15rem);line-height:1.14;letter-spacing:-.012em;
  color:var(--ink);margin-top:2.6em;
}
.article-body h3{
  font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tide);margin-top:2em;
}
.article-body ul{padding-left:1.15em}
.article-body li{margin-top:.55em}
.article-body li strong{color:var(--ink)}
.article-body p a:not(.link-arrow){color:var(--tide);text-decoration:underline;text-underline-offset:2px}

.article-pull{
  margin:2.6em 0;padding:1.8em 0 1.8em 1.5em;
  border-left:2px solid var(--tide);
}
.article-pull p{
  font-family:var(--serif);font-size:clamp(1.25rem,2.1vw,1.7rem);line-height:1.34;
  color:var(--ink);font-style:italic;
}
.article-pull cite{
  display:block;margin-top:.9rem;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-style:normal;
}

.article-sources{
  margin-top:3em;padding-top:1.6rem;border-top:1px solid var(--line);
}
.source-list{list-style:none;padding:0;margin-top:1.1rem}
.source-list li{
  display:flex;flex-direction:column;gap:.25rem;
  padding:.85rem 0;border-bottom:1px solid var(--line-soft);
  font-size:.9rem;line-height:1.55;
}
.source-list li:last-child{border-bottom:0}
.source-list a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--tide)}
.source-list a:hover{color:var(--tide)}
.source-list span{color:var(--muted);font-size:.82rem}

.article-cta{
  margin-top:3.2rem;padding:clamp(1.6rem,3vw,2.4rem);
  background:var(--ink);color:var(--paper-lt);
  display:flex;gap:1.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.article-cta__text{
  margin-top:.7rem;max-width:44ch;
  font-family:var(--serif);font-size:1.15rem;line-height:1.4;color:var(--paper-lt);
}

.article-next{
  margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
}
.article-next__link{display:flex;flex-direction:column;gap:.35rem;text-decoration:none}
.article-next__label{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.article-next__title{
  font-family:var(--serif);font-size:1.25rem;color:var(--ink);
  border-bottom:1px solid var(--tide);padding-bottom:.15rem;
}
.article-next__link:hover .article-next__title{color:var(--tide)}
.article-next__link--back{text-align:right;margin-left:auto}

.article-index{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.4rem,2.6vw,2.4rem);
  padding:clamp(2.6rem,5vw,4rem) 0 0;
}
.article-card{
  background:#fff;border:1px solid var(--line);
  padding:clamp(1.5rem,2.4vw,2.2rem);
  transition:transform .4s var(--ease), border-color .4s, box-shadow .4s var(--ease);
}
.article-card:hover{transform:translateY(-3px);border-color:var(--tide);box-shadow:0 12px 30px rgba(11,27,36,.07)}
.article-card__meta{display:flex;gap:1rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.article-card__meta span:first-child{color:var(--tide)}
.article-card__title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.16;letter-spacing:-.012em;
  color:var(--ink);margin-top:.9rem;
}
.article-card__dek{font-size:.9rem;line-height:1.65;margin-top:.8rem}
.article-card .link-arrow{margin-top:1.3rem}

@media (max-width:860px){
  .article-index{grid-template-columns:1fr}
  .article-cta{flex-direction:column;align-items:flex-start}
  .article-next__link--back{text-align:left;margin-left:0}
}

/* ---------- 23. Motion & print ---------- */
@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  [data-reveal]{opacity:1;transform:none}
  .loop__dash,.loop__dash--slow{animation:none}
}
@media print{
  .nav,.utility,.mobile-nav,.marquee,.panel,.form{display:none}
  .section--ink,.footer{background:#fff;color:#000}
  body{background:#fff}
}
