/* Finished illustration assets replace the approximate ticket composition. */
.hero{background:#0a315b}.campus-art{background-image:url('assets/campus-white-flag-blue.png');opacity:1;background-position:center 52%}.hero:after{background:linear-gradient(90deg,#05284b45 0%,#0b325507 50%,#092c4c0a 100%)}
.hero-ticket{background:none;box-shadow:none;clip-path:none;border:0;padding:0;width:calc(100% + 55px);max-width:none;left:-23px;top:37px;position:relative;opacity:1;z-index:auto;filter:drop-shadow(6px 20px 16px #001a3f50);animation:ticket-asset-float 7s ease-in-out infinite;will-change:transform;transform-origin:50% 50%}.hero-ticket img{display:block;width:100%;height:auto;max-width:none;user-select:none;pointer-events:none}
@keyframes ticket-asset-float{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(-6.5deg) translateY(-7px)}}
.hero-copy .button{background:#5ad7ef;box-shadow:0 3px 0 #0c739724}.hero-copy .button span{font-size:23px}.hero-copy p{color:#fff}
.site-header{background:linear-gradient(105deg,#205197,#184580)}.header-inner nav a{transition:color .25s}.header-inner nav a:hover{color:#8be9ff}
.competition{background:linear-gradient(#fff,#fff 93%,#fcfdff)}.spotlight{border-color:#c8eaf6;box-shadow:0 5px 22px #1f6c9a09}.spotlight-top{background:linear-gradient(90deg,#dcf6fe,#eaf9ff)}.spotlight-top i{background:#19bfea}.spotlight-inner{padding-top:20px}.gift-intro .donor-time{color:#7285a1}.latest-amount{isolation:isolate}.gift-rays{position:absolute;inset:0;width:100%;height:100%;color:#32bce4;pointer-events:none;overflow:visible;z-index:-1}.latest-amount .just-gave,.latest-amount .gift-arrow{display:none}.latest-amount.large-gift .gift-rays{opacity:.35}.spotlight.arrival .gift-rays{animation:gift-rays-arrive 1s cubic-bezier(.16,1,.3,1)}@keyframes gift-rays-arrive{0%{transform:scale(.75);opacity:0}35%{opacity:1}100%{transform:scale(1);opacity:1}}
.board-row{transition:background .25s,box-shadow .3s,translate .3s}.board-row:hover{background:#f0faff;box-shadow:inset 3px 0 #35c9ed}.board-row.is-latest{border-color:#b6eefd;background:linear-gradient(90deg,#e1f8ff,#e9f8ff)}.board-row:hover:after{right:5px;top:7px;font-size:12px}.board-row:focus-visible{outline:2px solid #2b79b9;outline-offset:2px}.mini-track i,.overall-track>span{background:linear-gradient(90deg,#4cd6ed,#2d9dce 55%,#2e5195)}.metric-tabs{background:#eef2f7}.metric-tabs button{transition:color .25s,background .25s,box-shadow .25s}.metric-tabs button[aria-selected=true]{background:#244d90}.search{border-color:#ccd9e9;box-shadow:0 1px 3px #1f4d8d03}.foundation-name .name{color:#142c55}.row-value strong{color:#133365}.row-donors{color:#2c456c}.board-footer .ranking-note{color:#758aa1}
.campaign-context{background:#fff}.context-copy p{color:#526d8b}.context-copy .lead{color:#1b3b62}.context-title h2{color:#132d58}.history-section{background:#e2f4fc}.history-art{background-image:linear-gradient(90deg,#e1f4fd05,#e2f4fc),url('assets/campus-architecture.png');background-position:35% 35%;background-size:cover;opacity:.85;mix-blend-mode:multiply}.history-content h2{color:#13315e}.history-content>p{color:#547194}.timeline button:hover .timeline-people{color:#129ec9;transition:color .25s}.timeline button:after{background:#5cc9e6}.timeline button:before{content:'';position:absolute;top:10px;right:0;width:5px;height:5px;border-radius:50%;background:#43c1e2}.timeline button:last-child:before{display:none}
.closing-section{background:#123b77}.closing-section:before{background:linear-gradient(90deg,#0c315edb,#123b77e8 52%,#123b7750),url('assets/campus-architecture.png') right 35%/auto 360px no-repeat;opacity:1}.closing-pennant{background:url('assets/campus-white-flag-blue.png') 49% 29%/auto 510px;border:0;clip-path:none;transform:none;height:155px;animation:none;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 90%,transparent);filter:saturate(.8)}.closing-pennant span{display:none}.closing-inner h2{text-shadow:0 2px 0 #08244720}.closing-inner .button{background:#61dbf4;box-shadow:0 3px 0 #07356a50}.site-footer{background:#0d2f60}.footer-tools{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:8px}.footer-center #motion-toggle{margin:0;padding:2px 0}.footer-tools #open-lab{font-size:10px;border:0;padding:2px 0;min-height:20px;color:#aecfe5;text-decoration:underline;text-underline-offset:3px}.footer-tools button:hover{color:#70def7}
@media(max-width:1200px) and (min-width:681px){.hero-ticket{width:calc(100% + 35px);left:-12px;top:25px}.closing-section:before{background-size:auto 330px}.closing-pennant{background-size:auto 460px;height:135px}.footer-tools{justify-content:center}}
@media(max-width:980px) and (min-width:681px){.hero-ticket{width:calc(100% + 28px);left:-9px;top:22px}.closing-pennant{background-size:auto 360px;height:115px}}
@media(max-width:680px){.campus-art{background-position:43% center;opacity:.9}.hero:after{background:linear-gradient(90deg,#082c4b30,transparent 90%)}.hero-ticket{width:calc(100% + 7px);max-width:410px;padding:0;left:0;top:0;align-self:center;margin:0 0 4px;filter:drop-shadow(2px 12px 12px #001a3f50);animation:ticket-asset-float 7s ease-in-out infinite}.hero-inner{gap:33px;padding-bottom:32px}.gift-rays{inset:2px 0 0;height:93%}.history-art{opacity:.24;background-position:35% center}.timeline button:after{left:19px}.timeline button:before{display:none}.closing-section:before{background-size:auto 350px;background-position:right center;background-image:linear-gradient(90deg,#0c315ef0,#123b77c9 58%,#123b7730),url('assets/campus-architecture.png')}.closing-inner{padding-top:35px;padding-bottom:35px}.closing-pennant{display:none}.footer-tools{justify-content:flex-start;gap:22px;margin-top:9px}.footer-center #motion-toggle{padding:2px 0;font-size:10px}.footer-tools #open-lab{font-size:10px}}
.motion-off .hero-ticket{animation:none;transform:rotate(-8deg)}.motion-off .gift-rays{animation:none}
@media(prefers-reduced-motion:reduce){.hero-ticket,.gift-rays{animation:none!important}}
/* The closing photograph dissolves into the blue field instead of forming a
   second rectangular panel. The left flag is photographic, with soft edges. */
.closing-section:before{background:linear-gradient(105deg,#0c315f,#1c4b86);opacity:1}.closing-section:after{content:'';position:absolute;right:0;top:0;bottom:0;width:45%;background:url('assets/campus-architecture.png') 25% 45%/cover no-repeat;mask-image:linear-gradient(90deg,transparent,#000 65%);opacity:.48;pointer-events:none}.closing-inner{z-index:1}.closing-pennant{mask-image:radial-gradient(ellipse 75% 80% at 50% 50%,#000 35%,transparent 76%);height:155px;background-position:49% 29%}
@media(max-width:1200px) and (min-width:681px){.closing-pennant{height:135px}.closing-section:after{width:47%}}
@media(max-width:980px) and (min-width:681px){.closing-pennant{height:115px}}
@media(max-width:680px){.closing-section:after{width:85%;opacity:.35;background-position:28% center;mask-image:linear-gradient(90deg,transparent,#000 70%)}.closing-pennant{display:none}}
@media(max-width:680px){.hero-inner{align-items:stretch}.hero-copy{width:100%;max-width:none}}
/* Match the mockup's spaced collegiate date line; it was still undersized. */
@media(min-width:1201px){.hero-copy .eyebrow{font-size:17px;font-weight:600;letter-spacing:.32em;line-height:1.2}}
@media(min-width:681px) and (max-width:1200px){.hero-copy .eyebrow{font-size:11px;font-weight:600;letter-spacing:.24em}}
@media(max-width:680px){.hero-copy .eyebrow{font-size:9px;letter-spacing:.16em}}

/* Remove explanatory filler without leaving its layout space. */
.board-footer{justify-content:flex-end}.spotlight-inner{padding-bottom:22px}.closing-inner>div:last-child{justify-content:flex-end}

/* Final legibility and rhythm pass. */
.data-note{font-size:11px;line-height:1.5;color:#64768c}.data-note span{font-size:10px;color:#74859a}
.board-labels{color:#63758d}.board-row .name small{display:block;margin-top:3px;font-size:12px;font-family:var(--font-ui);font-weight:400;color:#6b7c91}
.context-title h2{line-height:1.1}.context-copy .lead{line-height:1.35}.history-content h2{letter-spacing:-.025em}
@media(max-width:680px){.data-note{font-size:10px}.data-note span{font-size:9px}.board-row .name small{font-size:9px;margin-top:2px}.closing-inner h2{font-size:49px}.context-title h2{font-size:36px}}
@media(max-width:680px){.foundation-name .name{white-space:normal;overflow:visible;text-overflow:clip;font-size:11px;line-height:1.2}.foundation-name .name small{white-space:normal}}
/* At phone widths keep the flag out of the headline's reading area. */
@media(max-width:680px){.campus-art{background-position:30% center}}

/* Fresh architecture remains sharply resolved; colour is applied as a single
   luminosity grade, without haze, blur or softened detail. */
.campus-art{background-color:#174675;background-blend-mode:luminosity}

/* Preserve the white cloth and cyan print rather than recoloring the flag. */
.campus-art{background-blend-mode:normal}

/* Natural copy wrapping; mobile ticket sits between headline and invitation. */
.hero-copy p{display:block;text-wrap:balance}
@media(max-width:680px){
 .hero-inner{flex-direction:column;gap:0}
 .hero-copy{display:contents}
 .hero-copy .eyebrow{order:0;align-self:flex-start}
 .hero-copy h1{order:1;align-self:flex-start;margin-bottom:22px}
 .hero-ticket{order:2;margin:8px 0 30px;width:100%;max-width:410px}
 .hero-details{order:3;width:100%}
 .hero-details p{font:22px/1.28 var(--font-display);max-width:100%;margin:0 0 20px;text-wrap:balance}
 .hero-details .button{margin:0}
}

/* Return navigation appears only after the complete standings section. */
.back-to-standings{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:10px;padding:14px 19px;border:1px solid #ffffff40;border-radius:4px;background:#123769;color:white;font:600 13px/1.2 var(--font-ui);box-shadow:0 5px 20px #001b3d25;transition:background .2s,transform .2s}
.back-to-standings[hidden]{display:none}
.back-to-standings:hover{background:#195699;transform:translateY(-2px)}
.back-to-standings span{color:#38d2ed;font-size:20px}
@media(max-width:680px){.back-to-standings{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:12px 16px;font-size:12px}.hero-ticket{margin-top:12px;margin-bottom:34px}}
@media(prefers-reduced-motion:reduce){.back-to-standings{transition:none}}

.hero-ticket picture{display:block}
@keyframes mobile-ticket-float{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-5px)}}
@media(max-width:680px){.hero-ticket{animation-name:mobile-ticket-float;margin-top:0;margin-bottom:25px}.motion-off .hero-ticket{transform:rotate(-3deg)}}

/* Keep the edition rule aligned to the complete label at every width. */
.hero-copy .eyebrow{width:fit-content;max-width:100%}
.hero-copy .eyebrow:after{width:100%}

.hero-details p{margin-bottom:0}

/* Soft free float rather than a single-axis pendulum. */
@keyframes ticket-asset-float{
 0%,100%{transform:translate(0,0) rotate(-8deg)}
 25%{transform:translate(3px,-3px) rotate(-7.8deg)}
 50%{transform:translate(-1px,-6px) rotate(-8.1deg)}
 75%{transform:translate(-3px,-2px) rotate(-8.2deg)}
}
@keyframes mobile-ticket-float{
 0%,100%{transform:translate(0,0) rotate(-3deg)}
 25%{transform:translate(2px,-2px) rotate(-2.8deg)}
 50%{transform:translate(0,-4px) rotate(-3.1deg)}
 75%{transform:translate(-2px,-1px) rotate(-3.2deg)}
}
.hero-ticket{animation-duration:11s}

/* A localized blue shade at the lower-right of the campaign emphasis. */
.hero-copy h1 em{
 display:inline-block;
 background-image:linear-gradient(165deg,#19c5e1 30%,#17bedc 54%,#109fc7 78%,#087fae 100%);
 background-clip:text;
 -webkit-background-clip:text;
 color:transparent;
 -webkit-text-fill-color:transparent;
}
@media(forced-colors:active){.hero-copy h1 em{background:none;color:Highlight;-webkit-text-fill-color:Highlight}}

/* A navy text seat calms the campus detail without dimming foreground type/art. */
.hero:after{
 background:linear-gradient(90deg,rgba(11,35,75,.86) 0%,rgba(11,35,75,.72) 28%,rgba(11,35,75,.52) 45%,rgba(11,35,75,.14) 62%,rgba(11,35,75,0) 74%);
}
@media(max-width:680px){
 .hero:after{background:linear-gradient(90deg,rgba(11,35,75,.78),rgba(11,35,75,.5) 72%,rgba(11,35,75,.38))}
}
