/* ═══════════════════════════════════════════════════════
   CrypsisX — Trust Infrastructure
   Design: deep-black, deeptech, monochrome + cold signal
   ═══════════════════════════════════════════════════════ */

:root{
  --bg:        #050506;
  --bg-soft:   #0a0a0c;
  --panel:     #0d0e10;
  --line:      rgba(255,255,255,0.08);
  --line-2:    rgba(255,255,255,0.14);
  --text:      #ECECEE;
  --muted:     #8a8c92;
  --muted-2:   #5c5e66;
  --white:     #ffffff;
  /* cold restrained signal — NOT neon */
  --signal:    #9fc7d4;
  --signal-dim:rgba(159,199,212,0.14);
  --bad:       #c98a8a;

  --ff-display:'Space Grotesk', sans-serif;
  --ff-body:   'Inter', sans-serif;
  --ff-mono:   'JetBrains Mono', monospace;

  --ease: cubic-bezier(0.16,1,0.3,1);
  --maxw: 1500px;
  --pad: clamp(20px, 4vw, 64px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--ff-body);
  font-weight:300;
  line-height:1.6;
  overflow-x:hidden;
  cursor:none;
}
@media (hover:none){ body{cursor:auto} }
a{color:inherit;text-decoration:none}
em{font-style:normal;color:var(--signal)}
::selection{background:var(--signal);color:#04181f}

/* ── GRAIN / VIGNETTE ── */
.grain{
  position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.vignette{
  position:fixed;inset:0;z-index:8999;pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
}

/* ── CUSTOM CURSOR ── */
.cursor{
  position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid var(--line-2);
  border-radius:50%;z-index:10000;pointer-events:none;
  transform:translate(-50%,-50%);transition:width .25s var(--ease),height .25s var(--ease),background .25s,border-color .25s;
  mix-blend-mode:difference;
}
.cursor-dot{
  position:fixed;top:0;left:0;width:4px;height:4px;background:var(--white);border-radius:50%;
  z-index:10001;pointer-events:none;transform:translate(-50%,-50%);mix-blend-mode:difference;
}
.cursor.is-hover{width:54px;height:54px;background:rgba(255,255,255,.06);border-color:transparent}
@media (hover:none){ .cursor,.cursor-dot{display:none} }

/* ── PRELOADER ── */
.preloader{position:fixed;inset:0;z-index:12000;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .8s var(--ease),visibility .8s}
.preloader.done{opacity:0;visibility:hidden}
.preloader__inner{width:min(440px,80vw);text-align:center}
.preloader__mark{font-family:var(--ff-display);font-weight:700;font-size:clamp(28px,6vw,46px);letter-spacing:-.02em;margin-bottom:28px}
.pl-c{color:var(--white)}.pl-rest{color:var(--white)}
.pl-x{color:var(--signal);margin-left:.02em}
.preloader__bar{height:1px;background:var(--line);position:relative;overflow:hidden}
.preloader__bar span{position:absolute;inset:0 100% 0 0;background:linear-gradient(90deg,transparent,var(--signal));transition:right .2s linear}
.preloader__meta{display:flex;justify-content:space-between;margin-top:14px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.15em;color:var(--muted-2)}

/* ── NAV ── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:7000;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:20px var(--pad);
  transition:padding .4s var(--ease),background .4s,border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  padding:14px var(--pad);
  background:rgba(5,5,6,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav__logo{display:flex;flex-direction:column;line-height:1;gap:4px}
.logo{font-family:var(--ff-display);font-weight:700;font-size:21px;letter-spacing:-.02em;display:inline-flex}
.logo__c{color:#fff;text-shadow:0 0 22px rgba(255,255,255,.35)}
.logo__mid{color:#fff;text-shadow:0 0 22px rgba(255,255,255,.28)}
.logo__x{
  color:var(--signal);position:relative;margin-left:1px;
  text-shadow:0 0 26px rgba(159,199,212,.75),0 0 10px rgba(159,199,212,.5);
}
.nav__logo{transition:filter .35s var(--ease)}
.nav__logo:hover{filter:brightness(1.15)}
.logo__sub{font-family:var(--ff-mono);font-size:9px;letter-spacing:.42em;color:var(--muted);padding-left:2px}
.logo--sm{font-size:18px}

.nav__links{display:flex;gap:26px}
.nav__links a{font-family:var(--ff-mono);font-size:12px;letter-spacing:.04em;color:var(--muted);position:relative;transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--signal);transition:width .35s var(--ease)}
.nav__links a:hover{color:var(--text)}
.nav__links a:hover::after{width:100%}

.nav__cta{display:flex;gap:10px}

.btn{
  font-family:var(--ff-mono);font-size:12px;letter-spacing:.05em;
  padding:11px 16px;border:1px solid var(--line-2);color:var(--text);
  display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  transition:color .35s var(--ease),border-color .35s;
}
.btn span{position:relative;z-index:2;transition:color .35s}
.btn::before{content:"";position:absolute;inset:0;background:var(--white);transform:translateY(101%);transition:transform .4s var(--ease)}
.btn:hover::before{transform:translateY(0)}
.btn:hover span{color:#050506}
.btn--solid{background:var(--white);color:#050506;border-color:var(--white)}
.btn--solid span{color:#050506}
.btn--solid::before{background:var(--bg)}
.btn--solid:hover span{color:var(--white)}
.btn--lg{padding:16px 26px;font-size:13px}

.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav__burger span{width:24px;height:1.5px;background:var(--text);transition:.3s var(--ease)}
.nav__burger.open span:first-child{transform:translateY(6.5px) rotate(45deg)}
.nav__burger.open span:last-child{transform:translateY(-6.5px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:6900;background:var(--bg);
  display:flex;flex-direction:column;justify-content:center;gap:8px;padding:var(--pad);
  transform:translateY(-100%);transition:transform .55s var(--ease);visibility:hidden;
}
.mobile-menu.open{transform:translateY(0);visibility:visible}
.mobile-menu a{font-family:var(--ff-display);font-size:clamp(28px,8vw,44px);font-weight:500;color:var(--text);padding:8px 0;border-bottom:1px solid var(--line)}
.mobile-menu__cta{color:var(--signal)!important}

/* ── SECTION HEADS / INDEX ── */
.sec-head{display:flex;align-items:center;gap:16px;margin-bottom:clamp(40px,6vw,72px)}
.sec-head__num{font-family:var(--ff-mono);font-size:13px;color:var(--signal)}
.sec-head__label{font-family:var(--ff-mono);font-size:12px;letter-spacing:.25em;color:var(--muted)}
.sec-head::after{content:"";flex:1;height:1px;background:var(--line)}

.section-index{
  position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:14px;z-index:5;width:28px;
}
.section-index span{font-family:var(--ff-mono);font-size:11px;color:var(--muted-2);transition:color .3s}
.section-index span.active{color:var(--signal)}
@media (max-width:1200px){ .section-index{display:none} }

section{padding:clamp(80px,11vw,160px) var(--pad);max-width:var(--maxw);margin:0 auto;position:relative}

/* ── HERO ── */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;max-width:none;padding-left:0;padding-right:0;overflow:hidden}
.hero__globe{position:absolute;top:50%;right:-6%;transform:translateY(-50%);width:min(900px,62vw);height:min(900px,62vw);z-index:1;opacity:0;transition:opacity 1.4s var(--ease) .3s;filter:drop-shadow(0 0 40px rgba(159,199,212,.12))}
.hero__globe.in{opacity:1}

/* ── GLOBE ANNOTATION TAGS ── */
.hero__tags{position:absolute;inset:0;z-index:3;pointer-events:none}
.gtag{position:absolute;display:flex;align-items:center;gap:8px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.12em;color:var(--signal);
  padding:5px 10px;border:1px solid var(--signal-dim);background:rgba(8,10,12,.55);backdrop-filter:blur(4px);white-space:nowrap;
  opacity:0;transform:translateY(6px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.gtag.in{opacity:1;transform:none}
.gtag::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--signal);box-shadow:0 0 10px var(--signal);animation:pulse 2.6s ease-in-out infinite}
.gtag::after{content:"";position:absolute;width:34px;height:1px;background:linear-gradient(90deg,var(--signal),transparent);left:-34px;top:50%;opacity:.6}
.gtag--r::after{left:auto;right:-34px;background:linear-gradient(270deg,var(--signal),transparent)}
@media (max-width:760px){ .hero__tags{display:none} }
.hero__grid{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:90px 90px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 78%);opacity:.5}

