:root{
    --ink:#111111;
    --white:#FAF9F6;
    --lavender:hsl(206, 100%, 55%);
    --lavender-soft:hsl(206, 100%, 95%);
    --gray:#6B6B6B;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body{
    font-family:'Inter', sans-serif;
    background:var(--white);
    background-image:radial-gradient(circle, rgba(17,17,17,0.09) 1px, transparent 1px);
    background-size:24px 24px;
    color:var(--ink);
    line-height:1.6;
}
h1,h2,h3,h4{
    font-family:'Inter', sans-serif;
    font-weight:700;
    line-height:1.1;
    letter-spacing:-0.01em;
}
a{ color:inherit; }
section{ padding:100px 40px; max-width:1200px; margin:0 auto; position:relative; }
.band{ position:relative; }
.band::before{
    content:"";
    position:absolute;
    top:0; left:50%;
    width:100vw;
    height:100%;
    transform:translateX(-50%);
    z-index:-1;
}
.band-lavender::before{
    background-color:var(--lavender-soft);
    background-image:radial-gradient(circle, rgba(17,17,17,0.13) 1px, transparent 1px);
    background-size:24px 24px;
}
.band-soft::before{
    background-color:var(--lavender-soft);
    background-image:radial-gradient(circle, rgba(17,17,17,0.11) 1px, transparent 1px);
    background-size:24px 24px;
}

.eyebrow{
    font-family:'Inter', sans-serif;
    font-weight:700;
    font-size:0.8rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gray);
    margin-bottom:16px;
}

/* ---------- NAV ---------- */
.navbar{
    position:sticky;
    top:0;
    z-index:100;
    background:var(--white);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:22px 40px;
    border-bottom:1px solid #EDEDED;
}
.nav-logo{
    font-family:'Inter', sans-serif;
    font-weight:700;
    font-size:1.1rem;
}
.nav-links{
    display:flex;
    gap:32px;
    list-style:none;
}
.nav-links a{
    font-size:0.92rem;
    font-weight:500;
    text-decoration:none;
    color:var(--ink);
}
.nav-links a:hover{ color:var(--gray); }
.nav-cta{
    background:var(--lavender-soft);
    color:var(--ink);
    border:1px solid var(--ink);
    border-radius:20px;
    padding:9px 22px;
    font-size:0.88rem;
    font-weight:600;
    text-decoration:none;
}
.nav-cta:hover{ background:var(--lavender); color:var(--white); }
.nav-toggle{ display:none; }
.mobile-menu{
    display:none;
    flex-direction:column;
    background:var(--white);
    border-bottom:1px solid #EDEDED;
    padding:8px 40px 20px;
}
.mobile-menu a{
    text-decoration:none;
    color:var(--ink);
    font-weight:500;
    padding:12px 0;
    border-bottom:1px solid #F0F0F0;
}
.mobile-menu.open{ display:flex; }
@media (max-width:820px){
    .nav-links, .nav-cta{ display:none; }
    .nav-toggle{ display:block; background:none; border:none; font-size:1.4rem; cursor:pointer; }
}

/* ---------- HERO ---------- */
.hero{
    text-align:center;
    padding:24px;
    min-height:70vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}
.hero > *{
    opacity:0;
    transform:translateY(16px);
    animation:hero-fade-up 0.6s ease forwards;
}
.hero-eyebrow{ animation-delay:0.05s; }
.hero-title{ animation-delay:0.15s; }
.hero-tagline{ animation-delay:0.3s; }
.hero-pills{ animation-delay:0.45s; }
.hero-cta{ animation-delay:0.6s; }
@keyframes hero-fade-up{
    to{ opacity:1; transform:translateY(0); }
}
.hero-title{
    font-size:clamp(3rem, 9vw, 6rem);
    margin-bottom:28px;
}
.hero-eyebrow{
    font-size:0.85rem;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gray);
    margin-bottom:18px;
}
.hero-tagline{
    font-size:1.2rem;
    color:#333;
    max-width:480px;
    margin:20px auto 28px;
}
.hero-pills{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:36px;
}
.hero-pill{
    background:var(--white);
    border:1px solid var(--ink);
    border-radius:24px;
    padding:9px 18px;
    font-size:0.88rem;
    font-weight:600;
}
.hero-cta{ margin-top:0; }
.hero-meta div{ margin-bottom:4px; }

