:root{
  --color-primary:#1E1E1E;
  --color-secondary:#FFFFFF;
  --color-accent:#8A2BE2;
  --color-bg:#F1F2F6;
  --font-main:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --radius:16px;
  --shadow:0 18px 46px rgba(30,30,30,.16);
  --spacing:clamp(16px,2.4vw,28px);
  --content:1120px;
  --line:rgba(30,30,30,.10);
  --line-strong:rgba(30,30,30,.18);
  --glow:0 0 0 1px rgba(138,43,226,.18), inset 0 0 0 1px rgba(255,255,255,.38);
}

*{box-sizing:border-box}
html{color-scheme:light; overflow-x: hidden}
body{
  margin:0;
  overflow-x: hidden;
  font-family:var(--font-main);
  color:var(--color-primary);
  background:radial-gradient(1200px 800px at 10% -10%, rgba(138,43,226,.12), transparent 60%),
             radial-gradient(900px 600px at 110% 20%, rgba(138,43,226,.10), transparent 55%),
             linear-gradient(180deg, var(--color-bg), #fff 70%);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

img{max-width:100%;height:auto}
a{color:inherit}

.skip-link{
  position:absolute;
  left:0;
  top:0;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.skip-link:focus{
  left:var(--spacing);
  top:var(--spacing);
  width:auto;
  height:auto;
  clip:auto;
  clip-path:none;
  padding:10px 12px;
  background:var(--color-secondary);
  border:1px solid var(--line-strong);
  border-radius:12px;
  z-index:10000;
}

.page{
  flex:1;
  display:flex;
  flex-direction:column;
}

.container{
  width:100%;
  max-width:var(--content);
  margin:0 auto;
  padding:0 var(--spacing);
}

.mono{font-family:var(--font-mono)}
.muted{color:rgba(30,30,30,.72)}

.grid-bg{
  position:relative;
  isolation:isolate;
}
.grid-bg::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size:80px 80px;
  opacity:.9;
  pointer-events:none;
  z-index:-2;
}
.grid-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 420px at 50% 15%, rgba(255,255,255,.70), rgba(255,255,255,.15) 55%, transparent 75%),
    radial-gradient(650px 300px at 50% 55%, rgba(138,43,226,.10), transparent 65%);
  pointer-events:none;
  z-index:-1;
}

header.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(241,242,246,.78);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  min-width:0;
}
.brand img{
  width:34px;
  height:34px;
  border-radius:10px;
  box-shadow:var(--glow);
  background:var(--color-secondary);
}
.brand strong{
  font-size:14px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-family:var(--font-mono);
  white-space:nowrap;
}
.brand span{
  display:block;
  font-size:12px;
  letter-spacing:.02em;
  opacity:.85;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:38ch;
}