.hero__content{position:relative;z-index:4;max-width:780px;padding:0 var(--pad)}
@media (min-width:1201px){ .hero__content{padding-left:calc(var(--pad) + 72px)} }
.eyebrow{font-family:var(--ff-mono);font-size:12px;letter-spacing:.22em;color:var(--muted);display:flex;align-items:center;gap:10px;margin-bottom:28px}
.eyebrow__dot{width:6px;height:6px;border-radius:50%;background:var(--signal);box-shadow:0 0 12px var(--signal);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

.hero__title{font-family:var(--ff-display);font-weight:600;font-size:clamp(44px,8vw,108px);line-height:.98;letter-spacing:-.03em;margin-bottom:32px}
.hero__title .line{display:block;overflow:hidden}
.hero__title .line span{display:block}
.hero__lede{font-size:clamp(16px,1.5vw,20px);color:var(--muted);max-width:560px;margin-bottom:42px;line-height:1.7}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}

.hero__corner{position:absolute;z-index:4;bottom:46px;right:var(--pad);display:flex;flex-direction:column;gap:6px;text-align:right}
.hero__corner span{font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--muted-2)}
@media (max-width:760px){ .hero__corner{display:none} }

.hero__scroll{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:10px}
.hero__scroll span:first-child{font-family:var(--ff-mono);font-size:10px;letter-spacing:.25em;color:var(--muted-2)}
.hero__scroll-line{width:1px;height:46px;background:linear-gradient(var(--signal),transparent);position:relative;overflow:hidden}
.hero__scroll-line::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--white);animation:scrolldn 1.8s var(--ease) infinite}
@keyframes scrolldn{to{top:100%}}

