@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Orbitron:wght@600;700&display=swap');

:root{
  --bg:#05070d;
  --panel:rgba(12,18,36,.76);
  --panel-strong:rgba(12,18,36,.9);
  --text:#e6f0ff;
  --muted:#9ab0d6;
  --accent:#6af7ff;
  --accent-2:#ff4fd8;
  --accent-3:#8c7bff;
  --line:rgba(255,255,255,.12);
  --grid:rgba(255,255,255,.05);
  --radius:16px;
  --shadow:0 20px 60px rgba(0,0,0,.55);
  --blur:16px;
  --speed:260ms;
  --noise:url('assets/pattern-grid.svg');
  --glow:0 0 0 1px rgba(106,247,255,.1),0 18px 50px rgba(0,0,0,.45);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 700px at 10% 5%, rgba(106,247,255,.14), transparent 50%),
    radial-gradient(1000px 620px at 90% 20%, rgba(255,79,216,.12), transparent 55%),
    linear-gradient(145deg, #05060c 0%, #070a15 35%, #05070d 100%);
  color:var(--text);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  background-attachment:fixed;
}

::selection{background:rgba(255,79,216,.25);color:var(--text)}

a{color:inherit}
a:hover{color:var(--accent)}

.wrap{max-width:1160px;margin:0 auto;padding:0 22px}

.global-grid{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image: linear-gradient(90deg,var(--grid) 1px,transparent 1px), linear-gradient(180deg,var(--grid) 1px,transparent 1px);
  background-size:120px 120px;
  mask-image: radial-gradient(circle at 20% 10%, rgba(255,255,255,.4), transparent 60%), radial-gradient(circle at 80% 30%, rgba(255,255,255,.35), transparent 55%);
  opacity:.55;
}

.nav{
  position:sticky;top:0;z-index:10;
  backdrop-filter: blur(var(--blur));
  background: linear-gradient(120deg, rgba(8,12,22,.9), rgba(6,9,18,.75));
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;position:relative;}
.brand{font-weight:800;letter-spacing:.6px;font-family:'Orbitron', 'Inter', sans-serif;font-size:18px;}
.brand span{opacity:.8;font-weight:700;color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:16px}
.nav a{
  color:var(--muted);text-decoration:none;font-size:14px;
  padding:10px 12px;border-radius:12px;border:1px solid transparent;
  transition:color var(--speed) ease, border-color var(--speed) ease, background var(--speed) ease;
}
.nav a:hover{color:var(--text);border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.04)}
.nav-toggle{
  display:none;flex-direction:column;gap:6px;
  background:none;border:1px solid var(--line);border-radius:12px;
  padding:8px;cursor:pointer;
  color:var(--text);
}
.nav-toggle span{display:block;width:18px;height:2px;background:currentColor}
.progress{height:3px;width:100%;background:rgba(255,255,255,.05);overflow:hidden}
.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 12px rgba(255,79,216,.35)}

