:root{
  --bg:#0d0f12;
  --panel:rgba(255,255,255,0.08);
  --panel-strong:rgba(255,255,255,0.12);
  --text:#f2f4f7;
  --muted:#b6bec8;
  --line:rgba(255,255,255,0.10);
  --accent:#ffffff;
  --max:1200px;
  --radius:1px;
  --shadow:
  0 1px 0 rgba(255,255,255,0.05) inset,
  0 20px 50px rgba(0,0,0,0.35);
  --blur:16px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:linear-gradient(180deg,#0b0d10 0%, #11151a 100%);
  color:var(--text);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

img{
  display:block;
  width:100%;
  height:auto;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  font:inherit;
}

/* Header */

.site-header{
  position:sticky;
  top:var(--announcement-height);
  z-index:1000;
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  width:min(100% - 24px, var(--max));
  margin:0 auto;
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:1px;
  background:rgba(10,12,15,0.78);
  backdrop-filter:blur(16px);
  box-shadow:
  0 1px 0 rgba(255,255,255,0.05) inset,
  0 10px 24px rgba(0,0,0,0.2);
}

.menu-toggle{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  width:44px;
  height:44px;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
}

.menu-toggle span{
  display:block;
  width:20px;
  height:2px;
  margin:0 auto;
  background:var(--text);
  border-radius:1px;
}

.site-logo{
  justify-self:center;
  width:40px;
}

.site-logo img{
  filter:brightness(0) invert(1) drop-shadow(0 0 8px rgba(255,255,255,0.06));
}

/* Navigation */

.site-nav{
  position:absolute;
  top:58px;
  left:0;
  right:0;
  display:flex;
  flex-direction:column;
  padding:10px;
  border:1px solid var(--line);
  border-radius:1px;
  background:rgba(10,12,15,0.96);
  backdrop-filter:blur(16px);
  gap:4px;

  box-shadow:
  0 1px 0 rgba(255,255,255,0.05) inset,
  0 18px 40px rgba(0,0,0,0.3);

  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  pointer-events:none;

  transition:
  opacity .2s ease,
  transform .2s ease,
  visibility .2s ease;
}

.site-nav.nav-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}

.nav-label{
  margin:0 0 4px;
  padding:6px 12px 4px;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}

.site-nav a{
  padding:10px 12px;
  border-radius:1px;
  font-size:.95rem;
  transition:background .2s ease, transform .2s ease;
}

.site-nav a:hover,
.site-nav a[aria-current="page"]{
  background:rgba(255,255,255,.06);
  transform:translateX(2px);
}

/* Layout */

main{
  width:min(100% - 24px, var(--max));
  margin:20px auto 0;
}

.glass-panel{
  padding:24px;
  border:1px solid var(--line);
  border-radius:1px;
  background:linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04));
  backdrop-filter:blur(var(--blur));
  box-shadow:var(--shadow);
}

.eyebrow{
  margin:0 0 10px;
  font-size:.8rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}

.hero-copy,
.brand-copy p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

.section-stack{
  display:grid;
  gap:14px;
  margin-bottom:30px;
}

/* Buttons */

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 18px;
  border-radius:1px;
  border:1px solid var(--line);
  font-weight:600;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.button:hover{
  transform:translateY(-1px);
}

.button-primary{
  background:rgba(255,255,255,.12);
}

.button-secondary{
  background:rgba(10,12,15,.6);
  backdrop-filter:blur(10px);
}

/* HERO */

.hero-shell{
  margin-top:18px;
}

.hero-panel{
  display:grid;
  grid-template-columns:1fr;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:1px;
  background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  backdrop-filter:blur(var(--blur));
  box-shadow:var(--shadow);
}

.hero-content{
  padding:24px;
  z-index:2;
}

.hero-content h1,
.brand-copy h2,
.page-hero-compact h1,
.products-cta h2,
.product-hero-copy h1,
.product-story-copy h2,
.product-gallery-header h2,
.product-related-header h2,
.product-cta h2{
  margin:0 0 12px;
  line-height:.95;
  font-size:clamp(2rem,6vw,4.5rem);
}

.hero-actions{
  margin-top:20px;
}

