@font-face{
  font-family:Anton;
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/Anton-Regular.woff2") format("woff2");
}

@font-face{
  font-family:Yellowtail;
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/Yellowtail-Regular.woff2") format("woff2");
}

@font-face{
  font-family:Figtree;
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url("fonts/Figtree-Variable.woff2") format("woff2");
}

:root{
  --bg:#0D0512;
  --cream:#FFF6FA;
  --magenta:#FF1F8F;
  --pink:#FF7EB6;
  --pink-light:#FF9BC8;
  --gold:#FFC24D;
  --purple:#7B2FBE;
  --lavender:#C47EFF;
  --on-dark:#E9C8DC;
  --muted-dark:#B98BA5;
  --ink:#2A1220;
  --dashed:#F3A8CE;
  --light-a:#FFF6FA;
  --light-b:#FFE4F1;
  --pink-soft:#FFD9EC;
  --magenta-deep:#AB005B;
  --magenta-ink:#C40070;
  --muted-light:#7F4E67;
  --section-pad:6.875rem;
  --page-pad:2.5rem;
  --content:72.5rem;
}

*,*::before,*::after{
  box-sizing:border-box;
}

html{
  color-scheme:dark;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--on-dark);
  font-family:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:1rem;
  line-height:1.6;
}

img{
  display:block;
  max-width:100%;
}

a{
  color:inherit;
}

p,h1,h2,h3,figure,blockquote,dl,dd{
  margin:0;
}

.hero{
  position:relative;
  isolation:isolate;
  min-height:100svh;
  padding:clamp(4rem,9vw,7rem) var(--page-pad);
  background:
    radial-gradient(circle at 18% 15%,rgba(255,31,143,.24),transparent 34%),
    radial-gradient(circle at 78% 32%,rgba(123,47,190,.28),transparent 38%),
    radial-gradient(circle at 66% 95%,rgba(255,194,77,.1),transparent 30%),
    var(--bg);
}

.hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(20rem,26.875rem);
  gap:clamp(3rem,7vw,6rem);
  align-items:center;
  width:min(100%,77.5rem);
  min-height:calc(100svh - 11rem);
  margin-inline:auto;
}

.hero-copy{
  min-width:0;
}

.eyebrow{
  color:var(--gold);
  font-size:clamp(.75rem,1.5vw,1rem);
  font-weight:800;
  letter-spacing:.25em;
  line-height:1.5;
  text-transform:uppercase;
}

.eyebrow span{
  display:inline-block;
  color:var(--on-dark);
  font-family:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:.75rem;
  letter-spacing:.04em;
  text-transform:none;
}

.script{
  font-family:Yellowtail,"Brush Script MT",cursive;
}

.hero-script{
  width:max-content;
  margin:.75rem 0 -1.2rem clamp(.75rem,4vw,3rem);
  color:var(--pink-light);
  font-size:clamp(2.5rem,5vw,4rem);
  line-height:1;
  text-shadow:0 0 1.8rem rgba(255,31,143,.55);
  transform:rotate(-4deg);
}

.hero-title{
  color:var(--pink);
  background:linear-gradient(105deg,var(--cream) 3%,var(--pink) 55%,var(--magenta) 100%);
  background-clip:text;
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:clamp(3.25rem,11vw,10.5rem);
  font-weight:400;
  letter-spacing:-.025em;
  line-height:.9;
  text-transform:uppercase;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.hero-title span{
  display:block;
}

.hero-intro{
  max-width:39rem;
  margin-top:1.75rem;
  color:var(--on-dark);
  font-size:clamp(1.125rem,2vw,1.5rem);
  line-height:1.5;
}

.hero-action{
  display:flex;
  gap:1.25rem;
  align-items:center;
  margin-top:2.25rem;
}

.hero-action p{
  color:var(--on-dark);
  font-size:1.0625rem;
}

.cta{
  display:inline-grid;
  min-height:3.5rem;
  padding:1rem 2.375rem;
  place-items:center;
  border:0;
  border-radius:999px;
  background:linear-gradient(100deg,var(--magenta),var(--pink));
  box-shadow:0 0 2.125rem rgba(255,31,143,.55);
  color:var(--bg);
  font-weight:800;
  letter-spacing:.06em;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
}

a:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:2px;
}