/* ── TICKER ── */
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;overflow:hidden;background:var(--bg-soft)}
.ticker__track{display:flex;gap:28px;white-space:nowrap;width:max-content;animation:ticker 38s linear infinite;font-family:var(--ff-mono);font-size:13px;letter-spacing:.18em;color:var(--muted)}
.ticker__sep{color:var(--signal)}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ── MISSION ── */
.mission__grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(40px,6vw,90px);align-items:start}
.mission__statement{font-family:var(--ff-display);font-weight:400;font-size:clamp(26px,3.6vw,52px);line-height:1.18;letter-spacing:-.02em}
.mission__aside p{color:var(--muted);margin-bottom:20px}
.mission__aside strong{color:var(--text);font-weight:500}
.mission__sign{display:flex;align-items:center;gap:12px;margin-top:30px}
.mission__sign-line{width:40px;height:1px;background:var(--signal)}
.mission__sign span{font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;color:var(--muted-2)}
@media (max-width:880px){ .mission__grid{grid-template-columns:1fr} }

/* ── PROBLEM ── */
.problem__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(30px,5vw,72px);line-height:1.05;letter-spacing:-.02em;margin-bottom:clamp(50px,7vw,90px)}
.problem__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:clamp(50px,7vw,90px)}
.stat{background:var(--bg);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:16px}
.stat__num{font-family:var(--ff-display);font-weight:600;font-size:clamp(44px,6vw,84px);line-height:1;letter-spacing:-.03em;color:var(--white)}
.stat__label{font-size:14px;color:var(--muted);line-height:1.55}
@media (max-width:760px){ .problem__stats{grid-template-columns:1fr} }

.problem__split{display:flex;align-items:stretch;gap:0;border:1px solid var(--line)}
.problem__col{flex:1;padding:clamp(28px,3.5vw,48px)}
.problem__divider{width:1px;background:var(--line);position:relative}
.problem__divider span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border:1px solid var(--line-2);background:var(--bg);border-radius:50%}
.problem__tag{font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;display:inline-block;margin-bottom:24px;padding:5px 10px;border:1px solid var(--line)}
.problem__tag--bad{color:var(--bad)}
.problem__tag--good{color:var(--signal)}
.problem__list{list-style:none;display:flex;flex-direction:column;gap:14px}
.problem__list li{color:var(--muted);font-size:15px;padding-left:18px;position:relative}
.problem__list li::before{content:"—";position:absolute;left:0;color:var(--muted-2)}
.problem__close{font-family:var(--ff-display);font-size:clamp(18px,2vw,26px);color:var(--text);margin-top:clamp(40px,5vw,60px);text-align:center}
@media (max-width:680px){ .problem__split{flex-direction:column} .problem__divider{width:auto;height:1px} }

/* ── PLATFORM ── */
.platform__intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,80px);align-items:end;margin-bottom:clamp(50px,7vw,90px)}
.platform__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(30px,5vw,72px);line-height:1.02;letter-spacing:-.02em}
.platform__sub{color:var(--muted);font-size:16px;line-height:1.7}
@media (max-width:880px){ .platform__intro{grid-template-columns:1fr} }

