/* =========================================================================
   WeInnovateTech — design system
   Engineering ideas into technology.
   ========================================================================= */

/* --- 0. Fonts (self-hosted, latin subset) ------------------------------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/inter-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/inter-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/inter-latin-600-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* --- 1. Tokens ---------------------------------------------------------- */
:root{
  /* surface */
  --bg:            #09090A;
  --bg-raise:      #0D0E10;
  --surface:       #121316;
  --surface-2:     #17191D;
  --line:          #1F2126;
  --line-strong:   #2C2F36;

  /* ink */
  --ink:           #EDEEF0;
  --ink-2:         #A7ABB3;
  --ink-3:         #787C83;
  --ink-4:         #868B93;
  --hair:          #43474E;

  /* signal */
  --accent:        #A3E635;
  --accent-soft:   #C7EE86;
  --accent-deep:   #4D7C0F;
  --accent-wash:   rgba(163,230,53,.10);
  --accent-line:   rgba(163,230,53,.34);

  /* type */
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --fs-display: clamp(2.6rem, 1.3rem + 5.4vw, 5.25rem);
  --fs-h1:      clamp(2.2rem, 1.4rem + 3.4vw, 3.9rem);
  --fs-h2:      clamp(1.85rem, 1.3rem + 2.3vw, 3rem);
  --fs-h3:      clamp(1.15rem, 1.04rem + .5vw, 1.45rem);
  --fs-lead:    clamp(1.02rem, .96rem + .38vw, 1.22rem);
  --fs-sm:      .875rem;
  --fs-xs:      .78rem;

  /* space */
  --gutter:  clamp(1.25rem, 4vw, 3rem);
  --maxw:    1200px;
  --section: clamp(4rem, 2.4rem + 5vw, 7rem);

  --r-sm: 6px;
  --r:    10px;
  --r-lg: 16px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --dur:  .5s;

  color-scheme: dark;
}

/* --- 2. Reset ----------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.6;
  font-feature-settings:"cv11","ss01";
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p,figure,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:var(--accent);color:#0A0A0B}

/* --- 3. Layout ---------------------------------------------------------- */
.wrap{width:min(100% - (var(--gutter) * 2), var(--maxw));margin-inline:auto}
.section{padding-block:var(--section);position:relative}
.section--tight{padding-block:clamp(3.25rem,2.2rem + 3.4vw,5rem)}
.hr{height:1px;background:var(--line);border:0;margin:0}
.stack>*+*{margin-top:var(--gap,1rem)}
.stack--xs{--gap:.6rem}
.stack--sm{--gap:.9rem}
.stack--md{--gap:1.3rem}
.stack--lg{--gap:2rem}
.mt-6{margin-top:2.5rem}
.mb-4{margin-bottom:1.25rem}
.mb-5{margin-bottom:1.5rem}

/* fine vertical rules that frame the page — technical grid language */
.frame{position:fixed;inset:0;z-index:0;pointer-events:none;display:none}
.frame__inner{width:min(100% - (var(--gutter) * 2), var(--maxw));height:100%;margin-inline:auto;position:relative}
.frame__inner::before,.frame__inner::after{
  content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.65
}
.frame__inner::before{left:-1px}
.frame__inner::after{right:-1px}
@media (min-width:1320px){.frame{display:block}}
.page{position:relative;z-index:1}

/* --- 4. Typography ------------------------------------------------------ */
.eyebrow{
  font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  display:inline-flex;align-items:center;gap:.6rem;
}
.eyebrow--muted{color:var(--ink-3)}
.eyebrow::before{content:"";width:1.5rem;height:1px;background:currentColor;opacity:.55;flex:none}
.eyebrow--bare::before{display:none}

