:root{
  --ink:#040507;
  --paper:#F6F5EF;
  --bright:#FCFCF8;
  --mute:#969890;
  --line:rgba(246,245,239,.13);
  --line-strong:rgba(246,245,239,.26);
  --green:#C6FF3F;
  --teal:#5CEAC9;
  --violet:#B57BFF;
  --magenta:#FF5CA8;
  --green-dim:rgba(198,255,63,.14);
  --glow:rgba(198,255,63,.4);
  --glow-soft:rgba(198,255,63,.18);
  --wm-size:140px;
  --ease:cubic-bezier(.83,0,.17,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:#020203;
  color:var(--paper);
  font-family:'Archivo',system-ui,sans-serif;
  font-variation-settings:'wdth' 100;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--green);color:#060805;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}

/* ===== GLOBAL LAYERED BACKGROUND (mesh of drifting color) ===== */
.mesh{position:fixed;inset:-20%;z-index:0;pointer-events:none;filter:blur(70px);opacity:.55;}
.mesh i{position:absolute;display:block;border-radius:50%;}
.mesh .m1{width:46vw;height:46vw;left:-4%;top:6%;background:radial-gradient(circle,rgba(198,255,63,.16),transparent 64%);animation:drift1 26s ease-in-out infinite alternate;}
.mesh .m2{width:42vw;height:42vw;right:-6%;top:24%;background:radial-gradient(circle,rgba(92,234,201,.14),transparent 64%);animation:drift2 31s ease-in-out infinite alternate;}
.mesh .m3{width:38vw;height:38vw;left:18%;bottom:8%;background:radial-gradient(circle,rgba(181,123,255,.12),transparent 64%);animation:drift1 37s ease-in-out infinite alternate-reverse;}
.mesh .m4{width:30vw;height:30vw;right:14%;bottom:-4%;background:radial-gradient(circle,rgba(255,92,168,.09),transparent 64%);animation:drift2 29s ease-in-out infinite alternate-reverse;}
@keyframes drift1{from{transform:translate(-5%,3%) scale(1)}to{transform:translate(9%,-8%) scale(1.18)}}
@keyframes drift2{from{transform:translate(5%,-3%) scale(1.1)}to{transform:translate(-10%,8%) scale(.92)}}

.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 130% 95% at 50% 36%,transparent 52%,rgba(0,0,0,.62) 100%);}

/* fine grid overlay */
.grid-overlay{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(246,245,239,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(246,245,239,.025) 1px,transparent 1px);
  background-size:88px 88px;
  mask-image:radial-gradient(ellipse 90% 80% at 50% 40%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 40%,#000 30%,transparent 78%);}

/* grain */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:60;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 7s steps(8) infinite;}
@keyframes grain{0%,100%{transform:translate(0,0)}25%{transform:translate(-2%,3%)}50%{transform:translate(3%,-2%)}75%{transform:translate(-3%,-3%)}}

/* scanline shimmer */
.scan{position:fixed;inset:0;z-index:59;pointer-events:none;opacity:.4;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);}

/* HUD corners */
.hud{position:fixed;z-index:40;pointer-events:none;width:26px;height:26px;border:1px solid rgba(198,255,63,.4);}
.hud.tl{top:18px;left:18px;border-right:0;border-bottom:0;}
.hud.tr{top:18px;right:18px;border-left:0;border-bottom:0;}
.hud.bl{bottom:18px;left:18px;border-right:0;border-top:0;}
.hud.br{bottom:18px;right:18px;border-left:0;border-top:0;}
@media (max-width:680px){.hud{display:none;}}

/* scroll progress */
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:70;
  background:linear-gradient(90deg,var(--green),var(--teal),var(--violet));
  box-shadow:0 0 14px var(--glow);}

/* custom cursor */
.cursor{position:fixed;top:0;left:0;width:30px;height:30px;border:1px solid var(--green);border-radius:50%;
  transform:translate(-50%,-50%);z-index:80;pointer-events:none;mix-blend-mode:difference;
  transition:width .25s var(--ease-out),height .25s var(--ease-out),opacity .3s;}
.cursor.lg{width:64px;height:64px;}
.cursor-dot{position:fixed;top:0;left:0;width:7px;height:7px;border-radius:50%;background:var(--green);
  transform:translate(-50%,-50%);z-index:80;pointer-events:none;box-shadow:0 0 16px var(--glow);}
@media (hover:none),(pointer:coarse){.cursor,.cursor-dot{display:none;}}

/* intro wipe */
.intro{position:fixed;inset:0;z-index:90;background:#020203;display:flex;align-items:center;justify-content:center;
  transition:transform 1s var(--ease),opacity .6s;overflow:hidden;}