main{position:relative;z-index:1}
.grid{position:relative}
.section{padding:64px 0;border-top:1px solid var(--line);}
.section.alt{background:linear-gradient(180deg, rgba(255,255,255,.02), transparent)}
.section-head{max-width:720px;margin-bottom:28px}
.kicker{color:var(--accent);margin:0 0 10px 0;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
h1,h2,h3{font-family:'Orbitron', 'Inter', sans-serif;margin:0}
h1{font-size:48px;line-height:1.05;margin:0 0 16px 0;letter-spacing:-.02em}
h2{font-size:28px;margin:0 0 12px 0}
h3{font-size:18px;margin:0 0 8px 0}
.lead{color:var(--muted);font-size:16px;line-height:1.7;max-width:58ch;margin:0}
.muted{color:var(--muted)}

.hero{
  position:relative;
  overflow:hidden;
  padding:120px 0 80px;
  border-bottom:1px solid var(--line);
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:32px;align-items:center}
.hero-left{position:relative;z-index:2}
.hero-right{display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.flow-bg{
  position:absolute;inset:0;overflow:hidden;
  background:linear-gradient(135deg, rgba(106,247,255,.12), rgba(255,79,216,.12));
  pointer-events:none;
}
.flow-bg canvas{position:absolute;inset:0;width:100%;height:100%;display:block;mix-blend-mode:screen;filter:saturate(110%)}
.flow-fallback{
  position:absolute;inset:0;
  background:radial-gradient(80% 80% at 10% 20%, rgba(106,247,255,.16), transparent 60%),
             radial-gradient(70% 70% at 90% 10%, rgba(255,79,216,.18), transparent 60%);
  filter: blur(22px);
}
.flow-bg.has-flow .flow-fallback{opacity:.2}
.flow-bg.flow-static canvas{display:none}
.flow-noise{
  position:absolute;inset:0;
  background-image:var(--noise);
  opacity:.35;
  mix-blend-mode:soft-light;
}
.cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}

.btn,.ghost{
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  text-decoration:none;
  color:var(--text);
  font-weight:700;
  letter-spacing:.01em;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform var(--speed) ease, border-color var(--speed) ease, background var(--speed) ease, box-shadow var(--speed) ease;
}
.btn{
  background:linear-gradient(120deg, rgba(106,247,255,.25), rgba(255,79,216,.25));
  box-shadow:var(--glow);
}
.ghost{
  background:rgba(255,255,255,.04);
  color:var(--text);
}
.btn:hover,.ghost:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.32);box-shadow:0 14px 45px rgba(0,0,0,.35)}
.btn:focus-visible,.ghost:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:28px;
}
.stats div{
  padding:14px 14px;border:1px solid var(--line);border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
.stats strong{display:block;font-weight:700;font-size:15px}
.stats span{display:block;color:var(--muted);font-size:13px;margin-top:6px}

.card{
  width:100%;max-width:420px;min-height:280px;
  border-radius:20px;
  border:1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  position:relative;overflow:hidden;padding:22px;
  box-shadow:var(--shadow);
  backdrop-filter: blur(var(--blur));
  isolation:isolate;
}
.card::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(60% 60% at 30% 20%, rgba(106,247,255,.16), transparent 55%);
  mix-blend-mode:screen;pointer-events:none;
}
.card .pulse{
  position:absolute;inset:-60px;
  background: radial-gradient(circle at 25% 30%, rgba(255,79,216,.28), transparent 55%);
  animation: drift 9s ease-in-out infinite;
  z-index:0;
}
.card .lines span{
  position:absolute;left:-35%;
  width:170%;height:2px;background:rgba(255,255,255,.08);
  transform: rotate(-10deg);
}
.card .lines span:nth-child(1){top:32%}
.card .lines span:nth-child(2){top:48%}
.card .lines span:nth-child(3){top:64%}
.card .lines span:nth-child(4){top:80%}
.card-visual{
  position:relative;
  width:100%;height:110px;
  margin-bottom:12px;
  border-radius:16px;border:1px solid rgba(255,255,255,.18);
  object-fit:cover;display:block;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  z-index:1;
}
.card-title{position:relative;margin:0 0 6px 0;font-weight:800;font-size:20px;letter-spacing:.04em;z-index:1}
.card-sub{position:relative;margin:0;color:var(--muted);z-index:1}
.card-meta{position:relative;margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;z-index:1}
.card-meta span{
  padding:6px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);font-size:12px;color:var(--text)
}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.tile{
  padding:18px;border-radius:16px;border:1px solid var(--line);
  background: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  transition:transform var(--speed) ease, border-color var(--speed) ease, background var(--speed) ease;
}
.tile:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.24);background:linear-gradient(145deg, rgba(106,247,255,.08), rgba(255,79,216,.05))}
.tile p{margin:0;color:var(--muted);line-height:1.55}
.tag{
  display:inline-flex;align-items:center;
  margin-top:14px;padding:6px 10px;font-size:12px;
  border-radius:12px;border:1px solid rgba(255,255,255,.16);
  color:var(--text);background:rgba(255,255,255,.06);
}

