/**
 * PST2026 Block Render Styles
 * Auto-generated from block render.php files
 * Generated: 2026-02-27 09:54:35
 * 
 * Blocks included: contact-form, contact-information, download-attachment, hero-home, organizing-committees, pricing-card, schedule-tabs, speakers-grid, speakers-scroll, sponsors, speaker-popup, hero-image
 * Dynamic blocks (kept inline): auto-tab-parallax, hero-home, image-popup
 */

/* === Block: contact-form === */
.contact-form-block input:focus,
    .contact-form-block textarea:focus,
    .contact-form-block select:focus {
        box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.1);
    }

    .select-wrapper {
        position: relative;
    }

    .select-wrapper select {
        padding-right: 2.5rem;
    }

    .select-arrow {
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        pointer-events: none;
        transition: transform 0.2s ease;
    }

    .select-wrapper select:focus + .select-arrow {
        transform: translateY(-50%) rotate(180deg);
    }

    .select-wrapper select:hover + .select-arrow svg {
        color: #0d9488;
    }

    .select-wrapper select option {
        padding: 10px;
        background-color: white;
    }

    .select-wrapper select option:hover {
        background-color: #f0fdfa;
    }

    .submit-btn:disabled {
        opacity: 0.7;
        cursor: not-allowed;
    }

    @keyframes spin {
        to {
            transform: rotate(360deg);
        }
    }

    .spinner {
        animation: spin 1s linear infinite;
    }

    .spinner.hidden {
        display: none !important;
    }

/* === Block: contact-information === */
.contact-info-card {
            animation: fadeIn 0.3s ease-in-out;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .contact-information-block a[href^="mailto:"] {
            text-decoration: none;
            transition: color 0.3s ease;
        }

        .contact-information-block a[href^="mailto:"]:hover {
            text-decoration: underline;
        }

/* === Block: download-attachment === */
.attachment-card {
            animation: fadeIn 0.3s ease-in-out;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .line-clamp-2 {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .download-attachment-block a[download]:hover {
            text-decoration: none;
        }

/* === Block: hero-home === */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-20px);
    }
}

@keyframes floatParticle {
    0% {
        transform: translateY(100vh) translateX(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        transform: translateY(-100vh) translateX(100px) rotate(360deg);
        opacity: 0;
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

@keyframes shimmer {
    0% {
        background-position: -1000px 0;
    }
    100% {
        background-position: 1000px 0;
    }
}

@keyframes moleculeOrbit {
    0% {
        transform: rotate(0deg) translateX(40px) rotate(0deg);
    }
    100% {
        transform: rotate(360deg) translateX(40px) rotate(-360deg);
    }
}

@keyframes proteinFold {
    0%, 100% {
        transform: translateX(0) translateY(0) rotate(0deg);
    }
    25% {
        transform: translateX(10px) translateY(-5px) rotate(5deg);
    }
    50% {
        transform: translateX(0) translateY(-10px) rotate(0deg);
    }
    75% {
        transform: translateX(-10px) translateY(-5px) rotate(-5deg);
    }
}

@keyframes bondPulse {
    0%, 100% {
        opacity: 0.15;
        stroke-width: 0.5;
    }
    50% {
        opacity: 0.25;
        stroke-width: 1;
    }
}

@keyframes helixRotate {
    0% {
        transform: rotateY(0deg);
    }
    100% {
        transform: rotateY(360deg);
    }
}

@keyframes membraneWave {
    0%, 100% {
        d: path('M0,50 Q25,40 50,50 T100,50 T150,50 T200,50');
    }
    50% {
        d: path('M0,50 Q25,60 50,50 T100,50 T150,50 T200,50');
    }
}

@keyframes ribosomeMove {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(100px);
    }
}

@keyframes rotate3D {
    0% {
        transform: rotateX(0deg) rotateY(0deg);
    }
    100% {
        transform: rotateX(360deg) rotateY(360deg);
    }
}

@keyframes helixSpin {
    0% {
        transform: rotateY(0deg) rotateX(15deg);
    }
    100% {
        transform: rotateY(360deg) rotateX(15deg);
    }
}

@keyframes floatBubble {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-20px) scale(1.05);
    }
}