nav.primary-nav{
  display:none;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
nav.primary-nav a{
  text-decoration:none;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid transparent;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.02em;
}
nav.primary-nav a:hover,
nav.primary-nav a:focus-visible{
  border-color:var(--line-strong);
  background:rgba(255,255,255,.72);
  box-shadow:var(--glow);
  outline:none;
}

.burger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.72);
  box-shadow:var(--glow);
  cursor:pointer;
}
.burger:focus-visible{outline:2px solid rgba(138,43,226,.55); outline-offset:2px}
.burger .lines{
  width:18px;height:12px;position:relative;
}
.burger .lines span{
  position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--color-primary);
  transition:transform .22s ease, top .22s ease, opacity .18s ease;
}
.burger .lines span:nth-child(1){top:0}
.burger .lines span:nth-child(2){top:5px;opacity:.85}
.burger .lines span:nth-child(3){top:10px}
.burger[aria-expanded="true"] .lines span:nth-child(1){top:5px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .lines span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .lines span:nth-child(3){top:5px;transform:rotate(-45deg)}

@media (min-width:1024px){
  nav.primary-nav{display:flex}
  .burger{display:none}
}

.menu-overlay{
  position:fixed;
  inset:0;
  background:rgba(30,30,30,.45);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  z-index:80;
}
.menu-overlay[data-open="true"]{
  opacity:1;
  pointer-events:auto;
}
.menu-panel{
  position:fixed;
  top:0;
  right:0;
  height:100%;
  width:min(420px, 92vw);
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);
  border-left:1px solid var(--line);
  transform:translateX(100%);
  transition:transform .26s ease;
  z-index:90;
  display:flex;
  flex-direction:column;
}
.menu-overlay[data-open="true"] .menu-panel{transform:translateX(0)}
.menu-head{
  padding:18px var(--spacing);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--line);
}
.menu-head .title{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin:0;
}
.icon-btn{
  width:42px;height:42px;border-radius:14px;
  border:1px solid var(--line-strong);
  background:rgba(241,242,246,.75);
  cursor:pointer;
}
.icon-btn:focus-visible{outline:2px solid rgba(138,43,226,.55); outline-offset:2px}
.menu-nav{
  padding:14px var(--spacing) 24px;
  display:grid;
  gap:10px;
  overflow:auto;
}
.menu-nav a{
  text-decoration:none;
  padding:14px 14px;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.65);
  box-shadow:var(--glow);
  font-family:var(--font-mono);
  letter-spacing:.02em;
}
.menu-nav a:hover,.menu-nav a:focus-visible{
  transform:translateY(-1px);
  transition:transform .18s ease;
  outline:none;
}

main{flex:1}

section.section{
  padding:clamp(44px,6vw,84px) 0;
  scroll-margin-top:86px;
  display:flex;
  align-items:center;
}
@media (min-width:1024px){
  main.snap{
    scroll-snap-type:y proximity;
  }
  section.section{scroll-snap-align:center}
}

.section-head{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:22px;
}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:11px;
  color:rgba(30,30,30,.72);
}
.kicker::before{
  content:"";
  width:28px;height:1px;background:rgba(138,43,226,.55);
}

h1,h2,h3{margin:0}
h1{
  font-size:clamp(30px,4.4vw,50px);
  letter-spacing:-.02em;
  line-height:1.08;
}
h2{
  font-size:clamp(22px,3vw,34px);
  letter-spacing:-.01em;
  line-height:1.15;
}
h3{
  font-size:clamp(16px,2vw,20px);
  line-height:1.2;
}

.hero-grid{
  display:grid;
  gap:18px;
}
@media (min-width:900px){
  .hero-grid{
    grid-template-columns:1.18fr .82fr;
    align-items:start;
    gap:22px;
  }
}