.intro.gone{transform:translateY(-101%);}
.intro b{font-weight:800;font-variation-settings:'wdth' 118;letter-spacing:.04em;
  font-size:clamp(2rem,9vw,7rem);color:var(--bright);}
.intro b span{color:var(--green);text-shadow:0 0 30px var(--glow);}
.intro .bar{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,var(--green),var(--teal));
  animation:introbar 1.1s var(--ease-out) forwards;box-shadow:0 0 12px var(--glow);}
@keyframes introbar{from{width:0}to{width:100%}}

/* ---------- utilities ---------- */
.wrap{width:min(1280px,92vw);margin:0 auto;position:relative;z-index:2;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--mute);display:flex;align-items:center;gap:.9rem;}
.eyebrow::before{content:'';width:24px;height:1px;background:var(--green);flex:none;box-shadow:0 0 10px var(--glow);}
.reveal{opacity:0;transform:translateY(30px);filter:brightness(.5);
  transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),filter 1.1s var(--ease-out);}
.reveal.in{opacity:1;transform:none;filter:brightness(1);}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em;}
.split .wi{display:inline-block;transform:translateY(120%);transition:transform 1s var(--ease-out);}
.split.in .wi{transform:none;}

/* ===== MARQUEES ===== */
.mq{overflow:hidden;white-space:nowrap;display:flex;position:relative;z-index:2;width:100%;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.4rem 0;}
.mq-row{display:flex;flex:none;align-items:center;animation:mqmove var(--dur,24s) linear infinite;}
.mq.rev .mq-row{animation-direction:reverse;}
.mq-row > span{font-size:clamp(2.2rem,5.4vw,4.6rem);font-weight:800;font-variation-settings:'wdth' 116;
  line-height:1;letter-spacing:.01em;padding:0 1.4rem;color:var(--bright);}
.mq-row > i{font-style:normal;color:var(--green);font-size:clamp(1rem,2.4vw,2rem);padding:0 .2rem;text-shadow:0 0 16px var(--glow);}
.mq.outline .mq-row > span{color:transparent;-webkit-text-stroke:1.4px rgba(246,245,239,.4);}
.mq.green .mq-row > span{color:var(--green);text-shadow:0 0 30px var(--glow-soft);}
.mq.teal .mq-row > i{color:var(--teal);text-shadow:0 0 16px rgba(92,234,201,.4);}
.mq.tight{padding:.9rem 0;}
.mq.tight .mq-row > span{font-size:clamp(1.1rem,2.4vw,1.8rem);font-family:'IBM Plex Mono',monospace;font-weight:500;letter-spacing:.2em;text-transform:uppercase;}
@keyframes mqmove{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(4,5,8,.6);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);}
.nav-in{width:min(1280px,92vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:70px;}
.logo{font-weight:800;font-variation-settings:'wdth' 118;letter-spacing:.04em;font-size:1.05rem;}
.logo b{color:var(--green);text-shadow:0 0 18px var(--glow);}
.nav-links{display:flex;gap:2.2rem;align-items:center;}
.nav-links a:not(.btn){font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
  position:relative;transition:color .25s;}
.nav-links a:not(.btn)::after{content:'';position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--green);
  box-shadow:0 0 8px var(--glow);transition:right .3s var(--ease-out);}
.nav-links a:not(.btn):hover{color:var(--bright);}
.nav-links a:not(.btn):hover::after{right:0;}
.btn{display:inline-flex;align-items:center;gap:.7rem;background:var(--green);color:#060805;font-weight:700;font-size:.85rem;
  letter-spacing:.04em;padding:.78rem 1.5rem;border:1px solid var(--green);border-radius:2px;position:relative;overflow:hidden;
  transition:box-shadow .35s,transform .45s var(--ease-out),filter .35s,color .3s,background .3s,border-color .3s;will-change:transform;}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  transform:translateX(-130%);transition:transform .6s var(--ease-out);}
.btn:hover::before{transform:translateX(130%);}
.btn:hover{filter:brightness(1.08);box-shadow:0 0 40px var(--glow),0 10px 30px -12px rgba(0,0,0,.85);}
.btn:disabled{opacity:.55;cursor:default;filter:none;box-shadow:none;}
.btn-ghost{background:transparent;color:var(--paper);border:1px solid var(--line-strong);}
.btn-ghost::before{background:linear-gradient(90deg,transparent,rgba(198,255,63,.25),transparent);}
.btn-ghost:hover{border-color:var(--green);color:var(--green);box-shadow:0 0 26px rgba(198,255,63,.18);filter:none;}
.nav .btn{padding:.55rem 1.2rem;font-size:.76rem;}
@media (max-width:760px){.nav-links a:not(.btn){display:none;}}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:130px 0 90px;}
.hero-side{position:absolute;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;
  font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.4em;text-transform:uppercase;color:var(--mute);z-index:2;}
