@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Mono:wght@300;400&family=DM+Sans:wght@300;400;500&display=swap');

:root {
  --bg: #03030a;
  --navy: #060818;
  --blue: #2563eb;
  --glow: #3b82f6;
  --light: #93c5fd;
  --white: #eef0f8;
  --muted: #8899bb;
  --border: rgba(59,130,246,0.12);
  --borderB: rgba(59,130,246,0.3);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--white); font-family: 'DM Sans', sans-serif; font-weight: 300; overflow-x: hidden; cursor: none; }

.cursor { width: 6px; height: 6px; background: var(--glow); border-radius: 50%; position: fixed; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); }
.cursor-ring { width: 26px; height: 26px; border: 1px solid rgba(59,130,246,0.35); border-radius: 50%; position: fixed; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: left .1s ease-out, top .1s ease-out; }

#bg-canvas { position: fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }

/* NAV */
nav { position: fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:1rem 4rem; border-bottom:1px solid var(--border); background:rgba(3,3,10,0.92); backdrop-filter:blur(24px); }
.nav-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.nav-logo img { width:42px; height:42px; border-radius:8px; }
.nav-logo-text { font-family:'Syne',sans-serif; font-weight:800; font-size:15px; letter-spacing:2px; color:var(--white); text-transform:uppercase; }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:2px; color:var(--white); text-decoration:none; text-transform:uppercase; transition:color .2s; opacity:.7; }
.nav-links a:hover, .nav-links a.active { color:var(--light); opacity:1; }
.nav-cta { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:9px 22px; border:1px solid var(--borderB); background:transparent; color:var(--light); cursor:none; transition:all .2s; }
.nav-cta:hover { background:var(--blue); color:#fff; border-color:var(--blue); }

/* PAGE WRAPPER */
.page-content { position:relative; z-index:1; padding-top:70px; }

/* SECTION LABELS */
.slbl { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:4px; color:var(--light); text-transform:uppercase; margin-bottom:.8rem; display:flex; align-items:center; gap:12px; }
.slbl::before { content:''; width:18px; height:1px; background:var(--light); }

/* HEADINGS */
.sh1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(56px,8vw,110px); line-height:.92; letter-spacing:-2px; margin-bottom:1.5rem; }
.sh2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(38px,4.5vw,62px); letter-spacing:-1.5px; line-height:.96; margin-bottom:1.5rem; }
.sh3 { font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(22px,2vw,28px); margin-bottom:.8rem; letter-spacing:-.3px; }
.sh1 em, .sh2 em { font-style:italic; color:var(--light); }

/* BODY TEXT */
.body-text { font-size:16px; color:var(--white); line-height:1.8; opacity:.75; }
.body-sm { font-size:14px; color:var(--white); line-height:1.75; opacity:.7; }

/* BUTTONS */
.btn-p { padding:14px 32px; background:var(--blue); color:#fff; border:none; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; cursor:none; transition:all .2s; text-decoration:none; display:inline-block; }
.btn-p:hover { background:var(--glow); transform:translateY(-1px); }
.btn-g { padding:14px 32px; background:transparent; color:var(--white); border:1px solid var(--border); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; cursor:none; transition:all .2s; text-decoration:none; display:inline-block; opacity:.8; }
.btn-g:hover { border-color:var(--borderB); opacity:1; }

/* CARDS */
.card-grid { display:grid; gap:1px; background:var(--border); border:1px solid var(--border); }
.card-grid-2 { grid-template-columns:repeat(2,1fr); }
.card-grid-3 { grid-template-columns:repeat(3,1fr); }
.card { background:var(--bg); padding:3rem; position:relative; overflow:hidden; transition:background .3s; }
.card:hover { background:rgba(6,10,24,.98); }
.card::after { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--glow),transparent); opacity:0; transition:opacity .3s; }
.card:hover::after { opacity:1; }
.card-num { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:3px; color:var(--muted); margin-bottom:1.5rem; display:flex; align-items:center; gap:8px; }
.card-num::after { content:''; flex:1; height:1px; background:var(--border); }