.platform__layers{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.layer{background:var(--bg);padding:clamp(26px,2.5vw,38px);min-height:300px;display:flex;flex-direction:column;position:relative;transition:background .4s var(--ease)}
.layer:hover{background:var(--panel)}
.layer__idx{font-family:var(--ff-mono);font-size:12px;color:var(--signal);margin-bottom:auto}
.layer h3{font-family:var(--ff-display);font-weight:500;font-size:22px;margin:40px 0 14px;letter-spacing:-.01em}
.layer p{font-size:14px;color:var(--muted);line-height:1.6}
.layer__line{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--signal);transition:width .5s var(--ease)}
.layer:hover .layer__line{width:100%}
@media (max-width:900px){ .platform__layers{grid-template-columns:1fr 1fr} .layer{min-height:240px} }
@media (max-width:520px){ .platform__layers{grid-template-columns:1fr} }

.platform__moat{margin-top:clamp(40px,5vw,64px);border:1px solid var(--line);border-left:2px solid var(--signal);padding:clamp(28px,3vw,44px);background:var(--bg-soft)}
.platform__moat-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;color:var(--signal);display:block;margin-bottom:16px}
.platform__moat p{font-family:var(--ff-display);font-weight:400;font-size:clamp(18px,2.2vw,30px);line-height:1.4;letter-spacing:-.01em}
.platform__moat p span{color:var(--muted)}

/* ── AGENT 47 ── */
.agent__frame{position:relative;border:1px solid var(--line);padding:clamp(40px,7vw,110px) clamp(28px,6vw,90px);background:radial-gradient(ellipse at 80% 0%,rgba(159,199,212,.05),transparent 60%),var(--bg-soft);text-align:center}
.agent__corner{position:absolute;width:18px;height:18px;border-color:var(--signal)}
.agent__corner--tl{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid}
.agent__corner--tr{top:-1px;right:-1px;border-top:1px solid;border-right:1px solid}
.agent__corner--bl{bottom:-1px;left:-1px;border-bottom:1px solid;border-left:1px solid}
.agent__corner--br{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid}
.agent__kicker{font-family:var(--ff-mono);font-size:11px;letter-spacing:.25em;color:var(--signal);margin-bottom:24px}
.agent__title{font-family:var(--ff-display);font-weight:700;font-size:clamp(56px,12vw,160px);line-height:.9;letter-spacing:-.04em;margin-bottom:28px;
  background:linear-gradient(180deg,#fff 30%,#8a8c92);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.agent__lede{max-width:680px;margin:0 auto 50px;color:var(--muted);font-size:clamp(15px,1.6vw,19px);line-height:1.7}
.agent__caps{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);text-align:left;max-width:880px;margin:0 auto 40px}
.cap{background:var(--bg-soft);padding:24px;display:flex;gap:16px;align-items:flex-start}
.cap__k{font-family:var(--ff-mono);font-size:12px;color:var(--signal);padding-top:3px}
.cap__v{font-size:15px;color:var(--text)}
.agent__note{font-family:var(--ff-mono);font-size:12px;letter-spacing:.06em;color:var(--muted-2)}
@media (max-width:640px){ .agent__caps{grid-template-columns:1fr} }

/* ── RESEARCH ── */
.research__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(30px,5vw,72px);line-height:1.02;letter-spacing:-.02em;margin-bottom:clamp(40px,5vw,64px)}
.research__rows{border-top:1px solid var(--line)}
.rrow{display:grid;grid-template-columns:120px 1fr 1.2fr;gap:30px;align-items:start;padding:clamp(24px,3vw,40px) 0;border-bottom:1px solid var(--line);transition:padding-left .4s var(--ease)}
.rrow:hover{padding-left:16px}
.rrow__num{font-family:var(--ff-mono);font-size:13px;color:var(--signal)}
.rrow h3{font-family:var(--ff-display);font-weight:500;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.01em}
.rrow p{color:var(--muted);font-size:15px;line-height:1.6}
@media (max-width:760px){ .rrow{grid-template-columns:1fr;gap:10px} }

