/* Card delle novità: all'apertura della home, una volta per versione (sito/js/novita.js). */
.nov{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;background:rgba(10,12,20,.42);animation:nov-velo .35s ease both}
[data-tono=scuro] .nov{background:rgba(0,0,0,.62)}
.nov.via{animation:nov-velo-via .24s ease both}
@keyframes nov-velo{from{opacity:0}}
@keyframes nov-velo-via{to{opacity:0}}
.nov__card{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--sup);color:var(--t);border:1px solid var(--bordo);border-radius:16px;box-shadow:0 1px 2px rgba(20,22,29,.05),0 24px 64px -16px rgba(20,22,29,.3);animation:nov-card .5s cubic-bezier(.2,.8,.2,1) both}
[data-tono=scuro] .nov__card{background:#111113;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 24px 64px -16px rgba(0,0,0,.8)}
.nov.via .nov__card{animation:nov-card-via .24s ease both}
@keyframes nov-card{from{opacity:0;transform:translateY(16px) scale(.97)}}
@keyframes nov-card-via{to{opacity:0;transform:translateY(8px) scale(.98)}}

.nov__scena{position:relative;height:248px;background:var(--sup2);border-bottom:1px solid var(--bordo);overflow:hidden;border-radius:16px 16px 0 0}
.nov__et{position:absolute;top:18px;left:20px;z-index:2;font-size:12.5px;font-weight:500;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.nov__x{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;border-radius:999px;border:1px solid var(--bordo);background:var(--sup);color:var(--t2);cursor:pointer;display:grid;place-items:center}
.nov__x:hover{color:var(--t)}
.nov__corpo{padding:24px 28px 8px;display:grid;gap:8px;min-height:152px}
.nov__corpo h2{margin:0;font-size:22px;line-height:1.25;letter-spacing:-.02em;font-weight:600;text-wrap:balance}
.nov__corpo p{margin:0;color:var(--t2);font-size:15.5px;line-height:1.55}
.nov__news{margin-top:6px!important;font-size:14.5px!important}.nov__news a{color:var(--acc);font-weight:500}
.nov__corpo code{font:500 13.5px "IBM Plex Mono",ui-monospace,monospace;color:var(--acc);background:var(--acc-f);padding:1px 6px;border-radius:6px}
.nov__piede{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 28px 24px;flex-wrap:wrap}
.nov__punti{display:flex;gap:6px}
.nov__punti button{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.nov__punti button::before{content:"";width:7px;height:7px;border-radius:999px;background:var(--bordo2);transition:width .3s,background .3s}
.nov__punti button[aria-current=true]::before{width:20px;background:var(--t)}
.nov__az{display:flex;gap:8px;margin-left:auto}
.nov__bt{font-size:14.5px;font-weight:500;border-radius:999px;padding:10px 18px;min-height:40px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.nov__bt--1{background:var(--btn);color:var(--su-btn);border:1px solid var(--btn)}
.nov__bt--2{background:none;color:var(--t);border:1px solid var(--bordo2)}
.nov__passo{animation:nov-passo .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes nov-passo{from{opacity:0;transform:translateX(14px)}}
@keyframes nov-su{to{opacity:1;transform:none}}
@keyframes nov-riga{to{transform:scaleX(1)}}
@keyframes nov-pop{to{opacity:1;transform:none}}
@keyframes nov-giro{to{transform:rotate(360deg)}}

/* la settimana */
.nov-sett{position:absolute;inset:52px 20px 20px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.nov-g{background:var(--sup);border:1px solid var(--bordo);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0;opacity:0;transform:translateY(8px);animation:nov-su .45s cubic-bezier(.2,.8,.2,1) forwards}
.nov-g b{font-size:12.5px;font-weight:600;color:var(--t2)}
.nov-g b span{color:var(--t3);font-weight:500}
.nov-bl{display:block;height:14px;border-radius:5px;background:var(--sup3);transform-origin:left;transform:scaleX(0);animation:nov-riga .5s cubic-bezier(.2,.8,.2,1) forwards}
.nov-bl.aula{background:var(--acc-f);box-shadow:inset 3px 0 0 var(--acc)}
.nov-term{margin-top:auto;border-radius:7px;background:var(--av-f);color:var(--av);font-size:11px;line-height:1.3;font-weight:600;padding:6px 7px;opacity:0;transform:scale(.9);animation:nov-pop .5s cubic-bezier(.3,1.5,.5,1) forwards}
.nov-term span{display:block;font-weight:500}

/* dalla frase al dato */
.nov-estr{position:absolute;inset:52px 20px 20px;display:grid;grid-template-rows:auto auto 1fr;gap:10px}
.nov-frase{background:var(--sup);border:1px solid var(--bordo);border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.5;color:var(--t2)}
.nov-frase small{display:block;font-size:11.5px;color:var(--t3);margin-bottom:4px}
.nov-frase mark{background:none;color:inherit;border-radius:4px;padding:0 1px;transition:background .4s,color .4s}
.nov-frase mark.on{background:var(--acc-f);color:var(--acc)}
.nov-fr{justify-self:center;font:500 12px "IBM Plex Mono",ui-monospace,monospace;color:var(--t3);opacity:0;animation:nov-su .4s .3s forwards}
.nov-campi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.nov-c{background:var(--sup);border:1px solid var(--bordo);border-radius:10px;padding:9px 11px;min-width:0;opacity:0;transform:translateY(6px)}
.nov-c.on{animation:nov-su .45s cubic-bezier(.2,.8,.2,1) forwards}
.nov-c i{display:block;font:400 11px "IBM Plex Mono",ui-monospace,monospace;color:var(--t3);font-style:normal}
.nov-c b{display:block;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.nov-c.scad b{color:var(--av)}

/* la chat */
.nov-chat{position:absolute;inset:52px 20px 16px;display:flex;flex-direction:column;gap:8px;justify-content:flex-end}
.nov-dom{align-self:flex-end;background:var(--sup3);border-radius:16px 16px 4px 16px;padding:8px 13px;font-size:13.5px;max-width:80%;opacity:0;animation:nov-su .4s .2s forwards}
.nov-str{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--t3);border:1px solid var(--bordo);background:var(--sup);border-radius:999px;padding:5px 11px;opacity:0;animation:nov-su .4s .7s forwards}
.nov-str code{font:500 12px "IBM Plex Mono",ui-monospace,monospace;color:var(--acc)}
.nov-giro{width:12px;height:12px;border-radius:999px;border:2px solid var(--bordo2);border-top-color:var(--acc);animation:nov-giro .8s linear infinite}
.nov-str.fatto .nov-giro{animation:none;border-color:var(--ok);background:var(--ok);box-shadow:inset 0 0 0 2px var(--sup)}
.nov-risp{background:var(--sup);border:1px solid var(--bordo);border-radius:12px;padding:10px 13px;font-size:13px;display:grid;gap:6px;opacity:0;animation:nov-su .4s 1.9s forwards}
.nov-risp p{margin:0;color:var(--t2)}
.nov-chips{display:flex;flex-wrap:wrap;gap:6px}
.nov-chips span{font-size:12px;font-weight:500;border:1px solid var(--bordo2);border-radius:999px;padding:3px 10px;opacity:0;transform:scale(.9);animation:nov-pop .4s cubic-bezier(.3,1.5,.5,1) forwards}

/* il dossier del tema */
.nov-tema{position:absolute;inset:52px 20px 20px;display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.nov-scelta,.nov-dos{background:var(--sup);border:1px solid var(--bordo);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;min-width:0}
.nov-scelta small,.nov-dos small{font-size:11.5px;color:var(--t3);display:flex;justify-content:space-between;align-items:center}
.nov-op{display:flex;gap:9px;align-items:flex-start;font-size:11.5px;color:var(--t3);opacity:0;transform:translateY(6px);animation:nov-su .4s cubic-bezier(.2,.8,.2,1) forwards}
.nov-op b{display:block;font-size:13px;font-weight:600;color:var(--t)}
.nov-ck{flex:none;width:15px;height:15px;margin-top:2px;border-radius:4px;border:1.5px solid var(--bordo2);transition:background .25s,border-color .25s}
.nov-ck.on{background:var(--t);border-color:var(--t);box-shadow:inset 0 0 0 3px var(--sup)}
.nov-sez{font-size:12.5px;font-weight:500;border-radius:6px;padding:5px 8px;background:var(--sup2);box-shadow:inset 3px 0 0 var(--acc);opacity:0;transform:translateX(8px)}
.nov-sez.on{animation:nov-su .4s cubic-bezier(.2,.8,.2,1) forwards}
.nov-pdf{font-size:10.5px;font-weight:600;color:var(--acc);background:var(--acc-f);border-radius:5px;padding:2px 6px;opacity:0;transform:scale(.8)}
.nov-pdf.on{animation:nov-pop .4s cubic-bezier(.3,1.5,.5,1) forwards}

/* da telefono: scene più strette, si tolgono i dettagli che non ci stanno */
@media (max-width:760px){
  .nov{padding:12px}
  .nov__scena{height:240px}
  .nov__corpo{padding:20px 20px 4px;min-height:0}
  .nov__corpo h2{font-size:20px}
  .nov__corpo p{font-size:15px}
  .nov__piede{padding:14px 20px 20px}
  .nov-sett,.nov-estr,.nov-tema,.nov-chat{inset:62px 14px 14px}
  .nov-sett{grid-template-columns:repeat(3,1fr)}
  .nov-g:nth-child(n+4){display:none}
  .nov-frase{font-size:12.5px;padding:10px 12px}
  .nov-frase small,.nov-fr{display:none}
  .nov-c{padding:7px 8px}.nov-c b{font-size:11.5px;overflow-wrap:normal}
  .nov-chat{justify-content:flex-start;gap:7px}
  .nov-dom{font-size:13px}
  .nov-str code{display:none}
  .nov-risp{padding:9px 12px}
  .nov-chips span:nth-child(n+3){display:none}
  .nov-tema{grid-template-columns:1fr}
  .nov-dos{display:none}
}

@media (prefers-reduced-motion:reduce){
  .nov,.nov *{animation-duration:.001ms!important;animation-delay:0ms!important;transition:none!important}
  .nov-giro{animation:none!important}
}
