@font-face{font-family:'Barlow Condensed';font-weight:700;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Barlow Condensed';font-weight:800;src:url(fonts/barlow-condensed-latin-800-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Barlow Condensed';font-weight:800;font-style:italic;src:url(fonts/barlow-condensed-latin-800-italic.woff2) format('woff2');font-display:swap}
@font-face{font-family:Barlow;font-weight:400;src:url(fonts/barlow-latin-400-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:Barlow;font-weight:500;src:url(fonts/barlow-latin-500-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:Barlow;font-weight:600;src:url(fonts/barlow-latin-600-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:400;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');font-display:swap}
@font-face{font-family:'JetBrains Mono';font-weight:500;src:url(fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2');font-display:swap}

:root{
  --nero:#0b0a09; --nero-2:#14110f; --nero-3:#1d1915; --linea:#2e2822;
  --osso:#efe7da; --fumo:#9a8f82; --oro:#e8a33d; --brace:#ff6a1a;
  --d:'Barlow Condensed',Impact,sans-serif; --b:Barlow,system-ui,sans-serif; --m:'JetBrains Mono',ui-monospace,monospace;
  --gut:18px; --safe:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:60px}
body{background:radial-gradient(ellipse 120% 70% at 50% 40%,#22140b 0,var(--nero) 70%) fixed,var(--nero);color:var(--osso);font:400 17px/1.55 var(--b);overflow-x:hidden}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit}
ul{list-style:none}
h1,h2{font-family:var(--d);font-weight:800;text-transform:uppercase;line-height:.86;letter-spacing:-.01em}
h2{font-size:clamp(50px,14vw,112px)}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:90;background:var(--osso);color:var(--nero);padding:10px 14px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.eyebrow{font:500 12px var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--oro);margin-bottom:14px}

#gl{position:fixed;inset:0;width:100%;height:100lvh;z-index:0;pointer-events:none;opacity:0;transition:opacity .9s}
#gl.on{opacity:1}

/* TESTATA */
.top{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;gap:22px;padding:12px var(--gut);background:linear-gradient(rgba(11,10,9,.9),rgba(11,10,9,0))}
.logo{font:800 22px/1 var(--d);letter-spacing:.02em;text-decoration:none}
.logo span{color:var(--oro);font-style:italic;margin:0 2px}
.top nav{display:none;gap:24px;margin-left:auto;font:500 12px var(--m);letter-spacing:.1em;text-transform:uppercase}
.top nav a{text-decoration:none;color:var(--fumo)}
.top nav a:hover{color:var(--osso)}
.cart-btn{margin-left:auto;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 6px 0 14px;border:1px solid var(--linea);border-radius:2px;font:500 12px var(--m);letter-spacing:.08em;text-transform:uppercase;background:rgba(11,10,9,.6)}
.cart-btn b{display:grid;place-items:center;min-width:28px;height:28px;background:var(--oro);color:var(--nero);font-weight:500}

/* BOTTONI */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:2px;background:var(--oro);color:var(--nero);font:800 18px var(--d);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:transform .15s,background-color .2s}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--osso);box-shadow:inset 0 0 0 1px rgba(239,231,218,.4)}
.btn.wide{width:100%}

/* HUD: avanzamento in basso, come un pannello tecnico */
.hud{position:fixed;left:var(--gut);right:var(--gut);bottom:calc(10px + var(--safe));z-index:20;display:flex;align-items:center;gap:12px;font:500 10px var(--m);letter-spacing:.1em;text-transform:uppercase;color:var(--fumo);transition:opacity .3s}
.hud.away{opacity:0}
.rule{flex:1;height:9px;position:relative;background:repeating-linear-gradient(90deg,rgba(239,231,218,.25) 0 1px,transparent 1px 8px) bottom/100% 5px no-repeat}
.rule i{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--oro);box-shadow:0 0 10px var(--oro)}

/* ETICHETTE SUGLI STRATI */
.tags{position:fixed;inset:0;z-index:2;pointer-events:none}
.tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:6px;font:500 10px/1.25 var(--m);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity .35s;will-change:transform}
.tag::before{content:'';width:26px;height:1px;background:var(--oro);flex:none}
.tag b{display:block;color:var(--osso);font-weight:500}
.tag small{color:var(--fumo);font-size:9px}
.tags.on .tag{opacity:1}
@media (max-width:699px){.tag small{display:none}.tag::before{width:16px}}

/* CAPITOLI SOPRA IL 3D */
.ch{position:relative;z-index:1;min-height:130svh;display:flex;flex-direction:column;justify-content:flex-start;padding:84px var(--gut) 60px}
.copy{max-width:520px}
.copy>p:not(.eyebrow){max-width:32ch;margin-top:14px;color:#d8cebf}
.hero{min-height:100svh;justify-content:space-between;padding-bottom:calc(46px + var(--safe))}
.hero h1{font-size:clamp(86px,27vw,210px)}
.hero h1 em{font-style:italic;color:var(--oro);font-size:.62em;vertical-align:.45em;margin-left:.04em}
.hero .sub{font-size:16px}
.ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.spec{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--linea)}
.spec div{padding:10px 0 0}
.spec dt{font:500 10px var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--fumo)}
.spec dd{font:800 28px var(--d);color:var(--osso)}
#strati .copy{margin-top:auto}
.temp{display:flex;align-items:flex-start;gap:4px;margin-top:18px!important;color:var(--osso)!important}
.temp b{font:800 clamp(84px,26vw,180px)/.85 var(--d);font-variant-numeric:tabular-nums;color:var(--osso);text-shadow:0 0 40px rgba(255,106,26,.55)}
.temp span{font:800 32px var(--d);color:var(--brace)}
#griglia .copy{margin-top:0}
.ch.last{min-height:120svh}
#ordina .copy{margin-top:0}

/* FOGLI OPACHI */
.sheet{position:relative;z-index:3;background:var(--nero-2);padding:72px var(--gut);border-top:1px solid var(--linea)}
.sheet.dark{background:var(--nero)}
.sheet h2{margin-bottom:26px}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--linea);border:1px solid var(--linea)}
.nums li{background:var(--nero-2);padding:18px 14px}
.nums b{font:800 clamp(56px,16vw,104px)/.9 var(--d);font-variant-numeric:tabular-nums;color:var(--oro)}
.nums span{font:800 22px var(--d);margin-left:4px;text-transform:uppercase}
.nums p{margin-top:8px;font-size:14px;color:var(--fumo)}

