/* =========================================================
   RIFT — stile condiviso da tutte le pagine
   Identità: sala buia, rosso RIFT, il "taglio" rosso orizzontale.
   ========================================================= */
:root{
  color-scheme: dark;
  --bg:#0B0B0D;          /* sala buia */
  --bg-2:#131317;        /* superfici */
  --bg-3:#1A1A20;        /* superfici in rilievo */
  --line:#24242B;        /* filetti */
  --line-2:#34343D;      /* filetti in hover */
  --fg:#EDEAE4;          /* testo, bianco caldo del logo */
  --muted:#9A97A0;       /* testo secondario (contrasto 6.9:1) */
  --accent:#E0282E;      /* rosso RIFT */
  --accent-text:#FF4A50; /* rosso per testo piccolo */
  --ok:#5BD08A;
  --font-display:"Archivo","Arial Narrow",sans-serif;
  --font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --wrap:1240px;
  --gutter:clamp(16px,4vw,40px);
  --head:64px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 16px);-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100svh;display:flex;flex-direction:column}
body > main{flex:1}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
::selection{background:var(--accent);color:#fff}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
.ico{width:1em;height:1em;flex:none}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3,h4{font-family:var(--font-display);font-stretch:112%;line-height:1.02;margin:0;text-wrap:balance}
h2{font-size:clamp(2.4rem,7vw,5.6rem);font-weight:850;letter-spacing:-.015em;line-height:.95;text-transform:uppercase}
h3{font-size:1.2rem;font-weight:750;letter-spacing:.01em}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--font-mono)}
.num{font-variant-numeric:tabular-nums}
html{scrollbar-color:var(--line-2) var(--bg)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--bg)}
input,textarea,select{caret-color:var(--accent)}

/* ---------- salta al contenuto ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--fg);color:var(--bg);padding:.7rem 1rem;font:600 .8rem/1 var(--font-mono);text-decoration:none}
.skip:focus{top:12px}
.tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tags span{font:500 .68rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);padding:.42rem .55rem}
.pc-cat{font:500 .7rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}

/* ---------- avviso bozza ---------- */
.draft{background:var(--accent);color:#fff;font:500 .75rem/1.4 var(--font-mono);letter-spacing:.04em;text-align:center;padding:.5rem var(--gutter)}
.ph-tag{display:inline-block;font:600 .62rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);border:1px dashed currentColor;padding:.28rem .4rem;vertical-align:middle;white-space:nowrap}

/* ---------- header ---------- */
header.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:background .4s,border-color .4s}
.is-home header.top:not(.scrolled){background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
header.top .wrap{display:flex;align-items:center;gap:clamp(.8rem,2.5vw,2.4rem);min-height:var(--head)}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;font:850 1.15rem/1 var(--font-display);font-stretch:125%;letter-spacing:.06em;margin-right:auto}
.brand img{width:34px;height:34px}
nav.main{display:flex;gap:clamp(1rem,2.6vw,2.2rem);font:500 .78rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
nav.main a{text-decoration:none;color:var(--muted);display:inline-flex;align-items:center;min-height:44px;position:relative;transition:color .2s}
nav.main a::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
nav.main a:hover{color:var(--fg)}
nav.main a[aria-current="page"]{color:var(--fg)}
nav.main a[aria-current="page"]::after{transform:scaleX(1)}
.tools{display:flex;align-items:center;gap:.5rem}
.lang{display:flex;border:1px solid var(--line)}
.lang button{all:unset;cursor:pointer;font:500 .72rem/1 var(--font-mono);letter-spacing:.1em;padding:.55rem .6rem;color:var(--muted);min-height:20px;display:grid;place-items:center;transition:color .2s,background .2s}
.lang button:hover{color:var(--fg)}
.lang button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.cart-btn{position:relative;display:inline-flex;align-items:center;gap:.45rem;height:38px;padding:0 .8rem;border:1px solid var(--line);background:none;cursor:pointer;font:500 .72rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;transition:border-color .2s}
.cart-btn:hover{border-color:var(--muted)}
.cart-btn .ico{width:16px;height:16px}
.cart-count{min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font:600 .68rem/1 var(--font-mono)}
.cart-count:empty,.cart-count[data-zero]{display:none}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);background:none;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:12px;right:12px;height:1.5px;background:var(--fg);transition:transform .35s var(--ease),top .35s var(--ease)}
.menu-btn span:first-child{top:17px}.menu-btn span:last-child{top:25px}
.menu-open .menu-btn span:first-child{top:21px;transform:rotate(45deg)}
.menu-open .menu-btn span:last-child{top:21px;transform:rotate(-45deg)}
@media (max-width:860px){
  nav.main{display:none}
  .menu-btn{display:block}
  .cart-btn .cart-label{display:none}
}
.sheet{position:fixed;inset:var(--head) 0 0 0;z-index:39;background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,6vh,56px) var(--gutter) calc(24px + env(safe-area-inset-bottom));visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .55s var(--ease),visibility 0s .55s}
.menu-open .sheet{visibility:visible;clip-path:inset(0);transition:clip-path .55s var(--ease)}
.sheet nav{display:grid;gap:.2rem}
.sheet nav a{font:850 clamp(2.6rem,12vw,4.4rem)/1.05 var(--font-display);font-stretch:118%;text-transform:uppercase;text-decoration:none;display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding:.4rem 0}
.sheet nav a small{font:500 .72rem/1 var(--font-mono);letter-spacing:.12em;color:var(--muted)}
.sheet nav a[aria-current="page"]{color:var(--accent)}
.sheet .sheet-foot{display:grid;gap:.4rem;font:400 .8rem/1.5 var(--font-mono);color:var(--muted)}
.menu-open{overflow:hidden}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.3rem;font:600 .8rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1px solid var(--fg);min-height:46px;cursor:pointer;background:none;color:var(--fg);transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{background:var(--fg);color:var(--bg)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;padding-inline:1.5rem}
.btn.primary:hover{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.btn.ghost{border-color:var(--line)}
.btn.ghost:hover{border-color:var(--fg)}
.btn.ink{background:var(--bg);border-color:var(--bg);color:#fff}
.btn.ink:hover{background:#fff;border-color:#fff;color:var(--bg)}
.btn.big{min-height:56px;font-size:.86rem;padding-inline:1.8rem}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.btn .ico{transition:transform .3s var(--ease)}
.btn:hover .ico-out{transform:translate(2px,-2px)}
.cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font:600 .78rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--fg);min-height:44px}
.link-arrow .ico{color:var(--accent);transition:transform .35s var(--ease)}
.link-arrow:hover .ico{transform:translateX(4px)}

/* ---------- sezioni ---------- */
section.block{padding-block:clamp(64px,9vw,128px);border-top:1px solid var(--line)}
.block-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.4rem 2rem;margin-bottom:clamp(32px,4.5vw,56px)}
.block-head > div:first-child{display:grid;gap:1.1rem;min-width:0;max-width:62rem}
.lede{color:var(--muted);max-width:56ch;font-size:clamp(1rem,1.3vw,1.12rem)}

