:root{
  --void:#0a0d10;
  --panel:#12161b;
  --panel-2:#161b21;
  --light:#dfded8;
  --light-2:#cfcec7;
  --ice:#9fdcea;
  --ice-deep:#3e6b78;
  --clay:#b08a63;
  --clay-dim:#7a6248;
  --text:#f2f3f0;
  --muted:#8b9298;
  --line: rgba(242,243,240,0.12);
  --line-dark: rgba(10,13,16,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--void);
  color:var(--text);
  font-family:'IBM Plex Sans', sans-serif;
  overflow-x:hidden;
}
::selection{ background:var(--ice); color:var(--void); }

h1,h2,h3, .display{
  font-family:'Archivo', sans-serif;
  font-weight:900;
  letter-spacing:-0.03em;
  line-height:0.94;
  text-transform:uppercase;
}
.mono{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.04em;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ice);
  display:flex;
  align-items:center;
  gap:0.6em;
}
.eyebrow::before{
  content:'';
  width:7px; height:7px;
  background:var(--ice);
  border-radius:50%;
  display:inline-block;
  box-shadow:0 0 8px var(--ice);
}
.wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 48px;
}
a{ color:inherit; text-decoration:none; }

/* ---------- NAV ---------- */
nav{
  position:fixed; top:0; left:0; right:0;
  z-index:100;
  padding:26px 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  mix-blend-mode:difference;
}
.logo{
  font-family:'Archivo', sans-serif;
  font-weight:800;
  font-size:1rem;
  letter-spacing:-0.01em;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text);
}
.logo span{ color:var(--ice); }
.navlinks{
  display:flex; align-items:center; gap:40px;
  font-size:0.82rem;
}
.navlinks a{ color:var(--text); opacity:0.85; transition:opacity .2s; }
.navlinks a:hover{ opacity:1; }
.burger{
  display:flex; flex-direction:column; gap:5px; cursor:pointer;
}
.burger span{ width:22px; height:2px; background:var(--text); display:block; }

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  background:radial-gradient(ellipse 900px 500px at 70% 20%, #10181c 0%, var(--void) 60%);
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding:120px 48px 60px;
}
.contour-svg{
  position:absolute; inset:0;
  width:100%; height:100%;
  opacity:0.35;
  pointer-events:none;
}
.contour-svg path{
  fill:none;
  stroke:var(--ice-deep);
  stroke-width:1;
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:1240px;
  margin:0 auto;
  width:100%;
}
.hero .eyebrow{ margin-bottom:26px; }
.hero h1{
  font-size:clamp(2.8rem, 8.4vw, 8rem);
  max-width:14ch;
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg, var(--ice), #e8f8fb 60%, var(--ice));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero-sub{
  margin-top:34px;
  max-width:480px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.6;
}
.instrument{
  position:absolute;
  right:48px; bottom:40px;
  z-index:2;
  text-align:right;
  font-size:0.72rem;
  color:var(--muted);
  line-height:1.7;
}
.instrument .val{ color:var(--ice); }
.crosshair{
  position:fixed;
  width:26px; height:26px;
  border:1px solid var(--ice);
  border-radius:50%;
  pointer-events:none;
  z-index:200;
  transform:translate(-50%,-50%);
  transition:opacity .3s;
  opacity:0;
}
.crosshair::before, .crosshair::after{
  content:'';
  position:absolute; background:var(--ice);
}
.crosshair::before{ left:50%; top:-6px; width:1px; height:6px; transform:translateX(-50%); }
.crosshair::after{ left:-6px; top:50%; width:6px; height:1px; transform:translateY(-50%); }

.scroll-cue{
  position:absolute; left:48px; bottom:40px;
  display:flex; align-items:center; gap:10px;
  font-size:0.72rem; color:var(--muted);
  font-family:'IBM Plex Mono', monospace;
}
.scroll-cue .line{
  width:40px; height:1px; background:var(--muted);
  position:relative; overflow:hidden;
}
.scroll-cue .line::after{
  content:''; position:absolute; left:0; top:0; height:100%; width:14px;
  background:var(--ice);
  animation:slide 2.4s ease-in-out infinite;
}
@keyframes slide{ 0%{left:-14px;} 50%{left:40px;} 100%{left:-14px;} }

/* ---------- INTRO ---------- */
.intro{
  background:var(--panel);
  padding:140px 0 90px;
}
.intro-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:70px;
}
.intro h2{
  font-size:clamp(2rem, 3.6vw, 3.4rem);
  text-transform:none;
  font-weight:800;
  letter-spacing:-0.02em;
}
.intro p{
  color:var(--muted);
  font-size:1rem;
  line-height:1.75;
  margin-top:26px;
  max-width:46ch;
}
.stat-col{
  display:flex; flex-direction:column;
  gap:34px;
  border-left:1px solid var(--line);
  padding-left:40px;
}
.stat .num{
  font-family:'Archivo', sans-serif;
  font-weight:900;
  font-size:2.6rem;
  color:var(--ice);
  letter-spacing:-0.02em;
}
.stat .lab{
  font-size:0.76rem;
  color:var(--muted);
  margin-top:6px;
  max-width:26ch;
}
.hairline{
  border:none; border-top:1px solid var(--line);
  margin:80px 0 0;
}

