@font-face{font-family:Simpler;src:url('assets/SimplerPro_HLAR-Regular.otf')}@font-face{font-family:Simpler;src:url('assets/SimplerPro_HLAR-Bold.otf');font-weight:700}:root{--cream:#fffaf1;--ink:#222427;--purple:#692a67;--pink:#ffc0c7;--blue:#3866c0;--yellow:#faff77;--orange:#fd7244;--gap:20px}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Simpler,Arial,sans-serif;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{background:none;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.header{max-width:1200px;margin:39px auto 0;display:grid;grid-template-columns:1fr 50px 1fr;align-items:center;height:81px;gap:40px}.header nav{display:flex;gap:30px;white-space:nowrap}.header nav button{padding:0}.logo{display:flex;flex-direction:column;gap:11.56px;align-items:center}.logo img{display:block}.header-actions{display:flex;direction:ltr;gap:20px;justify-content:flex-start}.pill{border-radius:50px;height:40px;min-width:140px;padding:8px 24px;font-weight:700;white-space:nowrap}.primary{background:var(--purple);color:var(--cream)}.outline{border:1px solid var(--purple);color:var(--purple)}.intro{max-width:1200px;margin:100px auto 0}.intro h1{margin:0;font-size:0}.intro h1 img{display:block;width:100%;height:auto}.filter-wrap{max-width:1200px;margin:81px auto 42px}.filters{display:flex;gap:20px;align-items:center}.filter{border:1px solid #22242733;border-radius:50px;display:flex;align-items:center;justify-content:center;gap:5px;height:50px;flex:1;padding:12px 15px;white-space:nowrap;transition:background .2s,border-color .2s}.filter.active{border-color:#000;background:var(--cream);color:var(--ink)}.filter.active .category-icon{filter:none}.filter:hover{background:var(--cream);border-color:#000}.category-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;flex:none}.category-icon img{display:block;max-width:none}.grid{margin:0 auto;max-width:1600px;padding:0 20px;display:grid;direction:ltr;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense;grid-template-rows:repeat(18,calc((100vw - 100px)/4 / 2 - 10px));gap:var(--gap)}.card{position:relative;overflow:hidden;border-radius:10px;background:#ddd;direction:rtl;isolation:isolate;min-width:0}.card .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s;z-index:-3}.card:hover .photo{transform:scale(1.025)}.card::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 55%,#0004)}.card .tint{position:absolute;inset:0;z-index:-2;opacity:.7;background:var(--tint)}.story-open{position:absolute;inset:0;width:100%;height:100%;text-align:right}.card-title{position:absolute;bottom:80px;right:20px;left:20px;color:white;font-size:26px;line-height:1.25;margin:0;font-weight:700;opacity:0;transform:translateY(5px);transition:.2s}.card:hover .card-title,.card:focus-within .card-title,.card.featured .card-title{opacity:1;transform:none}.badges{position:absolute;bottom:20px;right:20px;display:flex;gap:10px;direction:rtl}.badge{display:flex;align-items:center;justify-content:center;gap:5px;width:35px;height:35px;padding:5px;border-radius:50px;background:white;color:var(--ink);transition:background .2s}.badge:hover{background:var(--yellow)}.featured .badge{width:auto;height:40px;padding:7px 15px}.badge-label{display:none}.featured .badge-label{display:inline}.play{position:absolute;left:20px;bottom:20px;pointer-events:none}.play img{display:block}.grid.filtered{direction:rtl;grid-auto-flow:row;grid-template-rows:none;grid-auto-rows:calc((100vw - 100px)/4);align-items:stretch}.grid.filtered .card{grid-column:auto!important;grid-row:auto!important}.grid.filtered .featured{grid-column:span 2!important}.card.promo{display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--pink);gap:24px}.card.promo:after{display:none}.apply-shape{position:absolute;width:82%;aspect-ratio:1;transform:rotate(45deg);z-index:-1;display:flex;align-items:center;justify-content:center}.apply-shape img{width:100%;height:auto}.promo-heading{width:64%;height:auto}.promo.apply .promo-heading{width:82%;max-width:400px}.promo .cta{z-index:2;background:var(--yellow);border-radius:30px;display:flex;align-items:center;gap:10px;padding:10px 15px;min-height:50px;font-size:18px;font-weight:700;color:var(--blue)}.cta .arrow{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--pink);border-radius:50%}.year{position:absolute;width:48%;height:auto;z-index:-2}.year.y1{top:-2%;right:-2%}.year.y2{bottom:-2%;left:-2%}.year.y3{top:-2%;left:-2%;transform:rotate(-44deg);filter:brightness(0) saturate(100%) invert(36%) sepia(82%) saturate(586%) hue-rotate(181deg)}.year.y4{bottom:-2%;right:-2%;transform:rotate(-44deg);filter:brightness(0) saturate(100%) invert(36%) sepia(82%) saturate(586%) hue-rotate(181deg)}.promo.donate{background:var(--orange)}.donate-art{position:absolute;width:120.5%;height:187.4%;top:-55.7%;left:-12.8%;z-index:-1}.donate .cta{color:var(--ink)}.donate .arrow{background:var(--orange)}.load-wrap{text-align:center;margin:70px auto 0;height:140px}#more{font-weight:700;font-size:18px;padding:10px 30px;border-radius:30px}#more:hover{background:var(--yellow)}footer{padding-top:45px}.footer-inner{max-width:1200px;margin:auto}.footer-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:50px}.footer-nav>div{display:flex;align-items:flex-start;flex-direction:column;gap:16px}.footer-nav button{padding:0;font-size:14px;text-align:right}.footer-nav>div>button:first-child{font-size:18px;font-weight:700;margin-bottom:4px}.footer-nav>div:last-child{gap:10px}.footer-nav>div:last-child button{font-size:18px;font-weight:700;margin:0}.footer-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin:60px 0 75px;font-size:14px}.footer-actions{display:flex;gap:50px;align-items:center}.footer-actions .pill{width:200px;height:50px;font-size:18px}.yellow{background:var(--yellow)}.blue{background:var(--blue);color:white}.socials{display:flex;gap:34px}.socials img{display:block}.footer-wordmark{overflow:hidden;direction:ltr}.footer-wordmark img{display:block;width:100%;height:auto}dialog{border:0;border-radius:16px;background:var(--cream);color:var(--ink);max-width:740px;width:calc(100% - 40px);padding:35px}dialog::backdrop{background:#22242799;backdrop-filter:blur(4px)}.close{position:absolute;left:12px;top:8px;font-size:32px;border-radius:50%;z-index:3}#dialog-content>img{width:100%;max-height:420px;object-fit:cover;border-radius:8px}#dialog-content h2{font-size:30px;line-height:1.2}#dialog-content p{font-size:20px;line-height:1.5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}@media(min-width:1640px){.grid{grid-template-rows:repeat(18,182.5px)}.grid.filtered{grid-template-rows:none;grid-auto-rows:385px}}@media(max-width:1250px){.header,.intro,.filter-wrap,.footer-inner{margin-left:40px;margin-right:40px}.filters{gap:10px}.filter{padding:10px;gap:3px}.header{gap:20px}.header nav{gap:20px}.header-actions{gap:10px}.footer-actions{gap:25px}.socials{gap:18px}.footer-nav{gap:25px}}@media(max-width:950px){.header{grid-template-columns:1fr 50px 1fr}.header nav{gap:12px;flex-wrap:wrap}.header-actions{flex-direction:column;align-items:flex-start}.intro{margin-top:75px}.filter-wrap{margin-top:55px;margin-bottom:30px}.filters{flex-wrap:wrap;gap:10px}.filter{flex:1 0 16%;height:44px}.badges{right:12px;bottom:12px;gap:6px}.badge{width:32px;height:32px}.featured .badge{padding:5px 10px;height:35px}.card-title{font-size:21px;bottom:60px;right:14px;left:14px}.footer-actions .pill{min-width:130px;width:auto}.footer-bottom{align-items:center}.footer-actions{gap:20px;flex-wrap:wrap}.socials{gap:15px}.socials img{width:40px;height:auto}.promo .cta{min-height:40px;padding:5px 10px;font-size:14px}.promo{gap:10px!important}.promo .arrow{width:24px;height:24px}}@media(max-width:650px){:root{--gap:12px}.header{margin:22px 20px 0;height:70px;grid-template-columns:1fr 44px;gap:15px}.logo{grid-column:2;grid-row:1}.header nav{grid-column:1;grid-row:1;font-size:13px;gap:15px;padding-top:40px}.header-actions{position:absolute;left:20px;top:22px;flex-direction:row;gap:8px}.header .pill{font-size:12px;height:28px;padding:5px 14px;min-width:92px}.logo{transform:scale(.8);transform-origin:top center}.intro{margin:64px 20px 0}.intro h1 img{min-height:74px;object-fit:contain}.filter-wrap{margin:35px 20px 24px}.filters{gap:8px}.filter{flex:1 0 27%;font-size:14px;height:40px;padding:7px}.grid{padding:0 12px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:calc((100vw - 36px)/2);gap:12px}.grid .card{grid-column:auto!important;grid-row:auto!important}.grid .featured,.grid .promo,.grid .large{grid-column:span 2!important}.grid .featured{grid-row:span 1!important}.grid .large{grid-row:span 2!important}.grid .tall{grid-row:span 2!important}.grid .promo{min-height:260px}.grid.filtered{grid-auto-rows:calc((100vw - 36px)/2);grid-template-rows:none}.grid.filtered .large,.grid.filtered .tall{grid-column:auto!important;grid-row:auto!important}.card-title{font-size:20px}.card.featured .card-title{bottom:65px}.badge{width:32px;height:32px}.featured .badge{height:34px}.play{left:12px;bottom:12px}.play img{width:42px;height:auto}.load-wrap{margin-top:35px;height:90px}footer{padding-top:20px}.footer-inner{margin:0 22px}.footer-nav{grid-template-columns:repeat(3,1fr);gap:30px 18px}.footer-nav button{font-size:13px}.footer-nav>div>button:first-child,.footer-nav>div:last-child button{font-size:16px}.footer-bottom{margin:40px 0;gap:24px;align-items:flex-start;flex-direction:column}.footer-actions{gap:15px}.footer-actions .pill{font-size:16px;width:calc(50% - 8px);height:42px}.socials{gap:18px}.footer-actions{width:100%}.socials img{width:40px}.promo-heading{max-width:250px}.promo.apply .promo-heading{max-width:330px}.promo .cta{font-size:16px;padding:7px 13px;min-height:42px}.year{width:46%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(min-width:651px) and (max-width:1639px){.grid{grid-template-rows:repeat(2,calc((100vw - 40px)*225/1326)) repeat(2,calc((100vw - 40px)*317/1326)) calc((100vw - 40px)*470/1326) repeat(2,calc((100vw - 40px)*317/1326)) calc((100vw - 40px)*470/1326);grid-auto-rows:calc((100vw - 40px)*317/1326)}.grid.filtered{grid-template-rows:none;grid-auto-rows:calc((100vw - 100px)/4)}}@media(min-width:1640px){.grid{grid-template-rows:repeat(2,264.7px) repeat(2,373px) 553px repeat(2,373px) 553px;grid-auto-rows:373px}.grid.filtered{grid-template-rows:none;grid-auto-rows:373px}}.demo-note{font-size:14px!important;opacity:.65}

.year.y3,.year.y4{transform:none;filter:none}
@media(min-width:951px){.intro h1{min-height:164px}}

/* Keep the original registration artwork together; the heading and CTA remain independent. */
.registration-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.promo.apply .promo-heading{position:absolute;top:38.7%;left:50%;transform:translateX(-50%);width:52.83%;max-width:none;height:auto}
.promo.apply .cta{position:absolute;top:50.64%;left:50%;transform:translateX(-50%)}
.badge .category-icon{transform:scale(.7)}
/* Expand each item's category circles into named tags on hover or keyboard focus. */
.card{--badge-bottom:20px;--title-tag-gap:20px}
.badges{max-width:calc(100% - 40px);flex-wrap:wrap;justify-content:flex-start}
.badge{width:auto;gap:0;flex:none;transition:background .2s,padding .25s,height .25s}
.badge-label{display:block;overflow:hidden;max-width:0;opacity:0;white-space:nowrap;margin-inline-start:0;transition:max-width .25s,opacity .2s,margin .25s}
.card:hover .badge,.card:focus-within .badge{height:40px;padding:7px 15px}
.card:hover .badge-label,.card:focus-within .badge-label,.featured .badge-label{display:block;max-width:140px;opacity:1;margin-inline-start:5px}
.card .card-title{bottom:calc(var(--badge-bottom) + var(--badge-stack-height,40px) + var(--title-tag-gap))}
@media(max-width:950px){.card{--badge-bottom:12px;--title-tag-gap:18px}.badges{max-width:calc(100% - 24px)}.card:hover .badge,.card:focus-within .badge{height:35px;padding:5px 10px}}
@media(max-width:650px){.card:hover .badge,.card:focus-within .badge{height:34px}}

/* Original donation artwork is one image; heading and button are HTML. */
@font-face{font-family:Liebling;src:url('assets/LieblingPro-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Liebling;src:url('assets/LieblingPro-Heavy.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Liebling;src:url('assets/LieblingPro-Black.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
.promo.donate{container-type:inline-size}
.donation-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.donation-title{position:absolute;top:24.04%;left:50%;transform:translateX(-50%);width:60.25%;margin:0;padding:0;background:none;color:var(--cream);font-family:Liebling,Simpler,Arial,sans-serif;font-weight:700;font-size:clamp(30px,10.7cqw,70px);line-height:.943;text-align:center}
.donate .cta{position:absolute;top:57.87%;left:50%;transform:translateX(-50%);white-space:nowrap}

/* Shared application/donation button interactions. Scale adds exactly 5px per dimension. */
.header nav button{transition:color .18s ease}
.header nav button:hover,.header nav button:focus-visible{color:var(--purple)}
.action-button{scale:1;transition:scale .22s cubic-bezier(.2,.7,.3,1);transform-origin:center;will-change:scale}
.action-button.cta:hover,.action-button.cta:focus-visible{scale:1}
.action-button .arrow{overflow:hidden;clip-path:circle(50%);flex:none;isolation:isolate}
.action-button .arrow img{display:block;flex:none;transform:translateX(0);will-change:transform}
.action-button:hover .arrow img,.action-button:focus-visible .arrow img{animation:cta-arrow-pass .62s cubic-bezier(.4,0,.2,1) both}
@keyframes cta-arrow-pass{0%{transform:translateX(0);opacity:1}44%{transform:translateX(-34px);opacity:1}45%{transform:translateX(-34px);opacity:0}46%{transform:translateX(34px);opacity:0}47%{transform:translateX(34px);opacity:1}100%{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.action-button:hover,.action-button:focus-visible{scale:1}.action-button .arrow img{animation:none!important}}

/* Inverted palettes preserve borders and distinguish adjacent header buttons. */
.action-button.primary{--button-bg:var(--purple);--button-fg:var(--cream)}
.action-button.outline{--button-bg:var(--cream);--button-fg:var(--purple);--button-border:var(--purple)}
.action-button.yellow{--button-bg:var(--yellow);--button-fg:var(--ink)}
.action-button.blue{--button-bg:var(--blue);--button-fg:#fff}
.action-button.pill{background:var(--button-bg);color:var(--button-fg);border:1px solid var(--button-border,var(--button-bg));transition:background-color .2s;will-change:auto}
.action-button.pill:hover,.action-button.pill:focus-visible{scale:1;background:var(--button-hover-bg,var(--button-fg));color:var(--button-hover-fg,var(--button-bg));border-color:var(--button-hover-bg,var(--button-fg))}
.play{border-radius:50%;isolation:isolate}
.play .play-hover{position:absolute;inset:0;opacity:0;transition:opacity .2s}
.card:hover .play-hover,.card:focus-within .play-hover{opacity:1}

.action-button.primary{--button-hover-bg:var(--pink);--button-hover-fg:var(--purple)}
.action-button.outline{--button-hover-bg:var(--purple);--button-hover-fg:var(--yellow)}
:is(.promo,.person-panel) .action-button.cta{transition:scale .22s cubic-bezier(.2,.7,.3,1),background-color .2s}

.socials a{position:relative;display:block;border-radius:50%;overflow:hidden;line-height:0}
.socials a::after{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--ink);opacity:0;pointer-events:none;transition:opacity .2s}
.socials a:hover::after,.socials a:focus-visible::after{opacity:.08}
/* Content headings remain selectable, searchable HTML. Logos and decorative artwork remain images. */
.intro h1{font-family:Liebling,Simpler,Arial,sans-serif;font-weight:800;font-size:clamp(26px,5.12vw,70px);line-height:1.172;text-align:right;color:var(--ink)}
.intro h1 span{display:block}
.promo.apply{container-type:inline-size}
.promo.apply h2.promo-heading{width:85%;margin:0;padding:0;background:none;color:var(--cream);font-family:Liebling,Simpler,Arial,sans-serif;font-weight:700;font-size:clamp(14px,4.59cqw,30px);line-height:1.2;text-align:center}
@media(max-width:650px){.intro h1{font-size:clamp(22px,5.4vw,35px);line-height:1.2}}

.promo.apply .action-button.cta{--cta-hover-bg:var(--blue)}
.footer-nav button{transition:color .18s ease}
.footer-nav button:hover,.footer-nav button:focus-visible{color:var(--purple)}
.socials a::after{display:none}
.socials a .social-hover{position:absolute;inset:0;opacity:0;transition:opacity .2s}
.socials a:hover .social-hover,.socials a:focus-visible .social-hover{opacity:1}

/* Grow only the button surface; keep its label and arrow circle at their original geometry. */
:is(.promo,.person-panel) .action-button.cta{isolation:isolate;overflow:visible;background:transparent;transition:none;will-change:auto}
:is(.promo,.person-panel) .action-button.cta::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--yellow);z-index:-1;transition:inset .22s cubic-bezier(.2,.7,.3,1)}
:is(.promo,.person-panel) .action-button.cta:hover::before,:is(.promo,.person-panel) .action-button.cta:focus-visible::before{inset:-2.5px}
:is(.promo,.person-panel) .action-button.cta:hover,:is(.promo,.person-panel) .action-button.cta:focus-visible{scale:1;background:transparent}
.promo .action-label{position:relative}
@media(prefers-reduced-motion:reduce){:is(.promo,.person-panel) .action-button.cta::before{transition:none}:is(.promo,.person-panel) .action-button.cta:hover::before,:is(.promo,.person-panel) .action-button.cta:focus-visible::before{inset:0}}
.action-button.blue{--button-hover-bg:var(--pink);--button-hover-fg:var(--ink)}

.intro h1,.promo.apply h2.promo-heading,.donation-title{font-synthesis:none}

/* Center the expanded label and icon as one unit inside every desktop tag. */
.badge{padding-inline:5px;justify-content:center}
.badge .category-icon{width:17.5px;height:17.5px;transform:none}
.badge .category-icon img{max-width:17.5px;max-height:17.5px;width:auto;height:auto}
.badge:not(:hover){min-width:35px}
.card:hover .badge,.card:focus-within .badge,.featured .badge{padding-inline:12px}
.badge-label{line-height:1;transform:translateY(-1px)}
.menu-toggle,.filter-toggle,.mobile-footer-symbol{display:none}
.footer-legal{display:flex;gap:25px;align-items:center;white-space:nowrap;font-size:14px}
.privacy{font-size:12px}
@media(max-width:650px){
:root{--gap:20px}
.header{height:30px;margin:30px 30px 0;display:flex;justify-content:space-between;direction:ltr;position:relative;gap:0;z-index:5}
.logo{display:flex;flex-direction:row;direction:ltr;gap:9px;transform:none;align-items:center}
.logo img:first-child{width:27px;height:30px}.logo img:last-child{width:45px;height:auto}
.menu-toggle{display:flex;width:30px;height:30px;flex-direction:column;justify-content:center;gap:8px;padding:0}
.menu-toggle span{height:3px;width:30px;background:#000;display:block}
.header nav,.header-actions{display:none}
.header.menu-open nav{display:flex;position:absolute;top:50px;right:0;left:0;grid-column:auto;grid-row:auto;direction:rtl;flex-direction:column;align-items:stretch;padding:20px;background:var(--cream);border:1px solid var(--ink);border-radius:10px;font-size:18px;gap:20px}
.header.menu-open nav button{text-align:right}
.header.menu-open .header-actions{position:absolute;display:flex;top:255px;right:0;left:0;background:var(--cream);padding:15px;justify-content:center;flex-direction:row;border-radius:10px}
.header .pill{height:40px;font-size:15px;min-width:0}
.intro{margin:40px 30px 0}
.intro h1{font-size:40px;line-height:1.175;text-align:center;min-height:188px}
.intro h1 span:first-child{max-width:330px;margin:auto}
.intro h1 span:last-child{max-width:330px;margin:auto}
.filter-wrap{margin:20px 30px 20px}
.filter-toggle{display:flex;margin:auto;padding:8px 0;width:30px;height:20px;box-sizing:content-box;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.filter-toggle span{display:block;height:3px;border-radius:3px;background:#000;width:20px}.filter-toggle span:nth-child(2){width:13px}.filter-toggle span:last-child{width:6px}
.filters{display:none;gap:8px;margin-top:14px}.filters-open .filters{display:flex}
.filter{flex:1 0 28%;height:40px;font-size:14px;padding:7px}
.grid,.grid.filtered{padding:0;margin:0 30px;display:grid;direction:rtl;grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto;gap:20px}
.grid .card,.grid.filtered .card,.grid .large,.grid .tall,.grid .featured,.grid .promo{grid-column:1!important;grid-row:auto!important;aspect-ratio:1;min-height:0;width:100%}
.grid .video-card{aspect-ratio:330/234.227}
.card{--badge-bottom:20px;--title-tag-gap:10px;border-radius:10px}
.card .tint{display:none}.card::after{background:linear-gradient(transparent 30%,#0008)}
.badges{right:20px;bottom:20px;gap:10px;max-width:calc(100% - 40px)}
.card .badge,.card:hover .badge,.card:focus-within .badge,.featured .badge{height:30px;min-width:0;padding:5px 12px}
.badge-label,.card:hover .badge-label,.card:focus-within .badge-label,.featured .badge-label{max-width:140px;opacity:1;margin-inline-start:5px;display:block;font-size:14px}
.card .card-title,.card.featured .card-title{right:20px;left:20px;bottom:calc(20px + var(--badge-stack-height,30px) + 10px);font-size:18px;line-height:23px;opacity:1;transform:none}
.card.video-card .card-title{display:none}
.play{left:20px;bottom:20px}.play img{width:60px;height:60px}
.promo.apply h2.promo-heading{font-size:22px;top:37.58%;line-height:1;width:90%}
.promo.apply .cta{top:50.3%;min-width:170px}.promo .cta{height:40px;min-height:40px;font-size:16px;padding:8px 10px;gap:13px;justify-content:center}
.promo .arrow{width:20px;height:20px}.promo .arrow img{max-width:14px;max-height:14px}
.donation-title{top:29.39%;width:85%;font-size:40px;line-height:1}
.donate .cta{top:58.18%;min-width:156px}
.load-wrap{margin:50px auto 0;height:186px}#more{font-size:18px;padding:10px 20px}
footer{padding-top:0}.footer-inner{margin:0 30px}
.footer-nav{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;column-gap:30px;row-gap:30px;direction:rtl}
.footer-nav>div:nth-child(1){grid-column:1;grid-row:1}.footer-nav>div:nth-child(2){grid-column:2;grid-row:1/span 3}.footer-nav>div:nth-child(3){grid-column:1;grid-row:2}.footer-nav>div:nth-child(4){grid-column:1;grid-row:3}
.footer-nav>div{gap:10px}.footer-nav>div>button:first-child,.footer-nav>div:last-child button{font-size:16px;margin:0}.footer-nav button{font-size:16px}.footer-nav>div:last-child{display:none}
.footer-bottom{margin:40px 0;display:block}.footer-actions{display:grid;grid-template-columns:1fr 1fr;gap:40px 20px;width:100%}
.footer-actions .pill{width:100%;min-width:0;height:40px;font-size:16px;padding:8px 10px}
.socials{grid-column:1/-1;width:100%;display:flex;justify-content:space-between;gap:0}.socials img{width:50px;height:50px}
.footer-legal{display:flex;justify-content:space-between;gap:8px;margin-top:40px;font-size:14px}.privacy{font-size:12px}
.footer-wordmark>img:first-child{display:none}.footer-wordmark .mobile-footer-symbol{display:block;width:100%;height:auto}
}
@media(max-width:375px){.intro h1{font-size:calc((100vw - 60px)*.1212)}.card .card-title{font-size:16px;line-height:21px}.card .badge{padding-inline:8px}.badges{gap:6px}}
@media(max-width:650px){.header .logo{order:-1}.intro h1{font-size:36px;line-height:47px}.filter-toggle{height:20px;box-sizing:border-box;padding:0}}
@media(max-width:375px){.intro h1{font-size:calc((100vw - 60px)*.10909);line-height:1.3056}}
@media(max-width:650px){.intro h1{font-size:35px}.promo.apply h2.promo-heading{font-size:20px}.card .card-title{font-size:16px}.donate .cta{color:var(--purple)}.promo.apply .arrow{background:var(--blue)}.donate .arrow{background:var(--pink)}.privacy{font-size:14px}.footer-nav{grid-template-columns:1fr 1fr;column-gap:0;row-gap:30px}.footer-nav>div:nth-child(2){align-items:flex-start}}
.mobile-break{display:none}
@media(max-width:650px){html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.mobile-break{display:block}.intro h1{font-size:33px;line-height:47px;letter-spacing:-.3px}.intro h1 span{white-space:nowrap}.footer-nav button{line-height:22px}}
@media(max-width:375px){.intro h1{font-size:calc((100vw - 60px)*.1)}}
@media(max-width:650px){.menu-toggle{align-items:center;justify-content:center}.menu-toggle img{display:block;width:30px;height:13px}.filter-toggle img{display:block;width:21px;height:13px}}
@media(max-width:650px){.badge-label,.card:hover .badge-label,.card:focus-within .badge-label,.featured .badge-label{font-size:12px}.badge .category-icon{width:18.75px;height:18.75px}.badge .category-icon img{max-width:14.25px;max-height:14.25px}}
@media(min-width:376px) and (max-width:650px){.intro h1{font-size:35px}}
/* Keep the mobile footer symbol out of the desktop wordmark. */
.footer-wordmark>.mobile-footer-symbol{display:none}
.mobile-menu{display:none}
@media(max-width:650px){
.footer-wordmark>.mobile-footer-symbol{display:block}
:is(.promo,.person-panel) .action-button.cta{height:50px;min-height:50px;padding:10px 16px;gap:12px;font-size:18px}
.promo.apply .action-button.cta{min-width:210px}.promo.donate .action-button.cta{min-width:198px}
.promo .action-button .arrow{width:30px;height:30px}
.promo .action-button .arrow img{width:16px;height:auto;max-width:none;max-height:none;object-fit:contain}
.filter-panel{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;margin-top:0;transition:grid-template-rows .36s cubic-bezier(.2,.7,.3,1),opacity .24s ease,margin-top .36s ease,visibility .36s}
.filter-panel>.filters{display:flex;overflow:hidden;min-height:0;margin:0;transform:translateY(-8px);transition:transform .36s cubic-bezier(.2,.7,.3,1)}
.filters-open .filter-panel{grid-template-rows:1fr;opacity:1;visibility:visible;margin-top:16px}
.filters-open .filter-panel>.filters{transform:translateY(0)}
.filter-toggle{transition:transform .25s ease}.filters-open .filter-toggle{transform:rotate(180deg)}
/* Full-screen navigation, with one clear reading order and bottom actions. */
body.mobile-menu-open{overflow:hidden}
.mobile-menu{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;justify-content:space-between;gap:32px;background:var(--purple);color:var(--yellow);padding:130px 30px max(30px,env(safe-area-inset-bottom));height:100dvh;overflow-y:auto;opacity:0;transform:translateY(-16px);transition:opacity .3s ease,transform .3s cubic-bezier(.2,.7,.3,1);overscroll-behavior:contain}
.mobile-menu.is-open{opacity:1;transform:translateY(0)}
.mobile-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:24px;margin-block:auto;padding-bottom:36px}
.mobile-menu nav button{font-family:Liebling,Simpler,Arial,sans-serif;font-weight:700;font-size:clamp(32px,9.7vw,44px);line-height:1.2;text-align:right;padding:0;color:var(--yellow);transform:translateY(12px);opacity:0;transition:transform .35s ease,opacity .35s ease,color .2s ease}
.mobile-menu.is-open nav button{opacity:1;transform:translateY(0)}
.mobile-menu nav button:nth-child(2){transition-delay:40ms}.mobile-menu nav button:nth-child(3){transition-delay:80ms}.mobile-menu nav button:nth-child(4){transition-delay:120ms}
.mobile-menu nav button:hover{color:var(--pink)}
.mobile-menu-actions{display:flex;flex-direction:column;gap:12px;flex:none}
.mobile-menu-actions .pill{width:100%;height:56px;font-size:18px;padding:14px 24px;min-width:0}
.action-button.menu-white{--button-bg:#fff;--button-fg:var(--purple);--button-hover-bg:var(--pink);--button-hover-fg:var(--purple)}
.mobile-menu-actions .action-button.yellow{--button-hover-bg:var(--ink);--button-hover-fg:var(--yellow)}
.mobile-menu button:focus-visible{outline:2px solid var(--pink);outline-offset:6px}
.header.menu-open{z-index:101}
.header.menu-open nav,.header.menu-open .header-actions{display:none}
.header.menu-open .logo{visibility:hidden}
.menu-toggle{position:relative;z-index:102}
.menu-toggle img{transition:opacity .16s ease}
.menu-toggle::before,.menu-toggle::after{content:'';position:absolute;width:30px;height:3px;left:0;top:13.5px;background:var(--yellow);opacity:0;transform:rotate(0);transition:transform .3s ease,opacity .2s ease}
.header.menu-open .menu-toggle{position:fixed;right:30px;top:30px}
.header.menu-open .menu-toggle img{opacity:0}
.header.menu-open .menu-toggle::before{opacity:1;transform:rotate(45deg)}
.header.menu-open .menu-toggle::after{opacity:1;transform:rotate(-45deg)}
}
@media(max-width:650px) and (max-height:650px){.mobile-menu{padding-top:94px;gap:24px}.mobile-menu nav{gap:16px;padding-bottom:0}.mobile-menu nav button{font-size:30px}.mobile-menu-actions .pill{height:48px}}
@media(prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu nav button,.filter-panel,.filter-panel>.filters,.menu-toggle::before,.menu-toggle::after{transition:none!important;transform:none}.header.menu-open .menu-toggle::before{transform:rotate(45deg)}.header.menu-open .menu-toggle::after{transform:rotate(-45deg)}}
@media(max-width:650px){.mobile-menu>.menu-toggle{position:fixed;right:30px;top:30px;z-index:102;flex:none}.mobile-menu.is-open>.menu-toggle img{opacity:0}.mobile-menu.is-open>.menu-toggle::before{opacity:1;transform:rotate(45deg)}.mobile-menu.is-open>.menu-toggle::after{opacity:1;transform:rotate(-45deg)}}
@media(max-width:650px){.header.menu-open{pointer-events:none}}
/* Wide screens: keep the original proportions as the story grid grows. */
@media(min-width:1640px){
 .grid{width:100%;max-width:1800px;grid-template-rows:repeat(2,calc((min(100vw, 1800px) - 40px)*225/1326)) repeat(2,calc((min(100vw, 1800px) - 40px)*317/1326)) calc((min(100vw, 1800px) - 40px)*470/1326) repeat(2,calc((min(100vw, 1800px) - 40px)*317/1326)) calc((min(100vw, 1800px) - 40px)*470/1326);grid-auto-rows:calc((min(100vw, 1800px) - 40px)*317/1326)}
 .grid.filtered{grid-template-rows:none;grid-auto-rows:calc((min(100vw, 1800px) - 100px)/4)}
 .intro{width:calc(min(100vw, 1800px)*1200/1366);max-width:none;margin-left:auto;margin-right:auto}
 .intro h1{font-size:clamp(70px,5.12vw,92px)}
}
/* The label stays still while the larger hover surface eases into view. */
#more{position:relative;isolation:isolate;background:transparent!important}
#more::before{content:'';position:absolute;inset:-6px -20px;border-radius:999px;background:var(--yellow);z-index:-1;opacity:0;transform:scale(.88);transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .25s ease}
#more:hover::before,#more:focus-visible::before{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){#more::before{transition:none}}
@media(max-width:650px){.filter-panel>.filters{row-gap:16px}}
/* Navigation categories: eased weight and a word-width RTL underline. */
.header nav button,.footer-nav button,.mobile-menu nav button{position:relative;width:max-content;max-width:100%;transition:font-weight .35s cubic-bezier(.2,.7,.2,1),text-shadow .35s cubic-bezier(.2,.7,.2,1);text-shadow:0 0 0 currentColor}
.header nav button::after,.footer-nav button::after,.mobile-menu nav button::after{content:'';position:absolute;right:0;bottom:-22px;width:100%;height:2px;background:#000;transform:scaleX(0);transform-origin:right center;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.header nav button:hover,.footer-nav button:hover{color:var(--ink);text-shadow:.35px 0 currentColor,-.35px 0 currentColor}
.mobile-menu nav button:hover{color:var(--yellow);text-shadow:.4px 0 currentColor,-.4px 0 currentColor}
.header nav button:hover::after,.footer-nav button:hover::after,.mobile-menu nav button:hover::after{transform:scaleX(1)}
@media(max-width:650px){.mobile-menu nav{align-items:flex-start;gap:34px}.footer-nav>div{gap:28px}}

/* Weight emphasis is optical, so word widths and neighboring links stay fixed. */
.header nav button::after,.footer-nav button::after,.mobile-menu nav button::after{bottom:-12px}
.card:not(.promo) .tint{display:block;opacity:0;background:var(--tint,var(--purple));transition:opacity .4s cubic-bezier(.2,.7,.2,1)}
.card:not(.promo):has(:focus-visible) .tint{opacity:.7}
@media(hover:hover) and (pointer:fine){.card:not(.promo):hover .tint{opacity:.7}}
@media(min-width:651px){
 .card.featured:not(:hover):not(:focus-within) .card-title{opacity:0;transform:translateY(5px)}
 .card.featured:not(:hover):not(:focus-within) .badge{height:35px;padding:5px;min-width:35px}
 .card.featured:not(:hover):not(:focus-within) .badge-label{max-width:0;opacity:0;margin-inline-start:0}
}
.scroll-header{position:fixed;z-index:80;top:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 30px 10px 10px;height:60px;border-radius:60px;background:#fff;box-shadow:0 2px 15px #0003;transform:translateY(calc(-100% - 40px));visibility:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1),visibility .5s;direction:rtl}
.scroll-header.is-visible{transform:translateY(0);visibility:visible}
.scroll-navigation{display:flex;align-items:center;gap:30px}.scroll-navigation>img{width:26.837px;height:30.001px;flex:none}
.scroll-navigation nav{display:flex;align-items:center;gap:30px}.scroll-navigation nav button{position:relative;padding:0;white-space:nowrap;text-shadow:0 0 currentColor;transition:text-shadow .35s cubic-bezier(.2,.7,.2,1)}
.scroll-navigation nav button:hover{ text-shadow:.35px 0 currentColor,-.35px 0 currentColor }
.scroll-navigation nav button::after{content:'';position:absolute;right:0;bottom:-12px;width:100%;height:2px;background:#000;transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.scroll-navigation nav button:hover::after{transform:scaleX(1)}
.scroll-actions{display:flex;direction:ltr;gap:10px}
@media(max-width:850px) and (min-width:651px){.scroll-navigation,.scroll-navigation nav{gap:14px}.scroll-actions .pill{min-width:100px;padding:8px 12px}.scroll-header{padding-right:20px;gap:12px}}
@media(max-width:650px){.scroll-header{display:none}}
@media(prefers-reduced-motion:reduce){.scroll-header,.card:not(.promo) .tint{transition:none}}
/* Center the floating menu 40px narrower than the grid's inner content. */
.scroll-header{left:50%;right:auto;width:calc(min(100%, 1600px) - 80px);max-width:1720px;translate:-50% 0}
.scroll-navigation nav button::after{bottom:-7px}
.scroll-actions .action-button.outline,.scroll-actions .action-button.outline:hover,.scroll-actions .action-button.outline:focus-visible{background:transparent;color:var(--purple);border-color:var(--purple)}
@media(min-width:1640px){.scroll-header{width:calc(min(100%, 1800px) - 80px)}}
/* Sitemap links use the brand blue without an underline. */
.footer-nav button::after{display:none}
.footer-nav button{transition:color .25s ease,text-shadow .35s cubic-bezier(.2,.7,.2,1)}
.footer-nav button:hover,.footer-nav button:focus-visible{color:var(--blue)}
.scroll-actions .action-button.outline:hover,.scroll-actions .action-button.outline:focus-visible{background:var(--button-hover-bg);color:var(--button-hover-fg);border-color:var(--button-hover-bg)}
@media(max-width:650px){.grid,.grid.filtered{row-gap:30px}}
@media(max-width:650px){.mobile-menu-brand{position:absolute;left:30px;top:30px;height:30px;display:flex;align-items:center;gap:10px;direction:ltr}.mobile-menu-brand img{display:block;flex:none}.mobile-menu.is-open>.menu-toggle img{opacity:1;width:23.334px;height:23.334px}.mobile-menu.is-open>.menu-toggle::before,.mobile-menu.is-open>.menu-toggle::after{display:none}}
@media(max-width:650px){
.mobile-menu{--menu-bg:var(--purple);--menu-fg:var(--yellow);background:transparent;color:var(--menu-fg);opacity:1;transform:none!important;transition:none;isolation:isolate}
.mobile-menu::before{content:'';position:fixed;inset:0;z-index:-1;background:var(--menu-bg);opacity:0;transition:opacity .16s ease-out}
.mobile-menu.is-open::before{opacity:1}
.mobile-menu nav,.mobile-menu-actions,.mobile-menu-brand{opacity:0;transition:opacity .3s ease;transform:none}
.mobile-menu.is-open nav,.mobile-menu.is-open .mobile-menu-actions,.mobile-menu.is-open .mobile-menu-brand{opacity:1;transition-delay:.1s}
.mobile-menu nav button,.mobile-menu.is-open nav button{color:var(--menu-fg);opacity:1;transform:none;transition-delay:0s}
.mobile-menu nav button:hover{color:var(--menu-fg)}
.mobile-menu button:focus-visible{outline-color:var(--menu-fg)}
.mobile-menu-actions .action-button.yellow{--button-bg:var(--menu-fg);--button-fg:var(--menu-bg);--button-hover-bg:var(--menu-fg);--button-hover-fg:var(--menu-bg)}
.mobile-menu-actions .action-button.menu-white{--button-fg:var(--menu-white-fg,var(--menu-bg));--button-hover-fg:var(--menu-white-fg,var(--menu-bg))}
.menu-brand-symbol,.menu-brand-wordmark{display:block;background:var(--menu-fg);mask-repeat:no-repeat;mask-position:center;mask-size:contain;flex:none}
.menu-brand-symbol{width:26.837px;height:30px;mask-image:url('assets/menu-brand-symbol.svg')}
.menu-brand-wordmark{width:43.579px;height:12px;mask-image:url('assets/menu-brand-wordmark.svg')}
.menu-toggle::before,.menu-toggle::after{display:none!important}
.menu-toggle .menu-bar{position:absolute;left:0;width:30px;height:3px;background:#000;display:block;opacity:1;transition:transform .28s cubic-bezier(.2,.7,.2,1),background-color .16s ease;transform-origin:center}
.menu-toggle .menu-bar:first-child{top:8.5px}.menu-toggle .menu-bar:last-child{top:18.5px}
.mobile-menu.is-open>.menu-toggle .menu-bar{background:var(--menu-fg)}
.mobile-menu.is-open>.menu-toggle .menu-bar:first-child{transform:translateY(5px) rotate(45deg)}
.mobile-menu.is-open>.menu-toggle .menu-bar:last-child{transform:translateY(-5px) rotate(-45deg)}
}
@media(prefers-reduced-motion:reduce){.mobile-menu::before,.mobile-menu nav,.mobile-menu-actions,.mobile-menu-brand,.menu-toggle .menu-bar{transition:none!important}}
@media(max-width:650px){
 .filter-toggle,.filters-open .filter-toggle{transform:none;transition:none}
 .filter-toggle .filter-lines{display:block;overflow:visible;flex:none}
 .filter-lines path{transition:transform .42s cubic-bezier(.34,1.4,.55,1);transform:translateY(0)}
 .filters-open .filter-line-middle{transform:translateY(-10px)}
 .filters-open .filter-line-short{transform:translateY(-20px)}
}
@media(prefers-reduced-motion:reduce){.filter-lines path{transition:none}}

body.person-modal-open{overflow:hidden}
#person-dialog{position:fixed;inset:0;max-width:none;width:100%;height:100%;max-height:none;margin:0;padding:40px;border-radius:0;background:transparent;border:0;overflow:auto;outline:none}
#person-dialog[open]{display:grid;place-items:center}
#person-dialog::backdrop{background:linear-gradient(#1a8259cc,#0c3c29cc);backdrop-filter:none;opacity:0;transition:opacity .3s ease}
#person-dialog.is-open::backdrop{opacity:1}
.person-stage{position:relative;width:850px;max-width:100%;min-height:560px;direction:rtl}
.person-panel{position:absolute;left:0;top:80px;width:650px;min-height:480px;border-radius:20px;padding:40px 95px 50px 40px;background:var(--cream);opacity:0;transform:translateY(22px);transition:opacity .45s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.is-open .person-panel{opacity:1;transform:translateY(0)}
.person-panel h2{margin:0 0 20px;font-family:Liebling,Simpler,sans-serif;font-size:40px;line-height:1.1;font-weight:800}
.person-panel p{font-size:16px;line-height:1.4;margin:0}
.person-panel blockquote{position:relative;margin:70px 0 30px}
.person-quote{position:absolute;right:-30px;top:-41px;width:104px;height:70px;z-index:0;pointer-events:none}
.person-panel blockquote p{position:relative}
.person-panel .cta{position:relative;display:flex;align-items:center;gap:10px;width:max-content;min-height:50px;padding:10px 20px;border-radius:30px;font-weight:700;font-size:16px;color:var(--cream)}
.person-panel .cta::before{background:#1a8259!important}
.person-panel .arrow{width:27px;height:27px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--pink)}
.person-panel .arrow img{width:13px;height:auto}
.person-id{position:absolute;top:0;right:0;width:250px;min-height:430px;border-radius:10px;background:var(--pink);padding:20px;overflow:hidden;opacity:0;transform:translate(65px,-65px) rotate(0deg);transform-origin:center;transition:opacity .45s ease .13s,transform .65s cubic-bezier(.16,1,.3,1) .13s}
.is-open .person-id{opacity:1;transform:translate(0,0) rotate(5deg)}
.person-photo{position:relative;width:210px;height:210px;overflow:hidden;margin-bottom:20px}
.person-photo>img{position:absolute;width:100%;height:216.5%;top:-37.2%;left:0;object-fit:cover}
.person-id dl{margin:0;font-size:14px;line-height:1.35;font-weight:700}
.person-id dl>div{display:flex;gap:5px;margin-top:10px}
.person-id dt{color:var(--cream);white-space:nowrap}.person-id dd{margin:0}
.person-corner{position:absolute;top:-75px;left:-60px;width:130px;height:130px}
.person-graduate-icon{position:absolute;top:15px;left:15px;width:30px;height:25px}
#person-dialog .person-stage{opacity:1;transition:opacity .3s ease}
#person-dialog.is-closing .person-stage{opacity:0}
#person-dialog.is-closing .cta::before{inset:var(--close-cta-inset,0);transition:none!important}
#person-dialog.is-closing::backdrop{opacity:0}
@media(max-width:900px){.person-stage{width:760px}.person-panel{width:calc(100% - 100px);padding-right:95px}.person-id{width:220px;min-height:400px}.person-photo{width:180px;height:180px}.person-panel p{font-size:15px}}
@media(max-width:650px){#person-dialog{padding:35px 25px}.person-stage{width:100%;display:flex;flex-direction:column;align-items:center;min-height:0;padding-top:20px}.person-id{position:relative;order:-1;right:auto;top:auto;width:220px;min-height:400px;z-index:1}.person-panel{position:relative;top:auto;left:auto;width:100%;margin-top:-15px;padding:50px 25px 30px;min-height:0}.person-panel h2{font-size:32px}.person-panel blockquote{margin-top:60px}.person-panel .cta{min-height:50px}.person-panel .arrow{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.person-panel,.person-id,#person-dialog::backdrop{transition:none!important}.person-panel{transform:none}.person-id,.is-open .person-id{transform:rotate(5deg)}}
.person-stage{transform:translateY(-20px)}
@media(max-width:650px){.person-stage{transform:none}}

/* Mobile alumni profile: upright ID, 30px overlap, clear text inset. */
@media(max-width:650px){
 #person-dialog[open]{align-items:start}
 .person-stage{margin-block:auto}
 .person-id{flex-shrink:0;max-width:100%;transform:translate(35px,-35px)}
 .is-open .person-id{transform:translate(0,0)}
 .person-panel{flex-shrink:0;margin-top:-30px;padding-top:60px}
}
@media(max-width:650px) and (prefers-reduced-motion:reduce){.person-id,.is-open .person-id{transform:none}}

/* Updated Figma mobile alumni card. */
@media(max-width:650px){
 .person-panel h2{line-height:47px}
 .person-panel p{line-height:20px}
 .person-panel blockquote{margin-bottom:40px}
 .person-quote{right:-5px;top:-40px;width:105px}
}

/* Mobile floating header: original Figma unit and desktop reveal behavior. */
.mobile-scroll-header{display:none}
@media(max-width:650px){
 .mobile-scroll-header{position:fixed;z-index:80;top:20px;left:50%;translate:-50% 0;display:flex;align-items:center;justify-content:space-between;direction:ltr;width:calc(100% - 50px);max-width:600px;height:60px;padding:15px 20px;border-radius:60px;background:#fff;box-shadow:0 2px 15px #0003;transform:translateY(calc(-100% - 40px));visibility:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1),visibility .5s,opacity .16s ease}
 .mobile-scroll-header.is-visible{transform:translateY(0);visibility:visible}
 .mobile-scroll-logo{display:flex;align-items:center;gap:10px;height:30px}
 .mobile-scroll-logo img{filter:brightness(0)}
 .mobile-scroll-logo img:first-child{width:26.837px;height:30px}
 .mobile-scroll-logo img:last-child{width:43.579px;height:12px}
 .mobile-scroll-toggle{position:relative;width:30px;height:30px;padding:0;flex:none}
 .mobile-scroll-toggle span{position:absolute;left:0;width:30px;height:3px;background:#000}
 .mobile-scroll-toggle span:first-child{top:8.5px}.mobile-scroll-toggle span:last-child{top:18.5px}
 .mobile-menu-open .mobile-scroll-header{opacity:0;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.mobile-scroll-header{transition:none}}

/* Consistent filter alignment and donation-card content rhythm. */
.filters .filter{direction:rtl;justify-content:flex-start;text-align:right}
.card.promo.donate{gap:20px!important}
.promo.donate .donation-title,.promo.donate .action-button.cta{position:relative;top:auto;left:auto;transform:none;flex:none}
@media(min-width:651px){
 .header{width:calc(100% - 80px);max-width:1200px;margin-left:auto;margin-right:auto;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);direction:rtl;gap:clamp(15px,2.5vw,40px);height:auto;min-height:81px}
 .header #main-navigation{grid-column:1;grid-row:1;justify-self:stretch;justify-content:flex-start;direction:rtl;flex-wrap:wrap;gap:15px clamp(10px,2vw,30px);min-width:0}
 .header>.logo{grid-column:2;grid-row:1;justify-self:center}
 .header>.header-actions{grid-column:3;grid-row:1;justify-self:stretch;justify-content:flex-start;direction:ltr;min-width:0}
}

@media(prefers-reduced-motion:reduce){#person-dialog .person-stage{transition:none}}

/* Match the top header to the item grid's inner edges. */
.filters .filter[data-filter="all"]{justify-content:center;text-align:center}
@media(min-width:651px){.header{width:calc(100% - 40px);max-width:1560px}}
@media(min-width:1640px){.header{max-width:1760px}}

/* The capsule settles vertically before the logo enters horizontally from its outer edge. */
.scroll-header{--scroll-logo-inset:30px;overflow:hidden}
.scroll-navigation{gap:0}
.scroll-logo-slot{position:relative;display:block;flex:none;width:0;height:30px;margin-inline-end:0;overflow:visible;transition:width .65s cubic-bezier(.22,1,.36,1),margin-inline-end .65s cubic-bezier(.22,1,.36,1)}
.scroll-logo-slot img{position:absolute;right:0;top:0;display:block;width:26.837px;height:30px;max-width:none;opacity:1;transform:translateX(calc(100% + var(--scroll-logo-inset)));transition:transform .65s cubic-bezier(.22,1,.36,1)}
.scroll-header.has-logo .scroll-logo-slot{width:26.837px;margin-inline-end:30px}
.scroll-header.has-logo .scroll-logo-slot img{transform:translateX(0)}
@media(min-width:651px) and (max-width:850px){.scroll-header{--scroll-logo-inset:20px}.scroll-header.has-logo .scroll-logo-slot{margin-inline-end:14px}}
@media(max-width:650px){
 .mobile-scroll-header{justify-content:flex-start;gap:calc(100% - 110.416px);overflow:hidden;container-type:inline-size}
 .mobile-scroll-logo{position:relative;width:0;flex:none;overflow:visible;transition:width .65s cubic-bezier(.22,1,.36,1)}
 .mobile-scroll-logo-art{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;width:80.416px;height:30px;transform:translateX(calc(100cqw + 20px));transition:transform .65s cubic-bezier(.22,1,.36,1)}
 .mobile-scroll-logo img{flex:none;opacity:1;transform:none;transition:none}
 .mobile-scroll-header.has-logo .mobile-scroll-logo{width:80.416px}
 .mobile-scroll-header.has-logo .mobile-scroll-logo-art{transform:translateX(0)}
}
/* Filter row follows the item grid's right edge; each category keeps its natural width. */
@media(min-width:651px){
 .filter-wrap{width:calc(100% - 40px);max-width:1560px;margin-left:auto;margin-right:auto}
 .filters{direction:rtl;justify-content:flex-start;flex-wrap:wrap}
 .filters .filter{flex:0 0 auto}
}
@media(min-width:1640px){.filter-wrap{max-width:1760px}}
/* Exact artwork and local coordinates from the alumni ID design. */
.person-corner{position:absolute;left:-60px;top:-76.33px;width:140.836px;height:140.836px;display:flex;align-items:center;justify-content:center;pointer-events:none}
.person-corner>img{display:block;width:130px;height:130px;transform:rotate(-5deg)}
.person-graduate-icon{position:absolute;left:10px;top:0;width:40px;height:40px;pointer-events:none}
.hat-base{position:absolute;left:10.49px;top:19.55px;width:18.972px;height:14.395px}
.hat-base img{position:absolute;left:-4.76%;right:-5.27%;top:0;bottom:-6.55%;width:110.03%;height:106.55%;max-width:none}
.hat-tassel{position:absolute;left:32.16px;top:18.79px;width:3.882px;height:17.706px}
.hat-tassel img{position:absolute;left:-21.48%;right:-18.18%;top:0;bottom:-4.51%;width:139.66%;height:104.51%;max-width:none}
.hat-cap{position:absolute;left:0;top:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.hat-cap-orientation{transform:matrix(.707106769,.707106769,-.707106769,.707106769,0,0);width:28.284px;height:28.284px}
.hat-cap-motion{position:relative;width:28.284px;height:28.284px}
.hat-cap-motion img{position:absolute;inset:3.05%;width:93.9%;height:93.9%;max-width:none}
@media(prefers-reduced-motion:reduce){.scroll-logo-slot,.scroll-logo-slot img,.mobile-scroll-logo,.mobile-scroll-logo img{transition:none;transform:none}.hat-tassel,.hat-cap-motion{animation:none!important}}

/* Original hat motion from Figma. */
@property --motion-rotate { syntax: '<number>'; initial-value: 0; inherits: false; }
@keyframes kf_582_4106_--motion-rotate_0 { 0% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); --motion-rotate: 0; } 15.136% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); --motion-rotate: -0.197096; } 32.374% { --motion-rotate: 0; } 100% { --motion-rotate: 0; } }
.person-graduate-icon .hat-tassel{ --motion-origin-x: 0; --motion-origin-y: 0; --motion-rotate: 0; transform: var(--motion-layout-transform, translate(0px)) translate(calc(var(--motion-origin-x, 0) * 1%), calc(var(--motion-origin-y, 0) * 1%)) var(--motion-design-transform-inverse, matrix(1, 0, 0, 1, 0, 0)) rotate(calc(var(--motion-rotate, 0) * 1rad)) var(--motion-design-transform, matrix(1, 0, 0, 1, 0, 0)) translate(calc(var(--motion-origin-x, 0) * -1%), calc(var(--motion-origin-y, 0) * -1%)); transform-origin: 0 0; animation: kf_582_4106_--motion-rotate_0 2s linear; animation-iteration-count: infinite; }
@property --motion-rotate { syntax: '<number>'; initial-value: 0; inherits: false; }
@property --motion-translate-y { syntax: '<number>'; initial-value: 0; inherits: false; }
@keyframes kf_582_4117_--motion-rotate_0 { 0% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); --motion-rotate: 0; } 15.136% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); --motion-rotate: 0.15708; } 32.374% { --motion-rotate: 0; } 100% { --motion-rotate: 0; } }
@keyframes kf_582_4117_--motion-translate-y_0 { 0% { animation-timing-function: cubic-bezier(0.45, 1.45, 0.8, 1); --motion-translate-y: 0; } 15.136% { animation-timing-function: ease-in-out; --motion-translate-y: -3.323465; } 32.374% { --motion-translate-y: 0; } 100% { --motion-translate-y: 0; } }
.person-graduate-icon .hat-cap-motion{  --motion-origin-x: 50; --motion-origin-y: 50; --motion-rotate: 0; --motion-translate-x: 0; --motion-translate-y: 0; transform: var(--motion-layout-transform, translate(0px)) translate(calc(var(--motion-origin-x, 0) * 1%), calc(var(--motion-origin-y, 0) * 1%)) var(--motion-design-transform-inverse, matrix(0.707107, -0.707107, 0.707107, 0.707107, 0, 0)) translate(calc(var(--motion-translate-x, 0) * 1px), calc(var(--motion-translate-y, 0) * 1px)) rotate(calc(var(--motion-rotate, 0) * 1rad)) var(--motion-design-transform, matrix(0.707107, 0.707107, -0.707107, 0.707107, 0, 0)) translate(calc(var(--motion-origin-x, 0) * -1%), calc(var(--motion-origin-y, 0) * -1%)); transform-origin: 0 0; animation: kf_582_4117_--motion-rotate_0 2s linear, kf_582_4117_--motion-translate-y_0 2s linear; animation-iteration-count: infinite;  }

.hat-cap-orientation,.hat-cap-motion{display:block}

@media(prefers-reduced-motion:reduce){.mobile-scroll-logo-art{transition:none;transform:none}}

.scroll-header:not(.has-logo) .scroll-logo-slot img,.mobile-scroll-header:not(.has-logo) .mobile-scroll-logo-art{transition:none}

/* All filter keeps the 108px desktop design width instead of hugging its label. */
@media(min-width:651px){.filters .filter[data-filter="all"]{width:108px;min-width:108px;flex:0 0 108px}}

/* Figma footer: the brand artwork sits behind the live sitemap and controls. */
footer{position:relative;isolation:isolate;padding-top:0;overflow:hidden}
.footer-inner{position:relative;z-index:1;padding-top:70px;padding-bottom:75px;min-height:410px}
.footer-bottom{margin:0;min-height:50px}
.footer-wordmark{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.footer-wordmark>img:first-child{position:absolute;display:block;top:-2px;left:-.22%;width:100.37%;height:auto}
.footer-wordmark>.mobile-footer-symbol{display:none}
@media(max-width:650px){
 footer{padding-bottom:10px}
 .footer-inner{padding-top:0;padding-bottom:0;min-height:0}
 .footer-nav>div{gap:10px}
 .footer-nav>div:nth-child(2),.footer-nav>div:nth-child(3){gap:0}
 .footer-nav>div:nth-child(2)>button:not(:first-child),.footer-nav>div:nth-child(3)>button:not(:first-child){line-height:32px}
 .footer-nav>div:nth-child(2)>button:first-child,.footer-nav>div:nth-child(3)>button:first-child{margin-bottom:10px}
 .footer-bottom{margin:20px 0 0}
 .footer-wordmark>img:first-child{display:none}
 .footer-wordmark>.mobile-footer-symbol{position:absolute;display:block;top:-12px;left:0;width:100%;height:auto}
}

/* Mobile menu: updated Figma layout. */
@media(max-width:650px){
 .mobile-menu{padding:60px 30px max(30px,env(safe-area-inset-bottom));gap:0}
 .mobile-menu nav{align-items:flex-start;gap:40px;margin-block:auto;padding:0}
 .mobile-menu nav button{font-size:clamp(34px,12.82vw,50px);line-height:1}
 .mobile-menu-actions{gap:15px}
 .mobile-menu-actions .action-button.cta{display:flex;align-items:center;justify-content:space-between;width:100%;height:50px;min-height:50px;padding:10px 15px 10px 10px;border-radius:50px;background:var(--yellow);font-size:16px;font-weight:700;direction:rtl;color:var(--blue)}
 .mobile-menu-actions .cta--donate{color:var(--purple)!important}
 .mobile-menu-actions .arrow{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--blue)}
 .mobile-menu-actions .cta--donate .arrow{background:var(--pink)}
 .mobile-menu-actions .arrow img{width:16px;height:auto}
}
@media(max-width:650px) and (max-height:700px){
 .mobile-menu nav{gap:clamp(15px,5vh,35px)}
 .mobile-menu nav button{font-size:clamp(30px,10vw,44px)}
}

/* Keep the full footer watermark anchored to the bottom as the viewport grows. */
footer{min-height:max(410px, 27.53vw)}
.footer-inner{padding-bottom:75px}
.footer-bottom{margin-top:35px}
.footer-wordmark>img:first-child{top:auto;bottom:0;left:0;width:100%}
@media(max-width:650px){
 footer{min-height:111.63vw;padding-bottom:30px}
 .footer-inner{padding-bottom:0}
 .footer-nav{row-gap:35px}
 .footer-nav>div{gap:15px}
 .footer-nav>div:nth-child(2),.footer-nav>div:nth-child(3){gap:5px}
 .footer-bottom{margin-top:30px}
 .footer-wordmark>.mobile-footer-symbol{top:auto;bottom:0}
}

/* Anchor the watermark 45px below the last footer content; let it grow upward. */
footer{display:grid;min-height:0;padding-bottom:0}
.footer-inner,.footer-wordmark{grid-area:1 / 1;align-self:end}
.footer-inner{width:calc(100% - 80px);margin-inline:auto;padding-bottom:45px}
.footer-wordmark{position:relative;inset:auto;width:100%;overflow:visible}
.footer-wordmark>img:first-child{position:relative;inset:auto;width:100%}
@media(max-width:650px){
 footer{min-height:0;padding-bottom:0}
 .footer-inner{width:calc(100% - 44px);margin-inline:auto;padding-bottom:45px}
 .footer-wordmark>.mobile-footer-symbol{position:relative;inset:auto;width:100%}
}