.hero-photo-card{
  position:relative;
  width:min(100%,26.875rem);
  aspect-ratio:43/56;
  justify-self:center;
  padding:.875rem;
  border:2px solid rgba(255,126,182,.58);
  border-radius:1.75rem;
  background:linear-gradient(145deg,rgba(255,31,143,.45),rgba(123,47,190,.32));
  box-shadow:0 1.875rem 5rem rgba(255,31,143,.27);
  transform:rotate(1.5deg);
}

.hero-photo-card img{
  width:100%;
  height:100%;
  border-radius:1.125rem;
  object-fit:cover;
}

.photo-sparkle{
  position:absolute;
  z-index:2;
  color:var(--gold);
  font-size:2.5rem;
  line-height:1;
  text-shadow:0 0 1rem rgba(255,194,77,.6);
}

.photo-sparkle--top{
  top:-1rem;
  right:-1rem;
}

.photo-sparkle--bottom{
  bottom:-.8rem;
  left:-1.1rem;
}

.hero-sparkles span{
  position:absolute;
  z-index:1;
  color:var(--pink-light);
  font-size:clamp(.75rem,1.5vw,1.25rem);
  opacity:1;
}

.hero-sparkles span:nth-child(1){top:9%;left:5%;}
.hero-sparkles span:nth-child(2){top:17%;right:7%;}
.hero-sparkles span:nth-child(3){top:38%;left:2%;}
.hero-sparkles span:nth-child(4){top:48%;right:3%;}
.hero-sparkles span:nth-child(5){bottom:9%;left:11%;}
.hero-sparkles span:nth-child(6){bottom:14%;right:13%;}
.hero-sparkles span:nth-child(7){top:72%;left:48%;}
.hero-sparkles span:nth-child(8){top:7%;left:56%;}

.marquee{
  display:grid;
  gap:.125rem;
  justify-items:center;
  padding:1.125rem var(--page-pad);
  border-block:1px solid rgba(255,246,250,.25);
  background:linear-gradient(90deg,var(--magenta-deep),var(--purple) 50%,var(--magenta-deep));
  color:var(--cream);
  text-align:center;
}

.marquee p{
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:1.375rem;
  letter-spacing:.12em;
  line-height:1.45;
  text-transform:uppercase;
}

.marquee span{
  margin-inline:.55em;
  color:var(--gold);
}

.marquee small{
  color:var(--on-dark);
  font-size:.75rem;
}

.section-dark{
  padding:var(--section-pad) var(--page-pad);
  background:var(--bg);
}

.section-inner{
  width:min(100%,var(--content));
  margin-inline:auto;
}

.section-script{
  width:max-content;
  max-width:100%;
  margin:0 0 .5rem clamp(.25rem,4vw,2.25rem);
  color:var(--gold);
  font-size:clamp(2.125rem,4.5vw,3.5rem);
  line-height:1.05;
  transform:rotate(-3deg);
}

.section-title{
  color:var(--cream);
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:clamp(3.25rem,8vw,6.5rem);
  font-weight:400;
  letter-spacing:-.015em;
  line-height:1;
  text-transform:uppercase;
}

.stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(17.5rem,100%),1fr));
  gap:2rem;
  margin-top:3.75rem;
  padding:.5rem;
}

.stat-card{
  min-width:0;
  padding:2rem;
  border:1px solid rgba(255,126,182,.34);
  border-radius:1.5rem;
  background:linear-gradient(155deg,rgba(255,246,250,.1),rgba(123,47,190,.11));
  box-shadow:0 1.125rem 3.125rem rgba(255,31,143,.16);
}

.stat-card--left{transform:rotate(-1.2deg);}
.stat-card--right{transform:rotate(1deg);}
.stat-card--left-soft{transform:rotate(-.8deg);}

.stat-number{
  color:var(--pink);
  background:linear-gradient(120deg,var(--cream),var(--pink) 52%,var(--magenta));
  background-clip:text;
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:clamp(5.5rem,10vw,7.5rem);
  line-height:.9;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.stat-card h3{
  margin:.75rem 0 .65rem;
  color:var(--cream);
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:1.75rem;
  font-weight:400;
  letter-spacing:.02em;
  line-height:1.15;
  text-transform:uppercase;
}

.stat-card > p:last-child{
  color:var(--on-dark);
  font-size:1.0625rem;
}

.pending-note{
  margin-top:2.75rem;
  color:var(--muted-dark);
  font-size:.9375rem;
  text-align:center;
}

.costs{
  padding:var(--section-pad) var(--page-pad);
  background:linear-gradient(180deg,var(--light-a),var(--light-b));
  color:var(--ink);
}

.costs-script{
  color:var(--magenta-ink);
  transform:rotate(-2deg);
}

.section-title--light{
  color:var(--ink);
}

.costs-intro{
  display:grid;
  gap:.25rem;
  max-width:44rem;
  margin-top:1.5rem;
  color:var(--muted-light);
  font-size:1.25rem;
}

.cost-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:3.5rem;
  margin-top:3.5rem;
}