.layer-card{
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  background:rgba(255,255,255,.70);
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.layer-card::after{
  content:"";
  position:absolute;
  inset:-1px;
  background:
    linear-gradient(90deg, transparent, rgba(138,43,226,.12), transparent);
  transform:translateX(-120%);
  pointer-events:none;
}
.layer-card:hover::after{transform:translateX(120%);transition:transform .85s ease}

.cut{
  clip-path:polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
}

.card-pad{padding:clamp(16px,2.2vw,24px)}

.metrics{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.metric{
  flex:1 1 150px;
  min-width:150px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(241,242,246,.55);
  box-shadow:var(--glow);
}
.metric .label{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(30,30,30,.72);
}
.metric .value{
  margin-top:6px;
  font-family:var(--font-mono);
  font-size:22px;
  letter-spacing:.02em;
}

.badge-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.badge{
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.65);
  font-family:var(--font-mono);
  font-size:12px;
}
.badge i{
  display:inline-block;
  width:10px;height:10px;border-radius:3px;
  background:rgba(138,43,226,.75);
  box-shadow:0 0 0 3px rgba(138,43,226,.14);
}

.product-figure{
  display:flex;
  gap:14px;
  align-items:center;
}
.product-figure img{
  width:120px;
  height:auto;
  border-radius:18px;
  box-shadow:var(--shadow);
  border:1px solid var(--line-strong);
  background:#fff;
}
.price{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}
.price strong{
  font-family:var(--font-mono);
  font-size:28px;
}
.price s{
  color:rgba(30,30,30,.55);
  font-family:var(--font-mono);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:16px;
  padding:12px 14px;
  border:1px solid var(--line-strong);
  cursor:pointer;
  text-decoration:none;
  font-family:var(--font-mono);
  letter-spacing:.02em;
}
.btn-primary{
  background:var(--color-primary);
  color:var(--color-secondary);
  border-color:rgba(30,30,30,.6);
}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{
  background:rgba(255,255,255,.70);
}

form.order{
  display:grid;
  gap:12px;
}
.field{
  display:grid;
  gap:6px;
}
.field label{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
}
.field input,.field textarea{
  width:100%;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.78);
  font:inherit;
}
.field textarea{min-height:90px;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{
  outline:2px solid rgba(138,43,226,.55);
  outline-offset:2px;
}
.hint{
  font-size:12px;
  color:rgba(30,30,30,.72);
}
.error{
  font-size:12px;
  color:#9a1e2f;
  font-family:var(--font-mono);
}
.check{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.check input{margin-top:3px}

.cols{
  display:grid;
  gap:16px;
}
@media (min-width:900px){
  .cols{grid-template-columns:1fr 1fr}
}

.bullets{
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}
.bullets li{
  padding:14px 14px;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.62);
  box-shadow:var(--glow);
}
.bullets li small{display:block;margin-top:6px;color:rgba(30,30,30,.72)}

.accordion{
  display:grid;
  gap:10px;
}
.acc-item{
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.65);
  overflow:hidden;
  box-shadow:var(--glow);
}
.acc-btn{
  width:100%;
  background:transparent;
  border:0;
  text-align:left;
  padding:14px 14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  cursor:pointer;
  font-family:var(--font-mono);
}
.acc-btn:focus-visible{outline:2px solid rgba(138,43,226,.55); outline-offset:2px}
.acc-panel{
  padding:0 14px 14px;
  display:none;
}
.acc-item[data-open="true"] .acc-panel{display:block}
.chev{
  width:10px;height:10px;border-right:2px solid rgba(30,30,30,.72);border-bottom:2px solid rgba(30,30,30,.72);
  transform:rotate(45deg);
  transition:transform .2s ease;
}
.acc-item[data-open="true"] .chev{transform:rotate(225deg)}

.map{
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,255,255,.60);
  box-shadow:var(--shadow);
}
.map iframe{display:block;width:100%;height:320px;border:0}

footer.site-footer{
  margin-top:auto;
  border-top:1px solid var(--line);
  background:rgba(241,242,246,.70);
}
.footer-row{
  padding:18px 0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.footer-links a{
  text-decoration:none;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid transparent;
  font-family:var(--font-mono);
  font-size:12px;
}
.footer-links a:hover,.footer-links a:focus-visible{
  border-color:var(--line-strong);
  background:rgba(255,255,255,.70);
  outline:none;
}

.cookie-banner{
  position:fixed;
  inset:auto 0 0 0;
  z-index:120;
  padding:14px 0;
  transform:translateY(120%);
  transition:transform .22s ease;
}
.cookie-banner[data-open="true"]{transform:translateY(0)}
.cookie-card{
  border-radius:var(--radius);
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow);
  padding:14px;
  display:grid;
  gap:12px;
}
.cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.cookie-settings{
  display:none;
  border-top:1px solid var(--line);
  padding-top:12px;
  gap:12px;
}
.cookie-settings[data-open="true"]{display:grid}
.toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 12px;
  border:1px solid var(--line-strong);
  border-radius:16px;
  background:rgba(241,242,246,.62);
}
.toggle label{font-family:var(--font-mono);font-size:12px}

.reveal{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .55s ease, transform .55s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.scanline{
  position:fixed;
  left:0;right:0;
  height:2px;
  top:-4px;
  background:linear-gradient(90deg, transparent, rgba(138,43,226,.70), transparent);
  opacity:.55;
  pointer-events:none;
  z-index:40;
  transform:translateY(0);
}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{scroll-behavior:auto !important; animation:none !important; transition:none !important}
  .scanline{display:none}
}
