:root {
    --brand-point: #46a5e6;
    --brand-point-rgb: 70, 165, 230;
    --brand-point-light: #f0f9ff;
    --brand-point-dark: #0284c7;
    --brand-xi-blue: #122d43;
    --brand-xi-blue-rgb: 18, 45, 67;
    --brand-xi-sky: #46a5e6;
    --brand-xi-gray: #d8d4cd;
}

/* Smooth Scroll Behavior */
html {
    scroll-behavior: smooth;
}

/* Base Typography Enlargement (20% enlargement for user readability) */
body {
    margin: 0 !important;
    padding-top: 0 !important;
    font-size: 1.25rem;
    letter-spacing: -0.015em;
}

header {
    top: 0 !important;
}

/* Base font-size utility overrides (+20%) */
.text-xs { font-size: 14.5px !important; }
.text-sm { font-size: 17px !important; }
.text-base { font-size: 19.5px !important; }
.text-lg { font-size: 21.5px !important; }
.text-xl { font-size: 24px !important; }
.text-2xl { font-size: 29px !important; }
.text-3xl { font-size: 36px !important; }
.text-4xl { font-size: 43px !important; }

.text-\[9px\] { font-size: 12px !important; }
.text-\[10px\] { font-size: 13px !important; }
.text-\[11px\] { font-size: 14.5px !important; }
.text-\[12px\] { font-size: 16px !important; }
.text-\[13px\] { font-size: 17.5px !important; }
.text-\[13\.5px\] { font-size: 18px !important; }
.text-\[14px\] { font-size: 18.5px !important; }
.text-\[15px\] { font-size: 20px !important; }
.text-\[16px\] { font-size: 21px !important; }
.text-\[17px\] { font-size: 22px !important; }

/* Slide Transition in Hero Carousel */
#hero-slider .slide {
    will-change: opacity;
}

/* Custom Text Fade effect */
.slide-text {
    will-change: opacity, transform;
}