/* ── VISION ── */
.vision{overflow:hidden}
.vision__field{position:absolute;inset:0;z-index:0;width:100%;height:100%;opacity:.5}
.vision__content{position:relative;z-index:2;max-width:780px}
.vision__title{font-family:var(--ff-display);font-weight:600;font-size:clamp(36px,6.5vw,92px);line-height:1;letter-spacing:-.03em;margin-bottom:32px}
.vision__lede{font-size:clamp(17px,2vw,24px);color:var(--text);line-height:1.5;margin-bottom:48px;max-width:640px}
.vision__list{list-style:none;display:flex;flex-direction:column;gap:0;margin-bottom:48px;border-top:1px solid var(--line)}
.vision__list li{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:clamp(15px,1.8vw,19px);color:var(--muted);transition:color .3s,padding-left .3s var(--ease)}
.vision__list li span{color:var(--signal);font-family:var(--ff-mono)}
.vision__list li:hover{color:var(--text);padding-left:10px}
.vision__close{font-family:var(--ff-display);font-size:clamp(20px,2.6vw,34px);line-height:1.35;letter-spacing:-.01em}
.vision__close strong{color:var(--signal);font-weight:500}

/* ── CONTACT ── */
.contact__inner{max-width:760px}
.contact__title{font-family:var(--ff-display);font-weight:600;font-size:clamp(36px,6.5vw,92px);line-height:1;letter-spacing:-.03em;margin-bottom:28px}
.contact__sub{color:var(--muted);font-size:clamp(16px,1.8vw,20px);margin-bottom:56px;max-width:560px}
.contact__form{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.field{display:flex;flex-direction:column;gap:10px}
.field--full{grid-column:1/-1}
.field label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;color:var(--muted)}
.field input,.field textarea{background:transparent;border:0;border-bottom:1px solid var(--line-2);color:var(--text);font-family:var(--ff-body);font-size:17px;padding:10px 0;transition:border-color .3s;resize:none}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--signal)}
.field input::placeholder{color:var(--muted-2)}
.contact__ok{grid-column:1/-1;font-family:var(--ff-mono);font-size:13px;color:var(--signal)}
@media (max-width:600px){ .contact__form{grid-template-columns:1fr} }

/* ── FOOTER ── */
.footer{border-top:1px solid var(--line);padding:clamp(50px,6vw,80px) var(--pad) 30px;max-width:var(--maxw);margin:0 auto}
.footer__top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:50px;border-bottom:1px solid var(--line)}
.footer__brand{max-width:300px}
.footer__brand p{color:var(--muted);font-size:14px;margin-top:16px;line-height:1.6}
.footer__nav{display:flex;flex-wrap:wrap;gap:14px 28px;align-content:flex-start}
.footer__nav a{font-family:var(--ff-mono);font-size:13px;color:var(--muted);transition:color .3s}
.footer__nav a:hover{color:var(--signal)}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:30px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--muted-2)}

/* ── REVEAL ANIMS ── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-mask span{transform:translateY(110%);transition:transform 1s var(--ease)}
.reveal-mask.in span{transform:translateY(0)}
.reveal-lines{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal-lines.in{opacity:1;transform:none}
/* stagger children */
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.reveal-lines{opacity:1;transform:none}
  .reveal-mask span{transform:none}
  body{cursor:auto}
  .cursor,.cursor-dot{display:none}
  .hero__globe{opacity:.9}
}

/* ── RESPONSIVE NAV ── */
@media (max-width:1024px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:flex}
}

/* ═══════════════════════════════════════════════════════
   ADDITIONS — collab, contact, socials, Agent 47 page
   ═══════════════════════════════════════════════════════ */

/* ── HOME AGENT TEASER CTA ── */
.agent__cta{margin:8px auto 30px}