/* testata delle pagine interne: un fotogramma con la linea del taglio */
.page-head{position:relative;padding-block:clamp(56px,10vw,132px) 0;overflow:hidden;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(3.6rem,13vw,10.5rem);font-weight:900;font-stretch:125%;letter-spacing:-.025em;line-height:.86;text-transform:uppercase}
.page-head .lede{margin-top:clamp(20px,2.6vw,32px);font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--fg);max-width:48ch}
.page-head .hud{display:flex;justify-content:space-between;gap:1rem;font:500 .72rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:clamp(40px,6vw,72px);padding-bottom:clamp(36px,4.6vw,60px)}
.page-head .hud a{text-decoration:none;display:inline-flex;min-height:24px;align-items:center}
.page-head .hud a:hover{color:var(--fg)}
.page-head .hud b{color:var(--fg);font-weight:500}
.page-head .cut{position:absolute;left:0;right:0;bottom:calc(clamp(36px,4.6vw,60px) + 1.6rem);height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--ease) .1s}
.page-head.open .cut{transform:scaleX(.18)}
@media (prefers-reduced-motion:reduce){.page-head .cut{transform:scaleX(.18)}}
.page-head canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.55}
.page-head{isolation:isolate}

/* ---------- tab ---------- */
.tabs{display:flex;gap:0;border:1px solid var(--line);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{all:unset;flex:none;cursor:pointer;font:600 .8rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;padding:1rem 1.4rem;color:var(--muted);display:flex;align-items:center;gap:.6rem;transition:color .2s,background .2s;min-height:20px}
.tabs button + button{border-left:1px solid var(--line)}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected="true"],.tabs button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.tabs sup{font-size:.62rem;opacity:.7}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chips button{font:500 .74rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--line);padding:.6rem .85rem;min-height:40px;cursor:pointer;transition:all .2s}
@media (pointer:coarse){.chips button{min-height:44px}}
.chips button:hover{color:var(--fg);border-color:var(--muted)}
.chips button[aria-pressed="true"]{color:var(--bg);background:var(--fg);border-color:var(--fg)}

/* ---------- prima schermata della home ---------- */
.glitch{position:relative;display:block;width:min(640px,100%);margin-inline:-2%}
.glitch img{display:block;width:100%;height:auto}
.glitch .g-slice{position:absolute;inset:0;opacity:0;pointer-events:none;will-change:transform,clip-path}
.glitch .g-slice.red{filter:drop-shadow(-3px 0 rgba(224,40,46,.9)) brightness(1.05)}
.glitch .g-line{position:absolute;left:0;height:1px;background:var(--accent);opacity:0;pointer-events:none}
.glitch.on .g-base{filter:drop-shadow(var(--gx,2px) 0 rgba(224,40,46,.55)) drop-shadow(calc(var(--gx,2px) * -1) 0 rgba(237,234,228,.12))}
.hero-tag{font:600 .9rem/1 var(--font-mono);letter-spacing:.34em;text-transform:uppercase;display:flex;align-items:center;gap:.8rem}
.hero-tag::before,.hero-tag::after{content:"";height:1px;width:28px;background:var(--accent)}
.stage{--rift:56%;position:relative;min-height:max(660px,min(100svh,1000px));margin-top:calc(var(--head) * -1 - 1px);padding-top:var(--head);display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);isolation:isolate;overflow:hidden;background:#000}
.stage-media{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 90% at 70% 55%,#17171c 0%,var(--bg) 60%)}
.stage-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage-shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(11,11,13,.85) 0%,rgba(11,11,13,.55) 38%,rgba(11,11,13,0) 68%),
  linear-gradient(0deg,var(--bg) 0%,rgba(11,11,13,0) 38%),
  linear-gradient(180deg,rgba(11,11,13,.7) 0%,rgba(11,11,13,0) 22%)}
