:root{
  --ink:#0B1E33;          /* deep blueprint navy */
  --ink-2:#0E2742;
  --line:#3E6C99;         /* faded drafting line */
  --line-soft:rgba(126,196,255,.14);
  --cyan:#7FD4FF;         /* chalk cyan */
  --chalk:#EAF4FF;        /* near-white chalk */
  --amber:#FFB547;        /* converted-lead amber */
  --amber-deep:#E89422;
  --mono:'IBM Plex Mono',monospace;
  --disp:'Archivo',sans-serif;
  --hand:'Caveat',cursive;
  --body:'Inter',sans-serif;
  --maxw:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--chalk);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
/* blueprint grid over everything */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(rgba(127,212,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(127,212,255,.05) 1px,transparent 1px),
    linear-gradient(rgba(127,212,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(127,212,255,.03) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
}
::selection{background:var(--amber);color:var(--ink)}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;position:relative;z-index:1}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(12px);
  background:rgba(11,30,51,.78);
  border-bottom:1px solid var(--line-soft);
  transition:box-shadow .3s;
}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-family:var(--mono);font-weight:600;font-size:14px;letter-spacing:.04em;text-decoration:none;display:flex;align-items:center;gap:10px}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 12px var(--amber);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.6}}
.brand small{color:var(--cyan);opacity:.7;font-weight:400}
.nav-links{display:flex;gap:26px;align-items:center;font-family:var(--mono);font-size:12.5px;letter-spacing:.05em}
.nav-links a{text-decoration:none;color:var(--chalk);opacity:.75;transition:.2s;position:relative}
.nav-links a:hover{opacity:1;color:var(--cyan)}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-weight:600;font-size:13px;letter-spacing:.03em;
  padding:11px 20px;border-radius:6px;text-decoration:none;
  transition:transform .18s, box-shadow .18s, background .18s;
  cursor:pointer;border:none;
}
.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.btn-amber{background:var(--amber);color:var(--ink)}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(255,181,71,.35);background:#ffc369}
.btn-ghost{border:1px dashed var(--line);color:var(--cyan);background:transparent}
.btn-ghost:hover{border-style:solid;border-color:var(--cyan);transform:translateY(-2px)}