.cards{display:grid;gap:12px}
.card{display:grid;grid-template-columns:120px 1fr;gap:6px 14px;align-items:center;padding:12px;background:var(--nero-3);border:1px solid var(--linea);border-radius:2px}
.card .pic{grid-row:1/4;width:120px;height:120px;background:radial-gradient(circle at 50% 60%,rgba(232,163,61,.18),transparent 65%)}
.card .pic img{display:block;width:100%;height:100%}
.card h3{font:800 28px/1 var(--d);text-transform:uppercase}
.card p{font-size:14px;color:var(--fumo);line-height:1.4}
.card .row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.card .price{font:500 16px var(--m);color:var(--oro);white-space:nowrap}
.add{min-height:40px;padding:0 14px;white-space:nowrap;border:1px solid var(--oro);color:var(--oro);font:800 15px var(--d);letter-spacing:.06em;text-transform:uppercase;border-radius:2px}
.add.in{background:var(--oro);color:var(--nero)}

.where div{padding:12px 0;border-top:1px solid var(--linea)}
.where dt{font:500 11px var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--oro)}
.where dd{font-size:19px}
.foot{position:relative;z-index:3;background:var(--nero);padding:36px var(--gut) calc(96px + var(--safe));display:grid;gap:10px;color:var(--fumo);font-size:15px;border-top:1px solid var(--linea)}
.foot .logo{color:var(--osso)}

