/* Content remains visible; motion is progressive and finite. */
.contacttravel{display:flex;align-items:center;gap:.7rem;width:240px;max-width:100%;margin:1.7rem 0 .3rem;color:#7bd2ef}
.contacttravel img{width:38px;height:38px;object-fit:contain}.contacttravel>svg{width:30px;height:30px;flex-shrink:0}
.contactplane{display:flex}.contactplane svg{width:32px;height:32px;transform:rotate(45deg)}.contactroute{flex:1;border-top:1px dashed #7bd2ef70}
.readingprogress{position:fixed;top:0;left:0;right:0;height:3px;z-index:45;pointer-events:none}.readingprogress span{display:block;background:#1a96c4;height:100%;transform:scaleX(0);transform-origin:left}
.travelup{position:fixed;right:1.3rem;bottom:1.3rem;z-index:35;display:flex;align-items:center;justify-content:center;gap:.1rem;width:58px;height:58px;border:1px solid #bed5df;background:#fff;border-radius:50%;box-shadow:0 5px 18px #11182018;text-decoration:none;color:#135467}
.travelup img{width:28px;height:28px;object-fit:contain}.travelup span{font-size:1.2rem;font-weight:700}.travelup[hidden],.readingprogress[hidden]{display:none}.travelup:focus-visible{outline:3px solid #135467;outline-offset:4px}
:is(.homepage,.program-page) .button,:is(.homepage,.program-page) .hero .textlink,:is(.homepage,.program-page) .menubtn,:is(.homepage,.program-page) .language{position:relative;isolation:isolate;overflow:hidden;transition:transform .24s ease,background .24s ease,box-shadow .24s ease}
:is(.homepage,.program-page) .button::after,:is(.homepage,.program-page) .hero .textlink::after{content:'';position:absolute;inset:-50% -20%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff50 50%,transparent 65%);transform:translateX(-120%)}
.buttonwave{position:absolute;border-radius:50%;background:#fff6;pointer-events:none;z-index:-1}
:is(.homepage,.program-page) nav a{position:relative}:is(.homepage,.program-page) nav a::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
:is(.homepage,.program-page) nav a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.homepage .cardarrow{transition:transform .25s ease,background .25s ease,border-color .25s ease}
.homepage .aboutcard,.homepage .destinationstat,.homepage .memberlogo,.homepage .destinationstates li{transition:transform .25s ease,box-shadow .25s ease,filter .25s ease,background .25s ease}
.homepage .aboutnumber,.homepage .journeylink>span{transition:transform .25s ease}
.homepage .faqtopics a{transition:background .2s ease,box-shadow .2s ease}.homepage .faqcount{transition:transform .2s ease}
.homepage .faqsearchfield{transition:border-color .2s ease,box-shadow .2s ease}.homepage .faqsearchfield:focus-within{border-color:#1a96c4;box-shadow:0 0 0 3px #1a96c414}
@media(prefers-reduced-motion:no-preference){
 :is(.homepage,.program-page) .heroimage img{animation:hero-settle 1.3s ease-out both}
 :is(.homepage,.program-page) .button:is(:hover,:focus-visible),:is(.homepage,.program-page) .hero .textlink:is(:hover,:focus-visible){transform:translateY(-3px);box-shadow:0 8px 22px #061e2926}
 :is(.homepage,.program-page) .button:is(:hover,:focus-visible)::after,:is(.homepage,.program-page) .hero .textlink:is(:hover,:focus-visible)::after{animation:button-shine .65s ease-out}
 :is(.homepage,.program-page) .button:active,:is(.homepage,.program-page) .hero .textlink:active{transform:translateY(0) scale(.97)}
 :is(.homepage,.program-page) .language:is(:hover,:focus-visible),:is(.homepage,.program-page) .menubtn:is(:hover,:focus-visible){transform:translateY(-2px);box-shadow:0 5px 14px #11182012}
 .homepage .card:is(:hover,:focus-visible) .cardarrow{transform:rotate(8deg) translate(2px,-2px)}
 .homepage .journeystep:focus-within .journeylink>span{transform:translate(3px,-3px)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .card.traveltilt{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .2s ease-out}
 .homepage .aboutcard:hover{transform:translateY(-4px);box-shadow:0 10px 20px #1118200b}.homepage .aboutcard:hover .aboutnumber{transform:rotate(-8deg) scale(1.06)}
 .homepage .destinationstat:hover{transform:translateY(-5px)}.homepage .memberlogo:hover{filter:grayscale(0);transform:translateY(-3px)}
 .homepage .destinationstates li:hover{transform:translateY(-2px)}.homepage .faqtopics a:hover .faqcount{transform:scale(1.1)}
 .homepage .journeystep:hover .journeylink>span{transform:translate(3px,-3px)}
}
@keyframes button-shine{to{transform:translateX(120%)}}
@keyframes hero-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
.program-page .summertile,.program-page .summercoverage,.program-page .benefitgrid>article,.program-page .placelist>li,.program-page .jobtags span,.program-page .summerstats>div{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease}
.program-page .summernum,.program-page .benefitgrid article>span{transition:transform .3s ease,background .25s ease}
.program-page :is(.summerjobphoto,.campwhyphoto) img{transition:transform .6s ease}
.program-page .summerback:before{display:inline-block;transition:transform .25s ease}
.program-page .textlink{transition:color .2s ease,text-decoration-color .2s ease}
.program-page .summerfinal .actions .textlink{position:relative;isolation:isolate;overflow:hidden;transition:transform .24s ease}
@media(prefers-reduced-motion:no-preference){
 .program-page .summerback:is(:hover,:focus-visible):before{transform:translateX(-4px)}
 .program-page .summerfinal .textlink:is(:hover,:focus-visible){transform:translateY(-3px)}
 .program-page .summerfinal .textlink:active{transform:scale(.97)}
 .program-page :is(.summertile,.summercoverage):focus-within{transform:translateY(-4px);box-shadow:0 10px 24px #11182014}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .program-page .summertile:hover{transform:translateY(-5px);box-shadow:0 12px 26px #11182012;border-color:#a9cbd8}
 .program-page .summertile:hover .summernum{transform:rotate(-8deg) scale(1.08)}
 .program-page .summercoverage:hover{transform:translateY(-4px);box-shadow:0 12px 28px #11182014}
 .program-page .benefitgrid>article:hover{transform:translateY(-2px)}
 .program-page .benefitgrid>article:hover>span{transform:rotate(-8deg) scale(1.08)}
 .program-page .placelist>li:hover{transform:translateY(-4px);border-color:#7bd2ef}
 .program-page .jobtags span:hover{transform:translateY(-2px);box-shadow:0 4px 12px #11182010;border-color:#a9cbd8}
 .program-page .summerstats>div:hover{transform:translateY(-3px)}
 .program-page :is(.summerjobphoto,.campwhyphoto):hover img{transform:scale(1.035)}
}
@media(max-width:760px){.travelup{right:.8rem;bottom:.8rem;width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){:is(.homepage,.program-page) .heroimage img{animation:none!important}.card.traveltilt{transform:none!important}.buttonwave{display:none}}
@media print{.contacttravel,.readingprogress,.travelup,.buttonwave{display:none!important}:is(.homepage,.program-page) .heroimage img{animation:none!important}}
