:root{
  --navy:#0b2b5c;--navy2:#071a38;--gold:#c5a337;--cream:#fff6df;--paper:#f6f0df;--ink:#182238;--pink:#ff5aae;--muted:#64748b;--line:rgba(11,43,92,.18);--shadow:0 24px 80px rgba(11,43,92,.18);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#fff7fb 0%,#f8fbff 46%,#fff8ef 100%);color:var(--ink)}
a{color:inherit}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px clamp(18px,4vw,52px);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand-mark{width:56px;height:56px}.brand-text{display:grid;line-height:1.05}.brand-text strong{color:var(--navy);font-size:1.05rem;letter-spacing:.06em}.brand-text small{font-size:.78rem;color:var(--muted)}.top-nav{display:flex;gap:20px;font-weight:800;font-size:.92rem;text-transform:uppercase;letter-spacing:.05em}.top-nav a{text-decoration:none;color:var(--navy)}.top-nav a:hover{color:var(--pink)}
.section-pad{padding:clamp(48px,7vw,92px) clamp(20px,5vw,78px)}.hero{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(320px,.72fr);gap:clamp(32px,5vw,70px);align-items:center;min-height:74vh;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:auto -20% -30% auto;width:620px;height:620px;background:radial-gradient(circle,var(--pink),transparent 65%);opacity:.16;z-index:-1}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:var(--gold);margin:0 0 12px}.hero h1{font-size:clamp(3rem,8vw,7.2rem);line-height:.83;margin:.1em 0;color:var(--navy);font-family:Georgia,Times,serif;letter-spacing:-.06em;text-shadow:3px 3px 0 rgba(197,163,55,.22)}.hero h2{font-size:clamp(2rem,5vw,4.6rem);line-height:.9;margin:0 0 20px;color:var(--gold);text-transform:uppercase;letter-spacing:-.05em;text-shadow:2px 2px 0 #fff,4px 4px 0 rgba(11,43,92,.18)}.hero-lede{font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.5;max-width:740px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0}.button{border:0;border-radius:999px;padding:13px 22px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;cursor:pointer;display:inline-flex}.button-primary{background:var(--navy);color:white;box-shadow:0 12px 28px rgba(11,43,92,.25)}.button-secondary{background:white;color:var(--navy);border:2px solid var(--line)}.quick-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0 0;max-width:760px}.quick-facts div{background:white;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 10px 28px rgba(11,43,92,.05)}dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:900}dd{margin:3px 0 0;font-weight:900;color:var(--navy)}.hero-card{background:linear-gradient(145deg,#fff,var(--cream));border:1px solid var(--line);border-radius:32px;padding:22px;box-shadow:var(--shadow);transform:rotate(1.4deg)}.hero-card img{width:100%;display:block}.badge-panel{display:grid;grid-template-columns:1fr;gap:6px;padding:16px;border:2px solid var(--gold);border-radius:18px;background:rgba(255,255,255,.74);font-family:Georgia,Times,serif;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:900;text-align:center;color:var(--navy)}
.split-section{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;background:#fff}.split-section h2,.section-heading h2,.comments-copy h2{font-size:clamp(2rem,4vw,4rem);line-height:1;margin:0 0 18px;color:var(--navy)}.split-section p,.section-heading p,.comments-copy p{font-size:1.1rem;line-height:1.65}.notice-card{border-radius:28px;padding:28px;background:linear-gradient(145deg,var(--navy),var(--navy2));color:white;box-shadow:var(--shadow)}.notice-card h3{margin-top:0;color:var(--gold);font-size:1.5rem}.notice-card li{margin:10px 0}.schedule-section{background:linear-gradient(180deg,#f8fbff 0,#fff 100%)}.section-heading{max-width:900px;margin:0 auto 34px;text-align:center}.schedule-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px}.day-card{background:white;border:1px solid var(--line);border-bottom:7px solid var(--gold);border-radius:24px;padding:22px;min-height:190px;box-shadow:0 16px 38px rgba(11,43,92,.08)}.day-card.active{background:linear-gradient(145deg,var(--navy),#143d7a);color:white;border-bottom-color:var(--pink)}.day-number{display:inline-flex;background:var(--gold);color:#fff;border-radius:999px;padding:6px 12px;font-weight:950;text-transform:uppercase;font-size:.78rem}.day-card h3{font-size:1.35rem;line-height:1.1;margin:16px 0 10px;color:inherit}.day-card p{margin:0;color:inherit;font-weight:800}.ticket-callout{margin:28px auto 0;display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center;max-width:850px;background:var(--ink);color:white;border-radius:28px;padding:22px;border:3px solid var(--gold)}.ticket-callout img{width:150px}.ticket-callout h3{font-size:1.7rem;margin:0 0 8px;color:var(--gold);text-transform:uppercase}.ticket-callout p{font-size:1.08rem;line-height:1.5;margin:0}.sponsors-section{background:#fff7fb}.sponsor-grid{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:16px}.sponsor-grid figure{margin:0;background:white;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 12px 28px rgba(11,43,92,.07);display:flex;flex-direction:column;justify-content:space-between;min-height:245px}.sponsor-grid img{width:100%;height:144px;object-fit:contain}.sponsor-grid figcaption{font-size:.9rem;line-height:1.35;color:var(--navy);font-weight:850;text-align:center;border-top:1px solid var(--line);padding-top:12px;margin-top:10px}.comments-section{display:grid;grid-template-columns:minmax(0,.75fr) minmax(320px,.9fr);gap:30px;background:var(--paper)}.comment-form{display:grid;gap:16px;background:white;border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow)}label{display:grid;gap:8px;font-weight:900;color:var(--navy)}select,textarea{width:100%;border:2px solid var(--line);border-radius:16px;padding:12px 14px;font:inherit;color:var(--ink);background:#fff}textarea{resize:vertical}.form-status{min-height:1.4em;margin:0;color:var(--navy);font-weight:850}.note-board{grid-column:1/-1;background:white;border:1px solid var(--line);border-radius:28px;padding:24px}.note-board h3{color:var(--navy);margin-top:0}.notes-list{display:grid;gap:12px}.local-note{border-left:6px solid var(--gold);padding:14px 16px;background:#fffaf0;border-radius:14px}.local-note strong{display:block;color:var(--navy)}.local-note time{font-size:.82rem;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:22px;background:var(--navy2);color:white;padding:28px clamp(20px,5vw,78px)}.site-footer p{margin:.3rem 0 0;color:#dbe7ff}.site-footer img{width:86px;background:white;border-radius:12px;padding:8px}
@media(max-width:1100px){.hero,.split-section,.comments-section{grid-template-columns:1fr}.schedule-grid,.sponsor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notice-card{max-width:none}.top-nav{display:none}.hero-card{transform:none}.comments-section .note-board{grid-column:auto}}@media(max-width:640px){.brand-text small{display:none}.quick-facts,.schedule-grid,.sponsor-grid,.ticket-callout{grid-template-columns:1fr}.ticket-callout img{margin:auto}.site-footer{display:grid}.hero h1{font-size:3.2rem}}

/* ---- Production hardening additions ---------------------------------- */
/* Honest-form microcopy + empty states for the member notes board. */
.form-note{margin:-4px 0 0;font-size:.86rem;line-height:1.4;color:var(--muted);font-weight:700}
.board-hint{margin:-6px 0 14px;font-size:.9rem;color:var(--muted);font-weight:700}
.notes-empty{margin:0;color:var(--muted);font-weight:700}
.local-note p{margin:6px 0 8px;line-height:1.5;overflow-wrap:anywhere}

/* Focus visibility for keyboard users (was relying on UA default only). */
a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--pink);outline-offset:2px}

/* The nav was display:none below 1100px, leaving phones with no navigation.
   QR traffic is overwhelmingly mobile, so keep it - scrollable strip instead. */
@media(max-width:1100px){
  .top-nav{display:flex;gap:14px;font-size:.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:58vw;padding-bottom:2px}
  .top-nav::-webkit-scrollbar{display:none}
  .top-nav a{white-space:nowrap}
}
@media(max-width:640px){
  .site-header{gap:12px;padding:10px 16px}
  .brand-mark{width:42px;height:42px}
  .top-nav{max-width:100%;font-size:.75rem;gap:12px}
  .hero{min-height:0}
  .hero h1{font-size:clamp(2.6rem,13vw,3.4rem)}
  .hero h2{font-size:clamp(1.5rem,8vw,2.1rem)}
  .site-footer{justify-items:center;text-align:center}
  .site-footer img{margin-top:14px}
}
/* Very narrow phones: let the header wrap rather than squeeze the brand. */
@media(max-width:400px){
  .site-header{flex-wrap:wrap}
  .top-nav{max-width:100%;width:100%}
}
