/* YSW FEST 2027 — original Wix creative fidelity and editorial QA.
   Original site reference screenshot: YSW_Website.png; official festival logo assets.
   This is the festival brand, NOT the Foundation's navy/cyan brand system. */
:root{
 --festival-h1:clamp(53px,6vw,84px);
 --festival-h2:clamp(38px,4.08vw,57px);
 --festival-feature:clamp(30px,3vw,42px);
 --festival-pillar:clamp(41px,4.35vw,65px);
}
/* Original festival CTA shape — pastel pill, italic bold dark text, no false arrows. */
.btn,.btn--white,.btn--outline,.btn--outline-light,.btn--pink,
.canva-hero-actions .btn,.header-right .btn,.canva-newsletter-form .btn{
 border:0;border-radius:999px;
 background:linear-gradient(100deg,#F9A6E7 0%,#FFD0D7 38%,#FDF2AA 75%,#A5FDB9 100%);
 box-shadow:none;min-height:43px;padding:11px 25px;
 font:italic 900 13px/1.18 var(--display);
 letter-spacing:-.025em;text-transform:none;
 color:#050505!important;-webkit-text-fill-color:#050505;
 transition:filter .2s ease,transform .2s ease,box-shadow .2s ease;
 text-align:center;
}
.btn--outline,.btn--outline-light{background:linear-gradient(100deg,#93BDF6 0%,#76D9F1 47%,#8DFFAD 100%);}
.btn--pink{background:linear-gradient(100deg,#F9A6E7,#FDF2AA);}
.btn--white{background:#fff;}
.btn:hover,.btn--white:hover,.btn--outline:hover,.btn--outline-light:hover,.btn--pink:hover{
 filter:brightness(1.08);transform:translateY(-2px);
 box-shadow:0 5px 16px rgba(0,0,0,.2);
 color:#050505!important;-webkit-text-fill-color:#050505;
}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.btn--small,.header-right .btn{min-height:39px;padding:9px 21px;font-size:12px}
.canva-hero-actions .btn{min-height:44px;min-width:0;padding:12px 29px}
.canva-newsletter-form .btn{min-width:160px}
.mobile-nav .btn{background:linear-gradient(100deg,#F9A6E7,#FDF2AA,#8DFFAD);color:#050505!important;-webkit-text-fill-color:#050505}
/* Accurate compact festival identity in repeated navigation and footer. */
.brand{width:clamp(188px,17vw,255px)}
.brand img{width:100%;height:auto;filter:none}
.footer-brand img{width:min(100%,320px);height:auto;filter:none}
/* Unified type roles. Headline role is constant across pages, with semantic spans. */
.h1,.interior-hero h1{font-size:var(--festival-h1);line-height:.98;letter-spacing:-.035em;font-weight:800}
.h2,.closing-title,.canva-section-title,.festival-story-heading,.festival-experience-heading{
 font-family:var(--display);font-size:var(--festival-h2);font-weight:800;
 line-height:1.02;letter-spacing:-.034em;text-wrap:balance;
}
.canva-section-title span,.festival-story-heading span{display:block;max-width:100%;}
.canva-pillar h3,.canva-pillar .canva-pillar-wordmark{
 font:800 var(--festival-pillar)/.98 var(--display);
 letter-spacing:-.046em;white-space:nowrap;overflow-wrap:normal;word-break:normal;
}
.canva-pillar{grid-template-columns:minmax(370px,.42fr) minmax(0,.58fr);gap:clamp(24px,4vw,58px)}
.canva-pillar-title,.canva-pillar>p{min-width:0}
.festival-experience-top{grid-template-columns:minmax(0,1.17fr) minmax(0,.83fr)}
.festival-experience-heading{font-size:var(--festival-h2)}
.festival-experience-heading span{white-space:normal}
.festival-impact-header,.canva-section-intro,.canva-memory-heading{column-gap:clamp(32px,4vw,60px)}
.festival-impact-metric strong{font-size:clamp(41px,4.5vw,68px)}
/* Hero — one compelling 2026 youth tennis photograph. No busy photo mosaic. */
.canva-home-hero{background:#020202;position:relative;min-height:680px;display:flex;align-items:center;justify-content:center;isolation:isolate;overflow:hidden}
.canva-hero-feature-photo{position:absolute;inset:0 0 0 50%;margin:0;z-index:-2;overflow:hidden;background:#131313}
.canva-hero-feature-photo img{width:100%;height:100%;object-fit:cover;object-position:51% 30%;display:block;filter:saturate(1.12) contrast(1.04)}
.canva-hero-vignette{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#020202 0%,#020202 29%,rgba(2,2,2,.95) 42%,rgba(2,2,2,.38) 60%,rgba(2,2,2,.06) 100%),linear-gradient(0deg,rgba(0,0,0,.40),transparent 65%)}
.canva-hero-inner{width:calc(100% - 2*var(--canva-gutter));max-width:1250px;display:flex;align-items:flex-start;justify-content:center;min-height:680px;text-align:left;padding:70px 0 134px;margin:auto}
.canva-hero-title{width:min(560px,51vw);margin:0;line-height:1}
.canva-hero-logo{width:100%;height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22))}
.canva-hero-eyebrow,.canva-hero-caption,.canva-hero-summary,.canva-hero-note{text-align:left;text-shadow:none}
.canva-hero-eyebrow{margin:0 0 21px;font-size:12px}
.canva-hero-caption{font-size:clamp(23px,2.3vw,34px);margin:19px 0 0;max-width:555px}
.canva-hero-summary{max-width:520px;margin:17px 0 0;font-size:16px;line-height:1.65}
.canva-hero-actions{justify-content:flex-start;margin:25px 0 0;gap:12px}
.canva-hero-note{font-size:10px;line-height:1.45;margin-top:23px}
/* The moving band is layered across both adjoining section backgrounds. */
.festival-signature-band--footer{
 display:flex;height:clamp(150px,12.5vw,185px);
 margin-top:clamp(-100px,-7vw,-64px);
 margin-bottom:clamp(-85px,-5.8vw,-47px);
 z-index:20;position:relative;overflow:visible;background:transparent;isolation:isolate;
}
.festival-signature-band--footer .festival-signature-band__ribbon{
 min-height:clamp(92px,8vw,112px);width:148%;min-width:148%;transform:rotate(-4deg);
 box-shadow:0 10px 25px rgba(0,0,0,.23);
}
.festival-signature-band--footer .festival-signature-band__group img{width:clamp(580px,66vw,860px);padding:15px 30px}
.site-footer{position:relative;z-index:2;overflow:hidden;isolation:isolate;padding-top:0;border-top:0}
.site-footer>.container{padding-top:clamp(85px,7.9vw,118px);position:relative;z-index:2}
/* Crops are anchored to subjects, not the image midpoint. */
.canva-memory-photo img{object-fit:cover;object-position:var(--photo-focus,50% 36%)}
.canva-memory-photo.memory-g img{object-position:50% 17%}
.canva-memory-photo.memory-f img{object-position:50% 30%}
.canva-join-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);height:430px;gap:12px;overflow:hidden}
.canva-join-visual img,.canva-join-visual img:first-child,.canva-join-visual img:last-child{
 grid-row:1;grid-column:auto;min-height:0;min-width:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%;
}
.canva-join-visual img:first-child{grid-column:1;object-position:54% 22%}
.canva-join-visual img:last-child{grid-column:2;object-position:50% 20%}
.mosaic figure img{object-position:center 30%}
.mosaic figure:nth-child(2) img{object-position:center 20%}
.mosaic figure:nth-child(3) img{object-position:center 28%}
.mosaic figure:nth-child(5) img{object-position:center 23%}
.gallery-stripe img{object-position:50% 26%}
/* Cohesive tablet layouts use space before sacrificing type. */
@media(max-width:1100px){
 .canva-pillar{grid-template-columns:minmax(315px,.44fr) minmax(0,.56fr);gap:22px}
 .festival-experience-top{grid-template-columns:1fr}
 .festival-experience-photo{aspect-ratio:1.9;max-height:400px}
 .brand{width:205px}
}
@media(max-width:850px){
 .canva-home-hero{min-height:670px}
 .canva-hero-inner{min-height:670px;padding:67px 0 135px}
 .canva-hero-title{width:min(525px,65vw)}
 .canva-hero-feature-photo{inset:0 0 0 45%}
 .canva-hero-vignette{background:linear-gradient(90deg,#020202 0%,rgba(2,2,2,.98) 31%,rgba(2,2,2,.78) 53%,rgba(2,2,2,.15) 100%)}
 .canva-pillar{grid-template-columns:minmax(280px,.45fr) minmax(0,.55fr);gap:25px}
 .festival-signature-band--footer{margin-top:-72px;margin-bottom:-55px;height:153px}
}
@media(max-width:650px){
 :root{--festival-h1:clamp(45px,11.5vw,60px);--festival-h2:clamp(34px,8.3vw,48px);--festival-pillar:clamp(39px,9.3vw,48px)}
 .canva-home-hero{min-height:auto;display:flex;flex-direction:column;align-items:stretch;overflow:hidden}
 .canva-hero-inner{order:1;min-height:0;position:relative;z-index:1;padding:50px 0 38px;width:calc(100% - 48px);max-width:560px;align-items:flex-start;text-align:left}
 .canva-hero-feature-photo{position:relative;order:2;inset:auto;width:100%;height:clamp(230px,71vw,355px)}
 .canva-hero-feature-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 26%}
 .canva-hero-vignette{display:none}
 .canva-hero-title{width:min(100%,490px)}
 .canva-hero-logo{width:100%}
 .canva-hero-eyebrow{font-size:11px;margin-bottom:18px}
 .canva-hero-caption{font-size:clamp(22px,5.7vw,30px)}
 .canva-hero-summary{font-size:15px;line-height:1.63;max-width:530px}
 .canva-hero-actions{width:100%;margin-top:25px;gap:9px}
 .canva-hero-actions .btn{width:auto;flex:1 1 180px}
 .canva-hero-note{font-size:9px;margin-top:21px}
 .festival-signature-band.canva-hero-ribbon{margin-top:-57px;height:122px}
 .canva-pillar{grid-template-columns:1fr;gap:10px}
 .canva-pillar h3{font-size:var(--festival-pillar)}
 .canva-section-title,.festival-story-heading,.festival-experience-heading{font-size:var(--festival-h2)}
 .canva-join-visual{height:310px;gap:8px}
 .festival-signature-band--footer{margin-top:-63px;margin-bottom:-43px;height:134px}
 .festival-signature-band--footer .festival-signature-band__ribbon{min-height:90px;transform:rotate(-4deg)}
 .festival-signature-band--footer .festival-signature-band__group img{width:clamp(330px,100vw,550px);padding:13px 22px}
 .site-footer>.container{padding-top:81px}
 .btn,.btn--white,.btn--outline,.btn--outline-light,.btn--pink{min-height:42px;font-size:12px;padding:10px 20px}
 .header-right .btn{font-size:11px;min-height:37px;padding:8px 14px}
 .brand{width:min(43vw,185px)}
}
@media(max-width:390px){
 :root{--festival-h2:34px;--festival-pillar:39px}
 .canva-hero-actions .btn{flex:1 1 100%;width:100%}
 .canva-join-visual{height:280px}
 .brand{width:min(40vw,155px)}
 .header-right .btn{font-size:10px;padding:8px 11px}
}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}

/* Secondary actions use the original site's sky-to-mint button treatment. */
.canva-hero-actions .btn.btn--outline-light,
.canva-day-action .btn.btn--outline-light,
.btn-row .btn.btn--outline-light{
 background:linear-gradient(100deg,#8FDBF2 0%,#82E5F0 40%,#8DFFAD 100%);
 color:#050505!important;-webkit-text-fill-color:#050505;
}
/* Feature youth tennis player in the lower editorial collage without clipping her face. */
.canva-memory-photo.memory-g img{object-position:50% 39%}

/* Desktop/photo ribbon transforms must not create sideways scrolling. */
html,body{max-width:100%;overflow-x:clip}
/* These page-specific components inherit the same h2 role (no oversized exceptions). */
.festival-community-lead .festival-story-heading,
.highlight-showcase__intro .h2,
.highlight-showcase__followup .h2,
.festival-impact-header .festival-story-heading{
 font-size:var(--festival-h2);line-height:1.02;letter-spacing:-.034em;
}
@media(max-width:650px){
 .festival-community-lead .festival-story-heading,
 .highlight-showcase__intro .h2,
 .highlight-showcase__followup .h2,
 .festival-impact-header .festival-story-heading{font-size:var(--festival-h2)}
}

/* Preserve the full “FUTURE.” word on 320px devices without clipping. */
@media(max-width:380px){.festival-future-title{font-size:clamp(54px,17vw,61px)}}