/* ---------- SECTION TITLES ---------- */
.section-title{ font-size:3.2rem; margin-bottom:28px; }
.reveal-on-scroll{
    opacity:0;
    transform:translateY(24px);
    transition:opacity 0.6s ease, transform 0.6s ease;
}
.reveal-on-scroll.in-view{ opacity:1; transform:translateY(0); }
.title-underlined{
    position:relative;
    display:inline-block;
}
.hand-underline{
    display:block;
    width:100%;
    max-width:280px;
    height:16px;
    margin-top:2px;
}
.section-body{ max-width:680px; font-size:1.05rem; color:#333; text-wrap:pretty; }

/* ---------- OPTION / INFO CARDS ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:36px; }
.info-card{
    background:var(--white);
    border:1.5px solid var(--lavender);
    border-radius:14px;
    padding:24px;
}
.info-card h4{ font-size:1.1rem; margin-bottom:8px; }
.info-card p{ font-size:0.92rem; color:#333; margin-bottom:16px; }
.info-card-link{
    display:inline-block;
    font-size:0.88rem;
    font-weight:700;
    text-decoration:none;
    color:var(--ink);
    border-bottom:2px solid var(--lavender);
}
.info-card-link:hover{ color:var(--gray); }
.info-card .num{
    display:inline-flex; align-items:center; justify-content:center;
    width:30px; height:30px; border-radius:50%;
    background:var(--lavender); color:var(--white);
    font-family:'Inter', sans-serif; font-weight:700; font-size:0.9rem;
    margin-bottom:14px;
}
@media (max-width:760px){ .card-grid{ grid-template-columns:1fr; } }

/* ---------- SPEAKERS / JUDGES ---------- */
.people-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; margin-top:36px; }

