/* Site-wide navbar */
.site-nav.navbar{animation:none;font-size:15px;letter-spacing:normal;font-family:Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;background:linear-gradient(90deg,#0f1035,#1d1a5e 55%,#123a6b);box-shadow:0 4px 18px rgba(8,10,40,.35);padding:.45rem 0;z-index:1030}
.site-nav .navbar-brand img{height:38px;width:auto}
.site-nav .navbar-brand span.site-brand{font-family:inherit;font-weight:800;color:#fff;letter-spacing:.3px;font-size:1.15rem}
.site-nav .nav-link{white-space:nowrap;color:rgba(255,255,255,.85)!important;font-weight:600;border-radius:10px;padding:.45rem .8rem!important;transition:background .15s,color .15s}
.site-nav .nav-link:hover,.site-nav .nav-link:focus{color:#fff!important;background:rgba(255,255,255,.1)}
.site-nav .nav-games{background:linear-gradient(90deg,#ffcf3f,#ff9f1c);color:#1b1446!important;margin-right:.35rem}
.site-nav .nav-games:hover{filter:brightness(1.08);color:#1b1446!important;background:linear-gradient(90deg,#ffd95e,#ffad38)}
.site-nav .btn-nav-cta{background:#2ee6a6;color:#0b2b22!important;font-weight:800;border-radius:999px;padding:.4rem 1rem;border:0}
.site-nav .btn-nav-cta:hover{background:#56f0bb}
.site-nav .dropdown-menu{border:0;border-radius:14px;box-shadow:0 14px 36px rgba(10,12,50,.25);padding:.4rem;min-width:13rem}
.site-nav .dropdown-item{border-radius:8px;font-weight:500;padding:.4rem .75rem}
.site-nav .dropdown-item:hover{background:#eef0ff;color:#2a1f8f}
.site-nav .dropdown-header{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#7a7fa8}
.site-nav .navbar-toggler{border-color:rgba(255,255,255,.3)}
@media (max-width:1199px){
  .site-nav .navbar-collapse{padding:.6rem 0}
  .site-nav .nav-games{display:inline-block;margin:.25rem 0}
  .site-nav .dropdown-menu{box-shadow:none;background:rgba(255,255,255,.06)}
  .site-nav .dropdown-item{color:#e8e9ff}
  .site-nav .dropdown-header{color:#a9acd6}
}

/* Home page */
.home-v2{--hv-ink:#1b1446;--hv-muted:#5d6185;font-family:inherit;color:var(--hv-ink);background:#f5f6ff;padding-bottom:3rem}
.home-v2 h1,.home-v2 h2,.home-v2 h3{font-weight:800;letter-spacing:-.01em}
.hv-hero{background:radial-gradient(circle at 80% 20%,rgba(46,230,166,.25),transparent 40%),radial-gradient(circle at 10% 90%,rgba(255,111,181,.22),transparent 45%),linear-gradient(135deg,#0f1035,#2a1f8f 60%,#123a6b);color:#fff;padding:4rem 1.25rem 4rem;overflow:hidden}
.hv-hero-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;align-items:center}
.hv-pill{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);padding:.35rem .85rem;border-radius:999px;font-weight:600;font-size:.9rem}
.hv-hero h1{font-size:clamp(2.2rem,5vw,3.8rem);margin:1rem 0;color:#fff;line-height:1.08}
.hv-hero h1 span{background:linear-gradient(90deg,#ffcf3f,#2ee6a6);-webkit-background-clip:text;background-clip:text;color:transparent}
.hv-hero p{font-size:1.15rem;color:rgba(255,255,255,.85);max-width:560px}
.hv-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.6rem 0 1.2rem}
.hv-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.8rem 1.5rem;border-radius:14px;font-weight:800;text-decoration:none;transition:transform .15s,box-shadow .15s}
.hv-btn:hover{transform:translateY(-2px)}
.hv-btn-primary{background:linear-gradient(90deg,#ffcf3f,#ff9f1c);color:#1b1446;box-shadow:0 6px 0 #c06d00}
.hv-btn-primary:hover{color:#1b1446;box-shadow:0 8px 0 #c06d00}
.hv-btn-ghost{border:2px solid rgba(255,255,255,.55);color:#fff}
.hv-btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}
.hv-trust{list-style:none;display:flex;flex-wrap:wrap;gap:1.2rem;padding:0;margin:0;color:#b9f5df;font-weight:600}
.hv-hero-art{display:flex;justify-content:center}
.hv-orbit{position:relative;width:min(340px,80vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),rgba(255,255,255,.02) 70%);display:grid;place-items:center}
.hv-orbit img{width:62%;height:auto;animation:hvBob 3s ease-in-out infinite;filter:drop-shadow(0 18px 24px rgba(0,0,0,.35))}
.hv-float{position:absolute;font-size:2.2rem;animation:hvBob 4s ease-in-out infinite}
.hv-float.f1{top:6%;left:8%}.hv-float.f2{top:10%;right:4%;animation-delay:.8s}.hv-float.f3{bottom:10%;left:2%;animation-delay:1.4s}.hv-float.f4{bottom:4%;right:12%;animation-delay:2s}
@keyframes hvBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (prefers-reduced-motion:reduce){.hv-orbit img,.hv-float{animation:none}}

.hv-section{max-width:1180px;margin:0 auto;padding:2.5rem 1.25rem 0}
.hv-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.1rem}
.hv-head h2{font-size:1.8rem;margin:0}
.hv-head a{font-weight:700;color:#4b3fd6;text-decoration:none}
.hv-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1.25rem}
.hv-game{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:22px;padding:1.5rem;text-decoration:none;color:var(--hv-ink);box-shadow:0 12px 30px rgba(27,20,70,.12);border-top:6px solid;transition:transform .18s,box-shadow .18s}
.hv-game:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(27,20,70,.2);color:var(--hv-ink)}
.hv-blue{border-color:#3d8bff}.hv-pink{border-color:#ff5fa2}.hv-green{border-color:#22c98a}.hv-purple{border-color:#7b61ff}.hv-orange{border-color:#ff8a3d}
.hv-game-emoji{font-size:2.6rem;width:70px;height:70px;display:grid;place-items:center;border-radius:18px;background:#f0f1ff;margin-bottom:.8rem}
.hv-game h3{font-size:1.35rem;margin:0 0 .4rem}
.hv-game p{color:var(--hv-muted);flex:1}
.hv-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}
.hv-tags span{font-size:.78rem;font-weight:700;background:#eef0ff;color:#4b3fd6;padding:.2rem .6rem;border-radius:999px}
.hv-game-cta{font-weight:800;color:#fff;background:#1b1446;border-radius:12px;padding:.6rem 1rem;text-align:center}
.hv-blue .hv-game-cta{background:#3d8bff}.hv-pink .hv-game-cta{background:#ff5fa2}.hv-green .hv-game-cta{background:#17b37a}.hv-purple .hv-game-cta{background:#6a4cff}.hv-orange .hv-game-cta{background:#f26b1d}

.hv-paths{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.hv-path{background:#fff;border-radius:20px;padding:1.3rem;box-shadow:0 8px 22px rgba(27,20,70,.08)}
.hv-path h3{font-size:1.2rem;margin-bottom:.9rem}
.hv-path-links{display:flex;flex-wrap:wrap;gap:.5rem}
.hv-path-links a{display:inline-flex;align-items:center;gap:.4rem;background:#f5f6ff;border:1px solid #e2e4fb;border-radius:12px;padding:.5rem .8rem;color:var(--hv-ink);font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}
.hv-path-links a:hover{background:#eef0ff;border-color:#4b3fd6}

.hv-split{display:grid;grid-template-columns:1.2fr 1fr;gap:1.25rem}
.hv-card{background:#fff;border-radius:22px;padding:1.6rem;box-shadow:0 8px 22px rgba(27,20,70,.08)}
.hv-teachers{background:linear-gradient(135deg,#1b1446,#2a1f8f);color:#fff}
.hv-teachers h2{color:#fff}.hv-teachers p{color:rgba(255,255,255,.85)}
.hv-teachers ul{list-style:none;padding:0;margin:0 0 1.3rem;color:#b9f5df;font-weight:600;line-height:1.9}
.hv-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-content:center}
.hv-stats div{background:#f5f6ff;border-radius:16px;padding:1rem;text-align:center}
.hv-stats strong{display:block;font-size:1.7rem;color:#4b3fd6}
.hv-stats span{color:var(--hv-muted);font-weight:600;font-size:.9rem}

.hv-projects{display:grid;grid-template-columns:1fr 1.4fr;gap:1.25rem}
.hv-projects .hv-card{padding:.8rem;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:var(--hv-ink);font-weight:700}
.hv-book img{width:100%;height:280px;object-fit:cover;border-radius:14px}
.hv-tinker iframe{width:100%;height:280px;border-radius:14px;border:0}
.hv-news{margin-top:1.25rem;background:#fff;border-radius:20px;padding:1.2rem 1.4rem;box-shadow:0 8px 22px rgba(27,20,70,.08)}
.hv-news a{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-top:1px solid #eef0ff;color:var(--hv-ink);font-weight:600;text-decoration:none}
.hv-news small{color:var(--hv-muted)}

.hv-about p{color:var(--hv-muted);font-size:1.05rem;max-width:860px}
.hv-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.hv-links a{color:#4b3fd6;background:#fff;border-radius:999px;padding:.4rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;box-shadow:0 2px 8px rgba(27,20,70,.06)}
.hv-final{max-width:1180px;margin:2.5rem auto 0;padding:2.5rem 1.25rem;border-radius:26px;text-align:center;background:linear-gradient(135deg,#0f1035,#2a1f8f);color:#fff;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}
.hv-final h2{width:100%;color:#fff;margin-bottom:.4rem}

@media (max-width:991px){
  .hv-hero-inner,.hv-split,.hv-projects{grid-template-columns:1fr}
  .hv-hero-art{display:none}
  .hv-games,.hv-paths{grid-template-columns:1fr}
  .hv-hero{padding:3rem 1.25rem}
}

.home-v2{overflow-x:hidden}
.container.my-4:has(+ .home-v2){display:none}

/* ===== Site-wide theme layer (every page) ===== */
:root{
  --ht-ink:#1b1446;--ht-muted:#5d6185;--ht-primary:#4b3fd6;--ht-primary-dark:#2a1f8f;
  --ht-yellow:#ffcf3f;--ht-orange:#ff9f1c;--ht-teal:#2ee6a6;--ht-bg:#f5f6ff;--ht-line:#e2e4fb;
  --bs-primary:#4b3fd6;--bs-primary-rgb:75,63,214;
  --bs-link-color:#4b3fd6;--bs-link-color-rgb:75,63,214;--bs-link-hover-color:#2a1f8f;--bs-link-hover-color-rgb:42,31,143;
  --bs-body-color:#1b1446;--bs-body-bg:#f5f6ff;--bs-border-color:#e2e4fb;
  --bs-border-radius:.75rem;--bs-border-radius-sm:.5rem;--bs-border-radius-lg:1rem;--bs-border-radius-xl:1.25rem;
  --bs-body-font-family:Inter,system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
}
body{font-family:var(--bs-body-font-family);background:var(--ht-bg);color:var(--ht-ink)}
h1,h2,h3{font-weight:800;letter-spacing:-.01em}
h4,h5{font-weight:700}
::selection{background:#ffe48a;color:var(--ht-ink)}

.btn{border-radius:12px;font-weight:700}
.btn-primary{--bs-btn-bg:#4b3fd6;--bs-btn-border-color:#4b3fd6;--bs-btn-hover-bg:#3a2fc0;--bs-btn-hover-border-color:#3a2fc0;--bs-btn-active-bg:#2a1f8f;--bs-btn-active-border-color:#2a1f8f;--bs-btn-disabled-bg:#4b3fd6;--bs-btn-disabled-border-color:#4b3fd6;--bs-btn-focus-shadow-rgb:75,63,214}
.btn-primary:hover,.btn-primary:focus{background-color:#3a2fc0;border-color:#3a2fc0}
.btn-outline-primary{--bs-btn-color:#4b3fd6;--bs-btn-border-color:#4b3fd6;--bs-btn-hover-bg:#4b3fd6;--bs-btn-hover-border-color:#4b3fd6;--bs-btn-active-bg:#2a1f8f;--bs-btn-active-border-color:#2a1f8f;--bs-btn-focus-shadow-rgb:75,63,214}
.btn-warning{--bs-btn-bg:#ffcf3f;--bs-btn-border-color:#ffcf3f;--bs-btn-color:#1b1446;--bs-btn-hover-bg:#ffbf1a;--bs-btn-hover-border-color:#ffbf1a;--bs-btn-hover-color:#1b1446;--bs-btn-active-bg:#ff9f1c;--bs-btn-active-border-color:#ff9f1c}
.btn-success{--bs-btn-bg:#17b37a;--bs-btn-border-color:#17b37a;--bs-btn-hover-bg:#119a68;--bs-btn-hover-border-color:#119a68}
.btn-info{--bs-btn-bg:#3d8bff;--bs-btn-border-color:#3d8bff;--bs-btn-color:#fff;--bs-btn-hover-bg:#2f78e6;--bs-btn-hover-border-color:#2f78e6;--bs-btn-hover-color:#fff}

.card{--bs-card-border-color:var(--ht-line);--bs-card-border-radius:18px;--bs-card-inner-border-radius:17px;border-radius:18px;box-shadow:0 8px 22px rgba(27,20,70,.07)}
.card-title{font-weight:700}
.list-group{--bs-list-group-border-color:var(--ht-line);--bs-list-group-border-radius:14px;--bs-list-group-active-bg:#4b3fd6;--bs-list-group-active-border-color:#4b3fd6;--bs-list-group-action-hover-bg:#eef0ff}
.episode-item{transition:background .15s}
.episode-item:not(.active):hover{background:#eef0ff}
.alert{border-radius:14px}
.badge{border-radius:999px;font-weight:700}
.dropdown-menu{border-radius:14px;border-color:var(--ht-line);box-shadow:0 14px 36px rgba(10,12,50,.15)}
.nav-tabs .nav-link.active,.nav-pills .nav-link.active{font-weight:700}
.nav-pills{--bs-nav-pills-link-active-bg:#4b3fd6}
.table{--bs-table-striped-bg:#f5f6ff;--bs-table-hover-bg:#eef0ff}
.progress{--bs-progress-bar-bg:#4b3fd6;border-radius:999px}
.modal-content{border:0;border-radius:20px}
.page-link{--bs-pagination-color:#4b3fd6;--bs-pagination-active-bg:#4b3fd6;--bs-pagination-active-border-color:#4b3fd6}

.form-control,.form-select{border-radius:12px;border:1.5px solid #dcdff5}
.form-control:focus,.form-select:focus{border-color:#4b3fd6;box-shadow:0 0 0 .2rem rgba(75,63,214,.18)}
.form-check-input:checked{background-color:#4b3fd6;border-color:#4b3fd6}
textarea{background-color:#fff;border:1.5px solid #dcdff5;border-radius:12px}

section .section-title{color:var(--ht-ink);text-transform:none;font-weight:800}
.tab{border:0;background:transparent}
.tab button{background:linear-gradient(90deg,#2a1f8f,#4b3fd6);font-family:inherit;color:#fff;border-radius:12px;margin-bottom:8px;box-shadow:0 4px 0 #1b1446}
.tab button:hover{background:#4b3fd6;color:#fff}
.tab button.active{background:linear-gradient(90deg,#ff9f1c,#ffcf3f);color:#1b1446;box-shadow:0 4px 0 #c06d00}

/* ===== Footer ===== */
.site-footer{margin-top:3rem;padding:0;color:rgba(255,255,255,.85);background:radial-gradient(circle at 85% 0%,rgba(46,230,166,.18),transparent 35%),radial-gradient(circle at 5% 100%,rgba(255,111,181,.16),transparent 40%),linear-gradient(135deg,#0f1035,#1d1a5e 55%,#123a6b);font-family:var(--bs-body-font-family)}
.site-footer .sf-inner{max-width:1180px;margin:0 auto;padding:3rem 1.25rem 1.5rem}
.site-footer .sf-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
.site-footer .sf-logo{display:inline-flex;align-items:center;gap:.6rem;font-size:1.3rem;font-weight:800;color:#fff;text-decoration:none}
.site-footer .sf-brand p{margin:.9rem 0 1.2rem;max-width:340px;line-height:1.6;color:rgba(255,255,255,.75)}
.site-footer .sf-cta{display:inline-block;background:linear-gradient(90deg,#ffcf3f,#ff9f1c);color:#1b1446;font-weight:800;padding:.6rem 1.1rem;border-radius:12px;text-decoration:none;box-shadow:0 4px 0 #c06d00;transition:transform .15s}
.site-footer .sf-cta:hover{transform:translateY(-2px);color:#1b1446;text-decoration:none}
.site-footer h4{color:#ffcf3f;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin:0 0 1rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li+li{margin-top:.55rem}
.site-footer .sf-col a{color:rgba(255,255,255,.85);font-weight:600;text-decoration:none;transition:color .15s}
.site-footer .sf-col a:hover{color:#2ee6a6;text-decoration:none}
.site-footer address{font-style:normal;line-height:1.8;margin:0}
.site-footer .sf-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.9rem}
.site-footer .eu-funding-logo{width:240px;height:auto;background:#fff;border-radius:10px;padding:6px}
.site-footer .back-to-top{color:#fff;font-weight:700;text-decoration:none;margin:0}
.site-footer .back-to-top:hover{color:#2ee6a6;text-decoration:none}
@media (max-width:991px){.site-footer .sf-grid{grid-template-columns:1fr 1fr}.site-footer .sf-brand{grid-column:1/-1}}
@media (max-width:575px){.site-footer .sf-grid{grid-template-columns:1fr}.site-footer .sf-bottom{flex-direction:column;text-align:center}}