@keyframes chromosomePulse {
    0%, 100% {
        transform: scale(1);
        filter: brightness(1);
    }
    50% {
        transform: scale(1.02);
        filter: brightness(1.1);
    }
}

@keyframes sparkleFloat {
    0% {
        opacity: 0;
        transform: translateY(0) scale(0);
    }
    10% {
        opacity: 1;
        transform: translateY(-20px) scale(1);
    }
    90% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translateY(-100vh) scale(0.5);
    }
}

@keyframes shimmerMove {
    0% {
        background-position: -200% 0;
    }
    50% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

@keyframes glowPulse {
    0%, 100% {
        opacity: 0.3;
    }
    50% {
        opacity: 0.6;
    }
}

/* Mobile background coverage fix */
.hero-home-block .bg-image-cover {
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
    .hero-home-block .bg-image-cover {
        min-width: 120%;
        min-height: 120%;
        transform: translate(-50%, -50%) scale(1.3);
    }
}

@media (max-width: 640px) {
    .hero-home-block .bg-image-cover {
        min-width: 130%;
        min-height: 130%;
        transform: translate(-50%, -50%) scale(1.4);
    }
}

/* Sparkling glow effect */
.hero-home-block .sparkle-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.hero-home-block .sparkle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: white;
    border-radius: 50%;
    box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.8),
                0 0 20px 4px rgba(255, 255, 255, 0.4),
                0 0 30px 6px rgba(255, 255, 255, 0.2);
    animation: sparkleFloat linear infinite;
    opacity: 0;
}

.hero-home-block .shimmer-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        45deg,
        transparent 0%,
        transparent 40%,
        rgba(255, 255, 255, 0.1) 50%,
        transparent 60%,
        transparent 100%
    );
    background-size: 200% 200%;
    animation: shimmerMove 8s ease-in-out infinite;
    pointer-events: none;
}

.hero-home-block .glow-pulse {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        circle at var(--glow-x, 50%) var(--glow-y, 50%),
        rgba(255, 255, 255, 0.15) 0%,
        transparent 50%
    );
    animation: glowPulse 4s ease-in-out infinite;
    pointer-events: none;
}

.hero-home-block .particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    pointer-events: none;
}

.hero-home-block .hero-content > * {
    opacity: 0;
}

.hero-home-block.animated .hero-edition {
    animation: fadeInDown 0.8s ease-out 0.2s forwards;
}

.hero-home-block.animated .hero-title {
    animation: fadeInUp 1s ease-out 0.4s forwards, titleLightDark 3s ease-in-out 1.4s infinite;
    color: #f0fffd;
}