.stage-rift{position:absolute;left:0;right:0;top:var(--rift);height:2px;margin-top:-1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--ease) .15s}
.stage.open .stage-rift{transform:scaleX(1)}
.stage-hud{display:flex;justify-content:space-between;gap:1rem;padding-top:clamp(16px,2.5vw,28px);font:500 .75rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;width:100%}
.stage-hud > span:first-child{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.stage-tc{display:inline-flex;align-items:center;gap:.5rem;font-variant-numeric:tabular-nums;flex:none}
.stage-tc i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.stage-body{align-self:end;width:100%;padding-block:clamp(40px,7vh,96px) clamp(24px,4vh,48px)}
.stage .glitch{width:min(1040px,94%);margin-inline:-1.5%}
.stage .hero-tag{margin-top:clamp(.6rem,1.6vw,1.4rem)}
.stage .hero-copy{margin-top:clamp(1.2rem,2.4vw,2rem);max-width:46ch;font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.5}
.hero-copy em{font-style:normal;color:var(--accent-text)}
.stage .cta{margin-top:clamp(1.4rem,2.6vw,2.2rem)}
.stage .btn:not(.primary){background:rgba(11,11,13,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.stage .btn:not(.primary):hover{background:var(--fg)}
.stage-foot{width:100%;padding-bottom:clamp(20px,4vh,40px)}
.spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec span{display:grid;gap:.35rem;padding:1rem 1rem 1rem 0;font:400 .75rem/1.3 var(--font-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;min-width:0}
.spec span + span{padding-left:1rem;border-left:1px solid var(--line)}
.spec b{color:var(--fg);font:600 clamp(.85rem,1.6vw,1rem)/1.2 var(--font-mono);letter-spacing:.02em;text-transform:none}
@media (max-width:640px){
  .stage{min-height:max(620px,94svh)}
  .stage-shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(11,11,13,.8) 50%,rgba(11,11,13,.1) 78%,rgba(11,11,13,.4) 100%)}
  .stage .glitch{width:100%}
}
@media (max-width:520px){.spec{grid-template-columns:1fr}.spec span{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0}.spec span + span{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* ---------- home: due mondi ---------- */
.worlds{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.worlds::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform 1.2s var(--ease)}
.worlds.in::after{transform:scaleY(1)}
.world{position:relative;display:grid;align-content:space-between;gap:2.4rem;padding:clamp(28px,4.5vw,64px) clamp(20px,4vw,56px) clamp(28px,4vw,52px);text-decoration:none;min-height:clamp(420px,52vw,640px);overflow:hidden;isolation:isolate}
.world:first-child{padding-left:0}
.world canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.35;transition:opacity .6s}
.world:hover canvas{opacity:.75}
.world h3{font:900 clamp(2.8rem,7.4vw,6.6rem)/.88 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:-.02em}
.world p{color:var(--muted);max-width:40ch;margin-top:1rem}
.world ul{list-style:none;margin:0;padding:0;display:grid;font:500 .8rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}
.world li{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid var(--line)}
.world li:last-child{border-bottom:1px solid var(--line)}
.world li span:last-child{color:var(--muted)}
.world .link-arrow{margin-top:.6rem}
.world:hover h3{color:var(--accent)}
.world h3{transition:color .4s}
@media (max-width:820px){
  .worlds{grid-template-columns:1fr}
  /* su telefono il taglio rosso separa i due blocchi, invece di stare a metà altezza */
  .worlds::after{display:none}
  .world + .world{border-top:2px solid var(--accent)}
  .world,.world:first-child{padding-inline:0;min-height:0}
  .world canvas{opacity:.18}
}

/* ---------- lavori (video) ---------- */
.works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.6vw,32px)}
@media (max-width:720px){.works{grid-template-columns:1fr}}
.works.lead > .work:first-child{grid-column:1/-1}
.works.lead > .work:first-child .frame{aspect-ratio:21/9}
.works.lead > .work:first-child h3{font-size:clamp(1.6rem,3.6vw,2.6rem);text-transform:uppercase;font-weight:850}
@media (max-width:720px){.works.lead > .work:first-child .frame{aspect-ratio:16/9}}
.work{display:grid;gap:.9rem;align-content:start;min-width:0;cursor:pointer;background:none;border:0;padding:0;text-align:left;color:var(--fg);font:inherit}
.work .frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.86);transition:transform .9s var(--ease),filter .6s}
.work:hover .poster,.work:focus-visible .poster{filter:none;transform:scale(1.03)}
.poster-fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(162deg,#17171c 0%,#0d0d10 55%,#1a0b0c 100%)}
.poster-fallback span{font:850 clamp(1.1rem,2.6vw,1.8rem)/1 var(--font-display);font-stretch:125%;letter-spacing:.08em;color:var(--line-2);text-transform:uppercase;padding:1rem;text-align:center}
.shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,transparent 55%);z-index:1}
.play{position:absolute;left:clamp(14px,2.4vw,24px);bottom:clamp(14px,2.4vw,24px);display:flex;align-items:center;gap:1rem;z-index:2}
.play i{width:clamp(46px,5vw,64px);aspect-ratio:1;border-radius:50%;background:var(--accent);display:grid;place-items:center;transition:transform .25s}
.play i::after{content:"";border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.work:hover .play i{transform:scale(1.08)}
.tc{position:absolute;right:clamp(14px,2.4vw,22px);top:clamp(12px,2.4vw,20px);font:500 .72rem/1 var(--font-mono);letter-spacing:.1em;color:var(--fg);background:rgba(0,0,0,.6);padding:.4rem .55rem;z-index:2;font-variant-numeric:tabular-nums}
.tc::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:.45rem;vertical-align:1px}
.work .frame::before{content:"";position:absolute;left:0;right:0;top:56%;height:2px;background:var(--accent);z-index:3;transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.work:hover .frame::before,.work:focus-visible .frame::before{transform:scaleX(1)}
.work .meta{display:flex;justify-content:space-between;gap:1rem;font:400 .74rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.work .meta .type{color:var(--accent-text)}
.work h3{font-size:1.3rem;transition:color .3s}
.work:hover h3{color:var(--accent-text)}
.work .roles{font-size:.9rem;color:var(--muted)}
.work .built{font-size:.95rem;max-width:52ch}

/* ---------- studio (membri) ---------- */
.members{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.member{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;gap:1rem 2.5rem;align-items:center;padding:clamp(22px,3vw,36px) 0;border-bottom:1px solid var(--line);position:relative}
.member::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.member:hover::before{transform:scaleX(1)}
/* il nome si adatta alla sua colonna: il più lungo (MICHELANGELO) detta la misura per tutti */
.member h3{container-type:inline-size;min-width:0;font:850 1rem/.92 var(--font-display);font-stretch:118%;text-transform:uppercase;letter-spacing:-.015em}
.member h3 span{display:block;font-size:min(4.4rem,9.4cqw)}
.member h3 .n2{color:var(--muted);transition:color .4s}
.member:hover h3 .n2{color:var(--fg)}
.member .m-role{font:500 .76rem/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);margin-bottom:.5rem}
.member .m-bio{color:var(--muted);max-width:46ch}
.member .m-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}
.member .m-tags span{font:500 .68rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);padding:.4rem .5rem;color:var(--fg)}
@media (max-width:820px){.member{grid-template-columns:1fr}.member .link-arrow{justify-self:start}}

