/* ============================================================
   KYOORA — design system
   Bricolage Grotesque (display) · IBM Plex Mono (labels) · Manrope (body)
   ============================================================ */

:root{
  /* palette */
  --pink:#E91E8C;
  --pink-2:#E73590;
  --purple:#7F2285;
  --indigo:#0D0A4F;       /* ink */
  --indigo-2:#160E7A;
  --night:#0a0822;
  --night-2:#060417;
  --paper:#F8FAFC;
  --paper-2:#F1F4F9;
  --white:#ffffff;
  --muted:#6B7280;
  --muted-2:#9aa1ad;
  --line:#E5E7EB;
  --line-soft:#eef1f5;

  /* derived accents (driven by Tweaks) */
  --accent:var(--pink);
  --accent-soft:rgba(233,30,140,.10);

  /* type */
  --f-display:'Bricolage Grotesque','Manrope',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;
  --f-body:'Manrope',system-ui,sans-serif;

  /* rhythm */
  --maxw:1200px;
  --gutter:clamp(20px,5vw,64px);
  --section-y:clamp(72px,11vw,148px);
  --radius:14px;
  --radius-lg:20px;

  /* motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --reveal-dist:26px;
  --reveal-dur:.9s;
}

*{margin:0;padding:0;box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--f-body);
  background:var(--paper);
  color:var(--indigo);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent-soft);color:var(--indigo)}

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ position:relative; padding-block:var(--section-y); }
.section--tight{ padding-block:clamp(56px,8vw,104px); }

/* hairline rule shared by section heads */
.rule{ height:1px; background:var(--line); border:0; }

/* ---------- type system ---------- */
.eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;align-items:center;gap:11px;
}
.eyebrow::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
  flex:0 0 auto;
}
.eyebrow--plain::before{display:none}

h1,h2,h3{ font-family:var(--f-display); font-weight:700; letter-spacing:-.022em; line-height:1.04; color:var(--indigo); text-wrap:balance; }
.h-display{ font-size:clamp(2.6rem,6.2vw,4.6rem); line-height:.99; letter-spacing:-.03em; }
.h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); }
.h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); }
.h3{ font-size:clamp(1.18rem,1.6vw,1.45rem); letter-spacing:-.015em; }
.accent{ color:var(--accent); }

