/* Poster-led scenery. Original illustration assets stay unchanged. */
body.girls,body.boys{background-color:#bcefea;background-image:linear-gradient(180deg,#a7eee998 0,#eafbf1df 1050px,#e5faf6ed 2000px),url('../assets/girls-poster.webp');background-size:100% 2300px,1600px auto;background-position:center top,center 60px;background-repeat:repeat-y;position:relative;isolation:isolate}.boys{background-color:#a8dcfa!important;background-image:linear-gradient(180deg,#8bcefb80 0,#e5f5ffdc 1050px,#e1f1ffec 2000px),url('../assets/boys-poster.webp')!important}body:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(circle at 10% 350px,#ffffffb8 0 2px,transparent 3px),radial-gradient(circle at 82% 220px,#fff9 0 2px,transparent 3px);background-size:47px 51px,67px 63px;opacity:.5}.event-topline{min-height:38px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:750;color:var(--primary)}.event-topline a{min-height:38px;display:flex;align-items:center}.tabs{background:#fffffff0;box-shadow:0 4px 18px #1b729011;border-bottom:2px solid #ffffff;backdrop-filter:blur(14px)}.tab-inner{justify-content:center}.tab-inner a[aria-current=page]:after{height:5px;border-radius:8px;bottom:6px}.festival-hero{position:relative;padding-top:46px;padding-bottom:36px;min-height:640px;gap:45px}.sky-decor{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.hero-copy{position:relative;z-index:2;max-width:640px;padding:38px 26px;background:linear-gradient(130deg,#fffefadf,#ffffffb0 72%,#ffffff42);border-radius:30px 80px 26px 65px;box-shadow:0 9px 30px #1258600a}.hero .eyebrow{letter-spacing:.15em;color:var(--primary);font-weight:850}.hero h1{font-size:clamp(38px,4vw,57px);font-weight:950;line-height:1.27;text-shadow:2px 3px 0 #ffffff}.hero h1 .cup{position:relative;width:max-content;color:#fff;font-size:1.27em;-webkit-text-stroke:1px var(--primary);paint-order:stroke fill;text-shadow:3px 4px 0 var(--primary),-2px -2px 0 var(--primary),2px -2px 0 var(--primary),-2px 2px 0 var(--primary);margin-bottom:18px;padding:4px 17px 9px;transform:rotate(-3deg);z-index:1}.hero h1 .cup:before{content:"";position:absolute;inset:5px -10px 0;background:var(--accent);z-index:-1;clip-path:polygon(2% 13%,18% 6%,18% 1%,53% 7%,88% 0,96% 11%,90% 23%,100% 30%,96% 57%,100% 63%,94% 86%,76% 92%,75% 98%,42% 93%,8% 100%,11% 89%,0 76%,5% 60%,0 45%,5% 31%)}.girls .hero h1 .cup:before{background:#f68cb4}.boys .hero h1 .cup:before{background:#ffc94e}.slogan{font-weight:800;color:var(--accent);font-size:20px;letter-spacing:.05em}.hero .pill{background:#fff8e2;box-shadow:0 3px 0 #cfab4830;color:var(--accent);border:1px solid #ffffff}.hero .button{box-shadow:0 4px 0 #003c4f24;border:2px solid white;border-radius:50px;transition:transform .15s}.hero .button:hover{transform:translateY(-2px)}.hero .button.quiet{background:#fffef5}.hero-art{transform:rotate(2deg);padding:10px 10px 7px;border:3px solid white;border-radius:22px;box-shadow:10px 12px 0 #006f7521,0 12px 32px #17525827;position:relative;z-index:1}.boys .hero-art{transform:rotate(-2deg);box-shadow:10px 12px 0 #075fae21,0 12px 32px #174b7827}.hero-art:before{content:"";position:absolute;width:95px;height:28px;background:#ffe596e0;top:-14px;left:calc(50% - 48px);transform:rotate(-5deg);border:1px dashed #b693444a;z-index:3}.hero-art img{border-radius:12px}.hero-meta{background:#ffffffaf;border-radius:16px;padding:18px 16px;margin-top:28px;border:1px solid #fff;gap:24px}.hero-meta b{color:var(--primary)}.cloud{position:absolute;display:block;background:#fff;border-radius:100px;width:200px;height:55px;filter:drop-shadow(0 8px 0 #ffffff40)}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit;width:92px;height:92px;bottom:8px;left:25px}.cloud:after{width:65px;height:65px;left:112px;bottom:5px}.cloud-one{left:-70px;top:145px;transform:scale(.9);opacity:.95}.cloud-two{right:180px;bottom:20px;transform:scale(1.2);opacity:.8}.sun-disc{position:absolute;right:0;top:7px;width:150px;height:150px;border-radius:50%;background:#ffdb6680;border:14px solid #ffefbb8a}.volleyball{position:absolute;display:block;width:105px;height:105px;color:#1f93c5;filter:drop-shadow(0 8px 0 #004b7b15)}.girls .volleyball{color:#37bfc6}.ball-one{left:45%;bottom:32px;transform:rotate(20deg)}.paw-stamp{position:absolute;width:55px;color:#ea82ada3;transform:rotate(-18deg)}.stamp-one{left:38%;top:30px}.stamp-two{left:4%;bottom:35px;transform:rotate(20deg)}.boys .paw-stamp{font-size:75px;color:#ffa84a}.spark{position:absolute;color:#fff;font:900 46px/1 sans-serif;filter:drop-shadow(2px 3px 0 #008caa)}.spark-one{left:50%;top:120px}.spark-two{left:40%;bottom:180px;color:#ffcf56}.court-ribbon{display:flex;justify-content:space-around;align-items:center;gap:15px;color:#fff;font-size:13px;font-weight:850;letter-spacing:.12em;margin:8px 0 22px;padding:12px 16px;background:var(--primary);border:3px solid white;border-radius:8px;transform:rotate(-1deg);box-shadow:0 5px 0 #006d7620;position:relative;overflow:hidden}.court-ribbon:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 52px,#fff3 52px 54px),repeating-linear-gradient(0deg,transparent 0 22px,#fff2 22px 24px);opacity:.6}.court-ribbon span{position:relative}.facts{border:3px solid #fff;box-shadow:0 7px 0 #006f7513;border-radius:21px;background:#ffffffeb}.fact{border-color:#a8dad6}.section-title{padding:12px 16px;background:#ffffffe0;border-radius:12px;border-left:6px solid var(--accent);box-shadow:0 3px 0 #16667413}.panel,.match-card,.team-card,.prize{background:#ffffffed;border:2px solid #fff;box-shadow:0 5px 0 #006f7510}.panel{position:relative;overflow:hidden}.panel .eyebrow{position:relative;z-index:1}.panel h2,.panel h3,.panel p,.panel .contacts,.panel .button{position:relative;z-index:1}.note,.notice{background:#ffffffed;border:2px solid white;box-shadow:0 4px 0 #006f7510}.team-card:hover{box-shadow:0 5px 0 var(--primary);border-color:var(--primary)}.team-code{background:var(--soft);border:2px solid white;border-radius:16px;padding:13px 10px;min-width:56px;text-align:center}.page-top{position:relative;padding:32px 155px 28px 18px;background:linear-gradient(90deg,#fffdfbe8,#ffffffba 75%,transparent);border-radius:22px;margin:25px 0 24px;min-height:140px;overflow:hidden}.page-top h1{font-weight:950;color:var(--primary)}.character-peek{position:absolute;right:0;top:0;width:145px;height:145px;background-image:url('../assets/girls-poster.webp');background-size:365px auto;background-position:16% 69%;border-radius:35% 40% 50% 35%;border:5px solid white;transform:rotate(7deg);box-shadow:-3px 7px 0 #f686b040;pointer-events:none}.boys .character-peek{background-image:url('../assets/boys-poster.webp');background-position:18% 65%;box-shadow:-3px 7px 0 #ffb64040}.venue-scene{height:160px;width:calc(100% + 52px);margin:14px -26px 20px;background-image:url('../assets/girls-poster.webp');background-size:100% auto;background-position:center 90%;position:relative;border-top:4px solid #fff;border-bottom:4px solid #fff}.boys .venue-scene{background-image:url('../assets/boys-poster.webp')}.venue-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff2,transparent)}.empty{background:#ffffffdc;border:2px dashed #fff;box-shadow:0 6px 0 #006f7510}.table-scroll{border:2px solid white;box-shadow:0 6px 0 #006f7510}.foot{background:#ffffffb8;border-top:2px solid white;padding-top:20px;padding-bottom:20px;margin-top:36px;border-radius:20px 20px 0 0}.footer-brand{background:#fffdf2e8;border-top:2px solid white;position:relative}.footer-brand .mast-inner{min-height:100px}.footer-brand .logo-mark{background:#fff}.portal-intro{background:linear-gradient(120deg,#fffefbe5,#ffffff77);border-radius:0 0 60px 0;margin-bottom:32px;padding-left:25px!important;padding-right:25px!important}.event-card{border:3px solid #fff!important;box-shadow:0 7px 0 #006f7519!important}.event-copy{background:#fffffff2}.event-copy .pill{background:#fff9}.event-copy .button{border:2px solid white}.archive-card{border:3px solid #fff8!important}.boys .facts,.boys .panel,.boys .team-card,.boys .match-card,.boys .empty,.boys .table-scroll{box-shadow:0 6px 0 #075fae15}.event-topline a:focus-visible,.footer-brand a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:900px){.festival-hero{gap:24px}.hero-copy{padding:28px 20px}.hero h1{font-size:43px}.hero-meta{padding:15px 10px;gap:16px}.ball-one{left:43%;width:75px;height:75px}.hero-art{margin-right:4px}.page-top{padding-right:140px}}@media(max-width:640px){body.girls,body.boys{background-size:100% 1600px,820px auto;background-position:center top,center 60px}.event-topline{font-size:10px}.tab-inner{justify-content:flex-start;gap:23px}.festival-hero{padding-top:23px;min-height:0;gap:25px}.hero-copy{padding:26px 20px 22px;border-radius:24px 60px 20px 35px;max-width:100%;background:linear-gradient(110deg,#fffefbea,#ffffffe0)}.hero h1{font-size:40px}.hero h1 .cup{font-size:1.32em;margin-bottom:17px}.hero-art{margin:10px 5px 0;max-width:calc(100% - 10px);transform:rotate(1.5deg)}.boys .hero-art{transform:rotate(-1.5deg)}.hero-meta{gap:15px;padding:14px 10px;margin-top:20px}.hero-meta b{font-size:19px}.hero-meta span{font-size:10px}.slogan{font-size:17px;margin:18px 0}.cloud-one{left:-115px;top:70px}.sun-disc{right:-35px;top:30px;width:125px;height:125px}.ball-one{left:auto;right:10px;bottom:auto;top:380px;width:58px;height:58px;opacity:.8}.stamp-one{left:auto;right:5px;top:170px;width:40px}.stamp-two{left:0;bottom:20px;width:35px}.spark-one{left:auto;right:40px;top:8px;font-size:32px}.spark-two{left:3px;bottom:45px}.court-ribbon{font-size:10px;gap:10px;padding:10px;margin:9px 0 20px;letter-spacing:.05em}.facts{border-radius:18px;margin-bottom:25px}.fact{padding:14px}.section-title{padding:11px 13px}.section-title h2{font-size:21px}.page-top{padding:25px 94px 23px 15px;margin:20px 0;min-height:125px}.page-top h1{font-size:27px}.page-top p{font-size:12px}.page-top .eyebrow{font-size:9px;letter-spacing:.06em}.character-peek{right:-4px;top:12px;width:95px;height:105px;background-size:270px auto;border:4px solid white}.panel{padding:20px}.venue-scene{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px;height:150px}.team-card{padding:17px;gap:13px}.team-code{font-size:22px;min-width:53px;padding:12px 8px}.foot{margin-top:30px}.footer-brand .mast-inner{min-height:100px;gap:10px}.footer-brand .logo{font-size:11px}.footer-brand .home-link{font-size:10px}.portal-intro{padding-top:35px!important;padding-bottom:28px!important;margin-bottom:24px}.portal-intro h1{font-size:43px}.prizes{gap:8px}}@media(prefers-reduced-motion:reduce){.hero .button{transition:none}.hero .button:hover{transform:none}}
/* Calm sky and illustrated court scenes derived from the supplied posters. */
body.girls{background-color:#d3f6f0;background-image:linear-gradient(180deg,#c5f4ef18 0,#edf9f4a8 1050px,#eef9f4a0 1700px),url('../assets/girls-scene.webp'),url('../assets/girls-scene.webp');background-size:100% 100%,1600px auto,1800px auto;background-position:center top,center top,center bottom;background-repeat:no-repeat}body.boys{background-color:#d5ecfb!important;background-image:linear-gradient(180deg,#c8eaff18 0,#edf6ffab 1050px,#eef5ffa0 1700px),url('../assets/boys-scene.webp'),url('../assets/boys-scene.webp')!important;background-size:100% 100%,1600px auto,1800px auto;background-position:center top,center top,center bottom;background-repeat:no-repeat}.hero-copy{background:linear-gradient(130deg,#fffefbe8,#ffffffcf 75%,#ffffffa0);border:2px solid #ffffffad}.panel,.team-card,.match-card,.prize{background:#ffffffed}.footer-brand{background:#fffdf2ed}.event-topline{background:transparent}.character-peek{background-color:#e8f7f6}.boys .character-peek{background-color:#eaf4fe}
@media(max-width:640px){body.girls,body.boys{background-size:100% 100%,980px auto,980px auto;background-position:center top,center 10px,center bottom}.hero-copy{background:linear-gradient(115deg,#fffefbe8,#ffffffdc)}.event-topline{font-size:10px}.venue-scene{height:140px}}

.event-topline,.event-topline a{min-height:44px}.footer-brand .logo{min-height:44px}

/* V14 girls title sponsor */
.sponsor-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;background:white;border:1px solid #d5e9e5;border-radius:12px;padding:5px 16px;margin-top:18px}.sponsor-strip>span{font-size:11px;color:#3d5f5b;letter-spacing:.08em}.sponsor-strip img{width:158px;height:auto;display:block}.sponsor-panel{text-align:center;margin:25px 0}.sponsor-panel img{display:block;width:min(280px,85%);height:auto;margin:0 auto 8px}.sponsor-panel h2{font-size:23px}.sponsor-panel p{line-height:1.9}.girls:has(.sponsor-strip) .hero .cup{font-size:clamp(29px,4.5vw,56px);letter-spacing:-.04em;white-space:nowrap}@media(max-width:360px){.girls:has(.sponsor-strip) .hero .cup{font-size:27px}.sponsor-strip img{width:134px}}

/* V15 full silhouettes, never crop a poster into a character */
.character-peek,.boys .character-peek{background-color:transparent;background-image:url('../assets/girls-cutout.webp');background-size:contain;background-position:center;background-repeat:no-repeat;border:0;border-radius:0;box-shadow:none;transform:none;width:155px;height:155px;right:8px;top:3px}
.boys .character-peek{background-image:url('../assets/boys-cutout.webp')}
.venue-scene,.boys .venue-scene{height:230px;background-image:url('../assets/girls-cutout.webp'),linear-gradient(160deg,#e0f8f1,#f7fffd);background-size:auto 94%,100% 100%;background-position:center;background-repeat:no-repeat;border:0;border-radius:16px;width:100%;margin:18px 0 22px}
.boys .venue-scene{background-image:url('../assets/boys-cutout.webp'),linear-gradient(160deg,#e4f2ff,#f8fcff)}.venue-scene:after{display:none}
@media(max-width:640px){.character-peek,.boys .character-peek{width:95px;height:110px;right:2px;top:12px;background-size:contain;border:0}.venue-scene,.boys .venue-scene{height:195px;width:100%;margin:16px 0 20px;background-size:auto 94%,100% 100%}}

.sponsor-strip img{width:145px;height:auto;padding:9px 0}.sponsor-panel img{max-width:230px;height:auto}.portal-sponsor img{width:118px;height:auto;padding:8px 0}.sync-status{font-size:11px;color:#41655f;margin:12px 2px}.admin-entry{display:block;padding:14px;text-align:center;min-height:44px;text-decoration:underline;font-size:12px}