/* Subtitle: silver metallic gradient base */
.hero-home-block .hero-subtitle {
    background: linear-gradient(
        105deg,
        #9ecece 0%,
        #d8f2f0 15%,
        #ffffff 28%,
        #e4f6f5 40%,
        #a8d8d6 55%,
        #d0edec 68%,
        #ffffff 78%,
        #9ecece 100%
    );
    background-size: 300% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-home-block.animated .hero-subtitle {
    animation: fadeInUp 1s ease-out 0.6s forwards, silverLightSweep 5s linear 1.6s infinite;
}

.hero-home-block.animated .hero-description {
    animation: fadeInUp 1s ease-out 0.8s forwards;
}

.hero-home-block.animated .hero-date-venue {
    animation: scaleIn 0.8s ease-out 1s forwards;
}

/* Animation auto zoom in-out scale for date-venue badge */
.hero-date-venue-button {
    animation: subtitleScalePop 3s ease-in-out infinite;
}

/* Main Title: light-dark oscillation */
@keyframes titleLightDark {
    0%, 100% {
        color: #f0fffd;
        filter: drop-shadow(0 0 22px rgba(255,255,255,0.75)) drop-shadow(0 4px 8px rgba(0,0,0,0.25));
    }
    50% {
        color: #0a1f1f;
        filter: drop-shadow(0 0 6px rgba(14,116,144,0.75)) drop-shadow(0 0px 6px rgba(255, 255, 255, 0.55));
    }
}

/* Subtitle: scale pop */
@keyframes subtitleScalePop {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Subtitle: silver light sweep */
@keyframes silverLightSweep {
    0%   { background-position: -100% center; }
    100% { background-position: 300% center; }
}
";

/* === Block: organizing-committees === */
.committee-card {
            animation: fadeInUp 0.5s ease-in-out;
            animation-fill-mode: both;
        }

        .committee-card:nth-child(1) {
            animation-delay: 0.1s;
        }

        .committee-card:nth-child(2) {
            animation-delay: 0.2s;
        }

        .committee-card:nth-child(3) {
            animation-delay: 0.3s;
        }

        .committee-card:nth-child(n+4) {
            animation-delay: 0.4s;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .committee-card:hover {
            transform: translateY(-5px);
        }

/* === Block: pricing-card === */
@keyframes fadeIn {
            from {
                opacity: 0;
                transform: scale(0.95);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }
        .animate-in {
            animation: fadeIn 0.3s ease-in-out;
        }
        
        /* Early Bird Special Effects */
        .early-bird-price {
            position: relative;
            overflow: visible;
        }
        
        .early-bird-price::before {
            content: '';
            position: absolute;
            inset: -2px;
            z-index: -1;
            transition: opacity 0.3s ease;
            animation: shimmer 3s linear infinite;
            background-size: 200% 100%;
        }
        
        .early-bird-price:hover::before {
            opacity: 0.3;
        }
        
        @keyframes shimmer {
            0% {
                background-position: -200% 0;
            }
            100% {
                background-position: 200% 0;
            }
        }
        
        @keyframes pulse {
            0%, 100% {
                transform: scale(1);
            }
            50% {
                transform: scale(1.05);
            }
        }

/* === Block: schedule-tabs === */
.schedule-content h3:not(.text-3xl, .shortcode-speaker-card-title){
    font-size: 1.25rem;
    margin-bottom: 2rem;
    margin-top: 2rem;
    text-indent: 20px;
    font-weight: 500;
    color: #111827;
}

/* Scrollbar Styling for Tab Content */
.schedule-day {
    scrollbar-width: auto;
    scrollbar-color: #0f766e #f3f4f6;
}

.schedule-day::-webkit-scrollbar {
    width: 16px;
}

.schedule-day::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 10px;
}

.schedule-day::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #0f766e 0%, #059669 100%);
    border-radius: 10px;
    border: 2px solid #f3f4f6;
}

.schedule-day::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #0d5d57 0%, #047857 100%);
}

.schedule-accordion details {
    border-radius: 0.5rem;
    margin-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 0px 12px rgba(0,0,0,0.055);
    overflow: hidden;
    transition: all 0.3s ease;
}

.schedule-accordion details .collapse-content {
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
    opacity: 0;
    height: 0;
}

@media screen and (max-width: 770px) {
    .schedule-accordion details .collapse-content{
        padding-left: 0;
        padding-right: 0;
    }
    .schedule-day .day-title{
        font-size: 3rem;
        padding-left: 1rem;
    }
}

.schedule-accordion details[open] .collapse-content {
    opacity: 1;
}

.schedule-accordion details:hover {
    box-shadow: 0 0px 8px rgba(0,0,0,0.2);
}

.schedule-accordion details summary {
    padding: 1.25rem;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.4);
    color: #374151;
    font-weight: 600;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.schedule-accordion details summary::after {
    content: '';
    width: 20px;
    height: 20px;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="white" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    margin-left: auto;
    filter: invert(0.5);
}

.schedule-accordion details summary.no-content::after {
    display: none;
}

.schedule-accordion details summary::-webkit-details-marker {
    display: none;
}

.schedule-accordion details summary .time {
    font-size: 1rem;
    opacity: 0.9;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 140px;
}

.schedule-accordion details summary .time::before {
    content: '';
    width: 16px;
    height: 16px;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="white" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex-shrink: 0;
    filter: invert(1);
    transition: filter 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.schedule-accordion details summary .title {
    flex: 1;
    font-size: 1.1rem;
}

.schedule-accordion details[open] summary {
    background: linear-gradient(135deg, #0f766e 0%, #059669 100%);
    color: white;
}

.schedule-accordion details.break[open] summary {
    background: #48bb78;
    color: white;
}

@media screen and (max-width: 770px) {
    .schedule-accordion details.keynote[open] .collapse-content{
        overflow: visible;
    }
    .schedule-accordion details.keynote[open] summary .title{
        display: none;
    }
    .schedule-accordion details.keynote[open] .speaker-card{
        margin-top: -105px;
        background: none;
    }
    .schedule-accordion details.keynote .speaker-card:focus{
        border: none;
        outline: none;
    }
    .schedule-accordion details.keynote[open] .speaker-card .speaker-image-column{
        align-items: end;
        justify-content: end;
        width: 90%;
    }
    .schedule-accordion details[open] .speaker-card .shortcode-speaker-card-title{
        margin-top: 0;
    }
    .schedule-accordion details[open] .speaker-card:hover{
        box-shadow: none;
    }
}

.schedule-accordion details[open] summary::after {
    transform: rotate(180deg);
    filter: invert(0);
}

.schedule-accordion details[open] summary .time::before {
    filter: invert(0);
}

@media screen and (max-width: 770px) {
    .schedule-accordion details summary:not(.no-content) {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    .schedule-accordion details summary .time {
        min-width: auto;
    }
    .schedule-accordion details summary .title{
        font-size: 1rem;
        font-weight: 500;
        color: #0f766e;
    }
    .schedule-accordion details[open] summary .title{
        font-weight: 300;
        color: #fbffed;
    }
    .schedule-accordion details[open] summary::after,
    .schedule-accordion details summary::after {
        flex-direction: row;
        position: absolute;
        top: 1rem;
        right: 1rem;
    }

}


.schedule-accordion details > div {
    padding: 1.25rem;
    color: #374151;
}
.schedule-accordion details .collapse-content{
    background: rgba(255, 255, 255, 0.6);

}

.schedule-accordion details > div p {
    margin-bottom: 0.75rem;
    line-height: 1.6;
}

.schedule-accordion details > div p:last-child {
    margin-bottom: 0;
}

.expand-collapse-buttons {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
    align-items: center;
}

.search-box-wrapper {
    position: relative;
    max-width: 400px;
}

.schedule-search-input {
    flex: 1;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
    background: white;
    width: 100%;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/></svg>');
    background-position: left 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1rem;
    padding-left: 2.5rem;
}

.schedule-search-input:focus {
    outline: none;
    border-color: #0f766e;
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1);
}

.schedule-search-input::placeholder {
    color: #9ca3af;
}

.clear-search-btn {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.25rem;
    transition: all 0.2s ease;
}

.clear-search-btn:hover {
    background: #f3f4f6;
    color: #374151;
}

.schedule-accordion details.search-hidden {
    display: none;
}

.schedule-accordion details.search-match {
    animation: highlightMatch 0.3s ease;
}

@keyframes highlightMatch {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.01); box-shadow: 0 4px 12px rgba(15, 118, 110, 0.2); }
}

.schedule-accordion mark {
    background-color: #fef08a;
    color: inherit;
    padding: 0.125rem 0.25rem;
    border-radius: 0.125rem;
    font-weight: 600;
}

.expand-all-btn, .collapse-all-btn {
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    border: none;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
}

.expand-all-btn {
    background: linear-gradient(135deg, #0f766e 0%, #059669 100%);
    color: white;
}

.expand-all-btn:hover {
    background: linear-gradient(135deg, #0d5d57 0%, #047857 100%);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.collapse-all-btn {
    background: #9ca3af;
    color: white;
}

.collapse-all-btn:hover {
    background: #6b7280;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.schedule-accordion details .speaker {
    padding: 10px; 
    border-radius: 4px; 
    margin-bottom: 12px; 
    font-size: 13px; 
    font-weight: 500;
}
.schedule-accordion details .room {
    padding: 10px; 
    background-color: oklch(0.982 0.018 155.826004); 
    border-radius: 4px; 
    margin-bottom: 12px; 
    color: oklch(0.627 0.194 149.214005);
}

.schedule-accordion details .room.room2{
    background-color: oklch(0.953 0.051 180.800995);
    color: oklch(0.6 0.118 184.703995);;
}
.schedule-accordion details .room p,
.schedule-accordion details .room strong{
    font-size: 16px; 
    font-weight: 700;
}

.schedule-accordion details .presentation{
    padding: 10px; 
    background-color: rgb(233, 243, 255); 
    border-radius: 4px; 
    margin-bottom: 12px; 
    color: rgb(13, 60, 97);
    font-size: 13px; 
    font-weight: 500;
}
.schedule-accordion details ul li{
    margin-bottom: 6px;
}
.schedule-accordion details .collapse-content{
    height: auto!important;
}
.schedule-accordion details .collapse-content > div{
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    padding: 1.25rem;
}

.schedule-accordion details .collapse-content .wp-block-columns{
    width: 100%;
}
.schedule-accordion details .collapse-content figure {
    width: 120px;
    height: 120px;
    overflow: hidden;
    margin: 0;
    border-radius: 50%;
    flex-shrink: 0;
}
.schedule-accordion details .collapse-content figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;

}

/* Expand/Collapse button styling for mobile */
.expand-all-btn,
.collapse-all-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
}

.expand-all-btn svg,
.collapse-all-btn svg {
    min-width: 18px;
    min-height: 18px;
}

/* Mobile responsive button padding */
@media (max-width: 639px) {
    .expand-all-btn,
    .collapse-all-btn {
        padding: 0.5rem 0.5rem !important;
    }
}

/* === Block: speakers-grid === */
.day-tab.active {
    color: #0f766e;
    border-bottom-color: #0f766e;
    font-weight: 600;
}

.day-tab:focus {
    outline: 2px solid #14b8a6;
    outline-offset: 2px;
}

.tab-content {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Parallax Styles */

/* Smooth scrolling for day navigation */
html {
    scroll-behavior: smooth;
}

.day-section {
    scroll-margin-top: 120px; /* Account for fixed header */
}

/* Enhanced tab hover effects */
.day-tab {
    transition: all 0.3s ease;
    position: relative;
}

.day-tab::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 50%;
    width: 0;
    height: 2px;
    background-color: #0f766e;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.day-tab:hover::after {
    width: 100%;
}

.day-tab.active::after {
    width: 100%;
}

.parallax-float {
    will-change: transform;
    transition: transform 0.1s ease-out;
}

/* Hide scrollbar for tabs navigation */
.scrollbar-hide {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
    display: none;  /* Chrome, Safari and Opera */
}
/* Sticky tabs appearance */
.tabs-navbar {
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}
.tabs-navbar.sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    top: 80px;
}
.admin-bar .tabs-navbar.sticky {
    top: 115px; /* Account for admin bar */
}