.display{
  font-size:var(--fs-display);line-height:1.02;letter-spacing:-.035em;
  font-weight:600;text-wrap:balance;
}
h1,.h1{font-size:var(--fs-h1);line-height:1.06;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
h2,.h2{font-size:var(--fs-h2);line-height:1.1;letter-spacing:-.028em;font-weight:600;text-wrap:balance}
h3,.h3{font-size:var(--fs-h3);line-height:1.28;letter-spacing:-.017em;font-weight:600}
.lead{font-size:var(--fs-lead);line-height:1.62;color:var(--ink-2);text-wrap:pretty}
.muted{color:var(--ink-2)}
.dim{color:var(--ink-3)}
.mono{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase}
.measure{max-width:62ch}
.measure-sm{max-width:48ch}
.accent{color:var(--accent)}

/* section heading block */
.sec-head{display:grid;gap:1.15rem;margin-bottom:clamp(2.5rem,1.6rem + 2.6vw,4rem)}
.sec-head__row{display:grid;gap:1.5rem}
@media (min-width:900px){
  .sec-head--split .sec-head__row{grid-template-columns:minmax(0,1.05fr) minmax(0,.85fr);align-items:end;gap:3rem}
}

/* --- 5. Buttons & links ------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.85rem 1.35rem;border-radius:var(--r);
  font-size:.9375rem;font-weight:500;letter-spacing:-.01em;
  border:1px solid transparent;cursor:pointer;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform .2s var(--ease);
  will-change:transform;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--accent);color:#0A0A0B;font-weight:600}
.btn--primary:hover{background:var(--accent-soft)}
.btn--ghost{border-color:var(--line-strong);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink-4);background:var(--surface)}
.btn--lg{padding:1rem 1.6rem;font-size:1rem}
.btn .arw{transition:transform .35s var(--ease)}
.btn:hover .arw{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

.link{
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:var(--fs-sm);font-weight:500;color:var(--accent);
}
.link .arw{transition:transform .35s var(--ease)}
.link:hover .arw{transform:translateX(4px)}
.link--quiet{color:var(--ink-2)}
.link--quiet:hover{color:var(--ink)}

/* --- 6. Header ---------------------------------------------------------- */
.hdr{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.hdr.is-stuck{border-bottom-color:var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:72px}
.brand{display:inline-flex;align-items:center;gap:.7rem;flex:none}
.brand svg{height:26px;width:auto}
.brand__name{font-weight:600;letter-spacing:-.025em;font-size:1.0625rem}
.brand__name em{font-style:normal;color:var(--ink)}

.nav{display:none;align-items:center;gap:.35rem}
.nav a{
  padding:.5rem .8rem;border-radius:var(--r-sm);font-size:.9375rem;color:var(--ink-2);
  transition:color .3s var(--ease),background .3s var(--ease);position:relative;
}
.nav a:hover{color:var(--ink);background:var(--surface)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a[aria-current="page"]::after{
  content:"";position:absolute;left:.8rem;right:.8rem;bottom:.15rem;height:1px;background:var(--accent)
}
.hdr__cta{display:none}
@media (min-width:940px){
  .nav{display:flex}
  .hdr__cta{display:inline-flex}
}

/* mobile menu */
.burger{
  display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:42px;height:42px;padding:0 10px;border:1px solid var(--line-strong);
  border-radius:var(--r-sm);background:transparent;cursor:pointer;
}
.burger span{height:1.5px;background:var(--ink);transition:transform .35s var(--ease),opacity .2s linear}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media (min-width:940px){.burger{display:none}}

.mnav{
  position:fixed;inset:72px 0 0;z-index:55;background:var(--bg);
  border-top:1px solid var(--line);
  padding:1.5rem var(--gutter) 2.5rem;
  display:flex;flex-direction:column;
  transform:translateY(-8px);opacity:0;visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
  overflow-y:auto;
}
.mnav.is-open{opacity:1;transform:none;visibility:visible}
.mnav a.mnav__item{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.15rem 0;border-bottom:1px solid var(--line);
  font-size:1.35rem;font-weight:500;letter-spacing:-.02em;
}
.mnav a.mnav__item .idx{font-family:var(--mono);font-size:.7rem;color:var(--ink-4);letter-spacing:.1em}
.mnav__foot{margin-top:auto;padding-top:2rem;display:grid;gap:1rem}
.mnav__mail{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-2);word-break:break-all}
body.is-locked{overflow:hidden}
@media (min-width:940px){.mnav{display:none}}

/* --- 7. Hero ------------------------------------------------------------ */
.hero{position:relative;padding-top:clamp(2.75rem,1.5rem + 4vw,5rem);padding-bottom:clamp(3rem,1.8rem + 4vw,5.5rem);overflow:hidden}
.hero .eyebrow{margin-bottom:1.6rem}
.hero .display{margin-bottom:clamp(2rem,1.2rem + 2.4vw,3.25rem)}
.hero__grid{display:grid;gap:clamp(2.5rem,1rem + 5vw,4rem);align-items:center}
@media (min-width:1000px){.hero__grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}}
@media (min-width:1120px){.netwrap{margin-top:-7.5rem;margin-bottom:-2rem}}
.hero__copy{display:grid;gap:1.7rem;justify-items:start;align-content:center}
.hero .lead{max-width:46ch}
.hero__meta{
  display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;padding-top:.6rem;
  font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)
}
.hero__meta span{display:inline-flex;align-items:center;gap:.5rem}
.hero__meta span::before{content:"";width:4px;height:4px;background:var(--accent);flex:none;transform:rotate(45deg)}