/* ---------- strip prodotti in home ---------- */
.shelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
@media (max-width:1000px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.shelf{grid-template-columns:1fr}}

/* ---------- credits ---------- */
.credits-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.4rem}
.credits{width:100%;border-collapse:collapse;font-size:.95rem}
.credits th{font:500 .7rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.9rem 1rem .9rem 0;border-bottom:1px solid var(--line);font-weight:500}
.credits td{padding:1.05rem 1rem 1.05rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.credits tr{transition:background .2s}
.credits tbody tr:hover{background:var(--bg-2)}
.credits .c-year{font:500 .85rem/1.5 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;width:4.5rem}
.credits .c-title{font:750 1.08rem/1.3 var(--font-display);font-stretch:108%}
.credits .c-title small{display:block;font:400 .85rem/1.4 var(--font-body);color:var(--muted);margin-top:.15rem}
.credits .c-kind{font:500 .72rem/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);white-space:nowrap}
.credits .c-role{color:var(--fg)}
.credits .c-who{font:400 .8rem/1.5 var(--font-mono);color:var(--muted)}
.credits .c-link a{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);color:var(--muted);transition:all .2s}
.credits .c-link a:hover{color:var(--fg);border-color:var(--fg)}
.credits tr.ph td{color:var(--muted)}
.credits tr.ph .c-title{color:var(--muted)}
@media (max-width:760px){
  .credits thead{display:none}
  .credits,.credits tbody,.credits tr,.credits td{display:block;width:auto}
  .credits tr{display:grid;grid-template-columns:auto 1fr auto;gap:.25rem .9rem;padding:1rem 0;border-bottom:1px solid var(--line)}
  .credits td{border:0;padding:0}
  .credits .c-year{grid-row:1;grid-column:1}
  .credits .c-title{grid-column:2/4}
  .credits .c-kind,.credits .c-role,.credits .c-who{grid-column:2/4}
  .credits .c-link{grid-column:3;grid-row:1}
}
.empty{color:var(--muted);font:400 .85rem/1.5 var(--font-mono);border:1px dashed var(--line);padding:2rem;text-align:center}