@media screen and (max-width: 768px) {
    .day-section {
        scroll-margin-top: 80px;
    }
    .tabs-navbar.sticky {
        top: 88px;
    }
    .admin-bar .tabs-navbar.sticky {
        top: 120px;
    }
}
@media screen and (min-width: 768px) {
    .tabs-navbar.sticky {
        top: 0;
        transition: top 0.18s ease-out;
    }
    .admin-bar .tabs-navbar.sticky {
        top: 32px;
    }
    .admin-bar.header-scrolling .tabs-navbar.sticky {
        top: 115px;
    }
    .header-scrolling .tabs-navbar.sticky {
        top: 82px;
    }
}

/* === Block: speakers-scroll === */
/* Scrollbar Styling for Speakers Scroll Container */
.speakers-scroll-container {
    scrollbar-width: auto;
    scrollbar-color: #0f766e #f3f4f6;
    border-bottom: 2px solid #e5e7eb;
    position: relative;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: auto;
    overflow-anchor: none;
}

.speakers-scroll-container::-webkit-scrollbar {
    height: 16px;
}

.speakers-scroll-container::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 10px;
    margin-bottom: 2px;
}

.speakers-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, #0f766e 0%, #059669 100%);
    border-radius: 10px;
    border: 2px solid #f3f4f6;
}