/* SECTIONS */
.section { padding:6rem 4rem; border-top:1px solid var(--border); }
.section-hero { padding:5rem 4rem 6rem; }

/* STATS */
.stats-strip { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.stat { padding:2.5rem 4rem; border-right:1px solid var(--border); }
.stat:last-child { border-right:none; }
.stat-n { font-family:'Cormorant Garamond',serif; font-weight:600; font-size:58px; letter-spacing:-2px; background:linear-gradient(135deg,var(--white),var(--light)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; display:block; margin-bottom:8px; }
.stat-l { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2.5px; color:var(--white); text-transform:uppercase; opacity:.7; }

/* SCAN LINE */
.pulse-scan { position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--glow),transparent); animation:scan 3.5s linear infinite; opacity:.3; }

/* FOOTER */
footer { position:relative; z-index:1; padding:3rem 4rem; border-top:1px solid var(--border); display:grid; grid-template-columns:1fr 1fr 1fr; gap:3rem; }
.footer-brand img { width:48px; height:48px; border-radius:8px; margin-bottom:1rem; }
.footer-brand-name { font-family:'Cormorant Garamond',serif; font-weight:600; font-size:18px; letter-spacing:2px; text-transform:uppercase; color:var(--white); margin-bottom:.5rem; }
.footer-tagline { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; color:var(--muted); text-transform:uppercase; }
.footer-col h4 { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:3px; color:var(--light); text-transform:uppercase; margin-bottom:1.2rem; }
.footer-col a, .footer-col p { display:block; font-size:14px; color:var(--white); opacity:.6; text-decoration:none; margin-bottom:.6rem; transition:opacity .2s; font-family:'DM Sans',sans-serif; }
.footer-col a:hover { opacity:1; color:var(--light); }
.footer-bottom { position:relative; z-index:1; padding:1.2rem 4rem; border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.footer-copy { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; color:var(--muted); text-transform:uppercase; }
.footer-legal { display:flex; gap:2rem; }
.footer-legal a { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; color:var(--muted); text-decoration:none; text-transform:uppercase; transition:color .2s; }
.footer-legal a:hover { color:var(--white); }

/* REVEAL ANIMATION */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-d1 { transition-delay:.1s; }
.reveal-d2 { transition-delay:.2s; }
.reveal-d3 { transition-delay:.3s; }

/* FADE IN */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);} }
@keyframes scan { from{transform:translateX(-100%);}to{transform:translateX(100%);} }
.fade1 { opacity:0; animation:fadeUp .9s .15s forwards; }
.fade2 { opacity:0; animation:fadeUp .9s .35s forwards; }
.fade3 { opacity:0; animation:fadeUp .9s .55s forwards; }
.fade4 { opacity:0; animation:fadeUp .9s .75s forwards; }

