body {
    background-color: #111318;
    color: #e2e2e8;
    overflow-x: hidden;
}

.caution-tape {
    background: repeating-linear-gradient(-45deg,
            #ffd602,
            #ffd602 20px,
            #111318 20px,
            #111318 40px);
}
.bg-aquablue {
    background: linear-gradient(to bottom, #004f54 20%, transparent 70% );
}
.bg-aquablue-bottom {
    background: linear-gradient(to bottom, transparent 10%, #004f54 80% );
}
.hard-shadow {
    box-shadow: 8px 8px 0px 0px #ff5e07;
}

.yellow-shadow {
    box-shadow: 6px 6px 0 0 #ffd602;
}

.kinetic-shadow {
    box-shadow: 6px 6px 0 0 #7df4ff;
}

.poster-bg {
    background: radial-gradient(circle at top, #004f54 20%, transparent 90%);
}

.kinetic-text {
    color: currentColor;
}

@media (min-width: 640px) {
    .kinetic-text {
        -webkit-text-stroke: 1.5px currentColor;
        color: transparent;
    }
}

.text-glow-cyan {
    text-shadow: 0 0 30px rgba(0, 219, 233, 0.3);
}

.summit-stroke {
    -webkit-text-stroke: 2px #7df4ff;
}

@media (min-width: 640px) {
    .summit-stroke {
        -webkit-text-stroke: 3px #7df4ff;
    }
}

@media (min-width: 1280px) {
    .summit-stroke {
        -webkit-text-stroke: 4px #7df4ff;
    }
}

.panel-card {
    min-height: 200px;
    box-shadow: 6px 6px 0 0 #ffd602;
}

/* Speaker trio: 3 images split container evenly */
.speaker-trio {
    width: 50%;
}
.speaker-trio img {
    flex: 1 1 0;
    min-width: 0;
    width: 0;
    max-height: 100%;
    object-fit: contain;
    object-position: bottom right;
}

/* ── Speakers: auto height on mobile ── */
@media (max-width: 767px) {
    #speakers {
        height: auto;
        min-height: unset;
    }
    .speaker-card {
        flex: none;
        height: 7rem;
    }
    .speaker-trio {
        width: 100%;
    }
    .panel-card {
        min-height: 300px;
    }
}

/* ── Ticket sizing: smaller on mobile ── */
.ticket-number {
    font-size: 2.5rem;
}
@media (min-width: 768px) {
    .ticket-number {
        font-size: 6rem;
    }
}
.ticket-price {
    font-size: 1.875rem;
}
@media (min-width: 768px) {
    .ticket-price {
        font-size: 3rem;
    }
}

/* ── Mobile fullscreen menu ── */
#mobile-menu {
    z-index: 60;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform 0.3s ease-in-out, visibility 0s linear 0.3s;
}
#mobile-menu.is-open {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.3s ease-in-out, visibility 0s;
}
.mobile-nav-link:hover {
    color: rgb(125 244 255);
}

/* ── Hamburger button ── */
#hamburger-btn {
    gap: 5px;
}
.hamburger-bar {
    height: 3px;
    width: 1.5rem;
    background-color: rgb(226 226 232);
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Schedule column layout helpers */
.sched-time { width: 5rem; flex-shrink: 0; }
.sched-type { width: 8rem; flex-shrink: 0; }
.sched-rows > * + * { border-top: 1px solid #3b494b; }
.sched-accent {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    opacity: 0;
    transition: opacity 0.15s;
}
.group:hover .sched-accent { opacity: 1; }
#hamburger-btn.is-open .hamburger-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#hamburger-btn.is-open .hamburger-bar:nth-child(2) { opacity: 0; }
#hamburger-btn.is-open .hamburger-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
