/* ===== Pagina Materiali ===== */
.mx{padding:34px 0 90px;background:radial-gradient(760px 420px at 85% 0%,rgba(255,107,0,.2),transparent 62%),transparent}
.mx-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:40px;align-items:center;margin-bottom:46px}
.mx-t h1{font-size:clamp(3.4rem,10vw,6.6rem);line-height:.88;margin:12px 0 16px}
.mx-t p{color:var(--muted);font-size:1.06rem;max-width:50ch;margin:0}
.mx-code{position:relative;padding:26px 26px 22px;border-radius:26px;box-shadow:var(--shadow-up);overflow:visible;isolation:isolate}
.mx-code::before{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(-45deg,rgba(255,107,0,.06) 0 12px,transparent 12px 24px);z-index:-1}
.mx-code h2{font-size:clamp(1.7rem,4vw,2.3rem);margin:8px 0 16px;padding-right:96px}
.mx-code form{display:flex;gap:8px;padding:6px;border-radius:999px;background:var(--band);border:2px dashed var(--line);transition:border-color .3s,box-shadow .3s}
.mx-code form:focus-within{border-color:var(--orange);border-style:solid;box-shadow:0 0 0 5px rgba(255,107,0,.15)}
.mx-code input{flex:1;min-width:0;border:0;background:transparent;font:800 1.15rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);padding:.55em .9em}
.mx-code input:focus{outline:none}
.mx-code input::placeholder{color:var(--muted);opacity:.6;font-weight:700}
.mx-code .btn:disabled{opacity:.7}
.mx-msg{min-height:1.3em;margin:10px 4px 0;font-size:.88rem;font-weight:700;color:var(--muted)}
.mx-msg.ok{color:var(--ok)}.mx-msg.bad{color:var(--bad)}
.mx-lumi{position:absolute;right:14px;top:-58px;width:112px;animation:mxfloat 4.5s ease-in-out infinite;filter:drop-shadow(0 16px 18px rgba(0,0,0,.25));pointer-events:none}
@keyframes mxfloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(3deg)}}
@keyframes mxshake{0%,100%{transform:none}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}}
@keyframes mxglow{0%{box-shadow:0 0 0 0 rgba(255,107,0,.6),var(--shadow-up)}100%{box-shadow:0 0 0 22px rgba(255,107,0,0),var(--shadow-up)}}

.mx-sh{font-size:clamp(1.5rem,3.6vw,2.1rem);margin:0 0 16px;display:flex;align-items:baseline;gap:10px}
.mx-new{margin-bottom:46px}
.mx-allh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px;margin-bottom:16px}
.mx-allh .mx-sh{margin:0}
.mx-filt{display:flex;flex-wrap:wrap;gap:8px}
.mx-filt button{font:700 .84rem var(--f-body);color:var(--fg);background:transparent;border:1.5px solid var(--line);border-radius:999px;padding:.45em 1em;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.mx-filt button[aria-pressed="true"]{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}
.mx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}