.hero-side.l{left:max(2vw,18px);}
.hero-side.r{right:max(2vw,18px);transform:translateY(-50%) rotate(180deg);}
@media (max-width:880px){.hero-side{display:none;}}
.aurora{position:absolute;inset:-12%;pointer-events:none;filter:blur(60px);opacity:.5;z-index:0;}
.aurora i{position:absolute;border-radius:50%;display:block;}
.aurora .a1{width:48vw;height:48vw;left:6%;top:34%;background:radial-gradient(circle,rgba(198,255,63,.12),transparent 64%);animation:drift1 22s ease-in-out infinite alternate;}
.aurora .a2{width:42vw;height:42vw;right:4%;top:8%;background:radial-gradient(circle,rgba(92,234,201,.1),transparent 64%);animation:drift2 27s ease-in-out infinite alternate;}
.hero-in{position:relative;z-index:2;text-align:center;will-change:transform,opacity;}
.hero .eyebrow{justify-content:center;margin-bottom:3rem;}
.hero .eyebrow::after{content:'';width:24px;height:1px;background:var(--green);flex:none;box-shadow:0 0 10px var(--glow);}

/* wordmark resonance */
.wm-stage{position:relative;display:flex;flex-direction:column;align-items:center;}
.wm-ghost{position:absolute;top:50%;left:50%;z-index:0;font-size:calc(var(--wm-size)*2.05);font-weight:800;font-variation-settings:'wdth' 116;
  line-height:1;white-space:nowrap;pointer-events:none;color:transparent;-webkit-text-stroke:1px rgba(252,252,248,.06);opacity:0;transform:translate(-50%,-50%);}
.wm-ghost.on{animation:ghostDrift 3.5s linear forwards;}
@keyframes ghostDrift{0%{opacity:0;transform:translate(-52.5%,-50%)}14%{opacity:1}86%{opacity:1}100%{opacity:0;transform:translate(-47.5%,-50%)}}
.wm-label{position:relative;z-index:2;height:1.5em;margin-bottom:1.1rem;font-size:clamp(.8rem,calc(var(--wm-size)*.155),1.5rem);
  font-weight:700;font-variation-settings:'wdth' 112;letter-spacing:.42em;display:flex;justify-content:center;align-items:center;overflow:hidden;text-indent:.42em;}
.wm-label .ll{display:inline-block;transform:translateY(130%);opacity:0;transition:transform .6s var(--ease-out),opacity .45s;}
.wm-label.on .ll{transform:none;opacity:1;}
.wm-label.off .ll{transform:translateY(-130%);opacity:0;}
.wm-label .g{color:var(--green);text-shadow:0 0 16px var(--glow-soft);}
.wm-label .wht{color:var(--bright);}
.wm{position:relative;z-index:2;font-size:var(--wm-size);font-weight:800;font-variation-settings:'wdth' 116;letter-spacing:.01em;
  line-height:1;white-space:nowrap;display:flex;justify-content:center;user-select:none;}
.wm-l{display:inline-block;line-height:1;transition:opacity .75s var(--ease),color .75s var(--ease),filter .75s var(--ease),transform .75s var(--ease),text-shadow .75s var(--ease);will-change:opacity,filter,transform;}
.wm-l.suf{color:var(--green);text-shadow:0 0 42px var(--glow),0 0 120px rgba(198,255,63,.22);}
.wm-l.dim{color:var(--paper);opacity:.16;filter:blur(3px);transform:scale(.985);text-shadow:none;}
.wm-l.lit{color:var(--green);opacity:1;filter:none;transform:translateY(-3%);text-shadow:0 0 42px var(--glow),0 0 120px rgba(198,255,63,.24);}
.wm-meas{position:absolute;visibility:hidden;pointer-events:none;white-space:pre;left:-9999px;top:0;
  font-size:var(--wm-size);font-weight:800;font-variation-settings:'wdth' 116;letter-spacing:.01em;}
.hero-tag{margin-top:2.6rem;font-size:clamp(1.15rem,2.4vw,1.65rem);font-weight:400;color:var(--paper);letter-spacing:.01em;}
.hero-cta{margin-top:3rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.hero-scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;
  font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:.7rem;z-index:2;}
