  :root{
    --navy:#152C46;
    --navy-deep:#0E1F33;
    --ink:#15181C;
    --green:#6FA35C;
    --green-soft:#DCEAD5;
    --paper:#FAF8F3;
    --paper-alt:#F1EDE3;
    --slate:#5C6B7A;
    --line:#DEE2E3;
    --white:#FFFFFF;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3, .display{
    font-family:'Fredoka', sans-serif;
    font-weight:600;
    color:var(--ink);
    margin:0;
  }
  a{color:inherit;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 28px;}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    background:rgba(250,248,243,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .navbar{
    max-width:1080px;margin:0 auto;padding:14px 28px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand svg{width:30px;height:30px;flex:none;}
  .brand span{font-family:'Fredoka';font-weight:600;font-size:1.05rem;letter-spacing:.2px;}
  nav.links{display:flex;gap:28px;font-size:.92rem;font-weight:500;}
  nav.links a{text-decoration:none;color:var(--navy);position:relative;padding:4px 0;}
  nav.links a:hover{color:var(--green);}
  .nav-cta{
    background:var(--navy);color:#fff;padding:9px 18px;border-radius:100px;
    font-size:.88rem;font-weight:600;text-decoration:none;white-space:nowrap;
  }
  .nav-cta:hover{background:var(--navy-deep);}
  .menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px;}
  .menu-toggle svg{width:24px;height:24px;}

  /* ---------- HERO ---------- */
  .hero{position:relative;background:var(--navy);overflow:hidden;padding-top:56px;}
  .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;}
  .hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(10,26,43,.75),rgba(10,26,43,.92));}
  .hero-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:64px 28px 0;color:#fff;}
  .eyebrow-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-bottom:18px;}
  .dates-pill{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
    padding:8px 16px;border-radius:100px;font-size:.9rem;font-weight:600;
  }
  .hero h1{
    font-size:clamp(3rem, 10vw, 6.4rem);
    color:#fff;line-height:0.95;letter-spacing:-1px;
  }
  .hero .kicker{
    color:var(--green-soft);font-size:1.05rem;font-weight:600;margin-top:22px;max-width:560px;line-height:1.4;
  }
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;padding-bottom:52px;}
  .btn-primary{
    background:var(--green);color:#0E1F33;padding:13px 26px;border-radius:100px;
    font-weight:700;text-decoration:none;font-size:.95rem;
  }
  .btn-primary:hover{background:#5f9a4c;}
  .btn-ghost{
    border:1px solid rgba(255,255,255,.4);color:#fff;padding:13px 26px;border-radius:100px;
    font-weight:600;text-decoration:none;font-size:.95rem;
  }
  .btn-ghost:hover{background:rgba(255,255,255,.1);}
  .wave-divider{display:block;width:100%;height:auto;margin-top:20px;}

  /* ---------- SECTION HEADERS ---------- */
  .section{padding:84px 0;}
  .section.tight{padding:64px 0;}
  .section-head{max-width:620px;margin-bottom:48px;}
  .section-tag{color:var(--green);font-weight:600;font-size:.88rem;margin-bottom:10px;}
  .section-head h2{font-size:clamp(2rem,4vw,2.6rem);letter-spacing:-.5px;}
  .section-head p{color:var(--slate);margin-top:14px;font-size:1.02rem;line-height:1.6;}
  .alt{background:var(--paper-alt);}

  /* ---------- KEYNOTE STRIP ---------- */
  .keynote{
    display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;
    background:var(--navy);color:#fff;border-radius:20px;padding:36px;
  }
  .keynote .kn-photo{width:140px;height:140px;border-radius:16px;object-fit:cover;object-position:center 15%;flex-shrink:0;}
  .keynote .kn-badge{
    background:var(--green);color:var(--navy-deep);font-family:'Fredoka';font-weight:600;
    font-size:.82rem;padding:8px 14px;border-radius:100px;white-space:nowrap;
    display:inline-block;margin-bottom:16px;
  }
  .keynote h3{color:#fff;font-size:1.5rem;margin-bottom:8px;}
  .keynote p.role{color:#B9C6D3;font-weight:500;margin-bottom:14px;}
  .keynote p.talk{color:#EDEFE9;font-size:1.05rem;line-height:1.55;font-style:italic;}

  /* ---------- PROGRAM ---------- */
  .day-tabs{display:flex;gap:10px;margin-bottom:36px;flex-wrap:wrap;}
  .day-tab{
    border:1px solid var(--line);background:#fff;padding:11px 20px;border-radius:100px;
    font-weight:600;font-size:.92rem;cursor:pointer;color:var(--slate);
  }
  .day-tab .d{display:block;font-size:.74rem;font-weight:500;color:var(--slate);margin-top:1px;}
  .day-tab.active{background:var(--navy);border-color:var(--navy);color:#fff;}
  .day-tab.active .d{color:#B9C6D3;}
  .venue-note{
    display:flex;gap:10px;align-items:center;background:var(--green-soft);color:#2F4A25;
    padding:12px 18px;border-radius:12px;font-size:.9rem;font-weight:600;margin-bottom:32px;
  }
  .day-panel{display:none;}
  .day-panel.active{display:block;}

  .agenda-block{margin-bottom:8px;}
  .session-label{
    display:flex;align-items:center;gap:12px;margin:38px 0 18px;
  }
  .session-label:first-child{margin-top:0;}
  .session-num{
    font-family:'Fredoka';font-weight:600;color:var(--navy);border:1.5px solid var(--navy);
    width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:.85rem;flex:none;
  }
  .session-label h4{font-size:1.15rem;color:var(--navy);}

  .talk-row{
    display:grid;grid-template-columns:140px 1fr;gap:22px;padding:18px 0;border-top:1px solid var(--line);
  }
  .talk-row:last-child{border-bottom:1px solid var(--line);}
  .talk-time{font-weight:600;color:var(--navy);font-size:.92rem;padding-top:2px;white-space:nowrap;font-variant-numeric:tabular-nums;}
  .talk-speaker{font-weight:600;font-size:1.02rem;}
  .talk-affil{color:var(--slate);font-size:.88rem;margin-top:2px;}
  .talk-title{margin-top:8px;font-size:.96rem;line-height:1.5;color:var(--ink);}
  .talk-title.tbd{color:var(--slate);font-style:italic;}

  .break-row{
    display:grid;grid-template-columns:140px 1fr;gap:22px;padding:12px 0;
    color:var(--slate);font-size:.88rem;font-style:italic;
  }
  .plain-row{
    display:grid;grid-template-columns:140px 1fr;gap:22px;padding:16px 0;border-top:1px solid var(--line);
  }
  .plain-row:last-child{border-bottom:1px solid var(--line);}
  .plain-row .talk-speaker{font-weight:600;color:var(--navy);}

  /* ---------- SPEAKERS ---------- */
  .speaker-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;
  }
  .speaker-card{
    background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;
  }
  .speaker-initial{
    width:38px;height:38px;border-radius:50%;background:var(--green-soft);color:#2F4A25;
    display:flex;align-items:center;justify-content:center;font-family:'Fredoka';font-weight:600;
    margin-bottom:14px;font-size:.95rem;
  }
  .speaker-card h4{font-size:1rem;font-weight:600;}
  .speaker-card p{color:var(--slate);font-size:.85rem;margin-top:4px;}
  .speaker-link{display:inline-block;margin-top:10px;font-size:.82rem;font-weight:600;color:var(--green);text-decoration:none;}
  .speaker-link:hover{color:var(--navy);text-decoration:underline;}

  /* ---------- VENUE ---------- */
  .venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .venue-card{
    background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;
  }
  .venue-card .v-date{color:var(--green);font-weight:700;font-size:.85rem;margin-bottom:10px;}
  .venue-card h3{font-size:1.25rem;margin-bottom:6px;}
  .venue-card p.addr{color:var(--slate);font-size:.95rem;line-height:1.5;margin-bottom:16px;}
  .venue-card a.maplink{
    font-weight:600;font-size:.88rem;color:var(--navy);text-decoration:none;
    display:inline-flex;align-items:center;gap:6px;
  }
  .venue-card a.maplink:hover{color:var(--green);}

  /* ---------- REGISTER ---------- */
  .register-band{
    background:var(--navy);border-radius:24px;padding:56px 40px;text-align:center;color:#fff;
    position:relative;overflow:hidden;
  }
  .register-band h2{color:#fff;font-size:clamp(1.8rem,4vw,2.4rem);}
  .register-band p{color:#C7D2DB;max-width:480px;margin:14px auto 0;line-height:1.6;}
  .register-band .btn-primary{margin-top:28px;display:inline-block;}
  .register-form-wrap{
    background:#fff;border-radius:18px;margin-top:36px;overflow:hidden;
    max-width:640px;margin-left:auto;margin-right:auto;
  }
  .register-form-wrap iframe{
    width:100%;height:720px;border:none;display:block;
  }

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-deep);color:#B9C6D3;padding:48px 0 28px;}
  .footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;margin-bottom:36px;}
  .footer-brand{max-width:320px;}
  .footer-brand .brand span{color:#fff;}
  .footer-brand p{font-size:.88rem;line-height:1.6;margin-top:10px;color:#93A2AF;}
  .partner{font-family:'Fredoka';font-weight:600;color:#DDE4E9;font-size:.98rem;opacity:.85;}
  .partners{width:100%;overflow:hidden;background:#fff;border-radius:14px;padding:26px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
  .partners-track{display:flex;gap:56px;width:max-content;animation:sponsor-scroll 22s linear infinite;}
  .partner-logo{background:#fff;border-radius:10px;padding:0 12px;height:72px;display:flex;align-items:center;flex-shrink:0;}
  .partner-logo img{height:100%;width:auto;max-width:260px;object-fit:contain;display:block;}
  .partners .partner{color:#3A4A57;opacity:1;font-size:1.1rem;}
  @keyframes sponsor-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:.82rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#7C8B98;}

  @media (max-width:760px){
    nav.links{position:fixed;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;
      padding:18px 28px;border-bottom:1px solid var(--line);gap:16px;display:none;}
    nav.links.open{display:flex;}
    .menu-toggle{display:block;}
    .nav-cta{display:none;}
    .venue-grid{grid-template-columns:1fr;}
    .talk-row,.plain-row,.break-row{grid-template-columns:1fr;gap:4px;}
    .talk-time{font-size:.82rem;color:var(--slate);}
    .keynote{grid-template-columns:1fr;}
    .keynote .kn-photo{width:100px;height:100px;order:-1;}
  }

/* ---------- extra responsive ---------- */
img{max-width:100%;}
@media (max-width:1024px){
  .wrap{padding-left:24px;padding-right:24px;}
}
@media (max-width:760px){
  .brand span{font-size:.85rem;line-height:1.2;}
  .hero-inner{padding:44px 20px 0;}
  .hero .kicker{font-size:.98rem;}
  .hero-actions{flex-direction:column;align-items:stretch;}
  .hero-actions a{text-align:center;}
  .day-tabs{display:grid;grid-template-columns:1fr;}
  .register-band{padding:36px 20px;border-radius:18px;}
  .speaker-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center;}
}
@media (max-width:420px){
  .speaker-grid{grid-template-columns:1fr;}
  .brand span{font-size:.78rem;}
}