/* synced hero text smoothing */
#hero-eyebrow,
#hero-heading,
#hero-copy,
#hero-cta,
#hero-buy-button{
  transition:
  opacity .25s ease,
  transform .25s ease,
  background .2s ease;
}

.hero-media{
  position:relative;
  min-height:360px;
  border-top:1px solid var(--line);
}

.hero-carousel{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#161b21;
}

/* logo watermark */

.hero-carousel::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("images/logo.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:min(52%,300px);
  opacity:.11;
  filter:brightness(0) invert(1);
  z-index:2;
}

/* gradient */

.hero-carousel::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
  to top,
  rgba(8,10,13,.34),
  rgba(8,10,13,.14) 38%,
  rgba(8,10,13,.04)
  );
  z-index:3;
}

/* Slides */

.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  overflow:hidden;
  transition:opacity .6s ease;
}

.hero-slide.active{
  opacity:1;
}

.hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  animation:heroZoom 22s ease-in-out infinite;
}

@keyframes heroZoom{
  0%{transform:scale(1.05)}
  50%{transform:scale(1.12)}
  100%{transform:scale(1.05)}
}

/* Carousel UI */

.hero-carousel-ui{
  position:absolute;
  inset:auto 16px 16px 16px;
  z-index:4;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.hero-dots{
  display:flex;
  gap:8px;
  padding:8px 10px;
  border:1px solid var(--line);
  background:rgba(8,10,13,.56);
  backdrop-filter:blur(12px);

  box-shadow:
  0 1px 0 rgba(255,255,255,.05) inset;
}

.hero-dot{
  width:10px;
  height:10px;
  border:none;
  background:rgba(255,255,255,.35);
  cursor:pointer;
  transition:.2s;
}

.hero-dot:hover{
  transform:scale(1.15);
}

.hero-dot.active{
  background:#fff;
}

.hero-buy-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-width:140px;
}

/* PRODUCTS */

.product-grid{
  display:grid;
  gap:16px;
  margin-top:30px;
}

.product-card{
  transition:transform .25s ease, filter .25s ease;
}

.product-card:hover{
  transform:translateY(-4px);
  filter:brightness(1.05);
}

.product-image-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:#14181d;

  box-shadow:
  0 1px 0 rgba(255,255,255,.05) inset;
}

.product-image-wrap img{
  aspect-ratio:4/5;
  object-fit:cover;
  transition:transform .4s ease;
}

.product-card:hover img{
  transform:scale(1.03);
}

.product-label{
  position:absolute;
  top:14px;
  left:14px;
  z-index:3;
}

.product-label h2{
  margin:0;
  padding:10px 14px;
  font-size:.95rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  border:1px solid var(--line);

  background:linear-gradient(135deg,
  rgba(10,12,15,.78),
  rgba(20,24,29,.52));

  backdrop-filter:blur(10px);

  box-shadow:
  0 1px 0 rgba(255,255,255,.05) inset,
  0 8px 20px rgba(0,0,0,.2);
}

.product-overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:18px 16px 16px;

  background:linear-gradient(
  to top,
  rgba(9,11,14,.94),
  rgba(9,11,14,.2)
  );
}

.product-overlay p{
  margin:0;
  color:#d7dde5;
}

/* BRAND */

.brand-story{
  display:grid;
  gap:18px;
  margin-top:26px;
  margin-bottom:40px;
}

.brand-image-block{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:#14181d;

  box-shadow:
  0 1px 0 rgba(255,255,255,.05) inset;
}

.brand-image-block img{
  min-height:320px;
  object-fit:cover;
  transition:transform .45s ease;
}

.brand-image-block:hover img{
  transform:scale(1.02);
}

.brand-image-block .button{
  position:absolute;
  left:16px;
  bottom:16px;
}

/* Products page */

.page-hero{
  margin-top:18px;
}

.page-hero-compact{
  display:grid;
  gap:10px;
  align-items:end;
  min-height:unset;
}

.page-hero-compact p:last-child,
.products-cta p:last-child,
.product-hero-copy p:last-child,
.product-story-copy p:last-child,
.product-gallery-caption,
.product-spec-card p:last-child,
.product-related-card p:last-child,
.product-cta p:last-child{
  margin:0;
  color:var(--muted);
  line-height:1.6;
  max-width:58ch;
}

