/* Patente Serena – sito catalogo libri
   Colori: blu #1E3A78 · rosso #D7262E · azzurro #DCEBFA */

@font-face{font-family:'Baloo 2';font-weight:500;font-display:swap;src:url('../fonts/baloo-2-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Baloo 2';font-weight:700;font-display:swap;src:url('../fonts/baloo-2-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Baloo 2';font-weight:800;font-display:swap;src:url('../fonts/baloo-2-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-weight:400;font-display:swap;src:url('../fonts/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-weight:700;font-display:swap;src:url('../fonts/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Gochi Hand';font-weight:400;font-display:swap;src:url('../fonts/gochi-hand-latin-400-normal.woff2') format('woff2')}

:root{
  --blu:#1E3A78; --blu-scuro:#16295A; --blu-vivo:#2348A8; --rosso:#D7262E;
  --azzurro:#DCEBFA; --azzurro-2:#9CC3F0; --carta:#F4F8FE; --grigio:#3D4F78; --bianco:#FFFFFF;
  --titoli:'Baloo 2',system-ui,sans-serif; --testo:'Atkinson Hyperlegible',system-ui,sans-serif; --mano:'Gochi Hand',cursive;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--carta);color:var(--blu);font-family:var(--testo);font-size:17px;line-height:1.55;overflow-x:hidden;transition:background .3s}
img{max-width:100%}
a{color:var(--blu)}a:hover{color:var(--rosso)}
h1,h2,h3,p{margin:0}
button{font:inherit;color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--rosso);outline-offset:3px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
@media (max-width:480px){.wrap{padding-left:16px;padding-right:16px}}

/* lettura facilitata */
body.easy{background:#FFFBEF;font-size:19px;line-height:1.85;letter-spacing:.03em;word-spacing:.12em}
body.easy p,body.easy li,body.easy label,body.easy h3{letter-spacing:.04em;word-spacing:.14em;line-height:1.85}

/* elementi ricorrenti */
.hand{font-family:var(--mano);color:var(--rosso);line-height:1.1;font-size:26px}
.hl{background:linear-gradient(transparent 56%,var(--azzurro-2) 56%,var(--azzurro-2) 92%,transparent 92%);padding:0 .12em;border-radius:4px}
.h2{font-family:var(--titoli);font-weight:800;font-size:clamp(32px,4.4vw,52px);line-height:1.02}
.paper{background-color:#fff;background-image:radial-gradient(#D5E4F7 1.6px,transparent 1.6px);background-size:22px 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:14px;border:3px solid var(--blu-scuro);background:#fff;color:var(--blu);font-weight:700;text-decoration:none;cursor:pointer;box-shadow:0 5px 0 var(--blu-scuro);transition:translate .12s ease,box-shadow .12s ease,rotate .12s ease}
.btn:hover{translate:0 -2px;rotate:-1deg;box-shadow:0 7px 0 var(--blu-scuro);color:var(--blu)}
.btn:active{translate:0 4px;rotate:0deg;box-shadow:0 1px 0 var(--blu-scuro)}
.btn:disabled,.btn[aria-disabled="true"]{cursor:default;rotate:0deg;translate:0 0;opacity:.55;box-shadow:0 5px 0 var(--blu-scuro)}
.btn-red{background:var(--rosso);color:#fff}.btn-red:hover{color:#fff}
.btn-blue{background:var(--blu);color:#fff}.btn-blue:hover{color:#fff}
.btn-lg{min-height:56px;padding:0 28px;border-radius:16px;font-size:18px}
.btn-sm{min-height:44px;padding:0 16px;border-radius:12px;font-size:15px;border-width:2px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:2px solid var(--blu-scuro);background:#fff;color:var(--blu);font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;box-shadow:0 3px 0 var(--blu-scuro);transition:translate .12s ease,box-shadow .12s ease}
.chip:hover{translate:0 -2px;box-shadow:0 5px 0 var(--blu-scuro);color:var(--blu)}
.chip[aria-pressed="true"],.chip[aria-selected="true"]{background:var(--rosso);color:#fff;rotate:-2deg}
.chip-blue[aria-pressed="true"],.chip-blue[aria-selected="true"]{background:var(--blu);color:#fff}
.card{transition:translate .2s ease,rotate .2s ease,box-shadow .2s ease}
@media (hover:hover){.card:hover{translate:0 -6px;rotate:-1deg;box-shadow:0 18px 40px rgba(30,58,120,.18)}}

/* note di lavorazione: visibili solo in bozza */
.todo{background:#FFF1A8;color:#5A4500;border:1px dashed #B58B00;border-radius:6px;padding:0 6px;font-size:.82em;font-family:var(--testo);font-weight:700;letter-spacing:0}
body:not(.review) .todo{display:none}
.review-bar{background:#FFF1A8;color:#5A4500;text-align:center;font-size:14px;font-weight:700;padding:6px 12px;border-bottom:2px dashed #B58B00}
body:not(.review) .review-bar{display:none}

/* header */
.site-header{background:#fff;border-bottom:3px solid var(--blu)}
.site-header .wrap{padding-top:12px;padding-bottom:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}
.brand{display:flex;align-items:center;gap:10px;color:var(--blu);text-decoration:none;font-family:var(--titoli);font-weight:800;font-size:24px}
.brand img{width:44px;height:44px;rotate:-6deg}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:16px;font-weight:700}
.nav a.link{color:var(--blu);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.nav a.link:hover{color:var(--rosso)}
.nav .chip-quiz{background:var(--rosso);color:#fff}
.aa{font-family:var(--titoli);font-weight:800;font-size:18px}
@media (max-width:760px){
  .nav{width:100%;flex-wrap:nowrap;overflow-x:auto;gap:6px 16px;padding:4px 2px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav > *{flex:none}
}

/* hero */
.hero{background:var(--azzurro);position:relative;overflow:hidden}
.hero .wrap{padding-top:56px;padding-bottom:110px;display:flex;flex-wrap:wrap;align-items:center;gap:40px}
.hero-text{flex:1 1 460px;min-width:0}
.pill{display:inline-block;background:#fff;border:2px solid var(--blu);border-radius:999px;padding:4px 14px;font-weight:700;font-size:14px;rotate:-2deg}
.hero h1{margin-top:18px;font-family:var(--titoli);font-weight:800;font-size:clamp(40px,6.2vw,74px);line-height:.98;letter-spacing:-.01em}
.hero-lead{margin-top:20px;font-size:20px;max-width:540px}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:30px}
.hero-cta .hand{font-size:24px;rotate:-4deg}
.rating{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:28px;background:#fff;border:2px dashed var(--blu-vivo);border-radius:14px;padding:8px 16px;rotate:1deg;font-size:15px}
.rating .stars{color:var(--rosso);font-size:20px;letter-spacing:2px}
.hero-art{flex:1 1 380px;min-width:0;position:relative;height:420px}
.cover{position:absolute;border-radius:10px;border:3px solid var(--blu-scuro);box-shadow:8px 10px 0 var(--blu-scuro);background:#fff;object-fit:cover;animation:floaty 5s ease-in-out infinite}
.cover-1{left:2%;top:70px;width:200px;height:277px;rotate:-10deg}
.cover-2{right:0;top:40px;width:200px;height:253px;rotate:9deg;animation-delay:-2s}
.cover-3{left:50%;margin-left:-118px;top:100px;width:236px;height:327px;rotate:-1deg;animation-delay:-3.5s;box-shadow:10px 12px 0 var(--blu-scuro)}
.hero-tag{position:absolute;left:50%;margin-left:40px;top:30px;rotate:6deg;background:#fff;padding:4px 12px;border-radius:10px;border:2px solid var(--rosso)}
.sticker{position:absolute;animation:wobble 4s ease-in-out infinite}
.road-band{position:absolute;left:0;right:0;bottom:0;height:70px;background:var(--blu);overflow:hidden}
.road{position:absolute;left:0;right:0;top:32px;height:6px;background:repeating-linear-gradient(90deg,#fff 0 48px,transparent 48px 96px);background-size:160px 6px;animation:roll 1.4s linear infinite}
.car{position:absolute;bottom:14px;animation:drive 9s linear infinite}
.car svg{animation:bounce .35s ease-in-out infinite;display:block}
@media (max-width:560px){
  .hero .wrap{padding-top:36px;gap:24px}
  .hero-lead{font-size:18px}
  .hero-art{height:330px;flex-basis:100%}
  .cover-1{width:140px;height:194px;top:60px;left:0}
  .cover-2{width:140px;height:177px;top:36px}
  .cover-3{width:176px;height:244px;margin-left:-88px;top:80px}
  .hero-tag{font-size:22px;margin-left:10px;top:22px}
  .hero-cta .btn{flex:1 1 100%}
}

/* sezioni */
.section{padding-top:84px;padding-bottom:90px}
.band-azzurra{background:var(--azzurro);border-top:3px solid var(--blu)}
.band-bianca{background:#fff;border-top:3px solid var(--blu);border-bottom:3px solid var(--blu)}
.band-blu{background:var(--blu);color:#fff;position:relative;overflow:hidden}
.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px}
.head-center{text-align:center;max-width:760px;margin:0 auto}
.lead{margin-top:12px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips.center{justify-content:center}
@media (max-width:560px){.section{padding-top:60px;padding-bottom:64px}}

/* catalogo */
.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:28px;margin-top:40px}
.book-card{background:#fff;border:3px solid var(--blu);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 6px 0 var(--blu);position:relative}
.book-cover{height:260px;border-bottom:3px solid var(--blu);overflow:hidden}
.book-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.book-cover.ph{padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between}
.book-cover.ph .l1{font-size:12px;font-weight:700;letter-spacing:.06em}
.book-cover.ph .l2{font-family:var(--titoli);font-weight:800;font-size:28px;line-height:1}
.book-cover.ph .l3{font-size:13px;opacity:.9}
.book-badge{position:absolute;right:12px;top:12px;rotate:5deg;font-size:13px;font-weight:700;background:#fff;color:var(--rosso);border:2px solid var(--rosso);padding:3px 10px;border-radius:999px}
.book-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.book-body h3{font-size:18px;line-height:1.3}
.book-body p{color:var(--grigio);font-size:15px;flex:1}
.book-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
@media (max-width:560px){
  .books{grid-template-columns:1fr 1fr;gap:14px}
  .book-cover{height:auto;aspect-ratio:.74}
  .book-cover.ph{padding:12px}.book-cover.ph .l2{font-size:20px}
  .book-badge{right:6px;top:6px;font-size:11px;padding:2px 8px}
  .book-body{padding:12px 12px 16px}
  .book-body h3{font-size:16px}.book-body p{font-size:14px}
  .book-actions .btn{width:100%}
}
.link-red{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--rosso);font-weight:700;font-size:15px;background:none;border:0;cursor:pointer;text-decoration:underline}

/* mappa */
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.split > .a{flex:1 1 340px;min-width:0}
.split > .b{flex:1.4 1 480px;min-width:0}
.squiggle-wrap{position:relative;display:inline-block}
.squiggle{position:absolute;left:0;bottom:-8px;width:100%;height:12px}
.js .squiggle{clip-path:inset(0 100% 0 0);transition:clip-path .9s .4s ease-out}
.js .in .squiggle{clip-path:inset(0 0 0 0)}
.map-box{border:3px solid var(--blu);border-radius:20px;padding:26px;box-shadow:10px 10px 0 var(--blu);min-height:380px;display:flex;flex-direction:column;rotate:.6deg}
.map-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.map-topic{font-size:14px;font-weight:700;background:var(--azzurro);padding:3px 10px;border-radius:8px}
.map-grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:14px;align-items:center;flex:1}
.map-grid svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.node{position:relative;border-radius:14px;padding:12px;font-size:15px;opacity:0}
.node.blu{background:var(--azzurro);border:3px solid var(--blu-vivo)}
.node.red{background:#FFE3E4;border:3px solid var(--rosso)}
.node.center{justify-self:center;width:min(100%,140px);background:var(--blu-vivo);color:#fff;border:3px solid var(--blu-scuro);border-radius:999px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--titoli);font-weight:800;font-size:20px;box-shadow:0 0 0 7px #fff;padding:6px}
.link{opacity:0}
.map-on .node{animation:pop .5s cubic-bezier(.2,.9,.3,1.4) both}
.map-on .n2{animation-delay:.55s}.map-on .n3{animation-delay:.8s}.map-on .n4{animation-delay:1.05s}.map-on .n5{animation-delay:1.3s}
.map-on .link{animation:fadein .35s ease-out forwards}
.map-on .l2{animation-delay:.3s}.map-on .l3{animation-delay:.55s}.map-on .l4{animation-delay:.8s}.map-on .l5{animation-delay:1.05s}
@media (max-width:560px){
  .map-box{padding:16px;box-shadow:6px 6px 0 var(--blu)}
  .map-grid{gap:8px}
  .node{font-size:13px;padding:8px}
  .node.center{font-size:15px}
}

/* DSA */
.dsa-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;margin-top:40px}
.dsa-card{background:#fff;border:3px solid var(--blu);border-radius:18px;padding:22px;box-shadow:0 6px 0 var(--blu)}
.dsa-card:nth-child(1){rotate:-1deg}.dsa-card:nth-child(2){rotate:1deg}.dsa-card:nth-child(3){rotate:-.5deg}.dsa-card:nth-child(4){rotate:1.5deg}
.ico{display:inline-flex;width:52px;height:52px;border-radius:14px;align-items:center;justify-content:center}
.dsa-card h3{margin:14px 0 6px;font-family:var(--titoli);font-size:22px;line-height:1.1}
.dsa-card p{font-size:15px;color:var(--grigio)}
.dsa-row{display:flex;flex-wrap:wrap;gap:32px;margin-top:56px;align-items:flex-start}
.steps-box{flex:1.4 1 460px;min-width:0;background:#fff;border:3px solid var(--blu);border-radius:22px;padding:28px;box-shadow:10px 10px 0 var(--blu)}
.steps-box h3{font-family:var(--titoli);font-size:30px;line-height:1.05}
.steps{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:18px}
.steps li{display:flex;gap:16px;align-items:flex-start}
.steps .num{flex:none;width:46px;height:46px;border-radius:999px;color:#fff;border:3px solid var(--blu-scuro);display:flex;align-items:center;justify-content:center;font-family:var(--titoli);font-weight:800;font-size:22px;line-height:1;letter-spacing:0}
.steps strong{font-size:18px}
.steps p{margin-top:2px;color:var(--grigio)}
.dsa-side{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:24px}
.box-blu{background:var(--blu);color:#fff;border:3px solid var(--blu-scuro);border-radius:20px;padding:24px;rotate:1deg}
.box-blu h3{margin:4px 0 8px;font-family:var(--titoli);font-size:26px;line-height:1.05}
.box-dash{background:#fff;border:3px dashed var(--rosso);border-radius:20px;padding:22px;rotate:-1deg}
.box-dash h3,.box-easy h3{font-family:var(--titoli);font-size:22px;line-height:1.1;margin-bottom:6px}
.box-easy{background:#fff;border:3px solid var(--blu);border-radius:20px;padding:22px;box-shadow:0 6px 0 var(--blu)}
.switch{position:relative;flex:none;width:72px;height:42px;border-radius:999px;border:3px solid var(--blu-scuro);cursor:pointer;padding:0;background:var(--azzurro);transition:background .2s}
.switch .knob{position:absolute;top:3px;left:3px;width:30px;height:30px;border-radius:999px;border:2px solid var(--blu-scuro);background:var(--rosso);transition:left .25s cubic-bezier(.3,1.4,.5,1),background .2s}
.switch[aria-pressed="true"]{background:var(--blu-vivo)}
.switch[aria-pressed="true"] .knob{left:35px;background:#fff}
@media (max-width:560px){.steps-box{padding:20px;box-shadow:6px 6px 0 var(--blu)}.steps-box h3{font-size:26px}}

/* sfogliabile */
.flip-stage{perspective:1800px;margin-top:44px;padding-bottom:10px}
.flipbook{position:relative;width:min(100%,780px);margin:0 auto;aspect-ratio:1.46;transition:translate .9s cubic-bezier(.6,.05,.3,1)}
.leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.6,.05,.3,1),z-index 0s .45s}
.leaf.flipped{transform:rotateY(-180deg)}
.face{position:absolute;inset:0;padding:clamp(12px,2.4vw,28px);display:flex;flex-direction:column;justify-content:space-between;gap:8px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:3px solid var(--blu);color:var(--blu)}
.face.front{background:linear-gradient(90deg,rgba(30,58,120,.16),rgba(30,58,120,0) 14%),#fff;border-radius:0 12px 12px 0}
.face.back{background:linear-gradient(270deg,rgba(30,58,120,.16),rgba(30,58,120,0) 14%),#fff;border-radius:12px 0 0 12px;transform:rotateY(180deg)}
.face.img{padding:0}
.face.img button{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.face img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.face .k{font-size:12px;font-weight:700;letter-spacing:.06em;opacity:.8}
.face .t{font-family:var(--titoli);font-weight:800;font-size:clamp(16px,2.6vw,30px);line-height:1.05}
.face.cover-face .t{font-size:clamp(20px,3.6vw,44px);line-height:.95}
.face .b{font-size:clamp(11px,1.4vw,14px);opacity:.85}
.leaf:first-child .face.front{box-shadow:8px 10px 0 var(--blu-scuro)}
.flip-ctrl{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;margin-top:30px}
.flip-ctrl .hand{font-size:24px;color:var(--blu);min-width:150px;text-align:center}
.flip-hint{text-align:center;margin-top:10px;font-size:14px;color:var(--grigio)}
.lightbox{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh}
.lightbox::backdrop{background:rgba(22,41,90,.85)}
.lightbox img{display:block;max-width:96vw;max-height:88vh;border:3px solid #fff;border-radius:10px;background:#fff}
.lightbox form{text-align:center;margin-top:10px}

/* mini giochi */
.band-blu .head-center .hand,.band-blu .accent{color:var(--azzurro-2)}
.band-blu .lead{color:var(--azzurro)}
.game-sticker{right:5%;top:46px;opacity:.9}
.game-panel{margin-top:28px;background:#fff;color:var(--blu);border:3px solid var(--blu-scuro);border-radius:24px;padding:28px;box-shadow:10px 10px 0 var(--blu-scuro)}
.game-panel h3{font-family:var(--titoli);font-size:32px;line-height:1}
@media (max-width:560px){.game-panel{padding:18px;box-shadow:6px 6px 0 var(--blu-scuro)}.game-panel h3{font-size:27px}.game-sticker{display:none}}
.tag-red{display:inline-block;rotate:-4deg;background:var(--rosso);color:#fff;font-weight:800;font-family:var(--titoli);font-size:18px;padding:2px 14px;border-radius:8px;border:2px solid var(--blu-scuro)}
.plan{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.plan > .a{flex:1 1 340px;min-width:0}
.plan > .b{flex:1.2 1 380px;min-width:0}
.field-label{display:block;font-weight:700;font-size:15px}
.input{width:100%;min-height:52px;padding:0 16px;border-radius:14px;border:3px solid var(--blu);font:inherit;background:#fff;color:var(--blu)}
input[type="date"].input{width:auto;max-width:100%;min-height:54px}
.plan-empty{background:#fff;border:3px dashed var(--blu-vivo);border-radius:18px;padding:28px;text-align:center}
.plan-card{background:#fff;border:3px solid var(--blu);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:14px;animation:rise .35s ease-out both}
.plan-title{font-family:var(--titoli);font-weight:800;font-size:28px;line-height:1}
.plan-bar{display:flex;height:22px;border-radius:999px;overflow:hidden;border:2px solid var(--blu-scuro)}
.phase{display:flex;gap:12px;align-items:flex-start}
.phase .dot{flex:none;width:18px;height:18px;margin-top:4px;border-radius:6px;border:2px solid var(--blu-scuro)}
.phase .range{color:var(--grigio);font-size:15px}
.phase p{margin-top:2px;font-size:15px;color:var(--grigio)}
.form-row{display:flex;flex-wrap:wrap;gap:12px}
.form-row .input{flex:1 1 200px;width:auto}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--grigio)}
.consent input{flex:none;width:22px;height:22px;margin-top:2px;accent-color:var(--rosso)}
.form-msg{font-weight:700;color:var(--blu-vivo);animation:rise .35s ease-out both}
.form-msg.err{color:var(--rosso)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.quiz{max-width:820px;margin:0 auto}
.track{position:relative;height:40px;background:var(--grigio);border-radius:10px;margin-top:22px}
.track .dash{position:absolute;left:10px;right:10px;top:17px;height:4px;background:repeating-linear-gradient(90deg,#fff 0 18px,transparent 18px 32px)}
.track .tcar{position:absolute;top:7px;left:0;translate:0 0;transition:left .6s cubic-bezier(.4,1.3,.5,1)}
.track .goal{position:absolute;right:-6px;top:-18px;font-size:22px}
.q-num{margin-top:22px;font-size:15px;font-weight:700;color:var(--rosso)}
.q-text{margin-top:6px;font-family:var(--titoli);font-size:26px;font-weight:700;line-height:1.2}
.q-row{position:relative;display:flex;flex-wrap:wrap;gap:16px;margin-top:24px}
.q-btn{min-height:60px;min-width:150px;padding:0 30px;border-radius:16px;font-family:var(--titoli);font-size:22px;font-weight:800;flex:1 1 140px;max-width:240px}
.q-btn.right{background:#DDF3DF;border-color:#1F7A33;color:#145222;opacity:1}
.q-btn.wrong{background:#FFE3E4;border-color:var(--rosso);color:#8C1218;opacity:1}
.feedback{animation:rise .35s ease-out both;margin-top:20px;border-radius:16px;padding:18px 20px;border:3px solid}
.feedback.ok{background:#EEF9EF;border-color:#1F7A33;color:#145222}
.feedback.ko{background:#FFF0F0;border-color:var(--rosso);color:#8C1218}
.feedback strong.t{font-family:var(--titoli);font-size:24px;display:block}
.shake{animation:shake .45s ease-in-out}
.bit{position:absolute;left:25%;top:50%;width:12px;height:12px;border-radius:3px;animation:burst .9s cubic-bezier(.1,.7,.3,1) forwards;pointer-events:none}
.result-title{font-family:var(--titoli);font-weight:800;font-size:38px;line-height:1;margin-top:22px}
.gift{margin-top:22px;border:3px dashed var(--blu-vivo);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:12px;position:relative}
.gift .tag-red{position:absolute;right:14px;top:-16px;rotate:6deg}
.gift-title{font-family:var(--titoli);font-size:22px;line-height:1.15;font-weight:800}
.topics{display:flex;flex-wrap:wrap;gap:8px}
.topics span{font-size:14px;font-weight:700;background:var(--azzurro);border:2px solid var(--blu-vivo);padding:4px 12px;border-radius:999px}
.linkish{min-height:44px;padding:0 4px;border:0;background:none;color:var(--blu);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.small{font-size:13px;color:var(--grigio)}

/* video */
.videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;margin-top:36px}
.video-card{background:#fff;border:3px solid var(--blu);border-radius:18px;padding:14px;box-shadow:0 6px 0 var(--blu)}
.video-card:nth-child(odd){rotate:-1deg}.video-card:nth-child(even){rotate:1deg}
.video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:var(--blu-scuro);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;padding:0}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{width:66px;height:66px;border-radius:999px;background:var(--rosso);border:3px solid #fff;display:flex;align-items:center;justify-content:center}
.video-card .hand{display:block;margin-top:12px;font-size:22px;color:var(--blu)}

/* footer */
.site-footer{background:var(--blu);color:var(--azzurro);font-size:14px}
.site-footer .wrap{padding-top:36px;padding-bottom:36px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}
.site-footer a{color:var(--azzurro);min-height:44px;display:inline-flex;align-items:center}
.site-footer nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.site-footer .legal{flex-basis:100%;opacity:.85;font-size:13px}

/* animazioni */
@keyframes roll{from{background-position:0 0}to{background-position:-160px 0}}
@keyframes drive{from{left:-110px}to{left:100%}}
@keyframes bounce{0%,100%{translate:0 0}50%{translate:0 -3px}}
@keyframes floaty{0%,100%{translate:0 0}50%{translate:0 -12px}}
@keyframes wobble{0%,100%{rotate:-8deg}50%{rotate:8deg}}
@keyframes pop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fadein{to{opacity:1}}
@keyframes shake{0%,100%{translate:0 0}20%{translate:-9px 0}40%{translate:9px 0}60%{translate:-5px 0}80%{translate:5px 0}}
@keyframes burst{0%{opacity:1;transform:translate(0,0) scale(1) rotate(0)}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.5) rotate(220deg)}}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease-out,transform .6s ease-out}
.js .reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .road,.car,.car svg,.cover,.sticker,.feedback,.shake,.plan-card,.form-msg{animation:none}
  .map-on .node,.map-on .link{animation:none}
  .node,.link{opacity:1}
  .js .squiggle{clip-path:none;transition:none}
  .bit{display:none}
  .car{left:12%}
  .js .reveal{opacity:1;transform:none;transition:none}
  .leaf,.flipbook,.track .tcar{transition:none}
}
