/* ============ LINGUAVVENTURA — tema "gioco": cielo, colline, tasti 3D ============ */
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/baloo-2-500.woff2) format('woff2');}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/baloo-2-600.woff2) format('woff2');}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/baloo-2-700.woff2) format('woff2');}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/baloo-2-800.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/nunito-400.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/nunito-600.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/nunito-700.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/nunito-800.woff2) format('woff2');}

:root{
  --ink:#24407F; --ink-dark:#182B5C; --ink-soft:#5B6F9E;
  --coral:#FF5A3C; --coral-dark:#C93D22;
  --grass:#2DB56C; --grass-dark:#1B8A4E;
  --sun:#FFC83D; --sun-dark:#D99A00;
  --plum:#8B5CF6; --blue:#3D7BF5;
  --charcoal:#1E2A47; --charcoal-soft:#5A6787;
  --card-bg:#FFFFFF; --paper:#EAF7FF; --paper-line:#CFE0F5;
  --shadow-hard:0 5px 0 rgba(24,43,92,.22);
  --radius-sticker:1.4rem;
  --c:#3D7BF5; --cd:#2A58BF;               /* colore del "mondo" corrente */
}
/* colori dei mondi: si applicano a schede, chip, intestazioni */
.w-gram{--c:#3D7BF5;--cd:#2A58BF;}
.w-orto{--c:#FF5A3C;--cd:#C93D22;}
.w-less{--c:#2DB56C;--cd:#1B8A4E;}
.w-class{--c:#8B5CF6;--cd:#6237C9;}
.w-teach{--c:#4B6BA8;--cd:#33508A;}
.w-prog{--c:#F5A623;--cd:#BF7D0A;}

*{box-sizing:border-box;}
html{font-size:clamp(16px, .55vw + 11px, 22px);}   /* si ingrandisce da solo su LIM e schermi grandi */
html,body{margin:0;padding:0;}
body{
  min-height:100vh;position:relative;
  font-family:'Nunito',system-ui,sans-serif;font-size:1rem;line-height:1.45;color:var(--charcoal);
  background:linear-gradient(180deg,#63C9FF 0,#A8E2FF 260px,#DDF3FF 560px,#FFF4D6 100%) fixed;
}
/* nuvole e colline decorative, fisse dietro ai contenuti */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(closest-side,rgba(255,255,255,.9),rgba(255,255,255,0)) 6% 9% / 300px 120px no-repeat,
    radial-gradient(closest-side,rgba(255,255,255,.75),rgba(255,255,255,0)) 68% 5% / 360px 130px no-repeat,
    radial-gradient(closest-side,rgba(255,255,255,.65),rgba(255,255,255,0)) 94% 28% / 260px 100px no-repeat;
}
body::after{
  content:"";position:fixed;left:0;right:0;bottom:0;height:5.5rem;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0 120V66C140 22 300 30 450 62S760 108 900 62 1110 22 1200 54V120Z' fill='%2384D98F'/%3E%3Cpath d='M0 120V96C200 56 390 66 570 92S920 122 1200 82V120Z' fill='%2355BF6B'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
}
h1,h2,h3,.display{font-family:'Baloo 2',system-ui,sans-serif;color:var(--ink);margin:0 0 .3em 0;line-height:1.15;}
h1{font-size:clamp(1.8rem,5vw,2.6rem);}
h2{font-size:clamp(1.5rem,3.4vw,2.1rem);}
h3{font-size:1.25rem;}
p{margin:.4em 0;}
button{font-family:inherit;}
.hint{color:var(--charcoal-soft);font-size:.92rem;font-weight:700;margin-top:.4rem;}

/* ---- struttura ---- */
.topbar,.wrap,.toast{position:relative;z-index:1;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1240px;margin:0 auto;padding:.9rem 1.4rem 0;}
.wrap{max-width:1240px;margin:0 auto;padding:1rem 1.4rem 7rem;}
.wrap.view-settings,.wrap.view-dettatoChoose,.wrap.view-dettatoResult,.wrap.view-classStats,
.wrap.view-ortografiaMistaChoose,.wrap.view-nickname,.wrap.view-roster,.wrap.view-pin{max-width:58rem;}
.wrap.view-home,.wrap.view-world,.wrap.view-teacher,.wrap.view-timer,.wrap.view-picker,.wrap.view-pin{padding-top:.6rem;padding-bottom:1rem;}   /* home e mondi devono stare in una videata */

/* ---- barra in alto (HUD) ---- */
.brand{font-family:'Baloo 2';font-weight:800;font-size:1.9rem;color:#fff;text-shadow:0 3px 0 rgba(24,43,92,.4);}
.stats{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end;}
.pill{
  background:#fff;border:3px solid var(--ink);border-radius:999px;padding:.15rem .9rem;white-space:nowrap;
  font-family:'Baloo 2';font-weight:800;font-size:1.05rem;color:var(--ink);box-shadow:0 3px 0 rgba(24,43,92,.25);
}
button.pill{cursor:pointer;}
.pill.xp{background:var(--sun);color:var(--charcoal);}
.pill.streak{background:#FFE1D6;}
.back-btn{
  display:flex;align-items:center;gap:.3rem;border:none;cursor:pointer;
  background:var(--ink);color:#fff;font-family:'Baloo 2';font-weight:800;font-size:1.15rem;
  border-radius:999px;padding:.35rem 1.2rem .35rem .8rem;box-shadow:0 5px 0 var(--ink-dark);transition:transform .1s,box-shadow .1s;
}
.back-btn:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--ink-dark);}
.back-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink-dark);}

/* ---- bottoni ---- */
.btn{
  font-family:'Baloo 2';font-weight:800;font-size:1.15rem;border:none;border-radius:1.1rem;padding:.7rem 1.5rem;cursor:pointer;color:#fff;
  box-shadow:0 5px 0 rgba(0,0,0,.24);transition:transform .1s,box-shadow .1s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 7px 0 rgba(0,0,0,.24);}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 rgba(0,0,0,.24);}
.btn:focus-visible,.game-card:focus-visible,.world:focus-visible,.chip:focus-visible,.option-btn:focus-visible{outline:4px solid var(--sun);outline-offset:3px;}
.btn-ink{background:var(--ink);} .btn-coral{background:var(--coral);} .btn-grass{background:var(--grass);}
.btn-sun{background:var(--sun-dark);} .btn-plum{background:var(--plum);}
.btn-block{display:block;width:100%;text-align:left;}
.btn-ghost{background:#fff;color:var(--ink);border:3px solid var(--paper-line);box-shadow:0 4px 0 var(--paper-line);}
.btn-ghost:hover{border-color:var(--ink);box-shadow:0 6px 0 var(--paper-line);}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;}
.btn-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:1rem;}

/* ---- mascotte ---- */
.mascot-svg{width:100%;height:auto;display:block;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-.5rem);}}
.mascot-bob{animation:bob 2.6s ease-in-out infinite;}

/* ---- HOME ---- */
.hub{display:flex;flex-direction:column;gap:.9rem;}
.hero-card{
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2rem;
  background:rgba(255,255,255,.93);border:4px solid #fff;border-radius:2rem;padding:.4rem 2.2rem;box-shadow:0 8px 0 rgba(24,43,92,.18);
}
.hero-mascot{width:6.2rem;}
.hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;}
.bubble{
  position:relative;display:inline-block;max-width:36rem;background:var(--sun);color:var(--charcoal);
  font-family:'Baloo 2';font-weight:800;font-size:1.4rem;line-height:1.2;padding:.55rem 1.2rem;border-radius:1.2rem;
}
.bubble::before{content:"";position:absolute;left:-.8rem;top:50%;margin-top:-.6rem;border:.6rem solid transparent;border-left:0;border-right-color:var(--sun);}
.btn-play{font-size:1.75rem;padding:.4rem 2.2rem;background:var(--grass);border-radius:1.5rem;box-shadow:0 8px 0 var(--grass-dark);}
.btn-play:hover{box-shadow:0 10px 0 var(--grass-dark);}
.btn-play:active{box-shadow:0 2px 0 var(--grass-dark);}
.hero-sub{color:var(--charcoal-soft);font-weight:800;}

.world-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;position:relative;padding-top:.4rem;}
.world-grid::before{content:"";position:absolute;left:10%;right:10%;top:3.4rem;border-top:.4rem dashed rgba(255,255,255,.95);z-index:0;}   /* il "percorso" */
.world{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;
  background:var(--c);color:#fff;border:none;border-radius:1.9rem;padding:.8rem 1.1rem .8rem;cursor:pointer;
  box-shadow:0 9px 0 var(--cd);transition:transform .12s,box-shadow .12s;
}
.world::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(160deg,rgba(255,255,255,.32),rgba(255,255,255,0) 46%);pointer-events:none;}
.world:hover{transform:translateY(-5px);box-shadow:0 14px 0 var(--cd);}
.world:active{transform:translateY(6px);box-shadow:0 3px 0 var(--cd);}
.world-num{
  position:absolute;top:-.7rem;left:-.4rem;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--sun);color:var(--charcoal);
  border:3px solid #fff;font-family:'Baloo 2';font-weight:800;font-size:1.25rem;display:grid;place-items:center;box-shadow:0 3px 0 rgba(0,0,0,.2);z-index:2;
}
.world-icon{width:4.4rem;height:4.4rem;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:2.4rem;box-shadow:inset 0 -6px 0 rgba(0,0,0,.09),0 4px 0 rgba(0,0,0,.16);}
.world h3{color:#fff;font-size:1.6rem;margin:.15rem 0 0;text-shadow:0 2px 0 rgba(0,0,0,.2);}
.world p{margin:0;font-size:.95rem;font-weight:700;opacity:.96;min-height:2.6em;}
.world-level{width:100%;margin-top:.35rem;display:flex;flex-direction:column;gap:.3rem;font-family:'Baloo 2';font-weight:800;font-size:1rem;}
.bar{height:.9rem;background:rgba(0,0,0,.25);border-radius:999px;overflow:hidden;}
.bar i{display:block;height:100%;background:var(--sun);border-radius:999px;transition:width .4s ease;}
.dock{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}
.dock-btn{
  display:flex;align-items:center;gap:.6rem;background:#fff;border:3px solid var(--paper-line);border-radius:1.2rem;padding:.35rem 1.6rem;cursor:pointer;
  font-family:'Baloo 2';font-weight:800;font-size:1.2rem;color:var(--ink);box-shadow:0 5px 0 var(--paper-line);transition:transform .1s,box-shadow .1s;
}
.dock-btn span{font-size:1.45rem;}
.dock-btn:hover{border-color:var(--ink);transform:translateY(-2px);}
.dock-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--paper-line);}