.featured-products{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:14px;
}

.feature-card{
  position:relative;
  min-height:340px;
  overflow:hidden;
  border:1px solid var(--line);
  background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  box-shadow:var(--shadow);
  isolation:isolate;
}

.feature-card-media,
.feature-card-media img{
  height:100%;
}

.feature-card-media img{
  object-fit:cover;
  transition:transform .35s ease;
}

.feature-card-gradient{
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.42) 24%,
    rgba(0,0,0,.12) 52%,
    rgba(0,0,0,.04) 100%
  );
  z-index:1;
}

.feature-card-body{
  position:absolute;
  top:0;
  right:0;
  left:0;
  z-index:3;
  padding:22px;
  display:grid;
  gap:6px;
  pointer-events:none;
  align-content:start;
}

.feature-kicker{
  margin:0;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.78);
}

.feature-card-body h2{
  margin:0;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:.95;
}

.feature-card-body p:last-child{
  margin:0;
  max-width:22ch;
  color:rgba(255,255,255,.86);
  line-height:1.35;
  font-size:1rem;
}

.feature-card-actions{
  position:absolute;
  right:22px;
  bottom:22px;
  z-index:4;
}

.product-buy-button{
  min-width:128px;
  background:rgba(0,0,0,0.65);
  border:1px solid rgba(255,255,255,0.18);
  color:#fff;
  backdrop-filter:blur(8px);
}

.product-buy-button:hover{
  background:rgba(0,0,0,0.82);
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}

.feature-card-link{
  position:absolute;
  inset:0;
  z-index:2;
}

.feature-card:hover .feature-card-media img,
.feature-card:focus-within .feature-card-media img{
  transform:scale(1.04);
}

.products-cta{
  display:grid;
  gap:16px;
  margin:14px 0 30px;
}

/* Product detail pages */

.breadcrumbs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:18px 0 14px;
  color:var(--muted);
  font-size:.92rem;
}

.breadcrumbs span{
  opacity:.7;
}

.product-hero{
  overflow:hidden;
}

.product-hero-grid{
  display:grid;
  gap:18px;
}

.product-hero-media{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  background:#14181d;
  min-height:320px;
}

.product-hero-media img{
  height:100%;
  object-fit:cover;
}

.product-hero-copy{
  display:grid;
  align-content:center;
  gap:8px;
}

.product-lead{
  margin:0;
  color:var(--text);
  line-height:1.5;
  max-width:32ch;
  font-size:clamp(1.05rem,2vw,1.15rem);
}

.product-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:10px;
}

.product-highlight-row{
  display:grid;
  gap:12px;
}

.product-highlight-card,
.product-spec-card,
.product-related-card,
.product-gallery-card{
  border:1px solid var(--line);
  background:linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  box-shadow:var(--shadow);
}

.product-highlight-card,
.product-spec-card,
.product-related-card{
  padding:18px;
}

.product-highlight-card h3,
.product-story-copy h2,
.product-spec-card h3,
.product-related-card h3,
.product-gallery-header h2,
.product-cta h2{
  margin:0 0 8px;
}

.product-highlight-card p,
.product-spec-card p,
.product-related-card p,
.product-story-copy p,
.product-gallery-caption{
  margin:0;
}

.product-story{
  display:grid;
  gap:14px;
}

.product-story-media{
  border:1px solid var(--line);
  background:#14181d;
  overflow:hidden;
  min-height:280px;
}

.product-story-media img{
  height:100%;
  object-fit:cover;
}

.product-story-copy{
  padding:24px;
}

.product-gallery{
  display:grid;
  gap:14px;
}

.product-gallery-header{
  display:grid;
  gap:10px;
}

.product-gallery-grid{
  display:grid;
  gap:14px;
}

.product-gallery-card{
  overflow:hidden;
}

.product-gallery-card img{
  aspect-ratio:4 / 3;
  object-fit:cover;
}

.product-gallery-caption{
  padding:16px;
  border-top:1px solid var(--line);
}

.product-spec-grid,
.product-related-grid{
  display:grid;
  gap:14px;
}