.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.chip{
  padding:8px 12px;border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);color:var(--text);cursor:pointer;
  transition:all var(--speed) ease;
}
.chip:hover{border-color:rgba(255,255,255,.2)}
.chip.is-active{background:linear-gradient(120deg, rgba(106,247,255,.18), rgba(255,79,216,.22));border-color:rgba(255,255,255,.3);box-shadow:0 12px 36px rgba(0,0,0,.35)}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:16px;
}
.case{
  position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);
  background:rgba(255,255,255,.04);box-shadow:0 16px 40px rgba(0,0,0,.35);
  transition:transform var(--speed) ease, border-color var(--speed) ease;
}
.case.is-hidden{display:none}
.case:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22)}
.case picture,.case img{display:block;width:100%;height:100%;object-fit:cover}
.case img{aspect-ratio:4/3;filter:saturate(1.1);}
.case::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, transparent 40%, rgba(5,7,13,.9));
}
.case-meta{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px;
  display:flex;flex-direction:column;gap:2px;
}
.case-title{margin:0;font-weight:700;letter-spacing:.01em}

.contact-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start;
}
.form{
  padding:20px;border-radius:16px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.form label{display:block;margin-bottom:12px;color:var(--muted);font-size:14px}
input,textarea{
  width:100%;margin-top:6px;padding:12px 12px;border-radius:12px;
  border:1px solid rgba(255,255,255,.2);
  background: rgba(4,6,14,.8);color:var(--text);
  font-family:'Inter', sans-serif;
  transition:border-color var(--speed) ease, box-shadow var(--speed) ease;
}
input:focus-visible,textarea:focus-visible{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 2px rgba(106,247,255,.25);
}
.contact-side{
  padding:20px;border-radius:16px;border:1px solid var(--line);
  background:linear-gradient(145deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.social{display:flex;gap:10px;margin-top:10px}
.social a{
  width:36px;height:36px;border-radius:10px;border:1px solid var(--line);
  display:grid;place-items:center;
  text-decoration:none;color:var(--text);
  background:rgba(255,255,255,.04);
  font-weight:700;font-size:12px;
  transition:transform var(--speed) ease, border-color var(--speed) ease;
}
.social a:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22)}

.footer{
  padding:26px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px;
  background:rgba(5,7,13,.9);
}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.badge{
  display:grid;grid-template-columns:repeat(2,auto);gap:6px 12px;
  align-items:center;
  padding:10px 12px;border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--text);
}
.badge strong{font-size:16px;color:var(--accent)}

[data-animate]{opacity:0;transform:translateY(12px);transition:opacity 420ms ease, transform 420ms ease}
[data-animate].is-visible{opacity:1;transform:translateY(0)}

.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;pointer-events:none;z-index:20;
  border-radius:50%;mix-blend-mode:difference;
}
.cursor-dot{width:8px;height:8px;background:var(--accent)}
.cursor-ring{
  width:32px;height:32px;border:1px solid rgba(255,255,255,.6);
  transform:translate(-50%,-50%);
}

[data-magnetic]{position:relative;will-change:transform}
[data-parallax]{will-change:transform}

.lab-note{
  padding:18px;border:1px dashed var(--line);border-radius:14px;
  background:rgba(255,255,255,.03);
}

@keyframes drift{
  0%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(22px, -12px, 0)}
  100%{transform:translate3d(0,0,0)}
}

@media (max-width: 960px){
  .nav-links{
    position:absolute;top:56px;right:0;left:0;
    background:rgba(5,7,13,.96);backdrop-filter:blur(16px);
    padding:12px 0;display:none;flex-direction:column;gap:6px;
  }
  .nav-links.is-open{display:flex}
  .nav-links a{margin:0 16px}
  .nav-toggle{display:inline-flex}
  .hero-grid{grid-template-columns:1fr}
  .hero{padding:100px 0 60px}
  .contact-grid{grid-template-columns:1fr}
  h1{font-size:38px}
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto!important;animation-duration:0.01ms!important;animation-iteration-count:1!important;transition:none!important}
  [data-animate]{opacity:1;transform:none}
}
.reduce-motion *{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition:none!important}
.reduce-motion .flow-bg canvas{display:none!important}