.hero-scroll::after{content:'';width:1px;height:38px;background:linear-gradient(var(--mute),transparent);animation:drop 2.2s var(--ease) infinite;}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- section base ---------- */
section{padding:8rem 0;position:relative;z-index:2;}
.sec-head{display:flex;flex-direction:column;gap:1.6rem;margin-bottom:4.2rem;position:relative;}
.sec-num{position:absolute;right:0;top:-2.4rem;font-family:'IBM Plex Mono',monospace;font-size:6rem;font-weight:500;
  color:transparent;-webkit-text-stroke:1px rgba(246,245,239,.07);line-height:1;pointer-events:none;user-select:none;}
.sec-title{font-size:clamp(2.6rem,6vw,5rem);font-weight:760;font-variation-settings:'wdth' 112;line-height:1;letter-spacing:-.015em;color:var(--bright);}
@media (max-width:680px){.sec-num{font-size:3.4rem;top:-1.2rem;}}

/* ---------- manifesto ---------- */
.manifesto{border-top:1px solid var(--line);}
.manifesto-big{font-size:clamp(2.8rem,7.4vw,6.4rem);font-weight:780;font-variation-settings:'wdth' 112;line-height:1.02;letter-spacing:-.02em;max-width:15ch;color:var(--bright);}
.manifesto-big b{color:var(--green);font-weight:780;text-shadow:0 0 28px var(--glow);}
.manifesto-sub{margin-top:2.6rem;max-width:46ch;font-size:1.14rem;color:var(--mute);}
.manifesto-sub strong{color:var(--paper);font-weight:600;}

/* ---------- services ---------- */
.services{border-top:1px solid var(--line);}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;perspective:1300px;}
.reveal.rl{transform:translateX(-70px) translateY(22px) rotateY(15deg);}
.reveal.rr{transform:translateX(70px) translateY(22px) rotateY(-15deg);}
.reveal.rl.in,.reveal.rr.in{transform:none;}
.mesh{will-change:transform,filter;}
.sec-num{will-change:transform;}
.mq{will-change:transform;}
.svc-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:5px;padding:3rem 2.6rem 2.8rem;
  background:linear-gradient(180deg,rgba(252,252,248,.02),transparent);
  transition:border-color .5s,transform .4s var(--ease-out),box-shadow .5s;transform-style:preserve-3d;will-change:transform;}
.svc-card::after{content:'';position:absolute;inset:-1px;border-radius:5px;padding:1px;pointer-events:none;opacity:0;
  background:linear-gradient(120deg,var(--green),var(--teal),var(--violet),var(--green));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  transition:opacity .5s;background-size:300% 300%;animation:borderflow 6s linear infinite;}
.svc-card::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(198,255,63,.1),transparent 70%);transition:opacity .55s;}
.svc-card:hover{border-color:transparent;box-shadow:0 40px 80px -50px rgba(0,0,0,.95);}
.svc-card:hover::after,.svc-card:hover::before{opacity:1;}
@keyframes borderflow{from{background-position:0% 50%}to{background-position:300% 50%}}
.svc-index{font-family:'IBM Plex Mono',monospace;font-size:.8rem;letter-spacing:.3em;color:var(--green);text-shadow:0 0 14px var(--glow-soft);text-transform:uppercase;}
.svc-card-title{margin-top:1.4rem;font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:760;font-variation-settings:'wdth' 112;line-height:1.02;letter-spacing:-.01em;color:var(--bright);}
.svc-lead{margin-top:1rem;font-size:1.14rem;color:var(--paper);max-width:30ch;}
.svc-body{margin-top:1.1rem;font-size:1.02rem;color:var(--mute);max-width:40ch;line-height:1.6;}
.svc-list{list-style:none;margin-top:1.8rem;display:flex;flex-direction:column;gap:.7rem;}
.svc-list li{position:relative;padding-left:1.4rem;font-size:.95rem;color:var(--paper);font-family:'IBM Plex Mono',monospace;letter-spacing:.01em;}
.svc-list li::before{content:'';position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--glow);}
@media (max-width:820px){.svc-grid{grid-template-columns:1fr;}.svc-card{padding:2.4rem 1.8rem;}}