/* ambient wash behind hero */
.hero::before{
  content:"";position:absolute;top:-30%;right:-10%;width:70%;height:120%;
  background:radial-gradient(closest-side, rgba(163,230,53,.07), transparent 72%);
  pointer-events:none;
}

/* network visual */
.netwrap{position:relative;width:100%;max-width:660px;margin-inline:auto}
.net{width:100%;height:auto;overflow:visible}
.net .edge{stroke:#3A3F48;stroke-width:1;fill:none;transition:stroke .4s var(--ease)}
.net .edge.is-lit{stroke:var(--accent-line)}
.net .node circle.dot{fill:var(--bg-raise);stroke:var(--line-strong);stroke-width:1;transition:stroke .35s var(--ease),fill .35s var(--ease)}
.net .node text{
  font-family:var(--mono);font-size:9.6px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  fill:var(--ink-3);transition:fill .35s var(--ease)
}
.net .node .core{fill:var(--hair);transition:fill .35s var(--ease),r .35s var(--ease)}
.net .node:hover circle.dot,.net .node:focus-visible circle.dot{stroke:var(--accent);fill:var(--accent-wash)}
.net .node:hover text,.net .node:focus-visible text{fill:var(--ink)}
.net .node:hover .core,.net .node:focus-visible .core{fill:var(--accent)}
.net .hub circle.dot{stroke:var(--accent-line);fill:var(--bg-raise)}
.net .hub .core{fill:var(--accent)}
.net .hub text{fill:var(--ink-2)}
.net .ring{fill:none;stroke:#232830;stroke-width:1;stroke-dasharray:2 6}
.net .pulse{fill:var(--accent)}

/* --- 8. Flow (Discover → Evolve) --------------------------------------- */
.flow{position:relative;display:grid;gap:0;border-top:1px solid var(--line)}
@media (min-width:860px){.flow{grid-template-columns:repeat(4,1fr)}}
.flow__step{position:relative;padding:2rem 0 2.25rem;border-bottom:1px solid var(--line)}
@media (min-width:860px){
  .flow{border-bottom:1px solid var(--line)}
  .flow__step{padding:2.25rem 2rem 2.5rem 1.75rem;border-bottom:0;border-left:1px solid var(--line)}
  .flow__step:first-child{border-left:0;padding-left:0}
}
.flow__step::before{
  content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:rgba(163,230,53,.5);
  transition:width 1s var(--ease);
}
@media (min-width:860px){.flow__step::before{left:-1px;width:0}}
.is-in .flow__step::before{width:100%}
.flow__step:nth-child(2)::before{transition-delay:.12s}
.flow__step:nth-child(3)::before{transition-delay:.24s}
.flow__step:nth-child(4)::before{transition-delay:.36s}
.flow__n{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.12em;color:var(--ink-4);display:block;margin-bottom:1rem}
.flow__step h3{margin-bottom:.55rem}
.flow__step p{color:var(--ink-2);font-size:.95rem;max-width:34ch}

/* --- 9. Cards ----------------------------------------------------------- */
.cards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
@media (min-width:700px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{
  background:var(--bg);padding:clamp(1.5rem,1.1rem + 1vw,2.1rem);
  display:flex;flex-direction:column;gap:1rem;position:relative;isolation:isolate;
  transition:background .4s var(--ease);
}
.card::after{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:linear-gradient(180deg, rgba(163,230,53,.055), transparent 55%);
  transition:opacity .45s var(--ease);
}
.card:hover,.card:focus-within{background:var(--bg-raise)}
.card:hover::after,.card:focus-within::after{opacity:1}
.card__glyph{width:40px;height:40px;flex:none;color:var(--ink-3);transition:color .4s var(--ease)}
.card:hover .card__glyph,.card:focus-within .card__glyph{color:var(--accent)}
.card h3{letter-spacing:-.012em}
.card__title{display:flex;align-items:baseline;gap:.75rem}
.card__k{position:absolute;top:1.15rem;right:1.25rem}
.card__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;color:var(--ink-4);transition:color .4s var(--ease)}
.card:hover .card__k{color:var(--ink-3)}
.card p{color:var(--ink-2);font-size:.95rem}
.card .link{margin-top:auto;padding-top:.5rem;align-self:flex-start}
.card__link::after{content:"";position:absolute;inset:0;border-radius:inherit}

/* --- 10. Principles ----------------------------------------------------- */
.prin{display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line)}
@media (min-width:760px){.prin{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.prin{grid-template-columns:repeat(5,1fr)}}
.prin__item{background:var(--bg);padding:2rem 1.5rem 2.25rem;display:grid;gap:.7rem;align-content:start;position:relative}
.prin__item::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.prin__item:hover::before{transform:scaleX(1)}
.prin__n{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--accent)}
.prin__item h3{font-size:1.08rem}
.prin__item p{color:var(--ink-2);font-size:.9rem;line-height:1.55}

/* --- 11. Stack / ecosystem ---------------------------------------------- */
.stackgrid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
@media (min-width:640px){.stackgrid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.stackgrid{grid-template-columns:repeat(3,1fr)}}
.stackcell{background:var(--bg);padding:1.6rem 1.5rem 1.75rem;display:grid;gap:.8rem;align-content:start}
.stackcell h3{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:500}
.stackcell ul{display:flex;flex-wrap:wrap;gap:.35rem .55rem}
.stackcell li{font-size:.9375rem;color:var(--ink-2);display:inline-flex;align-items:center}
.stackcell li:not(:last-child)::after{content:"·";margin-left:.55rem;color:var(--hair)}
.stack-note{margin-top:1.25rem;font-size:var(--fs-sm);color:var(--ink-3)}

/* --- 12. Pipeline ------------------------------------------------------- */
.pipe{position:relative;display:grid;gap:0}
@media (min-width:980px){.pipe{grid-template-columns:repeat(5,1fr);gap:1.5rem}}
.pipe__rail{position:absolute;left:0;right:0;top:9px;height:1px;background:var(--line);display:none}
@media (min-width:980px){.pipe__rail{display:block}}
.pipe__rail i{display:block;height:100%;width:0;background:rgba(163,230,53,.5);transition:width 1.4s var(--ease)}
.is-in .pipe__rail i{width:100%}
.pipe__step{position:relative;padding:0 0 2rem 2rem;border-left:1px solid var(--line)}
@media (min-width:980px){.pipe__step{padding:2.25rem 1.25rem 0 0;border-left:0}}
.pipe__dot{
  position:absolute;left:-5px;top:5px;width:9px;height:9px;background:var(--bg);
  border:1px solid var(--line-strong);transform:rotate(45deg);
  transition:border-color .4s var(--ease),background .4s var(--ease);
}
@media (min-width:980px){.pipe__dot{left:0;top:5px}}
.pipe__step:hover .pipe__dot,.is-in .pipe__step .pipe__dot{border-color:var(--accent);background:var(--accent)}
.pipe__n{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.14em;color:var(--ink-4);display:block;margin-bottom:.75rem}
@media (min-width:980px){.pipe__n{margin-bottom:.5rem}}
.pipe__step h3{font-size:1.1rem;margin-bottom:.45rem}
.pipe__step p{color:var(--ink-2);font-size:.9rem;max-width:32ch}

/* --- 13. Split / about -------------------------------------------------- */
.split{display:grid;gap:clamp(2rem,1rem + 4vw,4rem)}
@media (min-width:960px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .split--center{align-items:center}}
.chips{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media (min-width:520px){.chips{grid-template-columns:repeat(2,1fr)}}
.chips--one{grid-template-columns:1fr !important}
.chips li{background:var(--bg);padding:1.05rem 1.15rem;font-size:.9375rem;color:var(--ink-2);display:flex;align-items:center;gap:.7rem}
.chips li::before{content:"";width:5px;height:5px;background:var(--accent);transform:rotate(45deg);flex:none}

/* --- 14. CTA panel ------------------------------------------------------ */
.cta{
  border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(2.25rem,1.4rem + 3.4vw,4.5rem);
  background:
    linear-gradient(180deg, rgba(163,230,53,.05), transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,.018) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(255,255,255,.018) 39px 40px),
    var(--bg-raise);
  display:grid;gap:1.5rem;justify-items:start;position:relative;overflow:hidden;
}
.cta__mail{
  font-family:var(--mono);font-size:clamp(.95rem,.85rem + .4vw,1.15rem);color:var(--ink);
  border-bottom:1px solid var(--accent-line);padding-bottom:.2rem;
  transition:border-color .3s var(--ease),color .3s var(--ease);word-break:break-all;
}
.cta__mail:hover{color:var(--accent);border-color:var(--accent)}

/* --- 15. Footer --------------------------------------------------------- */
.ftr{border-top:1px solid var(--line);padding-block:clamp(2.5rem,2rem + 2vw,4rem) 2rem;margin-top:0}
.ftr__top{display:grid;gap:2.5rem}
@media (min-width:860px){.ftr__top{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:3rem}}
.ftr__brand{display:grid;gap:1.1rem;justify-items:start;max-width:34ch}
.ftr__brand svg{height:24px;width:auto}
.ftr__h{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);font-weight:500;margin-bottom:1.1rem;line-height:1.5}
.ftr ul{display:grid;gap:.7rem}
.ftr ul a{font-size:.9375rem;color:var(--ink-2);transition:color .3s var(--ease)}
.ftr ul a:hover{color:var(--ink)}
.ftr__bar{
  margin-top:clamp(2.5rem,2rem + 2vw,3.5rem);padding-top:1.5rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;
  font-size:var(--fs-xs);color:var(--ink-4);font-family:var(--mono);letter-spacing:.06em;
}