/* Play button pulse overlay animation */
@keyframes pulsePlay {
    0% {
        box-shadow: 0 0 0 0 rgba(70, 165, 230, 0.6);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(70, 165, 230, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(70, 165, 230, 0);
    }
}
.facility-card:hover .w-14 {
    animation: pulsePlay 1.5s infinite;
}

/* CSS Modal animations */
@keyframes modalAppear {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
.animate-fade-in {
    animation: modalAppear 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Styling Scrollbars for Premium Look */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Custom styles for Notice details */
.markdown-body p {
    margin-bottom: 1.25rem;
    line-height: 1.8;
}
.markdown-body p:last-child {
    margin-bottom: 0;
}
.markdown-body strong {
    color: #0f172a;
    font-weight: 700;
}

/* Mobile View Optimizations for Spacing & Padding */
@media (max-width: 767px) {
    /* Mobile header phone button font-size (increased by 5% as requested) */
    header .phone-glow-btn .digit-wave {
        font-size: 1.10em !important;
        letter-spacing: -0.02em !important;
        line-height: 1.25 !important;
    }
    .wave-char.wave-dash {
        margin: 0 1px !important;
    }

    /* Mobile header Phone CTA button: 1px margin, compact padding */
    header a[data-cta="cta_call"][data-cta-position="header_mobile"] {
        margin: 1px !important;
        padding: 1px 7px !important;
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }

    /* Bottom floating CTA bar phone button: tight fit without empty lateral spacing */
    #scroll-floating-cta-bar .phone-glow-btn {
        flex: 1 1 0% !important;
        margin: 1px !important;
        padding: 4px 10px !important;
        white-space: nowrap !important;
    }
    #scroll-floating-cta-bar .phone-glow-btn .digit-wave {
        font-size: 1.35em !important;
        letter-spacing: -0.01em !important;
        line-height: 1.15 !important;
        font-weight: 900 !important;
    }

    /* Bottom floating CTA bar Reservation button: bright high-contrast styling matching Kakao text size */
    #scroll-floating-cta-bar a[data-cta-target="reservation_form"] {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        padding: 3px 8px !important;
        margin: 1px !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        white-space: nowrap !important;
    }

    /* Slim down bottom floating bar container vertical padding on mobile */
    #scroll-floating-cta-bar > div {
        padding-top: 2px !important;
        padding-bottom: 2px !important;
    }

    /* Set body padding (zero top padding to keep header flush with window top) */
    body {
        padding-top: 0 !important;
        margin-top: 0 !important;
        padding-bottom: 2px !important;
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    /* Container padding adjustments */
    .max-w-7xl, .max-w-\[92rem\], .container, .mx-auto {
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    /* Reduce vertical padding in major sections & content wrappers */
    section {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
    
    .py-6, .py-10, .py-11, .py-12, .py-14, .py-16, .py-20, .py-24, .py-28, .py-32 {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
    
    .pt-5, .pb-20, .pt-10, .pb-10 {
        padding-top: 4px !important;
        padding-bottom: 4px !important;
    }

    .px-3, .px-4, .px-5, .px-6, .px-8 {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .p-4, .p-5, .p-6, .p-8, .p-12 {
        padding: 8px !important;
    }
    
    .rounded-2xl, .rounded-3xl {
        border-radius: 12px !important;
    }

    /* Spacing and gaps */
    .gap-3, .gap-4, .gap-5, .gap-6, .gap-8, .gap-10, .gap-12 {
        gap: 6px !important;
    }

    .mt-4, .mt-6, .mt-8, .mt-10, .mt-12, .mt-16 {
        margin-top: 6px !important;
    }

    .mb-3, .mb-4, .mb-6, .mb-10, .mb-12, .mb-14, .mb-16 {
        margin-bottom: 6px !important;
    }
    
    .mb-8 {
        margin-bottom: 2px !important;
    }
    
    .my-1.5, .my-8, .my-10 {
        margin-top: 4px !important;
        margin-bottom: 4px !important;
    }

    .space-y-2.5 > :not([hidden]) ~ :not([hidden]),
    .space-y-3 > :not([hidden]) ~ :not([hidden]),
    .space-y-4 > :not([hidden]) ~ :not([hidden]),
    .space-y-6 > :not([hidden]) ~ :not([hidden]),
    .space-y-8 > :not([hidden]) ~ :not([hidden]) {
        margin-top: 6px !important;
    }

    .space-y-10 > :not([hidden]) ~ :not([hidden]) {
        margin-top: 2px !important;
    }

    /* Hero slider banner adjustments */
    section.relative.bg-slate-900.min-h-\[500px\] {
        min-height: 240px !important;
        height: auto !important;
    }
    
    section.relative.bg-slate-900.min-h-\[500px\] .py-10 {
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }
    
    .slide-text .badge-hero {
        font-size: 11px !important;
        padding: 1px 7px !important;
        margin-bottom: 4px !important;
    }

    .slide-text h2 {
        font-size: 1.05rem !important; /* 70% of 1.5rem */
        line-height: 1.45rem !important;
        margin-bottom: 3px !important;
    }
    
    .slide-text h2 span {
        font-size: 1.3rem !important; /* 70% of 1.875rem */
    }
    
    .slide-text p {
        font-size: 0.8rem !important; /* 5% enlarged */
        line-height: 1.25rem !important;
        margin-bottom: 5px !important;
    }

    .slide-text p span {
        font-size: 0.75rem !important;
        padding: 1px 4px !important;
    }

    .slide-text .bottom-label {
        font-size: 0.75rem !important;
    }

    /* Subpage visual header */
    section.relative.bg-slate-950.text-white.py-6 {
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }
    
    section.relative.bg-slate-950.text-white.py-6 h1 {
        font-size: 1.5rem !important;
    }
    
    section.relative.bg-slate-950.text-white.py-6 p {
        font-size: 0.825rem !important; /* 10% larger */
        line-height: 1.15rem !important;
    }

    /* Header adjustments */
    header .h-16 {
        height: 48px !important;
    }
    
    .header-ci-logo {
        height: 28px !important;
    }
    
    .sticky.top-16 {
        top: 48px !important;
    }

    /* Titles & Headings margins and font sizes */
    h2.text-3xl, h2.text-4xl, h2.text-2xl {
        font-size: 1.25rem !important; /* text-xl */
        line-height: 1.75rem !important;
        margin-bottom: 4px !important;
    }
    
    .w-12.h-1.bg-brand-teal.mx-auto.mt-4 {
        margin-top: 4px !important;
    }

    /* Facility Info cards (10% additional font enlargement for mobile web) */
    .facility-card {
        padding: 11px 8px !important;
    }
    
    .facility-card .w-14.h-14 {
        width: 48px !important;
        height: 48px !important;
        margin-bottom: 6px !important;
    }
    
    .facility-card i {
        font-size: 18.5px !important;
    }
    
    .facility-card span {
        font-size: 15.5px !important; /* 10% additional enlargement */
    }
    
    .facility-card span.text-slate-500 {
        font-size: 13.8px !important;
    }

    .facility-card span.text-brand-teal {
        font-size: 14.5px !important;
        margin-top: 4px !important;
    }

    /* Subpage main layout */
    .border-b.border-slate-200.pb-5.mb-10 {
        padding-bottom: 6px !important;
        margin-bottom: 12px !important;
    }
    
    .border-b.border-slate-200.pb-5.mb-10 h2 {
        font-size: 1.25rem !important;
    }

    /* Form styling density */
    input, select, textarea {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
        font-size: 16.5px !important; /* 20% larger */
    }
    button[type="submit"].w-full {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
        margin-top: 8px !important;
    }

    .flex > button[type="submit"] {
        margin-top: 0 !important;
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
}

/* ==========================================================================
   Phone Number Bidirectional (Left->Right->Left) Wave & Amber Glow
   ========================================================================== */

/* Button Outer Ambient Amber Glow Pulse */
@keyframes buttonAmbientGlow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.45),
                    0 4px 14px rgba(18, 45, 67, 0.4);
    }
    35% {
        box-shadow: 0 0 0 6px rgba(245, 158, 11, 0),
                    0 0 24px 5px rgba(251, 191, 36, 0.7),
                    0 6px 20px rgba(18, 45, 67, 0.6);
    }
    65% {
        box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.15),
                    0 0 18px 4px rgba(251, 191, 36, 0.5),
                    0 4px 16px rgba(18, 45, 67, 0.5);
    }
}

.phone-glow-btn {
    animation: buttonAmbientGlow 3.6s ease-in-out infinite;
    position: relative;
    overflow: visible;
}

.phone-glow-btn:hover {
    box-shadow: 0 0 0 8px rgba(245, 158, 11, 0),
                0 0 28px 6px rgba(251, 191, 36, 0.8),
                0 8px 25px rgba(18, 45, 67, 0.7);
}

.digit-wave {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
    font-family: inherit;
    vertical-align: middle;
    font-size: 1.725em;
    font-weight: 900;
}

/* Header Area Phone Number 10% Extra Magnification */
header .phone-glow-btn .digit-wave {
    font-size: 1.9em; /* 10% larger in header (1.725 * 1.10) */
}

/* Floating Footer Bar Phone Number Compact Size (Fits 50:50 ratio cleanly without spill) */
#scroll-floating-cta-bar .digit-wave {
    font-size: 1.15em !important;
}

