/* A celestial accent within the existing light identity. */
.jubilee-wrap { margin-block:40px 72px; scroll-margin-top:calc(var(--header-height) + 24px); }
.jubilee-banner { position:relative; isolation:isolate; overflow:hidden; min-height:570px; border:1px solid #c9a86680; border-radius:32px; background:radial-gradient(ellipse at 85% 25%,#4a367c 0,transparent 52%),linear-gradient(130deg,#101d40,#192954 50%,#211b40); box-shadow:0 28px 65px #20295826; }
.jubilee-banner::before { content:''; position:absolute; z-index:-1; inset:-40%; background:conic-gradient(from 195deg at 70% 40%,transparent 0deg,#f6dfad16 18deg,transparent 30deg,#d0c0ff14 42deg,transparent 57deg); filter:blur(14px); pointer-events:none; }
.jubilee-copy { position:relative; z-index:1; max-width:800px; padding:clamp(32px,5vw,72px); }
.jubilee-eyebrow { color:#e6cf9c; font-size:10px; letter-spacing:.18em; font-weight:600; }
.jubilee-copy h2 { color:#fff6e4; font-size:clamp(44px,6.2vw,88px); letter-spacing:.015em; line-height:1.05; text-shadow:0 0 35px #e6c38130; }
.jubilee-copy h2>span,.jubilee-copy h2>strong { display:block; }
.jubilee-copy h2>strong { margin-top:18px; color:#e7cd96; font:600 clamp(16px,2.1vw,27px)/1.5 var(--font-body); letter-spacing:.17em; }
.jubilee-year { margin:20px 0; color:#e8cc95; font:500 clamp(44px,6vw,76px)/1 var(--font-display); letter-spacing:.12em; }
.jubilee-subtitle { max-width:560px; margin:28px 0; color:#e1e3f6; font-size:clamp(17px,1.8vw,21px); line-height:1.7; }
.jubilee-button { position:relative; isolation:isolate; overflow:hidden; margin-top:8px; background:linear-gradient(125deg,#f4e4bd,#d9b779); color:#302844; border-color:#f8e8c5; box-shadow:0 8px 32px #d6b77122; transition:box-shadow .35s ease,transform .25s ease,background-color .3s ease; }
.jubilee-button>span { position:relative; z-index:1; }
.jubilee-button>span:last-child { transition:transform .3s ease; }
.jubilee-button::before,.jubilee-button::after { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:0; }
.jubilee-button::before { background:radial-gradient(ellipse at 50% 120%,#fff3ca80,transparent 70%); opacity:.25; }
.jubilee-button::after { background:linear-gradient(105deg,transparent 25%,#fffdf040 43%,#fffdf0b3 50%,#fffdf040 57%,transparent 75%); transform:translateX(-145%) skewX(-15deg); opacity:0; }
.jubilee-banner[data-cta-ready="true"] .jubilee-button { box-shadow:0 0 24px #e5c16b38,0 9px 30px #d6b77130; }
.jubilee-button:focus-visible { outline:2px solid #fff8dd; outline-offset:5px; box-shadow:0 0 0 4px #302844,0 0 26px #e5c16b66; }
.jubilee-details { padding:clamp(28px,5vw,64px); border:1px solid var(--line); border-top:0; border-radius:0 0 30px 30px; background:linear-gradient(135deg,#fffdf8,#eeeef9); }
.jubilee-wrap:has(.jubilee-details) .jubilee-banner { border-radius:32px 32px 0 0; }
.jubilee-quote { max-width:940px; margin-bottom:28px; color:#625039; font:500 clamp(25px,3vw,37px)/1.4 var(--font-display); }
.jubilee-description { max-width:850px; color:var(--ink2); font-size:17px; }
.jubilee-details h3 { margin-top:36px; }
.jubilee-themes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:26px 0 0; padding:0; list-style:none; }
.jubilee-themes li { padding:26px; border:1px solid var(--line); border-radius:20px; background:#ffffffa8; }
.jubilee-themes li>span { color:var(--gold); font:500 30px var(--font-display); }
.jubilee-themes p { margin:12px 0 0; color:var(--ink); }
.school-cohort-upcoming { border-color:#b99b68; background:linear-gradient(135deg,#f6ecd8,#e9e4f6); }
.jubilee-with-speaker { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; }
.jubilee-with-speaker .jubilee-copy { min-width:0; padding:clamp(28px,4vw,56px); }
.jubilee-with-speaker .jubilee-copy h2 { font-size:clamp(40px,4.7vw,68px); }
.jubilee-speaker { position:relative; z-index:1; min-width:0; margin:0; padding:32px 32px 32px 0; }
.jubilee-speaker-photo { overflow:hidden; border:1px solid #e7cd9680; border-radius:120px 120px 26px 26px; background:#25264b; box-shadow:0 0 36px #e6c68128,0 18px 45px #080d2c66; transition:box-shadow 1.8s ease; }
.jubilee-speaker-photo img { display:block; width:100%; height:auto; }
.jubilee-banner[data-sky-awake="true"] .jubilee-speaker-photo { box-shadow:0 0 35px #e6c68160,0 0 65px #a378cc40,0 18px 45px #080d2c66; }
.jubilee-speaker figcaption { max-width:440px; margin:22px auto 0; padding-inline:12px; color:#f2dfb6; font:500 clamp(24px,2.4vw,32px)/1.3 var(--font-display); text-align:center; text-wrap:balance; }
@media(max-width:970px) {
  .jubilee-with-speaker { grid-template-columns:1fr; }
  .jubilee-speaker { width:min(100%,580px); margin-inline:auto; padding:0 32px 40px; }
  .jubilee-copy { max-width:740px; }
}
@media(max-width:640px) {
  .jubilee-wrap { margin-block:24px 48px; }
  .jubilee-banner { min-height:0; border-radius:24px; }
  .jubilee-copy { padding:36px 24px; }
  .jubilee-copy h2 { font-size:clamp(35px,9vw,55px); }
  .jubilee-copy h2>strong { font-size:15px; letter-spacing:.1em; }
  .jubilee-eyebrow { font-size:9px; letter-spacing:.09em; }
  .jubilee-button { width:100%; padding-inline:16px; }
  .jubilee-themes { grid-template-columns:1fr; }
  .jubilee-details { padding:28px 24px; }
  .jubilee-with-speaker .jubilee-copy { padding:36px 24px 28px; }
  .jubilee-with-speaker .jubilee-copy h2 { font-size:clamp(35px,9vw,55px); }
  .jubilee-speaker { padding:0 24px 32px; }
  .jubilee-speaker-photo { border-radius:80px 80px 22px 22px; }
}
@media(prefers-reduced-motion:no-preference) {
  .jubilee-copy { animation:jubilee-enter .9s both; }
  .jubilee-banner::before { animation:jubilee-light 18s ease-in-out infinite alternate; animation-play-state:paused; }
  .jubilee-banner[data-sky-active="true"]::before { animation-play-state:running; }
  .jubilee-speaker { animation:jubilee-enter 1s .15s both; }
  @keyframes jubilee-enter { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
  @keyframes jubilee-light { from { transform:rotate(-5deg); } to { transform:rotate(6deg); } }
  .jubilee-banner[data-cta-ready="true"] .jubilee-button::after { animation:jubilee-button-sheen 1.15s .15s both; }
  .jubilee-banner[data-cta-ready="true"] .jubilee-button::before { animation:jubilee-button-breathe 8s 1.3s ease-in-out infinite alternate; }
  .jubilee-button::before,.jubilee-button::after { animation-play-state:paused; }
  .jubilee-banner[data-cta-ready="true"][data-sky-active="false"] .jubilee-button::before,.jubilee-banner[data-cta-ready="true"][data-sky-active="false"] .jubilee-button::after { animation-play-state:paused; }
  @keyframes jubilee-button-sheen { 0% { opacity:0; transform:translateX(-145%) skewX(-15deg); } 20% { opacity:.7; } 80% { opacity:.7; } 100% { opacity:0; transform:translateX(145%) skewX(-15deg); } }
  @keyframes jubilee-button-breathe { from { opacity:.25; } to { opacity:.5; } }
}
@media(hover:hover) and (pointer:fine) {
  .jubilee-banner .jubilee-button:hover { background:#f6e7c9; box-shadow:0 0 32px #e5cc9266,0 12px 36px #e5cc923b; transform:translateY(-2px); }
  .jubilee-button:hover>span:last-child { transform:translateX(4px); }
}
.jubilee-banner .jubilee-button:active { transform:translateY(1px) scale(.985); box-shadow:0 0 18px #e5cc9240; transition-duration:.12s; }
@media(prefers-reduced-motion:reduce) {
  .jubilee-button::before,.jubilee-button::after { animation:none; }
  .jubilee-banner .jubilee-button:hover,.jubilee-banner .jubilee-button:active,.jubilee-button:hover>span:last-child { transform:none; }
}


/* Single full-scene starfield. Foreground content keeps its existing z-index:1. */
.jubilee-sky { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; background:radial-gradient(ellipse at 50% 90%,#b8935920,transparent 65%); }
.jubilee-sky canvas { display:block; width:100%; height:100%; }