/* ---- MONDI ---- */
.world-page{display:flex;flex-direction:column;}
.world-head{
  position:relative;overflow:hidden;display:flex;align-items:center;gap:1.2rem;
  background:var(--c);color:#fff;border-radius:1.6rem;padding:.45rem 1.6rem;box-shadow:0 6px 0 var(--cd);
}
.world-head::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.28),rgba(255,255,255,0) 50%);pointer-events:none;}
.world-head-mascot{width:3.8rem;flex-shrink:0;}
.world-head h2{color:#fff;font-size:1.8rem;margin:0;text-shadow:0 3px 0 rgba(0,0,0,.2);}
.world-head p{margin:0;font-weight:800;opacity:.96;}
.world-head-level{margin-left:auto;min-width:14rem;display:flex;flex-direction:column;gap:.3rem;font-family:'Baloo 2';font-weight:800;font-size:1.15rem;position:relative;z-index:1;}
.world-head-level small{font-family:'Nunito';font-weight:700;font-size:.8rem;opacity:.95;}
.sec{margin:.85rem 0 .35rem;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.9rem;}
.sec h3{font-size:1.35rem;margin:0;color:var(--ink-dark);text-shadow:0 2px 0 rgba(255,255,255,.75);}
.sec p{margin:0;font-size:.92rem;color:var(--charcoal-soft);font-weight:800;}
.game-grid,.mode-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr));gap:.75rem 1rem;margin-top:.3rem;}
.game-card,.mode-card{position:relative;
  display:flex;align-items:center;gap:.9rem;text-align:left;width:100%;cursor:pointer;
  background:#fff;border:4px solid var(--c);border-radius:1.3rem;padding:.4rem .9rem;box-shadow:0 5px 0 var(--cd);
  transition:transform .1s,box-shadow .1s;
}
.game-card:hover,.mode-card:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--cd);}
.game-card:active,.mode-card:active{transform:translateY(4px);box-shadow:0 2px 0 var(--cd);}
.gc-emoji,.mode-card .emoji{flex:0 0 2.7rem;height:2.7rem;border-radius:50%;background:#fff;border:3px solid var(--c);display:grid;place-items:center;font-size:1.45rem;}
.gc-txt strong,.mode-card .txt strong{display:block;font-family:'Baloo 2';font-weight:800;font-size:1.15rem;color:var(--ink-dark);line-height:1.15;}
.gc-txt small,.mode-card .txt span{display:block;color:var(--charcoal-soft);font-weight:700;font-size:.8rem;line-height:1.2;margin-top:.05rem;}
.mode-section-label{grid-column:1/-1;font-family:'Baloo 2';font-weight:800;font-size:1.2rem;color:var(--ink-dark);margin-top:.8rem;}
.chip-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.1rem 0 .7rem;}
.chip{
  background:#fff;border:3px solid var(--c);color:var(--ink-dark);border-radius:999px;padding:.1rem .7rem;cursor:pointer;
  font-family:'Baloo 2';font-weight:800;font-size:.95rem;box-shadow:0 4px 0 var(--cd);transition:transform .1s,box-shadow .1s;
}
.chip:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--cd);}
.chip:active{transform:translateY(3px);box-shadow:0 1px 0 var(--cd);}
.chip.on{background:#fff;border-width:5px;box-shadow:0 4px 0 var(--cd),0 0 0 3px var(--sun);}
.chip.on::before{content:"✓ ";color:var(--cd);}
/* scelta degli argomenti (mondo "In classe") */
.step-num{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--c);color:#fff;font-size:1.05rem;text-shadow:none;vertical-align:.1em;margin-right:.2rem;}
.topic-box{background:rgba(255,255,255,.9);border:3px solid #fff;border-radius:1.4rem;padding:.5rem .9rem;box-shadow:0 5px 0 rgba(24,43,92,.15);display:flex;flex-direction:column;gap:.4rem;}
.topic-group{display:grid;grid-template-columns:13.5rem 1fr;align-items:start;gap:.8rem;}
.topic-group + .topic-group{border-top:2px dashed var(--paper-line);padding-top:.4rem;}
.topic-group-head{display:flex;align-items:baseline;gap:.7rem;padding-top:.1rem;}
.topic-group-name{font-family:'Baloo 2';font-weight:800;font-size:1.15rem;color:var(--cd);line-height:1.2;}
.topic-all{background:none;border:none;padding:0;cursor:pointer;color:var(--cd);font-weight:800;font-size:.85rem;text-decoration:underline;}
.topic-chips{display:flex;flex-wrap:wrap;gap:.4rem;}
.topic-chip{
  background:#fff;border:3px solid var(--c);color:var(--ink-dark);border-radius:999px;padding:.05rem .75rem;cursor:pointer;
  font-family:'Baloo 2';font-weight:700;font-size:.95rem;box-shadow:0 3px 0 var(--cd);transition:transform .1s,box-shadow .1s;
}
.topic-chip:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--cd);}
.topic-chip:active{transform:translateY(2px);box-shadow:0 1px 0 var(--cd);}
.topic-chip.on{background:var(--c);color:#fff;font-weight:800;}
.topic-chip.on::before{content:"✓ ";}
.topic-chip:focus-visible,.topic-all:focus-visible{outline:4px solid var(--sun);outline-offset:3px;}
.topic-summary{margin-left:auto;display:flex;align-items:center;gap:.8rem;font-family:'Baloo 2';font-weight:800;color:var(--ink-dark);background:#fff;border-radius:999px;padding:0 .9rem;}
.topic-summary .topic-all{color:var(--ink-soft);}
@media(max-width:700px){.topic-group{grid-template-columns:1fr;gap:.3rem;}}
.world-link{margin:.7rem 0 0;}
.link-btn{background:none;border:none;color:var(--ink);font-weight:800;font-size:1rem;text-decoration:underline;cursor:pointer;}

/* ---- schermate di gioco ---- */
.quiz-card{
  width:100%;max-width:60rem;margin:1.1rem auto 0;text-align:center;
  background:#fff;border:4px solid var(--ink);border-radius:2rem;box-shadow:0 9px 0 var(--ink-dark);padding:1.8rem 1.8rem 2rem;
}
.quiz-card h2{font-size:2rem;}
.quiz-word{font-family:'Baloo 2';font-weight:800;font-size:clamp(2.4rem,5.2vw,4.4rem);color:var(--ink);margin:.3rem 0 1.3rem;line-height:1.1;word-break:break-word;}
.quiz-prompt{color:var(--charcoal-soft);font-weight:800;font-size:1.2rem;margin-bottom:.3rem;}
.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.6rem;}
@media(max-width:520px){.options-grid{grid-template-columns:1fr;}}
.option-btn{
  font-family:'Baloo 2';font-weight:800;font-size:1.45rem;background:#fff;border:4px solid var(--paper-line);border-radius:1.2rem;
  padding:.85rem .6rem;cursor:pointer;color:var(--ink);box-shadow:0 6px 0 var(--paper-line);transition:transform .1s,box-shadow .1s,border-color .1s;
}
.option-btn:hover:not(:disabled){border-color:var(--blue);transform:translateY(-2px);box-shadow:0 8px 0 var(--paper-line);}
.option-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 var(--paper-line);}
.option-btn.correct{background:var(--grass);border-color:var(--grass-dark);color:#fff;box-shadow:0 6px 0 var(--grass-dark);animation:pop-correct .35s ease;}
.option-btn.wrong{background:var(--coral);border-color:var(--coral-dark);color:#fff;box-shadow:0 6px 0 var(--coral-dark);animation:shake-wrong .35s ease;}
.option-btn:disabled{cursor:default;}
.feedback{font-family:'Baloo 2';font-weight:800;margin-top:1rem;font-size:1.6rem;}
.feedback.ok{color:var(--grass-dark);}
.feedback.bad{color:var(--coral-dark);}
.feedback-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;}
.feedback-row .feedback{margin-top:0;}
.fb-mascot{flex-shrink:0;}
.progress-line{color:var(--charcoal-soft);font-size:.9rem;margin-bottom:.3rem;}
.progress-header{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin:0 auto .2rem;max-width:60rem;}
.progress-pill{font-family:'Baloo 2';font-weight:800;font-size:1.08rem;padding:.2rem 1.15rem;border-radius:999px;border:3px solid var(--ink);white-space:nowrap;box-shadow:0 4px 0 rgba(24,43,92,.25);}
.progress-pill.round{background:var(--ink);color:#fff;}
.progress-pill.score{background:var(--sun);color:var(--charcoal);}
.summary-mascot{width:9rem;margin:0 auto .2rem;}
.summary-score{font-size:3.6rem;}
.quiz-grid-4{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.5rem;}
@media(max-width:520px){.quiz-grid-4{grid-template-columns:1fr;}}
.word-tile{
  font-family:'Baloo 2';font-weight:800;font-size:1.7rem;background:#fff;border:4px solid var(--paper-line);border-radius:1.2rem;
  padding:1.4rem .6rem;cursor:pointer;color:var(--ink);box-shadow:0 6px 0 var(--paper-line);transition:transform .1s,box-shadow .1s;
}
.word-tile:hover:not(:disabled){border-color:var(--blue);transform:translateY(-2px);}
.word-tile.correct{background:var(--grass);border-color:var(--grass-dark);color:#fff;box-shadow:0 6px 0 var(--grass-dark);animation:pop-correct .35s ease;}
.word-tile.wrong{background:var(--coral);border-color:var(--coral-dark);color:#fff;box-shadow:0 6px 0 var(--coral-dark);animation:shake-wrong .35s ease;}
.hp-row{display:flex;justify-content:center;gap:.4rem;margin:.4rem 0;font-size:1.7rem;}
.hearts{display:flex;justify-content:center;gap:.4rem;margin:.6rem 0 .2rem;font-size:1.6rem;}
.bar-bg{background:var(--paper-line);border-radius:999px;height:1rem;overflow:hidden;}
.bar-fill{background:var(--grass);height:100%;border-radius:999px;transition:width .3s ease;}

/* ---- impostazioni, testi, progressi ---- */
.settings-block{background:#fff;border:3px solid var(--paper-line);border-radius:1.4rem;padding:1rem 1.4rem;margin-top:1rem;box-shadow:0 5px 0 var(--paper-line);}
.settings-block h3{margin-bottom:.4rem;}
.check-row{display:flex;align-items:center;gap:.7rem;padding:.35rem 0;font-weight:800;font-size:1.05rem;color:var(--charcoal);cursor:pointer;}
.check-row input{width:1.3rem;height:1.3rem;accent-color:var(--blue);flex-shrink:0;}
.text-input{width:100%;font-family:'Nunito',sans-serif;font-size:1.15rem;font-weight:700;padding:.8rem 1rem;border:3px solid var(--paper-line);border-radius:1rem;background:#fff;color:var(--charcoal);}
.text-input:focus{outline:none;border-color:var(--blue);}
.blackboard{background:#2E4A3B;color:#F2ECE1;border-radius:1.4rem;padding:1rem 1.4rem;border:4px solid #F2ECE1;margin-top:1rem;box-shadow:0 6px 0 rgba(0,0,0,.25);}
.blackboard h3,.blackboard .check-row{color:#F2ECE1;}
.blackboard .hint{color:#C9D8CE;}
.teoria-text{margin-top:.6rem;}
.teoria-text h4{font-family:'Baloo 2';color:var(--ink);margin:.9rem 0 .2rem;font-size:1.1rem;}
.teoria-text p{margin:.4rem 0;line-height:1.55;}
.teoria-section{margin-top:1rem;}
.teoria-label{font-family:'Baloo 2';font-weight:800;color:var(--ink);font-size:1.05rem;}
.teoria-esempi{margin:.5rem 0 0;padding-left:1.3rem;line-height:1.7;}
.teoria-esempi li{margin-bottom:.25rem;}
.teoria-callout{margin-top:1.1rem;padding:.9rem 1.1rem;border-radius:1rem;background:#FFF3C4;border:3px solid var(--sun);}
.teoria-callout .teoria-label{color:var(--sun-dark);}
.dettato-list{columns:2;column-gap:1.5rem;padding-left:1.4rem;line-height:1.9;font-size:1.1rem;}
.dettato-list li{break-inside:avoid;}
.dettato-text p{margin:.6rem 0;line-height:1.6;font-size:1.1rem;}
@media (max-width:520px){.dettato-list{columns:1;}}
.lvl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin-top:1.2rem;}
.lvl-card{display:flex;gap:1rem;align-items:center;background:var(--c);color:#fff;border-radius:1.5rem;padding:.9rem 1.2rem;box-shadow:0 7px 0 var(--cd);}
.lvl-ic{width:4rem;height:4rem;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:2.2rem;flex-shrink:0;}
.lvl-txt{flex:1;display:flex;flex-direction:column;gap:.15rem;font-family:'Baloo 2';font-weight:800;}
.lvl-txt strong{font-size:1.35rem;}
.lvl-txt small{font-family:'Nunito';font-weight:700;opacity:.95;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem;margin-top:1.2rem;}
.stat-card{background:#fff;border:3px solid var(--paper-line);border-radius:1.3rem;padding:.9rem;text-align:center;box-shadow:0 5px 0 var(--paper-line);}
.stat-card .big{font-family:'Baloo 2';font-size:2.5rem;color:var(--ink);font-weight:800;line-height:1.1;}
.stat-card .lbl{font-weight:800;color:var(--charcoal-soft);}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem;margin-top:1rem;}
.badge{text-align:center;padding:1rem .6rem;border-radius:1.4rem;border:4px solid var(--sun-dark);background:linear-gradient(#FFF3C4,#FFE08A);box-shadow:0 6px 0 var(--sun-dark);}
.badge.locked{background:#E9EEF7;border-color:var(--paper-line);box-shadow:0 6px 0 var(--paper-line);opacity:.8;filter:grayscale(1);}
.badge .ic{font-size:3.2rem;line-height:1.1;}
.badge .nm{font-family:'Baloo 2';font-weight:800;color:var(--ink-dark);margin-top:.2rem;line-height:1.15;}

/* ---- modalità classe ---- */
.team-row{display:flex;gap:.8rem;margin-top:1.2rem;flex-wrap:wrap;justify-content:center;}
.team-box{flex:1;min-width:8rem;text-align:center;border-radius:1.3rem;padding:.8rem;border:4px solid var(--paper-line);background:#fff;box-shadow:0 5px 0 var(--paper-line);}
.team-box .score{font-family:'Baloo 2';font-size:2.6rem;font-weight:800;line-height:1.1;}
.team-blu{border-color:#3D7BF5;box-shadow:0 5px 0 #2A58BF;} .team-rosso{border-color:var(--coral);box-shadow:0 5px 0 var(--coral-dark);} .team-verde{border-color:var(--grass);box-shadow:0 5px 0 var(--grass-dark);}
.team-blu .score{color:#3D7BF5;} .team-rosso .score{color:var(--coral);} .team-verde .score{color:var(--grass);}
.team-box button{margin-top:.4rem;}
.split-row{display:flex;gap:1.2rem;margin-top:1rem;flex-wrap:wrap;align-items:stretch;}
.split-col{flex:1;min-width:17rem;text-align:center;background:#fff;border:5px solid var(--paper-line);border-radius:1.8rem;box-shadow:0 8px 0 var(--paper-line);padding:1.2rem 1rem;}
.split-col.blu{border-color:#3D7BF5;box-shadow:0 8px 0 #2A58BF;} .split-col.rosso{border-color:var(--coral);box-shadow:0 8px 0 var(--coral-dark);}
.split-col h3{font-family:'Baloo 2';margin:0 0 .2rem;font-size:1.5rem;}
.split-score{font-family:'Baloo 2';font-size:2.4rem;font-weight:800;color:var(--ink);margin-bottom:.2rem;line-height:1.1;}
.options-grid-single{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.5rem;}
@media(max-width:700px){.options-grid-single{grid-template-columns:1fr;}}
.split-col .quiz-word{font-size:clamp(2rem,3.4vw,2.9rem);margin:.1rem 0 .7rem;}
.split-col .option-btn{padding:.5rem .4rem;font-size:1.3rem;}
/* ---- giochi: memoria, ordina, tira e leggi, anagramma ---- */
.memoria-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.8rem;margin-top:1rem;}
.memoria-card{
  aspect-ratio:1/1;border-radius:1.1rem;border:4px solid var(--ink-dark);background:var(--ink);color:#fff;font-family:'Baloo 2';font-weight:800;
  font-size:1.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.3rem;text-align:center;line-height:1.1;word-break:break-word;box-shadow:0 5px 0 var(--ink-dark);
}
.memoria-card.flipped{background:var(--sun);color:var(--charcoal);border-color:var(--sun-dark);box-shadow:0 5px 0 var(--sun-dark);font-size:.95rem;}
.memoria-card.matched{background:var(--grass);color:#fff;border-color:var(--grass-dark);box-shadow:0 5px 0 var(--grass-dark);font-size:.95rem;cursor:default;animation:pop-correct .4s ease;}
.ordina-pool{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1rem;min-height:3rem;}
.ordina-chip{font-family:'Baloo 2';font-weight:800;font-size:1.25rem;background:#fff;border:4px solid var(--paper-line);border-radius:1rem;padding:.5rem 1rem;cursor:pointer;color:var(--ink);box-shadow:0 4px 0 var(--paper-line);}
.ordina-chip.selected{background:var(--sun);border-color:var(--sun-dark);box-shadow:0 4px 0 var(--sun-dark);}
.ordina-chip.wrong{background:var(--coral);color:#fff;border-color:var(--coral-dark);animation:shake-wrong .35s ease;}
.ordina-bins{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.8rem;margin-top:1.2rem;}
.ordina-bin{background:#F3FAFF;border:4px dashed var(--blue);border-radius:1.2rem;padding:.8rem .5rem;cursor:pointer;text-align:center;min-height:5rem;font-family:inherit;}
.ordina-bin:hover{background:#E3F2FF;}
.ordina-bin-label{font-family:'Baloo 2';font-weight:800;font-size:1.15rem;color:var(--ink);}
.ordina-bin-items{font-size:.9rem;font-weight:700;color:var(--charcoal-soft);margin-top:.4rem;word-break:break-word;}
.rollread-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0;}
.rollread-cell{position:relative;background:#fff;border:4px solid var(--paper-line);border-radius:1.1rem;padding:1.1rem .5rem;text-align:center;font-family:'Baloo 2';font-weight:800;font-size:1.3rem;color:var(--ink);box-shadow:0 4px 0 var(--paper-line);}
.rollread-cell.landed{background:var(--sun);border-color:var(--sun-dark);box-shadow:0 4px 0 var(--sun-dark);}
.rollread-num{position:absolute;top:.25rem;left:.5rem;font-size:.8rem;color:var(--charcoal-soft);}
.anagram-slots{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;margin:1.2rem 0 .7rem;}
.anagram-slot,.anagram-tile{width:3.1rem;height:3.7rem;border:4px solid var(--paper-line);border-radius:.9rem;display:flex;align-items:center;justify-content:center;font-family:'Baloo 2';font-weight:800;font-size:1.7rem;padding:0;}
.anagram-slot{background:#fff;color:var(--ink);}
.anagram-slot.filled{background:var(--sun);border-color:var(--sun-dark);cursor:pointer;}
.anagram-bank{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;margin-top:1rem;}
.anagram-tile{background:var(--ink);border-color:var(--ink-dark);color:#fff;cursor:pointer;box-shadow:0 5px 0 var(--ink-dark);}

/* ---- giochi di analisi: Collega, Memory grammaticale, Caccia alla parola ---- */
.collega-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1rem;}
.collega-col{display:flex;flex-direction:column;gap:.7rem;}
.collega-item{min-height:3.4rem;padding:.5rem .8rem;border-radius:1rem;border:4px solid var(--paper-line);background:#fff;color:var(--ink);font-family:'Baloo 2';font-weight:800;font-size:1.25rem;line-height:1.15;cursor:pointer;box-shadow:0 5px 0 var(--paper-line);}
.collega-item:not(:disabled):hover{border-color:var(--blue);}
.collega-item.selected{background:var(--sun);border-color:var(--sun-dark);color:var(--charcoal);box-shadow:0 5px 0 var(--sun-dark);}
.collega-item.flash-wrong{background:var(--coral);border-color:var(--coral-dark);color:#fff;box-shadow:0 5px 0 var(--coral-dark);animation:shake-wrong .35s ease;}
.collega-item:disabled{cursor:default;animation:pop-correct .4s ease;}
.collega-item.pair-0{background:var(--coral);border-color:var(--coral-dark);color:#fff;box-shadow:0 5px 0 var(--coral-dark);}
.collega-item.pair-1{background:var(--grass);border-color:var(--grass-dark);color:#fff;box-shadow:0 5px 0 var(--grass-dark);}
.collega-item.pair-2{background:var(--ink);border-color:var(--ink-dark);color:#fff;box-shadow:0 5px 0 var(--ink-dark);}
.collega-item.pair-3{background:var(--plum);border-color:#6A3FD1;color:#fff;box-shadow:0 5px 0 #6A3FD1;}
.collega-item.pair-4{background:var(--sun);border-color:var(--sun-dark);color:var(--charcoal);box-shadow:0 5px 0 var(--sun-dark);}
.collega-item.pair-5{background:#2A9D8F;border-color:#1f7a6f;color:#fff;box-shadow:0 5px 0 #1f7a6f;}
.memgram-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.8rem;margin-top:1rem;}
.memgram-card{min-height:5.6rem;padding:.4rem;border-radius:1.1rem;border:4px solid var(--ink-dark);background:var(--ink);color:#fff;font-family:'Baloo 2';font-weight:800;font-size:1.9rem;line-height:1.15;text-align:center;word-break:break-word;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 0 var(--ink-dark);}
.memgram-card.flipped.w{background:var(--sun);color:var(--charcoal);border-color:var(--sun-dark);box-shadow:0 5px 0 var(--sun-dark);font-size:1.25rem;}
.memgram-card.flipped.d{background:#DCE8FA;color:var(--ink);border-color:var(--ink);box-shadow:0 5px 0 var(--ink);font-size:1.05rem;}
.memgram-card.matched{background:var(--grass);color:#fff;border-color:var(--grass-dark);box-shadow:0 5px 0 var(--grass-dark);font-size:1.05rem;cursor:default;animation:pop-correct .4s ease;}
.caccia-sentence{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:center;margin:1.2rem 0 .6rem;}
.caccia-chip{font-family:'Baloo 2';font-weight:800;font-size:1.6rem;padding:.4rem 1rem;border-radius:1rem;border:4px solid var(--paper-line);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--paper-line);}
.caccia-chip:hover:not(:disabled){border-color:var(--blue);}
.caccia-chip.selected{background:var(--sun);border-color:var(--sun-dark);color:var(--charcoal);box-shadow:0 5px 0 var(--sun-dark);}
.caccia-chip.right{background:var(--grass);border-color:var(--grass-dark);color:#fff;box-shadow:0 5px 0 var(--grass-dark);animation:pop-correct .35s ease;}
.caccia-chip.wrong{background:var(--coral);border-color:var(--coral-dark);color:#fff;box-shadow:0 5px 0 var(--coral-dark);animation:shake-wrong .35s ease;}
.caccia-chip.missed{background:#fff;border:4px dashed var(--sun-dark);color:var(--charcoal);}
.caccia-chip:disabled{cursor:default;}
.caccia-end{font-family:'Baloo 2';font-weight:800;font-size:1.8rem;color:var(--ink);}

.toast{
  position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.7rem 1.4rem;border-radius:1rem;
  font-family:'Baloo 2';font-weight:800;font-size:1.1rem;box-shadow:0 5px 0 var(--ink-dark);z-index:50;opacity:0;pointer-events:none;transition:opacity .25s ease,bottom .25s ease;
}
.toast.show{opacity:1;bottom:2rem;}



/* ---- risposte più compatte: tante opzioni su più colonne, meno spazio sugli schermi bassi ---- */
.options-grid:has(> :nth-child(5)){grid-template-columns:repeat(3,1fr);}
.options-grid:has(> :nth-child(7)){grid-template-columns:repeat(4,1fr);}
@media(max-width:820px){.options-grid,.options-grid:has(> :nth-child(5)),.options-grid:has(> :nth-child(7)){grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.options-grid,.options-grid:has(> :nth-child(5)),.options-grid:has(> :nth-child(7)){grid-template-columns:1fr;}}
@media(max-height:820px){
  .quiz-card{padding:1.1rem 1.6rem 1.4rem;margin-top:.7rem;}
  .quiz-word{margin:.1rem 0 .8rem;font-size:clamp(2.2rem,4.4vw,3.6rem);}
  .option-btn{padding:.55rem .5rem;font-size:1.35rem;}
  .word-tile{padding:.9rem .6rem;font-size:1.5rem;}
  .summary-mascot{width:6.5rem;}
}
.feedback-row{flex-wrap:wrap;margin-top:.9rem;}
.fb-mascot{width:4rem;}

/* ---- domande al centro dello schermo: alla LIM le risposte restano alla portata di tutti ---- */
.wrap.view-game,.wrap.view-classroom,.wrap.view-classroomSplit,.wrap.view-tugOfWar,.wrap.view-shipBattle,.wrap.view-wheel,.wrap.view-rocket,.wrap.view-arcadeVersus,.wrap.view-campione{
  min-height:calc(100vh - 3.7rem);display:flex;flex-direction:column;justify-content:center;padding-top:.4rem;padding-bottom:2.4rem;
}

/* ---- teoria a carte ---- */
.btn-c{background:var(--c);box-shadow:0 5px 0 var(--cd);}
.tcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:1.5rem;margin-top:.9rem;padding-bottom:.5rem;}
.tcard-mini{
  position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;
  background:#fff;border:5px solid var(--c);border-radius:1.6rem;overflow:hidden;padding:0 .8rem 1rem;box-shadow:0 8px 0 var(--cd);
  transition:transform .12s,box-shadow .12s;
}
.tcard-mini:nth-child(odd){transform:rotate(-1.3deg);} .tcard-mini:nth-child(even){transform:rotate(1.1deg);}
.tcard-mini:hover{transform:rotate(0) translateY(-6px);box-shadow:0 14px 0 var(--cd);}
.tcard-mini:active{transform:rotate(0) translateY(5px);box-shadow:0 2px 0 var(--cd);}
.tc-top{display:block;width:calc(100% + 1.6rem);height:4.2rem;background:var(--c);background-image:linear-gradient(160deg,rgba(255,255,255,.3),rgba(255,255,255,0) 60%);}
.tc-ic{position:relative;width:5.2rem;height:5.2rem;border-radius:50%;background:#fff;border:5px solid var(--c);display:grid;place-items:center;font-size:2.7rem;margin-top:-2.6rem;flex-shrink:0;}
.tc-title{font-family:'Baloo 2';font-weight:800;font-size:1.45rem;color:var(--ink-dark);margin:.4rem 0 .55rem;line-height:1.15;}
.tc-tags{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:center;}
.tc-tags i{font-style:normal;font-weight:800;font-size:.75rem;background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--cd);border-radius:999px;padding:.1rem .6rem;}
.tdeck{max-width:62rem;margin:.6rem auto 0;}
.tcard{background:#fff;border:5px solid var(--c);border-radius:2rem;box-shadow:0 10px 0 var(--cd);overflow:hidden;}
.tcard-band{position:relative;display:flex;align-items:center;gap:1rem;background:var(--c);padding:.7rem 1.6rem;}
.tcard-band::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.28),rgba(255,255,255,0) 55%);pointer-events:none;}
.tcard-band .tc-ic{margin:0;width:4.2rem;height:4.2rem;font-size:2.3rem;border-color:#fff;z-index:1;}
.tcard-band h2{color:#fff;margin:0;font-size:2.2rem;text-shadow:0 3px 0 rgba(0,0,0,.2);z-index:1;}
.tc-count{margin-left:auto;font-family:'Baloo 2';font-weight:800;color:#fff;background:rgba(255,255,255,.25);border-radius:999px;padding:.1rem .9rem;z-index:1;white-space:nowrap;}
.tface-tabs{padding:1rem 1.4rem 0;margin-bottom:0;justify-content:center;}
.tface{padding:1rem 2.2rem 1.2rem;min-height:15rem;font-size:1.4rem;line-height:1.6;}
.tface p{margin:.5rem 0;}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;}
.ex-card{background:color-mix(in srgb,var(--c) 10%,#fff);border:3px solid var(--c);border-radius:1.2rem;padding:.7rem 1.1rem;text-align:left;box-shadow:0 4px 0 var(--cd);}
.ex-word{font-family:'Baloo 2';font-weight:800;font-size:1.9rem;line-height:1.15;color:var(--cd);}
.ex-desc{font-size:1.05rem;font-weight:700;line-height:1.35;color:var(--charcoal);}
.tface-warn{background:#FFF3C4;border:4px solid var(--sun);border-radius:1.3rem;padding:1rem 1.5rem;}
.tface-prova{text-align:center;}
.tface-prova .fb-mascot{margin:0 auto;}
.tcard-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.6rem 1.5rem;}
.dots{display:flex;gap:.55rem;}
.dots i{width:.95rem;height:.95rem;border-radius:50%;background:var(--paper-line);transition:transform .15s;}
.dots i.on{background:var(--c);transform:scale(1.3);}
@media(max-width:700px){.tcard-band{flex-wrap:wrap;} .tc-count{margin-left:0;} .tface{padding:.8rem 1.2rem 1rem;font-size:1.15rem;}}

/* ---- animazioni condivise ---- */
@keyframes pop-correct{0%{transform:scale(1);}40%{transform:scale(1.12);}100%{transform:scale(1);}}
@keyframes shake-wrong{0%,100%{transform:translateX(0);}20%{transform:translateX(-6px);}40%{transform:translateX(6px);}60%{transform:translateX(-4px);}80%{transform:translateX(4px);}}
@keyframes ship-shake{0%,100%{transform:translate(0,0) rotate(0deg);}20%{transform:translate(-5px,1px) rotate(-4deg);}40%{transform:translate(5px,-1px) rotate(4deg);}60%{transform:translate(-3px,1px) rotate(-2deg);}80%{transform:translate(3px,0) rotate(2deg);}}
.ship-box.hit-shake{animation:ship-shake .5s ease;}
.ship-explosion{position:absolute;top:-8px;right:-12px;font-size:1.5rem;animation:explosion-pop .5s ease forwards;}
@keyframes explosion-pop{0%{transform:scale(.3);opacity:0;}40%{transform:scale(1.3);opacity:1;}100%{transform:scale(1) translateY(-10px);opacity:0;}}
@keyframes winner-glow{0%{box-shadow:0 0 0 rgba(255,209,102,0);}50%{box-shadow:0 0 22px 7px rgba(255,209,102,.9);}100%{box-shadow:0 0 0 rgba(255,209,102,0);}}
.split-col.winner-flash{animation:winner-glow .9s ease;}
.confetti-wrap{position:relative;height:2.2rem;overflow:visible;}
.confetti-piece{position:absolute;top:0;font-size:1.7rem;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;}
@keyframes confetti-fall{0%{transform:translateY(0) rotate(0deg);opacity:1;}100%{transform:translateY(5rem) rotate(360deg);opacity:0;}}

/* ---- schermi più stretti (telefono, tablet in verticale) ---- */
@media(max-width:980px){
  .hero-card{grid-template-columns:1fr;text-align:center;justify-items:center;gap:.6rem;padding:1rem 1.2rem;}
  .hero-text{align-items:center;}
  .bubble::before{display:none;}
  .world-grid{grid-template-columns:repeat(2,1fr);}
  .world-grid::before{display:none;}
  .world-head{flex-wrap:wrap;padding:.8rem 1.2rem;}
  .world-head-level{margin-left:0;width:100%;}
  .collega-cols{gap:.8rem;}
  .brand{font-size:1.4rem;}
}
@media(max-width:520px){
  .world-grid{grid-template-columns:1fr;}
  .topbar{flex-wrap:wrap;}
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important;}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important;}
}
/* Dissolvenza rapida tra una schermata e l'altra (dove il browser la supporta). */
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s;animation-timing-function:ease-out;}

/* ============ EFFETTI (js/fx.js) ============ */
#fx-layer{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden;}
.fx{position:absolute;transform:translate(-50%,-50%);will-change:transform,opacity;white-space:nowrap;}
.fx-spark{font-size:1.5rem;animation:fx-spark .9s cubic-bezier(.2,.7,.3,1) forwards;}
@keyframes fx-spark{
  0%{transform:translate(-50%,-50%) scale(.3);opacity:1;}
  70%{opacity:1;}
  100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1) rotate(var(--rot));opacity:0;}
}
.fx-float{font-family:'Baloo 2';font-weight:800;font-size:1.35rem;animation:fx-float 1.1s ease-out forwards;}
.fx-xp{color:var(--sun-dark);text-shadow:0 2px 0 #fff,0 0 6px #fff;}
.fx-plus{color:var(--grass-dark);font-size:1.7rem;text-shadow:0 2px 0 #fff;}
.fx-fix{color:#fff;background:var(--grass);border-radius:999px;padding:.1rem .8rem;box-shadow:0 3px 0 var(--grass-dark);font-size:1.2rem;}
@keyframes fx-float{0%{transform:translate(-50%,-30%) scale(.7);opacity:0;}15%{transform:translate(-50%,-60%) scale(1.1);opacity:1;}100%{transform:translate(-50%,-260%) scale(1);opacity:0;}}
.fx-flash-bad{left:0!important;top:0!important;width:100%;height:100%;transform:none;
  box-shadow:inset 0 0 0 .5rem rgba(255,90,60,.75),inset 0 0 7rem rgba(255,90,60,.5);animation:fx-fade .5s ease-out forwards;}
@keyframes fx-fade{from{opacity:1;}to{opacity:0;}}
.fx-banner{left:50%!important;top:24%!important;font-family:'Baloo 2';font-weight:800;font-size:2.3rem;color:var(--charcoal);
  background:var(--sun);border:4px solid #fff;border-radius:1.4rem;padding:.3rem 1.6rem;box-shadow:0 6px 0 var(--sun-dark),0 10px 30px rgba(0,0,0,.2);
  animation:fx-banner 1.7s cubic-bezier(.3,1.5,.5,1) forwards;}
@keyframes fx-banner{0%{transform:translate(-50%,-50%) scale(.3) rotate(-8deg);opacity:0;}15%{transform:translate(-50%,-50%) scale(1.1) rotate(2deg);opacity:1;}
  25%{transform:translate(-50%,-50%) scale(1) rotate(0);}80%{transform:translate(-50%,-50%) scale(1);opacity:1;}100%{transform:translate(-50%,-90%) scale(.9);opacity:0;}}
.fx-confetti{font-size:1.6rem;animation:fx-fall var(--dur) linear var(--delay) both;}
@keyframes fx-fall{from{transform:translate(-50%,0) rotate(0);}to{transform:translate(calc(-50% + var(--dx)),110vh) rotate(var(--rot));}}
.fx-shake{animation:shake-wrong .45s ease;}
.fx-enter{animation:fx-enter .4s cubic-bezier(.3,1.6,.5,1);}
@keyframes fx-enter{0%{transform:scale(.5) translateY(.5rem);opacity:0;}100%{transform:scale(1);opacity:1;}}
.fx-bump{animation:fx-bump .5s ease;}
@keyframes fx-bump{0%,100%{transform:scale(1);}35%{transform:scale(1.3) rotate(-4deg);}65%{transform:scale(.95);}}
.feedback-row{animation:fx-slide-up .3s ease-out;}
.fb-mascot{animation:fx-hop .6s ease;}
@keyframes fx-slide-up{from{transform:translateY(.8rem);opacity:0;}to{transform:none;opacity:1;}}
@keyframes fx-hop{0%{transform:scale(.6);}40%{transform:translateY(-.6rem) scale(1.08);}100%{transform:none;}}
.option-btn:not(:disabled):active{transform:scale(.95);}

/* stelle del riepilogo */
.stars{display:flex;justify-content:center;gap:.4rem;margin:.1rem 0 .2rem;}
.star{font-size:3rem;line-height:1;color:rgba(24,43,92,.15);}
.star.on{color:var(--sun);text-shadow:0 3px 0 var(--sun-dark);animation:star-pop .5s cubic-bezier(.3,1.7,.5,1) both;}
@keyframes star-pop{0%{transform:scale(0) rotate(-40deg);}100%{transform:scale(1) rotate(0);}}
.summary-card .summary-mascot{animation:fx-hop .7s ease;}
.fix-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem .9rem;margin:.4rem 0 .2rem;font-weight:700;}
.fix-list strong{width:100%;color:var(--ink);}
.fix-list s{color:var(--coral-dark);}
.fix-list b{color:var(--grass-dark);}

/* etichetta "Nuovo!" sulle schede dei giochi */
.gc-new{position:absolute;top:-.85rem;right:.6rem;z-index:1;background:var(--sun);color:var(--charcoal);font-family:'Baloo 2';font-weight:800;font-size:.75rem;line-height:1.35;
  border:2px solid #fff;border-radius:999px;padding:0 .55rem;box-shadow:0 2px 0 var(--sun-dark);animation:new-wiggle 2.4s ease-in-out infinite;}
@keyframes new-wiggle{0%,80%,100%{transform:rotate(0);}85%{transform:rotate(-8deg);}90%{transform:rotate(7deg);}95%{transform:rotate(-4deg);}}

/* ---- Mostro ---- */
.monster-arena{display:flex;justify-content:center;height:6.2rem;align-items:center;}
.monster{position:relative;display:inline-block;font-size:4.6rem;line-height:1;}
.monster-idle{animation:monster-idle 2.2s ease-in-out infinite;}
.monster-weak{filter:saturate(.6);}
.monster-weak.monster-idle{animation:monster-idle .9s ease-in-out infinite;}
@keyframes monster-idle{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-.4rem) rotate(2deg);}}
.monster-hit{animation:monster-hit .6s ease;}
@keyframes monster-hit{0%{transform:none;filter:none;}15%{transform:translateX(-.6rem) rotate(-10deg) scale(.9);filter:brightness(2) saturate(0);}
  35%{transform:translateX(.5rem) rotate(8deg);filter:hue-rotate(-60deg) saturate(3);}60%{transform:translateX(-.3rem) rotate(-4deg);}100%{transform:none;filter:none;}}
.monster-attack{animation:monster-attack .7s ease;}
@keyframes monster-attack{0%{transform:none;}30%{transform:translateY(-.5rem) scale(.9);}55%{transform:translateY(.8rem) scale(1.45);}100%{transform:none;}}
.monster-dmg{position:absolute;top:-.4rem;right:-1.6rem;font-family:'Baloo 2';font-weight:800;font-size:1.8rem;color:var(--coral-dark);text-shadow:0 2px 0 #fff;animation:fx-float-up .9s ease-out forwards;}
.monster-boom{position:absolute;left:50%;top:50%;font-size:3rem;animation:explosion-pop .6s ease-out forwards;margin:-1.5rem 0 0 -1.5rem;}
.monster-fire{position:absolute;left:50%;top:80%;font-size:2rem;margin-left:-1rem;animation:monster-fire .7s ease-in forwards;}
@keyframes monster-fire{0%{transform:scale(.3);opacity:0;}30%{opacity:1;}100%{transform:translateY(5.5rem) scale(1.4);opacity:0;}}
@keyframes fx-float-up{0%{transform:translateY(0);opacity:1;}100%{transform:translateY(-2.2rem);opacity:0;}}
.monster-defeated{animation:monster-defeated 1.2s ease-in forwards;}
@keyframes monster-defeated{0%{transform:none;}30%{transform:rotate(-20deg) scale(1.1);}100%{transform:rotate(540deg) scale(0);opacity:0;}}
.monster-laugh{animation:monster-idle .5s ease-in-out infinite;}
.monster-hp{max-width:260px;margin:.4rem auto .2rem;}
.monster-hp .bar-fill{background:var(--coral);height:100%;border-radius:999px;}
.bar-fill.drain{animation:hp-drain .7s ease-out;}
@keyframes hp-drain{0%,25%{width:var(--from);background:#fff;}100%{width:var(--to);}}
.heart-break{display:inline-block;animation:heart-break .7s ease;}
@keyframes heart-break{0%{transform:scale(1.5);filter:none;}30%{transform:scale(1.5) rotate(-15deg);}100%{transform:scale(1);}}

/* ---- Sfida lampo: barra del tempo ---- */
.time-bar{height:.8rem;width:100%;max-width:40rem;margin:.2rem auto .4rem;background:rgba(255,255,255,.7);border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 0 rgba(0,0,0,.08);}
.time-bar i{display:block;height:100%;border-radius:999px;background:var(--grass);width:var(--to);animation:time-tick 1s linear;}
.time-bar.low i{background:var(--coral);animation:time-tick 1s linear,low-blink .5s ease-in-out infinite alternate;}
@keyframes time-tick{from{width:var(--from);}to{width:var(--to);}}
@keyframes low-blink{from{opacity:1;}to{opacity:.55;}}
#arc-time.low{background:var(--coral);color:#fff;border-color:var(--coral-dark);animation:fx-bump .5s ease infinite;}

/* ---- Giochi arcade (js/game-arcade.js) ---- */
.wrap.view-game:has(.arc-field){justify-content:flex-start;}
.arc-hud{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem;}
.arc-hud .hearts{margin:0;}
.arc-target{font-family:'Baloo 2';font-weight:800;font-size:1.5rem;color:var(--ink-dark);background:#fff;border-radius:999px;padding:.15rem 1.2rem;box-shadow:0 4px 0 rgba(24,43,92,.15);}
.arc-target strong{color:var(--coral);}
.heart-gone{opacity:.45;}
.arc-field{position:relative;height:max(22rem, calc(100vh - 11rem));border-radius:1.8rem;overflow:hidden;border:4px solid #fff;box-shadow:0 8px 0 rgba(24,43,92,.18);touch-action:manipulation;user-select:none;-webkit-user-select:none;}
.arc-sky{background:linear-gradient(180deg,#8FD8FF 0%,#C9EEFF 60%,#E8F8FF 100%);}
.arc-rain{background:linear-gradient(180deg,#6F86B8 0%,#9DB2DA 55%,#CFE0F5 100%);}
.arc-item{position:absolute;background:none;border:none;padding:0;cursor:pointer;font:inherit;animation-timing-function:linear;animation-fill-mode:forwards;}
.arc-word{display:grid;place-items:center;font-family:'Baloo 2';font-weight:800;font-size:1.25rem;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.25);}
/* palloncino: sale dal basso ondeggiando */
.arc-balloon{bottom:-8rem;animation-name:arc-rise;}
@keyframes arc-rise{
  0%{transform:translate(0,0);} 25%{transform:translate(var(--sway),calc(var(--travel) * -.25));}
  50%{transform:translate(0,calc(var(--travel) * -.5));} 75%{transform:translate(calc(var(--sway) * -1),calc(var(--travel) * -.75));}
  100%{transform:translate(0,calc(var(--travel) * -1));}
}
.arc-balloon .arc-word{position:relative;min-width:6.6rem;height:7.2rem;padding:0 .7rem;border-radius:50% 50% 48% 48% / 55% 55% 45% 45%;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.55) 0 12%,transparent 13%),hsl(var(--hue) 78% 58%);
  box-shadow:inset -.5rem -.6rem 0 rgba(0,0,0,.12);}
.arc-balloon .arc-word::after{content:"";position:absolute;left:50%;bottom:-2.2rem;width:2px;height:2.2rem;background:rgba(24,43,92,.35);}
.arc-balloon .arc-word::before{content:"";position:absolute;left:50%;bottom:-.45rem;margin-left:-.4rem;border:.4rem solid transparent;border-bottom-color:hsl(var(--hue) 78% 48%);border-top:0;transform:rotate(180deg);}
/* goccia / nuvoletta: cade dall'alto */
.arc-drop{top:-5rem;animation-name:arc-fall;}
@keyframes arc-fall{
  0%{transform:translate(0,0);} 50%{transform:translate(var(--sway),calc(var(--travel) * .5));} 100%{transform:translate(0,var(--travel));}
}
.arc-drop .arc-word{min-width:7rem;padding:.55rem 1.1rem;border-radius:1.4rem 1.4rem 1.4rem .4rem;background:#fff;color:var(--ink-dark);text-shadow:none;
  border:3px solid #4B8BE8;box-shadow:0 4px 0 #2E62B8;font-size:1.3rem;}
.arc-drop .arc-word::before{content:"💧";margin-right:.2rem;}
.arc-item.arc-pop .arc-word{animation:arc-pop .45s ease-out forwards;}
@keyframes arc-pop{0%{transform:scale(1);}40%{transform:scale(1.35);opacity:1;}100%{transform:scale(1.8);opacity:0;}}
.arc-item.arc-bad .arc-word{animation:arc-bad .6s ease-in forwards;filter:grayscale(1);}
@keyframes arc-bad{0%{transform:none;}20%{transform:translateX(-.5rem) rotate(-10deg);}40%{transform:translateX(.5rem) rotate(10deg);}100%{transform:translateY(8rem) rotate(40deg);opacity:0;}}

/* ---- Rana salterina ---- */
.rana-pond{background:linear-gradient(180deg,#5CC6E8 0%,#3FA8D6 100%);border:4px solid #fff;border-radius:1.8rem;padding:1rem 1.2rem 1.4rem;box-shadow:0 8px 0 rgba(24,43,92,.18);}
.rana-track{position:relative;height:5rem;margin:0 .5rem .6rem;}
.rana-track::before{content:"";position:absolute;left:4%;right:6%;top:58%;border-top:.3rem dotted rgba(255,255,255,.55);}
.rana-stone,.rana-shore,.rana-island,.rana-frog{position:absolute;top:58%;transform:translate(-50%,-50%);line-height:1;}
.rana-shore{left:0;font-size:2.4rem;}
.rana-island{right:-1.5rem;font-size:3rem;}
.rana-stone{font-size:1.8rem;opacity:.75;}
.rana-stone.done{opacity:1;filter:drop-shadow(0 0 .4rem #fff);}
.rana-frog{font-size:2.8rem;top:40%;z-index:2;animation:frog-idle 1.6s ease-in-out infinite;}
@keyframes frog-idle{0%,100%{transform:translate(-50%,-50%);}50%{transform:translate(-50%,-58%) scale(1.04,.96);}}
.rana-frog.jump{animation:frog-jump .7s cubic-bezier(.4,0,.4,1);}
@keyframes frog-jump{
  0%{left:var(--from);transform:translate(-50%,-50%) scale(1,.8);}
  45%{transform:translate(-50%,-160%) scale(1.15) rotate(-12deg);}
  100%{left:var(--to);transform:translate(-50%,-50%) scale(1);}
}
.rana-frog.oops{animation:frog-oops .9s ease;}
@keyframes frog-oops{0%{transform:translate(-50%,-50%);}30%{transform:translate(-50%,-90%) rotate(-20deg);}60%{transform:translate(-50%,-40%) rotate(15deg) scale(.9);}100%{transform:translate(-50%,-50%);}}
.rana-question{text-align:center;font-family:'Baloo 2';font-weight:800;font-size:1.6rem;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.2);margin:.2rem 0 1rem;}
.rana-kind{padding:0 .5rem;border-radius:.5rem;text-shadow:none;}
.rana-kind.sinonimi{background:var(--sun);color:var(--charcoal);}
.rana-kind.contrari{background:var(--coral);color:#fff;}
.rana-word{display:inline-block;background:#fff;color:var(--ink-dark);text-shadow:none;border-radius:.7rem;padding:0 .7rem;animation:fx-enter .4s cubic-bezier(.3,1.6,.5,1);}
.rana-pads{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.rana-pad{position:relative;height:7rem;border:none;cursor:pointer;background:none;padding:0;font:inherit;}
.rana-pad span{display:grid;place-items:center;height:100%;border-radius:50%;padding:0 .8rem;
  background:radial-gradient(ellipse at 45% 35%,#9BE386 0,#62C152 55%,#3F9A37 100%);border:3px solid #2F7F2A;
  font-family:'Baloo 2';font-weight:800;font-size:1.45rem;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3);
  box-shadow:inset 0 -.5rem 0 rgba(0,0,0,.12);transition:transform .12s;animation:pad-float 3s ease-in-out infinite;}
.rana-pad:nth-child(2) span{animation-delay:-1s;} .rana-pad:nth-child(3) span{animation-delay:-2s;}
@keyframes pad-float{0%,100%{transform:translateY(0) rotate(-2deg);}50%{transform:translateY(-.3rem) rotate(2deg);}}
.rana-pad:not(:disabled):hover span{transform:scale(1.06);}
.rana-pad.right span{background:radial-gradient(ellipse at 45% 35%,#FFE58A 0,#FFC83D 55%,#D99A00 100%);border-color:#B07A00;animation:pad-glow .6s ease 2;}
@keyframes pad-glow{50%{transform:scale(1.12);}}
.rana-pad.sink span{animation:pad-sink 1s ease-in forwards;}
@keyframes pad-sink{0%{transform:none;}20%{transform:rotate(-8deg);}100%{transform:translateY(2rem) scale(.7);opacity:.1;}}
.rana-pad.sink::after{content:"💦";position:absolute;left:50%;top:40%;font-size:2.4rem;margin:-1.2rem 0 0 -1.2rem;animation:explosion-pop .8s ease-out forwards;}
.rana-pad.idle span{opacity:.6;}
.rana-end{display:inline-block;font-size:4.5rem;}
.rana-end.win{animation:frog-idle .8s ease-in-out infinite;}
@media(max-width:700px){
  .rana-pads{grid-template-columns:1fr;} .rana-pad{height:4.2rem;} .rana-pad span{border-radius:2rem;}
  .arc-target{font-size:1.15rem;} .fx-banner{font-size:1.6rem;}
  .rana-stone{font-size:1.05rem;} .rana-shore{font-size:1.6rem;} .rana-island{font-size:1.9rem;right:-1rem;} .rana-frog{font-size:2rem;}
  .arc-balloon .arc-word{min-width:5.2rem;height:5.8rem;font-size:1.05rem;}
  .arc-drop .arc-word{min-width:5.5rem;font-size:1.1rem;padding:.4rem .8rem;}
}

/* ============ SFIDE DI CLASSE ============ */
@media(min-width:1000px){.game-grid-4{grid-template-columns:repeat(4,1fr);}}
.game-grid-4 .game-card{gap:.6rem;padding:.35rem .7rem;}
.game-grid-4 .gc-emoji{flex-basis:2.3rem;height:2.3rem;font-size:1.2rem;}
.game-grid-4 .gc-txt strong{font-size:1.02rem;}
.game-grid-4 .gc-txt small{font-size:.76rem;}
/* Risposte nelle colonne delle squadre: quante colonne di pulsanti dipende da quanto è larga
   la colonna della squadra (non lo schermo), così i pulsanti non escono mai dal riquadro. */
.split-col{container-type:inline-size;}
.split-col .options-grid-single{grid-template-columns:repeat(2,minmax(0,1fr));}
.split-col .option-btn{min-width:0;overflow-wrap:anywhere;hyphens:auto;}
@container (min-width:24rem){.split-col .options-grid-single:has(> :nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr));} .split-col .options-grid-single:has(> :nth-child(5)) .option-btn{font-size:1.08rem;padding:.5rem .2rem;}}
@container (max-width:21rem){.split-col .option-btn{font-size:1.05rem;padding:.45rem .3rem;}}
@container (max-width:15rem){.split-col .options-grid-single{grid-template-columns:minmax(0,1fr);}}
.next-round-btn{display:block;width:100%;margin-top:.7rem;font-size:1.3rem;animation:fx-slide-up .3s ease-out;}
.btn-big{font-size:1.7rem;padding:.6rem 2.2rem;}
.split-col{position:relative;}
.split-col.flash-ok{animation:col-ok .6s ease;}
.split-col.flash-bad{animation:col-bad .6s ease;}
@keyframes col-ok{30%{background:#DDF7E6;}}
@keyframes col-bad{30%{background:#FFE1D9;}}
.split-top{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;}
.progress-pill.low-time{background:var(--coral);color:#fff;border-color:var(--coral-dark);animation:fx-bump .5s ease infinite;}
.team-row-compact{margin-top:.6rem;}
.team-row-compact .team-box{padding:.4rem .6rem;}
.team-row-compact .team-box .score{font-size:1.9rem;}

/* schermata di vittoria delle squadre */
.team-trophy{position:relative;font-size:5rem;line-height:1.1;animation:trophy-in .8s cubic-bezier(.3,1.6,.5,1) both;}
@keyframes trophy-in{0%{transform:scale(0) rotate(-30deg);}100%{transform:none;}}
.team-winner{position:relative;animation:winner-glow 1.2s ease 3;transform:scale(1.05);}
.team-crown{position:absolute;top:-1.6rem;left:50%;margin-left:-1rem;font-size:2rem;animation:star-pop .6s .4s cubic-bezier(.3,1.7,.5,1) both;}
.runner-win{position:absolute;left:62%;bottom:0;font-size:3rem;animation:frog-idle .7s ease-in-out infinite;}

/* ---- Schermo condiviso: la corsa ---- */
.race-track{display:flex;flex-direction:column;gap:.35rem;background:#fff;border:4px solid #fff;border-radius:1.4rem;padding:.4rem .6rem;box-shadow:0 5px 0 rgba(24,43,92,.15);margin-top:.4rem;}
.race-lane{position:relative;height:2.6rem;border-radius:999px;
  background:repeating-linear-gradient(90deg,transparent 0 calc(8.4% - 2px),rgba(255,255,255,.7) calc(8.4% - 2px) 8.4%),var(--lane);}
.lane-blu{--lane:#CFE0FF;} .lane-rosso{--lane:#FFD9CF;} .lane-verde{--lane:#CDF2DA;}
.race-plus{position:absolute;left:.2rem;top:50%;transform:translateY(-50%);padding:.15rem .7rem;font-size:1.05rem;border-radius:999px;z-index:2;}
.race-plus:hover{transform:translateY(-55%);} .race-plus:active{transform:translateY(-45%);}
.race-score{position:absolute;left:5.6rem;top:50%;margin-top:-1rem;line-height:2rem;font-family:'Baloo 2';font-weight:800;font-size:1.5rem;color:var(--ink-dark);}
.race-flag{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);font-size:1.6rem;}
.race-runner{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:2rem;transition:left .8s cubic-bezier(.4,1.4,.5,1);z-index:1;}
.race-runner.hop{animation:runner-hop .8s ease;}
@keyframes runner-hop{0%,100%{margin-top:0;}25%{margin-top:-1rem;}50%{margin-top:0;}75%{margin-top:-.5rem;}}

/* ---- Tiro alla fune ---- */
.tug-scene{position:relative;height:6.2rem;border-radius:1.6rem;overflow:hidden;margin-bottom:.4rem;border:4px solid #fff;box-shadow:0 6px 0 rgba(24,43,92,.15);
  background:linear-gradient(180deg,#A8E2FF 0 45%,#7ED36A 45% 100%);}
.tug-mud{position:absolute;left:50%;bottom:.5rem;width:9rem;height:2.4rem;margin-left:-4.5rem;border-radius:50%;background:radial-gradient(ellipse,#8B5A2B 0 45%,#A0703E 70%,transparent 72%);}
.tug-line{position:absolute;top:45%;bottom:0;width:.35rem;margin-left:-.175rem;background:repeating-linear-gradient(180deg,#fff 0 .5rem,transparent .5rem 1rem);}
.tug-group{position:absolute;top:14%;width:64%;display:flex;align-items:center;transform:translateX(-50%);transition:left .7s cubic-bezier(.5,1.6,.5,1);}
.tug-rope{position:relative;flex:1;height:.55rem;background:repeating-linear-gradient(60deg,#C58B4B 0 .4rem,#9C6A35 .4rem .8rem);border-radius:999px;}
.tug-flag{position:absolute;left:50%;top:-1.9rem;margin-left:-.4rem;font-size:2rem;}
.tug-team{display:flex;gap:.1rem;}
.tug-kid{display:inline-grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:50%;font-size:1.9rem;border:3px solid #fff;box-shadow:0 3px 0 rgba(0,0,0,.2);}
.tug-team.blu .tug-kid,.tug-kid.blu{background:#3D7BF5;} .tug-team.rosso .tug-kid,.tug-kid.rosso{background:var(--coral);}
.tug-group.pull-blu .tug-team.blu .tug-kid{animation:pull-left .6s ease both;}
.tug-group.pull-blu .tug-team.rosso .tug-kid{animation:stumble-left .6s ease both;}
.tug-group.pull-rosso .tug-team.rosso .tug-kid{animation:pull-right .6s ease both;}
.tug-group.pull-rosso .tug-team.blu .tug-kid{animation:stumble-right .6s ease both;}
@keyframes pull-left{40%{transform:translateX(-.5rem) rotate(-18deg);}100%{transform:rotate(-8deg);}}
@keyframes pull-right{40%{transform:translateX(.5rem) rotate(18deg);}100%{transform:rotate(8deg);}}
@keyframes stumble-left{40%{transform:translateX(-.3rem) rotate(14deg) translateY(-.3rem);}100%{transform:rotate(4deg);}}
@keyframes stumble-right{40%{transform:translateX(.3rem) rotate(-14deg) translateY(-.3rem);}100%{transform:rotate(-4deg);}}
.tug-end{position:relative;height:6rem;width:14rem;margin:0 auto;}
.tug-mud-end{position:absolute;left:0;right:0;bottom:0;height:2.6rem;border-radius:50%;background:radial-gradient(ellipse,#8B5A2B 0 50%,#A0703E 70%,transparent 72%);}
.tug-end .tug-kid{position:absolute;left:4rem;top:0;}
.tug-end .tug-kid + .tug-kid{left:7rem;}
.tug-kid.fall{animation:kid-fall 1s ease-in both;}
@keyframes kid-fall{0%{transform:translateY(-1rem) rotate(0);}70%{transform:translateY(2.4rem) rotate(200deg);}100%{transform:translateY(2.2rem) rotate(180deg);}}
.tug-splash{position:absolute;left:5.5rem;bottom:1rem;font-size:2.6rem;animation:explosion-pop 1s .8s ease-out both;}

/* ---- Battaglia navale ---- */
.sea-scene{position:relative;height:7.6rem;border-radius:1.6rem;overflow:hidden;margin-bottom:.4rem;border:4px solid #fff;box-shadow:0 6px 0 rgba(24,43,92,.15);
  display:flex;justify-content:space-between;align-items:flex-end;padding:0 8%;background:linear-gradient(180deg,#9FDBFF 0 55%,#2F8FD6 55% 100%);}
.sea-waves{position:absolute;left:-10%;right:-10%;bottom:0;height:3.6rem;z-index:2;pointer-events:none;
  background:radial-gradient(circle at 1.5rem 0,transparent 1.5rem,#2477BF 1.55rem) 0 0/3rem 100% repeat-x;animation:waves 3s linear infinite;opacity:.9;}
@keyframes waves{from{transform:translateX(0);}to{transform:translateX(3rem);}}
.ship-unit{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;margin-bottom:.9rem;animation:ship-bob 2.4s ease-in-out infinite;}
.ship-unit.rosso{animation-delay:-1.2s;}
@keyframes ship-bob{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-.4rem) rotate(3deg);}}
.ship-hearts{font-size:1rem;background:rgba(255,255,255,.9);border-radius:999px;padding:0 .5rem;white-space:nowrap;}
.ship-body{position:relative;font-size:3.6rem;line-height:1;}
.ship-unit.blu .ship-emoji{display:inline-block;transform:scaleX(-1);}
.ship-label{position:absolute;bottom:-1.3rem;z-index:3;font-family:'Baloo 2';font-weight:800;color:#fff;font-size:.95rem;text-shadow:0 2px 0 rgba(0,0,0,.3);}
.ship-unit.hit .ship-body{animation:ship-shake .6s .55s ease both;}
.ship-explosion{position:absolute;left:50%;top:10%;margin-left:-1.5rem;font-size:3rem;animation:explosion-pop .7s .5s ease-out both;}
.ship-smoke{position:absolute;left:30%;top:-1rem;font-size:2rem;animation:smoke-up 1.4s .7s ease-out both;}
@keyframes smoke-up{0%{transform:scale(.4);opacity:0;}30%{opacity:.9;}100%{transform:translateY(-2.5rem) scale(1.6);opacity:0;}}
.heart-break.delayed{animation-delay:.55s;}
.ship-unit.sinking{animation:ship-sink 1.8s .7s ease-in forwards;}
@keyframes ship-sink{0%{transform:none;}30%{transform:rotate(-20deg);}100%{transform:translateY(8rem) rotate(-35deg);opacity:.3;}}
.cannonball{position:absolute;z-index:3;bottom:4.2rem;width:1.1rem;height:1.1rem;border-radius:50%;background:#1E2A47;box-shadow:inset -.2rem -.2rem 0 #000;}
.cannonball.from-blu{animation:cb-right .55s cubic-bezier(.3,0,.7,1) both;}
.cannonball.from-rosso{animation:cb-left .55s cubic-bezier(.3,0,.7,1) both;}
@keyframes cb-right{0%{left:18%;transform:translateY(0);}50%{transform:translateY(-4rem);}100%{left:80%;transform:translateY(0);}}
@keyframes cb-left{0%{left:80%;transform:translateY(0);}50%{transform:translateY(-4rem);}100%{left:18%;transform:translateY(0);}}
.cannon-flash{position:absolute;z-index:3;bottom:3.6rem;font-size:1.8rem;animation:explosion-pop .4s ease-out both;}
.cannon-flash.from-blu{left:18%;} .cannon-flash.from-rosso{left:76%;}
.sea-end{position:relative;height:6rem;width:10rem;margin:0 auto;background:linear-gradient(180deg,transparent 50%,#2F8FD6 50%);border-radius:0 0 50% 50%;overflow:hidden;}
.sea-end .ship-emoji.sunk{position:absolute;left:3rem;top:0;font-size:3.6rem;animation:ship-sink 2s ease-in forwards;}
.sea-bubbles{position:absolute;left:4rem;bottom:.2rem;font-size:1.6rem;animation:smoke-up 1.6s 1s ease-out infinite;}

/* ---- Ruota della fortuna ---- */
.wheel-scores{margin-top:0;}
.wheel-scores .team-box{padding:.4rem .8rem;}
.wheel-scores .team-box .score{font-size:2rem;}
.wheel-goal{height:.55rem;border-radius:999px;background:var(--paper-line);overflow:hidden;margin-top:.2rem;}
.wheel-goal i{display:block;height:100%;border-radius:999px;transition:width .6s ease;}
.team-blu .wheel-goal i{background:#3D7BF5;} .team-rosso .wheel-goal i{background:var(--coral);}
.wheel-wrap{position:relative;width:17rem;height:17rem;margin:1.4rem auto .6rem;}
.wheel{
  width:100%;height:100%;border-radius:50%;border:.5rem solid #fff;position:relative;transition:transform 3s cubic-bezier(.17,.67,.16,.99);
  box-shadow:0 0 0 .35rem var(--ink-dark),0 10px 0 .35rem rgba(24,43,92,.25);
  background:conic-gradient(var(--coral) 0deg 45deg,var(--sun) 45deg 90deg,var(--grass) 90deg 135deg,#3D7BF5 135deg 180deg,var(--plum) 180deg 225deg,#FF8FA3 225deg 270deg,#2EC4B6 270deg 315deg,#F5A623 315deg 360deg);
}
.wheel-label{position:absolute;top:50%;left:50%;transform-origin:0 0;font-family:'Baloo 2';font-weight:800;color:#fff;font-size:1.5rem;margin-left:-1.2rem;margin-top:-.9rem;width:2.4rem;text-align:center;text-shadow:0 2px 0 rgba(0,0,0,.3);}
.wheel-hub{position:absolute;left:50%;top:50%;width:3.2rem;height:3.2rem;margin:-1.6rem 0 0 -1.6rem;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:1.6rem;box-shadow:0 3px 0 rgba(0,0,0,.2);}
.wheel-pointer{position:absolute;top:-1.5rem;left:50%;transform:translateX(-50%);font-size:2.6rem;z-index:2;color:var(--coral-dark);text-shadow:0 3px 0 #fff;transform-origin:50% 10%;}
.wheel-wrap.spinning .wheel-pointer{animation:pointer-tick .12s ease-in-out infinite alternate;}
@keyframes pointer-tick{from{transform:translateX(-50%) rotate(-12deg);}to{transform:translateX(-50%) rotate(8deg);}}
.wheel-lights{position:absolute;inset:-1.1rem;border-radius:50%;background:repeating-conic-gradient(var(--sun) 0 4deg,transparent 4deg 22.5deg);
  -webkit-mask:radial-gradient(circle,transparent 62%,#000 63% 70%,transparent 71%);mask:radial-gradient(circle,transparent 62%,#000 63% 70%,transparent 71%);}
.wheel-wrap.spinning .wheel-lights{animation:lights 0.35s steps(2) infinite;}
@keyframes lights{50%{transform:rotate(11deg);}}
.wheel-cta{text-align:center;}
.wheel-row{display:grid;grid-template-columns:1fr auto 1fr;gap:1.2rem;align-items:center;margin-top:.6rem;}
.wheel-mini{display:flex;flex-direction:column;align-items:center;}
.wheel-mini .wheel-wrap{width:7.5rem;height:7.5rem;margin:.8rem auto .4rem;}
.wheel-mini .wheel-label{font-size:.85rem;margin-left:-.7rem;margin-top:-.55rem;width:1.4rem;transform:none !important;display:none;}
.wheel-mini .wheel-hub{width:2rem;height:2rem;margin:-1rem 0 0 -1rem;font-size:1rem;}
.wheel-mini .wheel-pointer{font-size:1.8rem;top:-1.1rem;}
.wheel-prize{text-align:center;font-family:'Baloo 2';font-weight:800;color:var(--ink-dark);line-height:1.1;}
.wheel-prize strong{display:block;font-size:2.8rem;color:var(--coral);animation:star-pop .5s cubic-bezier(.3,1.7,.5,1) both;}

/* ---- Corsa allo spazio ---- */
.rocket-row{display:grid;grid-template-columns:1fr 13rem 1fr;gap:1.2rem;align-items:stretch;}
.space-scene{position:relative;border-radius:1.6rem;overflow:hidden;min-height:24rem;border:4px solid #fff;box-shadow:0 6px 0 rgba(24,43,92,.2);display:flex;justify-content:space-around;
  background:radial-gradient(1.5px 1.5px at 20% 30%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 70% 15%,#fff 50%,transparent 51%),
    radial-gradient(2px 2px at 40% 60%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 85% 70%,#fff 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 10% 80%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 55% 40%,#FFE58A 50%,transparent 51%),
    linear-gradient(180deg,#0B1440 0%,#26307A 60%,#4B55A8 100%);}
.space-moon{position:absolute;top:.5rem;left:50%;width:3.2rem;height:3.2rem;margin-left:-1.6rem;border-radius:50%;
  background:radial-gradient(circle at 35% 40%,#E8C95A 0 .35rem,transparent .4rem),radial-gradient(circle at 65% 65%,#E8C95A 0 .5rem,transparent .55rem),radial-gradient(circle at 60% 30%,#E8C95A 0 .25rem,transparent .3rem),#FFE58A;
  box-shadow:0 0 1.5rem .3rem rgba(255,229,138,.6);}
.space-moon.big{position:relative;display:inline-block;top:0;left:0;margin:0;width:5rem;height:5rem;}
.space-earth{position:absolute;bottom:-1.4rem;left:50%;margin-left:-1.6rem;font-size:3.2rem;}
.space-lane{position:relative;width:45%;}
.space-lane::before{content:"";position:absolute;left:50%;top:4.2rem;bottom:1.5rem;border-left:2px dashed rgba(255,255,255,.3);}
.space-lane.blu::before{border-color:rgba(120,170,255,.6);} .space-lane.rosso::before{border-color:rgba(255,140,120,.6);}
.space-label{position:absolute;bottom:.3rem;left:50%;transform:translateX(-50%);font-size:1.1rem;z-index:2;}
.rocket{position:absolute;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;transition:bottom 1s cubic-bezier(.3,.1,.3,1);z-index:1;}
.rocket-body{display:inline-block;font-size:2.8rem;transform:rotate(-45deg);}
.rocket-flame{font-size:1.2rem;transform:rotate(180deg);margin-top:-.6rem;opacity:.4;}
.rocket.boost .rocket-flame{font-size:2rem;opacity:1;animation:flame 0.12s ease-in-out infinite alternate;}
.rocket.boost .rocket-body{animation:rocket-shake .1s linear 8;}
@keyframes flame{from{transform:rotate(180deg) scaleY(.8);}to{transform:rotate(180deg) scaleY(1.25);}}
@keyframes rocket-shake{0%,100%{transform:rotate(-45deg) translateX(0);}50%{transform:rotate(-45deg) translateX(2px);}}
.space-win{font-size:5rem;}
.rocket-landed{position:absolute;left:55%;top:-1rem;font-size:2.6rem;transform:rotate(-45deg);animation:star-pop .8s .3s cubic-bezier(.3,1.7,.5,1) both;}

/* ---- Palloncini / Pioggia a squadre ---- */
.arc-versus{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.arc-half{display:flex;flex-direction:column;gap:.4rem;}
.arc-half-head{display:flex;justify-content:space-between;align-items:center;font-family:'Baloo 2';font-weight:800;font-size:1.4rem;color:#fff;border-radius:1rem;padding:.1rem 1rem;}
.arc-half.blu .arc-half-head{background:#3D7BF5;box-shadow:0 4px 0 #2A58BF;} .arc-half.rosso .arc-half-head{background:var(--coral);box-shadow:0 4px 0 var(--coral-dark);}
.arc-team-score{display:inline-block;font-size:2rem;min-width:2.5rem;text-align:center;background:#fff;border-radius:999px;line-height:1.3;}
.arc-half.blu .arc-team-score{color:#2A58BF;} .arc-half.rosso .arc-team-score{color:var(--coral-dark);}
.arc-half.blu .arc-field{border-color:#3D7BF5;} .arc-half.rosso .arc-field{border-color:var(--coral);}
.arc-versus .arc-field{height:max(20rem, calc(100vh - 13.5rem));}
.wrap.view-arcadeVersus{justify-content:flex-start;}
.fx-minus{color:var(--coral-dark);font-size:1.7rem;text-shadow:0 2px 0 #fff;}

@media(max-width:900px){
  .rocket-row{grid-template-columns:1fr 1fr;} .space-scene{grid-column:1/-1;grid-row:1;min-height:14rem;}
  .wheel-row{grid-template-columns:1fr 1fr;} .wheel-mini{grid-column:1/-1;grid-row:1;}
  .tug-kid{width:2.2rem;height:2.2rem;font-size:1.4rem;} .tug-group{width:80%;}
}
@media(max-width:700px){
  .arc-versus{grid-template-columns:1fr;} .arc-versus .arc-field{height:16rem;}
  .rocket-row,.wheel-row{grid-template-columns:1fr;} .rocket-row .split-col,.wheel-row .split-col{min-width:0;}
}

/* nelle sfide a gara lo spazio in verticale è prezioso: colonne un po' più strette in altezza */
.wrap.view-tugOfWar,.wrap.view-shipBattle,.wrap.view-rocket,.wrap.view-wheel{padding-bottom:1rem;}
.wrap.view-tugOfWar .split-row,.wrap.view-shipBattle .split-row{margin-top:.5rem;}
.wrap.view-tugOfWar .split-col,.wrap.view-shipBattle .split-col{padding:.8rem 1rem;}

/* regole "a squadre" con parole lunghe (coppie, frasi, plurali) */
.rule-tag{display:inline-block;background:var(--sun);color:var(--charcoal);border-radius:.5rem;padding:0 .5rem;font-size:.9em;}
.arc-balloon.arc-long .arc-word{min-width:9rem;max-width:13rem;height:auto;min-height:7.2rem;padding:.6rem 1.1rem;font-size:1.05rem;line-height:1.15;border-radius:48%;}
.arc-drop.arc-long .arc-word{max-width:16rem;font-size:1.1rem;line-height:1.2;}
.arc-item.arc-clear .arc-word{animation:fx-fade .4s ease-out forwards;}
.shared-card .quiz-word{font-size:clamp(2.2rem,6vw,3.4rem);}
.shared-answer{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:.8rem;}
.shared-answer .feedback{margin:0;}

/* finestra "Nomi delle squadre" */
#team-modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;background:rgba(24,43,92,.45);animation:fx-fade .2s reverse;}
.team-modal-box{width:min(30rem,100%);background:#fff;border-radius:1.6rem;padding:1.2rem 1.4rem;box-shadow:0 10px 0 rgba(24,43,92,.25);animation:fx-enter .3s cubic-bezier(.3,1.6,.5,1);}
.team-modal-box h2{margin-bottom:.1rem;}
.team-name-row{display:flex;align-items:center;gap:.6rem;margin-top:.6rem;}
.team-name-row span{font-size:1.6rem;}
.team-name-row input{flex:1;font:inherit;font-family:'Baloo 2';font-weight:700;font-size:1.2rem;padding:.35rem .8rem;border-radius:.9rem;border:3px solid var(--paper-line);}
.tn-blu input{border-color:#3D7BF5;} .tn-rosso input{border-color:var(--coral);} .tn-verde input{border-color:var(--grass);}
.race-team{position:absolute;right:2.6rem;top:50%;transform:translateY(-50%);font-family:'Baloo 2';font-weight:800;font-size:.95rem;color:var(--ink-dark);opacity:.55;max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sec p .link-btn{font-size:inherit;padding:0;}

/* ============ ANIMAZIONI DEI GIOCHI "CLASSICI" ============ */
/* Memory: la carta si gira, la coppia trovata salta, quella sbagliata trema */
.card-turn{animation:card-turn .35s ease-out;}
@keyframes card-turn{0%{transform:perspective(600px) rotateY(90deg) scale(.95);}100%{transform:perspective(600px) rotateY(0) scale(1);}}
.card-match{animation:card-match .6s cubic-bezier(.3,1.6,.5,1);}
@keyframes card-match{0%{transform:perspective(600px) rotateY(90deg);}50%{transform:scale(1.18) rotate(-4deg);}100%{transform:none;}}
.card-mismatch{animation:card-turn .35s ease-out,shake-wrong .4s .35s ease;background:var(--coral) !important;border-color:var(--coral-dark) !important;color:#fff !important;box-shadow:0 5px 0 var(--coral-dark) !important;}
.memoria-card:not(:disabled):hover,.memgram-card:not(:disabled):hover{transform:translateY(-3px) rotate(-1.5deg);}
.memoria-card,.memgram-card{transition:transform .12s;}

/* Anagramma: la lettera cade nella casella; parola giusta = ola, sbagliata = scossa */
.slot-drop{animation:slot-drop .3s cubic-bezier(.3,1.6,.5,1);}
@keyframes slot-drop{0%{transform:translateY(-1.2rem) scale(.6);opacity:0;}100%{transform:none;opacity:1;}}
.anagram-slot.slot-win{background:var(--grass);border-color:var(--grass-dark);color:#fff;animation:slot-wave .6s calc(var(--i) * .07s) ease both;}
@keyframes slot-wave{0%,100%{transform:none;}40%{transform:translateY(-.9rem) rotate(-6deg);}70%{transform:translateY(.1rem);}}
.anagram-slot.slot-wrong{background:var(--coral);border-color:var(--coral-dark);color:#fff;animation:shake-wrong .4s ease;}
.anagram-tile{transition:transform .1s;}
.anagram-tile:hover{transform:translateY(-3px);}
.anagram-tile:active{transform:translateY(3px) scale(.95);}

/* Caccia: tocco che rimbalza; al controllo le parole si rivelano una dopo l'altra */
.caccia-chip.tap-pop{animation:fx-bump .35s ease;}
.caccia-chip.right{animation:chip-reveal .5s calc(var(--i) * .08s) cubic-bezier(.3,1.6,.5,1) both;}
.caccia-chip.wrong{animation:chip-reveal .5s calc(var(--i) * .08s) ease both,shake-wrong .4s calc(var(--i) * .08s + .5s) ease;}
.caccia-chip.missed{animation:chip-missed 1s calc(var(--i) * .08s) ease 2;}
@keyframes chip-reveal{0%{transform:scale(.7) translateY(.4rem);opacity:.4;}100%{transform:none;opacity:1;}}
@keyframes chip-missed{0%,100%{box-shadow:0 5px 0 var(--paper-line);}50%{box-shadow:0 0 0 .4rem rgba(255,200,61,.6);}}

/* Ordina: la parola scelta si solleva, vola nel cesto; il cesto la "prende" */
.ordina-chip{transition:transform .12s;}
.ordina-chip.selected{transform:translateY(-6px) rotate(-3deg);animation:chip-wiggle 1.2s ease-in-out infinite;}
@keyframes chip-wiggle{0%,100%{transform:translateY(-6px) rotate(-3deg);}50%{transform:translateY(-8px) rotate(3deg);}}
.fx-flyer{font-family:'Baloo 2';font-weight:800;font-size:1.25rem;background:var(--sun);color:var(--charcoal);border:4px solid var(--sun-dark);border-radius:1rem;padding:.3rem .9rem;}
.bin-catch{animation:bin-catch .5s cubic-bezier(.3,1.6,.5,1);}
@keyframes bin-catch{0%{transform:none;}35%{transform:scale(1.08,.92);background:#DDF7E6;}100%{transform:none;}}

/* Collega: la parola scelta pulsa, il filo unisce la coppia */
.collega-item.selected{animation:sel-pulse 1s ease-in-out infinite;}
@keyframes sel-pulse{0%,100%{transform:none;}50%{transform:scale(1.04);}}
.fx-link{height:.4rem;width:var(--len);margin-top:-.2rem;border-radius:999px;background:linear-gradient(90deg,var(--sun),var(--coral),var(--plum));transform-origin:0 50%;animation:fx-link .9s ease-out forwards;box-shadow:0 0 .6rem rgba(255,200,61,.8);}
@keyframes fx-link{0%{transform:rotate(var(--ang)) scaleX(0);opacity:1;}45%{transform:rotate(var(--ang)) scaleX(1);opacity:1;}100%{transform:rotate(var(--ang)) scaleX(1);opacity:0;}}

/* Intruso: l'intruso salta fuori, le altre si stringono tra loro */
.word-tile.intruder-out{animation:intruder-out .8s cubic-bezier(.3,1.5,.5,1);}
@keyframes intruder-out{0%{transform:none;}30%{transform:translateY(-1rem) rotate(-8deg) scale(1.1);}60%{transform:translateY(-.4rem) rotate(6deg);}100%{transform:none;}}
.word-tile.same-group{animation:same-group .6s ease;opacity:.8;}
@keyframes same-group{50%{transform:scale(.94);}}

/* ============ ⛄ SALVA IL PUPAZZO ============ */
.pupazzo-card{display:grid;grid-template-columns:13rem 1fr;gap:1.4rem;align-items:center;text-align:center;}
.pupazzo-scene{background:linear-gradient(180deg,#CDEBFF 0 70%,#fff 70%);border-radius:1.4rem;padding:.4rem;}
.pupazzo-svg{width:100%;height:auto;display:block;}
.pz-body,.pz-hat{transition:transform .6s cubic-bezier(.3,1.4,.5,1);}
.pz-rays{animation:rays 8s linear infinite;}
@keyframes rays{to{transform:rotate(360deg);}}
.pz-drop{animation:pz-drop 1.1s ease-in infinite;}
@keyframes pz-drop{0%{transform:translateY(0);opacity:1;}100%{transform:translateY(60px);opacity:0;}}
.pupazzo-svg.won .pz-body{animation:pz-dance .6s ease-in-out 3;}
@keyframes pz-dance{50%{transform:translateY(-10px) rotate(-3deg);}}
.pz-word{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin:.6rem 0 .4rem;}
.pz-letter{width:2.7rem;height:3.2rem;border-bottom:.35rem solid var(--ink);display:grid;place-items:center;font-family:'Baloo 2';font-weight:800;font-size:2rem;color:var(--ink-dark);}
.pz-letter.reveal{animation:card-turn .4s ease-out;color:var(--grass-dark);}
.pz-letter.missed{color:var(--coral);}
.pz-letter.win{animation:slot-wave .6s calc(var(--i) * .07s) ease both;color:var(--grass-dark);}
.pz-lives{font-size:1.3rem;letter-spacing:.15rem;margin-bottom:.4rem;}
.pz-keys{display:grid;grid-template-columns:repeat(10,1fr);gap:.35rem;max-width:34rem;margin:0 auto;}
.pz-key{font-family:'Baloo 2';font-weight:800;font-size:1.25rem;padding:.35rem 0;border-radius:.7rem;border:3px solid var(--paper-line);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--paper-line);transition:transform .1s;}
.pz-key:not(:disabled):hover{transform:translateY(-2px);border-color:var(--blue);}
.pz-key:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 var(--paper-line);}
.pz-key.hit{background:var(--grass);border-color:var(--grass-dark);color:#fff;box-shadow:0 4px 0 var(--grass-dark);}
.pz-key.miss{background:#E6ECF5;color:#9AA7C0;box-shadow:none;}
.pz-key.miss.last{animation:shake-wrong .4s ease;background:var(--coral);color:#fff;border-color:var(--coral-dark);}
.pz-key.hit.last{animation:fx-bump .4s ease;}
.pz-result{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:.6rem;}
.pz-result .feedback{margin:0;}
@media(max-width:700px){.pupazzo-card{grid-template-columns:1fr;} .pupazzo-scene{max-width:10rem;margin:0 auto;} .pz-keys{grid-template-columns:repeat(7,1fr);} .pz-letter{width:2rem;height:2.6rem;font-size:1.5rem;}}

/* ============ 🏆 CHI VUOL ESSERE CAMPIONE? ============ */
.campione-row{display:grid;grid-template-columns:1fr 13rem;gap:1.2rem;align-items:start;}
.campione-top{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.6rem;}
.joker{display:flex;align-items:center;gap:.35rem;font-family:'Baloo 2';font-weight:800;font-size:1rem;background:#fff;border:3px solid var(--plum);color:var(--ink-dark);border-radius:999px;padding:.2rem .9rem .2rem .5rem;cursor:pointer;box-shadow:0 4px 0 #6237C9;}
.joker span{font-size:1.3rem;}
.joker:not(:disabled):hover{transform:translateY(-2px);}
.joker.used{opacity:.35;text-decoration:line-through;box-shadow:none;}
.joker:disabled{cursor:default;}
.campione-retire{margin-left:auto;padding:.3rem 1rem;font-size:1rem;}
.campione-q{position:relative;margin-top:0;background:linear-gradient(180deg,#26307A,#1B2260);border-color:#FFC83D;color:#fff;}
.campione-q .quiz-prompt{color:#CFE0F5;}
.campione-q .quiz-prompt strong{color:var(--sun);}
.campione-q .quiz-word{color:#fff;text-shadow:0 3px 0 rgba(0,0,0,.3);}
.campione-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.campione-opts:has(> :nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr));}
.campione-opt{display:flex;align-items:center;gap:.6rem;text-align:left;font-family:'Baloo 2';font-weight:800;font-size:1.3rem;color:#fff;cursor:pointer;
  background:#3A4598;border:3px solid #7E8BE0;border-radius:999px;padding:.45rem 1rem;transition:transform .12s,background .2s;}
.campione-opt:not(:disabled):hover{background:#4B58B8;transform:translateY(-2px);}
.co-letter{color:var(--sun);}
.campione-opt.hidden{visibility:hidden;}
.campione-opt.locked{background:#F5A623;border-color:#FFE58A;color:#1E2A47;animation:locked-pulse .45s ease-in-out infinite alternate;}
.campione-opt.locked .co-letter{color:#1E2A47;}
@keyframes locked-pulse{from{box-shadow:0 0 0 0 rgba(255,200,61,.8);}to{box-shadow:0 0 0 .5rem rgba(255,200,61,0);}}
.campione-opt.right{background:var(--grass);border-color:#B6F5C9;animation:right-blink .35s ease 4;}
@keyframes right-blink{50%{background:#7BE2A4;}}
.campione-opt.wrong{background:var(--coral);border-color:#FFC4B6;}
.campione-opt.owl-tip{border-color:var(--sun);box-shadow:0 0 0 .25rem rgba(255,200,61,.6);}
.campione-opt:disabled{cursor:default;}
.owl-bubble{display:flex;align-items:center;gap:.6rem;justify-content:center;background:#fff;color:var(--ink-dark);border-radius:1rem;padding:.3rem .9rem;margin:-.2rem auto .7rem;max-width:32rem;font-weight:700;animation:fx-enter .4s cubic-bezier(.3,1.6,.5,1);}
.owl-mini{width:2.6rem;flex:0 0 2.6rem;}
.ladder{display:flex;flex-direction:column;gap:.18rem;background:linear-gradient(180deg,#26307A,#1B2260);border:3px solid #FFC83D;border-radius:1.2rem;padding:.5rem;}
.ladder-step{display:flex;justify-content:space-between;align-items:center;font-family:'Baloo 2';font-weight:800;color:#AEB8E8;border-radius:999px;padding:.02rem .7rem;font-size:.95rem;line-height:1.45;}
.ladder-step span{opacity:.7;}
.ladder-step.safe{color:#fff;}
.ladder-step.safe b::after{content:" 🛟";}
.ladder-step.done{color:var(--sun);}
.ladder-step.current{background:var(--sun);color:#1E2A47;animation:step-glow 1.2s ease-in-out infinite;}
@keyframes step-glow{0%,100%{box-shadow:0 0 0 0 rgba(255,200,61,.7);}50%{box-shadow:0 0 0 .3rem rgba(255,200,61,0);}}
.ladder-step.just{background:var(--grass);color:#fff;animation:step-up .7s cubic-bezier(.3,1.6,.5,1);}
@keyframes step-up{0%{transform:scale(.8);}60%{transform:scale(1.12);}100%{transform:none;}}
@media(max-width:900px){.campione-row{grid-template-columns:1fr;} .ladder{flex-direction:row;flex-wrap:wrap;} .ladder-step{flex:1 1 22%;font-size:.8rem;}}
@media(max-width:700px){.campione-opts,.campione-opts:has(> :nth-child(5)){grid-template-columns:1fr;} .campione-retire{margin-left:0;}}

/* ============ AREA INSEGNANTE ============ */
.teacher-settings{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;justify-content:center;margin-top:1rem;}
.teacher-settings .link-btn{font-size:.95rem;}
/* interruttori a pillola (Argomenti, Dettato, Schede) */
.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:.8rem;margin-top:.8rem;}
.set-grid-3{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));}
.set-block{background:#fff;border:3px solid #fff;border-radius:1.3rem;padding:.7rem 1rem;box-shadow:0 5px 0 rgba(24,43,92,.13);margin-top:.8rem;}
.set-grid .set-block{margin-top:0;}
.set-block h3{font-size:1.15rem;margin:0 0 .45rem;color:var(--ink-dark);}
.set-block .hint{margin:.4rem 0 0;font-size:.85rem;}
.set-chips{display:flex;flex-wrap:wrap;gap:.4rem;}
.set-chip{font-family:'Baloo 2';font-weight:700;font-size:1rem;background:#F1F6FD;border:3px solid var(--paper-line);color:var(--ink-soft);border-radius:999px;padding:.08rem .8rem;cursor:pointer;transition:transform .1s;}
.set-chip:hover{transform:translateY(-2px);border-color:var(--blue);}
.set-chip.on{background:var(--blue);border-color:#2A58BF;color:#fff;font-weight:800;box-shadow:0 3px 0 #2A58BF;}
.set-presets{background:linear-gradient(135deg,#FFF6DA,#fff);border-color:var(--sun);}
.preset-btn{font-family:'Baloo 2';font-weight:800;font-size:1.5rem;width:3.6rem;height:3.6rem;border-radius:1rem;border:4px solid var(--sun);background:#fff;color:var(--ink-dark);cursor:pointer;box-shadow:0 5px 0 var(--sun-dark);transition:transform .1s;}
.preset-btn:hover{transform:translateY(-3px);}
.preset-btn.on{background:var(--sun);animation:fx-bump .4s ease;}

/* PIN */
.pin-card{max-width:24rem;margin:0 auto;text-align:center;}
.pin-dots{display:flex;justify-content:center;gap:.9rem;margin:.5rem 0 .8rem;}
.pin-dots span{width:1.2rem;height:1.2rem;border-radius:50%;border:3px solid var(--ink);}
.pin-dots span.on{background:var(--ink);animation:fx-bump .25s ease;}
.pin-pad{display:grid;grid-template-columns:repeat(3,3.8rem);gap:.5rem;justify-content:center;}
.pin-key{height:3.4rem;border-radius:1.1rem;border:3px solid var(--paper-line);background:#fff;font-family:'Baloo 2';font-weight:800;font-size:1.8rem;color:var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--paper-line);}
.pin-key:active{transform:translateY(4px);box-shadow:0 1px 0 var(--paper-line);}

/* Registro */
.roster-card textarea{width:100%;font:inherit;font-family:'Baloo 2';font-weight:700;font-size:1.2rem;line-height:1.5;border:3px solid var(--paper-line);border-radius:1rem;padding:.6rem .9rem;resize:vertical;}

/* Estrai a sorte */
.picker-card{text-align:center;}
.picker-stage{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin-bottom:.8rem;}
.picker-mascot{width:6rem;}
.picker-name{font-family:'Baloo 2';font-weight:800;font-size:clamp(2.6rem,7vw,5rem);color:var(--ink-dark);min-height:1.3em;line-height:1.2;}
.picker-stage.spinning .picker-name{color:var(--ink-soft);filter:blur(.5px);}
.picker-stage.landed .picker-name{color:var(--coral);animation:fx-enter .6s cubic-bezier(.3,1.6,.5,1);}
.picker-stage.landed .picker-mascot{animation:fx-hop .7s ease;}
.picker-opts{display:flex;justify-content:center;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.6rem;}
.picker-drawn{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;margin-top:.5rem;font-weight:700;color:var(--charcoal-soft);}
.picker-drawn span{background:#EEF3FB;border-radius:999px;padding:0 .6rem;}

/* Squadre casuali */
.rteams-top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.rteams-top h2{margin:0;}
.rteams-top .chip-row{margin:0;}
.rteams{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;margin-top:.8rem;}
.rteam{background:#fff;border:4px solid var(--c);border-radius:1.4rem;padding:.7rem 1rem;box-shadow:0 6px 0 var(--cd);}
.rteam.blu{--c:#3D7BF5;--cd:#2A58BF;} .rteam.rosso{--c:var(--coral);--cd:var(--coral-dark);} .rteam.verde{--c:var(--grass);--cd:var(--grass-dark);} .rteam.giallo{--c:var(--sun);--cd:var(--sun-dark);}
.rteam h3{color:var(--cd);margin:0 0 .3rem;} .rteam h3 small{color:var(--charcoal-soft);font-size:.8em;}
.rteam ul{margin:0;padding-left:1.1rem;font-family:'Baloo 2';font-weight:700;font-size:1.25rem;line-height:1.45;}
.rt-in{animation:slot-drop .4s calc(var(--i) * .04s) cubic-bezier(.3,1.6,.5,1) both;}

/* Timer */
.timer-wrap{display:flex;flex-direction:column;align-items:center;gap:1rem;}
.timer-face{--p:100;width:min(22rem,52vh);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--grass) calc(var(--p) * 1%), rgba(255,255,255,.6) 0);box-shadow:0 8px 0 rgba(24,43,92,.18);transition:background .3s;}
.timer-face.low{background:conic-gradient(var(--coral) calc(var(--p) * 1%), rgba(255,255,255,.6) 0);animation:fx-bump 1s ease infinite;}
.timer-face.done{background:var(--coral);animation:shake-wrong .5s ease 3;}
.timer-inner{width:82%;aspect-ratio:1;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:inset 0 -6px 0 rgba(0,0,0,.06);}
.timer-digits{font-family:'Baloo 2';font-weight:800;font-size:clamp(3rem,10vh,5.5rem);color:var(--ink-dark);font-variant-numeric:tabular-nums;}
.timer-controls{display:flex;gap:.8rem;align-items:center;}
.timer-presets{justify-content:center;margin:0;}

/* Dettato */
.dt-reader{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1.4rem;}
.dt-reader > span{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-weight:800;color:var(--ink-soft);}
.dettato-card{text-align:left;}
.dettato-card ol{margin:0;padding-left:1.8rem;}
.dettato-card li{padding:.15rem .4rem;border-radius:.6rem;font-size:1.15rem;line-height:1.6;}
.dettato-card li.reading{background:#FFF1C9;animation:fx-bump .5s ease;}
.dettato-card .dettato-list{columns:2;column-gap:2rem;}
.dt-say{border:none;background:none;cursor:pointer;font-size:1rem;opacity:.45;padding:0 .3rem;}
.dt-say:hover{opacity:1;}

/* Schede: anteprima su schermo come un foglio */
.ws-opts{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.4rem;}
.ws-opts label{font-weight:800;color:var(--ink-dark);display:flex;align-items:center;gap:.5rem;}
.ws-opts input[type=text]{font:inherit;font-weight:700;border:3px solid var(--paper-line);border-radius:.8rem;padding:.2rem .7rem;min-width:16rem;}
.ws-opts > span{display:flex;align-items:center;gap:.35rem;font-weight:800;color:var(--ink-dark);flex-wrap:wrap;}
.ws-bar{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-bottom:.8rem;}
.ws-preview{display:flex;flex-direction:column;gap:1.2rem;align-items:center;}
.ws-preview .ps-page{background:#fff;width:min(100%,50rem);padding:1.6rem 2rem;border-radius:.4rem;box-shadow:0 6px 24px rgba(24,43,92,.18);}

/* Foglio stampabile (anteprima e stampa) */
.ps-page{color:#111;font-family:'Nunito',system-ui,sans-serif;font-size:13pt;line-height:1.5;}
.ps-head h1{font-family:'Baloo 2';font-size:20pt;color:#111;margin:0;}
.ps-sub{margin:.1rem 0 .3rem;color:#444;}
.ps-fields{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.6rem 0 1rem;font-weight:700;}
.ps-ex{margin-bottom:1rem;break-inside:avoid;}
.ps-ex h2{font-family:'Baloo 2';font-size:14pt;color:#111;margin:.3rem 0 .1rem;}
.ps-instr{margin:0 0 .4rem;font-style:italic;color:#333;}
.ps-items{margin:0;padding-left:1.6rem;}
.ps-items li{margin:.35rem 0;}
.ps-items.two{columns:2;column-gap:2rem;} .ps-items.two li{break-inside:avoid;}
.ps-items.small{font-size:11pt;}
.ps-lines li{margin:1.1rem 0;}
.ps-line{display:inline-block;width:9rem;border-bottom:1.5px solid #333;vertical-align:bottom;height:1.1em;}
.ps-line.short{width:6rem;} .ps-line.long{width:95%;}
.ps-gap{display:inline-block;width:3.2rem;border-bottom:1.5px solid #333;height:1em;} .ps-gap.short{width:1.4rem;}
.ps-table{border-collapse:collapse;width:100%;font-size:11pt;}
.ps-table th,.ps-table td{border:1.5px solid #333;padding:.3rem .5rem;text-align:left;height:1.9em;}
.ps-table th{background:#EEE;}
.ps-solutions{font-size:11pt;}
#print-area{display:none;}
@media print{
  @page{margin:14mm;}
  body.printing{background:#fff !important;padding:0;}
  body.printing::before,body.printing::after{display:none !important;}
  body.printing > *:not(#print-area){display:none !important;}
  body.printing #print-area{display:block;}
  #print-area .ps-page + .ps-page{break-before:page;}
}

/* Statistiche */
.stats-top{display:flex;align-items:center;gap:.6rem 1.2rem;flex-wrap:wrap;margin-bottom:.4rem;}
.stats-top h2{margin:0;}
.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.8rem;margin:.6rem 0;}
.stats-cards .stat-card{padding:.6rem;}
.big.good{color:var(--grass-dark) !important;} .big.mid{color:var(--sun-dark) !important;} .big.low{color:var(--coral-dark) !important;}
.sk-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(8rem,1fr) auto;gap:.8rem;align-items:center;padding:.3rem 0;border-bottom:2px dashed #EEF2F8;}
.sk-row:last-child{border-bottom:none;}
.sk-name{font-weight:800;color:var(--ink-dark);line-height:1.2;}
.sk-name small{display:block;font-weight:700;color:var(--charcoal-soft);font-size:.78rem;}
.sk-bar{position:relative;height:1.35rem;background:#EEF2F8;border-radius:999px;overflow:hidden;}
.sk-bar i{display:block;height:100%;border-radius:999px;animation:sk-grow .8s ease-out;}
@keyframes sk-grow{from{width:0 !important;}}
.sk-bar.good i{background:var(--grass);} .sk-bar.mid i{background:var(--sun);} .sk-bar.low i{background:var(--coral);}
.sk-bar span{position:absolute;right:.5rem;top:0;font-family:'Baloo 2';font-weight:800;font-size:.9rem;line-height:1.35rem;color:var(--ink-dark);}
.sk-go{padding:.2rem .8rem;font-size:.95rem;}
.stats-weak{border-color:var(--coral);}
.stu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.6rem;}
.stu-card{display:flex;flex-direction:column;align-items:center;gap:.05rem;background:#F7FAFF;border:3px solid var(--paper-line);border-radius:1rem;padding:.4rem;cursor:pointer;font:inherit;transition:transform .1s;}
.stu-card:hover{transform:translateY(-2px);border-color:var(--blue);}
.stu-card b{font-family:'Baloo 2';color:var(--ink-dark);font-size:1.05rem;}
.stu-card .big{font-family:'Baloo 2';font-weight:800;font-size:1.6rem;line-height:1.1;}
.stu-card small{color:var(--charcoal-soft);font-weight:700;font-size:.75rem;}
.stats-student{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;}
.stats-student h3{margin:.2rem 0 0;font-size:1.6rem;}
.stats-student .stats-cards{width:100%;}
@media(max-width:600px){.sk-row{grid-template-columns:1fr;gap:.3rem;}}