.mxc{display:flex;flex-direction:column;overflow:hidden;border-radius:24px;scroll-margin-top:110px;transition:transform .35s var(--spring),box-shadow .35s}
.mxc:hover{transform:translateY(-4px);box-shadow:var(--shadow-up)}
.mxc.on,.mxc.flash{box-shadow:0 0 0 4px var(--orange),var(--shadow-up)}
.mxc[hidden]{display:none}
.mxc-cov{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,#FF6B00,#FFB547)}
.mxc.free .mxc-cov{background:linear-gradient(135deg,#12A37A,#7FE3C2)}
.mxc-cov img{width:100%;height:100%;object-fit:cover;display:block}
.paper{position:absolute;left:12%;right:12%;top:14%;bottom:-12%;background:#fff;border-radius:12px 12px 0 0;box-shadow:0 18px 30px -12px rgba(0,0,0,.35);padding:14px 16px;transform:rotate(-2.5deg);transition:transform .5s var(--spring)}
.mxc:hover .paper{transform:rotate(0) translateY(-4px)}
.pp-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.pp-h b{font-family:var(--f-display);font-weight:400;font-size:.8rem;letter-spacing:.06em;padding:.15em .5em;border-radius:5px;background:#0A0A0A;color:#fff}
.pp-h span{font-size:1.3rem}
.paper ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.paper li{font-size:.72rem;font-weight:600;color:#1a1a1a;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-bottom:6px;border-bottom:1px solid #eee}
.paper li.bar{height:8px;width:var(--w);border-radius:4px;background:#d9d9d4;border:0;padding:0}
.paper li.bl{filter:blur(4px);opacity:.75;user-select:none;transition:filter .8s,opacity .8s}
.mxc.free .paper li.bl{filter:none;opacity:1;-webkit-mask-image:linear-gradient(#000,transparent);mask-image:linear-gradient(#000,transparent)}
.mxc.mxbig .paper li{font-size:.86rem}
.mxc-badge{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;padding:.4em .75em;border-radius:999px;background:#0A0A0A;color:#fff;font-size:.74rem;font-weight:800;letter-spacing:.04em;z-index:2}
.mxc-badge i{font-style:normal}.mxc-badge em{font-style:normal}
.mxc.free .mxc-badge{background:#fff;color:#0A0A0A}
.mxc .ok{display:none}
.mxc.unlocked .lk{display:none}.mxc.unlocked .ok{display:inline}
.mxc.unlocked .mxc-badge{background:var(--ok);color:#fff}
.mxc.unlocked .mxc-lock{display:none}
.mxc.just .mxc-badge{animation:mxpop .6s var(--spring)}
.mxc.just .mxc-f{animation:mxup .6s var(--ease) both}
@keyframes mxpop{0%{transform:scale(.4)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
@keyframes mxup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mxc-b{display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px;flex:1}
.mxc-b .mc-t{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--orange)}
.mxc-b h3{font-family:var(--f-body);text-transform:none;font-weight:800;font-size:1.15rem;line-height:1.2;letter-spacing:0}
.mxc-d{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}
.mxc-lock{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:4px}
.vhint{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:14px;background:var(--orange-soft);font-size:.88rem;line-height:1.4}
.vhint>span:first-child{font-size:1.15rem;line-height:1}
.mxc-acts{display:flex;flex-wrap:wrap;gap:8px}
.mxc-f{margin-top:auto}
.mxc-f .btn{width:100%}
.mxc .mc-err{color:var(--bad);font-size:.86rem;font-weight:700;margin:0}
.mxc.mxbig{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.mxc.mxbig .mxc-cov{aspect-ratio:auto;min-height:280px}
.mxc.mxbig .mxc-b{padding:28px 30px;justify-content:center}
.mxc.mxbig h3{font-size:1.6rem}
.mxc.mxbig .mxc-lock,.mxc.mxbig .mxc-f{margin-top:8px}
.mxc.mxbig .mxc-f .btn{width:auto}
.mx-empty{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;align-items:center;padding:28px 32px;border-radius:24px}
.mx-empty img{width:140px;animation:mxfloat 5s ease-in-out infinite}
.mx-empty h2{font-size:clamp(1.6rem,4vw,2.4rem);margin:8px 0 10px}
.mx-empty p{margin:0;max-width:56ch}
@media (max-width:620px){.mx-empty{grid-template-columns:1fr;text-align:center;padding:24px 20px;gap:10px}.mx-empty img{width:110px;margin:0 auto}}

/* Spegnino esce da dietro il box del codice */
.mx-codew{position:relative;isolation:isolate}
@media (min-width:901px){.mx-codew{margin-top:96px}}
.mx-codew>.mx-code{z-index:1}
.mx-sp{position:absolute;left:30px;bottom:calc(100% - 1px);width:86px;height:auto;z-index:0;transform:translateY(105%);transition:transform .5s var(--spring);pointer-events:none}
.mx-spb{position:absolute;left:124px;bottom:calc(100% + 46px);z-index:2;padding:.5em .8em;border-radius:14px 14px 14px 4px;background:#fff;color:#0A0A0A;border:1px solid #E4E4E1;box-shadow:0 8px 22px -8px rgba(0,0,0,.5);font-weight:800;font-size:.84rem;white-space:nowrap;opacity:0;transform:scale(.6);transform-origin:0 100%;transition:transform .35s var(--spring),opacity .2s;pointer-events:none}
.mx-codew.sp .mx-sp{transform:none}
.mx-codew.sp .mx-spb{opacity:1;transform:none;transition-delay:.3s}
.mx-codew.shake form{animation:mxshake .45s}
.mx-codew.glow .mx-code{animation:mxglow 1.4s ease-out}
.cz{display:inline-block;filter:blur(4px);user-select:none;background:rgba(10,10,10,.08);border-radius:4px;padding:0 .15em}

/* finestra di sblocco */
.mx-ov{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s}
.mx-ov.in{opacity:1}
.mx-ov[hidden]{display:none}
.mx-ovc{position:relative;width:min(420px,100%);padding:92px 26px 24px;border-radius:28px;background:#fff;color:#0A0A0A;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);transform:scale(.7) translateY(30px);transition:transform .5s var(--spring)}
.mx-ov.in .mx-ovc{transform:none}
.mx-ovc .label{color:#FF6B00}
.mx-ovc h2{font-size:clamp(2.4rem,9vw,3.2rem);margin:6px 0 18px;color:#0A0A0A}
.mx-ovl{position:absolute;left:50%;top:-74px;width:150px;margin-left:-75px;animation:mxjump 1s var(--spring) .15s both}
@keyframes mxjump{0%{transform:translateY(60px) scale(.4);opacity:0}55%{transform:translateY(-16px) scale(1.08);opacity:1}100%{transform:none;opacity:1}}
.mx-ovlist{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.mx-ovi{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 16px;border-radius:16px;background:#F3F3F1;text-align:left}
.mx-ovi b{font-size:.95rem;line-height:1.25}
.mx-ovc .more{background:none;border:0;cursor:pointer;font:700 .92rem var(--f-body);color:#62625E;margin-top:4px}
.mx-conf{position:absolute;left:50%;top:36%;width:0;height:0;pointer-events:none}
.mx-conf i{position:absolute;width:9px;height:14px;border-radius:2px;opacity:0;animation:mxconf 1.4s cubic-bezier(.15,.7,.3,1) var(--d) forwards}
@keyframes mxconf{0%{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 340px)) rotate(var(--r))}}
@media (prefers-reduced-motion:reduce){.mx-lumi,.mx-ovl{animation:none}.mx-ovc{transition:none}}

@media (max-width:900px){
 .mx-hero{grid-template-columns:minmax(0,1fr);gap:70px;margin-bottom:38px}
 .mxc.mxbig{grid-template-columns:minmax(0,1fr)}
 .mxc.mxbig .mxc-cov{aspect-ratio:16/9;min-height:0}
 .mxc.mxbig .mxc-b{padding:20px 22px 22px}
 .mxc.mxbig .mxc-f .btn{width:100%}
}
@media (max-width:620px){
 .mx{padding-top:24px}
 .mx-code{padding:22px 18px 18px}
 .mx-code h2{padding-right:84px}
 .mx-lumi{width:92px;top:-50px;right:8px}
 .mx-sp{width:74px;left:20px}
 .mx-spb{left:102px;bottom:calc(100% + 38px)}
 .mx-code form{flex-direction:column;border-radius:20px}
 .mx-code input{text-align:center}
}