.wave-char {
    display: inline-block;
    transform-origin: center center;
    will-change: transform, text-shadow, color;
    animation-duration: 3.6s;
    animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
    animation-iteration-count: infinite;
}

.wave-char.wave-dash {
    margin: 0 2px;
    opacity: 0.9;
}

/* Bidirectional Ping-Pong Wave Keyframes (Left -> Right -> Left) */
/* Char 0: '1' */
@keyframes waveChar0 {
    0%, 12.5%, 60.0%, 72.5%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    4.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    7.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    64.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    67.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 1: '6' */
@keyframes waveChar1 {
    0%, 3.5%, 15.5%, 56.5%, 68.5%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    7.5% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    11.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    60.8% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    64.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 2: '6' */
@keyframes waveChar2 {
    0%, 6.5%, 19.0%, 53.0%, 65.5%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    10.8% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    14.2% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    57.5% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    61.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 3: '1' */
@keyframes waveChar3 {
    0%, 10.0%, 22.5%, 49.5%, 62.0%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    14.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    17.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    54.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    57.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 4: '-' */
@keyframes waveChar4 {
    0%, 13.5%, 26.0%, 46.5%, 58.5%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    17.5% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    21.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    50.8% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    54.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 5: '1' */
@keyframes waveChar5 {
    0%, 16.5%, 29.5%, 43.0%, 55.0%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    20.8% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    24.2% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    47.5% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    51.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 6: '9' */
@keyframes waveChar6 {
    0%, 20.0%, 33.0%, 39.5%, 52.0%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    24.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    27.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    44.2% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    47.5% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 7: '7' */
@keyframes waveChar7 {
    0%, 23.5%, 36.5%, 36.5%, 48.5%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    27.5% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    31.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
    40.8% {
        transform: scale(1.18) translateY(-1.2px);
        color: #ffffff;
        text-shadow: 0 0 6px #fff, 0 0 12px #fde047, 0 0 22px #f59e0b, 0 0 32px #d97706, 0 2px 4px rgba(0,0,0,0.5);
        filter: brightness(1.3);
        font-weight: 900;
    }
    44.0% {
        transform: scale(1.04) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 5px #fde047, 0 0 12px #f59e0b;
        filter: brightness(1.1);
    }
}

/* Char 8: '4' (Right edge peak & rebound) */
@keyframes waveChar8 {
    0%, 26.5%, 44.0%, 100% {
        transform: scale(1) translateY(0);
        color: inherit;
        text-shadow: 0 1px 2px rgba(0,0,0,0.25);
        filter: brightness(1);
    }
    31.0%, 36.5% {
        transform: scale(1.22) translateY(-1.5px);
        color: #ffffff;
        text-shadow: 0 0 8px #fff, 0 0 16px #fde047, 0 0 26px #f59e0b, 0 0 36px #d97706, 0 2px 5px rgba(0,0,0,0.5);
        filter: brightness(1.35);
        font-weight: 900;
    }
    40.0% {
        transform: scale(1.05) translateY(-0.3px);
        color: #fef08a;
        text-shadow: 0 0 6px #fde047, 0 0 14px #f59e0b;
        filter: brightness(1.1);
    }
}

.wave-char-0, .wave-char:nth-child(1) { animation-name: waveChar0; }
.wave-char-1, .wave-char:nth-child(2) { animation-name: waveChar1; }
.wave-char-2, .wave-char:nth-child(3) { animation-name: waveChar2; }
.wave-char-3, .wave-char:nth-child(4) { animation-name: waveChar3; }
.wave-char-4, .wave-char:nth-child(5) { animation-name: waveChar4; }
.wave-char-5, .wave-char:nth-child(6) { animation-name: waveChar5; }
.wave-char-6, .wave-char:nth-child(7) { animation-name: waveChar6; }
.wave-char-7, .wave-char:nth-child(8) { animation-name: waveChar7; }
.wave-char-8, .wave-char:nth-child(9) { animation-name: waveChar8; }
