/***** Minimal extras; most styling via Tailwind *****/
:root { color-scheme: dark; }

/* Make native date & time picker icons white */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  filter: brightness(0) invert(1); /* forces white icons */
  opacity: 0.8;
  cursor: pointer;
}

/* v1 landing page — bright, springy big-top theme */
:root { --circus-red:#e94845; --circus-blue:#176b87; --circus-navy:#14334a; --circus-yellow:#ffd45c; --circus-cream:#fff4dc; --circus-pink:#f58b94; --circus-ink:#18313b; }
.circus-page { background:var(--circus-cream); color:var(--circus-ink); font-family:'DM Sans',sans-serif; overflow:hidden; }
.circus-page h1,.circus-page h2,.circus-page h3 { font-family:'Fredoka',sans-serif; }
.circus-hero { min-height:100svh; position:relative; display:grid; place-items:center; isolation:isolate; overflow:hidden; background:var(--circus-red); padding:8rem 1.25rem 6rem; }
.hero-rays,.finale-rays { position:absolute; inset:-35%; z-index:-2; background:repeating-conic-gradient(from 0deg,#f25f58 0 9deg,#e94845 9deg 18deg); animation:slow-spin 80s linear infinite; }
.hero-rays::after { content:""; position:absolute; inset:28%; border:3px solid rgba(255,244,220,.42); border-radius:50%; box-shadow:0 0 0 18px rgba(255,212,92,.16),0 0 0 40px rgba(255,244,220,.1); }
.hero-content { width:min(920px,100%); text-align:center; position:relative; z-index:2; }
.eyebrow,.section-label { font:700 .78rem/1 'DM Sans',sans-serif; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow { color:var(--circus-yellow); margin-bottom:1.2rem; }
.marquee { position:relative; margin:auto; width:min(720px,92vw); padding:2rem 1.5rem 2.2rem; background:var(--circus-cream); color:var(--circus-navy); border:6px solid var(--circus-navy); border-radius:48% 48% 18% 18%/20% 20% 14% 14%; box-shadow:0 12px 0 #9f2c38,0 18px 40px rgba(69,16,29,.3),inset 0 0 0 7px var(--circus-yellow); transform:rotate(-1deg); }
.marquee::before,.marquee::after { content:""; position:absolute; width:28px; height:28px; border-radius:50%; background:var(--circus-yellow); border:4px solid var(--circus-navy); top:50%; transform:translateY(-50%); }
.marquee::before { left:-18px; }.marquee::after { right:-18px; }
.marquee h1 { font-size:clamp(3.5rem,9vw,7.5rem); line-height:.78; letter-spacing:-.065em; margin:0; text-transform:uppercase; }
.marquee h1 em { display:inline-block; color:var(--circus-red); font-family:'Bungee Shade',cursive; font-size:.72em; letter-spacing:-.02em; transform:rotate(-2deg); }
.marquee-stars { display:block; color:var(--circus-red); letter-spacing:1.1rem; margin-left:1.1rem; font-size:.85rem; }
.circus-logo { width:82px; height:62px; object-fit:contain; margin:-.75rem auto .2rem; filter:drop-shadow(0 2px 0 rgba(0,0,0,.15)); }
.hero-kicker { max-width:620px; margin:2rem auto 1.5rem; font:600 clamp(1rem,2.2vw,1.25rem)/1.5 'Fredoka',sans-serif; color:white; }
.hero-actions { display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.circus-button { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; border:3px solid var(--circus-navy); border-radius:999px; padding:.9rem 1.5rem; font:700 .9rem/1 'Fredoka',sans-serif; text-transform:uppercase; letter-spacing:.06em; transition:transform .2s,box-shadow .2s; }
.circus-button:hover { transform:translateY(-4px) rotate(-1deg); box-shadow:0 7px 0 var(--circus-navy); }
.circus-button.primary { background:var(--circus-yellow); color:var(--circus-navy); }.circus-button.secondary { background:var(--circus-cream); color:var(--circus-navy); }
.scallops { position:absolute; bottom:-1px; left:0; width:100%; height:34px; background:radial-gradient(circle at 25px 0,var(--circus-cream) 24px,transparent 25px) 0 0/50px 35px repeat-x; }
.curtain { position:fixed; z-index:100; top:0; bottom:0; width:51%; pointer-events:none; background:repeating-linear-gradient(90deg,#9f1f35 0 8%,#d83b4f 8% 16%,#ac2439 16% 24%); box-shadow:inset -20px 0 30px rgba(67,5,20,.28); animation:curtain-left 1.45s .25s cubic-bezier(.77,0,.18,1) forwards; }
.curtain-left { left:0; transform-origin:left; }.curtain-right { right:0; transform-origin:right; animation-name:curtain-right; box-shadow:inset 20px 0 30px rgba(67,5,20,.28); }
.curtain span { position:absolute; top:0; bottom:0; width:14px; background:#f6b83f; }.curtain-left span { right:0; }.curtain-right span { left:0; }
.curtain-valance { position:fixed; z-index:101; left:0; right:0; top:0; height:13vh; pointer-events:none; background:radial-gradient(ellipse at 50% -10%,#d84154 64%,#8e1c31 66%,transparent 68%) 0 0/18% 100% repeat-x; animation:valance-up .65s 1.3s ease-in forwards; }
.circus-section { padding:clamp(5rem,10vw,9rem) 1.25rem; position:relative; }.section-inner { width:min(1120px,100%); margin:auto; }
.cream-section { background:var(--circus-cream); }.blue-section { background:var(--circus-blue); }.pink-section { background:var(--circus-pink); }
.yellow-section { background:var(--circus-yellow); }.coral-section { background:var(--circus-red); }
.split-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,7rem); align-items:center; }
.section-label { color:var(--circus-red); margin-bottom:1rem; }.section-label.light { color:var(--circus-yellow); text-align:center; }
.circus-section h2,.finale-section h2 { font-size:clamp(3rem,7vw,6.5rem); line-height:.88; letter-spacing:-.055em; }.circus-section h2 span { color:var(--circus-red); font-family:'Bungee Shade',cursive; font-size:.72em; }.centered { text-align:center; }.light-heading { color:white; }.light-heading span { color:var(--circus-yellow)!important; }
.story-card { background:white; border:4px solid var(--circus-navy); border-radius:2rem; padding:clamp(2rem,4vw,3rem); box-shadow:12px 12px 0 var(--circus-yellow); font-size:1.12rem; line-height:1.75; position:relative; }.tilt-right { transform:rotate(2deg); }.card-star { position:absolute; right:-18px; top:-25px; display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:var(--circus-red); color:var(--circus-yellow); border:4px solid var(--circus-navy); font-size:1.4rem; }.text-link { display:inline-block; color:var(--circus-red); font-weight:700; margin-top:1.25rem; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:4rem; }.feature-card { min-height:290px; border:4px solid var(--circus-navy); border-radius:50% 50% 2rem 2rem/18% 18% 2rem 2rem; padding:3rem 2rem 2rem; text-align:center; color:var(--circus-navy); box-shadow:8px 8px 0 rgba(8,41,57,.32); transition:transform .25s; }.feature-card:hover { transform:translateY(-10px) rotate(1deg); }.feature-card.coral { background:#ff746b; }.feature-card.yellow { background:var(--circus-yellow); transform:translateY(22px); }.feature-card.yellow:hover { transform:translateY(12px) rotate(-1deg); }.feature-card.pink { background:#f4a6b1; }.feature-icon { display:grid; place-items:center; margin:0 auto 1.4rem; width:70px; height:70px; border:3px solid var(--circus-navy); border-radius:50%; background:var(--circus-cream); font:700 2rem 'Fredoka'; }.feature-card h3 { font-size:1.65rem; margin-bottom:.8rem; }.feature-card p { line-height:1.55; }
.schedule-list { margin-top:3.5rem; border:4px solid var(--circus-navy); border-radius:2rem; overflow:hidden; box-shadow:10px 10px 0 var(--circus-red); }.schedule-item { display:grid; grid-template-columns:180px 1fr 60px; gap:1.5rem; align-items:center; padding:1.5rem 2rem; background:var(--circus-cream); border-bottom:3px solid var(--circus-navy); }.schedule-item:last-child { border-bottom:0 }.schedule-item:nth-child(even) { background:#fff }.schedule-item time { font:700 1rem 'Fredoka'; color:var(--circus-red) }.schedule-item h3 { font-size:1.45rem }.schedule-item p { color:#587078; margin-top:.25rem }.schedule-item>span { font:700 2rem 'Bungee Shade'; color:var(--circus-pink); text-align:right }
.venue-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3.5rem; align-items:start }.venue-wrap { min-width:0 }.venue-card { display:block; position:relative; min-height:390px; overflow:hidden; border:4px solid var(--circus-navy); border-radius:45% 45% 1.5rem 1.5rem/16% 16% 1.5rem 1.5rem; background:var(--circus-navy); box-shadow:8px 8px 0 var(--circus-yellow) }.venue-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s }.venue-card:hover img { transform:scale(1.07) }.venue-card::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 30%,rgba(20,51,74,.96) 90%) }.venue-copy { position:absolute; z-index:1; left:0; right:0; bottom:0; color:white; padding:2rem }.venue-copy small { color:var(--circus-yellow); text-transform:uppercase; font-weight:700; letter-spacing:.14em }.venue-copy h3 { font-size:1.7rem; margin:.35rem 0 }.venue-copy span { font-size:.8rem; opacity:.75 }.parking-note { margin-top:1rem; background:var(--circus-cream); border:3px solid var(--circus-navy); border-radius:1rem; padding:1rem; color:var(--circus-navy); font-size:.85rem; line-height:1.5; box-shadow:5px 5px 0 var(--circus-yellow) }.parking-note a { color:var(--circus-red); font-weight:700 }
.team-section { color:white }.board-groups { margin-top:4rem; display:grid; gap:3rem }.board-group { border:3px solid rgba(255,255,255,.25); border-radius:2rem; padding:2rem; background:rgba(255,255,255,.08) }.board-group>h3 { width:max-content; max-width:100%; margin:-3.1rem auto 2rem; padding:.65rem 1.4rem; border:3px solid var(--circus-navy); border-radius:999px; background:var(--circus-yellow); color:var(--circus-navy); font-size:1.35rem; text-align:center }.board-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:2rem }.board-card { width:150px; text-align:center }.portrait-ring { width:130px; height:130px; margin:auto; border-radius:50%; overflow:hidden; border:5px solid var(--circus-yellow); background:var(--circus-pink); box-shadow:5px 5px 0 var(--circus-navy); display:grid; place-items:center }.portrait-ring img { width:100%; height:100%; object-fit:cover }.portrait-ring span { font:700 3rem 'Fredoka'; color:var(--circus-navy) }.board-card h4 { font:700 1.05rem 'Fredoka'; margin-top:1rem }.board-card p { color:var(--circus-yellow); font-size:.75rem; margin-top:.2rem }.board-empty { margin:3rem auto 0; max-width:600px; text-align:center; border:3px dashed rgba(255,255,255,.45); border-radius:2rem; padding:3rem; color:white }
.sponsor-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1.2rem; margin-top:3.5rem; }.sponsor-card { min-height:155px; background:white; border:3px solid var(--circus-navy); border-radius:1.5rem; padding:2rem 1.25rem 1.25rem; display:flex; align-items:center; justify-content:center; position:relative; box-shadow:6px 6px 0 var(--circus-pink); transition:transform .2s; }.sponsor-card:hover { transform:translateY(-5px) rotate(-1deg); }.sponsor-card img { max-width:150px; max-height:80px; object-fit:contain; }.sponsor-tier { position:absolute; top:-12px; background:var(--circus-yellow); border:2px solid var(--circus-navy); border-radius:99px; padding:.3rem .7rem; font:700 .65rem 'DM Sans'; text-transform:uppercase; letter-spacing:.1em; }.sponsor-placeholder { margin:3rem auto 0; text-align:center; border:3px dashed var(--circus-pink); border-radius:2rem; padding:3rem; max-width:600px; color:#8c5a5c; }.sponsor-placeholder span { font-size:2rem; color:var(--circus-red); }
.finale-section { min-height:70vh; position:relative; display:grid; place-items:center; text-align:center; background:var(--circus-red); overflow:hidden; isolation:isolate; padding:6rem 1.5rem; }.finale-rays { background:repeating-conic-gradient(#f05c57 0 12deg,#de3d48 12deg 24deg); }.finale-content { color:white; }.finale-content p { color:var(--circus-yellow); font:700 .85rem 'DM Sans'; letter-spacing:.2em; text-transform:uppercase; }.finale-content h2 { margin:1rem 0 2rem; }.spring-in { opacity:0; animation:spring-in .8s 1.55s cubic-bezier(.2,1.4,.4,1) forwards; }.delay-one { animation-delay:1.65s }.delay-two { animation-delay:1.8s }.delay-three { animation-delay:1.95s }
@keyframes curtain-left { to { transform:translateX(-102%) rotate(-2deg) } } @keyframes curtain-right { to { transform:translateX(102%) rotate(2deg) } } @keyframes valance-up { to { transform:translateY(-105%) } } @keyframes spring-in { from { opacity:0; transform:translateY(35px) scale(.9) } to { opacity:1; transform:translateY(0) scale(1) } } @keyframes slow-spin { to { transform:rotate(360deg) } }
@media (max-width:760px) { .split-layout,.feature-grid,.venue-grid { grid-template-columns:1fr; }.feature-card.yellow { transform:none; }.marquee { padding-top:1.4rem }.curtain-valance { height:9vh }.story-card { transform:none }.circus-hero { padding-top:7rem }.circus-logo { width:64px;height:48px }.schedule-item { grid-template-columns:1fr auto; gap:.5rem; padding:1.2rem }.schedule-item time { grid-column:1 }.schedule-item div { grid-column:1 }.schedule-item>span { grid-column:2; grid-row:1/3 }.venue-card { min-height:340px }.board-group { padding:2rem .75rem }.board-grid { gap:1.5rem .5rem }.board-card { width:135px }.portrait-ring { width:112px;height:112px } }
@media (prefers-reduced-motion:reduce) { .curtain,.curtain-valance { display:none }.spring-in { opacity:1; animation:none }.hero-rays,.finale-rays { animation:none }.reveal-on-scroll { opacity:1!important; transform:none!important; transition:none!important } }

/* v2 — cinematic navy and gold theatrical theme */
@font-face {
  font-family: 'TheGreatestFont';
  src: url('../fonts/TheGreatestFont-Z7dl.ttf') format('truetype');
  font-display: swap;
}
:root {
  --circus-red:#355f91;
  --circus-blue:#0b2747;
  --circus-navy:#06162d;
  --circus-yellow:#d8b65d;
  --circus-cream:#e9e5dc;
  --circus-pink:#79add0;
  --circus-ink:#0a1d36;
  --theater-silver:#bcc5ce;
  --theater-gold:#d8b65d;
  --theater-gold-light:#f2dc96;
}
.circus-page { background:#061326; color:#e9edf3; font-family:'DM Sans',sans-serif; }
.circus-page h1,.circus-page h2,.circus-page h3,.finale-section h2 { font-family:'TheGreatestFont','Cinzel','Times New Roman',serif; font-weight:500; letter-spacing:.02em; }
.circus-hero { background:radial-gradient(ellipse at 50% 12%,#174b78 0,#0a274b 35%,#040d1d 78%); }
.hero-rays,.finale-rays { inset:-10%; background:repeating-conic-gradient(from -12deg at 50% 0,rgba(113,186,229,.14) 0 7deg,transparent 7deg 18deg); animation:none; }
.hero-rays::after { inset:18% 28%; border-color:rgba(216,182,93,.22); box-shadow:0 0 80px 18px rgba(72,158,220,.18); }
.marquee { background:linear-gradient(145deg,rgba(11,39,71,.94),rgba(3,15,32,.97)); color:var(--theater-gold-light); border:1px solid rgba(242,220,150,.7); border-radius:.3rem; box-shadow:0 0 0 5px #071a33,0 0 0 6px rgba(216,182,93,.55),0 25px 80px rgba(0,0,0,.6),inset 0 0 50px rgba(63,138,195,.16); transform:none; }
.marquee::before,.marquee::after { width:9px;height:9px;border:0;background:var(--theater-gold-light);box-shadow:0 0 12px var(--theater-gold-light); }
.marquee h1 { font-size:clamp(3.35rem,8vw,7rem); line-height:.82; letter-spacing:.015em; text-shadow:0 2px 0 #6f5620,0 0 24px rgba(216,182,93,.18); }
.marquee h1 em { color:var(--theater-gold); font:inherit; font-style:normal; letter-spacing:.04em; transform:none; }
.marquee-stars,.eyebrow { color:var(--theater-gold-light); }.circus-logo { filter:drop-shadow(0 0 15px rgba(216,182,93,.45)); }
.hero-kicker { font-family:'DM Sans',sans-serif; font-weight:400; letter-spacing:.08em;color:#d8e3ec; }
.scallops { height:2px;background:linear-gradient(90deg,transparent,var(--theater-gold),transparent);box-shadow:0 0 16px rgba(216,182,93,.6); }
.curtain { background:repeating-linear-gradient(90deg,#031126 0 9%,#0d3157 9% 18%,#061b37 18% 27%);box-shadow:inset -24px 0 40px rgba(0,0,0,.5); }.curtain span { background:linear-gradient(#f0dc9b,#947129,#f0dc9b); }.curtain-valance { background:radial-gradient(ellipse at 50% -10%,#0d3157 64%,#020b18 66%,transparent 68%) 0 0/18% 100% repeat-x; }
.cream-section,.yellow-section { background:linear-gradient(135deg,#0c2645,#07172d); }.blue-section { background:linear-gradient(160deg,#07172d,#0c345b 55%,#07172d); }.coral-section { background:linear-gradient(155deg,#0b3157,#06162d); }
.circus-section::before { content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 0,rgba(93,174,225,.11),transparent 38%); }
.section-inner { position:relative;z-index:1 }.section-label,.section-label.light { color:var(--theater-gold); }.circus-section h2 { color:#f3f0e8 }.circus-section h2 span,.light-heading span { color:var(--theater-gold)!important;font-family:'TheGreatestFont','Times New Roman',serif;font-size:.9em; }
.story-card { background:linear-gradient(145deg,rgba(22,54,87,.92),rgba(7,24,46,.95));border:1px solid rgba(216,182,93,.55);border-radius:.3rem;box-shadow:12px 12px 0 rgba(2,10,22,.7),0 0 45px rgba(76,159,216,.12);color:#dbe4ec;transform:none }.card-star { background:#0e355d;color:var(--theater-gold);border:1px solid var(--theater-gold); }.text-link { color:var(--theater-gold-light); }
.feature-card { border:1px solid rgba(216,182,93,.48);border-radius:.35rem;color:#e7edf2;background:linear-gradient(160deg,#143b62,#081b34)!important;box-shadow:0 20px 50px rgba(0,0,0,.3); }.feature-card.yellow { transform:translateY(22px); }.feature-icon { border:1px solid var(--theater-gold);background:#07182d;color:var(--theater-gold-light); }.feature-card p { color:#bfcbd5 }.feature-card h3 { color:var(--theater-gold-light) }
.schedule-list { border:1px solid rgba(216,182,93,.55);border-radius:.3rem;box-shadow:10px 10px 0 rgba(1,8,18,.65) }.schedule-item,.schedule-item:nth-child(even) { background:rgba(8,29,54,.92);border-color:rgba(216,182,93,.28) }.schedule-item:nth-child(even) { background:rgba(16,47,78,.78) }.schedule-item time,.schedule-item>span { color:var(--theater-gold) }.schedule-item p { color:#aebcca }.schedule-item h3 { color:#f0f2f4 }
.venue-card { border:1px solid rgba(216,182,93,.65);border-radius:.35rem;background:#06162d;box-shadow:8px 8px 0 #031020 }.venue-card::after { background:linear-gradient(transparent 24%,rgba(4,17,36,.98) 92%) }.venue-copy small,.parking-note a { color:var(--theater-gold-light) }.parking-note { background:#0b294a;border:1px solid rgba(216,182,93,.6);border-radius:.25rem;color:#d6e0e8;box-shadow:5px 5px 0 #031020 }
.team-section { overflow:hidden }.team-section::before { background:radial-gradient(ellipse at 50% -8%,rgba(164,218,249,.32) 0,rgba(63,145,204,.15) 18%,transparent 48%); }.team-section::after { content:"";position:absolute;inset:-5% 5% 0;pointer-events:none;background:linear-gradient(103deg,transparent 30%,rgba(128,199,240,.10) 43%,rgba(220,239,250,.18) 50%,rgba(128,199,240,.10) 57%,transparent 70%);clip-path:polygon(45% 0,55% 0,78% 100%,22% 100%);animation:spotlight-drift 8s ease-in-out infinite alternate; }
.board-group { position:relative;z-index:1;border:1px solid rgba(216,182,93,.34);border-radius:.35rem;background:rgba(3,16,34,.68);box-shadow:0 20px 60px rgba(0,0,0,.25) }.board-group>h3 { border:1px solid var(--theater-gold);border-radius:.2rem;background:#0b2e52;color:var(--theater-gold-light) }.portrait-ring { border:2px solid var(--theater-gold);background:#0e355d;box-shadow:0 0 25px rgba(102,180,226,.28) }.board-card h4 { color:#f2f3f4 }.board-card p { color:var(--theater-gold) }
.board-card { position:relative;padding-top:2.4rem;isolation:isolate;transition:transform .35s ease }.board-card::before { content:"";position:absolute;z-index:-1;left:50%;top:-1.2rem;width:150%;height:190px;transform:translateX(-50%);background:linear-gradient(168deg,transparent 25%,rgba(151,211,245,.06) 42%,rgba(226,243,253,.18) 72%,transparent 73%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:.42;transition:opacity .35s ease,filter .35s ease }.board-card:hover { transform:translateY(-7px) }.board-card:hover::before { opacity:1;filter:drop-shadow(0 0 14px rgba(155,214,247,.28)) }.board-card:hover .portrait-ring { box-shadow:0 0 0 4px rgba(216,182,93,.09),0 0 34px rgba(132,203,244,.48) }.portrait-placeholder { display:grid!important;place-items:center;width:100%;height:100%;background:radial-gradient(circle at 50% 32%,#1d527e,#0a294b 58%,#06162d);color:var(--theater-gold-light) }.portrait-placeholder svg { width:72%;height:72%;fill:rgba(230,237,242,.9);filter:drop-shadow(0 7px 9px rgba(0,0,0,.28)) }.portrait-placeholder svg path { opacity:.92 }.placeholder-card:nth-child(3n+2) .portrait-placeholder { background:radial-gradient(circle at 50% 32%,#376b94,#102f50 58%,#07182e) }.placeholder-card:nth-child(3n+3) .portrait-placeholder { background:radial-gradient(circle at 50% 32%,#294b73,#0c2747 58%,#06162d) }.placeholder-card h4 { opacity:.9 }.placeholder-card p { color:#aebdca }.board-preview .board-group { background:linear-gradient(180deg,rgba(10,39,70,.72),rgba(3,15,31,.8)) }
.preview-photo-group { padding-top:2.6rem }.preview-photo-card { width:170px;padding-bottom:1.2rem }.preview-photo-card .portrait-ring { width:150px;height:150px }.preview-photo-card::before { height:220px }.preview-photo-card:nth-child(even) { transform:translateY(16px) }.preview-photo-card:nth-child(even):hover { transform:translateY(9px) }.preview-photo-card .portrait-ring img { object-position:center 24% }
.preview-photo-card h4 { margin-top:1rem;line-height:1.15 }.preview-photo-card p { margin-top:.35rem;text-transform:uppercase;letter-spacing:.12em }.empty-portrait { display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(circle at 50% 28%,rgba(43,91,132,.72),rgba(4,19,39,.92) 68%);position:relative }.empty-portrait::after { content:"";position:absolute;inset:12%;border:1px solid rgba(216,182,93,.18);border-radius:50% }.empty-portrait svg { width:67%;height:67%;fill:rgba(196,207,218,.62);filter:drop-shadow(0 7px 10px rgba(0,0,0,.28)) }.awaiting-photo .portrait-ring { border-color:rgba(216,182,93,.3);box-shadow:0 0 20px rgba(102,180,226,.1) }.awaiting-photo { opacity:.78 }
.sponsors-section { background:linear-gradient(145deg,#e5e1d8,#bec8d2);color:#07182d }.sponsors-section::before { background:radial-gradient(circle at 50% 0,rgba(255,255,255,.55),transparent 42%) }.sponsors-section h2 { color:#07182d }.sponsors-section .section-label { color:#355f91 }.sponsor-card { border:1px solid rgba(7,24,45,.25);border-radius:.25rem;box-shadow:6px 6px 0 #173d64;background:#f7f6f1 }.sponsor-tier { background:#0d3157;color:var(--theater-gold-light);border:1px solid var(--theater-gold) }.sponsor-cta { margin:4rem auto 0;padding-top:2.5rem;border-top:1px solid rgba(7,24,45,.22);text-align:center }.sponsor-cta p { margin-bottom:1.2rem;color:#294967;font-weight:600 }.sponsor-cta .circus-button { box-shadow:0 8px 22px rgba(7,24,45,.22) }
.circus-button { border:1px solid var(--theater-gold);border-radius:.2rem;font-family:'DM Sans',sans-serif;letter-spacing:.13em }.circus-button.primary { background:linear-gradient(135deg,#f0d98f,#b88a2f);color:#06162d }.circus-button.secondary { background:rgba(5,20,40,.75);color:#e7edf2 }.circus-button:hover { transform:translateY(-3px);box-shadow:0 7px 24px rgba(216,182,93,.2) }
.finale-section { background:radial-gradient(circle at 50% 0,#174f7f,#07162c 58%,#020914); }.finale-rays { background:repeating-conic-gradient(from -10deg at 50% 0,rgba(115,190,232,.12) 0 7deg,transparent 7deg 19deg) }.finale-content p { color:var(--theater-gold) }
@keyframes spotlight-drift { from { transform:translateX(-5%) rotate(-2deg);opacity:.55 } to { transform:translateX(5%) rotate(2deg);opacity:1 } }

/* Optional: hover effect for better UX */
input[type="date"]::-webkit-calendar-picker-indicator:hover,
input[type="time"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
  filter: brightness(0) invert(1) drop-shadow(0 0 3px #FFD166);
}

/* Firefox fallback */
input[type="date"],
input[type="time"] {
  color-scheme: dark; /* forces light icon/text on some browsers */
}

/* ── CTA button shimmer sweep on hover ── */
@keyframes shimmer-sweep {
  0%   { transform: translateX(-130%) skewX(-20deg); }
  100% { transform: translateX(230%) skewX(-20deg); }
}

.btn-shimmer {
  position: relative;
  overflow: hidden;
}

.btn-shimmer::before {
  content: '';
  position: absolute;
  inset: 0;
  width: 45%;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(255, 255, 255, 0.18) 50%,
    transparent 100%
  );
  transform: translateX(-130%) skewX(-20deg);
  pointer-events: none;
}

.btn-shimmer:hover::before {
  animation: shimmer-sweep 0.55s ease-in-out forwards;
}

/* ── Site nav ─────────────────────────────────────────────────────────────
   Resting state is transparent over the hero; scrolled state is a navy pane
   tinted to the page rather than the pure black it used to be. The gold
   hairline is a box-shadow, not a border, so crossing the threshold does not
   change the bar's height. */
#site-nav {
  background: transparent;
  transition: background-color .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
}
#site-nav.nav-scrolled {
  background: rgba(6, 19, 38, .82);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 1px 0 rgba(216, 182, 93, .22), 0 12px 34px rgba(2, 8, 18, .45);
}

/* The links pill carries its own glass only while the bar behind it is clear.
   Once the bar is solid, the pill would just be a darker smear on a dark
   plate, so it dissolves and lets the bar do the work. */
#site-nav .nav-pill {
  background: rgba(9, 27, 51, .55);
  border: 1px solid rgba(216, 182, 93, .18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background-color .35s ease, border-color .35s ease;
}
#site-nav.nav-scrolled .nav-pill {
  background: transparent;
  border-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nav-drawer { background: rgba(5, 16, 32, .96); }

/* On the landing page the nav sits behind the curtain, so it has to arrive
   with the hero rather than snapping in the instant the curtain clears. */
@keyframes nav-drop { from { opacity:0; transform:translateY(-16px) } to { opacity:1; transform:translateY(0) } }
body.is-landing #site-nav { opacity:0; animation:nav-drop .8s 1.5s cubic-bezier(.2,1,.3,1) forwards; }

@media (prefers-reduced-motion:reduce) {
  body.is-landing #site-nav { opacity:1; animation:none; }
  #site-nav, #site-nav .nav-pill { transition:none; }
}

/* ── v3 refinements ────────────────────────────────────────────────────────
   Structural pass: breaks up the repeating "eyebrow / centered headline /
   grid of equal tiles" rhythm that made every section read the same. */

:root { --r:.3rem; --r-pill:999px; }

/* Hero had to fit the viewport: the CTAs were falling below the fold at
   1568x781, and the h1 was large enough that "GOLDEN GATE" wrapped to two
   lines instead of one. Top padding also exceeded the 6rem cap. */
.circus-hero { padding:6rem 1.25rem 3.5rem; }
.marquee { padding:1.4rem 1.5rem 1.6rem; }
.marquee h1 { font-size:clamp(2.6rem,5.6vw,4.9rem); }
.circus-logo { width:66px; height:50px; margin:-.4rem auto .2rem; }
.hero-kicker { margin:1.4rem auto 1.3rem; }

/* Feature row was three identical cards. Now a wide lead cell with the other
   two stacked beside it. */
.feature-grid { grid-template-columns:1.3fr 1fr; margin-top:3.5rem; }
.feature-card { min-height:0; padding:2.5rem 2rem 2rem; }
.feature-card.coral { grid-row:span 2; display:flex; flex-direction:column; justify-content:center; }
.feature-card.yellow { transform:none; }
.feature-card.coral:hover,.feature-card.yellow:hover,.feature-card.pink:hover { transform:translateY(-6px); }

/* Venues was a third consecutive equal-tile grid. McKenna is the actual
   showcase venue, so it leads full-width and the other two pair below. */
.venue-grid { grid-template-columns:repeat(2,1fr); }
.venue-wrap.featured { grid-column:1/-1; }
.venue-wrap.featured .venue-card { min-height:300px; }
.venue-wrap.featured .venue-copy { padding:2.5rem; }
.venue-wrap.featured .venue-copy h3 { font-size:2.2rem; }

/* Counters removed from the markup; soften the per-row hairline that made
   this read as a spec table. */
.schedule-item { grid-template-columns:170px 1fr; }
.schedule-item,.schedule-item:nth-child(even) { border-bottom-width:1px; border-color:rgba(216,182,93,.18); }

/* Theme lock: this section flipped the page to light mode mid-scroll. The
   sponsor cards stay light so logos keep their intended background. */
.sponsors-section { background:linear-gradient(135deg,#0c2645,#07172d); color:#e9edf3; }
.sponsors-section::before { background:radial-gradient(circle at 50% 0,rgba(93,174,225,.11),transparent 38%); }
.sponsors-section h2 { color:#f3f0e8; }
.sponsors-section .section-label { color:var(--theater-gold); }
.sponsor-card { border:1px solid rgba(216,182,93,.35); box-shadow:6px 6px 0 rgba(2,10,22,.6); }
.sponsor-cta { border-top:1px solid rgba(216,182,93,.25); }
.sponsor-cta p { color:#cdd8e2; }

/* Initials instead of a generic person glyph for board members without a photo. */
/* Needs to out-specify `.portrait-ring span` from the v1 block, which would
   otherwise force navy-on-navy text in a Fredoka weight. */
.portrait-ring .portrait-initials { display:grid; place-items:center; width:100%; height:100%;
  background:radial-gradient(circle at 50% 28%,rgba(43,91,132,.82),rgba(6,26,50,.94) 70%);
  color:var(--theater-gold-light); font:500 2.3rem 'TheGreatestFont','Times New Roman',serif;
  letter-spacing:.05em; text-shadow:0 2px 10px rgba(0,0,0,.45); }
.awaiting-photo { opacity:.92; }

/* Radius lock: the page was running .2 / .25 / .3 / .35rem simultaneously. */
.marquee,.story-card,.feature-card,.schedule-list,.venue-card,.parking-note,
.board-group,.sponsor-card,.circus-button,.board-group>h3 { border-radius:var(--r); }
.sponsor-tier { border-radius:var(--r-pill); }

@media (max-width:760px) {
  .feature-grid,.venue-grid { grid-template-columns:1fr; }
  .feature-card.coral { grid-row:auto; }
  .venue-wrap.featured .venue-card { min-height:340px; }
  .schedule-item { grid-template-columns:1fr; }
  .marquee h1 { font-size:clamp(2.4rem,10vw,3.4rem); }
}

/* The spotlight sweep behind the board is an infinite loop and was not
   covered by the reduced-motion block further up the file. */
@media (prefers-reduced-motion:reduce) {
  .team-section::after { animation:none; }
}

/* ── Footer ───────────────────────────────────────────────────────────────
   Was pure black with the old #FFD700 rule; both predate the navy/gold theme. */
.site-footer { background:linear-gradient(180deg,#07172d,#040d1d); color:#c3cfdb; }
.footer-rule { height:1px; background:linear-gradient(90deg,transparent,var(--theater-gold),transparent); opacity:.6; }
.footer-mark { color:rgba(214,224,232,.6); }

/* Board portraits are now pre-cropped square and face-centred, so the blanket
   object-position nudge is no longer needed, and the alternating vertical
   offset just read as misalignment. */
.preview-photo-card .portrait-ring img { object-position:center center; }
.preview-photo-card:nth-child(even),
.preview-photo-card:nth-child(even):hover { transform:none; }
.preview-photo-card:hover,
.preview-photo-card:nth-child(even):hover { transform:translateY(-7px); }
/* Greyscaled at 70% these were near-invisible on navy. They are filled brand
   discs with knocked-out glyphs, so a silhouette filter flattens them; instead
   seat each on a light disc with a gold hairline so all three read equally. */
.site-footer .social-icons a { display:grid; place-items:center; width:38px; height:38px;
  border-radius:50%; background:rgba(233,229,220,.94); border:1px solid rgba(216,182,93,.4);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.site-footer .social-icons a:hover { transform:translateY(-2px);
  border-color:var(--theater-gold); box-shadow:0 0 14px rgba(216,182,93,.4); }
.site-footer .social-icons img { width:22px; height:22px; filter:none; opacity:1; }

/* The valance tiled at 18% of the width, so the run ended on a half scallop
   (100 / 18 = 5.6). Size it as a whole fraction instead so it stays symmetric
   at any viewport width. */
.curtain-valance { background-size:calc(100% / 6) 100%; }