/* ---------- GALLERY ---------- */
.gallery{
  background:var(--panel);
  padding:90px 0 130px;
}
.gallery-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:44px;
  flex-wrap:wrap; gap:20px;
}
.gallery-head h3{
  font-size:1.1rem; text-transform:none; font-weight:600;
  font-family:'IBM Plex Sans'; letter-spacing:0; color:var(--text);
}
.grid3{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}
figure{ margin:0; }
.card{
  position:relative;
  aspect-ratio:4/5;
  border-radius:6px;
  overflow:hidden;
  background:var(--void);
  cursor:pointer;
}
.card svg{
  width:100%; height:100%;
  display:block;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.card:hover svg{ transform:scale(1.06); }
figcaption{
  margin-top:14px;
  display:flex; justify-content:space-between;
  font-size:0.74rem;
  color:var(--muted);
  font-family:'IBM Plex Mono', monospace;
}
figcaption .coord{ color:var(--ice); }

.panorama{
  margin-top:22px;
  position:relative;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:21/8;
}
.panorama svg{ width:100%; height:100%; display:block; }
.panorama-caption{
  position:absolute; left:32px; bottom:28px;
  font-size:0.78rem; color:var(--text);
  font-family:'IBM Plex Mono', monospace;
  text-shadow:0 2px 12px rgba(0,0,0,0.6);
}
.btn{
  position:absolute; right:32px; bottom:26px;
  border:1px solid rgba(242,243,240,0.4);
  background:rgba(10,13,16,0.35);
  backdrop-filter:blur(6px);
  padding:12px 22px;
  border-radius:100px;
  font-size:0.78rem;
  display:inline-flex; align-items:center; gap:10px;
  transition:all .25s;
}
.btn:hover{ background:var(--ice); color:var(--void); border-color:var(--ice); }

/* ---------- UI/UX ---------- */
.uiux{
  background:var(--light);
  color:var(--void);
  padding:100px 0 110px;
  overflow:hidden;
}
.uiux .eyebrow{ color:var(--clay-dim); }
.uiux .eyebrow::before{ background:var(--clay-dim); box-shadow:none; }
.uiux h3{
  font-size:1.1rem; font-weight:600; text-transform:none;
  font-family:'IBM Plex Sans'; margin-bottom:44px; color:var(--void);
}
.device-row{
  display:grid;
  grid-template-columns:0.7fr 1.5fr 0.7fr;
  gap:22px;
  align-items:center;
}
.device-card{
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#12161b;
  position:relative;
}
.device-card.side{ opacity:0.5; filter:saturate(0.5); }
.device-card svg{ width:100%; height:100%; display:block; }

/* ---------- CTA / FOOTER ---------- */
.cta{
  background:var(--void);
  padding:150px 0 60px;
  position:relative;
}
.cta h2{
  font-size:clamp(2.4rem, 7vw, 6rem);
  max-width:16ch;
}
.cta h2 em{
  font-style:normal; color:transparent;
  -webkit-text-stroke:1.5px var(--text);
}
.cta-row{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-top:50px; flex-wrap:wrap; gap:30px;
}
.cta-note{
  max-width:34ch;
  color:var(--muted);
  font-size:0.95rem;
  line-height:1.6;
}
.cta-mail{
  font-family:'IBM Plex Mono', monospace;
  font-size:1rem; color:var(--ice);
  border-bottom:1px solid var(--ice-deep);
  padding-bottom:6px;
}
footer{
  border-top:1px solid var(--line);
  margin-top:110px;
  padding:32px 0 40px;
  display:flex; justify-content:space-between; align-items:center;
  font-size:0.72rem; color:var(--muted);
  font-family:'IBM Plex Mono', monospace;
  flex-wrap:wrap; gap:16px;
}
footer .flinks{ display:flex; gap:26px; }
footer a:hover{ color:var(--ice); }

[data-reveal]{
  opacity:0; transform:translateY(24px);
  transition:opacity .8s ease, transform .8s ease;
}
[data-reveal].in{ opacity:1; transform:translateY(0); }

@media (max-width:900px){
  .wrap{ padding:0 24px; }
  nav{ padding:20px 24px; }
  .navlinks{ display:none; }
  .hero{ padding:110px 24px 70px; }
  .intro{ padding:100px 0 60px; }
  .intro-grid{ grid-template-columns:1fr; gap:40px; }
  .stat-col{ border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:30px; flex-direction:row; flex-wrap:wrap; }
  .grid3{ grid-template-columns:1fr 1fr; }
  .grid3 figure:last-child{ grid-column:span 2; }
  .device-row{ grid-template-columns:1fr; }
  .device-card.side{ display:none; }
  .instrument{ display:none; }
  .cta{ padding:100px 0 40px; }
  footer{ flex-direction:column; align-items:flex-start; }
}