/* ── COLLABORATION / CREST ── */
.collab{margin-top:clamp(50px,7vw,90px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px}
.collab__label{font-family:var(--ff-mono);font-size:12px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}
.collab__crest{display:inline-flex;flex-direction:column;align-items:center;gap:16px;padding:26px 36px;border:1px solid var(--line);background:var(--bg-soft);transition:border-color .4s var(--ease),background .4s}
.collab__crest:hover{border-color:var(--line-2);background:var(--panel)}
.crest{width:128px;height:128px;color:var(--muted);transition:color .5s var(--ease),filter .5s}
.collab__crest:hover .crest{color:var(--signal);filter:drop-shadow(0 0 16px rgba(159,199,212,.35))}
.crest--lg{width:168px;height:168px}
.crest__ring{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.55}
.crest__ring--out{stroke-width:2;opacity:.85}
.crest__txt{fill:currentColor;font-family:var(--ff-display);font-weight:600;font-size:15px;letter-spacing:.04em}
.crest__txt--sm{font-family:var(--ff-mono);font-weight:500;font-size:10.5px;letter-spacing:.12em}
.crest__star-dot circle{fill:currentColor}
.crest__core line{stroke:currentColor;stroke-width:1.4}
.crest__star{fill:currentColor;opacity:.92}
.crest__motto{fill:currentColor;font-family:var(--ff-mono);font-size:9px;letter-spacing:.06em}
.collab__meta{display:flex;flex-direction:column;gap:8px;max-width:360px}
.collab__name{font-family:var(--ff-display);font-weight:500;font-size:clamp(15px,1.8vw,19px);color:var(--text);letter-spacing:.01em}
.collab__note{font-size:13px;color:var(--muted);line-height:1.55}
.collab--lg{margin-top:0}

/* ── CONTACT GRID + ASIDE ── */
.contact__grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(40px,6vw,80px);align-items:start}
.contact__aside{display:flex;flex-direction:column;gap:36px;padding-top:8px}
.contact__block{display:flex;flex-direction:column;gap:14px}
.contact__block-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;color:var(--signal)}
.contact__link{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--line);transition:border-color .35s var(--ease),transform .35s var(--ease),background .35s}
.contact__link:hover{border-color:var(--signal);background:var(--bg-soft)}
.contact__link-k{font-family:var(--ff-mono);font-size:10px;letter-spacing:.16em;color:var(--muted-2)}
.contact__link-v{font-size:16px;color:var(--text)}
.social{display:flex;flex-wrap:wrap;gap:10px}
.social__btn{display:inline-flex;align-items:center;gap:9px;padding:11px 15px;min-height:44px;border:1px solid var(--line);font-family:var(--ff-mono);font-size:12px;color:var(--muted);transition:color .35s var(--ease),border-color .35s,background .35s}
.social__btn svg{color:var(--muted);transition:color .35s}
.social__btn:hover{color:var(--text);border-color:var(--signal);background:var(--bg-soft)}
.social__btn:hover svg{color:var(--signal)}
.contact__region{font-size:14px;color:var(--muted)}
.contact__err{grid-column:1/-1;font-family:var(--ff-mono);font-size:13px;color:var(--bad)}
@media (max-width:920px){ .contact__grid{grid-template-columns:1fr} }

/* ── FOOTER SOCIAL ── */
.footer__social{display:flex;gap:12px;margin-top:22px}
.footer__social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);color:var(--muted);transition:color .35s var(--ease),border-color .35s,background .35s}
.footer__social a:hover{color:var(--signal);border-color:var(--signal);background:var(--bg-soft)}

/* ═══════════════════════════════════════════════════════
   AGENT 47 PAGE
   ═══════════════════════════════════════════════════════ */
.page-agent{padding-top:0}
.nav .is-active{color:var(--signal)}
.nav .is-active::after{width:100%;background:var(--signal)}

.a47{max-width:var(--maxw);margin:0 auto;padding:clamp(70px,10vw,150px) var(--pad);position:relative}

/* HERO */
.a47-hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:120px var(--pad) 80px}
.a47-hero__net{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1.6s var(--ease) .2s}
.a47-hero__net.in{opacity:.85}
.a47-hero__scan{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(rgba(159,199,212,0) 0%,rgba(159,199,212,.05) 50%,rgba(159,199,212,0) 100%);
  background-size:100% 8px;mix-blend-mode:screen;opacity:.5;animation:scanmove 8s linear infinite}
@keyframes scanmove{to{background-position:0 100vh}}
.a47-hero__inner{position:relative;z-index:3;max-width:var(--maxw);margin:0 auto;width:100%}
.a47-back{font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;color:var(--muted-2);display:inline-block;margin-bottom:26px;transition:color .3s}
.a47-back:hover{color:var(--signal)}
.a47-hero__title{font-family:var(--ff-display);font-weight:700;font-size:clamp(60px,14vw,200px);line-height:.86;letter-spacing:-.04em;
  background:linear-gradient(180deg,#fff 35%,#7f8189);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.a47-hero__title .line{display:block;overflow:hidden;padding-bottom:.06em}
.a47-hero__sub{font-family:var(--ff-display);font-weight:400;font-size:clamp(20px,3vw,40px);letter-spacing:-.01em;color:var(--text);margin:14px 0 26px}
.a47-hero__lede{max-width:620px;font-size:clamp(15px,1.7vw,19px);color:var(--muted);line-height:1.7;margin-bottom:36px}
.a47-hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:48px}
.a47-hud{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);background:rgba(10,10,12,.55);backdrop-filter:blur(8px);position:relative;overflow:hidden}
.a47-hud__row{display:flex;flex-direction:column;gap:6px;padding:16px 26px;border-right:1px solid var(--line)}
.a47-hud__row:last-of-type{border-right:0}
.a47-hud__row span:first-child{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;color:var(--muted-2)}
.a47-hud__v{font-family:var(--ff-display);font-weight:600;font-size:18px;color:var(--signal)}
.a47-hud__pulse{position:absolute;left:0;bottom:0;height:2px;width:40%;background:linear-gradient(90deg,transparent,var(--signal),transparent);animation:hudpulse 3s var(--ease) infinite}
@keyframes hudpulse{0%{left:-40%}100%{left:100%}}
@media (max-width:560px){ .a47-hud{width:100%} .a47-hud__row{flex:1;min-width:33%;border-bottom:1px solid var(--line)} }