/* ---------- player A/B (prima/dopo) ---------- */
.ab{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:clamp(16px,2vw,24px)}
.ab-item{border:1px solid var(--line);padding:clamp(16px,2.4vw,24px);display:grid;gap:1rem;background:var(--bg-2)}
.ab-item h3{font-size:1.25rem;text-transform:uppercase}
.ab-item .meta{font:400 .74rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ab-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:1rem;align-items:center}
.ab-play{width:52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer}
.ab-play .ico{width:18px;height:18px}
.ab-bar{height:4px;background:var(--line);position:relative;cursor:pointer}
.ab-bar span{position:absolute;inset:0 auto 0 0;width:0;background:var(--fg)}
.ab-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.ab-switch button{all:unset;cursor:pointer;text-align:center;font:600 .74rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;padding:.85rem;color:var(--muted)}
.ab-switch button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}

/* ---------- servizi ---------- */
.svc-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
@media (max-width:860px){.svc-index{grid-template-columns:1fr}}
.svc-group{padding:1.4rem 1.4rem 1.6rem 0;border-bottom:1px solid var(--line)}
@media (min-width:861px){.svc-group + .svc-group{padding-left:1.4rem;border-left:1px solid var(--line)}}
.svc-group h3{font:500 .74rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin-bottom:1rem}
.svc-group a{display:flex;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;font:800 clamp(1.25rem,2.2vw,1.6rem)/1.15 var(--font-display);font-stretch:112%;text-transform:uppercase;padding:.45rem 0;min-height:44px}
.svc-group a .ico{color:var(--muted);transition:transform .35s var(--ease),color .2s}
.svc-group a:hover{color:var(--accent-text)}
.svc-group a:hover .ico{transform:translateY(3px);color:var(--accent)}
.svc{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(24px,5vw,80px);padding-block:clamp(48px,6.5vw,96px);border-top:1px solid var(--line);position:relative}
.svc::before{content:"";position:absolute;top:-1px;left:0;width:clamp(60px,12vw,180px);height:2px;background:var(--accent)}
@media (max-width:900px){.svc{grid-template-columns:1fr}}
.svc-side{align-self:start;position:sticky;top:calc(var(--head) + 28px);display:grid;gap:1.2rem}
@media (max-width:900px){.svc-side{position:static}}
.svc-side .area{font:500 .74rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.svc-side h2{font-size:clamp(2.2rem,5vw,4.2rem)}
.svc-facts{display:grid;border-top:1px solid var(--line)}
.svc-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);font:400 .78rem/1.3 var(--font-mono);letter-spacing:.06em;color:var(--muted)}
.svc-facts b{color:var(--fg);font-weight:600;text-align:right}
.svc-body{display:grid;gap:clamp(24px,3vw,36px);align-content:start}
.svc-body .intro{font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.5;max-width:40ch}
.svc-body p.more{color:var(--muted);max-width:62ch}
.svc-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
@media (max-width:560px){.svc-cols{grid-template-columns:1fr}}
.svc-cols h4{font:500 .72rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.9rem}
.svc-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.svc-cols li{display:grid;grid-template-columns:14px 1fr;gap:.7rem;align-items:baseline}
.svc-cols li::before{content:"";width:14px;height:1px;background:var(--accent);transform:translateY(-.3em)}
.svc-cols .deliver li{font:400 .86rem/1.5 var(--font-mono)}
.svc-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}

/* processo */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:s;border-top:1px solid var(--line)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s;padding:1.6rem 1.4rem 1.8rem 0;display:grid;gap:.8rem;align-content:start;border-bottom:1px solid var(--line)}
@media (min-width:901px){.steps li + li{padding-left:1.4rem;border-left:1px solid var(--line)}}
.steps li::before{content:counter(s,decimal-leading-zero);font:500 .78rem/1 var(--font-mono);color:var(--accent-text);letter-spacing:.1em}
.steps b{font:800 1.4rem/1.1 var(--font-display);font-stretch:112%;text-transform:uppercase}
.steps p{color:var(--muted);font-size:.95rem}

/* faq */
.faq{border-top:1px solid var(--line);max-width:960px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.4rem;padding:1.3rem 0;font:700 clamp(1.05rem,1.8vw,1.3rem)/1.3 var(--font-display);font-stretch:106%;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(var(--fg),var(--fg)) center/14px 1.5px no-repeat,linear-gradient(var(--fg),var(--fg)) center/1.5px 14px no-repeat;transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--accent-text)}
.faq details p{color:var(--muted);padding:0 0 1.4rem;max-width:68ch}