/* CONTACT FORM */
.contact-form { display:flex; flex-direction:column; gap:1rem; max-width:560px; }
.contact-form input, .contact-form textarea, .contact-form select {
  padding:14px 18px; background:rgba(6,8,24,.8); border:1px solid var(--border);
  color:var(--white); font-family:'DM Sans',sans-serif; font-size:14px; outline:none;
  transition:border-color .2s;
}
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--borderB); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:var(--muted); opacity:.7; }
.contact-form textarea { resize:vertical; min-height:140px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* BREADCRUMB */
.breadcrumb { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; color:var(--muted); text-transform:uppercase; margin-bottom:2rem; display:flex; gap:.8rem; align-items:center; }
.breadcrumb a { color:var(--muted); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:var(--white); }
.breadcrumb span { color:var(--light); }

/* PROCESS TIMELINE */
.timeline { position:relative; padding-left:3rem; }
.timeline::before { content:''; position:absolute; left:8px; top:0; bottom:0; width:1px; background:var(--border); }
.timeline-item { position:relative; margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid var(--border); }
.timeline-item:last-child { border-bottom:none; margin-bottom:0; }
.timeline-dot { position:absolute; left:-2.4rem; top:6px; width:10px; height:10px; border:1px solid var(--glow); border-radius:50%; background:var(--bg); }
.timeline-dot::after { content:''; position:absolute; inset:2px; border-radius:50%; background:var(--glow); opacity:.5; }
.timeline-num { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; color:var(--glow); margin-bottom:.6rem; }

/* COOKIE BANNER */
#cookie-banner { position:fixed; bottom:0; left:0; right:0; background:rgba(6,8,20,0.97); border-top:1px solid var(--borderB); padding:1.5rem 4rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; z-index:9000; backdrop-filter:blur(20px); }
#cookie-banner p { font-size:13px; color:var(--white); opacity:.8; line-height:1.6; max-width:700px; }
#cookie-banner a { color:var(--light); }
.cookie-btns { display:flex; gap:.8rem; flex-shrink:0; flex-wrap:wrap; }
.cbtn { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:2px; text-transform:uppercase; padding:9px 18px; border:none; cursor:pointer; transition:all .2s; white-space:nowrap; }
.cbtn-accept { background:var(--blue); color:#fff; }
.cbtn-accept:hover { background:var(--glow); }
.cbtn-reject { background:transparent; color:var(--white); border:1px solid var(--border); }
.cbtn-reject:hover { border-color:var(--borderB); }
.cbtn-config { background:transparent; color:var(--light); border:1px solid var(--borderB); }
.cbtn-config:hover { background:rgba(37,99,235,.15); }

#cookie-modal { display:none; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); background:#070a1a; border:1px solid var(--borderB); padding:2.5rem; border-radius:2px; z-index:9001; width:90%; max-width:480px; }
#cookie-modal h3 { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:600; margin-bottom:1.5rem; color:var(--white); }
#cookie-modal label { display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; font-size:14px; color:var(--white); opacity:.8; cursor:pointer; }
#cookie-modal input[type=checkbox] { accent-color:var(--blue); width:16px; height:16px; cursor:pointer; }
#cookie-modal .modal-btns { display:flex; gap:.8rem; margin-top:1.5rem; }

#cookie-icon-DISABLED { display:none; position:fixed; bottom:1.5rem; right:1.5rem; width:44px; height:44px; background:var(--navy); border:1px solid var(--borderB); border-radius:50%; align-items:center; justify-content:center; cursor:pointer; z-index:8999; transition:all .2s; }
#cookie-icon:hover { background:var(--blue); }
#cookie-icon svg { width:20px; height:20px; stroke:var(--white); fill:none; }

/* RESPONSIVE */
@media(max-width:768px) {
  nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .section { padding:4rem 1.5rem; }
  .section-hero { padding:3rem 1.5rem 4rem; }
  .card-grid-2, .card-grid-3 { grid-template-columns:1fr; }
  .stats-strip { grid-template-columns:1fr; }
  .stat { border-right:none; border-bottom:1px solid var(--border); }
  footer { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  #cookie-banner { flex-direction:column; padding:1.5rem; }
  .footer-bottom { flex-direction:column; gap:1rem; }
  .sh1 { font-size:clamp(40px,10vw,70px); }
}

/* Cookie icon — positioned below Pulsie */
#cookie-icon {
  display:none;
  position:fixed;
  bottom:1.2rem;
  right:1.8rem;
  width:38px; height:38px;
  background:rgba(7,10,26,0.9);
  border:1px solid rgba(59,130,246,0.25);
  border-radius:50%;
  align-items:center; justify-content:center;
  cursor:pointer; z-index:8980;
  transition:all .2s;
}
#cookie-icon:hover { background:rgba(37,99,235,0.2); border-color:rgba(59,130,246,0.5); }
#cookie-icon svg { width:16px; height:16px; stroke:rgba(147,197,253,0.6); fill:none; }

/* Cookie banner refinement */
#cookie-banner {
  position:fixed; bottom:0; left:0; right:0;
  background:rgba(5,7,18,0.97);
  border-top:1px solid rgba(59,130,246,0.2);
  padding:1.2rem 3rem;
  display:flex; justify-content:space-between; align-items:center; gap:2rem;
  z-index:9000; backdrop-filter:blur(20px);
}
