
*,
*::before,
*::after { box-sizing:border-box; }

body {
  margin:0;
  font-family:"Open Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:radial-gradient(circle at top,#152b7a,#020b2a 55%,#000);
  color:#fff;
  -webkit-font-smoothing:antialiased;
}

.container { max-width:1120px; margin:0 auto; padding:0 20px; }

.site-header {
  position:fixed; top:0; left:0; right:0; z-index:10;
  padding:10px 0;
  background:rgba(2,11,42,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff; }
.logo-img { width:36px; height:36px; }
.logo-title { font-family:"Montserrat"; font-weight:800; letter-spacing:.14em; text-transform:uppercase; font-size:13px; }
.logo-subtitle { font-size:11px; opacity:.7; }

.nav { display:flex; gap:14px; }
.nav-link { font-size:13px; color:rgba(255,255,255,.7); text-decoration:none; position:relative; padding:4px 0; }
.nav-link::after {
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:linear-gradient(90deg,#00F5FF,#fff);
  transition:width .3s ease;
}
.nav-link:hover { color:#fff; }
.nav-link:hover::after { width:100%; }

.nav-toggle { display:none; width:40px; height:40px; border-radius:999px; border:1px solid rgba(255,255,255,.25); background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.nav-toggle span { width:18px; height:2px; background:#fff; border-radius:999px; }

.site-main { padding-top:80px; }

.hero { position:relative; padding:80px 0 60px; overflow:hidden; }
.hero-bg { position:absolute; inset:0; opacity:.55; }
.hero-inner { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:32px; align-items:center; }
.hero-kicker { text-transform:uppercase; letter-spacing:.18em; font-size:11px; color:#00F5FF; margin:0 0 10px; }
.hero-title { font-family:"Montserrat"; font-size:32px; font-weight:800; margin:0 0 16px; }
.hero-subtitle { font-size:14px; color:rgba(255,255,255,.75); max-width:520px; margin:0 0 20px; }

.hero-cta { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.btn {
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:10px 22px;
  border-radius:999px;
  font-size:14px; font-family:"Montserrat"; font-weight:600;
  border:none; cursor:pointer; text-decoration:none;
}
.btn-primary { background:radial-gradient(circle at top left,#00F5FF,#0A2463); color:#020b2a; box-shadow:0 14px 32px rgba(0,182,255,.5); }
.btn-ghost { border:1px solid rgba(255,255,255,.3); background:rgba(2,11,42,.8); color:#fff; }
.btn-glow { position:absolute; inset:0; background:radial-gradient(circle at 30% 0,rgba(255,255,255,.7),transparent 60%); mix-blend-mode:screen; opacity:.5; pointer-events:none; }

.hero-meta { display:flex; flex-wrap:wrap; gap:10px; }
.hero-meta-item { padding:8px 12px; border-radius:16px; border:1px solid rgba(255,255,255,.2); background:rgba(3,10,40,.9); }
.hero-meta-label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.14em; opacity:.7; }
.hero-meta-value { font-size:13px; }

.hero-visual { position:relative; }
.hero-orbit { width:220px; height:220px; border-radius:50%; margin-left:auto; background:radial-gradient(circle at 30% 0,rgba(0,245,255,.18),rgba(2,11,42,.9)); box-shadow:0 18px 40px rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.18); }
.hero-orbit-layer { position:absolute; inset:16%; border-radius:50%; border:1px dashed rgba(255,255,255,.2); }
.hero-orbit-layer--2 { inset:30%; opacity:.7; }
.hero-orbit-core { position:absolute; inset:38%; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:rgba(1,7,32,.95); }
.hero-orbit-core span { font-size:11px; letter-spacing:.16em; text-transform:uppercase; opacity:.9; }

.section { padding:60px 0; }
.section-header { margin-bottom:24px; }
.section-kicker { text-transform:uppercase; letter-spacing:.18em; font-size:11px; color:#00F5FF; margin:0 0 8px; }
.section-title { font-family:"Montserrat"; font-size:24px; margin:0 0 10px; }
.section-description { margin:0; font-size:14px; color:rgba(255,255,255,.75); max-width:640px; }

.services-grid,
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }

.card { border-radius:22px; padding:18px; }
.glass { background:rgba(7,22,74,.8); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(18px); box-shadow:0 16px 32px rgba(0,0,0,.65); }

.service-title { margin:0 0 8px; font-size:16px; }
.service-text { margin:0; font-size:14px; color:rgba(255,255,255,.78); }

.portfolio-title { margin:0 0 6px; font-size:16px; }
.portfolio-text { margin:0; font-size:14px; color:rgba(255,255,255,.75); }

.timeline { position:relative; padding-left:20px; }
.timeline-line { position:absolute; left:6px; top:0; bottom:0; width:2px; background:linear-gradient(to bottom,#00F5FF,transparent); opacity:.7; }
.timeline-step { position:relative; margin-bottom:18px; }
.timeline-badge { position:absolute; left:0; top:20px; transform:translate(-50%,-50%); width:26px; height:26px; border-radius:50%; background:radial-gradient(circle at 30% 0,#00F5FF,#0A2463); display:flex; align-items:center; justify-content:center; font-size:11px; }
.timeline-title { margin:0 0 4px 20px; font-size:16px; }
.timeline-text { margin:0 0 0 20px; font-size:13px; color:rgba(255,255,255,.75); }

.site-footer { margin-top:40px; padding:30px 0 26px; border-top:1px solid rgba(255,255,255,.12); background:radial-gradient(circle at top,rgba(10,36,99,.8),rgba(1,5,26,1)); }
.footer-inner { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr) minmax(0,1.1fr); gap:18px; }
.footer-title { font-size:12px; text-transform:uppercase; letter-spacing:.12em; margin:0 0 8px; }
.footer-text { margin:0; font-size:13px; color:rgba(255,255,255,.75); }
.footer-text-small { font-size:12px; }
.footer-menu { list-style:none; margin:0; padding:0; font-size:13px; }
.footer-menu li { margin-bottom:4px; }
.footer-menu a { color:rgba(255,255,255,.7); text-decoration:none; }
.footer-menu a:hover { color:#fff; }
.footer-copy { margin:10px 0 0; font-size:12px; opacity:.7; }

.preloader { position:fixed; inset:0; background:radial-gradient(circle at top,#0A2463,#020b2a 60%,#000); display:flex; align-items:center; justify-content:center; z-index:20; }
.preloader-inner { max-width:240px; text-align:center; }
.preloader-logo { font-family:"Montserrat"; font-size:18px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:12px; }
.preloader-bar { width:100%; height:3px; border-radius:999px; background:rgba(255,255,255,.16); overflow:hidden; margin-bottom:10px; position:relative; }
.preloader-bar::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,#00F5FF,transparent); animation:preload 1.1s infinite; }
.preloader-text { font-size:11px; opacity:.8; }

.custom-cursor { position:fixed; top:0; left:0; width:18px; height:18px; border-radius:999px; border:1px solid rgba(0,245,255,.8); pointer-events:none; transform:translate(-50%,-50%); z-index:30; mix-blend-mode:screen; transition:width .2s,height .2s,background .2s; }
.custom-cursor--active { width:30px; height:30px; background:rgba(0,245,255,.12); }

@keyframes preload { 0%{transform:translateX(-100%);} 100%{transform:translateX(100%);} }

@media(max-width:960px){
  .hero-inner{grid-template-columns:minmax(0,1fr);}
  .hero-visual{order:-1; justify-self:center;}
  .services-grid,
  .portfolio-grid,
  .footer-inner{grid-template-columns:minmax(0,1fr);}
}

@media(max-width:720px){
  .nav{position:fixed; inset:56px 12px auto 12px; background:rgba(2,11,42,.98); border-radius:18px; padding:12px; flex-direction:column; gap:8px; transform:translateY(-20px); opacity:0; pointer-events:none; transition:.25s ease;}
  .nav.nav--open{transform:translateY(0); opacity:1; pointer-events:auto;}
  .nav-toggle{display:flex;}
  .hero{padding-top:90px;}
}

@media(max-width:480px){
  .hero-title{font-size:26px;}
  .hero-cta{flex-direction:column;}
  .btn{width:100%; justify-content:center;}
}