/* --- 16. Forms ---------------------------------------------------------- */
.form{display:grid;gap:1.25rem}
.field{display:grid;gap:.5rem}
.field label{font-size:var(--fs-sm);font-weight:500;color:var(--ink-2)}
.field label .req{color:var(--accent);margin-left:.15rem}
.field input,.field textarea{
  width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:.85rem 1rem;color:var(--ink);font-size:1rem;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field input:hover,.field textarea:hover{border-color:var(--line-strong)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:var(--surface-2)}
.field input:focus-visible,.field textarea:focus-visible{outline:none}
.field textarea{min-height:150px;resize:vertical;line-height:1.6}
.field .err{font-size:var(--fs-xs);color:#F87171;min-height:0}
.field[data-invalid] input,.field[data-invalid] textarea{border-color:#F87171}
@media (min-width:640px){.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}}
.form__note{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.6}
.form__status{
  border:1px solid var(--accent-line);background:var(--accent-wash);border-radius:var(--r);
  padding:1rem 1.15rem;font-size:.9375rem;color:var(--ink);
}
.form__status[hidden]{display:none}

/* --- 17. Services page -------------------------------------------------- */
.svc{border-top:1px solid var(--line);padding-block:clamp(2.25rem,1.6rem + 2vw,3.25rem);scroll-margin-top:96px}
.svc__grid{display:grid;gap:1.75rem}
@media (min-width:940px){.svc__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3rem}}
.svc__head{display:grid;gap:.9rem;align-content:start;position:sticky;top:96px}
@media (max-width:939px){.svc__head{position:static}}
.svc__n{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.14em;color:var(--accent)}
.svc__title{font-size:clamp(1.5rem, 1.2rem + 1.1vw, 2.1rem)}
.svc__body{display:grid;gap:1.5rem}
.svc__block{display:grid;gap:.45rem}
.svc__block h3{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-4);font-weight:500;line-height:1.5;
}
.svc__block p,.svc__block li{color:var(--ink-2);font-size:.95rem}
.svc__block ul{margin-top:.1rem}
.svc__block ul:not(.tags){display:grid;gap:.4rem}
.svc__block ul:not(.tags) li{display:flex;gap:.7rem}
.svc__block ul:not(.tags) li::before{content:"";width:5px;height:5px;margin-top:.6rem;background:var(--hair);transform:rotate(45deg);flex:none}
.tags,.svc__block ul.tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tags li::before{display:none}
.tags li{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-2);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.32rem .55rem;background:var(--surface);
}
.svc__out{border-left:2px solid var(--accent-line);padding-left:1rem}
.svc__out p{color:var(--ink);font-size:.95rem}