/* BARRA ORDINE E RIEPILOGO */
.bar{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe));z-index:40;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;background:rgba(20,17,15,.94);border:1px solid var(--linea);backdrop-filter:blur(10px);animation:rise .3s ease-out}
.bar p{flex:1;display:flex;flex-direction:column;font:500 12px var(--m);color:var(--fumo);text-transform:uppercase;letter-spacing:.06em}
.bar b{font:800 24px var(--d);color:var(--osso);letter-spacing:0}
@keyframes rise{from{transform:translateY(120%)}}
.order{margin:auto auto 0;width:100%;max-width:520px;border:0;background:none;color:var(--osso)}
.order::backdrop{background:rgba(0,0,0,.65)}
.sheet-box{position:relative;background:var(--nero-2);border-top:2px solid var(--oro);padding:24px var(--gut) calc(18px + var(--safe));max-height:88svh;overflow:auto}
.order[open] .sheet-box{animation:rise .35s cubic-bezier(.2,.9,.3,1)}
.sheet-box h2{font-size:48px;margin-bottom:16px}
.x{position:absolute;top:6px;right:6px;width:44px;height:44px;font-size:28px}
.lines li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--linea)}
.lines b{font:800 22px var(--d);text-transform:uppercase}
.lines .q{display:flex;align-items:center;gap:6px;font:500 14px var(--m)}
.lines .q button{width:32px;height:32px;border:1px solid var(--linea)}
.lines em{font:500 14px var(--m);font-style:normal;color:var(--oro);min-width:64px;text-align:right}
.empty{color:var(--fumo);padding:10px 0}
.way{border:0;padding:12px 0;border-top:1px solid var(--linea)}
.way legend{font:500 11px var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--oro);padding-top:12px;margin-bottom:6px}
.way label{display:flex;align-items:center;gap:10px;min-height:40px;cursor:pointer}
.way input{accent-color:var(--oro);width:18px;height:18px}
.total{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0 16px;border-top:1px solid var(--linea)}
.total span{font:500 12px var(--m);text-transform:uppercase;letter-spacing:.1em;color:var(--fumo)}
.total b{font:800 40px var(--d)}
.ok{font:800 36px/1 var(--d);text-transform:uppercase;color:var(--oro);margin-bottom:10px}
#orderDone{display:grid;gap:14px}
[hidden]{display:none!important}

@media (min-width:700px){
  :root{--gut:40px}
  .top nav{display:flex}
  .cart-btn{margin-left:0}
  .nums{grid-template-columns:repeat(4,1fr)}
  .cards{grid-template-columns:1fr 1fr}
  .where{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .tag{font-size:11px}
  .tag small{font-size:10px}
  .bar{left:auto;right:24px;width:380px}
  .order{margin:auto}
  .sheet-box{border:1px solid var(--linea);border-top:2px solid var(--oro)}
}
@media (min-width:1000px){
  .ch{padding-left:6vw;justify-content:center}
  .hero{justify-content:center;gap:40px}
  .hero h1{font-size:clamp(110px,13vw,220px)}
  .spec{max-width:520px}
  #strati .copy,#griglia .copy,#ordina .copy{margin:0}
  #ordina{align-items:flex-end;padding-right:6vw;text-align:right}
  #ordina .copy p{margin-left:auto}
  #ordina .ctas{justify-content:flex-end}
  .sheet{padding:100px 6vw}
  .cards{grid-template-columns:repeat(3,1fr)}
  .card{grid-template-columns:1fr;text-align:left}
  .card .pic{grid-row:auto;width:100%;height:auto;aspect-ratio:1}
}
@media (hover:hover){
  .btn:hover{background:#f5b858}
  .btn.ghost:hover{background:rgba(239,231,218,.06)}
  .add:hover{background:rgba(232,163,61,.12)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
.no-gl .tags{display:none}