.speakers-scroll-container::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(90deg, #0d5d57 0%, #047857 100%);
}

/* Modal scrollbar styling */
#speaker-modal-content {
    scrollbar-width: auto;
    scrollbar-color: #0f766e #f0f0f0;
}

#speaker-modal-content::-webkit-scrollbar {
    width: 16px;
}

#speaker-modal-content::-webkit-scrollbar-track {
    background: #f0f0f0;
    border-radius: 10px;
}

#speaker-modal-content::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #0f766e 0%, #059669 100%);
    border-radius: 10px;
    border: 2px solid #f0f0f0;
}

#speaker-modal-content::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #0d5d57 0%, #047857 100%);
}

/* === Block: sponsors === */
/* tooltip */
    .sponsor-card {
        position: relative;
    }
    .sponsor-card .sponsor-tooltip {
        position: absolute;
    }
    .sponsor-card:hover .sponsor-tooltip {
        opacity: 1;
    }

    @media screen and (min-width: 1024px) {

        /* Platinum sponsors */
        .sponsor-card.sponsor-id-142 img {
            min-height: 300px;
        }
        .sponsor-card.sponsor-id-769 img{
            max-width: 100px;
        }
        .sponsor-card.sponsor-id-771 img {
            max-width: 110px;
        }
        .sponsor-card.sponsor-id-751 img,
        .sponsor-card.sponsor-id-766 img{
            min-height: 65px;
        }
        .sponsor-card.sponsor-id-766 img{
            min-height: 55px;
        }
        /* Gold sponsors */
        /* Bio-Rad Laboratories Ltd. (Thailand) */
        .sponsor-card.sponsor-id-747 img {
            max-width: 200px;
        }
        /* Silver sponsors */
        /* S.N.P. Scientific Co., Ltd. */
        .sponsor-card.sponsor-id-153 img {
            max-width: 90px;
        }
    }
    /* Gold sponsors */
    /* Genomax Technologies Co., Ltd. */
    .sponsor-card.sponsor-id-745 img,
    /* Gold sponsors */
    /* World Tech Enterprise Ltd. */
    .sponsor-card.sponsor-id-148 img {
        min-height: 110px;
    }
    /* Gold sponsors */
    /* World Tech Enterprise Ltd. */
    .sponsor-card.sponsor-id-148 img {
        min-width: 150px;
    }
    @media screen and (max-width: 770px) {
        .sponsor-card img {
            max-width: 100%!important;
            max-height: auto!important; 
            min-height: auto!important;
            min-width: auto!important;
        }
        /* DKSH Technology Limited */
        .sponsor-card.sponsor-id-145 img,
        /* Gibthai Co., Ltd. */
        .sponsor-card.sponsor-id-146 img{
            max-width: 110%!important;
            min-height: 50px!important;
        }
        /* Bang Trading 1992 Co., Ltd. */
        .sponsor-card.sponsor-id-142 img {
            min-height: 300px!important;
            max-width: auto!important;
        }
    }