/* OVERVIEW */
.a47-overview__grid{display:grid;grid-template-columns:1.5fr .85fr;gap:clamp(36px,5vw,80px);align-items:start;margin-bottom:clamp(50px,7vw,90px)}
.a47-overview__statement{font-family:var(--ff-display);font-weight:400;font-size:clamp(24px,3.4vw,46px);line-height:1.2;letter-spacing:-.02em}
.a47-overview__aside p{color:var(--muted);margin-bottom:18px;line-height:1.7}
@media (max-width:880px){ .a47-overview__grid{grid-template-columns:1fr} }

/* CONSOLE OVERLAY */
.console{border:1px solid var(--line);background:#08090b;overflow:hidden;box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}
.console__bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg-soft)}
.console__dot{width:9px;height:9px;border-radius:50%;background:var(--muted-2)}
.console__title{font-family:var(--ff-mono);font-size:11px;color:var(--muted);margin-left:8px}
.console__status{margin-left:auto;font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--signal)}
.console__body{padding:22px;min-height:280px;font-family:var(--ff-mono);font-size:13px;line-height:1.9;color:var(--muted)}
.console__line{display:block;white-space:pre-wrap;opacity:0;transform:translateY(6px);animation:clineIn .4s var(--ease) forwards}
@keyframes clineIn{to{opacity:1;transform:none}}
.console__line .c-t{color:var(--muted-2)}
.console__line .c-ok{color:var(--signal)}
.console__line .c-hi{color:var(--text)}
.console__cursor{display:inline-block;width:8px;height:15px;background:var(--signal);vertical-align:middle;animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}

/* LIFECYCLE */
.a47-life__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(28px,5vw,68px);line-height:1.02;letter-spacing:-.02em;margin-bottom:clamp(44px,6vw,80px)}
.life{position:relative}
.life__track{position:absolute;top:18px;left:0;right:0;height:1px;background:var(--line);z-index:0}
.life__progress{position:absolute;left:0;top:0;height:100%;width:0;background:var(--signal);transition:width 1.2s var(--ease)}
.life__steps{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;position:relative;z-index:1}
.life__step{padding-top:42px;position:relative}
.life__step::before{content:"";position:absolute;top:13px;left:0;width:11px;height:11px;border-radius:50%;background:var(--bg);border:1px solid var(--line-2);transition:background .4s,border-color .4s,box-shadow .4s}
.life__step.in::before{background:var(--signal);border-color:var(--signal);box-shadow:0 0 14px rgba(159,199,212,.5)}
.life__num{font-family:var(--ff-mono);font-size:12px;color:var(--signal)}
.life__step h3{font-family:var(--ff-display);font-weight:500;font-size:20px;margin:10px 0 10px;letter-spacing:-.01em}
.life__step p{font-size:13.5px;color:var(--muted);line-height:1.6}
@media (max-width:900px){ .life__steps{grid-template-columns:1fr 1fr} .life__track{display:none} }
@media (max-width:520px){ .life__steps{grid-template-columns:1fr} }

/* DOMAINS */
.a47-domains__intro{display:grid;grid-template-columns:1fr .9fr;gap:40px;align-items:end;margin-bottom:clamp(40px,5vw,70px)}
.a47-domains__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(28px,5vw,68px);line-height:1.02;letter-spacing:-.02em}
.a47-domains__sub{color:var(--muted);font-size:16px;line-height:1.7}
@media (max-width:880px){ .a47-domains__intro{grid-template-columns:1fr} }
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.dcard{background:var(--bg);padding:clamp(26px,2.4vw,38px);position:relative;display:flex;flex-direction:column;min-height:280px;transition:background .4s var(--ease),transform .4s var(--ease)}
.dcard:hover{background:var(--panel)}
.dcard__idx{font-family:var(--ff-mono);font-size:12px;color:var(--signal);margin-bottom:18px}
.dcard h3{font-family:var(--ff-display);font-weight:500;font-size:21px;letter-spacing:-.01em;margin-bottom:12px}
.dcard p{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:16px}
.dcard ul{list-style:none;margin-top:auto;display:flex;flex-direction:column;gap:7px}
.dcard li{font-family:var(--ff-mono);font-size:11.5px;color:var(--muted-2);padding-left:16px;position:relative}
.dcard li::before{content:"+";position:absolute;left:0;color:var(--signal)}
.dcard__line{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--signal);transition:width .5s var(--ease)}
.dcard:hover .dcard__line{width:100%}
@media (max-width:900px){ .dgrid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .dgrid{grid-template-columns:1fr} .dcard{min-height:auto} }