/* ---------- how ---------- */
.how{border-top:1px solid var(--line);}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--line);}
.step{border-right:1px solid var(--line);padding:2.4rem 1.8rem 3rem;display:flex;flex-direction:column;gap:1.4rem;min-height:280px;transition:background .5s;position:relative;overflow:hidden;}
.step::before{content:'';position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(198,255,63,.07),transparent 70%);transition:opacity .5s;}
.step:hover::before{opacity:1;}
.step-num{font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.2em;color:var(--green);text-shadow:0 0 14px var(--glow-soft);}
.step-name{font-size:1.5rem;font-weight:700;font-variation-settings:'wdth' 110;line-height:1.15;color:var(--bright);}
.step-desc{font-size:.95rem;color:var(--mute);line-height:1.6;position:relative;}
@media (max-width:980px){.steps{grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);}.step{min-height:0;border-bottom:1px solid var(--line);}}
@media (max-width:560px){.steps{grid-template-columns:1fr;}}
.principles{margin-top:6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;}
.principle h3{font-size:1.12rem;font-weight:700;margin-bottom:.7rem;display:flex;align-items:center;gap:.8rem;color:var(--bright);}
.principle h3::before{content:'';width:18px;height:1px;background:var(--green);box-shadow:0 0 8px var(--glow-soft);}
.principle p{font-size:.95rem;color:var(--mute);}
@media (max-width:860px){.principles{grid-template-columns:1fr;gap:2.2rem;}}

/* ---------- about ---------- */
.about{border-top:1px solid var(--line);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.equation{display:flex;flex-direction:column;gap:.5rem;font-weight:800;font-variation-settings:'wdth' 116;font-size:clamp(2rem,3.8vw,3.2rem);line-height:1.06;letter-spacing:.01em;}
.equation .eq-word{color:var(--bright);}
.equation .eq-word i{font-style:normal;color:var(--green);}
.equation .eq-op{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:1rem;color:var(--mute);letter-spacing:.3em;padding:.3rem 0;}
.equation .eq-result{margin-top:.4rem;padding-top:1.2rem;border-top:1px solid var(--line-strong);}
.equation .eq-result i{text-shadow:0 0 24px var(--glow);}
.about-copy p{color:var(--mute);font-size:1.1rem;max-width:48ch;}
.about-copy p + p{margin-top:1.4rem;}
.about-copy p strong{color:var(--paper);font-weight:600;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:3.4rem;}}

/* ---------- contact ---------- */
.contact{border-top:1px solid var(--line);}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;align-items:start;}
.contact-title{font-size:clamp(2.8rem,6.4vw,5.4rem);font-weight:780;font-variation-settings:'wdth' 112;line-height:1.02;letter-spacing:-.02em;color:var(--bright);}
.contact-title b{color:var(--green);text-shadow:0 0 28px var(--glow);}
.contact-note{margin-top:1.8rem;color:var(--mute);max-width:36ch;font-size:1.04rem;}
.contact-email{display:inline-block;margin-top:1.4rem;color:var(--green);font-family:'IBM Plex Mono',monospace;font-size:.9rem;letter-spacing:.03em;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s,opacity .25s;}
.contact-email:hover{border-bottom-color:var(--green);opacity:.8;}
.form{display:flex;flex-direction:column;gap:1.6rem;}
.field{position:relative;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mute);margin-bottom:.6rem;}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-strong);color:var(--paper);
  font:inherit;font-size:1.05rem;padding:.55rem 0 .8rem;outline:none;transition:border-color .3s,box-shadow .3s;border-radius:0;}
.field textarea{resize:vertical;min-height:110px;}
.field input:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 14px 30px -20px var(--glow);}
.field input::placeholder,.field textarea::placeholder{color:rgba(150,152,144,.45);}
.field.err input,.field.err textarea{border-color:#ff6b6b;}
.field-err{display:block;margin-top:.5rem;font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.08em;color:#ff8585;min-height:.9em;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form .btn{align-self:flex-start;margin-top:.6rem;padding:.95rem 2.2rem;}
.form-status{font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.08em;min-height:1.2em;opacity:0;transition:opacity .4s;}
.form-status.show{opacity:1;}
.form-status.ok{color:var(--green);}
.form-status.bad{color:#ff8585;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;gap:3rem;}}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);overflow:hidden;position:relative;z-index:2;}
.foot-in{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.4rem;padding:2.4rem 0;}
.foot-in p,.foot-in a{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);}
.foot-in a:hover{color:var(--green);}
.foot-links{display:flex;gap:2rem;flex-wrap:wrap;}

/* ===== services spotlight + smooth scroll ===== */
.svc-spot{position:absolute;left:0;top:0;width:620px;height:620px;border-radius:50%;pointer-events:none;
  opacity:0;transition:opacity .45s;z-index:0;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(198,255,63,.14),rgba(92,234,201,.05) 40%,transparent 62%);}
.services{overflow:hidden;}
.services.spot .svc-spot{opacity:1;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;}
.lenis.lenis-stopped{overflow:hidden;}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;filter:none;}
  .split .wi{transform:none;}
  .wm-ghost,.intro,.cursor,.cursor-dot{display:none;}
  .svc-spot{display:none;}
  .mq-row{animation:none !important;}
}