.cost-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.25rem;
  align-items:baseline;
  min-width:0;
  padding:1.35rem 0;
  border-bottom:2px dashed var(--dashed);
}

.cost-row dt{
  font-size:1.0625rem;
  font-weight:700;
}

.cost-row dt span{
  color:var(--muted-light);
  font-size:.875rem;
  font-weight:500;
}

.cost-row dd{
  color:var(--magenta-ink);
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:1.625rem;
  line-height:1.15;
  text-align:right;
}

.cost-row dd span{
  color:var(--muted-light);
}

.cost-row--tuition{
  grid-column:1/-1;
}

.cost-summary{
  margin-top:4rem;
  padding:2.5rem 2.75rem;
  border:1px solid rgba(255,126,182,.35);
  border-radius:1.625rem;
  background:
    radial-gradient(circle at 82% 12%,rgba(123,47,190,.34),transparent 30%),
    var(--bg);
  box-shadow:0 1.875rem 4.375rem rgba(171,0,91,.25);
  color:var(--on-dark);
  text-align:center;
}

.cost-summary h3{
  color:var(--gold);
  font-size:.9375rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.cost-summary-amount{
  margin-top:1rem;
  color:var(--pink);
  background:linear-gradient(105deg,var(--cream),var(--pink),var(--magenta));
  background-clip:text;
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:clamp(4rem,9vw,4.75rem);
  line-height:1;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.cost-summary-label{
  margin-top:.4rem;
  color:var(--on-dark);
  font-size:1.625rem;
}

.cost-summary-fixed,
.cost-summary-tuition{
  margin-top:1.5rem;
  color:var(--on-dark);
  font-size:1.25rem;
  font-weight:700;
}

.cost-summary-note{
  color:var(--muted-dark);
}

.cost-summary-close{
  margin-top:1.75rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,246,250,.18);
  color:var(--on-dark);
}

.costs-disclosure{
  display:grid;
  gap:.6rem;
  max-width:52rem;
  margin:2.5rem auto 0;
  color:var(--muted-light);
  font-size:1rem;
  text-align:center;
}

.sponsor{
  position:relative;
  padding:var(--section-pad) var(--page-pad);
  background:linear-gradient(135deg,var(--magenta-deep),var(--purple));
  color:var(--cream);
}

.sponsor-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(26rem,1fr);
  gap:clamp(3rem,7vw,6rem);
  align-items:center;
  width:min(100%,77.5rem);
  margin-inline:auto;
}

.sponsor-copy{
  min-width:0;
}

.sponsor-intro{
  max-width:38rem;
  margin-top:1.75rem;
  color:var(--cream);
  font-size:1.3125rem;
  line-height:1.65;
}

.sponsor-copy blockquote{
  margin:3rem 0;
}

.sponsor-copy blockquote p{
  width:max-content;
  max-width:100%;
  color:var(--gold);
  font-family:Yellowtail,"Brush Script MT",cursive;
  font-size:clamp(2.125rem,4vw,3.25rem);
  line-height:1.1;
  transform:rotate(-2deg);
}

.sponsor-close{
  max-width:38rem;
  color:var(--pink-soft);
  font-size:1.25rem;
}

.sponsor-photos{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:start;
  padding:1.5rem;
}

.sponsor-photos img{
  width:100%;
  height:28.75rem;
  border:3px solid var(--cream);
  border-radius:1.25rem;
  box-shadow:0 1.5rem 3.75rem rgba(13,5,18,.34);
  object-fit:cover;
  transform:rotate(-2deg);
}

.sponsor-photos img + img{
  margin-top:1.125rem;
  border-color:var(--gold);
  transform:rotate(2.2deg);
}

.sponsor-sparkle{
  position:absolute;
  color:var(--gold);
  font-size:clamp(2.5rem,5vw,4.5rem);
  line-height:1;
  opacity:1;
}