/* index rail on services page */
.idxrail{display:flex;flex-wrap:wrap;gap:.4rem}
.idxrail a{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-2);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.45rem .7rem;background:var(--surface);
  transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease);
}
.idxrail a:hover{border-color:var(--accent-line);color:var(--ink);background:var(--surface-2)}

/* --- 18. Page hero (interior) ------------------------------------------ */
.phero{padding-top:clamp(2.75rem,1.5rem + 4vw,5rem);padding-bottom:clamp(2.25rem,1.4rem + 3vw,4rem);position:relative}
.phero__in{display:grid;gap:1.4rem;justify-items:start}
.phero .lead{max-width:58ch}
.phero--tall{padding-block:clamp(4rem, 3rem + 6vw, 9rem)}

/* --- 19. Misc ----------------------------------------------------------- */
.vh{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}
.skip{
  position:absolute;left:.75rem;top:.75rem;z-index:100;transform:translateY(-160%);
  background:var(--accent);color:#0A0A0B;padding:.6rem 1rem;border-radius:var(--r-sm);
  font-size:.875rem;font-weight:600;transition:transform .25s var(--ease);
}
.skip:focus{transform:none}

/* --- 20. Motion --------------------------------------------------------- */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal-stagger]>*{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-reveal-stagger].is-in>*{opacity:1;transform:none}
[data-reveal-stagger].is-in>*:nth-child(1){transition-delay:.02s}
[data-reveal-stagger].is-in>*:nth-child(2){transition-delay:.08s}
[data-reveal-stagger].is-in>*:nth-child(3){transition-delay:.14s}
[data-reveal-stagger].is-in>*:nth-child(4){transition-delay:.2s}
[data-reveal-stagger].is-in>*:nth-child(5){transition-delay:.26s}
[data-reveal-stagger].is-in>*:nth-child(6){transition-delay:.32s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  [data-reveal],[data-reveal-stagger]>*{opacity:1 !important;transform:none !important}
  .flow__step::before{width:100% !important}
  .pipe__rail i{width:100% !important}
}

@media print{
  .hdr,.mnav,.frame,.net,.burger{display:none !important}
  body{background:#fff;color:#000}
}

/* --- 21. Intentional small-screen layouts ------------------------------- */
@media (max-width:760px){
  /* the network reads as an abstract constellation here; the disciplines are
     named in full in the capabilities section below */
  .net .node text{display:none}
  .netwrap{max-width:min(360px, 82vw);margin-block:.5rem}
  .hero__grid{gap:2rem}
  .hero__meta{gap:.4rem 1rem}
}
@media (max-width:520px){
  .btn-row{flex-direction:column;align-items:stretch;width:100%}
  .btn{justify-content:center;padding-inline:1rem}
  .hero__copy{justify-items:stretch}
  .phero__in,.cta{justify-items:stretch}
  .cta .eyebrow,.phero__in .eyebrow{justify-self:start}
  .cta__mail{justify-self:start}
  .idxrail{gap:.35rem}
  .idxrail a{font-size:.68rem;padding:.4rem .55rem}
  .sec-head{gap:.9rem}
}
@media (max-width:420px){
  .hdr__in{height:64px}
  .mnav{inset:64px 0 0}
  .brand__name{font-size:1rem}
}
