/* ==========================================================
   COMMON QUEST — palette campionata dallo screenshot
   ========================================================== */
:root{
  --cream:#f6f4ee;
  --panel:#c2c2c2;
  --panel-dark:#b3b3b3;
  --slate:#33363f;      /* barra tasti */
  --black:#000;
  --ink:#3d3d3d;
  --ink-soft:#6a6a6a;
  --green:#75b72b;
  --green-dark:#5b9020;
  --radius:22px;
  --radius-sm:14px;
  --maxw:1180px;
  --pad:clamp(20px,5vw,56px);
  --font:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.sec{padding:clamp(56px,8vw,96px) 0}
.sec__title{
  font-weight:800;letter-spacing:.02em;text-transform:uppercase;
  font-size:clamp(1.1rem,2vw,1.35rem);margin:0 0 22px;
}

/* ---------- PS badge: plain-big-PS/Default → torna alla Hero ---------- */
.ps-badge{
  position:fixed;top:20px;right:20px;z-index:120;
  width:54px;height:54px;flex:0 0 54px;           /* geometria bloccata: niente deformazioni */
  border-radius:14px;box-sizing:border-box;
  display:inline-grid;place-items:center;cursor:pointer;
  background:var(--cream);color:var(--slate);
  border:1.5px dashed var(--green);
  box-shadow:0 8px 20px -10px rgba(0,0,0,.35);
  transition:transform .18s, background .18s, color .18s, box-shadow .18s;
}
.ps-badge:hover,.ps-badge:focus-visible{
  background:var(--green);color:#fff;transform:translateY(-2px);
  box-shadow:0 12px 24px -10px rgba(117,183,43,.85);
}
.ps-badge:active{transform:scale(.94)}
.ps-badge svg{width:26px;height:26px;display:block;flex:none}
.ps-badge__tip{
  position:absolute;right:64px;top:50%;transform:translateY(-50%) translateX(6px);
  white-space:nowrap;background:var(--slate);color:#fff;font-size:.72rem;font-weight:600;
  padding:.42em .7em;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;
}
.ps-badge:hover .ps-badge__tip{opacity:1;transform:translateY(-50%) translateX(0)}

/* ---------- HERO (Frame 214) ---------- */
.hero{min-height:88vh;display:grid;place-items:center;text-align:center;padding:100px 0 60px}
.hero__kicker{
  display:inline-flex;align-items:center;gap:.5em;font-size:.75rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--green-dark);
  border:1.5px solid var(--green);border-radius:999px;padding:.5em 1.2em;margin-bottom:26px;
}
.hero__title{
  font-size:clamp(2.4rem,7vw,5.2rem);font-weight:800;line-height:.98;letter-spacing:-.02em;
  margin:0 0 20px;color:#1a1a1a;
}
.hero__title em{font-style:normal;color:var(--green)}
.hero__lead{max-width:620px;margin:0 auto 34px;color:var(--ink-soft);font-size:1.05rem}
.hero__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{
  font-weight:700;font-size:.95rem;padding:.85em 1.7em;border-radius:999px;
  border:2px solid var(--slate);background:var(--slate);color:#fff;cursor:pointer;
  transition:transform .18s, box-shadow .18s, background .18s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(0,0,0,.6)}
.btn--ghost{background:transparent;color:var(--slate)}
.btn--ghost:hover{background:var(--slate);color:#fff}
.btn--green{background:var(--green);border-color:var(--green)}
.btn--green:hover{box-shadow:0 14px 26px -12px rgba(117,183,43,.9)}

/* ==========================================================
   CHI SIAMO — fedele allo screenshot
   ========================================================== */
.cs__panel{
  position:relative;background:var(--panel);border-radius:var(--radius);
  padding:clamp(20px,2.6vw,28px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,34px);
  align-items:start;              /* NON stretch: altrimenti l'aspect-ratio ricava la larghezza
                                     dall'altezza del testo e lo schermo sborda sulla colonna destra */
  overflow:hidden;
}
.cs__panel > *{min-width:0}        /* le colonne non si allargano oltre 1fr */
/* schermo nero a sinistra */
.cs__screen{
  position:relative;background:var(--black);border-radius:var(--radius-sm);
  width:100%;max-width:100%;height:auto;align-self:start;   /* larghezza = colonna, altezza derivata */
  aspect-ratio:16/11;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
@supports not (aspect-ratio:1){                              /* fallback browser datati */
  .cs__screen{height:0;padding-bottom:68.75%}                /* 11/16 */
}
.cs__screen img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);transition:opacity .5s ease, transform .7s ease;
}
.cs__screen img.is-active{opacity:1;transform:scale(1)}
.cs__scan{position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 4px);}