/* ---------- STICKY SPEAKERS LAYOUT ---------- */
.sticky-section{
    display:flex;
    align-items:flex-start;
    gap:60px;
    max-width:1200px;
}
.sticky-title-col{
    flex:0 0 40%;
    position:sticky;
    top:110px;
}
.sticky-content-col{ flex:1; padding:40px 0 120px; }
.people-grid-sticky{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    row-gap:180px;
    column-gap:24px;
}
@media (max-width:760px){
    .sticky-section{ flex-direction:column; gap:24px; }
    .sticky-title-col{ position:static; flex:none; }
    .people-grid-sticky{ grid-template-columns:1fr; }
}
.person-card{ text-align:center; }
.person-card img{
    width:100%; aspect-ratio:1/1; object-fit:cover;
    border-radius:14px; margin-bottom:14px;
    border:2px solid var(--lavender);
}
.person-card h4{ font-size:1rem; margin-bottom:2px; }
.person-card h4 a{ text-decoration:none; }
.person-card h4 a:hover{ text-decoration:underline; }
.person-role{ font-size:0.85rem; color:var(--gray); }
@media (max-width:760px){ .people-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- WORKSHOPS ---------- */
.workshop-list{ display:flex; flex-direction:column; gap:0; margin-top:36px; }
.workshop-item{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:22px 0; border-bottom:1px solid rgba(17,17,17,0.15);
}
.workshop-item h4{ font-size:1.1rem; }
.workshop-item span{ font-size:0.9rem; color:var(--gray); white-space:nowrap; margin-left:20px; }

/* ---------- SESSIONS (dark workshop cards) ---------- */
.band-dark{
    position:relative;
    padding:100px 40px;
    max-width:100vw;
    margin-left:calc(-50vw + 50%);
    margin-right:calc(-50vw + 50%);
    width:100vw;
    background:linear-gradient(160deg, #EDEAFB 0%, #E4E4E4 100%);
    background-image:
        radial-gradient(circle, rgba(17,17,17,0.07) 1px, transparent 1px),
        linear-gradient(160deg, #EDEAFB 0%, #E4E4E4 100%);
    background-size:24px 24px, 100% 100%;
}
.dark-title{ color:var(--ink); max-width:1200px; margin-left:auto; margin-right:auto; }
.workshop-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:28px;
    max-width:1200px;
    margin:0 auto;
}
.workshop-card{
    background:var(--white);
    border:1.5px solid var(--lavender);
    border-radius:18px;
    padding:28px;
    transition:box-shadow 0.25s ease, transform 0.15s ease;
    cursor:pointer;
}
.workshop-card:hover{
    box-shadow:0 8px 24px hsla(206, 100%, 55%, 0.35);
    transform:translateY(-3px);
}
.workshop-card:active{
    box-shadow:0 4px 14px hsla(206, 100%, 45%, 0.5);
    transform:translateY(-1px);
}
.workshop-datebar{
    display:inline-block;
    background:var(--lavender-soft);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-weight:700;
    font-size:0.78rem;
    letter-spacing:0.03em;
    padding:8px 16px;
    border-radius:10px;
    margin-bottom:20px;
}
.workshop-speaker-box{
    display:flex;
    align-items:center;
    gap:14px;
    background:#F2F2F2;
    border-radius:12px;
    padding:12px;
    margin-bottom:24px;
}
.workshop-speaker-box img{
    width:56px; height:56px;
    border-radius:8px;
    object-fit:cover;
    flex-shrink:0;
}
.workshop-speaker-info h5{ color:var(--ink); font-size:0.95rem; margin-bottom:2px; }
.workshop-speaker-info p{ color:var(--gray); font-size:0.82rem; }
.workshop-title{ color:var(--ink); font-size:1.5rem; margin-bottom:14px; line-height:1.2; }
.workshop-desc{ color:#333; font-size:0.95rem; line-height:1.6; }
@media (max-width:760px){
    .workshop-grid{ grid-template-columns:1fr; }
    .band-dark{ padding:70px 20px; }
}

/* ---------- SPONSORS ---------- */
.sponsor-rows{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:36px;
    margin-top:36px;
}
.sponsor-row-line{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:48px;
}
.sponsor-row-line img{
    max-width:100%;
    width:550px;
    height:auto;
    object-fit:contain;
}
@media (max-width:700px){
    .sponsor-row-line img{ width:100%; }
}
.sponsor-strip{
    padding:10px 0 30px;
    max-width:100vw;
    margin-left:calc(-50vw + 50%);
    margin-right:calc(-50vw + 50%);
    width:100vw;
}
.sponsor-carousel-wrap{
    position:relative;
    overflow:hidden;
    width:100%;
    margin-top:16px;
    -webkit-mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.sponsor-carousel-track{
    display:flex;
    align-items:center;
    gap:64px;
    width:max-content;
    animation:sponsor-scroll 28s linear infinite;
}
.sponsor-carousel-wrap:hover .sponsor-carousel-track{ animation-play-state:paused; }
.sponsor-carousel-track img{ max-height:48px; width:auto; opacity:0.8; transition:opacity 0.2s ease; }
.sponsor-carousel-track img:hover{ opacity:1; }
@keyframes sponsor-scroll{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
}

/* ---------- AGENDA (dark full-bleed, checkered texture) ---------- */
.band-dark2{
    position:relative;
    padding:100px 40px;
    max-width:100vw;
    margin-left:calc(-50vw + 50%);
    margin-right:calc(-50vw + 50%);
    width:100vw;
    background-color:var(--white);
    background-image:radial-gradient(circle, rgba(17,17,17,0.09) 1px, transparent 1px);
    background-size:24px 24px;
}
.agenda-dark-title{ color:var(--ink); max-width:1200px; margin:0 auto 8px; }
.day-tabs{ display:flex; gap:10px; margin:0 auto 32px; max-width:1200px; }
.day-tab-pill{
    border:1px solid var(--ink); background:var(--white); color:var(--ink);
    padding:9px 20px; border-radius:20px 20px 0 0;
    font-family:'Inter', sans-serif; font-weight:600; font-size:0.85rem;
    cursor:pointer;
}
.day-tab-pill.active{ background:var(--lavender); color:#fff; border-color:var(--ink); }
.day-panel{ display:none; max-width:1200px; margin:0 auto; }
.day-panel.active{ display:block; }
.agenda-row{
    display:flex;
    align-items:center;
    gap:32px;
    background:var(--white);
    border-left:4px solid var(--lavender);
    border-radius:10px;
    padding:20px 28px;
    margin-bottom:16px;
    box-shadow:0 2px 10px rgba(17,17,17,0.08);
    transition:box-shadow 0.15s ease;
}
.agenda-row:hover{
    box-shadow:0 4px 16px rgba(17,17,17,0.14);
}
.agenda-time{
    background:var(--lavender);
    color:#fff;
    font-size:0.85rem;
    font-weight:700;
    padding:8px 16px;
    border-radius:10px;
    white-space:nowrap;
    flex-shrink:0;
}
.agenda-main h4{ color:var(--ink); font-size:1.15rem; font-weight:600; }
.parallel-tag{
    display:inline-block; font-size:0.68rem;
    background:var(--lavender); color:#fff;
    padding:2px 10px; border-radius:10px; margin-left:8px; font-weight:600;
}
@media (max-width:700px){
    .agenda-row{ flex-direction:column; align-items:flex-start; gap:8px; }
    .band-dark2{ padding:60px 20px; }
}

/* ---------- FAQ ---------- */
.faq-item{ border-bottom:1px solid rgba(17,17,17,0.15); }
.faq-question{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:none;
    border:none;
    text-align:left;
    font-family:'Inter', sans-serif;
    font-size:1.05rem;
    font-weight:600;
    color:var(--ink);
    padding:22px 0;
    cursor:pointer;
}
.faq-icon{
    font-size:1.3rem;
    transition:transform 0.2s ease;
    flex-shrink:0;
    margin-left:16px;
}
.faq-item.open .faq-icon{ transform:rotate(180deg); }
.faq-answer{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.25s ease, padding 0.25s ease;
}
.faq-item.open .faq-answer{ max-height:200px; padding-bottom:22px; }
.faq-answer p{ color:#333; font-size:0.95rem; }

/* ---------- REGISTER / CONTACT ---------- */
.register-section{ text-align:center; }
.btn-primary{
    display:inline-block;
    background:var(--lavender);
    color:var(--white);
    border:1px solid var(--ink);
    border-radius:26px;
    padding:16px 36px;
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:1rem;
    text-decoration:none;
    margin-top:20px;
}
.btn-primary:hover{ background:hsl(206, 100%, 45%); }
footer{
    text-align:center; padding:50px 24px; font-size:0.85rem; color:var(--gray);
    border-top:1px solid #EDEDED;
}
footer a{ color:var(--ink); font-weight:600; text-decoration:none; }