.lede{ font-size:clamp(1.06rem,1.5vw,1.32rem); line-height:1.55; color:#3a3766; font-weight:450; max-width:42ch; text-wrap:pretty; }
.body{ font-size:1.02rem; line-height:1.62; color:#43415f; font-weight:430; text-wrap:pretty; }
.muted{ color:var(--muted); }
.measure{ max-width:60ch; }
.measure-sm{ max-width:46ch; }

/* inline text link with drawn underline */
.tlink{
  display:inline-flex;align-items:center;gap:.5em;
  font-weight:600;color:var(--indigo);
  font-size:1rem;white-space:nowrap;
  border-bottom:1.5px solid var(--accent);
  padding-bottom:2px;
  transition:gap .35s var(--ease),color .35s var(--ease);
}
.tlink .arr{ color:var(--accent); transition:transform .35s var(--ease); }
.tlink:hover{ gap:.8em; }
.tlink:hover .arr{ transform:translateX(3px); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--f-body);font-weight:600;font-size:1rem;
  padding:.86em 1.35em;border-radius:11px;
  border:1px solid transparent;cursor:pointer;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
  white-space:nowrap;
}
.btn .arr{ transition:transform .4s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }
.btn--primary{ background:var(--indigo); color:#fff; box-shadow:0 1px 2px rgba(13,10,79,.18); }
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(13,10,79,.22); }
.btn--ghost{ background:transparent; color:var(--indigo); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--indigo); transform:translateY(-2px); }
.btn--light{ background:#fff; color:var(--indigo); }
.btn--light:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.28); }
.btn--ondark{ background:transparent;color:#fff;border-color:rgba(255,255,255,.24); }
.btn--ondark:hover{ border-color:rgba(255,255,255,.6); transform:translateY(-2px); }

/* ---------- blueprint mesh ---------- */
.mesh{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(rgba(13,10,79,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,10,79,.05) 1px, transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(120% 100% at 72% 24%, #000 0%, transparent 72%);
  mask-image:radial-gradient(120% 100% at 72% 24%, #000 0%, transparent 72%);
  opacity:.7;
}
.mesh--dark{
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
}
.glow-pink{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(46% 52% at 84% 14%, rgba(233,30,140,.07), transparent 70%);
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  transition:background .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav__inner{
  max-width:var(--maxw);margin-inline:auto;
  padding:18px var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  transition:padding .4s var(--ease);
}
.nav.is-stuck{
  background:rgba(248,250,252,.82);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom-color:var(--line);
}
.nav.is-stuck .nav__inner{ padding-block:12px; }
.brand{ display:flex;align-items:center;gap:10px; }
.brand img{ height:26px;width:auto; }
.nav__links{ display:flex;align-items:center;gap:6px; }
.nav__link{
  font-size:.95rem;font-weight:550;color:#46435f;
  padding:9px 13px;border-radius:9px;
  transition:color .25s var(--ease),background .25s var(--ease);
}
.nav__link:hover{ color:var(--indigo);background:rgba(13,10,79,.04); }
.nav__cta{ margin-left:8px; padding:.62em 1.1em; font-size:.95rem; }
.nav__burger{ display:none; }

/* ============================================================
   HERO (shared)
   ============================================================ */
.hero{ position:relative; padding-top:clamp(128px,17vh,184px); padding-bottom:clamp(64px,9vw,108px); overflow:hidden; }
.hero__eyebrow{ margin-bottom:26px; }
.hero__h1{ margin-bottom:26px; }
.hero__sub{ margin-bottom:38px; }
.hero__cta{ display:flex;flex-wrap:wrap;gap:14px;align-items:center; }
.hero__meta{
  margin-top:clamp(40px,6vw,68px);
  display:flex;flex-wrap:wrap;gap:8px 30px;align-items:center;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;color:var(--muted);
}
.hero__meta b{ color:var(--indigo);font-weight:600; }
.hero__meta .dot{ width:4px;height:4px;border-radius:50%;background:var(--line); }

/* default: hide all heroes, body[data-hero] shows one */
.hero[data-variant]{ display:none; }
body[data-hero="1"] .hero[data-variant="1"],
body[data-hero="2"] .hero[data-variant="2"],
body[data-hero="3"] .hero[data-variant="3"]{ display:block; }

/* infinity svg */
.infinity{ width:100%;height:auto;overflow:visible; }
.infinity path{ stroke-linecap:round;stroke-linejoin:round; }
.infinity .draw{
  stroke-dasharray:var(--len,1000);
  stroke-dashoffset:var(--len,1000);
}
body.motion-on .infinity.is-in .draw{
  animation:draw 2.6s var(--ease-out) forwards;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
/* breathing node pulse */
.node{ transform-box:fill-box;transform-origin:center; }
body.motion-on .infinity.is-in .node{ animation:nodepulse 3.4s var(--ease) infinite; }
.node:nth-of-type(2){ animation-delay:.5s; }
.node:nth-of-type(3){ animation-delay:1s; }
@keyframes nodepulse{ 0%,100%{ opacity:.55;r:3.4; } 50%{ opacity:1;r:4.6; } }

/* ---- Hero variant 1 : drawn infinity, editorial split ---- */
.hero1__grid{ display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center; }
.hero1__art{ position:relative; }
.hero1__art .infinity{ max-width:540px;margin-inline:auto; }
.hero1__caption{
  margin-top:18px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.hero1__caption .sep{ color:var(--accent); }

/* hero art : stacked OS layers (compounding) */
.os-stack{ position:relative;max-width:430px;margin:6px auto 0;padding:6px 0 4px; }
.os-layer{
  position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:baseline;
  padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#ffffff,#fafbff);
  box-shadow:0 22px 46px -28px rgba(13,10,79,.32);
}
.os-layer::before{ content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,#7B2FBE,#C026A0,#E91E8C); }
.os-layer + .os-layer{ margin-top:-12px; }
.os-layer--1{ margin-right:46px;z-index:1; }
.os-layer--2{ margin-left:23px;margin-right:23px;z-index:2;
  background:linear-gradient(180deg,#fff,#fdf4fa);border-color:#f1d9ec;
  box-shadow:0 30px 60px -28px rgba(192,38,160,.40); }
.os-layer--3{ margin-left:46px;z-index:3; }
.os-layer__num{ grid-row:1 / span 2;align-self:center;font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--muted-2);letter-spacing:.04em; }
.os-layer--2 .os-layer__num{ color:var(--purple); }
.os-layer__name{ font-family:var(--f-display);font-weight:700;font-size:1.18rem;color:var(--indigo);line-height:1.1; }
.os-layer__sub{ font-family:var(--f-mono);font-size:11px;letter-spacing:.05em;color:var(--muted); }

/* ---- Hero variant 2 : centered atmospheric ---- */
.hero2{ text-align:center; }
.hero2 .wrap{ display:flex;flex-direction:column;align-items:center; }
.hero2__h1{ max-width:16ch; }
.hero2 .lede{ max-width:54ch; }
.hero2 .hero__cta{ justify-content:center; }
.hero2__ghost{
  position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);
  width:min(1240px,132vw);z-index:0;opacity:.3;pointer-events:none;
  -webkit-mask-image:radial-gradient(60% 60% at 50% 50%, transparent 28%, #000 64%);
  mask-image:radial-gradient(60% 60% at 50% 50%, transparent 28%, #000 64%);
}
.hero2__ghost .infinity .draw{ stroke-width:1.4; }
.hero2 .wrap{ position:relative;z-index:1; }

/* ---- Hero variant 3 : spine / data-forward ---- */
.hero3__grid{ display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,64px);align-items:center; }
.spine{
  position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff,#fcfdff);
  padding:clamp(22px,3vw,34px);overflow:hidden;
  box-shadow:0 30px 60px -42px rgba(13,10,79,.30);
}
.spine__lbl{ font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;display:flex;justify-content:space-between; }
.spine__row{ display:grid;grid-template-columns:128px 1fr;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--line-soft); }
.spine__row:first-of-type{ border-top:0; }
.spine__n{ font-family:var(--f-display);font-weight:700;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em; }
.spine__n.is-mid{ color:var(--accent); }
.spine__t{ font-size:.95rem;color:#43415f;line-height:1.3; }
.spine__t b{ color:var(--indigo);font-weight:650; }
.spine__thread{ position:absolute;right:18px;top:0;bottom:0;width:40px;pointer-events:none;opacity:.5; }
.hero3 .spine{ padding-right:64px; }

/* ============================================================
   SECTION: THE MARKET
   ============================================================ */
.sec-head{ display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:clamp(40px,5vw,64px); }
.sec-head__top{ display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap; }

.market__grid{ display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px);align-items:start; }
.statline{ display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line); }
.statline .stat{
  padding:22px 4px 22px 0;border-bottom:1px solid var(--line);
}
.statline .stat:nth-child(odd){ padding-right:26px;border-right:1px solid var(--line); }
.statline .stat:nth-child(even){ padding-left:26px; }
.stat__n{ font-family:var(--f-display);font-weight:700;font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.024em;line-height:1; }
.stat__t{ margin-top:8px;font-size:.92rem;color:var(--muted);line-height:1.35;font-weight:480; }
.market__close{ margin-top:36px;padding-top:30px;border-top:1px solid var(--line); }

/* ============================================================
   SECTION: PILLARS
   ============================================================ */
.pillars{ display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line); }
.pillar{
  position:relative;padding:34px clamp(20px,2.4vw,34px) 38px;
  border-bottom:1px solid var(--line);
  transition:background .4s var(--ease);
}
.pillar + .pillar{ border-left:1px solid var(--line); }
.pillar:hover{ background:var(--paper-2); }
.pillar__num{ font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;color:var(--accent);font-weight:500; }
.pillar__sys{ font-family:var(--f-mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);margin-top:18px;margin-bottom:4px; }
.pillar__name{ margin-top:14px;margin-bottom:14px; }
.pillar__body{ font-size:.98rem;line-height:1.58;color:#43415f; }
.pillar__line{
  position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);
  transition:width .55s var(--ease);
}
.pillar:hover .pillar__line{ width:38%; }

/* ============================================================
   SECTION: DARK FY30 BAND
   ============================================================ */
.darkband{
  position:relative;color:#eceaff;overflow:hidden;
  background:radial-gradient(120% 120% at 50% -10%, var(--indigo-2) 0%, var(--night) 58%, var(--night-2) 100%);
}
.darkband .eyebrow{ color:var(--pink-2); }
.darkband h2{ color:#fff; }
.darkband .lede{ color:#bfbce0; }
.fy30{ display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px);margin-top:clamp(40px,5vw,60px); }
.fy30__cell{ position:relative;padding-top:26px;border-top:1px solid rgba(255,255,255,.16); }
.fy30__n{ font-family:var(--f-display);font-weight:700;font-size:clamp(2.4rem,4.6vw,3.5rem);letter-spacing:-.03em;line-height:.95;color:#fff; }
.fy30__n .u{ color:var(--pink-2); }
.fy30__t{ margin-top:14px;font-size:1rem;color:#bfbce0;line-height:1.45;max-width:24ch; }
.fy30__tag{ font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8a87bd;margin-bottom:14px; }
.darkband__note{
  margin-top:clamp(36px,5vw,56px);padding-top:26px;border-top:1px solid rgba(255,255,255,.14);
  font-size:1.02rem;color:#bfbce0;max-width:60ch;
}
.darkband__note b{ color:#fff;font-weight:600; }

/* ============================================================
   SECTION: FOUNDER'S OFFICE STRIP
   ============================================================ */
.posts{ display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px); }
.post{
  display:flex;flex-direction:column;gap:16px;
  border:1px solid var(--line);border-radius:var(--radius);
  background:#fff;padding:24px 24px 26px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.post:hover{ transform:translateY(-4px);box-shadow:0 26px 50px -36px rgba(13,10,79,.4);border-color:#dfe3ea; }
.post__kind{ font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex;gap:10px;align-items:center; }
.post__kind .when{ color:var(--muted); }
.post__title{ font-family:var(--f-display);font-weight:600;font-size:1.18rem;letter-spacing:-.015em;line-height:1.2;color:var(--indigo); }
.post__body{ font-size:.95rem;line-height:1.55;color:#54526e;flex:1; }
.post__more{ font-family:var(--f-mono);font-size:11.5px;letter-spacing:.08em;color:var(--indigo);display:inline-flex;gap:8px;align-items:center; }
.post__more .arr{ color:var(--accent);transition:transform .35s var(--ease); }
.post:hover .post__more .arr{ transform:translateX(4px); }

/* ============================================================
   SECTION: TWO DOORS
   ============================================================ */
.doors{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2vw,24px); }
.door{
  position:relative;overflow:hidden;
  border-radius:var(--radius-lg);padding:clamp(30px,3.4vw,46px);
  display:flex;flex-direction:column;min-height:300px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.door:hover{ transform:translateY(-4px); }
.door--light{ background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(13,10,79,.04); }
.door--light:hover{ box-shadow:0 30px 60px -40px rgba(13,10,79,.35); }
.door--dark{ color:#eceaff;background:radial-gradient(120% 120% at 80% 0%, var(--indigo-2), var(--night) 70%); }
.door--dark:hover{ box-shadow:0 30px 60px -36px rgba(13,10,79,.6); }
.door__eyebrow{ font-family:var(--f-mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:auto; }
.door--dark .door__eyebrow{ color:var(--pink-2); }
.door__h{ font-family:var(--f-display);font-weight:650;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em;line-height:1.08;margin-top:34px; }
.door--dark .door__h{ color:#fff; }
.door__p{ margin-top:16px;font-size:1rem;line-height:1.55;color:#43415f;max-width:36ch; }
.door--dark .door__p{ color:#bfbce0; }
.door__cta{ margin-top:28px; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ position:relative;background:var(--night-2);color:#a9a7cc;overflow:hidden; }
.footer__top{ display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(28px,4vw,52px);padding-block:clamp(56px,7vw,84px); }
.footer__brand img{ height:28px;filter:brightness(0) invert(1);opacity:.96; }
.footer__pos{ margin-top:20px;font-size:.96rem;line-height:1.6;color:#8a87bd;max-width:34ch; }
.footer__col h4{ font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6f6c9c;font-weight:500;margin-bottom:18px; }
.footer__col a,.footer__col span{ display:block;font-size:.96rem;color:#cbc9e6;margin-bottom:11px;transition:color .25s var(--ease); }
.footer__col a:hover{ color:#fff; }
.footer__col .ph{ color:#6f6c9c;font-style:normal; }
.footer__bottom{
  display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;
  padding-block:24px;border-top:1px solid rgba(255,255,255,.09);
  font-size:.86rem;color:#6f6c9c;
}
.footer__bottom a:hover{ color:#cbc9e6; }

/* ============================================================
   INTERIOR PAGES — shared components
   ============================================================ */
/* page hero spacing */
.phero{ text-align:left; }
.phero .eyebrow{ margin-bottom:24px; }
.phero h1{ margin-bottom:24px;max-width:20ch; }
.phero .lede{ max-width:62ch; }
.phero__cta{ margin-top:34px;display:flex;flex-wrap:wrap;gap:14px;align-items:center; }

/* long-form prose */
.prose{ max-width:68ch; }
.prose h2{ font-size:clamp(1.5rem,2.6vw,2.1rem);margin-top:clamp(44px,5vw,64px);margin-bottom:16px; }
.prose h2:first-child{ margin-top:0; }
.prose p{ font-size:1.06rem;line-height:1.7;color:#43415f;margin-bottom:18px;text-wrap:pretty; }
.prose p strong{ color:var(--indigo);font-weight:650; }
.prose p em{ color:var(--purple);font-style:italic; }
.pull{
  margin:clamp(34px,4vw,48px) 0;padding:6px 0 6px 28px;
  border-left:3px solid var(--accent);
  font-family:var(--f-display);font-weight:600;font-size:clamp(1.35rem,2.4vw,1.85rem);
  line-height:1.25;letter-spacing:-.02em;color:var(--indigo);text-wrap:balance;
}

/* generic info cards (3-up) */
.cards{ display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,24px); }
.card{
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  padding:28px 26px 30px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.card:hover{ transform:translateY(-4px);box-shadow:0 26px 50px -36px rgba(13,10,79,.4);border-color:#dfe3ea; }
.card__k{ font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent); }
.card__h{ font-family:var(--f-display);font-weight:650;font-size:1.28rem;letter-spacing:-.015em;color:var(--indigo);margin:14px 0 12px; }
.card__b{ font-size:.98rem;line-height:1.58;color:#43415f; }
.card__tag{ margin-top:18px;font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;color:var(--muted); }

/* numbered steps */
.steps{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,34px); }
.step{ display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start; }
.step__n{ font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--accent);padding-top:3px; }
.step__h{ font-family:var(--f-display);font-weight:650;font-size:1.18rem;color:var(--indigo);margin-bottom:8px; }
.step__b{ font-size:.98rem;line-height:1.55;color:#43415f;max-width:42ch; }

/* testimonial / quote */
.quote{ max-width:60ch;margin-inline:auto;text-align:center; }
.quote__mark{ font-family:var(--f-display);font-size:4rem;line-height:.6;color:var(--accent);opacity:.5; }
.quote__t{ font-family:var(--f-display);font-weight:600;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.3;letter-spacing:-.02em;color:var(--indigo);margin-top:14px;text-wrap:balance; }
.quote__a{ margin-top:24px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted); }

/* forms */
.form{ border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;padding:clamp(26px,3vw,38px);box-shadow:0 30px 60px -44px rgba(13,10,79,.3); }
.field{ margin-bottom:18px; }
.field label{ display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px; }
.field input,.field textarea{
  width:100%;font-family:var(--f-body);font-size:1rem;color:var(--indigo);
  border:1px solid var(--line);border-radius:11px;background:var(--paper);
  padding:.82em 1em;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);
}
.field textarea{ min-height:104px;resize:vertical; }
.field input:focus,.field textarea:focus{ outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px var(--accent-soft); }
.form__note{ font-size:12px;color:var(--muted);margin-top:14px;text-align:center; }
.form-msg{ margin-top:16px;font-size:.92rem;line-height:1.5;text-align:center;text-wrap:pretty; }
.form-msg--ok{ color:var(--purple);font-weight:600; }
.form-msg--err{ color:#b4232a; }
.inline-form{ display:flex;gap:10px;flex-wrap:wrap; }
.inline-form input{ flex:1;min-width:230px;border:1px solid var(--line);border-radius:11px;padding:.82em 1em;font-family:var(--f-body);font-size:1rem;background:#fff; }
.inline-form input:focus{ outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft); }

/* WhatsApp button */
.wa{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--f-body);font-weight:600;font-size:1rem;
  padding:.82em 1.3em;border-radius:11px;background:#25D366;color:#0a3d1e;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.wa:hover{ transform:translateY(-2px);box-shadow:0 14px 30px rgba(37,211,102,.32); }
.wa svg{ flex:0 0 auto; }

/* two-column split (form + copy) */
.split{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start; }

/* dark CTA band reuse of darkband for centered cta */
.darkband--center{ text-align:center; }
.darkband--center .lede{ margin-inline:auto; }
.darkband--center .hero__cta{ justify-content:center; }

/* office featured note */
.feature-note{
  display:block;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;
  padding:clamp(30px,3.4vw,44px);margin-bottom:clamp(22px,2.6vw,30px);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.feature-note:hover{ transform:translateY(-4px);box-shadow:0 30px 60px -40px rgba(13,10,79,.36);border-color:#dfe3ea; }
.feature-note__title{ font-family:var(--f-display);font-weight:650;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.02em;line-height:1.12;color:var(--indigo);margin:16px 0 14px;max-width:26ch; }
.feature-note__body{ font-size:1.04rem;line-height:1.6;color:#43415f;max-width:64ch; }

/* newsletter strip */
.subscribe{
  margin-top:clamp(38px,4vw,52px);border:1px dashed var(--line);border-radius:var(--radius);
  background:var(--paper-2);padding:clamp(22px,2.6vw,30px);
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.subscribe__h{ font-family:var(--f-display);font-weight:700;font-size:1.18rem;color:var(--indigo); }
.subscribe__s{ font-size:.92rem;color:var(--muted);margin-top:5px; }

/* article header + long-form figures */
.art-head{ max-width:74ch; }
.art-meta{ display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted); }
.art-meta .kind{ color:var(--accent); }
.art-meta .dot{ width:3px;height:3px;border-radius:50%;background:var(--line); }
.art-title{ font-family:var(--f-display);font-weight:700;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.04;letter-spacing:-.03em;color:var(--indigo);margin:20px 0 18px;text-wrap:balance; }
.art-standfirst{ font-size:clamp(1.1rem,1.9vw,1.35rem);line-height:1.5;color:#43415f;max-width:60ch; }
.byline{ margin-top:26px;display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:22px;border-top:1px solid var(--line); }

.figure{ margin:clamp(34px,4.4vw,56px) 0; }
.figure svg{ display:block;width:100%;height:auto; }
.figure__cap{ margin-top:14px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);line-height:1.5;max-width:60ch; }
.figure__cap b{ color:var(--indigo);font-weight:600; }
.figure-frame{ border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fff,var(--paper-2));padding:clamp(24px,3vw,40px); }

/* end-of-article author note */
.endnote{ margin-top:clamp(40px,5vw,60px);padding-top:26px;border-top:1px solid var(--line);font-size:.96rem;line-height:1.6;color:var(--muted);max-width:60ch; }
.endnote b{ color:var(--indigo);font-weight:600; }

/* back link */
.backlink{ display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .3s var(--ease); }
.backlink:hover{ color:var(--accent); }

@media (max-width:960px){
  .cards{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
}

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal{ opacity:0;transform:translateY(var(--reveal-dist)); }
body.motion-on .reveal{ transition:opacity var(--reveal-dur) var(--ease-out),transform var(--reveal-dur) var(--ease-out);transition-delay:var(--d,0ms); }
body.motion-on .reveal.is-in{ opacity:1;transform:none; }
body:not(.motion-on) .reveal{ opacity:1;transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .nav__links{
    position:fixed;inset:0 0 auto 0;top:0;
    flex-direction:column;align-items:stretch;gap:2px;
    background:rgba(248,250,252,.97);backdrop-filter:blur(16px);
    padding:88px var(--gutter) 28px;
    transform:translateY(-102%);transition:transform .5s var(--ease);
    box-shadow:0 30px 60px -30px rgba(13,10,79,.3);
    border-bottom:1px solid var(--line);
  }
  body.menu-open .nav__links{ transform:translateY(0); }
  .nav__link{ padding:14px 6px;font-size:1.05rem;border-bottom:1px solid var(--line-soft); }
  .nav__cta{ margin:14px 0 0;justify-content:center; }
  .nav__burger{
    display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
    width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer;
    align-items:center;z-index:61;
  }
  .nav__burger span{ display:block;width:18px;height:1.6px;background:var(--indigo);transition:transform .4s var(--ease),opacity .3s var(--ease); }
  body.menu-open .nav__burger span:nth-child(1){ transform:translateY(6.6px) rotate(45deg); }
  body.menu-open .nav__burger span:nth-child(2){ opacity:0; }
  body.menu-open .nav__burger span:nth-child(3){ transform:translateY(-6.6px) rotate(-45deg); }

  .hero1__grid,.hero3__grid,.market__grid{ grid-template-columns:1fr; }
  .hero1__art{ order:-1;max-width:420px; }
  .hero3 .spine{ margin-top:8px; }
  .pillars{ grid-template-columns:1fr; }
  .pillar + .pillar{ border-left:0; }
  .fy30{ grid-template-columns:1fr; gap:0; }
  .fy30__cell{ padding-block:26px; }
  .posts{ grid-template-columns:1fr; }
  .doors{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr 1fr; }
  .footer__brand{ grid-column:1/-1; }
}
@media (max-width:560px){
  .statline{ grid-template-columns:1fr; }
  .statline .stat:nth-child(odd){ border-right:0;padding-right:0; }
  .statline .stat:nth-child(even){ padding-left:0; }
  .hero__cta .btn{ width:100%;justify-content:center; }
  .footer__top{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  body.motion-on .reveal{ transition:none; }
  .reveal{ opacity:1!important;transform:none!important; }
  .infinity .draw{ stroke-dashoffset:0!important;animation:none!important; }
  .node{ animation:none!important; }
}
