*{box-sizing:border-box}
:root{
  --purple:#6237d8;--purple2:#7b51ef;--cyan:#2ed8d0;--sky:#78dffc;--yellow:#ffd83d;
  --orange:#ff8b28;--coral:#ff6c64;--pink:#ff91c8;--green:#75dc7d;--cream:#fff9eb;
  --ink:#242035;--white:#fff;--soft:#f5efff;
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Nunito",sans-serif;overflow-x:hidden}
body.modal-open{overflow:hidden}
button,input,textarea{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
img{width:100%;height:100%;object-fit:cover;display:block}
.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.topbar{height:82px;position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:rgba(255,249,235,.9);backdrop-filter:blur(14px);border-bottom:2px solid rgba(98,55,216,.12)}
.logo{display:flex;align-items:center;gap:10px}.logo-bubble{width:47px;height:47px;display:grid;place-items:center;background:var(--purple);color:#fff;border-radius:52% 48% 60% 40%/45% 55% 45% 55%;font:800 19px "Fredoka"}
.logo>span:last-child{display:flex;flex-direction:column}.logo b{font:700 15px "Fredoka";letter-spacing:.03em}.logo small{font-size:10px;color:#766f83}
.desktop-nav{display:flex;align-items:center;gap:22px;font-weight:800;font-size:12px}.desktop-nav a{position:relative}.desktop-nav a:not(.contact-pill):after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:3px;background:var(--coral);border-radius:99px;transition:.25s}.desktop-nav a:hover:after{right:0}
.contact-pill{padding:10px 16px;background:var(--yellow);border:2px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--ink)}
.menu-btn{display:none;border:0;background:transparent;font-size:27px}
.mobile-menu{position:fixed;z-index:45;inset:82px 0 0;background:var(--purple);color:white;display:flex;flex-direction:column;justify-content:center;padding:8vw;transform:translateX(100%);transition:.4s ease}
.mobile-menu a{font:700 clamp(32px,8vw,58px) "Fredoka";padding:6px 0}
.floating-ctas{position:fixed;right:14px;top:50%;z-index:40;display:flex;flex-direction:column;gap:7px;transform:translateY(-50%)}
.floating-ctas button{border:2px solid var(--ink);padding:10px 12px;border-radius:999px;font-weight:900;font-size:11px;box-shadow:3px 3px 0 var(--ink);background:#fff}
.floating-ctas button:nth-child(1){background:var(--yellow)}.floating-ctas button:nth-child(2){background:var(--green)}.floating-ctas button:nth-child(3){background:var(--pink)}

.hero{min-height:100vh;padding:140px 4vw 80px;display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:4vw;position:relative;overflow:hidden;background:linear-gradient(135deg,#fff8dc 0%,#fff2f6 48%,#e8fbff 100%)}
.hero-copy{position:relative;z-index:4}.mini-tag,.eyebrow{display:inline-flex;align-items:center;font:800 11px "Nunito";letter-spacing:.14em}
.mini-tag{background:var(--cyan);padding:9px 14px;border-radius:999px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
.hero h1{font:700 clamp(58px,8.2vw,125px)/.82 "Fredoka";letter-spacing:-.055em;margin:28px 0 30px}.hero h1 span{display:block}.hero h1 .accent{color:var(--purple);transform:rotate(-2deg);transform-origin:left center}
.hero-copy>p{max-width:650px;font-size:20px;line-height:1.65}.hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn{display:inline-flex;gap:18px;align-items:center;justify-content:center;padding:15px 20px;border:2px solid var(--ink);border-radius:999px;font-weight:900;font-size:12px;box-shadow:4px 4px 0 var(--ink);background:white;color:var(--ink)}
.btn.primary{background:var(--yellow)}.btn.secondary{background:white}.btn.green{background:var(--green)}.btn.dark{background:var(--ink);color:#fff;box-shadow:4px 4px 0 var(--purple)}
.hero-photo-wrap{position:relative;z-index:3;min-height:620px;display:flex;align-items:center;justify-content:center}.hero-photo{width:min(680px,90%);height:620px;margin:0;border:7px solid #fff;border-radius:48% 52% 46% 54%/56% 43% 57% 44%;overflow:hidden;box-shadow:0 24px 65px rgba(75,42,130,.2);transform:rotate(2deg)}
.sticker{position:absolute;z-index:5;padding:12px 18px;border:3px solid var(--ink);font:800 18px "Fredoka";box-shadow:4px 4px 0 var(--ink);transform:rotate(-8deg)}.s1{left:0;top:20%;background:var(--coral)}.s2{right:0;bottom:15%;background:var(--yellow);transform:rotate(8deg)}
.sun-shape{position:absolute;width:420px;height:420px;border-radius:50%;background:var(--yellow);right:-120px;top:-120px;opacity:.85}.doodle{position:absolute;font:700 60px "Fredoka";z-index:2}.doodle-1{left:43%;top:18%;color:var(--coral);transform:rotate(18deg)}.doodle-2{left:46%;bottom:16%;color:var(--purple);transform:rotate(-18deg)}.doodle-3{right:4%;top:35%;color:var(--cyan)}
.ticker{position:absolute;left:0;right:0;bottom:0;background:var(--purple);color:white;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);overflow:hidden}.ticker-track{display:flex;width:max-content;font:700 16px "Fredoka";padding:12px 0;white-space:nowrap}.ticker-track span{margin-right:30px}

.flag-section{padding:95px 4vw;background:#fff;display:grid;grid-template-columns:.7fr 1.3fr;gap:5vw;align-items:center}.flag-copy h2{font:700 clamp(50px,6vw,90px)/.95 "Fredoka";margin:14px 0 22px}.flag-copy p{font-size:18px;line-height:1.7}.flag-frame{margin:0;border-radius:34px;overflow:hidden;border:4px solid var(--ink);box-shadow:10px 10px 0 var(--yellow);background:white;transform:rotate(1deg)}

.story{padding:110px 4vw;background:#fff9eb}.story-intro{max-width:1150px}.story-intro h2,.section-head h2,.activities-title h2,.people-title h2,.sponsors-head h2,.thanks-title h2,.transparency-title h2,.media-head h2,.news-head h2,.shirts-head h2{font:700 clamp(50px,7vw,104px)/.96 "Fredoka";letter-spacing:-.045em;margin:18px 0 55px}
.history-timeline{position:relative;display:grid;gap:26px;max-width:1100px;margin:auto}.history-timeline:before{content:"";position:absolute;left:110px;top:0;bottom:0;width:6px;background:linear-gradient(var(--purple),var(--coral),var(--cyan),var(--green));border-radius:99px}
.history-point{display:grid;grid-template-columns:90px 1fr;gap:55px;align-items:start;position:relative}.history-point:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:var(--yellow);border:4px solid var(--ink);left:101px;top:24px}.year{font:800 13px "Fredoka";padding-top:24px;text-align:right}.history-card{border:3px solid var(--ink);border-radius:30px;padding:28px;box-shadow:6px 6px 0 var(--ink)}.history-card .icon{font-size:42px}.history-card h3{font:700 34px "Fredoka";margin:10px 0}.history-card p{font-size:17px;line-height:1.65}.purple{background:var(--purple);color:#fff}.yellow{background:var(--yellow)}.cyan{background:var(--cyan)}.coral{background:var(--coral)}.green-card{background:var(--green)}

.founder{padding:110px 4vw;background:#f1eaff;display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;align-items:center}.founder-photo{min-height:680px}.photo-placeholder{height:100%;min-height:680px;border:4px solid var(--ink);border-radius:42px;background:linear-gradient(145deg,var(--purple),var(--cyan));display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;box-shadow:10px 10px 0 var(--yellow);text-align:center}.photo-placeholder span{font-weight:900;letter-spacing:.16em}.photo-placeholder strong{font:700 clamp(60px,8vw,110px)/.9 "Fredoka"}.photo-placeholder small{margin-top:15px}
.founder-copy h2{font:700 clamp(72px,10vw,150px)/.78 "Fredoka";letter-spacing:-.06em;color:var(--purple);margin:14px 0 30px}.founder-lead{font-size:24px!important;font-weight:800}.founder-copy p{font-size:18px;line-height:1.7}.founder-copy blockquote{font:700 clamp(30px,4vw,52px)/1.05 "Fredoka";margin:40px 0;color:var(--purple)}.signature{font:700 26px "Fredoka";transform:rotate(-3deg);display:inline-block}

.club{position:relative;background:var(--purple);color:white;padding:110px 4vw;overflow:hidden}.club-head{position:relative;z-index:2;max-width:1000px}.club-head h2{font:700 clamp(50px,7vw,105px)/.96 "Fredoka";letter-spacing:-.045em;margin:18px 0 60px}.white{color:white}
.club-values{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.club-values article{background:white;color:var(--ink);border:3px solid var(--ink);border-radius:28px;padding:26px;min-height:300px;box-shadow:7px 7px 0 var(--ink)}.value-icon{display:grid;place-items:center;width:65px;height:65px;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;font:700 30px "Fredoka"}.club-values h3{font:700 29px "Fredoka";margin:45px 0 12px}.club-values p{line-height:1.6}
.big-message{position:relative;z-index:2;margin-top:90px;display:flex;flex-direction:column;align-items:center;text-align:center}.big-message span{font:800 13px "Nunito";letter-spacing:.18em}.big-message strong{font:700 clamp(68px,12vw,180px)/.82 "Fredoka";letter-spacing:-.06em}.big-message .sunny{color:var(--yellow)}.blob{position:absolute;border-radius:50%}.blob-a{width:330px;height:330px;background:var(--coral);right:-120px;top:150px}.blob-b{width:260px;height:260px;background:var(--cyan);left:-90px;bottom:180px}

.events{padding:110px 4vw;background:#fff}.section-head span+ h2 span{color:var(--purple)}.events-switch{display:flex;gap:10px;margin-bottom:35px}.event-tab{border:3px solid var(--ink);background:#fff;padding:12px 18px;border-radius:999px;font-weight:900}.event-tab.active{background:var(--yellow);box-shadow:4px 4px 0 var(--ink)}
.event-panel{display:none}.event-panel.active{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.event-card{grid-column:span 4;border:3px solid var(--ink);border-radius:30px;overflow:hidden;background:#fff;box-shadow:6px 6px 0 #ddd}.event-card.featured{grid-column:span 8;display:grid;grid-template-columns:1fr 1fr}.event-image{min-height:300px}.event-copy{padding:28px}.event-copy small{font-weight:800;color:#6c6874}.event-copy h3,.note-card h3{font:700 36px "Fredoka";margin:10px 0}.event-copy p,.note-card p{line-height:1.6}.event-status{display:inline-flex;padding:7px 10px;border:2px solid var(--ink);border-radius:999px;font-size:10px;font-weight:900}.done{background:var(--green)}.planned-label{background:var(--yellow)}.event-meta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.event-meta span{font-size:12px;background:#f4f2f7;border-radius:999px;padding:7px 10px}.mini-btn{border:2px solid var(--ink);background:var(--purple);color:#fff;border-radius:999px;padding:11px 14px;font-weight:900}.note-card{padding:30px;background:var(--pink)}
.calendar-intro{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;align-items:center}.calendar-intro p{font-size:18px;max-width:670px}.legend{display:flex;gap:14px;font-size:12px;font-weight:800}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:5px}.planned{background:var(--yellow)}.confirmed{background:var(--green)}
.calendar-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.calendar-card{border:3px solid var(--ink);border-radius:28px;padding:26px;background:#fff;box-shadow:6px 6px 0 var(--cyan)}.calendar-card:nth-child(2){box-shadow:6px 6px 0 var(--pink)}.calendar-card:nth-child(3){box-shadow:6px 6px 0 var(--yellow)}.calendar-card small{font-weight:900}.month{display:block;font:700 52px "Fredoka";color:var(--purple);margin:25px 0 5px}.calendar-card h3{font:700 28px "Fredoka";margin:0}.calendar-note{grid-column:1/-1;font-size:13px;color:#6c6874}

.results{padding:100px 4vw;background:#e8fbff;display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;align-items:center}.results-copy h2{font:700 clamp(58px,8vw,120px)/.86 "Fredoka";margin:14px 0 25px;color:var(--purple)}.results-copy p{font-size:19px;line-height:1.7}.result-stickers{display:grid;grid-template-columns:1fr 1fr;gap:15px}.result-stickers div{border:3px solid var(--ink);border-radius:28px;background:#fff;padding:26px;box-shadow:5px 5px 0 var(--ink);min-height:180px;display:flex;flex-direction:column}.result-stickers div:nth-child(1){background:var(--yellow)}.result-stickers div:nth-child(2){background:var(--pink)}.result-stickers div:nth-child(3){background:var(--green)}.result-stickers div:nth-child(4){background:var(--cyan)}.result-stickers div>span:first-child{font-size:38px}.result-stickers b{font:700 25px "Fredoka";margin:20px 0 4px}.result-stickers span{font-size:13px}

.activities{padding:110px 4vw;position:relative;background:#fff7df}.activities-title h2 span{color:var(--purple)}.activity-cloud{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start}.bubble{padding:28px;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);min-height:260px}.bubble>span{font-size:44px}.bubble h3{font:700 31px "Fredoka";margin:30px 0 10px}.bubble p{line-height:1.5}.b1{grid-column:span 4;background:var(--cyan);border-radius:50px 28px 50px 26px}.b2{grid-column:span 4;background:var(--yellow);border-radius:30px 60px 30px 60px;transform:translateY(40px)}.b3{grid-column:span 4;background:var(--pink);border-radius:60px 28px 60px 28px}.b4{grid-column:2/span 3;background:var(--green);border-radius:30px 55px 35px 55px}.b5{grid-column:5/span 4;background:var(--orange);border-radius:55px 30px 55px 30px;transform:translateY(35px)}.b6{grid-column:9/span 3;background:var(--purple);color:#fff;border-radius:30px 55px 30px 55px}

.people{padding:110px 4vw;background:#fff}.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.person{min-height:390px;padding:26px;border:3px solid var(--ink);border-radius:30px;display:flex;flex-direction:column;transition:.3s}.person:hover{transform:translateY(-10px) rotate(-1deg)}.person-top{font-size:54px}.person h3{font:700 31px "Fredoka";margin:55px 0 12px}.person p{line-height:1.6}.person button{margin-top:auto;border:0;background:transparent;text-align:left;font-weight:900}.kid{background:var(--yellow)}.teen{background:var(--cyan)}.family{background:var(--pink)}.volunteer{background:var(--green)}

.free-section{padding:100px 4vw;background:var(--coral);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:5vw}.free-big{font:700 clamp(110px,18vw,270px)/.75 "Fredoka";letter-spacing:-.08em;color:#fff;transform:rotate(-4deg);text-shadow:7px 7px 0 var(--ink)}.free-copy h2{font:700 clamp(40px,5vw,74px)/1 "Fredoka";margin:15px 0}.free-copy p{font-size:18px;line-height:1.7}

.team{padding:110px 4vw;background:#f5efff}.team .section-head h2 span{color:var(--purple)}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.team-grid article{border:3px solid var(--ink);border-radius:28px;background:#fff;padding:26px;box-shadow:5px 5px 0 var(--ink)}.team-grid article:nth-child(2){background:var(--pink)}.team-grid article:nth-child(3){background:var(--yellow)}.team-grid article:nth-child(4){background:var(--cyan)}.team-grid .highlight-team{background:var(--green)}.avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--purple);color:#fff;font:700 19px "Fredoka";border:2px solid var(--ink)}.team-grid h3{font:700 30px "Fredoka";margin:22px 0 3px}.team-grid b{font-size:12px;letter-spacing:.08em}.team-grid p{line-height:1.6}.parents-thanks{margin-top:30px;border:3px solid var(--ink);border-radius:30px;padding:28px;background:#fff;display:grid;grid-template-columns:70px 1fr;align-items:center}.parents-thanks>span{font-size:48px;color:var(--coral)}.parents-thanks p{font-size:18px;line-height:1.6;margin:0}

.sponsors{padding:110px 4vw;background:var(--yellow)}.sponsors-head{max-width:850px}.sponsors-head h2{font:700 clamp(60px,9vw,140px)/.82 "Fredoka";margin:14px 0 25px}.sponsors-head p{font-size:18px;line-height:1.6}.sponsor-wall{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:50px 0}.sponsor-placeholder{border:3px solid var(--ink);border-radius:28px;background:#fff;padding:30px;min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:6px 6px 0 var(--ink)}.sponsor-placeholder span{font:700 32px "Fredoka";color:var(--purple)}.sponsor-placeholder b{font:700 24px "Fredoka";margin-top:12px}.sponsor-placeholder small{color:#706b79}

.thanks{padding:110px 4vw;background:#fff}.thanks-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.thanks-grid article{border:3px solid var(--ink);border-radius:26px;padding:26px;min-height:230px;background:#fff;box-shadow:5px 5px 0 var(--coral)}.thanks-grid article:nth-child(2){box-shadow:5px 5px 0 var(--cyan)}.thanks-grid article:nth-child(3){box-shadow:5px 5px 0 var(--yellow)}.thanks-grid article:nth-child(4){box-shadow:5px 5px 0 var(--green)}.thanks-grid span{font-size:42px}.thanks-grid h3{font:700 28px "Fredoka";margin:22px 0 10px}.thanks-grid p{line-height:1.55}.thanks-note{margin-top:28px;font-size:16px;color:#686372}

.transparency{padding:110px 4vw;background:#e8fbff}.transparency-flow{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:55px 0}.transparency-flow div{border:3px solid var(--ink);border-radius:26px;background:#fff;padding:20px;min-width:150px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:4px 4px 0 var(--ink)}.transparency-flow div span{font-size:38px}.transparency-flow div b{margin-top:8px}.transparency-flow i{font:700 28px "Fredoka";color:var(--purple)}.transparency>p{max-width:800px;margin:auto;text-align:center;font-size:18px;line-height:1.7}

.gallery{padding:100px 4vw;background:#fff}.gallery-title{display:flex;flex-direction:column;margin-bottom:45px}.gallery-title span{font:800 13px "Nunito";letter-spacing:.18em}.gallery-title strong{font:700 clamp(56px,8vw,120px)/.9 "Fredoka";color:var(--purple)}.gallery-title p{font:700 24px "Fredoka";color:var(--coral)}
.gallery-mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:160px;gap:20px;padding:20px}.photo-card{position:relative;margin:0;border-radius:32px;overflow:hidden;background:#fff;box-shadow:0 18px 40px rgba(70,45,100,.18);border:8px solid white;transition:.35s}.photo-card:hover{transform:translateY(-8px) rotate(0deg)!important;box-shadow:0 26px 60px rgba(70,45,100,.26)}.photo-card img{transition:.5s}.photo-card:hover img{transform:scale(1.06)}.photo-card figcaption{position:absolute;left:15px;right:15px;bottom:15px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);padding:12px 14px;border-radius:18px;display:flex;justify-content:space-between;gap:12px;align-items:center}.photo-card figcaption b{font:700 16px "Fredoka"}.photo-card figcaption span{font-size:11px;color:#666}.tilt-left{transform:rotate(-1.7deg)}.tilt-right{transform:rotate(1.7deg)}.photo-card.big{grid-column:span 7;grid-row:span 3}.photo-card.tall{grid-column:span 5;grid-row:span 2}.photo-card.small{grid-column:span 5;grid-row:span 2}.photo-card.wide{grid-column:span 7;grid-row:span 2}.photo-card.medium{grid-column:3/span 8;grid-row:span 2}

.media{padding:110px 4vw;background:#242035;color:#fff}.media-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.video-card,.podcast-card{border:3px solid #fff;border-radius:30px;padding:28px;min-height:430px}.video-card{background:var(--purple)}.podcast-card{background:var(--coral)}.media-placeholder{height:220px;border-radius:22px;background:linear-gradient(135deg,#fff3,transparent);display:grid;place-items:center;font-size:70px;border:2px dashed #fff8}.video-card span,.podcast-card span{display:block;margin-top:20px;font-size:11px;font-weight:900;letter-spacing:.15em}.video-card h3,.podcast-card h3{font:700 38px "Fredoka";margin:10px 0}.video-card p,.podcast-card p{line-height:1.6}.podcast-wave{font:700 clamp(40px,7vw,80px) "Fredoka";letter-spacing:5px}.podcast-card small{display:inline-block;margin-top:30px;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);padding:8px 12px;border-radius:999px;font-weight:900}

.news{padding:110px 4vw;background:#fff7df}.notice-banner{border:3px solid var(--ink);border-radius:26px;background:var(--yellow);padding:24px;display:grid;grid-template-columns:60px 1fr;align-items:center;box-shadow:5px 5px 0 var(--ink);margin-bottom:26px}.notice-banner>span{font-size:38px}.notice-banner small{font-weight:900;letter-spacing:.1em;display:block}.notice-banner b{font:700 24px "Fredoka"}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.news-grid article{border:3px solid var(--ink);border-radius:26px;padding:26px;background:#fff;min-height:260px}.news-grid small{font-weight:900;color:var(--purple)}.news-grid h3{font:700 29px "Fredoka";margin:25px 0 10px}.news-grid p{line-height:1.6}.news-grid a{font-weight:900}

.shirts{padding:110px 4vw;background:#f1eaff}.shirts-head p{font-size:20px}.shirts-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.shirt-card{border:3px solid var(--ink);border-radius:32px;overflow:hidden;background:#fff;box-shadow:7px 7px 0 var(--ink)}.shirt-visual{min-height:470px;background:linear-gradient(135deg,var(--cyan),var(--purple));display:flex;align-items:center;justify-content:center;position:relative}.alt-shirt{background:linear-gradient(135deg,var(--yellow),var(--coral))}.shirt-shape{width:250px;height:310px;clip-path:polygon(23% 0,38% 8%,62% 8%,77% 0,100% 20%,88% 39%,78% 31%,78% 100%,22% 100%,22% 31%,12% 39%,0 20%);display:grid;place-items:center;text-align:center;font:700 38px/1 "Fredoka";color:white;text-shadow:3px 3px 0 var(--ink);border:4px solid var(--ink)}.shirt-one{background:linear-gradient(140deg,#1dc9d8,#6237d8,#ff6c64)}.shirt-two{background:linear-gradient(140deg,#ff8b28,#ff91c8,#6237d8)}.photo-pending{position:absolute;bottom:18px;background:#fff;border:2px solid var(--ink);padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900}.shirt-copy{padding:28px}.shirt-copy small{font-weight:900;color:var(--purple)}.shirt-copy h3{font:700 33px "Fredoka";margin:10px 0}.shirt-copy p{line-height:1.6}.shirt-copy a{display:inline-block;margin-top:12px;font-weight:900}.shirt-note{margin-top:24px;background:#fff;border:3px solid var(--ink);border-radius:24px;padding:20px;text-align:center;font-weight:800}

.games{padding:110px 4vw;background:var(--purple);color:#fff;display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:center}.games-copy h2{font:700 clamp(72px,11vw,170px)/.78 "Fredoka";letter-spacing:-.06em;margin:20px 0;color:var(--yellow)}.games-copy p{font-size:18px;line-height:1.7}.games-grid{display:grid;gap:14px}.games-grid article{border:3px solid var(--ink);border-radius:28px;background:#fff;color:var(--ink);padding:26px;box-shadow:6px 6px 0 var(--ink);display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center}.games-grid article>span{font-size:42px}.games-grid h3{font:700 27px "Fredoka";margin:0}.games-grid p{margin:4px 0;color:#696472}.games-grid button{border:2px solid var(--ink);border-radius:999px;padding:10px;background:#eee;font-size:10px;font-weight:900}

.contact{padding:100px 4vw;background:var(--purple);color:#fff;position:relative;overflow:hidden}.contact-star{position:absolute;right:4vw;top:40px;font-size:140px;color:var(--yellow);transform:rotate(15deg)}.contact h2{font:700 clamp(95px,18vw,270px)/.72 "Fredoka";letter-spacing:-.075em;margin:30px 0}.contact h2 span{color:var(--yellow)}.contact-copy{font-size:20px;max-width:700px}.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin:35px 0}.contact-actions button{border:3px solid var(--ink);border-radius:999px;padding:13px 18px;background:var(--yellow);box-shadow:4px 4px 0 var(--ink);font-weight:900}.contact-actions button:nth-child(2){background:var(--green)}.contact-actions button:nth-child(3){background:var(--pink)}
.contact-buttons{margin-top:45px;display:grid;gap:10px}.contact-buttons a{display:grid;grid-template-columns:180px 1fr 30px;align-items:center;border:2px solid rgba(255,255,255,.4);border-radius:22px;padding:22px 24px;font-size:13px;transition:.25s}.contact-buttons a:hover{background:white;color:var(--purple);transform:translateX(8px)}.contact-buttons strong{font:700 clamp(25px,4vw,55px) "Fredoka"}

footer{background:#242035;color:white;padding:30px 4vw;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}footer>div{display:flex;flex-direction:column}

.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:22px}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(25,20,40,.72);backdrop-filter:blur(7px)}.modal-card{position:relative;z-index:2;width:min(680px,100%);max-height:88vh;overflow:auto;background:var(--cream);border:3px solid var(--ink);border-radius:32px;padding:34px;box-shadow:9px 9px 0 var(--ink)}.modal-card h2{font:700 clamp(40px,6vw,70px)/.95 "Fredoka";color:var(--purple);margin:10px 0 25px}.modal-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);background:#fff;font-weight:900}.local-form{display:grid;gap:14px}.local-form label{display:grid;gap:6px;font-weight:800;font-size:13px}.local-form input,.local-form textarea{border:2px solid var(--ink);border-radius:14px;padding:12px;background:#fff;font-size:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-note{font-size:12px;color:#777;margin-top:14px}.donation-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.donation-options button{border:2px solid var(--ink);border-radius:16px;padding:15px;background:#fff;text-align:left;font-weight:800}.donation-options button.selected{background:var(--yellow);box-shadow:3px 3px 0 var(--ink)}.event-detail-card{width:min(800px,100%)}.event-detail-card p{line-height:1.65}.event-detail-card .event-thanks{background:#f4efff;padding:18px;border-radius:18px;margin-top:20px}

@media(max-width:1050px){
  .desktop-nav{display:none}.menu-btn{display:block}.floating-ctas{display:none}
  .hero,.flag-section,.founder,.results,.games{grid-template-columns:1fr}
  .hero-photo-wrap{min-height:540px}.hero-photo{height:520px}
  .club-values,.people-grid,.thanks-grid,.sponsor-wall{grid-template-columns:1fr 1fr}
  .event-card.featured{grid-column:1/-1}.event-card{grid-column:span 6}
  .team-grid,.news-grid{grid-template-columns:1fr 1fr}
  .media-grid,.shirts-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .topbar{padding:0 18px}.logo small{display:none}
  .hero,.flag-section,.story,.founder,.club,.events,.results,.activities,.people,.free-section,.team,.sponsors,.thanks,.transparency,.gallery,.media,.news,.shirts,.games,.contact{padding-left:18px;padding-right:18px}
  .hero h1{font-size:17vw}.hero-copy>p{font-size:17px}.hero-photo-wrap{min-height:430px}.hero-photo{width:94%;height:410px}.sticker{font-size:14px}.s1{left:-5px}.s2{right:-5px}
  .history-timeline:before{left:16px}.history-point{grid-template-columns:1fr;padding-left:50px}.history-point:after{left:4px}.year{text-align:left;padding:0}.founder-photo,.photo-placeholder{min-height:450px}
  .club-values,.people-grid,.thanks-grid,.sponsor-wall,.team-grid,.news-grid{grid-template-columns:1fr}
  .event-panel.active{display:block}.event-card,.event-card.featured{display:block;margin-bottom:16px}.event-image{min-height:250px}
  .calendar-grid{grid-template-columns:1fr}.calendar-intro{flex-direction:column;align-items:flex-start}
  .result-stickers{grid-template-columns:1fr}.activity-cloud{display:flex;flex-direction:column}.bubble{width:100%;transform:none!important}
  .free-section{grid-template-columns:1fr}.free-big{font-size:28vw}.parents-thanks{grid-template-columns:1fr}.parents-thanks>span{margin-bottom:10px}
  .gallery-mosaic{display:flex;flex-direction:column;padding:0}.photo-card{height:360px;transform:none!important}.photo-card figcaption{flex-direction:column;align-items:flex-start}
  .games-grid article{grid-template-columns:55px 1fr}.games-grid button{grid-column:1/-1}
  .contact-buttons a{grid-template-columns:1fr 24px}.contact-buttons strong{grid-column:1}.form-row,.donation-options{grid-template-columns:1fr}
  footer{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* V3.1 — mejoras de claridad y ritmo */
.people-title{
  max-width:980px;
  margin-bottom:42px;
}
.people-title h2{
  margin-bottom:18px;
}
.people-intro{
  max-width:760px;
  font-size:18px;
  line-height:1.65;
  margin:0;
  color:#5f596b;
}
.people{
  padding-top:90px;
  padding-bottom:90px;
}
.people-grid{
  align-items:stretch;
}
.person{
  min-height:330px;
}
.person h3{
  margin-top:36px;
}
.person p{
  margin-bottom:24px;
}

/* Agradecimientos */
.thanks{
  position:relative;
  overflow:hidden;
}
.thanks-title{
  max-width:1050px;
}
.thanks-title h2{
  margin-bottom:20px;
}
.thanks-lead{
  max-width:760px;
  font-size:19px;
  line-height:1.7;
  color:#5f596b;
  margin:0 0 45px;
}
.thanks-feature{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:18px;
  margin-bottom:30px;
}
.thanks-feature-copy,
.thanks-feature-visual{
  border:3px solid var(--ink);
  border-radius:30px;
  padding:34px;
}
.thanks-feature-copy{
  background:#f5efff;
  box-shadow:6px 6px 0 var(--purple);
}
.thanks-feature-copy small,
.thanks-memory small{
  font-weight:900;
  letter-spacing:.12em;
  color:var(--purple);
}
.thanks-feature-copy h3{
  font:700 clamp(34px,5vw,58px)/1 "Fredoka";
  margin:10px 0 16px;
}
.thanks-feature-copy p{
  font-size:17px;
  line-height:1.65;
  margin:0;
}
.thanks-feature-visual{
  background:var(--yellow);
  box-shadow:6px 6px 0 var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:300px;
}
.thanks-feature-visual span{
  font-size:64px;
  color:var(--coral);
}
.thanks-feature-visual strong{
  font:700 clamp(48px,7vw,90px)/.9 "Fredoka";
  color:var(--purple);
}
.thanks-feature-visual small{
  margin-top:10px;
  font-weight:800;
}
.thanks-memory{
  margin-top:28px;
  border:3px solid var(--ink);
  border-radius:30px;
  padding:28px;
  background:var(--cyan);
  display:grid;
  grid-template-columns:70px 1fr;
  gap:18px;
  align-items:center;
  box-shadow:6px 6px 0 var(--ink);
}
.thanks-memory>span{
  font-size:48px;
}
.thanks-memory h3{
  font:700 28px "Fredoka";
  margin:5px 0 8px;
}
.thanks-memory p{
  margin:0;
  line-height:1.6;
}

@media(max-width:720px){
  .people{
    padding-top:72px;
    padding-bottom:72px;
  }
  .people-title{
    margin-bottom:28px;
  }
  .person{
    min-height:290px;
  }
  .thanks-feature{
    grid-template-columns:1fr;
  }
  .thanks-memory{
    grid-template-columns:1fr;
  }
}


/* ==============================
   V4 — CORRECCIONES Y MEJORAS
   ============================== */

/* Founder real photo */
.founder-photo-real{
  min-height:680px;
}
.founder-image-card{
  height:100%;
  min-height:680px;
  margin:0;
  position:relative;
  overflow:hidden;
  border:4px solid var(--ink);
  border-radius:42px;
  background:#fff;
  box-shadow:10px 10px 0 var(--yellow);
  transform:rotate(-1.5deg);
}
.founder-image-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.04) contrast(1.02);
}
.founder-image-card:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(36,32,53,.68) 0%,transparent 38%);
  pointer-events:none;
}
.founder-image-card figcaption{
  position:absolute;
  z-index:2;
  left:24px;
  right:24px;
  bottom:22px;
  color:#fff;
  display:flex;
  flex-direction:column;
}
.founder-image-card figcaption span{
  font-size:10px;
  font-weight:900;
  letter-spacing:.15em;
}
.founder-image-card figcaption strong{
  font:700 clamp(32px,4vw,52px)/1 "Fredoka";
}

/* Join section V4 */
.people{
  padding-top:90px;
  padding-bottom:100px;
}
.people-title{
  max-width:980px;
  margin-bottom:42px;
}
.people-title h2{
  margin-bottom:18px;
}
.people-intro{
  max-width:820px;
  font-size:19px;
  line-height:1.7;
  color:#5f596b;
  margin:0;
}
.join-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.join-card{
  border:3px solid var(--ink);
  border-radius:32px;
  overflow:hidden;
  background:#fff;
  box-shadow:7px 7px 0 var(--ink);
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  min-height:390px;
}
.join-photo{
  position:relative;
  min-height:390px;
  overflow:hidden;
}
.join-photo img{
  transition:transform .45s ease;
}
.join-card:hover .join-photo img{
  transform:scale(1.055);
}
.join-sticker{
  position:absolute;
  left:18px;
  top:18px;
  background:var(--yellow);
  border:2px solid var(--ink);
  border-radius:999px;
  padding:8px 11px;
  font:800 11px "Fredoka";
  box-shadow:3px 3px 0 var(--ink);
  transform:rotate(-4deg);
}
.join-sticker.alt{background:var(--cyan)}
.join-sticker.family-tag{background:var(--pink)}
.join-sticker.volunteer-tag{background:var(--green)}
.join-content{
  padding:28px;
  display:flex;
  flex-direction:column;
}
.join-content small{
  font-weight:900;
  letter-spacing:.12em;
  color:var(--purple);
}
.join-content h3{
  font:700 clamp(28px,3vw,40px)/1.04 "Fredoka";
  margin:18px 0 12px;
}
.join-content p{
  line-height:1.65;
  margin:0 0 24px;
}
.join-content button{
  margin-top:auto;
  border:2px solid var(--ink);
  border-radius:999px;
  padding:11px 14px;
  background:var(--yellow);
  font-weight:900;
  align-self:flex-start;
}
.join-teen .join-content button{background:var(--cyan)}
.join-family .join-content button{background:var(--pink)}
.join-volunteer .join-content button{background:var(--green)}
.join-bottom-note{
  margin-top:24px;
  border:3px solid var(--ink);
  border-radius:28px;
  padding:24px;
  background:#f5efff;
  display:grid;
  grid-template-columns:60px 1fr auto;
  gap:20px;
  align-items:center;
}
.join-bottom-note>span{
  font-size:40px;
}
.join-bottom-note p{
  margin:0;
  line-height:1.6;
}
.join-bottom-note button{
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--purple);
  color:white;
  padding:11px 15px;
  font-weight:900;
}

/* Gallery V4 — no hidden state, rich cards */
.gallery{
  padding-top:100px;
  padding-bottom:110px;
  background:
    radial-gradient(circle at 10% 10%,rgba(46,216,208,.20),transparent 28%),
    radial-gradient(circle at 92% 15%,rgba(255,145,200,.18),transparent 28%),
    #fff;
}
.gallery-title{
  margin-bottom:18px;
}
.gallery-intro{
  max-width:820px;
  margin-bottom:50px;
}
.gallery-intro p{
  font-size:19px;
  line-height:1.7;
  color:#5f596b;
}
.gallery-collage{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:120px;
  gap:22px;
  align-items:stretch;
}
.memory-card{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:30px;
  background:white;
  border:8px solid white;
  box-shadow:0 20px 44px rgba(79,55,110,.16);
  opacity:1 !important;
  visibility:visible !important;
  transform:none;
  transition:transform .3s ease,box-shadow .3s ease;
}
.memory-card:hover{
  transform:translateY(-7px) rotate(.4deg);
  box-shadow:0 28px 64px rgba(79,55,110,.24);
}
.memory-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.memory-card:hover img{
  transform:scale(1.05);
}
.memory-card figcaption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(7px);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.memory-card figcaption b{
  font:700 15px "Fredoka";
  color:var(--purple);
}
.memory-card figcaption span{
  font-size:11px;
  color:#605a69;
}
.memory-a{grid-column:span 7;grid-row:span 4}
.memory-b{grid-column:span 5;grid-row:span 3}
.memory-c{grid-column:span 5;grid-row:span 3}
.memory-d{grid-column:span 4;grid-row:span 3}
.memory-e{grid-column:span 4;grid-row:span 3}
.memory-f{grid-column:span 4;grid-row:span 3}
.memory-g{grid-column:span 5;grid-row:span 3}
.memory-h{grid-column:span 7;grid-row:span 4}
.memory-i{grid-column:3/span 8;grid-row:span 3}
.gallery-cta{
  margin-top:42px;
  border:3px solid var(--ink);
  border-radius:30px;
  padding:28px;
  background:var(--yellow);
  box-shadow:6px 6px 0 var(--ink);
  display:grid;
  grid-template-columns:1fr auto;
  gap:25px;
  align-items:center;
}
.gallery-cta small{
  font-weight:900;
  letter-spacing:.12em;
}
.gallery-cta h3{
  font:700 32px "Fredoka";
  margin:8px 0;
}
.gallery-cta p{
  margin:0;
  line-height:1.6;
}
.gallery-cta a{
  border:2px solid var(--ink);
  border-radius:999px;
  padding:11px 15px;
  background:#fff;
  font-weight:900;
}

/* Ensure critical cards never remain hidden if GSAP/ScrollTrigger fails */
.join-card,
.memory-card,
.team-grid article,
.event-card,
.calendar-card,
.sponsor-placeholder,
.shirt-card,
.games-grid article{
  opacity:1;
  visibility:visible;
}

/* Mobile */
@media(max-width:900px){
  .join-grid{
    grid-template-columns:1fr;
  }
  .join-card{
    grid-template-columns:1fr;
  }
  .join-photo{
    min-height:330px;
  }
  .gallery-collage{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:260px;
  }
  .memory-a,.memory-b,.memory-c,.memory-d,.memory-e,.memory-f,.memory-g,.memory-h,.memory-i{
    grid-column:span 1;
    grid-row:span 1;
  }
  .memory-a,.memory-h{
    grid-column:span 2;
  }
}
@media(max-width:620px){
  .founder-photo-real,
  .founder-image-card{
    min-height:460px;
  }
  .join-photo{
    min-height:280px;
  }
  .join-bottom-note{
    grid-template-columns:1fr;
  }
  .gallery-collage{
    display:flex;
    flex-direction:column;
  }
  .memory-card{
    height:340px;
  }
  .memory-card figcaption{
    flex-direction:column;
    align-items:flex-start;
  }
  .gallery-cta{
    grid-template-columns:1fr;
  }
}