/* ---------- HERO ---------- */
header{position:relative;min-height:100vh;display:flex;align-items:center;padding:120px 0 80px;overflow:hidden}
/* Optional real video slot:
<video autoplay muted loop playsinline class="hero-video"><source src="hero.mp4" type="video/mp4"></video>
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;z-index:0}
*/
#funnelCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;width:100%}
.badge{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:12px;letter-spacing:.1em;
  border:1px dashed var(--line);border-radius:99px;padding:8px 16px;
  color:var(--cyan);margin-bottom:26px;
  animation:fadeUp .8s .1s both;
}
.badge b{color:var(--amber);font-weight:600}
h1{
  font-family:var(--disp);font-weight:900;
  font-size:clamp(40px,5.2vw,68px);line-height:1.04;letter-spacing:-.02em;
  animation:fadeUp .8s .25s both;
}
h1 .rot{
  display:inline-block;position:relative;color:var(--amber);
  border-bottom:3px dashed rgba(255,181,71,.4);
  min-width:5.4em;
}
h1 .rot span{display:inline-block;animation:wordIn .5s both}
@keyframes wordIn{from{opacity:0;transform:translateY(14px) rotate(-1.5deg)}to{opacity:1;transform:none}}
.hero-sub{
  margin:24px 0 34px;max-width:560px;font-size:17.5px;color:#B9D2E8;
  animation:fadeUp .8s .4s both;
}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;animation:fadeUp .8s .55s both}
.hand-note{
  font-family:var(--hand);font-size:21px;color:var(--cyan);
  transform:rotate(-2deg);display:inline-block;margin-top:26px;opacity:.85;
  animation:fadeUp .8s .7s both;
}
.hand-note svg{vertical-align:middle;margin-right:6px}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* profile card */
.pcard{
  position:relative;border:1px solid var(--line-soft);border-radius:14px;
  background:linear-gradient(160deg,rgba(14,39,66,.92),rgba(11,30,51,.88));
  padding:30px;backdrop-filter:blur(6px);
  animation:cardFloat 6s ease-in-out infinite, fadeUp .9s .5s both;
  box-shadow:0 24px 70px rgba(0,0,0,.45);
}
@keyframes cardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.pcard::before{
  content:"FIG. 01 — THE BUILDER";position:absolute;top:-11px;left:22px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--cyan);
  background:var(--ink);padding:2px 10px;border:1px dashed var(--line);border-radius:4px;
}
.pcard-top{display:flex;gap:18px;align-items:center;margin-bottom:20px}
.avatar{
  width:64px;height:64px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 30% 30%,#1E4E7A,#0E2742);
  border:2px solid var(--cyan);display:grid;place-items:center;
  font-family:var(--disp);font-weight:800;font-size:22px;color:var(--cyan);
  position:relative;
}
.avatar::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px dashed var(--line);animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pcard-top h3{font-family:var(--disp);font-size:20px;font-weight:700}
.pcard-top p{font-family:var(--mono);font-size:11.5px;color:var(--cyan);letter-spacing:.04em}
.rating{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;margin-bottom:22px}
.rating span{display:inline-flex;align-items:center;gap:6px;color:#B9D2E8}
.rating .g{color:#5BE38A}.rating .a{color:var(--amber)}
.pstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.pstat{border:1px solid var(--line-soft);border-radius:10px;padding:14px 10px;text-align:center;background:rgba(127,212,255,.03)}
.pstat b{display:block;font-family:var(--disp);font-weight:800;font-size:24px;color:var(--chalk)}
.pstat i{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--cyan)}
.pcard .btn{width:100%;justify-content:center}

/* live counter chip in hero */
.live-chip{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;gap:26px;align-items:center;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:#B9D2E8;
  border:1px solid var(--line-soft);border-radius:99px;padding:12px 26px;
  background:rgba(11,30,51,.8);backdrop-filter:blur(8px);
  animation:fadeUp 1s 1s both;white-space:nowrap;z-index:2;
}
.live-chip b{color:var(--amber);font-size:15px}
.live-chip .sep{width:1px;height:18px;background:var(--line-soft)}
.scroll-hint{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);color:var(--cyan);opacity:.5;animation:bob 2s infinite;z-index:2}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* ---------- SECTION SHARED ---------- */
section{padding:110px 0;position:relative}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--cyan);text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--cyan)}
h2{font-family:var(--disp);font-weight:800;font-size:clamp(30px,3.6vw,46px);line-height:1.12;letter-spacing:-.015em;margin-bottom:16px}
h2 em{font-style:normal;color:var(--amber);position:relative}
.sect-sub{color:#B9D2E8;max-width:620px;font-size:16.5px}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
.rv-d4{transition-delay:.32s}.rv-d5{transition-delay:.4s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}

/* ---------- STATS BAND ---------- */
.stats-band{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:54px 0;background:rgba(14,39,66,.35)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.stat b{font-family:var(--disp);font-weight:900;font-size:clamp(34px,4vw,52px);color:var(--chalk);display:block;line-height:1}
.stat b .u{color:var(--amber)}
.stat p{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;color:var(--cyan);margin-top:10px;text-transform:uppercase}

/* ---------- SERVICES ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.svc{
  border:1px solid var(--line-soft);border-radius:12px;padding:28px;
  background:rgba(14,39,66,.4);position:relative;overflow:hidden;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.svc::before{
  content:attr(data-fig);position:absolute;top:14px;right:16px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--line);
}
.svc:hover{transform:translateY(-6px);border-color:rgba(127,212,255,.4);box-shadow:0 18px 46px rgba(0,0,0,.4)}
.svc .ic{
  width:46px;height:46px;border-radius:10px;border:1px dashed var(--line);
  display:grid;place-items:center;margin-bottom:18px;color:var(--cyan);
  transition:.25s;
}
.svc:hover .ic{border-style:solid;border-color:var(--amber);color:var(--amber);transform:rotate(-6deg) scale(1.06)}
.svc h4{font-family:var(--disp);font-size:18.5px;font-weight:700;margin-bottom:10px}
.svc p{font-size:14.5px;color:#A9C4DC}

/* ---------- WORK ---------- */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:42px 0 30px}
.fbtn{
  font-family:var(--mono);font-size:12px;letter-spacing:.05em;
  padding:9px 18px;border-radius:99px;border:1px dashed var(--line);
  background:transparent;color:#B9D2E8;cursor:pointer;transition:.2s;
}
.fbtn:hover{color:var(--cyan);border-color:var(--cyan)}
.fbtn.on{background:var(--cyan);color:var(--ink);border-color:var(--cyan);border-style:solid;font-weight:600}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.wcard{
  display:block;text-decoration:none;border:1px solid var(--line-soft);border-radius:12px;
  overflow:hidden;background:var(--ink-2);transition:transform .25s,border-color .25s,box-shadow .25s;
  position:relative;
}
.wcard:hover{transform:translateY(-6px) rotate(-.4deg);border-color:rgba(255,181,71,.5);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.wthumb{aspect-ratio:16/10;overflow:hidden;position:relative;background:#12304F}
.wthumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 4s ease}
.wcard:hover .wthumb img{transform:translateY(-14%) scale(1.02)}
.wthumb::after{
  content:"OPEN LIVE →";position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--amber);
  background:rgba(11,30,51,.72);opacity:0;transition:.25s;
}
.wcard:hover .wthumb::after{opacity:1}
.wmeta{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.wmeta h5{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--chalk)}
.wmeta span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--cyan);border:1px dashed var(--line);border-radius:99px;padding:4px 10px;white-space:nowrap}
.work-more{text-align:center;margin-top:44px}

