 :root{--ink:#262421;--muted:#66615a;--paper:#fcfbf8;--line:#dedbd4;--accent:#602e6e;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Source Sans 3",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;font-weight:400;line-height:1.75}a{color:inherit;text-underline-offset:5px}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.skip{position:absolute;top:-100px;left:15px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.header{position:relative;z-index:10;max-width:1600px;margin:auto;width:100%;padding:25px 5%;display:flex;justify-content:space-between;align-items:center;gap:28px;background:white}.brand{display:flex;align-items:center;gap:20px;flex-shrink:0;text-decoration:none}.brand img{width:70px;height:70px;object-fit:contain}.brand span{font-family:var(--serif);font-weight:600;font-style:normal;font-size:clamp(28px,2.6vw,42px);line-height:1;letter-spacing:.035em;white-space:nowrap}.nav{display:flex;gap:22px;align-items:center}.nav>a{font-size:12px;font-weight:600;letter-spacing:.09em;white-space:nowrap;text-decoration:none}.nav>a:hover,.nav>a[aria-current=page]{text-decoration:underline;text-underline-offset:8px}.social{display:flex;gap:14px;align-items:center}.social a{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:40px}.social svg{width:19px;height:19px;fill:currentColor}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:8px 13px;font-size:14px}.opening{min-height:100svh;display:flex;flex-direction:column;background:white}.announcement{display:flex;justify-content:center;align-items:center;gap:15px;min-height:46px;padding:10px 20px;background:var(--accent);color:white;text-decoration:none;font-size:13px;letter-spacing:.055em;text-align:center}.announcement:hover{text-decoration:underline}.hero{position:relative;flex:1;min-height:480px;display:flex;align-items:center;justify-content:center;padding:20px 6% 35px}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:0 3% 25px}.photo-placeholder{text-align:center;max-width:390px;min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);border:1px dashed var(--line);padding:40px}.photo-placeholder img{width:100px;height:100px;object-fit:contain;margin-bottom:15px}.photo-placeholder p{margin:0 0 8px}.photo-placeholder small{font-size:13px}.container{max-width:1180px;margin:auto;padding:85px 6% 100px}.prose{max-width:960px}.page-opening{padding-bottom:35px;border-bottom:1px solid var(--line);margin-bottom:45px}.eyebrow{font-size:12px!important;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}h1,h2,h3{font-family:var(--serif);font-style:normal;letter-spacing:-.015em;line-height:1.1;margin-top:0}h1{font-size:clamp(42px,5vw,68px);font-weight:500;margin-bottom:22px}h2{font-size:clamp(30px,3vw,36px);font-weight:600;margin-bottom:18px}h3{font-size:28px;font-weight:600}.subtitle{font-family:var(--serif);font-size:clamp(25px,2.7vw,32px);line-height:1.3;color:var(--muted);margin:0}.lead{font-size:20px;line-height:1.75;color:#48443e}p{margin:0 0 22px}.prose section{margin-top:48px}.prose section p{max-width:70ch}.prose li{margin-bottom:14px}.prose ul{padding-left:22px}.intro{max-width:820px;margin:0 auto 60px;text-align:center}.intro p{max-width:68ch;margin:0 auto;color:var(--muted)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:55px;border-top:1px solid var(--line);padding-top:42px}.card{display:flex;flex-direction:column;text-decoration:none}.card p{color:var(--muted)}.card span{margin-top:auto;align-self:flex-start;border-bottom:1px solid var(--ink);padding-bottom:7px;font-size:12px;font-weight:600;letter-spacing:.11em}.card:hover span{color:var(--accent);border-color:var(--accent)}.button{display:inline-block;padding:13px 21px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.1em;line-height:1.5}.button:hover{background:var(--ink);color:white}.actions{display:flex;flex-wrap:wrap;gap:15px;margin:28px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.portrait-placeholder{min-height:570px;background:#f1eee8;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted);font-size:15px}.contact-copy h2{font-family:var(--sans);font-size:14px;letter-spacing:.03em;margin-top:34px}.contact-copy a{overflow-wrap:anywhere}.pending{background:#f2efe9;padding:30px;color:var(--muted)}.video-placeholder{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--line);background:#f2efe9;color:var(--muted);padding:25px}.footer{background:#201f1d;color:#eee;text-align:center;padding:35px 20px;font-size:13px}.footer .social{justify-content:center;margin-bottom:19px}.footer p{margin-bottom:0}.preview-note{display:block;margin-top:20px;font-size:11px;color:#aaa;letter-spacing:.025em}@media(min-width:901px){.opening .hero{min-height:0}}@media(max-width:1200px) and (min-width:901px){.header{padding-left:3%;padding-right:3%;gap:18px}.brand{gap:12px}.brand img{width:58px;height:58px}.brand span{font-size:30px}.nav{gap:13px}.nav>a{font-size:11px}.nav .social{gap:7px}}@media(max-width:900px){.header{padding:18px 6%;gap:16px}.brand{gap:12px}.brand img{width:54px;height:54px}.brand span{font-size:clamp(23px,4.5vw,32px);letter-spacing:.025em}.menu-toggle{display:block;flex-shrink:0}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;padding:24px 6%;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:22px}.nav.is-open{display:flex}.nav>a{font-size:13px}.container{padding:50px 6% 65px}.cards,.contact-grid{grid-template-columns:1fr;gap:38px}.cards .card+.card{border-top:1px solid var(--line);padding-top:35px}.portrait-placeholder{min-height:350px}.hero{min-height:400px}.photo-placeholder{min-height:310px}.intro{margin-bottom:40px}.lead{font-size:19px}.announcement{font-size:12px}.page-opening{padding-bottom:28px;margin-bottom:30px}}@media(max-width:380px){.header{padding-left:4%;padding-right:4%;gap:10px}.brand{gap:8px}.brand img{width:42px;height:42px}.brand span{font-size:22px;letter-spacing:.01em}.menu-toggle{padding:7px 10px}.announcement{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Revision 06: campaign letter and supporting media */
.letter-paper{background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px rgba(38,36,33,.035);padding:36px 42px}.letter-letterhead{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:28px}.letter-letterhead img{display:block;width:65px;height:65px;object-fit:contain}.letter-scroll{line-height:1.8}.letter-scroll p{max-width:none!important;margin-bottom:24px}.letter-scroll p:last-child{margin-bottom:0}.letter-signature img{display:block;width:250px;max-width:100%;height:auto;margin-top:4px}.letter-controls{margin-top:20px}.letter-controls p{font-size:13px;color:var(--muted);margin-bottom:12px}.letter-controls[hidden]{display:none}.poster-placeholder{min-height:350px;border:1px dashed var(--line);background:#f2efe9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted)}.poster-placeholder p{margin-bottom:8px}.poster-placeholder small{font-size:13px}.pageant-about{background:#f2efe9;border:1px solid var(--line);padding:34px;color:var(--ink)}
/* Contact fix: prevent intrinsic image size from expanding the grid. */
.contact-page{width:100%;max-width:1180px;margin-inline:auto;padding:65px 6% 85px}.contact-page .contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,65px);align-items:start}.contact-page .contact-grid>*{min-width:0}.contact-page .contact-portrait{display:block;width:100%;max-width:390px;height:auto;justify-self:start;border:1px solid var(--line)}.contact-page .contact-copy{min-width:0;max-width:520px}.contact-page .contact-copy h1{font-size:clamp(42px,4vw,60px);margin-bottom:28px}.contact-page .contact-copy h2{margin-top:30px}.contact-page .contact-copy p{max-width:48ch}.contact-page .contact-copy a{overflow-wrap:anywhere}
@media(min-width:901px){.letter-scroll.is-scrollable:not(.is-expanded){max-height:620px;overflow-y:auto;padding-right:20px;scrollbar-gutter:stable}}
@media(max-width:900px){.letter-paper{padding:26px 22px}.letter-controls{display:none}.pageant-about{padding:26px 22px}.contact-page{padding:45px 6% 60px}.contact-page .contact-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:30px}.contact-page .contact-copy h1{font-size:44px}}
@media(max-width:700px){.contact-page .contact-grid{grid-template-columns:minmax(0,1fr);gap:32px}.contact-page .contact-copy{grid-row:1;max-width:none}.contact-page .contact-portrait{grid-row:2;max-width:340px}.contact-page .contact-copy h1{font-size:42px}}
@media print{.letter-scroll{max-height:none!important;overflow:visible!important}.letter-controls,.menu-toggle,.preview-note{display:none!important}.letter-paper{box-shadow:none}}

/* Responsive introduction-letter signature */
.letter-scroll .letter-signature {
  width: 100%;
  min-width: 0;
}

.letter-scroll .letter-signature img {
  display: block;
  width: 250px;
  max-width: 100%;
  height: auto;
}

/* Smaller signature on phones */
@media (max-width: 700px) {
  .letter-scroll .letter-signature img {
    width: 70%;
    max-width: 210px;
    height: auto;
  }
}

/* Revision 08 final assets */
.opening .hero{min-height:0;flex:1;position:relative;background:white;padding:0;}
.hero .final-rainbow-photo{position:absolute;inset:0;width:100%;height:100%;padding:6px 3% 16px;object-fit:contain;object-position:center center;}
.campaign-poster{margin:0;}.campaign-poster img{display:block;width:100%;max-width:720px;height:auto;margin:auto;}.event-details{margin-top:32px;padding-top:28px;border-top:1px solid var(--line);}
.letter-signature{width:100%;min-width:0}.letter-signature img{display:block;width:250px;max-width:100%;height:auto;}
@media(max-width:700px){.letter-signature img{width:70%;max-width:210px;height:auto;}}
