:root {
  --navy:#143746; --deep:#102c3b; --cream:#fff0d7; --copper:#e9a56e;
  --gold:#e5c38d; --muted:#c4d1cf;
  --serif:Georgia,'Times New Roman',serif;
  --text:'Avenir Next',Avenir,'Trebuchet MS',sans-serif;
  color-scheme:dark; color:var(--cream); background:var(--deep); font-family:var(--text);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-block:20px; overflow-x:hidden; overscroll-behavior-x:none; }
body { margin:0; min-width:0; width:100%; overflow-x:hidden; }
@supports(overflow:clip){html,body{overflow-x:clip}}
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-underline-offset:.24em; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.6; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
img { max-width:100%; height:auto; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:14px 20px; background:var(--cream); color:var(--deep); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.chapter { position:relative; isolation:isolate; }
h2 { margin:0; font:400 clamp(38px,4.7vw,64px)/1.12 var(--serif); letter-spacing:-.045em; text-wrap:balance; }
h2 em { color:var(--gold); font-weight:400; }
.section-shell { width:min(1040px,calc(100% - 112px)); margin-inline:auto; }

/* One shared wide stage. Positioning and animation have separate owners. */
.poster-hero { min-height:100svh; display:grid; place-items:center; padding:80px 64px 64px; background:radial-gradient(ellipse at 50% 44%,#467c8340,transparent 68%),linear-gradient(90deg,#0e2d4380,#12364b20 50%,#0e2d4380),url('/static/poster-texture.2f66769793b55029.webp') center/cover; }
.poster-frame { position:absolute; inset:17px; pointer-events:none; z-index:0; border:52px solid transparent; border-image:url('/static/frame-artwork.21bdd39b07617a22.webp') 150 / 52px / 0 round; opacity:.98; }
.hero-composition { position:relative; width:min(1280px,100%); aspect-ratio:1.5; z-index:1; }
.poster-layer { position:absolute; }
.poster-layer>img { display:block; width:100%; height:auto; object-fit:contain; }
.hero-title { width:43%; left:28.5%; top:0; z-index:6; }
.hero-support { width:28.5%; left:35.75%; top:27%; z-index:5; }
.hero-mountain { width:22%; left:39%; top:43%; z-index:1; }
.hero-mountain svg { display:block; width:100%; height:auto; overflow:visible; }
.hero-bear { width:18%; top:42%; z-index:3; }
.hero-bear-left { left:21%; }
.hero-bear-right { right:21%; }
.hero-bear img { transform-origin:50% 93%; }
.hero-bear-left img { animation:bear-left-sway 7.2s ease-in-out infinite; }
.hero-bear-right img { animation:bear-right-sway 8.6s -2.2s ease-in-out infinite; }
.hero-dead { width:8.6%; left:21.5%; top:23%; z-index:4; }
.hero-phish { width:9.8%; right:21%; top:25.2%; z-index:4; }
.hero-event-art { width:51%; left:24.5%; top:78%; z-index:5; }
.hero-date,.hero-time { width:16.5%; top:84%; z-index:4; }
.hero-date { left:5%; }
.hero-time { right:5%; }
.date-window { position:relative; overflow:hidden; }
.date-window img { display:block; width:200%; max-width:none; height:auto; }
.hero-time .date-window img { margin-left:-100%; }
.hero-main-act { margin:-3% 0 0; text-align:center; font-size:clamp(10px,1.02vw,13px); color:var(--muted); }
.hero-main-act strong { margin-left:.5em; color:var(--cream); font:400 1.4em var(--serif); }
.art-fallback { position:absolute; inset:0; display:grid; align-content:center; padding:10px; text-align:center; font:400 clamp(16px,2.5vw,36px)/1.2 var(--serif); color:var(--cream); text-wrap:balance; }
.hero-event-art .art-fallback { font-size:clamp(14px,1.7vw,24px); }
.is-unavailable { visibility:hidden; }

/* Source ornament clusters: upper crown, outer field, lower scene. */
.ornament { position:absolute; display:block; height:auto; pointer-events:none; z-index:2; }
.flower-coral-left,.flower-coral-right { width:6%; top:4%; animation:flower-breathe 13s ease-in-out infinite; }
.flower-coral-left { left:7%; }
.flower-coral-right { right:7%; animation-delay:-5s; }
.flower-sun-top { width:4.4%; left:47.8%; top:-7%; }
.flower-salmon-left,.flower-salmon-right { width:3.5%; top:18%; }
.flower-salmon-left { left:4%; }
.flower-salmon-right { right:4%; }
.flower-orange-left,.flower-orange-right { width:4.3%; top:70%; animation:flower-breathe 16s -4s ease-in-out infinite; }
.flower-orange-left { left:13%; }
.flower-orange-right { right:13%; }
.flower-purple-left,.flower-purple-right { width:3.4%; top:73%; }
.flower-purple-left { left:5%; }
.flower-purple-right { right:5%; }
.flower-small-left,.flower-small-right { width:2.8%; top:42%; }
.flower-small-left { left:9%; }
.flower-small-right { right:9%; }
.petals-left,.petals-right { width:9%; top:3%; z-index:1; }
.petals-left { left:26%; }
.petals-right { right:26%; transform:scaleX(-1); }
.ring-left,.ring-right { width:3.2%; top:-1%; }
.ring-left { left:18%; }
.ring-right { right:18%; }
.curl-left,.curl-right { width:3.2%; top:-4.5%; }
.curl-left { left:41%; }
.curl-right { right:41%; }
.chain-left,.chain-right { width:3%; top:31%; transform-origin:50% 0; animation:hanging-sway 12s ease-in-out infinite; }
.chain-left { left:4.5%; }
.chain-right { right:4.5%; animation-delay:-4s; }
.bead-left,.bead-right { width:1.5%; top:14%; }
.bead-left { left:17%; }
.bead-right { right:17%; }
.star-left,.star-right { width:2.3%; top:58%; }
.star-left { left:9%; }
.star-right { right:9%; }
@keyframes bear-left-sway { 0%,100% { transform:rotate(-.8deg); } 50% { transform:rotate(1deg) translateY(-3px); } }
@keyframes bear-right-sway { 0%,100% { transform:rotate(.9deg); } 50% { transform:rotate(-.7deg) translateY(-2px); } }
@keyframes flower-breathe { 0%,100% { transform:rotate(-2deg); } 50% { transform:rotate(2deg) translateY(-3px); } }
@keyframes hanging-sway { 0%,100% { transform:rotate(-1.3deg); } 50% { transform:rotate(1.3deg); } }
.is-scene-paused .ambient-motion { animation-play-state:paused; }

/* Quiet reading chapters retain the source's teal and copper material. */
.give-chapter { background:linear-gradient(#163848ef,#1c3c49f0),url('/static/poster-texture.2f66769793b55029.webp') center/cover; }
.give-chapter::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 68% 20%,#b77e4220,transparent 64%); transform:translateY(var(--scene-shift,0px)); pointer-events:none; }
.give-chapter::after { content:''; position:absolute; bottom:-50px; left:0; width:100%; height:160px; background:linear-gradient(transparent,#19384b9c); pointer-events:none; z-index:2; }
.give-layout { position:relative; display:grid; grid-template-columns:.95fr 1.3fr; align-items:center; gap:88px; padding-block:130px 160px; }
.give-purpose { max-width:29ch; margin:0; font:400 clamp(24px,2.45vw,34px)/1.48 var(--serif); letter-spacing:-.02em; text-wrap:pretty; }
.pending-copy { max-width:43ch; margin:26px 0 0; padding-top:22px; border-top:1px solid #e5c38d45; color:var(--muted); font-size:14px; line-height:1.85; }
.section-flower { position:absolute; width:46px; height:auto; right:-8px; top:55px; opacity:.85; }
.family-chapter { background:linear-gradient(#173446,#173844ed),url('/static/poster-texture.2f66769793b55029.webp') center/cover; }
.family-chapter::before { content:''; position:absolute; inset:-70px 0 auto; height:90px; z-index:2; background:linear-gradient(transparent,#173446); pointer-events:none; }
.family-layout { padding-block:88px 100px; text-align:center; }
.family-flourish { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:30px; }
.family-flourish img { display:block; width:34px; height:auto; }
.family-flourish img:nth-child(2) { width:43px; }
.family-pending { max-width:42ch; margin:28px auto 0; color:var(--muted); font-size:15px; line-height:1.9; }
.site-footer { display:flex; align-items:center; flex-wrap:wrap; gap:18px 30px; padding:30px max(40px,calc((100% - 1120px)/2)) 110px; border-top:1px solid #e5c38d28; color:var(--muted); background:#173844; font-size:11px; }
.site-footer p { margin:0 auto 0 0; }
.site-footer a,.motion-preference { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.motion-preference { padding:0; border:0; background:transparent; color:inherit; font-size:inherit; }
.motion-preference:hover { color:var(--cream); }

/* Album artwork is inside a compact glass music interface, never the loop. */
.music-dock { position:fixed; right:max(22px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:40; }
.music-launcher { display:grid; place-items:center; width:54px; height:54px; border:1px solid #f5d9b176; border-radius:50%; color:var(--cream); background:linear-gradient(135deg,#5671776e,#132d409e); box-shadow:inset 0 1px 0 #fff2,0 8px 25px #071b3540; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.music-launcher:hover,.music-launcher[aria-expanded='true'] { border-color:var(--gold); background-color:#244651; }
.music-equalizer { display:flex; align-items:center; gap:3px; height:22px; }
.music-equalizer i { width:2px; height:9px; background:currentColor; border-radius:2px; transform-origin:center; }
.music-equalizer i:nth-child(2) { height:18px; }
.music-equalizer i:nth-child(3) { height:13px; }
.music-equalizer i:nth-child(4) { height:7px; }
.is-playing .music-equalizer i { animation:equalizer .9s ease-in-out infinite alternate; }
.is-playing .music-equalizer i:nth-child(2) { animation-delay:-.3s; }
.is-playing .music-equalizer i:nth-child(3) { animation-delay:-.6s; }
.is-playing .music-equalizer i:nth-child(4) { animation-delay:-.15s; }
@keyframes equalizer { to { transform:scaleY(.4); } }
.music-popout { position:absolute; right:0; bottom:68px; width:min(328px,calc(100vw - 36px)); max-height:calc(100svh - 110px); overflow-y:auto; overscroll-behavior:contain; padding:30px 26px 24px; border:1px solid #ffffff52; border-radius:30px; color:#fff8ee; background:radial-gradient(ellipse at 0 0,#ffffff24,transparent 65%),linear-gradient(145deg,#d4edff12,#06182e26),#123047d9; box-shadow:0 24px 64px #04102066,0 4px 16px #04102026,inset 0 1px 0 #ffffff70,inset 0 -1px 0 #ffffff12; backdrop-filter:blur(28px) saturate(145%); -webkit-backdrop-filter:blur(28px) saturate(145%); scrollbar-width:thin; scrollbar-color:#ffffff70 transparent; }
.music-close { position:absolute; right:8px; top:8px; width:44px; height:44px; border:1px solid #ffffff24; border-radius:50%; background:#102c4466; color:#fff8ee; font-size:23px; }
.music-close:hover { background:#ffffff10; }
.music-cover { display:block; width:128px; height:auto; margin:0 auto 22px; object-fit:contain; box-shadow:0 10px 25px #071b354d; }
.music-album-name { font:400 26px/1.2 var(--serif); letter-spacing:-.03em; text-align:center; }
.music-track { margin:13px 0 0; color:#fff8ee; font-size:14px; line-height:1.5; text-align:center; overflow-wrap:anywhere; }
.music-track:empty { display:none; }
.music-source { margin:9px 0 22px; text-align:center; color:var(--muted); font-size:11px; }
.music-play { width:100%; min-height:46px; padding:12px; border:1px solid #efd8ad; border-radius:8px; color:#173344; background:#ecd3a9; font-size:12px; font-weight:600; }
.music-play:hover { background:#ffebca; }
.music-volume { display:flex; gap:16px; align-items:center; margin-top:18px; font-size:13px; color:#f0ede7; }
.music-volume input { min-width:0; width:100%; height:44px; accent-color:#fff1d8; cursor:pointer; }
.music-status { min-height:1.5em; margin:12px 0 0; color:#e7e6e2; font-size:12px; line-height:1.5; }
.music-album-link { display:inline-flex; align-items:center; gap:6px; min-height:44px; margin-top:6px; color:#fff1d8; font-size:13px; text-decoration:none; }
.music-popout :is(button,a,input):focus-visible {outline:2px solid #fff1d8;outline-offset:4px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {.music-popout {background:#17374c}}
@media(prefers-reduced-transparency:reduce){.music-popout{background:#17374c;backdrop-filter:none;-webkit-backdrop-filter:none}}
.music-album-link:hover { text-decoration:underline; }
.toast { position:fixed; z-index:90; left:50%; bottom:94px; width:min(420px,calc(100% - 40px)); padding:16px 20px; border:1px solid #e5c38d70; border-radius:8px; color:var(--cream); background:#153445f5; font-size:13px; line-height:1.6; opacity:0; transform:translate(-50%,10px); transition:opacity .2s,transform .2s; pointer-events:none; }
.toast.is-visible { opacity:1; transform:translate(-50%,0); }

/* A dedicated portrait-tablet composition. */
@media (min-width:601px) and (max-width:1000px) {
  .poster-hero { padding:78px 42px 58px; }
  .hero-composition { width:min(660px,100%); aspect-ratio:.64; }
  .hero-title { width:80%; left:10%; top:0; }
  .hero-support { width:62%; left:19%; top:21%; }
  .hero-mountain { width:40%; left:30%; top:36%; }
  .hero-bear { width:31%; top:36.5%; }
  .hero-bear-left { left:2%; }
  .hero-bear-right { right:2%; }
  .hero-dead { width:12%; left:5%; top:27%; }
  .hero-phish { width:13%; right:5%; top:28%; }
  .hero-event-art { width:94%; left:3%; top:64%; }
  .hero-date,.hero-time { width:31%; top:83%; }
  .hero-date { left:14%; }
  .hero-time { right:14%; }
  .hero-main-act { font-size:12px; }
  .petals-left { width:15%; left:9%; top:1%; }
  .petals-right { width:15%; right:9%; top:1%; }
  .flower-sun-top { width:7%; left:46.5%; top:-5%; }
  .curl-left { width:5%; left:37%; top:-3%; }
  .curl-right { width:5%; right:37%; top:-3%; }
  .flower-coral-left,.flower-coral-right { width:8%; top:15%; }
  .flower-coral-left { left:1%; }
  .flower-coral-right { right:1%; }
  .flower-salmon-left,.flower-salmon-right { top:77%; width:5%; }
  .flower-orange-left,.flower-orange-right { top:61%; width:7%; }
  .flower-purple-left,.flower-purple-right { top:61%; width:5%; }
  .chain-left,.chain-right { top:20%; width:3.5%; }
  .ring-left,.ring-right,.bead-left,.bead-right { top:-2%; }
  .star-left,.star-right,.flower-small-left,.flower-small-right { display:none; }
  .give-layout { gap:42px; }
}
@media (max-width:600px) {
  .poster-hero { min-height:100svh; padding:61px 19px 42px; }
  .poster-frame { inset:7px; border-width:35px; border-image-width:35px; }
  .hero-composition { width:min(430px,100%); aspect-ratio:.46; }
  .hero-title { width:96%; left:2%; top:0; }
  .hero-support { width:84%; left:8%; top:20%; }
  .hero-mountain { width:57%; left:21.5%; top:41%; }
  .hero-bear { width:40%; top:44%; }
  .hero-bear-left { left:0; }
  .hero-bear-right { right:0; }
  .hero-dead { width:12.8%; left:4%; top:35%; }
  .hero-phish { width:14.5%; right:3%; top:36%; }
  .hero-event-art { width:100%; left:0; top:69%; }
  .hero-date,.hero-time { width:43%; top:84%; }
  .hero-date { left:5%; }
  .hero-time { right:5%; }
  .hero-main-act { font-size:10px; }
  .petals-left { width:17%; left:1%; top:1%; }
  .petals-right { width:17%; right:1%; top:1%; }
  .flower-sun-top { width:11%; left:44.5%; top:-5.6%; }
  .curl-left { width:7%; left:30%; top:-4%; }
  .curl-right { width:7%; right:30%; top:-4%; }
  .flower-coral-left,.flower-coral-right { width:10%; top:29%; }
  .flower-coral-left { left:1%; }
  .flower-coral-right { right:1%; }
  .flower-orange-left,.flower-orange-right { width:8%; top:66%; }
  .flower-orange-left { left:7%; }
  .flower-orange-right { right:7%; }
  .flower-purple-left,.flower-purple-right { width:7%; top:80%; }
  .flower-purple-left { left:0; }
  .flower-purple-right { right:0; }
  .ring-left,.ring-right { width:6%; top:-3%; }
  .ring-left { left:12%; }
  .ring-right { right:12%; }
  .flower-salmon-left,.flower-salmon-right,.flower-small-left,.flower-small-right,.chain-left,.chain-right,.bead-left,.bead-right,.star-left,.star-right { display:none; }
  .section-shell { width:calc(100% - 52px); }
  .give-layout { grid-template-columns:1fr; gap:29px; padding-block:83px 110px; }
  .give-layout h2 br { display:none; }
  .give-layout h2 em::before { content:' '; }
  .give-purpose { font-size:25px; }
  .pending-copy { font-size:13px; }
  .desktop-break { display:none; }
  .section-flower { width:32px; right:2px; top:31px; }
  .family-layout { padding-block:68px 78px; }
  .family-pending { font-size:14px; }
  .site-footer { gap:4px 23px; padding:24px 26px 108px; }
  .site-footer p { flex-basis:100%; margin-bottom:9px; line-height:1.7; }
  .music-dock { right:max(14px,env(safe-area-inset-right)); bottom:max(14px,env(safe-area-inset-bottom)); }
  .music-launcher { width:48px; height:48px; }
  .music-popout { bottom:62px; padding:24px; }
  .music-cover { width:104px; margin-bottom:18px; }
  .art-fallback { font-size:21px; }
  .hero-support .art-fallback { font-size:17px; }
}
@media (prefers-reduced-motion:reduce) {
  html:not([data-motion='full']) { scroll-behavior:auto; }
  html:not([data-motion='full']) *,html:not([data-motion='full']) *::before,html:not([data-motion='full']) *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
html[data-motion='reduced'] { scroll-behavior:auto; }
html[data-motion='reduced'] *,html[data-motion='reduced'] *::before,html[data-motion='reduced'] *::after { animation:none!important; transition:none!important; }

/* Source-aligned central illustration. Keeping this contiguous prevents floating
   instruments, mismatched scales and replacement scenery. */
@keyframes ensemble-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.hero-ensemble>img{animation:ensemble-breathe 16s ease-in-out infinite;transform-origin:50% 80%}
@media(min-width:1001px){
 .hero-composition{aspect-ratio:1.43}
 .hero-title{width:39%;left:30.5%;top:0}
 .hero-support{width:24%;left:38%;top:24%}
 .hero-mountain.hero-ensemble{width:45%;left:27.5%;top:36.5%;z-index:2}
 .hero-dead{width:11%;left:13.5%;top:26%}
 .hero-phish{width:12%;right:13%;top:27%}
 .hero-event-art{width:45%;left:27.5%;top:79%}
 .hero-date,.hero-time{width:16.5%;top:65%}
 .hero-date{left:8%}.hero-time{right:8%}
}
@media(min-width:601px) and (max-width:1000px){
 .hero-composition{aspect-ratio:.55}
 .hero-support{top:19%}
 .hero-mountain.hero-ensemble{width:94%;left:3%;top:33%;z-index:2}
 .hero-event-art{top:68%}
 .hero-date,.hero-time{top:86%}
}
@media(max-width:600px){
 .hero-mountain.hero-ensemble{width:96%;left:2%;top:37%;z-index:2}
}
/* Complete, independently framed date/time artwork rather than clipped halves. */
.hero-date .date-window,.hero-time .date-window{overflow:visible}
.hero-date .date-window img,.hero-time .date-window img{width:100%;max-width:100%;margin:0}
.hero-main-act{margin:5px 0 0}
html[data-motion="reduced"]{scroll-behavior:auto}

/* The recipient belongs to the scholarship, with the award year explicit. */
.give-layout {grid-template-columns:1fr 1fr;column-gap:80px;row-gap:28px;padding-block:86px 105px}
.give-layout>header {grid-column:1;align-self:end}
.give-copy {grid-column:1;align-self:start}
.scholarship-recipient {grid-column:2;grid-row:1 / span 2;margin:0;justify-self:center;width:min(100%,350px)}
.recipient-portrait {position:relative;isolation:isolate}
.recipient-portrait>img {display:block;width:100%;height:auto;object-fit:contain;border:0;box-shadow:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 72%,transparent 98%);mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 72%,transparent 98%);-webkit-mask-composite:source-in;mask-composite:intersect}
.recipient-mist {position:absolute;inset:-3% -25% -7%;z-index:1;pointer-events:none;overflow:clip;-webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent),radial-gradient(ellipse 40% 38% at 50% 30%,transparent 75%,#000 100%);mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent),radial-gradient(ellipse 40% 38% at 50% 30%,transparent 75%,#000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
.recipient-mist img {position:absolute;left:-30%;bottom:-8%;width:165%;max-width:none;height:105%;object-fit:cover;opacity:.48;animation:cloud-rise 20s ease-in-out -6s infinite alternate}
.scholarship-recipient figcaption {position:relative;z-index:6}
.scholarship-recipient figcaption {display:flex;align-items:center;gap:20px;margin-top:9px}
.recipient-year {font:400 38px/1 var(--serif);color:var(--gold)}
.scholarship-recipient h3 {margin:0;padding-left:20px;border-left:1px solid #e5c38d50;font:400 23px/1.25 var(--serif);color:var(--cream)}
@media(max-width:700px) {
 .give-layout {grid-template-columns:1fr;gap:26px;padding-block:70px 90px}
 .give-layout>header,.give-copy,.scholarship-recipient {grid-column:1;grid-row:auto}
 .scholarship-recipient {margin-top:12px;width:min(100%,330px)}
}

/* Let the flyer texture dissolve into the scholarship without covering its border. */
.chapter-blend {
  height: clamp(70px, 11vw, 150px);
  margin-bottom: -1px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, #163848 98%), url('/static/flyer-background-restored-20260913.fc33a46f0540e103.webp') center bottom / 100vw 100svh no-repeat;
  background-color: #08243e;
}
.give-chapter {
  background: linear-gradient(to bottom, #163848, #1c3c49f0 75%), url('/static/poster-texture.2f66769793b55029.webp') center / cover;
}

.give-copy .event-invitation {margin-top:24px}
.event-invitation.is-revealed {animation:event-invitation-arrive 1.15s ease-out both,event-invitation-light 7s 1.15s ease-in-out infinite}
@keyframes event-invitation-arrive {from{opacity:.15;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes event-invitation-light {0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 16px #e5c38d35}}

/* Match the scholarship's lower edge to the memory scene without covering text. */
.give-chapter::after {bottom:-1px;height:200px;z-index:0;background:linear-gradient(to bottom,transparent,#19384b)}
.give-layout {z-index:1}
.give-layout h2 {font-size:clamp(34px,4.2vw,58px);line-height:1.12}
.scholarship-recipient h3 {padding-left:0;border-left:0}
.scholarship-recipient figcaption {justify-content:center}
.donate-contact {position:relative;isolation:isolate;background:linear-gradient(#173446,#1d3945);padding:70px 0 76px}
.donate-contact-inner {display:flex;align-items:center;justify-content:space-between;gap:36px;padding-block:34px;border-top:1px solid #e5c38d42;border-bottom:1px solid #e5c38d24}
.donate-contact h2 {margin:0;font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);font-weight:400;line-height:1.15}
.donate-contact h2 em {color:var(--gold)}
.donate-contact-actions {display:flex;flex-direction:column;align-items:center;gap:15px}
.bunny-contact-button {display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:62px;padding:17px 24px;border:1px solid #e9c892;border-radius:6px;background:#ebd4ad;color:#142f3e;text-decoration:none;font:600 15px/1.4 var(--text);box-shadow:0 5px 20px #071b3026;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.bunny-contact-button svg {width:25px;height:25px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contact-arrow {font-size:24px;line-height:1;margin-left:6px}
.bunny-contact-button:hover {background:#f4e4c8;transform:translateY(-2px);box-shadow:0 9px 26px #071b303b}
.bunny-contact-button:focus-visible,.bunny-profile-link:focus-visible {outline:2px solid #fff0cf;outline-offset:5px}
.bunny-profile-link {color:#e8d9bf;font-size:12px;line-height:1.5;text-underline-offset:4px;text-decoration-color:#e8d9bf66}
@media(max-width:700px){.donate-contact-inner{flex-direction:column;align-items:flex-start;gap:25px}.donate-contact-actions{align-items:flex-start;width:100%}.bunny-contact-button{font-size:14px;padding:15px 18px;max-width:100%}.donate-contact{padding:40px 0 50px}.give-layout h2{font-size:clamp(32px,7.6vw,43px)}}

/* One quiet divider separates the scholarship from the memory scene. */
.give-layout {padding-bottom:54px}
.chapter-divider {position:relative;z-index:5;height:48px;display:grid;place-items:center;background:#19384b;pointer-events:none}
.chapter-divider span {display:block;width:min(1040px,calc(100% - 112px));height:1px;background:linear-gradient(to right,transparent,#e5c38d55 22%,#e5c38d55 78%,transparent)}
.scholarship-recipient h3 {font-size:clamp(18px,2vw,23px);font-variant-numeric:lining-nums}
/* A quiet specular highlight moves behind the invitation, never across its glyphs. */
.give-copy .event-invitation {position:relative;isolation:isolate;overflow:hidden;padding:17px 20px;margin-inline:-20px;border-radius:12px;background:#f3dfbb04}
.event-invitation.is-revealed {animation:event-invitation-arrive 1.15s ease-out both}
.event-invitation::before {content:'';position:absolute;inset:-20% auto -20% 0;width:62%;z-index:-1;pointer-events:none;opacity:0;background:linear-gradient(to right,transparent,#f7e8c70a 24%,#f7e8c72a 50%,#f7e8c70a 76%,transparent);transform:translateX(-150%) skewX(-14deg)}
.event-invitation.is-revealed::before {animation:invitation-highlight-pass 12s 1.3s ease-in-out infinite}
@keyframes invitation-highlight-pass {0%,15%{transform:translateX(-150%) skewX(-14deg);opacity:0}21%{opacity:.65}48%{transform:translateX(260%) skewX(-14deg);opacity:.65}55%,100%{transform:translateX(260%) skewX(-14deg);opacity:0}}
/* Text-only frosted glass, with a bright rim and a subdued interior reflection. */
.bunny-contact-button {position:relative;isolation:isolate;overflow:hidden;padding:18px 29px;min-height:62px;border-radius:999px;border:1px solid #f5e8d34d;background:linear-gradient(145deg,#ffffff20,#ffffff09 58%,#e9ce9b10);color:#fff0d7;font-weight:500;letter-spacing:.015em;-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%);box-shadow:inset 0 1px 0 #ffffff36,inset 0 -1px 0 #ffffff0c,0 10px 26px #061b3026;text-align:center}
.bunny-contact-button::before {content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at 24% 0%,#ffffff1f,transparent 62%)}
.bunny-contact-button:hover {background:linear-gradient(145deg,#ffffff2c,#ffffff12 58%,#e9ce9b17);color:#fff8eb;box-shadow:inset 0 1px 0 #ffffff48,0 12px 28px #061b3033;transform:translateY(-1px)}
@media(max-width:700px){.give-layout{padding-bottom:42px}.chapter-divider{height:34px}.chapter-divider span{width:calc(100% - 48px)}.bunny-contact-button{padding:17px 24px;width:100%}.give-copy .event-invitation{margin-inline:-12px;padding:15px 12px}}

/* A compact, transparent bridge rather than another visible background panel. */
.chapter-blend {height:clamp(24px,4vw,48px);background:none;margin:0}
.give-chapter {background:linear-gradient(to bottom,#08243e,#163848 135px,#1c3c49f0 76%),url('/static/poster-texture.2f66769793b55029.webp') center/cover}
.give-layout {padding-top:54px}
.chapter-divider {height:1px;background:transparent;overflow:visible}
.chapter-divider span {height:1px;background:linear-gradient(to right,transparent,#c9c9c94d 22%,#c9c9c94d 78%,transparent)}
/* Only the letters shimmer. No highlight box, background or padded container. */
.give-copy .event-invitation {padding:0;margin-inline:0;overflow:visible;border-radius:0;background:none}
.event-invitation::before {content:none;display:none}
.event-invitation.is-revealed {animation:event-invitation-arrive 1.15s ease-out both}
@supports ((background-clip:text) or (-webkit-background-clip:text)) {
 .give-copy .event-invitation.is-revealed {opacity:1;transform:none;color:transparent;-webkit-text-fill-color:transparent;background-image:linear-gradient(105deg,transparent 39%,#ffe7bcbf 45%,#ffffff 49%,#ffffff 51%,#ffe7bcbf 55%,transparent 61%),linear-gradient(#c4aa86,#c4aa86);background-size:200% 100%,100% 100%;background-position:120% 50%,0 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;text-shadow:none;animation:invitation-letter-shimmer 4.8s linear -1.2s infinite}
}
@keyframes invitation-letter-shimmer {from{background-position:120% 50%,0 0}to{background-position:-20% 50%,0 0}}
@media(prefers-reduced-motion:reduce){.give-copy .event-invitation.is-revealed{color:#f3e4ca;-webkit-text-fill-color:currentColor;background:none;text-shadow:none;animation:none}}
html[data-motion='reduced'] .give-copy .event-invitation.is-revealed{color:#f3e4ca;-webkit-text-fill-color:currentColor;background:none;text-shadow:none;animation:none}
.music-cover {box-shadow:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
.music-play {display:grid;place-items:center;width:66px;height:66px;min-height:66px;margin:22px auto 0;padding:0;border:1px solid #f8dfb778;border-radius:50%;background:linear-gradient(145deg,#fff2,#eac68b16);color:#fff1d8;box-shadow:inset 0 1px 0 #ffffff3d,0 8px 22px #051b3433;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:background .2s ease,transform .2s ease}
.music-play:hover {background:#f3ddb42b;transform:scale(1.035)}
.music-play:focus-visible {outline:2px solid #ffe9c4;outline-offset:5px}
.music-play svg {width:28px;height:28px;fill:currentColor}
.music-play-icon {margin-left:3px}
.music-pause-icon,.is-playing .music-play-icon {display:none}
.is-playing .music-pause-icon {display:block}
.music-play:disabled {cursor:default;opacity:.65}
@media(max-width:700px){.give-layout{padding-top:38px}.chapter-divider{height:1px}.give-copy .event-invitation{padding:0;margin-inline:0}.music-popout{max-height:calc(100svh - 105px);padding:22px}}

/* The mascot follows the two-line school name, with the lettering in front. */
#give-title .school-name {position:relative;isolation:isolate;display:inline-block;max-width:100%;padding-right:1.35em;line-height:1.12;vertical-align:top}
#give-title .school-name-text {position:relative;z-index:1;white-space:nowrap;text-shadow:0 2px 5px #08243ee6,0 0 2px #08243e}
#give-title .school-name .school-mascot {position:absolute;z-index:0;right:0;top:0;display:block;height:100%;width:auto;max-width:none;object-fit:contain;pointer-events:none}
@media(max-width:360px){.give-layout #give-title{font-size:29px}}

.donate-contact-copy {min-width:0}
.donate-disclosure {max-width:46ch;margin-top:14px;color:#e8dfd0;font:400 12px/1.6 var(--text)}
.donate-disclosure p {margin:0}
.donate-disclosure p+p {margin-top:8px}

/* A subdued school mark and continuous cloud depth behind the scholarship copy. */
#give-title .school-name .school-mascot {opacity:.3;filter:saturate(.7)}
.give-layout>.scholarship-heading-clouds {position:absolute;inset:0 -8% 8%;z-index:0;pointer-events:none;overflow:visible;-webkit-mask-image:linear-gradient(to right,transparent,#000 16%,#000 84%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 80%,transparent);mask-image:linear-gradient(to right,transparent,#000 16%,#000 84%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 80%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
.scholarship-heading-clouds .school-cloud-from-portrait {right:-4%;top:18%;width:88%;height:66%;opacity:.28;animation:school-cloud-crossing 34s ease-in-out -12s infinite alternate}
.scholarship-heading-clouds .school-cloud-at-heading {left:-7%;top:2%;width:82%;height:55%;opacity:.22;animation:school-cloud-crossing 43s ease-in-out -29s infinite alternate-reverse}
.give-layout>header,.give-layout>.give-copy {position:relative;z-index:2}
@keyframes school-cloud-crossing {0%{transform:translate3d(6%,5%,0) rotate(-2deg)}48%{transform:translate3d(-3%,-3%,0) rotate(1deg)}100%{transform:translate3d(-12%,-9%,0) rotate(-1deg)}}
html.is-cloud-paused .scholarship-heading-clouds .cloud-bank {animation-play-state:paused}
@media(max-width:700px){.give-layout>.scholarship-heading-clouds{inset:0 -12% 6%}.scholarship-heading-clouds .school-cloud-from-portrait{top:25%;right:-12%;width:120%;height:57%}.scholarship-heading-clouds .school-cloud-at-heading{top:0;left:-16%;width:120%;height:48%;opacity:.19}}
@media(prefers-reduced-motion:reduce){.scholarship-heading-clouds .cloud-bank{animation:none!important}}

/* Preserve the printed dedication while feathering the final edge of the photo. */
.recipient-portrait>img {-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 95%,transparent 100%);mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 95%,transparent 100%)}
.recipient-mist {-webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent),radial-gradient(ellipse 40% 38% at 50% 30%,transparent 75%,#000 100%),radial-gradient(ellipse 46% 10% at 50% 94%,transparent 75%,#000 100%);mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent),radial-gradient(ellipse 40% 38% at 50% 30%,transparent 75%,#000 100%),radial-gradient(ellipse 46% 10% at 50% 94%,transparent 75%,#000 100%)}
#give-title .school-name .school-mascot {opacity:.38}
.music-launcher,.music-play {position:relative}
.music-launcher,.music-close,.music-play,.bunny-contact-button {border-color:#e3bc7273}
.gold-metal-rim {position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;max-width:none;pointer-events:none;border-radius:inherit}


/* Keep the approved two-line school lockup inside a narrow viewport. */
.give-layout>header {min-width:0}
.give-layout #give-title {min-width:0;max-width:100%}
#give-title .school-name-text br {display:initial}
@media(max-width:700px){#give-title .school-name{font-size:clamp(23px,6.6vw,32px);max-width:100%}.give-layout>header{width:100%}}

/* An artwork-first player with compact transport and a clear service link. */
.music-popout {width:min(400px,calc(100vw - 28px));height:min(800px,calc(100svh - 104px));max-height:calc(100svh - 104px);padding:40px 26px 20px;display:grid;grid-template-rows:minmax(120px,1fr) auto auto auto auto;gap:12px;border-radius:30px;background:radial-gradient(ellipse at 12% 0%,#ffffff24,transparent 60%),linear-gradient(150deg,#253e56df,#102738ed);box-shadow:0 28px 80px #04102085,inset 0 1px 0 #ffffff70,inset 0 -1px 0 #ffffff12}
.music-popout[hidden] {display:none}
.music-artwork {min-height:0;display:flex;justify-content:center;align-items:center}
.music-artwork .music-cover {display:block;width:auto;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;border-radius:10px}
.music-heading {min-width:0;text-align:center}
.music-heading .music-album-name {font-size:clamp(24px,3vw,29px);line-height:1.15;letter-spacing:-.025em}
.music-heading .music-track {min-height:1.5em;margin:6px 0 0;font-size:13px;color:#e8e8e7}
.music-transport {text-align:center}
.music-transport .music-play {width:60px;height:60px;min-height:60px;margin:0 auto}
.music-transport .music-status {min-height:18px;margin:7px 0 0;font-size:11px;line-height:18px;letter-spacing:.035em;color:#e5e1d9}
.music-popout .music-volume {margin:0;gap:14px;font-size:12px}
.music-popout .music-close {top:12px;right:12px;width:30px;height:30px;z-index:6;border-radius:50%;background:#0c203cb3}
.music-close::after {content:'';position:absolute;inset:-7px;border-radius:50%}
.music-close svg {display:block;width:16px;height:16px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.music-popout .music-album-link {display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;margin:0;padding:8px 16px;border-radius:14px;border:1px solid #ffffff29;background:#ffffff09;color:#fff8ef;text-decoration:none;transition:background .2s ease}
.music-popout .music-album-link:hover {background:#ffffff15;text-decoration:none}
.apple-music-mark {display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:8px;background:linear-gradient(160deg,#fb6578,#e82c55);box-shadow:inset 0 1px 0 #ffffff4d}
.apple-music-mark svg {width:24px;height:24px;fill:#fff}
.apple-music-label {display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.15}
.apple-music-label>span {font-size:9px;letter-spacing:.025em;color:#e3e3e4}
.apple-music-label strong {font-family:var(--text);font-size:17px;font-weight:600;letter-spacing:-.035em}
@media(max-width:700px){.music-popout{right:0;bottom:62px;padding:36px 20px 18px;gap:10px;height:calc(100svh - 102px);max-height:calc(100svh - 102px);border-radius:25px}.music-heading .music-album-name{font-size:25px}}
@media(max-height:560px){.music-popout{height:auto;grid-template-rows:160px auto auto auto auto;overflow-y:auto}.music-artwork{height:160px}}
@media(prefers-reduced-transparency:reduce){.music-popout{background:#17374c}}

/* A quiet, monochrome service wordmark rather than an app-store-style badge. */
.music-popout .music-album-link {width:max-content;max-width:100%;justify-self:center;min-height:44px;padding:9px 17px;gap:4px;border-radius:999px;border:1px solid #ffffff45;background:linear-gradient(155deg,#ffffff26,#ffffff09 55%,#ffffff14);color:#fff8ef;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 1px 0 #ffffff45,inset 0 -1px 0 #ffffff12,0 4px 14px #05132326;text-decoration:none;transition:background .2s ease,box-shadow .2s ease}
.music-popout .music-album-link:hover {background:linear-gradient(155deg,#ffffff38,#ffffff15 55%,#ffffff23);color:#fff;box-shadow:inset 0 1px 0 #ffffff60,0 5px 16px #05132338;text-decoration:none}
.music-album-link .apple-music-symbol {width:20px;height:23px;flex:none;fill:currentColor;transform:translateY(-1px)}
.music-album-link .apple-music-wordmark {font-family:var(--text);font-size:18px;font-weight:600;line-height:1;letter-spacing:-.045em}
.music-popout .music-album-link:focus-visible {outline:2px solid #ffe8b4;outline-offset:4px}
.music-popout .music-album-link:active {background:#ffffff1c;box-shadow:inset 0 1px 4px #05132330}

/* One continuous flyer texture beneath the cloud-to-footer transition. */
.footer-scene {position:relative;isolation:isolate;background:linear-gradient(to bottom,#19384b 0%,#19384bd9 18%,#19384b66 47%,#08243e20 76%),url('/static/flyer-background-restored-20260913.fc33a46f0540e103.webp') center bottom/cover no-repeat,#08243e}
.footer-scene .donate-contact {background:transparent}
.footer-scene .site-footer {background:transparent;border-top:0;color:#e6ded2}

.school-name .school-mascot {transform:scale(1.15);transform-origin:left center}

/* Dissolve the landscape into the footer's identical starting tone. */
.memory-chapter .memory-colorwash {background:linear-gradient(#19384b 0%,#19384b66 18%,#19384b0a 42%,#19384b77 77%,#19384b 100%)}
.memory-chapter::after {content:'';position:absolute;inset:auto 0 -1px;height:clamp(140px,20vw,240px);z-index:0;pointer-events:none;background:linear-gradient(to bottom,#19384b00,#19384b55 45%,#19384b 100%)}

/* No spacer or contrasting band between the flyer and scholarship. */
main>.chapter-blend {display:none}
.give-chapter {background:linear-gradient(to bottom,#08243e 0%,#163848 135px,#19384b 100%)}
.scholarship-recipient figcaption {margin-top:4.5px}
main>.chapter-divider {height:2px;min-height:2px;background:transparent}
main>.chapter-divider>span {height:2px;background:linear-gradient(to right,transparent,#b2b7bb99 20%,#b2b7bb99 80%,transparent)}
.chapter.is-scene-paused .cloud-bank,.chapter.is-scene-paused .cloud-layer,.chapter.is-scene-paused .memory-cloud,.chapter.is-scene-paused .recipient-mist img,.chapter.is-scene-paused .cloud-bridge img {animation-play-state:paused!important}