.sponsor-sparkle--top{
  top:3rem;
  right:5%;
}

.sponsor-sparkle--bottom{
  bottom:3rem;
  left:4%;
}

.pay{
  padding:var(--section-pad) var(--page-pad);
  scroll-margin-top:2.75rem;
  background:linear-gradient(180deg,var(--light-b),var(--light-a));
  color:var(--ink);
}

.pay-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem 4rem;
  align-items:center;
  margin-top:3rem;
  padding:clamp(2rem,5vw,4rem);
  border:1px solid rgba(255,126,182,.38);
  border-radius:1.75rem;
  background:
    radial-gradient(circle at 12% 6%,rgba(255,31,143,.28),transparent 30%),
    radial-gradient(circle at 92% 88%,rgba(123,47,190,.3),transparent 32%),
    var(--bg);
  box-shadow:0 1.875rem 4.375rem rgba(171,0,91,.22);
  color:var(--on-dark);
}

.pay-primary{
  align-self:end;
}

.pay-handle{
  grid-column:1;
  align-self:start;
  width:max-content;
  max-width:100%;
  padding:1rem 1.25rem;
  border:1px solid rgba(255,194,77,.45);
  border-radius:.75rem;
  background:rgba(255,246,250,.06);
  color:var(--cream);
  font-size:clamp(1rem,2vw,1.25rem);
  user-select:text;
}

.pay-handle strong{
  color:var(--gold);
}

.pay-handle span{
  color:var(--on-dark);
}

.qr{
  grid-column:2;
  grid-row:1/4;
  width:min(17.5rem,100%);
  color:var(--on-dark);
  text-align:center;
}

.qr img{
  width:100%;
  height:auto;
  aspect-ratio:1;
  padding:.5rem;
  border:1px solid rgba(255,246,250,.3);
  border-radius:1rem;
  background:var(--cream);
}

.qr figcaption{
  margin-top:.75rem;
  font-size:.9375rem;
}

.pay-notes{
  display:grid;
  grid-column:1;
  gap:.5rem;
  max-width:35rem;
  color:var(--on-dark);
  font-size:1.0625rem;
}

.pay-notes strong{
  color:var(--pink-light);
}

.how{
  background:
    radial-gradient(circle at 80% 22%,rgba(123,47,190,.2),transparent 34%),
    var(--bg);
}

.how-heading{
  display:flex;
  gap:2rem;
  align-items:center;
  justify-content:space-between;
}

.circle-photo{
  flex:0 0 8.75rem;
  width:8.75rem;
  height:8.75rem;
  padding:.35rem;
  border-radius:50%;
  background:conic-gradient(var(--magenta),var(--gold),var(--purple),var(--magenta));
  box-shadow:0 0 2.5rem rgba(255,31,143,.3);
}

.circle-photo img{
  width:100%;
  height:100%;
  border:4px solid var(--bg);
  border-radius:50%;
  object-fit:cover;
}

.steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
  margin-top:4rem;
}

.step-card{
  min-width:0;
  padding:2rem;
  border-top:2px solid rgba(255,126,182,.4);
  background:linear-gradient(180deg,rgba(255,246,250,.07),rgba(255,246,250,.025));
}

.step-number{
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:3.375rem;
  line-height:1;
}

.step-number--pink{color:var(--pink-light);}
.step-number--gold{color:var(--gold);}
.step-number--purple{color:var(--lavender);}

.step-card h3{
  margin:1rem 0 .75rem;
  color:var(--cream);
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:1.75rem;
  font-weight:400;
  letter-spacing:.025em;
  line-height:1.15;
  text-transform:uppercase;
}

.step-card > p:last-child{
  color:var(--on-dark);
  font-size:1.0625rem;
}

.support{
  background:
    radial-gradient(circle at 18% 22%,rgba(255,31,143,.18),transparent 32%),
    var(--bg);
}

.support-heading{
  text-align:center;
}

.support-script{
  margin-inline:auto;
  transform:rotate(-2deg);
}

.support-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(16.25rem,100%),1fr));
  gap:1.25rem;
  margin:3rem 0 0;
  padding:0;
  list-style:none;
}

.support-list:not(:has(li)){
  display:none;
}

.support-list:has(li) + .support-empty{
  display:none;
}