/* === Block: speaker-popup === */
/* Modal scrollbar styling */
    #speaker-modal-content {
        scrollbar-width: auto;
        scrollbar-color: #0f766e #f0f0f0;
    }

    #speaker-modal-content::-webkit-scrollbar {
        width: 16px;
    }

    #speaker-modal-content::-webkit-scrollbar-track {
        background: #f0f0f0;
        border-radius: 10px;
    }

    #speaker-modal-content::-webkit-scrollbar-thumb {
        background: linear-gradient(180deg, #0f766e 0%, #059669 100%);
        border-radius: 10px;
        border: 2px solid #f0f0f0;
    }

    #speaker-modal-content::-webkit-scrollbar-thumb:hover {
        background: linear-gradient(180deg, #0d5d57 0%, #047857 100%);
    }
    
    /* Modal loader animations */
    #modal-loader.fade-in {
        opacity: 1;
        visibility: visible;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    #modal-loader.fade-out {
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    .loader-spinner-modal {
        position: relative;
        width: 60px;
        height: 60px;
    }
    
    .loader-ring-modal {
        position: absolute;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        border: 3px solid transparent;
        border-top-color: #0f766e;
        animation: spin-modal 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    }
    
    .loader-ring-modal:nth-child(1) {
        animation-delay: -0.45s;
    }
    
    .loader-ring-modal:nth-child(2) {
        width: 80%;
        height: 80%;
        top: 10%;
        left: 10%;
        border-top-color: #059669;
        animation-delay: -0.3s;
    }
    
    .loader-ring-modal:nth-child(3) {
        width: 60%;
        height: 60%;
        top: 20%;
        left: 20%;
        border-top-color: #10b981;
        animation-delay: -0.15s;
    }
    
    @keyframes spin-modal {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }

    /* Modal content transition when switching speakers */
    #speaker-modal-content {
        transition: opacity 0.25s ease, transform 0.25s ease;
        will-change: opacity, transform;
    }
    #speaker-modal-content.modal-content-out {
        opacity: 0;
        transform: scale(0.97) translateY(8px);
    }