/* ---------- form preventivo ---------- */
.quote{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px)}
@media (max-width:900px){.quote{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem}
.form .full{grid-column:1/-1}
@media (max-width:560px){.form{grid-template-columns:1fr}}
.field{display:grid;gap:.45rem}
.field label,.field legend{font:500 .72rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--fg);padding:.85rem .9rem;min-height:48px;border-radius:0;transition:border-color .2s;font-size:1rem}
.field textarea{min-height:150px;resize:vertical;line-height:1.5}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.4rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--line-2)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--fg)}
.field input::placeholder,.field textarea::placeholder{color:#7d7a83}
.field .err{font:400 .78rem/1.3 var(--font-mono);color:var(--accent-text)}
.field[data-invalid] input,.field[data-invalid] select,.field[data-invalid] textarea{border-color:var(--accent)}
.form-note{font:400 .78rem/1.5 var(--font-mono);color:var(--muted)}
.form-status{font:500 .85rem/1.5 var(--font-mono)}
.form-status.ok{color:var(--ok)}
.form-status.bad{color:var(--accent-text)}

/* ---------- finale contatti (rosso pieno) ---------- */
.finale{background:var(--accent);color:#fff;border-top:0!important;padding-block:clamp(72px,11vw,150px)}
.contact{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:end}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
.finale h2{color:#fff;font-size:clamp(2.8rem,8.4vw,7rem)}
.finale h2 span{color:var(--bg)}
.finale .lede{color:#fff;font-size:1.1rem;max-width:46ch;margin-top:1.2rem}
.contact-list{display:grid;gap:1rem}
.cl-row{display:grid;gap:.35rem;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:1rem}
.cl-row small{font:400 .74rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.cl-row .v{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;font-size:clamp(1.1rem,2.2vw,1.45rem);font-weight:500;word-break:break-word}
.cl-row .v a{text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;min-height:44px}
.cl-row .v a:hover{color:var(--bg)}
.copy{font:500 .74rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid rgba(255,255,255,.6);color:#fff;padding:.75rem .9rem;min-height:44px;cursor:pointer}
.copy:hover{background:#fff;color:var(--accent);border-color:#fff}
.finale :focus-visible{outline-color:#fff}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);padding-block:clamp(40px,5vw,64px) 2.4rem;color:var(--muted);font:400 .78rem/1.6 var(--font-mono);letter-spacing:.03em}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
.foot-grid h4{font:500 .7rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg);margin-bottom:1rem}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.foot-grid a{text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
.foot-grid a:hover{color:var(--fg)}
.foot-brand{display:grid;gap:1rem;align-content:start}
.foot-brand img{width:120px}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;border-top:1px solid var(--line);margin-top:clamp(32px,4vw,48px);padding-top:1.4rem}
.foot-base p{max-width:80ch}

/* ---------- player video / pack ---------- */
dialog.player{width:min(1100px,calc(100% - 24px));max-width:100%;max-height:calc(100svh - 24px);padding:0;border:1px solid var(--line);background:var(--bg);color:var(--fg);overflow:auto}
dialog.player::backdrop{background:rgba(5,5,7,.9);backdrop-filter:blur(4px)}
.pl-video{position:relative;aspect-ratio:16/9;background:#000}
.pl-video iframe,.pl-video video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.pl-video.audio{aspect-ratio:auto;background:var(--bg-2);padding:clamp(56px,7vw,72px) clamp(16px,3vw,28px) 1rem}
.pl-video.embed{aspect-ratio:auto;background:var(--bg-2);padding:clamp(56px,7vw,72px) clamp(16px,3vw,28px) 1rem}
.pl-video.embed iframe{position:static;height:352px;border-radius:12px}
.pl-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 2rem;padding:1.2rem clamp(16px,3vw,28px) 1.5rem;align-items:start}
@media (max-width:640px){.pl-info{grid-template-columns:1fr}}
.pl-info h3{font-size:clamp(1.2rem,3vw,1.7rem);text-transform:uppercase}
.pl-credits{margin-top:.6rem;display:grid;gap:.25rem;font:400 .8rem/1.5 var(--font-mono);color:var(--muted)}
.pl-credits b{color:var(--fg);font-weight:500}
.pl-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.pl-close{position:absolute;top:10px;right:10px;z-index:5;width:44px;height:44px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;cursor:pointer;display:grid;place-items:center}
.pl-close .ico{width:16px;height:16px}
.pl-close:hover{background:var(--accent)}
.pl-msg{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1.5rem;gap:1rem;align-content:center;z-index:2}
.pl-msg p{color:var(--muted);max-width:42ch}

/* lista tracce (anteprime audio) */
.tracks{list-style:none;margin:0;padding:0;display:grid}
.tracks li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.75rem .2rem;border-bottom:1px solid var(--line)}
.tracks li:first-child{border-top:1px solid var(--line)}
.tplay{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-2);background:none;cursor:pointer;display:grid;place-items:center;color:var(--fg);transition:background .2s,border-color .2s}
.tplay .ico{width:14px;height:14px}
.tplay:hover{border-color:var(--fg)}
.tracks li.on .tplay{background:var(--accent);border-color:var(--accent);color:#fff}
.tinfo{display:grid;gap:.3rem;min-width:0}
.tinfo b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tinfo small{font:400 .74rem/1.3 var(--font-mono);color:var(--muted);letter-spacing:.06em}
.tbar{height:2px;background:var(--line);display:block;cursor:pointer;position:relative}
.tbar::before{content:"";position:absolute;inset:-8px 0}
.tbar span{display:block;height:100%;width:0;background:var(--accent)}
.ttime{font:400 .74rem/1 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.tdl{display:grid;place-items:center;width:40px;height:40px;color:var(--muted);border:1px solid transparent}
.tdl:hover{color:var(--fg);border-color:var(--line)}

/* ---------- store ---------- */
.store-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:.9rem;border-bottom:1px solid var(--line);position:sticky;top:var(--head);z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.store-bar .field{display:flex;align-items:center;gap:.6rem}
.store-bar select{min-height:44px;padding:.6rem 2.4rem .6rem .8rem;font:500 .78rem/1 var(--font-mono);letter-spacing:.06em}
.store-count{font:400 .78rem/1 var(--font-mono);color:var(--muted);letter-spacing:.06em}
.grid-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:clamp(28px,3vw,40px) clamp(16px,2vw,28px);padding-top:clamp(28px,4vw,48px)}
.pcard{display:grid;gap:.85rem;align-content:start;position:relative;min-width:0}
.pcard .cover-wrap{position:relative}
.pcard a.cover-link{display:block;text-decoration:none}
.pcard .pc-play{position:absolute;right:7%;top:50%;margin-top:-24px;z-index:3;width:48px;height:48px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;transform:scale(.6);opacity:0;transition:opacity .3s,transform .4s var(--ease)}
.pcard .pc-play .ico{width:16px;height:16px}
.pcard:hover .pc-play,.pcard .pc-play:focus-visible,.pcard .pc-play.on{opacity:1;transform:none}
@media (hover:none){.pcard .pc-play{opacity:1;transform:none}}
.pc-badges{position:absolute;top:12px;left:12px;z-index:3;display:flex;gap:.35rem;flex-wrap:wrap}
.badge{font:600 .62rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;padding:.38rem .5rem;background:var(--fg);color:var(--bg)}
.badge.red{background:var(--accent);color:#fff}
.badge.line{background:rgba(11,11,13,.7);color:var(--fg);border:1px solid var(--line-2)}
.pcard .pc-cat{font:500 .7rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.pcard h3{font:800 1.45rem/1.05 var(--font-display);font-stretch:112%;text-transform:uppercase}
.pcard h3 a{text-decoration:none}
.pcard h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.pcard:hover h3{color:var(--accent-text)}
.pcard .pc-spec{font:400 .76rem/1.5 var(--font-mono);color:var(--muted)}
.pcard .pc-buy{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);padding-top:.85rem;position:relative;z-index:2}
.price{font:600 1.15rem/1 var(--font-mono);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:.5rem}
.price s{color:var(--muted);font-size:.8em;font-weight:400}
.add{display:inline-flex;align-items:center;gap:.5rem;min-height:42px;padding:0 1rem;border:1px solid var(--line-2);background:none;cursor:pointer;font:600 .72rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--fg);transition:all .2s}
.add:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.add .ico{width:14px;height:14px}

/* copertine generate (finché non ci sono le grafiche vere) */
.cover{container-type:inline-size;position:relative;aspect-ratio:1;overflow:hidden;background:var(--c-bg,#141418);border:1px solid var(--line);isolation:isolate}
.cover img.art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pcard:hover .cover img.art{transform:scale(1.035)}
.cover svg.wave{position:absolute;left:0;right:0;top:50%;width:100%;height:46%;transform:translateY(-50%);transition:transform .9s var(--ease)}
.pcard:hover .cover svg.wave{transform:translateY(-50%) scaleY(1.12)}
.cover .cv-cut{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--c-accent,var(--accent))}
.add{white-space:nowrap}
.cover .cv-name{position:absolute;left:7%;right:7%;bottom:7%;font:900 var(--fs,14cqw)/.88 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;color:var(--fg);text-wrap:balance}
.cover .cv-top{position:absolute;left:7%;right:7%;top:7%;display:flex;justify-content:space-between;font:500 .62rem/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(237,234,228,.6)}
.cover .cv-top img{width:22px;height:22px;opacity:.85}
.cover.big .cv-top{font-size:.72rem}
.cover.big .cv-top img{width:30px;height:30px}

/* banda commissioni */
.commission{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end;border:1px solid var(--line);padding:clamp(24px,4.5vw,64px);position:relative;overflow:hidden;isolation:isolate}
.commission::before{content:"";position:absolute;left:-1px;top:-1px;width:clamp(60px,12vw,180px);height:2px;background:var(--accent)}
@media (max-width:860px){.commission{grid-template-columns:1fr}}
.commission h2{font-size:clamp(2.2rem,5.4vw,4.4rem)}
.commission ul{list-style:none;margin:0;padding:0;display:grid}
.commission li{display:flex;gap:.9rem;padding:.8rem 0;border-top:1px solid var(--line);font:400 .86rem/1.4 var(--font-mono)}
.commission li b{color:var(--accent-text);font-weight:500}

/* garanzie del negozio */
.assure{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media (max-width:900px){.assure{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.assure{grid-template-columns:1fr}}
.assure div{padding:1.4rem 1.2rem 1.4rem 0;display:grid;gap:.4rem}
@media (min-width:901px){.assure div + div{padding-left:1.2rem;border-left:1px solid var(--line)}}
.assure b{font:700 1rem/1.3 var(--font-display);font-stretch:108%;text-transform:uppercase}
.assure span{color:var(--muted);font-size:.9rem}
.assure .ico{width:20px;height:20px;color:var(--accent)}

/* ---------- scheda prodotto ---------- */
.crumbs{font:400 .74rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;gap:.6rem;flex-wrap:wrap;padding-block:1.4rem}
.crumbs a{text-decoration:none;min-height:24px;display:inline-flex;align-items:center}
.crumbs a:hover{color:var(--fg)}
.pdp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"cover info" "deck info";grid-template-rows:auto 1fr;gap:clamp(24px,3vw,40px) clamp(28px,5vw,80px);padding-bottom:clamp(56px,7vw,100px)}
.pdp-cover{grid-area:cover;position:relative}
.pdp-deck{grid-area:deck;min-width:0}
.pdp-info{grid-area:info;align-self:start}
@media (max-width:900px){.pdp{grid-template-columns:minmax(0,1fr);grid-template-areas:"cover" "info" "deck";grid-template-rows:auto}}
.pdp-info{display:grid;gap:1.4rem;align-content:start;position:sticky;top:calc(var(--head) + 24px)}
@media (max-width:900px){.pdp-info{position:static}}
.pdp-info{container-type:inline-size}
.pdp-info h1{font:900 min(4.8rem,var(--fs,10cqw))/.9 var(--font-display);font-stretch:122%;text-transform:uppercase;letter-spacing:-.02em}
.pdp-info .tagline{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:44ch}
.pdp-buy{display:grid;gap:1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:1.4rem}
.pdp-buy .price{font-size:clamp(1.8rem,3vw,2.4rem)}
.pdp-buy .btn{width:100%}
.pdp-buy .fine{font:400 .76rem/1.5 var(--font-mono);color:var(--muted)}
.kv{display:grid;margin:0}
.kv div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line);font:400 .82rem/1.4 var(--font-mono)}
.kv dt{color:var(--muted)}
.kv dd{margin:0;text-align:right}
.pdp-sect{padding-block:clamp(48px,6vw,88px);border-top:1px solid var(--line)}
.pdp-sect h2{font-size:clamp(2rem,4.6vw,3.6rem);margin-bottom:clamp(24px,3vw,40px)}
.prose{max-width:68ch;color:var(--muted);display:grid;gap:1rem;font-size:1.05rem}
.prose strong{color:var(--fg)}
.modules{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);counter-reset:m}
.modules li{counter-increment:m;display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.modules li::before{content:counter(m,decimal-leading-zero);font:500 .8rem/1 var(--font-mono);color:var(--accent-text)}
.modules b{font:750 1.1rem/1.3 var(--font-display);font-stretch:106%}
.modules small{display:block;color:var(--muted);font-size:.9rem;margin-top:.2rem}
.modules span{font:400 .78rem/1 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.wave-box{position:relative;height:110px;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;cursor:pointer}
.wave-box img{width:100%;height:100%;object-fit:fill;opacity:.9}
.wave-box .head-line{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--accent);opacity:0;pointer-events:none}
.wave-box .msg{position:absolute;inset:0;display:grid;place-items:center;font:400 .75rem/1 var(--font-mono);color:var(--muted)}

/* ---------- note legali ---------- */
.legal{max-width:76ch;display:grid;gap:1.1rem;padding-block:clamp(40px,6vw,80px);color:var(--muted)}
.legal h2{font-size:clamp(1.6rem,3vw,2.2rem);color:var(--fg);margin-top:2rem}
.legal h3{color:var(--fg);margin-top:1rem}
.legal ul{display:grid;gap:.4rem;padding-left:1.2rem}
.legal mark{background:none;color:var(--accent-text);border-bottom:1px dashed currentColor}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:60;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--fg);color:var(--bg);font:500 .82rem/1.4 var(--font-mono);padding:.9rem 1.2rem;max-width:min(560px,calc(100% - 32px));transition:opacity .3s,transform .45s var(--ease)}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:inherit}

/* ---------- comparsa dei titoli ---------- */
.js-reveal .rv{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.js-reveal .rv.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.js-reveal .rv{clip-path:none}}

/* ---------- Snipcart nei colori RIFT ---------- */
#snipcart{
  --color-default:var(--fg);--color-alt:var(--muted);--color-icon:var(--fg);
  --bgColor-default:var(--bg);--bgColor-alt:var(--bg-2);
  --borderColor-default:var(--line);
  --color-link:var(--accent-text);--color-link-hover:var(--fg);
  --color-buttonPrimary:#fff;--bgColor-buttonPrimary:var(--accent);
  --color-buttonPrimary-hover:var(--bg);--bgColor-buttonPrimary-hover:var(--fg);
  --color-buttonSecondary:var(--fg);--bgColor-buttonSecondary:var(--bg-3);
  --color-input:var(--fg);--bgColor-input:var(--bg-2);--borderColor-input:var(--line);--borderColor-input-hover:var(--line-2);--borderColor-input-focus:var(--fg);
  --color-badge:#fff;--bgColor-badge:var(--accent);
  --bgColor-modal:var(--bg);--bgColor-modalVeil:rgba(5,5,7,.85);
  --color-error:var(--accent-text);--borderColor-error:var(--accent);--bgColor-error:#2a0d0f;
  --color-success:var(--ok);--bgColor-success:#0f2117;
  font-family:var(--font-body);
}

@media (max-width:640px){
  .store-bar{position:static}
  .tabs button{padding:.85rem 1rem;font-size:.74rem}
}
.deck-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