.support-list li,
.support-empty{
  padding:2rem;
  border:1px solid rgba(255,126,182,.32);
  border-radius:1.625rem;
  background:rgba(255,246,250,.06);
  box-shadow:0 1.5rem 3.75rem rgba(255,31,143,.18);
}

.support-empty{
  max-width:42rem;
  margin:3rem auto 0;
  color:var(--on-dark);
  font-size:1.125rem;
  text-align:center;
}

.support-name,
.support-amount{
  font-family:Anton,"Arial Narrow",Haettenschweiler,sans-serif;
  font-size:1.375rem;
}

.support-name{
  color:var(--on-dark);
}

.support-amount{
  color:var(--gold);
}

.support-date,
.support-permission{
  color:var(--muted-dark);
  font-size:.9375rem;
}

.support-date{
  display:block;
  margin-top:.75rem;
}

.support-permission{
  margin-top:1.25rem;
  text-align:center;
}

.site-footer{
  display:grid;
  gap:.5rem;
  justify-items:center;
  padding:4rem var(--page-pad) 5rem;
  border-top:1px solid rgba(255,126,182,.18);
  background:var(--bg);
  color:var(--muted-dark);
  font-size:1.0625rem;
  text-align:center;
}

.site-footer .script{
  margin-bottom:.75rem;
  color:var(--pink);
  font-size:clamp(2.375rem,5vw,3.625rem);
  line-height:1.15;
}

.site-footer span{
  color:var(--gold);
}

@media (max-width:56.25rem){
  .hero-inner{
    grid-template-columns:1fr;
    min-height:0;
  }

  .hero-copy{
    text-align:center;
  }

  .hero-script,
  .hero-intro{
    margin-inline:auto;
  }

  .hero-action{
    justify-content:center;
  }

  .hero-photo-card{
    width:min(82vw,24rem);
  }

  .cost-grid{
    grid-template-columns:1fr;
  }

  .cost-row--tuition{
    grid-column:auto;
  }

  .sponsor-inner{
    grid-template-columns:1fr;
  }

  .sponsor-copy{
    text-align:center;
  }

  .sponsor-intro,
  .sponsor-close{
    margin-inline:auto;
  }

  .sponsor-copy blockquote p{
    margin-inline:auto;
  }

  .sponsor-photos{
    width:min(100%,38rem);
    margin-inline:auto;
  }

  .pay-card{
    grid-template-columns:1fr;
  }

  .pay-primary,
  .pay-handle,
  .pay-notes,
  .qr{
    grid-column:1;
  }

  .qr{
    grid-row:auto;
    justify-self:center;
  }

  .steps{
    grid-template-columns:1fr;
  }
}

@media (max-width:47.9375rem){
  .support-list{
    grid-template-columns:1fr;
    gap:1rem;
  }
}

@media (max-width:37.5rem){
  .hero-action{
    display:grid;
  }

  .cta{
    width:100%;
  }

  .cost-row{
    grid-template-columns:1fr;
    gap:.35rem;
  }

  .cost-row dd{
    text-align:left;
  }

  .cost-summary{
    padding:2.25rem 1.5rem;
  }

  .sponsor-photos{
    grid-template-columns:1fr;
    gap:2rem;
    width:min(100%,22rem);
  }

  .sponsor-photos img{
    height:auto;
  }

  .sponsor-photos img + img{
    margin-top:0;
  }

  .pay-handle{
    width:100%;
    overflow-wrap:anywhere;
  }

  .how-heading{
    align-items:flex-start;
  }

  .circle-photo{
    flex-basis:6rem;
    width:6rem;
    height:6rem;
  }
}

@media (max-width:30rem){
  :root{
    --section-pad:5rem;
    --page-pad:1.5rem;
  }

  .hero{
    padding-top:3.5rem;
  }

  .hero-title{
    font-size:clamp(3.25rem,20vw,5rem);
  }

  .photo-sparkle--top{
    right:-.35rem;
  }

  .photo-sparkle--bottom{
    left:-.35rem;
  }

  .marquee span{
    margin-inline:.25em;
  }

  .stat-grid{
    gap:1.5rem;
    margin-top:2.75rem;
  }
}

@media (forced-colors:active),print{
  .hero-title,
  .stat-number,
  .cost-summary-amount{
    color:var(--pink);
    background:none;
    -webkit-text-fill-color:currentColor;
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}