/* === Block: hero-image === */
.pst2026-hero-section { overflow: hidden; }

        /* Circular wave ripples */
        .pst2026-hero-waves {
            position: absolute;
            inset: 0;
            z-index: 2;
            pointer-events: none;
        }
        .pst2026-hero-wave {
            position: absolute;
            top: 0%;
            left: 0%;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            transform: translate(-50%, -50%) scale(0);
            border: 2px solid rgba(255,255,255,0.15);
            box-shadow: 0 0 30px 4px rgba(45,212,191,0.25),
                        inset 0 0 20px 2px rgba(16,185,129,0.15);
            animation: pst2026-wave-ripple 6s ease-out infinite;
        }
        .pst2026-hero-wave:nth-child(2) { animation-delay: 1.5s; }
        .pst2026-hero-wave:nth-child(3) { animation-delay: 3s; }
        .pst2026-hero-wave:nth-child(4) { animation-delay: 4.5s; }

        @keyframes pst2026-wave-ripple {
            0% {
                transform: translate(-50%, -50%) scale(0);
                opacity: 0.9;
                border-width: 3px;
            }
            50% {
                opacity: 0.4;
            }
            100% {
                transform: translate(-50%, -50%) scale(60);
                opacity: 0;
                border-width: 0.5px;
            }
        }

        /* Bright glow pulse at center */
        .pst2026-hero-glow {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 200px;
            height: 200px;
            transform: translate(-50%, -50%);
            border-radius: 50%;
            background: radial-gradient(circle, rgba(45,212,191,0.30) 0%, rgba(16,185,129,0.10) 40%, transparent 70%);
            z-index: 2;
            pointer-events: none;
            animation: pst2026-glow-pulse 4s ease-in-out infinite;
            filter: blur(10px);
        }

        @keyframes pst2026-glow-pulse {
            0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; }
            50%      { transform: translate(-50%, -50%) scale(2.5); opacity: 1; }
        }

        /* Brightness filter sweep */
        .pst2026-hero-brightness {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.08) 50%, transparent 60%);
            background-size: 300% 300%;
            animation: pst2026-bright-sweep 8s ease-in-out infinite;
        }

        @keyframes pst2026-bright-sweep {
            0%   { background-position: 100% 100%; }
            50%  { background-position: 0% 0%; }
            100% { background-position: 100% 100%; }
        }