.product-related-card{
  position:relative;
  overflow:hidden;
  min-height:250px;
  display:flex;
  align-items:flex-end;
}

.product-related-card img{
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
}

.product-related-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.78));
}

.product-related-content{
  position:relative;
  z-index:1;
  display:grid;
  gap:8px;
}

.product-cta{
  display:grid;
  gap:16px;
  margin:14px 0 30px;
}

/* Footer */

.site-footer{
  width:min(100% - 24px, var(--max));
  margin:0 auto 24px;
  padding-top:12px;
  color:var(--muted);
  font-size:.9rem;
}

/* Responsive */

@media (min-width:720px){
  .products-cta,
  .product-cta{
    grid-template-columns:1fr auto;
    align-items:end;
  }

  .product-highlight-row,
  .product-spec-grid,
  .product-gallery-grid,
  .product-related-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (min-width:820px){

  .product-grid{
    grid-template-columns:repeat(3,1fr);
  }

  .brand-story{
    grid-template-columns:.8fr 2.2fr;
  }

  .product-overlay{
    opacity:0;
    transform:translateY(10px);
    transition:.25s;
  }

  .product-card:hover .product-overlay{
    opacity:1;
    transform:translateY(0);
  }

  .featured-products{
    grid-template-columns:repeat(3, 1fr);
    align-items:stretch;
  }

  .feature-card{
    min-height:560px;
  }

  .feature-card-actions{
    opacity:0;
    transform:translateY(10px);
    transition:opacity .22s ease, transform .22s ease;
  }

  .feature-card:hover .feature-card-actions,
  .feature-card:focus-within .feature-card-actions{
    opacity:1;
    transform:translateY(0);
  }

  .feature-card-body{
    padding:24px;
  }

  .product-story{
    grid-template-columns:1.05fr .95fr;
  }
}

@media (min-width:900px){

  .site-logo{
    width:44px;
  }

  .hero-panel{
    grid-template-columns:1.05fr 1.2fr;
    min-height:560px;
  }

  .hero-content{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:42px;
  }

  .hero-media{
    min-height:560px;
    border-left:1px solid var(--line);
  }

  .hero-carousel::before{
    background-size:min(48%,340px);
    opacity:.1;
  }

  .product-hero-grid{
    grid-template-columns:1.2fr .95fr;
    align-items:stretch;
  }

  .product-hero-media{
    min-height:560px;
  }

  .product-highlight-row{
    grid-template-columns:repeat(4,1fr);
  }

  .product-gallery-grid,
  .product-related-grid,
  .product-spec-grid{
    grid-template-columns:repeat(3,1fr);
  }
}

.about-section{
margin-top:18px;
}

.about-section h2{
margin-top:0;
}

.about-list{
padding-left:18px;
color:var(--muted);
}

.about-list li{
margin-bottom:10px;
}

.contact-grid{
display:grid;
gap:18px;
margin:20px 0 40px;
}

.contact-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:220px;
  
  transition:transform .25s ease, filter .25s ease;
}

.contact-card:hover{
  transform:translateY(-4px);
  filter:brightness(1.05);
}

.contact-card h2{
  margin-top:0;
}

.contact-card p{
  color:var(--muted);
  margin-bottom:18px;
}

.contact-card .button{
  align-self:flex-end;
  margin-top:auto;
}

.contact-card p{
color:var(--muted);
margin-bottom:18px;
}

@media(min-width:800px){

.contact-grid{
grid-template-columns:repeat(3,1fr);
}

}

:root{
  --announcement-height:44px;
}

.announcement-bar{
  width:100%;
  min-height:var(--announcement-height);
  padding:0 16px;

  display:flex;
  align-items:center;
  justify-content:center;

  background:rgba(10,12,15,0.82);
  backdrop-filter:blur(10px);

  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset;

  font-size:.9rem;
  color:var(--text);
  letter-spacing:.03em;

  position:sticky;
  top:0;
  z-index:1100;
}

.announcement-bar a{
  color:inherit;
  text-decoration:none;
}

.announcement-bar a:hover{
  opacity:.85;
}

@media (max-width:600px){
  .announcement-bar{
    font-size:.8rem;
    padding:8px 12px;
  }
}