  :root{
    --navy-950:#16243B;
    --navy-900:#1B3A5C;
    --navy:#28558F;
    --navy-300:#98B9E1;
    --navy-100:#C8D9EF;
    --navy-50:#F3F6FC;
    --gold:#CF9C59;
    --gold-deep:#A0612E;
    --gold-100:#F1E7D0;
    --teal:#20B1BA;
    --teal-deep:#1E7480;
    --ink:#0D0D0D;
    --paper:#F8FAFD;
    --line:rgba(13,13,13,0.10);
    --serif:'Fraunces', serif;
    --sans:'Work Sans', sans-serif;
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--sans);
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:var(--sans);
    font-size:12.5px;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--gold-deep);
  }
  h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:1.08;}
  p{line-height:1.65;margin:0;}

  /* ---------- NAV ---------- */
  .nav{
    position:sticky;top:0;z-index:50;
    background:rgba(22,36,59,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .nav .wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:76px;
  }
  .nav-brand{display:flex;align-items:center;gap:12px;}
  .nav-brand .word{
    font-family:var(--serif);font-size:21px;color:#fff;letter-spacing:.01em;
  }
  .nav-brand .sub{
    font-family:var(--sans);font-size:9.5px;letter-spacing:.24em;color:var(--gold);
    text-transform:uppercase;display:block;margin-top:1px;
  }
  .nav-links{display:flex;align-items:center;gap:10px;}
  .nav-links a{
    font-size:13.5px;font-weight:500;color:rgba(255,255,255,0.85);
    padding:9px 16px;border-radius:20px;border:1px solid rgba(255,255,255,0.16);
    transition:background .2s ease, border-color .2s ease, color .2s ease;
    white-space:nowrap;
  }
  .nav-links a:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.32);color:#fff;}
  .nav-cta{
    font-size:13.5px;font-weight:600;color:var(--navy-950)!important;
    background:var(--gold);border-color:var(--gold)!important;padding:9px 20px;
    letter-spacing:.02em;margin-left:6px;
  }
  .nav-cta:hover{background:#dcb072;border-color:#dcb072!important;color:var(--navy-950)!important;}
  .nav-toggle{display:none;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;overflow:hidden;
    background:
      radial-gradient(ellipse 900px 500px at 15% 15%, rgba(40,85,143,0.55), transparent 60%),
      radial-gradient(ellipse 700px 600px at 85% 30%, rgba(32,177,186,0.18), transparent 55%),
      radial-gradient(ellipse 1000px 700px at 50% 100%, rgba(207,156,89,0.10), transparent 60%),
      linear-gradient(160deg, var(--navy-950) 0%, #0f1c30 55%, var(--navy-950) 100%);
    background-size:140% 140%, 140% 140%, 140% 140%, 100% 100%;
    animation: drift 26s ease-in-out infinite alternate;
    color:#fff;
    padding:120px 0 130px;
  }
  @keyframes drift{
    0%{background-position:0% 0%, 100% 0%, 50% 100%, 0 0;}
    100%{background-position:8% 12%, 92% 15%, 45% 92%, 0 0;}
  }
  .hero::before{
    content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.025 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  .hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr 0.85fr;gap:60px;align-items:center;}
  .hero-copy .eyebrow{color:var(--gold);margin-bottom:22px;display:block;}
  .hero-copy h1{
    font-size:clamp(34px,4.6vw,58px);
    color:#fff;
  }
  .hero-copy h1 em{font-style:italic;color:var(--gold);font-weight:400;}
  .hero-copy p.lede{
    margin-top:24px;max-width:520px;color:rgba(255,255,255,0.72);
    font-size:17px;line-height:1.7;
  }
  .hero-cta-row{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;}
  .btn{
    display:inline-block;padding:14px 26px;font-size:14px;font-weight:600;
    letter-spacing:.02em;border-radius:2px;transition:all .2s ease;border:1px solid transparent;
  }
  .btn-gold{background:var(--gold);color:var(--navy-950);}
  .btn-gold:hover{background:#e0b374;transform:translateY(-1px);}
  .btn-ghost{border-color:rgba(255,255,255,0.35);color:#fff;}
  .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,0.06);}
  .btn-white{background:#fff;color:var(--navy-950);border-color:#fff;}
  .btn-white:hover{background:var(--navy-50);transform:translateY(-1px);}

  .hero-mark{display:flex;justify-content:center;align-items:center;}
  .lotus-lg{width:min(320px,80%);}
  .lotus-lg .petal{
    fill:none;stroke-width:2.4;
    stroke-dasharray:340;stroke-dashoffset:340;
    animation:draw 1.8s ease forwards;
  }
  .lotus-lg .p1{stroke:var(--gold);animation-delay:.1s;}
  .lotus-lg .p2{stroke:var(--navy-300);animation-delay:.35s;}
  .lotus-lg .p3{stroke:var(--gold);animation-delay:.6s;}
  .lotus-lg .p4{stroke:var(--navy-300);animation-delay:.85s;}
  .lotus-lg .p5{stroke:var(--gold);animation-delay:1.1s;}
  @keyframes draw{to{stroke-dashoffset:0;}}

  /* ---------- CREDENTIAL STRIP ---------- */
  .credstrip{
    background:var(--navy-50);
    border-bottom:1px solid var(--line);
    padding:36px 0;
  }
  .credstrip .wrap{
    display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  }
  .credstrip p{font-size:15px;color:#33465e;max-width:820px;}
  .credstrip strong{color:var(--navy-950);font-weight:600;}
  .cred-tags{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto;}
  .cred-tag{
    font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
    color:var(--navy);background:#fff;border:1px solid var(--navy-100);
    padding:7px 12px;border-radius:2px;white-space:nowrap;
  }

  /* ---------- SECTION SHELL ---------- */
  section{padding:100px 0;}
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head .eyebrow{margin-bottom:14px;display:block;}
  .section-head h2{font-size:clamp(26px,3.2vw,38px);color:var(--navy-950);}
  .section-head p{margin-top:16px;color:#4b5a6f;font-size:16px;}

  /* ---------- FOCUS AREAS ---------- */
  .focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .focus-card{background:#fff;padding:36px 32px;}
  .focus-card .icon{width:40px;height:40px;margin-bottom:22px;}
  .focus-card h3{font-size:19px;color:var(--navy-950);margin-bottom:12px;}
  .focus-card p{font-size:14.5px;color:#57677c;}

  /* ---------- PHASE MAP (signature element) ---------- */
  .phasewrap{background:var(--navy-950);color:#fff;position:relative;overflow:hidden;}
  .phasewrap::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse 800px 500px at 80% 0%, rgba(32,177,186,0.14), transparent 60%);
  }
  .phasewrap .section-head p{color:rgba(255,255,255,0.62);}
  .phasewrap .section-head h2{color:#fff;}
  .phase-map{
    position:relative;display:flex;gap:0;
    border-top:1px solid rgba(255,255,255,0.14);
  }
  .phase{
    flex:1;padding:32px 26px 0;border-right:1px solid rgba(255,255,255,0.14);
    position:relative;
  }
  .phase:last-child{border-right:none;}
  .phase-petal{width:34px;height:34px;margin-bottom:22px;}
  .phase h4{
    font-family:var(--serif);font-size:17px;font-weight:500;color:#fff;margin-bottom:10px;
  }
  .phase p{font-size:13.5px;color:rgba(255,255,255,0.55);line-height:1.6;}
  .phase-num{
    position:absolute;top:-13px;left:26px;background:var(--navy-950);
    font-size:11px;letter-spacing:.1em;color:var(--gold);padding:0 8px 0 0;font-weight:600;
  }

  /* ---------- SPLIT (sponsors / volunteers) ---------- */
  .split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);}
  .split-panel{padding:80px 56px;}
  .split-panel.sponsors{background:#fff;border-right:1px solid var(--line);}
  .split-panel.volunteers{background:var(--navy-50);}
  .split-panel .eyebrow{display:block;margin-bottom:16px;}
  .split-panel h2{font-size:clamp(24px,2.6vw,30px);color:var(--navy-950);margin-bottom:18px;}
  .split-panel p.intro{color:#4b5a6f;font-size:15.5px;margin-bottom:28px;max-width:440px;}
  .checklist{list-style:none;margin:0 0 32px;padding:0;display:grid;gap:14px;}
  .checklist li{
    display:flex;gap:12px;font-size:14.5px;color:#33465e;line-height:1.55;
  }
  .checklist li::before{
    content:"";flex:0 0 auto;width:7px;height:7px;border-radius:50%;
    background:var(--gold);margin-top:7px;
  }
  .volunteers .checklist li::before{background:var(--teal);}

  /* ---------- LOCATIONS ---------- */
  .loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .loc-card{
    border:1px solid var(--line);padding:32px;background:#fff;
    position:relative;
  }
  .loc-card .eyebrow{color:var(--teal-deep);display:block;margin-bottom:10px;}
  .loc-card h3{font-size:22px;color:var(--navy-950);margin-bottom:10px;}
  .loc-card p{color:#57677c;font-size:14.5px;}

  /* ---------- CONTACT / CLOSER ---------- */
  .closer{
    background:linear-gradient(150deg, var(--navy) 0%, var(--navy-900) 100%);
    color:#fff;text-align:center;
  }
  .closer h2{font-size:clamp(28px,4vw,42px);color:#fff;max-width:680px;margin:0 auto;}
  .closer p{color:rgba(255,255,255,0.72);margin:20px auto 34px;max-width:520px;font-size:16px;}
  .closer .hero-cta-row{justify-content:center;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-950);color:rgba(255,255,255,0.55);padding:56px 0 32px;}
  .foot-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.1);}
  .foot-brand{display:flex;align-items:center;gap:12px;}
  .foot-brand .word{font-family:var(--serif);font-size:19px;color:#fff;}
  .foot-links{display:flex;gap:44px;flex-wrap:wrap;}
  .foot-col h5{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 14px;font-weight:600;}
  .foot-col a{display:block;font-size:14px;color:rgba(255,255,255,0.62);margin-bottom:10px;}
  .foot-col a:hover{color:#fff;}
  .foot-bottom{display:flex;justify-content:space-between;padding-top:26px;font-size:12.5px;flex-wrap:wrap;gap:10px;}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .hero{animation:none;}
    .lotus-lg .petal{animation:none;stroke-dashoffset:0;}
    .reveal{opacity:1;transform:none;transition:none;}
  }

  @media (max-width: 900px){
    .nav-links{display:none;}
    .hero .wrap{grid-template-columns:1fr;text-align:left;}
    .hero-mark{order:-1;margin-bottom:20px;}
    .lotus-lg{width:180px;}
    .focus-grid{grid-template-columns:1fr;}
    .phase-map{flex-direction:column;}
    .phase{border-right:none;border-bottom:1px solid rgba(255,255,255,0.14);padding-bottom:28px;}
    .split{grid-template-columns:1fr;}
    .split-panel.sponsors{border-right:none;border-bottom:1px solid var(--line);}
    .split-panel{padding:56px 28px;}
    .loc-grid{grid-template-columns:1fr;}
    .credstrip .wrap{flex-direction:column;align-items:flex-start;}
    .cred-tags{margin-left:0;}
  }

  /* ---------- MODAL (lead capture form) ---------- */
  .modal-backdrop{
    position:fixed;inset:0;background:rgba(22,36,59,0.6);backdrop-filter:blur(3px);
    display:none;align-items:center;justify-content:center;z-index:100;padding:24px;
  }
  .modal-backdrop.open{display:flex;}
  .modal{
    background:#fff;border-radius:4px;max-width:480px;width:100%;max-height:90vh;
    overflow-y:auto;padding:38px;position:relative;box-shadow:0 40px 80px -20px rgba(13,13,13,0.45);
  }
  .modal-close{
    position:absolute;top:20px;right:20px;width:34px;height:34px;border-radius:50%;
    background:var(--navy-50);border:none;cursor:pointer;display:flex;align-items:center;
    justify-content:center;font-size:18px;color:var(--navy-950);
  }
  .modal h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 6px;padding-right:30px;color:var(--navy-950);}
  .modal p.modal-sub{color:#57677c;font-size:15px;margin:0 0 26px;line-height:1.55;}
  .form-row{margin-bottom:16px;}
  .form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--navy-950);}
  .form-row input,.form-row select,.form-row textarea{
    width:100%;padding:12px 14px;border-radius:2px;border:1.5px solid var(--line);
    background:#fff;font-family:var(--sans);font-size:15px;color:var(--ink);
  }
  .form-row input:focus,.form-row select:focus,.form-row textarea:focus{
    outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy);
  }
  .form-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .form-note{font-size:12.5px;color:#57677c;margin-top:14px;line-height:1.55;}
  .btn-block{width:100%;text-align:center;border:none;cursor:pointer;font-family:var(--sans);}
  .form-success{display:none;text-align:center;padding:20px 0;}
  .form-success.show{display:block;}
  .form-success .check{
    width:56px;height:56px;border-radius:50%;background:var(--teal);color:#fff;
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
  }
  .form-success h3{font-family:var(--serif);font-size:22px;margin:0 0 10px;color:var(--navy-950);}
  .form-success p{color:#57677c;font-size:15px;}

  @media (max-width: 680px){
    .form-two{grid-template-columns:1fr;}
    .modal{padding:28px;}
  }

  @media (max-width: 900px){
    .nav-toggle{
      display:flex;align-items:center;justify-content:center;
      width:36px;height:36px;background:none;border:none;color:#fff;
      font-size:22px;cursor:pointer;
    }
    .nav-links{
      display:none;position:absolute;top:76px;left:0;right:0;
      background:var(--navy-950);flex-direction:column;align-items:flex-start;
      gap:0;padding:12px 32px 24px;border-bottom:1px solid rgba(255,255,255,0.1);
    }
    .nav-links.open{display:flex;}
    .nav-links a{padding:12px 4px;width:100%;border:none;border-radius:0;border-bottom:1px solid rgba(255,255,255,0.08);}
    .nav-links a:hover{background:none;}
    .nav-cta{margin-top:8px;border-radius:20px!important;text-align:center;border-bottom:none!important;}
  }
