@font-face{
  font-family:"Armin Grotesk";
  src:url("../fonts/ArminGrotesk-Thin.otf") format("opentype");
  font-weight:200 300;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Armin Grotesk";
  src:url("../fonts/ArminGrotesk-Normal.otf") format("opentype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Armin Grotesk";
  src:url("../fonts/ArminGrotesk-Regular.otf") format("opentype");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Armin Grotesk";
  src:url("../fonts/ArminGrotesk-SemiBold.otf") format("opentype");
  font-weight:600 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --bg: #0a0a0b;
  --text: #dcdcdf;
  --muted: #aeaeb2;
  --faint: #6b6b70;
  --line: rgba(220,220,224,0.14);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{
  width:100%;
  background: var(--bg);
  overflow-x:hidden;
}
body{
  font-family:"Armin Grotesk", "Helvetica Neue", Arial, sans-serif;
  color:var(--text);
  min-height:100vh;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background: radial-gradient(ellipse 90% 60% at 50% -10%, rgba(220,220,224,0.06), transparent 60%);
  pointer-events:none;
}

canvas#sky, canvas#grain{
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  display:block;
}
#sky{ z-index:1; }
#grain{
  z-index:2;
  pointer-events:none;
  opacity:0.5;
  mix-blend-mode: overlay;
}

a{ color:inherit; }

#topbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:26px 30px;
}
#topbar a{
  font-size:10px;
  font-weight:500;
  letter-spacing:2.2px;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--faint);
  transition:color .3s ease;
}
#topbar a:hover{ color:var(--text); }

#nav-menu{
  position:fixed;
  top:50%;
  left:64px;
  transform: translate(-50%,-50%) rotate(-90deg);
  z-index:5;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:26px;
}
#nav-menu a{
  font-size:10px;
  font-weight:500;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#fff;
  text-decoration:none;
  transition:color .3s ease;
}
#nav-menu a:hover{ color:var(--text); }
#nav-menu a.nav-logo{
  display:flex;
  align-items:center;
}
.nav-logo-img{
  display:block;
  height:13px;
  width:auto;
  filter: brightness(0) invert(1);
  opacity:0.85;
  transition: opacity .3s ease;
}
#nav-menu a.nav-logo:hover .nav-logo-img{ opacity:1; }
@media (min-width:641px){
  #nav-menu a.nav-logo{ display:none; }
}

#nav-toggle{
  display:none;
  position:fixed;
  top:24px;
  left:26px;
  z-index:7;
  width:32px;
  height:32px;
  background:transparent;
  border:none;
  padding:0;
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}
#nav-toggle span{
  display:block;
  width:22px;
  height:1.5px;
  background:var(--text);
  transition: transform .3s ease, opacity .3s ease;
}
#nav-toggle.open span:nth-child(1){ transform: translateY(7.5px) rotate(45deg); }
#nav-toggle.open span:nth-child(2){ opacity:0; }
#nav-toggle.open span:nth-child(3){ transform: translateY(-7.5px) rotate(-45deg); }

@media (max-width:640px){
  #nav-toggle{ display:flex; }
  #nav-menu{
    position:fixed;
    top:0; left:0; right:0; bottom:0;
    transform:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:30px;
    background:rgba(10,10,11,0.97);
    opacity:0;
    pointer-events:none;
    transition: opacity .4s ease;
  }
  #nav-menu.open{
    opacity:1;
    pointer-events:auto;
  }
  #nav-menu a{ font-size:15px; letter-spacing:2px; }
  #nav-menu a.nav-logo{
    margin-bottom:48px;
  }
  .nav-logo-img{
    width:min(480px, 64vw);
    height:auto;
  }
  #topbar #lang-switch{
    position:fixed;
    top:auto;
    right:auto;
    left:50%;
    bottom:56px;
    transform:translateX(-50%);
    opacity:0;
    pointer-events:none;
    gap:14px;
    font-size:13px;
    z-index:6;
    transition: opacity .3s ease;
  }
  #nav-menu.open ~ #lang-switch{
    opacity:1;
    pointer-events:auto;
  }
}

#lang-switch{
  position:fixed;
  top:50%;
  right:36px;
  transform: translate(50%,-50%) rotate(90deg);
  z-index:5;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  letter-spacing:1.5px;
  opacity:0;
  transition: opacity 1s ease;
}
#lang-switch.show{ opacity:0.9; }
#lang-switch button{
  background:none;
  border:none;
  padding:0;
  margin:0;
  font: inherit;
  letter-spacing:inherit;
  color:var(--faint);
  cursor:pointer;
  transition:color .3s ease;
}
#lang-switch button:hover{ color:var(--text); }
#lang-switch button.active{ color:#fff; }
#lang-switch span{ color:#45454a; }

main{
  position:relative;
  z-index:3;
  max-width:640px;
  margin:0 auto;
  padding:130px 28px 40px;
}

#eyebrow{
  display:block;
  font-size:10px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--faint);
  text-align:center;
  margin-bottom:18px;
}