/* colonna destra */
.cs__right{display:flex;flex-direction:column;min-width:0}
/* barra tasti PS in alto a destra */
.cs__bar{
  align-self:flex-end;display:flex;gap:0;background:var(--slate);
  border-radius:0 var(--radius) 0 var(--radius);
  margin:calc(-1 * clamp(20px,2.6vw,28px)) calc(-1 * clamp(20px,2.6vw,28px)) 0 0;
  padding:6px;
}
.pskey{
  width:clamp(48px,5vw,62px);height:clamp(44px,4.6vw,56px);
  display:grid;place-items:center;background:transparent;border:0;cursor:pointer;
  border-radius:12px;color:#cfd3d8;transition:background .2s, color .2s, transform .15s;
  position:relative;
}
.pskey svg{width:22px;height:22px}
.pskey:hover{background:rgba(255,255,255,.09);color:#fff}
.pskey:active{transform:scale(.9)}
.pskey.is-on{background:var(--green);color:#fff;box-shadow:0 0 0 2px rgba(117,183,43,.35)}
.pskey:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* testo che cambia */
.cs__content{padding:clamp(22px,3vw,34px) 0 0;flex:1;display:flex;flex-direction:column;justify-content:center}
.cs__tag{
  display:inline-block;align-self:flex-start;font-size:.68rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;background:var(--slate);padding:.4em .8em;border-radius:6px;margin-bottom:12px;
}
.cs__h{font-size:clamp(1.15rem,2.1vw,1.6rem);font-weight:800;margin:0 0 10px;color:#1a1a1a;line-height:1.2}
.cs__p{margin:0 0 16px;color:#2f2f2f;font-size:.95rem;max-width:46ch;overflow-wrap:anywhere}
.cs__stats{display:flex;gap:22px;flex-wrap:wrap}
.cs__stat b{display:block;font-size:1.3rem;font-weight:800;color:var(--green-dark);line-height:1.1}
.cs__stat span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#5a5a5a;font-weight:600}
.cs__fade{animation:csIn .45s ease both}
@keyframes csIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cs__hint{margin-top:14px;font-size:.78rem;color:#5f5f5f}
.cs__hint kbd{background:#fff;border:1px solid #aaa;border-bottom-width:2px;border-radius:5px;padding:.1em .45em;font-size:.75rem;font-family:inherit}

/* ==========================================================
   CAROSELLO (Frames 219 / 22 / 23 + extra) — verticale, auto
   ========================================================== */
.car{background:var(--panel);border-radius:var(--radius);padding:clamp(20px,2.6vw,30px);
  display:grid;grid-template-columns:1fr auto;gap:clamp(18px,2.5vw,28px);align-items:center}
.car__view{position:relative;height:clamp(330px,44vw,430px);overflow:hidden;border-radius:var(--radius-sm)}
.car__track{display:flex;flex-direction:column;gap:16px;transition:transform .75s cubic-bezier(.22,.7,.3,1)}
.car__slide{
  flex:0 0 auto;height:clamp(330px,44vw,430px);
  display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:clamp(16px,2.4vw,28px);
  background:var(--black);border-radius:var(--radius-sm);overflow:hidden;padding:clamp(14px,2vw,20px);
  align-items:center;
}
.car__slide img{width:100%;height:100%;max-height:100%;object-fit:cover;border-radius:10px}
.car__meta{color:#e9e9e9;padding-right:8px}
.car__genre{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--green)}
.car__name{font-size:clamp(1.3rem,2.6vw,2rem);font-weight:800;margin:6px 0 10px;color:#fff;line-height:1.1}
.car__desc{font-size:.9rem;color:#b9b9b9;margin:0 0 16px;max-width:40ch}
.car__price{font-weight:800;color:#fff;font-size:1.1rem}
.car__price s{color:#8a8a8a;font-weight:500;font-size:.85rem;margin-left:8px}
/* frecce = Frame 221 (su) e Frame 223 (giù) */
.car__nav{display:flex;flex-direction:column;gap:12px;align-items:center}
.arrowkey{
  width:56px;height:56px;border-radius:14px;border:0;cursor:pointer;
  background:var(--slate);color:#fff;display:grid;place-items:center;
  box-shadow:0 8px 18px -10px rgba(0,0,0,.7);
  transition:background .18s, transform .12s, box-shadow .18s;
}
.arrowkey:hover{background:var(--green);box-shadow:0 12px 22px -10px rgba(117,183,43,.9)}
.arrowkey:active{transform:translateY(2px) scale(.94)}
.arrowkey:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.arrowkey svg{width:22px;height:22px}
.car__dots{display:flex;flex-direction:column;gap:7px;margin:4px 0}
.car__dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#8e8e8e;cursor:pointer;transition:background .2s,transform .2s}
.car__dots button.is-on{background:var(--green);transform:scale(1.5)}
.car__playpause{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:none;border:0;color:#5a5a5a;cursor:pointer;padding:4px}
.car__playpause:hover{color:var(--green-dark)}

/* ==========================================================
   TASTIERA (Frame 17) + SHOP sulla barra spaziatrice
   ========================================================== */
.kb{background:var(--panel);border-radius:var(--radius);padding:clamp(20px,3vw,34px)}
.kb__rows{display:flex;flex-direction:column;gap:10px;align-items:center}
.kb__row{display:flex;gap:8px;justify-content:center;flex-wrap:nowrap}
.key{
  min-width:clamp(30px,3.4vw,46px);height:clamp(34px,3.8vw,48px);
  display:grid;place-items:center;border-radius:9px;background:#e9e7e2;color:#4a4a4a;
  font-size:.72rem;font-weight:600;box-shadow:0 3px 0 #a9a7a2;user-select:none;
}
.key--wide{min-width:clamp(48px,6vw,76px)}
/* SPACE = pulsante SHOP */
.key--space{
  min-width:min(430px,58vw);height:clamp(44px,5vw,58px);
  background:var(--green);color:#fff;font-size:.95rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;cursor:pointer;border:0;box-shadow:0 5px 0 var(--green-dark);
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .12s, box-shadow .12s, background .2s;
  animation:pulseKey 2.6s ease-in-out infinite;
}
.key--space:hover{background:#7fc531}
.key--space:active,.key--space.is-press{transform:translateY(5px);box-shadow:0 0 0 var(--green-dark);animation:none}
.key--space:focus-visible{outline:2px solid var(--slate);outline-offset:3px}
.key--space svg{width:18px;height:18px}
@keyframes pulseKey{0%,100%{box-shadow:0 5px 0 var(--green-dark),0 0 0 0 rgba(117,183,43,.5)}50%{box-shadow:0 5px 0 var(--green-dark),0 0 0 14px rgba(117,183,43,0)}}
.kb__hint{text-align:center;margin-top:18px;font-size:.8rem;color:#5f5f5f}

/* ==========================================================
   SHOP (Frame 30)
   ========================================================== */
.shop{scroll-margin-top:80px}
.shop.is-revealed .card{animation:cardIn .55s ease both}
.shop.is-revealed .card:nth-child(2){animation-delay:.08s}
.shop.is-revealed .card:nth-child(3){animation-delay:.16s}
.shop.is-revealed .card:nth-child(4){animation-delay:.24s}
@keyframes cardIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.shop__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,22px)}
.card{background:var(--panel);border-radius:var(--radius-sm);overflow:hidden;transition:transform .22s, box-shadow .22s}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(0,0,0,.5)}
.card__img{background:#000;aspect-ratio:3/4;overflow:hidden}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card__img img{transform:scale(1.06)}
.card__b{padding:14px 16px 18px}
.card__g{font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green-dark)}
.card__n{font-weight:800;font-size:1rem;margin:4px 0 10px;color:#1c1c1c}
.card__row{display:flex;align-items:center;justify-content:space-between}
.card__p{font-weight:800;color:#1c1c1c}
.card__add{border:0;background:var(--slate);color:#fff;font-weight:700;font-size:.72rem;padding:.5em 1em;border-radius:999px;cursor:pointer;transition:background .18s}
.card__add:hover{background:var(--green)}

/* footer */
.foot{background:var(--slate);color:#cfd3d8;padding:40px 0;text-align:center;font-size:.85rem;margin-top:60px}
.foot a{color:var(--green);font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .cs__panel{grid-template-columns:1fr}
  .cs__bar{align-self:flex-start;margin:0 0 14px;border-radius:0 0 var(--radius) var(--radius)}
  .car{grid-template-columns:1fr}
  .car__nav{flex-direction:row;justify-content:center}
  .car__dots{flex-direction:row}
  .car__slide{grid-template-columns:1fr;align-content:center}
  .car__slide img{max-height:170px}
  .shop__grid{grid-template-columns:1fr 1fr}
  .kb__row{flex-wrap:wrap}
}
@media (max-width:560px){
  .shop__grid{grid-template-columns:1fr}
  .key{min-width:26px;height:30px;font-size:.6rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ==========================================================
   SPLASH — logo gufo che pulsa, poi wipe verde ed entra il sito
   ========================================================== */
body.is-locked{overflow:hidden}
.splash{
  position:fixed;inset:0;z-index:300;background:var(--cream);
  display:grid;place-items:center;text-align:center;
  transition:opacity .45s ease, visibility .45s ease;
}
.splash__owl{
  background:none;border:0;cursor:pointer;padding:0;display:grid;place-items:center;
  animation:owlPulse 1.9s ease-in-out infinite;
}
.splash__owl img{width:clamp(140px,19vw,200px);height:auto;display:block;
  filter:drop-shadow(0 16px 34px rgba(117,183,43,.5))}
.splash__owl:focus-visible{outline:2px solid var(--green);outline-offset:10px;border-radius:20px}
@keyframes owlPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.07)}
}
.splash__ring{
  position:absolute;width:clamp(160px,22vw,232px);aspect-ratio:1;height:auto;border-radius:50%;
  border:2px solid var(--green);animation:owlRing 1.9s ease-out infinite;pointer-events:none;
}
@keyframes owlRing{
  0%{transform:scale(.75);opacity:.65}
  100%{transform:scale(1.5);opacity:0}
}
.splash__hint{
  margin-top:26px;font-size:.78rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--green-dark);
}
/* cerchio verde che si espande e riempie lo schermo */
.splash__wipe{
  position:fixed;top:50%;left:50%;width:160px;height:160px;margin:-80px 0 0 -80px;
  border-radius:50%;background:var(--green);transform:scale(0);pointer-events:none;z-index:310;
}
.splash.is-go .splash__wipe{transform:scale(22);transition:transform .8s cubic-bezier(.7,0,.25,1)}
.splash.is-go .splash__owl,.splash.is-go .splash__hint,.splash.is-go .splash__ring{opacity:0;transition:opacity .25s}
.splash.is-out{opacity:0;visibility:hidden}

/* ==========================================================
   "CHIEDI AL GUFO" — fisso in alto a destra, accanto ai tasti PS
   ========================================================== */
.owl-tag{
  position:fixed;top:20px;right:86px;z-index:121;      /* 20 + badge 54 + 12 di gap */
  width:54px;height:54px;flex:0 0 54px;box-sizing:border-box;
  display:inline-grid;place-items:center;padding:0;cursor:pointer;
  background:var(--cream);border:1.5px dashed var(--green);border-radius:14px;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.35);
  transition:transform .18s, background .18s, box-shadow .18s, border-color .18s;
  animation:owlNudge 5s ease-in-out infinite;          /* piccolo richiamo periodico */
}
.owl-tag:hover,.owl-tag:focus-visible{
  background:var(--slate);border-color:var(--slate);transform:translateY(-2px) scale(1.04);
  box-shadow:0 12px 24px -12px rgba(0,0,0,.6);animation:none;
}
.owl-tag:active{transform:scale(.94)}
.owl-tag img{width:40px;height:40px;border-radius:50%;display:block}
@keyframes owlNudge{
  0%,88%,100%{transform:translateY(0) rotate(0)}
  91%{transform:translateY(-3px) rotate(-5deg)}
  94%{transform:translateY(-3px) rotate(5deg)}
  97%{transform:translateY(0) rotate(0)}
}
/* pallino "online" */
.owl-tag__dot{
  position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;
  background:var(--green);border:2px solid var(--cream);
  animation:dotBlink 1.6s ease-in-out infinite;
}
@keyframes dotBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.82)}}

/* fumetto animato "Chiedi al Gufo" (a sinistra: siamo al bordo destro) */
.owl-bubble{
  position:absolute;right:calc(100% + 12px);top:50%;
  white-space:nowrap;background:var(--slate);color:#fff;
  font-family:var(--font);font-weight:700;font-size:.78rem;letter-spacing:.01em;
  padding:.52em .85em;border-radius:10px;
  box-shadow:0 10px 22px -12px rgba(0,0,0,.6);
  animation:bubbleFloat 3.4s ease-in-out infinite;
}
.owl-bubble::after{                                     /* codina verso il gufo */
  content:"";position:absolute;left:100%;top:50%;margin-top:-5px;
  border:5px solid transparent;border-left-color:var(--slate);
}
@keyframes bubbleFloat{
  0%,100%{transform:translateY(-50%) translateX(0);opacity:.92}
  50%    {transform:translateY(-50%) translateX(-5px);opacity:1}
}
.owl-tag:hover .owl-bubble{background:var(--green);animation:none;transform:translateY(-50%) translateX(-5px)}
.owl-tag:hover .owl-bubble::after{border-left-color:var(--green)}

/* pannello assistenza — si apre sotto, a destra */
.owl-panel{
  position:fixed;top:84px;right:20px;left:auto;z-index:119;
  width:min(320px,calc(100vw - 40px));
  background:#fff;border:1.5px solid var(--green);border-radius:16px;padding:18px;
  box-shadow:0 26px 50px -22px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .22s,transform .22s,visibility .22s;
}
.owl-panel.is-open{opacity:1;visibility:visible;transform:none}
.owl-panel__h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.owl-panel__h img{width:34px;height:34px;flex:none;border-radius:50%}
.owl-panel__h b{font-size:.95rem;color:#1c1c1c}
.owl-panel__h span{display:block;font-size:.7rem;font-weight:600;color:var(--green-dark)}
.owl-panel p{font-size:.85rem;color:var(--ink-soft);margin:8px 0 14px}
.owl-panel ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:7px}
.owl-panel li button{
  width:100%;text-align:left;background:#f2f1ec;border:0;border-radius:9px;padding:.6em .8em;
  font-family:var(--font);font-size:.82rem;font-weight:600;color:var(--ink);cursor:pointer;transition:background .18s,color .18s;
}
.owl-panel li button:hover{background:var(--green);color:#fff}
.owl-panel__answer{
  font-size:.82rem;background:#f2f1ec;border-left:3px solid var(--green);
  border-radius:0 9px 9px 0;padding:.7em .8em;margin:0 0 14px;color:#2f2f2f;
}
.owl-panel__cta{display:block;text-align:center;background:var(--slate);color:#fff;font-weight:700;
  font-size:.82rem;padding:.7em;border-radius:999px;transition:background .18s}
.owl-panel__cta:hover{background:var(--green)}
.owl-panel__close{position:absolute;top:10px;right:12px;background:none;border:0;cursor:pointer;
  font-size:1.1rem;line-height:1;color:#9a9a9a}
.owl-panel__close:hover{color:var(--ink)}

@media (max-width:640px){
  .owl-bubble{display:none}                            /* al piccolo resta solo il gufo */
  .owl-tag{right:80px;width:48px;height:48px}
  .owl-tag img{width:36px;height:36px}
}


/* ==========================================================
   DARK MODE
   ========================================================== */
[data-theme="dark"]{
  --cream:#0e1014;          /* sfondo pagina */
  --panel:#1b202a;          /* pannelli */
  --panel-dark:#161a22;
  --slate:#0a0d12;          /* barre e bottoni scuri */
  --ink:#e9ecf1;
  --ink-soft:#98a1ad;
  --black:#04060a;
  --green:#7fc531;
  --green-dark:#9ada46;     /* usato come TESTO: in dark deve schiarire, non scurire */
}
[data-theme="dark"] .hero__title,
[data-theme="dark"] .cs__h,
[data-theme="dark"] .card__n,
[data-theme="dark"] .card__p,
[data-theme="dark"] .owl-panel__h b{color:#f2f5f8}
[data-theme="dark"] .cs__p{color:#cdd3db}
[data-theme="dark"] .cs__stat span,
[data-theme="dark"] .cs__hint,
[data-theme="dark"] .kb__hint{color:#98a1ad}
[data-theme="dark"] .cs__hint kbd{background:#252b36;border-color:#3a4250;color:#dfe4ea}
[data-theme="dark"] .eyebrow--onwhite{border-color:#39414f}
[data-theme="dark"] .btn--ghost{color:var(--ink);border-color:#454e5e}
[data-theme="dark"] .btn--ghost:hover{background:var(--ink);color:#0e1014}
[data-theme="dark"] .key{background:#262c37;color:#c7ced7;box-shadow:0 3px 0 #11151c}
[data-theme="dark"] .owl-panel{background:#161b23}
[data-theme="dark"] .owl-panel li button{background:#232935;color:#dde2e9}
[data-theme="dark"] .owl-panel__answer{background:#232935;color:#d3d9e1}
[data-theme="dark"] .ps-badge,[data-theme="dark"] .owl-tag{background:#171c24;color:var(--ink)}
[data-theme="dark"] .owl-tag__dot{border-color:#171c24}
[data-theme="dark"] .card:hover{box-shadow:0 22px 44px -20px rgba(0,0,0,.9)}
[data-theme="dark"] .cs__screen{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}


/* ==========================================================
   SFONDO ANIMATO — "magia" da videogioco
   ========================================================== */
.fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
/* solo i blocchi di contenuto salgono sopra lo sfondo animato.
   NON toccare qui splash/badge/gufo/tema: sono position:fixed e hanno gia' z-index piu' alto. */
.hero,.sec,.foot{position:relative;z-index:1}

/* nebulose che respirano */
.fx__blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.32}
.fx__blob--1{width:46vw;height:46vw;left:-10vw;top:2vh;background:var(--green);animation:blobA 22s ease-in-out infinite}
.fx__blob--2{width:38vw;height:38vw;right:-8vw;top:38vh;background:#3ec9a7;animation:blobB 27s ease-in-out infinite}
.fx__blob--3{width:34vw;height:34vw;left:32vw;bottom:-8vh;background:#b6e35c;animation:blobC 31s ease-in-out infinite}
[data-theme="dark"] .fx__blob{opacity:.22}
@keyframes blobA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,8vh) scale(1.15)}}
@keyframes blobB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7vw,-6vh) scale(1.12)}}
@keyframes blobC{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4vw,-9vh) scale(.9)}}

/* griglia arcade in prospettiva che scorre */
.fx__grid{
  position:absolute;inset:auto 0 0 0;height:42vh;opacity:.14;
  background-image:linear-gradient(var(--green) 1px,transparent 1px),
                   linear-gradient(90deg,var(--green) 1px,transparent 1px);
  background-size:60px 60px;
  transform:perspective(300px) rotateX(62deg);transform-origin:bottom center;
  animation:gridRun 3.2s linear infinite;
  mask-image:linear-gradient(to top,#000 10%,transparent 90%);
  -webkit-mask-image:linear-gradient(to top,#000 10%,transparent 90%);
}
[data-theme="dark"] .fx__grid{opacity:.2}
@keyframes gridRun{from{background-position:0 0}to{background-position:0 60px}}

/* alone che segue il cursore */
.fx__cursor{
  position:absolute;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;
  background:radial-gradient(circle,rgba(117,183,43,.20),transparent 65%);
  transition:transform .18s ease-out;opacity:0;
}
.fx__cursor.is-on{opacity:1}

/* particelle (canvas) */
#fxCanvas{position:absolute;inset:0;width:100%;height:100%}

/* comparsa delle sezioni allo scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.is-in{opacity:1;transform:none}

/* flash easter egg */
.fx__flash{position:fixed;inset:0;z-index:200;background:var(--green);opacity:0;pointer-events:none}
.fx__flash.is-flash{animation:flashIn .9s ease-out}
@keyframes flashIn{0%{opacity:.85}100%{opacity:0}}

@media (max-width:640px){
  
  .fx__blob{filter:blur(60px)}
}
@media (prefers-reduced-motion:reduce){
  .fx__blob,.fx__grid{animation:none}
  .reveal{opacity:1;transform:none}
}

/* ==========================================================
   SWITCH LIGHT / DARK — interruttore con levetta
   ========================================================== */
.theme-switch{
  position:fixed;top:20px;left:20px;z-index:121;     /* in alto a SINISTRA, lontano da gufo e tasti PS */
  background:none;border:0;padding:0;cursor:pointer;
  height:54px;display:inline-grid;place-items:center;
}
.theme-switch__track{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  width:82px;height:40px;padding:0 10px;box-sizing:border-box;
  background:var(--cream);border:1.5px dashed var(--green);border-radius:999px;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.35);
  transition:background .25s, border-color .25s, box-shadow .25s;
}
.theme-switch:hover .theme-switch__track{box-shadow:0 12px 24px -10px rgba(117,183,43,.7)}
.theme-switch:focus-visible .theme-switch__track{outline:2px solid var(--green);outline-offset:3px}

/* la levetta che scorre */
.theme-switch__knob{
  position:absolute;top:3px;left:3px;width:32px;height:32px;border-radius:50%;
  background:var(--green);box-shadow:0 3px 10px -2px rgba(0,0,0,.45);
  transition:transform .32s cubic-bezier(.4,1.6,.5,1), background .25s;   /* scatto morbido */
}
[data-theme="dark"] .theme-switch__knob{transform:translateX(42px);background:#9ada46}
.theme-switch:active .theme-switch__knob{width:38px}                      /* si schiaccia al click */

/* le due icone restano visibili sotto la levetta */
.theme-switch__ico{width:17px;height:17px;position:relative;z-index:1;transition:color .25s,opacity .25s}
.ico-sun{color:#fff;opacity:1}                       /* chiaro: levetta a sinistra, sopra il sole */
.ico-moon{color:var(--ink-soft);opacity:.75}
[data-theme="dark"] .ico-sun{color:var(--ink-soft);opacity:.75}
[data-theme="dark"] .ico-moon{color:#0e1014;opacity:1}
[data-theme="dark"] .theme-switch__track{background:#171c24}

@media (max-width:640px){
  .theme-switch{left:16px}
  .theme-switch__track{width:70px;height:36px;padding:0 8px}
  .theme-switch__knob{width:28px;height:28px;top:3px}
  [data-theme="dark"] .theme-switch__knob{transform:translateX(36px)}
}
@media (prefers-reduced-motion:reduce){
  .theme-switch__knob{transition:none}
}