/* EVIDENCE */
.evid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:start}
.evid__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(28px,4.5vw,60px);line-height:1.02;letter-spacing:-.02em;margin-bottom:24px}
.evid__lede{color:var(--muted);font-size:16px;line-height:1.7;margin-bottom:32px}
.evid__list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.evid__item{background:var(--bg);padding:22px 24px;display:flex;gap:18px;align-items:flex-start;transition:background .35s var(--ease)}
.evid__item:hover{background:var(--bg-soft)}
.evid__k{font-family:var(--ff-mono);font-size:12px;color:var(--signal);padding-top:3px}
.evid__item h4{font-family:var(--ff-display);font-weight:500;font-size:17px;margin-bottom:5px}
.evid__item p{font-size:13.5px;color:var(--muted);line-height:1.55}
@media (max-width:880px){ .evid{grid-template-columns:1fr} }

/* STATS BAND */
.a47-stats{padding-top:0}
.a47-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.a47-stat{background:var(--bg-soft);padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center}
.a47-stat__n{font-family:var(--ff-display);font-weight:600;font-size:clamp(40px,6vw,76px);line-height:1;letter-spacing:-.03em;color:var(--white)}
.a47-stat__l{font-size:14px;color:var(--muted);max-width:260px;line-height:1.5}
@media (max-width:760px){ .a47-stats__grid{grid-template-columns:1fr} }

/* CTA */
.a47-cta{text-align:center}
.a47-cta__inner{max-width:780px;margin:0 auto;border:1px solid var(--line);border-top:2px solid var(--signal);padding:clamp(44px,7vw,90px) clamp(24px,5vw,60px);background:radial-gradient(ellipse at 50% 0%,rgba(159,199,212,.05),transparent 60%),var(--bg-soft)}
.a47-cta__title{font-family:var(--ff-display);font-weight:600;font-size:clamp(30px,5.5vw,68px);line-height:1.02;letter-spacing:-.03em;margin-bottom:18px}
.a47-cta__inner p{color:var(--muted);margin-bottom:32px}
.a47-cta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ═══════════════════════════════════════════════════════
   GLOBAL MOBILE OPTIMISATION
   ═══════════════════════════════════════════════════════ */
@media (max-width:600px){
  :root{--pad:18px}
  body{cursor:auto}
  .cursor,.cursor-dot{display:none}
  .hero__globe{right:-30%;opacity:.4!important;width:120vw;height:120vw}
  .hero__content{padding:0 var(--pad)}
  .ticker__track{font-size:11px;gap:18px}
  .sec-head{margin-bottom:34px}
  section{padding:64px var(--pad)}
  .btn{min-height:44px}
  .nav__logo .logo{font-size:18px}
  .footer__top{flex-direction:column;gap:30px}
  .a47-hero{padding:100px var(--pad) 60px;min-height:auto}
}
@media (max-width:380px){
  .hero__title{font-size:clamp(36px,11vw,46px)}
  .a47-hero__title{font-size:clamp(48px,17vw,70px)}
}

/* ═══════════════════════════════════════════════════════
   BACKGROUND FLOW FIELD + MANTRA + STACKING
   ═══════════════════════════════════════════════════════ */
.bg-flow{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.6}
main{position:relative;z-index:1}
.footer{position:relative;z-index:1}
/* hero sits above flow; its own globe/grid keep their local z-index */
.hero,.a47-hero{position:relative;z-index:1}

.footer__mantra{
  text-align:center;margin-top:26px;
  font-family:var(--ff-display);font-weight:400;font-size:13px;letter-spacing:.06em;
  color:var(--muted-2);opacity:.5;transition:opacity .5s var(--ease),color .5s;
}
.footer__mantra:hover{opacity:.8;color:var(--signal)}