/* ---------- PROCESS ---------- */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:60px;position:relative}
.proc::before{
  content:"";position:absolute;top:26px;left:12%;right:12%;height:2px;
  background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 16px);
  z-index:0;
}
.pstep{position:relative;z-index:1;text-align:center;padding:0 18px}
.pnum{
  width:54px;height:54px;border-radius:50%;margin:0 auto 20px;
  border:2px solid var(--line);background:var(--ink);
  display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:14px;color:var(--cyan);
  transition:.3s;
}
.pstep:hover .pnum{border-color:var(--amber);color:var(--amber);transform:scale(1.12);box-shadow:0 0 26px rgba(255,181,71,.3)}
.pstep h4{font-family:var(--disp);font-size:17px;font-weight:700;margin-bottom:10px}
.pstep p{font-size:14px;color:#A9C4DC}

/* ---------- HOURS / TRUST ---------- */
.trust{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.trust ul{list-style:none;display:grid;gap:14px}
.trust li{
  display:flex;gap:14px;align-items:flex-start;font-size:15px;color:#C6DCEF;
  border:1px solid var(--line-soft);border-radius:10px;padding:15px 18px;
  background:rgba(14,39,66,.4);transition:.2s;
}
.trust li:hover{border-color:rgba(127,212,255,.35);transform:translateX(6px)}
.trust li b{color:var(--chalk)}
.tick{color:#5BE38A;font-weight:700;flex:none;font-family:var(--mono)}

/* ---------- CTA ---------- */
.cta{
  text-align:center;border:1px dashed var(--line);border-radius:18px;
  padding:80px 40px;position:relative;overflow:hidden;
  background:linear-gradient(160deg,rgba(14,39,66,.7),rgba(11,30,51,.9));
}
.cta::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(600px 200px at 50% 0%,rgba(255,181,71,.12),transparent 70%);
}
.cta h2{max-width:640px;margin:0 auto 18px}
.cta p{color:#B9D2E8;max-width:520px;margin:0 auto 36px}
.cta .btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line-soft);padding:36px 0;font-family:var(--mono);font-size:12px;color:#7FA3C4}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .svc-grid,.work-grid{grid-template-columns:repeat(2,1fr)}
  .proc{grid-template-columns:repeat(2,1fr);gap:36px 0}
  .proc::before{display:none}
  .trust{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .live-chip{display:none}
  .nav-links a:not(.btn){display:none}
}
@media(max-width:620px){
  .svc-grid,.work-grid{grid-template-columns:1fr}
  section{padding:80px 0}
}