h1{
  font-size:clamp(40px, 9vw, 72px);
  font-weight:500;
  letter-spacing:10px;
  text-transform:uppercase;
  text-align:center;
  color:var(--text);
  margin-bottom:70px;
}

.lede p{
  font-size:16px;
  line-height:1.85;
  font-weight:300;
  color:var(--muted);
  letter-spacing:.2px;
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
  margin-bottom:80px;
}

.schematic{
  width:100%;
  margin:0 auto 70px;
  border:1px solid var(--line);
}
.schematic img{
  display:block;
  width:100%;
  height:auto;
}

.specs{
  border-top:1px solid var(--line);
}
.spec-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px 24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.spec-label{
  flex:0 0 180px;
  font-size:10px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--faint);
}
.spec-value{
  flex:1 1 300px;
  font-size:14px;
  font-weight:300;
  line-height:1.7;
  color:var(--text);
  letter-spacing:.2px;
}
.spec-sub{
  margin-top:10px;
  padding-left:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 22px;
}
.spec-sub span{
  font-size:12px;
  color:var(--muted);
  font-weight:300;
}
.spec-sub b{
  color:var(--faint);
  font-weight:500;
  margin-right:5px;
}

.status-badge-wrap{
  text-align:center;
  margin-bottom:36px;
}
.status-badge{
  display:inline-block;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 16px;
  font-size:9px;
  font-weight:500;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--faint);
}

.custom-note{
  margin-top:60px;
  padding-top:40px;
  border-top:1px solid var(--line);
}
.custom-note-label{
  display:block;
  font-size:10px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--faint);
  margin-bottom:14px;
}
.custom-note p{
  font-size:14px;
  font-weight:300;
  line-height:1.75;
  color:var(--muted);
  letter-spacing:.2px;
  max-width:520px;
}

#nav-between{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:70px;
  padding-top:26px;
  border-top:1px solid var(--line);
}
#nav-between a{
  font-size:16px;
  font-weight:500;
  letter-spacing:1.5px;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--faint);
  transition:color .3s ease;
}
#nav-between a:hover{ color:var(--text); }
#nav-between .next{ text-align:right; }

#nav-between-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:50px;
}
#nav-between-top a{
  font-size:13px;
  font-weight:500;
  letter-spacing:1.5px;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--faint);
  transition:color .3s ease;
}
#nav-between-top a:hover{ color:var(--text); }
#nav-between-top .next{ text-align:right; }

footer{
  position:relative;
  z-index:3;
  text-align:center;
  padding:40px 28px 70px;
  border-top:1px solid var(--line);
}
footer a{
  font-size:11px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--text);
  text-decoration:none;
  border-bottom:1px solid rgba(220,220,224,0.35);
  padding-bottom:4px;
  transition: color .3s ease, border-color .3s ease;
}
footer a:hover{
  color:#fff;
  border-color:#fff;
}
footer .legal-link{
  display:block;
  margin-top:18px;
  font-size:9px;
  font-weight:500;
  letter-spacing:2px;
  color:var(--faint);
  border-bottom:none;
  padding-bottom:0;
}
footer .legal-link:hover{
  color:var(--muted);
  border-color:transparent;
}

@media (max-width: 600px){
  main{ padding-left:24px; padding-right:24px; }
  .spec-label{ flex-basis:100%; }
}

.reveal{
  opacity:0;
  transform: translateY(20px);
  filter: blur(6px);
  transition:
    opacity 1.2s cubic-bezier(.16,.8,.24,1),
    transform 1.2s cubic-bezier(.16,.8,.24,1),
    filter 1.2s cubic-bezier(.16,.8,.24,1);
}
.reveal.show{
  opacity:1;
  transform: translateY(0);
  filter: blur(0);
}
#topbar.reveal{
  transform:none;
  filter:none;
  transition: opacity 1.2s ease;
}

.slideshow{
  position:relative;
  z-index:3;
  width:100%;
  height:83.2vh;
  min-height:442px;
  max-height:910px;
  overflow:hidden;
  background:#000;
  opacity:0;
  transition: opacity 1.4s ease;
  touch-action: pan-y;
}
.slideshow.show{ opacity:1; }
.slideshow .slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.03);
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  transition: opacity 1.6s ease, transform 9s ease;
}
.slideshow .slide.active{
  opacity:1;
  transform:scale(1);
}
.slideshow::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(10,10,11,0.5) 0%, rgba(10,10,11,0) 20%, rgba(10,10,11,0) 50%, var(--bg) 100%);
  pointer-events:none;
}
.slideshow-dots{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:2;
}
.slideshow-dots .dot{
  width:6px;
  height:6px;
  border-radius:50%;
  border:none;
  background:rgba(220,220,224,0.35);
  padding:0;
  cursor:pointer;
  transition:background .3s ease, transform .3s ease;
}
.slideshow-dots .dot:hover{ background:rgba(220,220,224,0.6); }
.slideshow-dots .dot.active{
  background:var(--text);
  transform:scale(1.3);
}
body.has-slideshow main{
  padding-top:60px;
}

@media (max-width:600px){
  .slideshow{ height:70vh; min-height:400px; }
}
