/* =====================================================
   CAPITAN CORAGGIO — Sito ufficiale
   Stile: magico / cinematografico
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:ital,wght@0,400;0,600;0,700;0,800;1,600&display=swap');

:root{
  /* notte magica */
  --night-0:#070c1f;
  --night-1:#0d1430;
  --night-2:#141d47;
  --night-3:#1e2a66;
  --veil:#0a1026;

  /* accenti */
  --rosso:#ff3b4e;
  --rosso-soft:#ff6b78;
  --oro:#ffc83d;
  --oro-soft:#ffe08a;
  --blu:#5b8cff;
  --blu-bright:#7aa5ff;

  /* testo */
  --ink:#eef2ff;
  --ink-soft:#b9c3e6;
  --ink-dim:#8591bf;

  --maxw:1180px;
  --radius:24px;
  --glow-rosso:0 0 40px rgba(255,59,78,.5);
  --glow-oro:0 0 36px rgba(255,200,61,.45);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Nunito',system-ui,sans-serif;
  color:var(--ink);
  background:var(--night-0);
  line-height:1.7;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fredoka',sans-serif;line-height:1.1;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ---------- SFONDO STELLATO GLOBALE ---------- */
.sky{position:fixed;inset:0;z-index:-2;background:
  radial-gradient(130% 90% at 50% -20%, #1a2452 0%, var(--night-1) 45%, var(--night-0) 100%);}
.sky canvas{position:fixed;inset:0;z-index:-1;pointer-events:none}

/* nebulose soffuse */
.sky::before,.sky::after{
  content:"";position:fixed;border-radius:50%;filter:blur(80px);opacity:.5;z-index:-2;
}
.sky::before{width:46vw;height:46vw;left:-12vw;top:8vh;background:radial-gradient(circle,rgba(91,140,255,.35),transparent 70%)}
.sky::after{width:40vw;height:40vw;right:-10vw;top:38vh;background:radial-gradient(circle,rgba(255,59,78,.25),transparent 70%)}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(7,12,31,.55);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid rgba(123,165,255,.15);
}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:.85rem 1.4rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Fredoka';font-weight:700;font-size:1.2rem}
.brand .bheart{width:30px;height:30px;filter:drop-shadow(0 0 10px rgba(255,59,78,.7));animation:beat 1.9s ease-in-out infinite}
.brand b{background:linear-gradient(90deg,#fff,#cdd8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}
.nav-links a{font-family:'Fredoka';font-weight:500;font-size:1rem;color:var(--ink-soft);
  padding:.5rem .9rem;border-radius:999px;transition:.22s;position:relative}
.nav-links a:hover{color:#fff;background:rgba(123,165,255,.12)}
.nav-links a.active{color:#fff;background:linear-gradient(90deg,var(--rosso),var(--rosso-soft));box-shadow:var(--glow-rosso)}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.7rem;cursor:pointer}

/* ---------- LAYOUT ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.4rem}
section{padding:6rem 0;position:relative}
.narrow{max-width:760px;margin:0 auto}

.eyebrow{font-family:'Fredoka';font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  font-size:.78rem;color:var(--oro);margin-bottom:1rem;display:inline-flex;align-items:center;gap:.5rem}
.eyebrow::before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--oro),transparent)}

.sec-head{text-align:center;margin-bottom:3.4rem}
.sec-head .eyebrow{justify-content:center}
.sec-head h2{font-size:clamp(2rem,5vw,3.3rem);font-weight:700}
.sec-head p{color:var(--ink-soft);margin-top:.9rem;font-size:1.15rem;max-width:56ch;margin-left:auto;margin-right:auto}

.gradient-text{background:linear-gradient(100deg,var(--oro-soft),var(--oro) 40%,var(--rosso) 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.rosso{color:var(--rosso-soft)}
.oro{color:var(--oro)}

/* ---------- REVEAL ON SCROLL ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- HERO ---------- */
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:5rem 1.4rem 4rem;position:relative}
.hero-kicker{font-family:'Fredoka';font-weight:500;color:var(--ink-soft);letter-spacing:.3em;
  text-transform:uppercase;font-size:.8rem;margin-bottom:1.6rem}
.hero-heart{width:140px;height:140px;margin-bottom:1.4rem;position:relative;
  filter:drop-shadow(0 0 50px rgba(255,59,78,.6));animation:beat 1.8s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}12%{transform:scale(1.13)}24%{transform:scale(1)}36%{transform:scale(1.07)}48%{transform:scale(1)}}
.hero h1{font-size:clamp(3rem,11vw,7.5rem);font-weight:700;letter-spacing:-.03em;line-height:.95}
.hero h1 .l2{display:block;font-size:.42em;letter-spacing:.02em;color:var(--ink);margin-top:.4rem;font-weight:500}
.hero .tag{font-family:'Fredoka';font-weight:500;color:var(--oro-soft);font-size:clamp(1.1rem,2.6vw,1.6rem);
  margin:1.6rem 0 .6rem}
.hero .quote{color:var(--ink-soft);font-style:italic;font-size:1.05rem;max-width:40ch;margin:0 auto 2.4rem}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:var(--ink-dim);
  font-size:.8rem;font-family:'Fredoka';letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scroll-cue span{width:1px;height:34px;background:linear-gradient(var(--oro),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.2;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- BOTTONI ---------- */
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:'Fredoka';font-weight:600;font-size:1.05rem;
  padding:.95rem 1.9rem;border-radius:999px;cursor:pointer;border:0;transition:.25s;position:relative;overflow:hidden}
.btn-primary{background:linear-gradient(100deg,var(--rosso),var(--rosso-soft));color:#fff;box-shadow:var(--glow-rosso)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 0 50px rgba(255,59,78,.7)}
.btn-ghost{background:rgba(123,165,255,.08);color:#fff;border:1.5px solid rgba(123,165,255,.35)}
.btn-ghost:hover{transform:translateY(-3px);border-color:var(--blu-bright);background:rgba(123,165,255,.16)}
.btn-gold{background:linear-gradient(100deg,var(--oro),var(--oro-soft));color:#2a1f05;box-shadow:var(--glow-oro)}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 0 50px rgba(255,200,61,.7)}

/* ---------- CARD ---------- */
.grid{display:grid;gap:1.5rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

.card{background:linear-gradient(160deg,rgba(30,42,102,.5),rgba(13,20,48,.5));
  border:1px solid rgba(123,165,255,.16);border-radius:var(--radius);padding:2rem;
  backdrop-filter:blur(6px);transition:.3s;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;border-radius:var(--radius);padding:1px;
  background:linear-gradient(160deg,rgba(255,200,61,.3),transparent 40%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:.3s}
.card:hover{transform:translateY(-6px);border-color:rgba(123,165,255,.4);
  box-shadow:0 24px 60px rgba(0,0,0,.4)}
.card:hover::before{opacity:1}
.card .ico{font-size:2.4rem;margin-bottom:1rem;display:block;filter:drop-shadow(0 0 14px rgba(255,200,61,.4))}
.card .step-n{font-family:'Fredoka';font-weight:700;font-size:1rem;color:var(--night-0);
  background:linear-gradient(135deg,var(--oro),var(--oro-soft));width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;margin-bottom:1.1rem;box-shadow:var(--glow-oro)}
.card h3{font-size:1.35rem;margin-bottom:.6rem}
.card p{color:var(--ink-soft)}

/* ---------- PANEL (fascia a contrasto) ---------- */
.panel{background:
  radial-gradient(120% 100% at 50% 0%, rgba(30,42,102,.6), transparent 70%);
  border-top:1px solid rgba(123,165,255,.12);border-bottom:1px solid rgba(123,165,255,.12)}

/* ---------- IMMAGINE / SEGNAPOSTO ---------- */
.ph{border-radius:var(--radius);overflow:hidden;position:relative;
  background:linear-gradient(135deg,var(--night-2),var(--night-1));
  border:1px dashed rgba(123,165,255,.35);min-height:300px;
  display:grid;place-items:center;text-align:center}
.ph span{color:var(--ink-dim);font-family:'Fredoka';font-size:.92rem;padding:1rem;line-height:1.5}
.ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ph.tall{min-height:440px}

/* feature split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.split h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:1.2rem}
.split p{color:var(--ink-soft);margin-bottom:1rem}

/* ---------- PILL ---------- */
.pills{display:flex;flex-wrap:wrap;gap:.7rem;list-style:none}
.pills li{background:rgba(123,165,255,.1);border:1px solid rgba(123,165,255,.28);
  padding:.55rem 1.15rem;border-radius:999px;font-family:'Fredoka';font-weight:500;color:var(--ink)}

/* ---------- BIG QUOTE ---------- */
.bigquote{text-align:center;max-width:22ch;margin:0 auto;font-family:'Fredoka';font-weight:500;
  font-size:clamp(1.6rem,4.5vw,2.8rem);line-height:1.25}
.bigquote cite{display:block;font-size:.4em;font-style:normal;color:var(--ink-dim);margin-top:1.2rem;font-weight:400;letter-spacing:.05em}

/* ---------- POEM ---------- */
.poem{text-align:center;font-family:'Fredoka';font-weight:400;font-style:italic;
  font-size:clamp(1.3rem,3.2vw,1.9rem);line-height:1.55;color:var(--oro-soft)}

/* ---------- STAT / EVENTO ---------- */
.event-card{background:linear-gradient(120deg,rgba(255,59,78,.16),rgba(30,42,102,.5));
  border:1px solid rgba(255,59,78,.35);border-radius:var(--radius);padding:2.6rem;text-align:center;
  box-shadow:0 0 60px rgba(255,59,78,.15)}
.event-card .date{font-family:'Fredoka';font-weight:700;font-size:clamp(1.6rem,4vw,2.4rem)}
.event-card .place{color:var(--oro-soft);font-family:'Fredoka';font-size:1.3rem;margin:.3rem 0 1.4rem}

/* ---------- FOOTER ---------- */
.foot{border-top:1px solid rgba(123,165,255,.15);padding:4rem 1.4rem 2.5rem;
  background:linear-gradient(180deg,transparent,rgba(7,12,31,.8));text-align:center}
.foot .fheart{width:48px;height:48px;margin:0 auto 1rem;filter:drop-shadow(0 0 18px rgba(255,59,78,.6));animation:beat 1.9s ease-in-out infinite}
.foot h3{font-size:1.7rem;margin-bottom:.5rem}
.foot .fsub{color:var(--ink-soft);margin-bottom:1.8rem}
.foot-contacts{display:flex;flex-direction:column;gap:.5rem;font-family:'Fredoka';font-weight:500;font-size:1.05rem;margin-bottom:2rem}
.foot-contacts a:hover{color:var(--oro)}
.foot-social{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}
.foot-social a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:rgba(123,165,255,.1);border:1px solid rgba(123,165,255,.28);transition:.25s;font-size:1.1rem}
.foot-social a:hover{transform:translateY(-3px);background:rgba(255,200,61,.18);border-color:var(--oro)}
.foot .mini{color:var(--ink-dim);font-size:.85rem}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:2rem}
  .split.rev .ph{order:-1}
}
@media(max-width:720px){
  section{padding:4rem 0}
  .nav-toggle{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    background:rgba(10,16,38,.97);backdrop-filter:blur(14px);padding:.8rem 1.4rem 1.2rem;
    border-bottom:1px solid rgba(123,165,255,.2)}
  .nav-links.open{display:flex}
  .nav-links a{padding:.75rem .9rem;width:100%}
  .g2,.g3,.g4{grid-template-columns:1fr}
}

/* ---------- HERO SPLIT (home con personaggio) ---------- */
.hero-split{flex-direction:row;gap:2rem;max-width:var(--maxw);margin:0 auto;
  text-align:left;align-items:center;justify-content:space-between;padding-top:3rem}
.hero-split .hero-text{flex:1 1 52%;max-width:600px}
.hero-split h1{font-size:clamp(2.8rem,7vw,5.5rem)}
.hero-split .tag{margin-left:0}
.hero-split .quote{margin:1.4rem 0 2rem 0;text-align:left}
.hero-figure{flex:1 1 44%;display:flex;justify-content:center;position:relative}
.hero-figure::before{content:"";position:absolute;width:85%;height:85%;top:8%;left:50%;
  transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(255,59,78,.4),rgba(91,140,255,.2) 50%,transparent 72%);
  filter:blur(40px);z-index:0;animation:haloPulse 4s ease-in-out infinite}
@keyframes haloPulse{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.06)}}
.hero-figure img{position:relative;z-index:1;max-height:76vh;width:auto;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.5));
  animation:floatHero 5s ease-in-out infinite}
@keyframes floatHero{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@media(prefers-reduced-motion:reduce){.hero-figure::before,.hero-figure img{animation:none}}
@media(max-width:860px){
  .hero-split{flex-direction:column;text-align:center;padding-top:2rem}
  .hero-split .hero-text{max-width:100%}
  .hero-split .quote{text-align:center}
  .hero-split .btn-row{justify-content:center!important}
  .hero-figure img{max-height:50vh}
}
