body {
    font-family: 'Noto Sans JP', sans-serif;
    margin: 0;
    padding: 0;
    color: white;
    background-color: #000;
    /* Dark brick texture feeling */
    background-image: linear-gradient(rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9)), url('images/brick_bg.png');
    background-repeat: repeat;
    text-align: center;
}

/* Alert Header */
.alert-header {
    background-color: #8B0000;
    /* Dark Red */
    padding: 15px 0;
    border-bottom: none;
}

.alert-title {
    font-size: 32px;
    font-weight: 900;
    margin: 0;
    color: white;
    letter-spacing: 2px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.alert-sub {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin-top: 5px;
}

/* Hero Section */
.hero-section {
    position: relative;
    padding: 100px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* Prevent scrollbar from stamps */
}

/* Text Container acts as anchor for stamps */
.hero-text-container {
    position: relative;
    z-index: 2;
    display: inline-block;
    max-width: 1200px;
    /* Increased from 900px to fit text in 2 lines */
    padding: 20px 40px;
    /* More side padding to clear stamps */
}

.hero-text-main {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.6;
    /* Increased line height for underline clearance */
    text-align: center;
    letter-spacing: 0;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}

.hero-line {
    border-bottom: 3px solid #007bff;
    /* Bright blue underline */
    padding-bottom: 2px;
    display: inline-block;
    /* Essential for border to show correctly on text */
}

.text-small {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 28px;
    font-weight: 700;
}

.text-green {
    color: #4CAF50;
    font-size: 50px;
    /* Emphasize */
}

/* Stamps Positioned Relative to Text Block */
.stamp-left {
    position: absolute;
    top: 20px;
    left: -20px;
    width: 280px;
    transform: rotate(0deg);
    opacity: 0.9;
    z-index: 1;
    pointer-events: none;
}

.stamp-right {
    position: absolute;
    /* bottom: 0px; */
    top: -10px;
    right: 60px;
    width: 280px;
    transform: rotate(0deg);
    opacity: 0.9;
    z-index: 1;
    pointer-events: none;
}

.stamp-left img,
.stamp-right img {
    width: 100%;
    height: auto;
}

/* Video Section */
.video-container {
    background: #333;
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8);
    margin: 0 auto 30px auto;
    max-width: 600px;
}

.video-placeholder {
    background: #eee;
    height: 350px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 2px;
}

.play-icon {
    font-size: 50px;
    color: #333;
    opacity: 0.8;
}

/* Text & Arrows */
.text-center {
    text-align: center;
}

.mt-20 {
    margin-top: 20px;
}

.arrows-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 40px 0;
}

.arrow-down {
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 40px solid #4CAF50;
    /* Green Arrow */
    /* Add gradient effect via pseudo-element if needed, simple is fine */
    filter: drop-shadow(0 0 5px #4CAF50);
}

.intro-text p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.7;
    /* 170% */
    margin-bottom: 0;
}

.intro-text .text-green {
    font-size: 30px;
    font-weight: 700;
    line-height: 1.7;
}

.text-content-block p {
    margin-bottom: 0px;
    /* Adjust spacing since line-height is large */
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 2.5;
    /* 250% */
}

.text-content-block .text-green {
    font-size: 40px;
    font-weight: 700;
    line-height: 2.5;
    /* 250% */
}

/* Timer */
.timer-section {
    text-align: center;
    margin: 50px 0;
}

@keyframes blink {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.timer-label {
    color: #ff0000;
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 5px;
    animation: blink 1s infinite;
}

.countdown-box {
    border: 3px solid #600;
    background: rgba(0, 0, 0, 0.5);
    display: inline-block;
    padding: 10px 40px;
    border-radius: 10px;
}

#countdown {
    color: #ff0000;
    font-family: 'Courier New', monospace;
    font-size: 60px;
    font-weight: bold;
    letter-spacing: 5px;
    text-shadow: 0 0 20px rgba(255, 0, 0, 0.8);
}

/* Steps */
.step-box {
    margin-bottom: 50px;
    text-align: left;
}

.step-header {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.step-badge {
    background: #4CAF50;
    /* Green Badge */
    color: white;
    /* Black text on badge? Image looks like Black on Light Green or White on Green. Let's do Black on Light Green based on common LP styles, or White on Green. Image shows Black text on Light Green maybe? Or White on Green. Let's go White on Green */
    background: #8BC34A;
    /* Lighter Green */
    color: black;
    font-weight: 900;
    padding: 5px 15px;
    font-size: 18px;
    margin-right: 15px;
}

.step-title {
    font-weight: bold;
    font-size: 16px;
    margin-right: 15px;
    white-space: nowrap;
}

.step-line {
    flex-grow: 1;
    height: 1px;
    background: #4CAF50;
}

.input-secret {
    width: 100%;
    max-width: 500px;
    display: block;
    margin: 0 auto 20px auto;
    padding: 15px;
    font-size: 18px;
    border-radius: 5px;
    border: none;
    box-sizing: border-box;
    /* Ensure padding doesn't affect width calculation */
}

/* Custom Buttons */
.btn-secret-red {
    display: flex;
    justify-content: center;
    /* Center content inside */
    align-items: center;
    background: linear-gradient(to bottom, #f00, #900);
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    /* Reduced padding slightly */
    border-radius: 50px;
    border: 2px solid white;
    box-shadow: 0 0 15px rgba(255, 0, 0, 0.5);
    position: relative;
    overflow: hidden;
    max-width: 500px;
    /* Limit width */
    margin: 0 auto;
    /* Center button */
}

.btn-secret-green {
    display: flex;
    justify-content: center;
    /* Center content inside */
    align-items: center;
    background: linear-gradient(to bottom, #00E676, #00C853);
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    /* Reduced padding slightly */
    border-radius: 50px;
    border: 2px solid white;
    box-shadow: 0 0 15px rgba(0, 255, 0, 0.3);
    max-width: 500px;
    /* Limit width */
    margin: 0 auto;
    /* Center button */
}

.btn-icon-circle {
    background: white;
    color: #d00;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 12px;
    font-weight: bold;
    margin-right: 20px;
    line-height: 1.1;
    flex-shrink: 0;
}

.line-icon-circle {
    background: white;
    color: #00C853;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 900;
    font-size: 14px;
    /* Icon-like text */
    margin-right: 20px;
    flex-shrink: 0;
}

.btn-text,
.btn-text-line {
    font-size: 20px;
    font-weight: bold;
    flex-grow: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.btn-arrow {
    font-size: 24px;
    font-weight: light;
}

/* Footer */
.footer-red {
    background: #8B0000;
    padding: 10px;
    text-align: center;
    margin-top: 50px;
    font-size: 12px;
    color: #ffcccc;
}

.footer-links {
    text-align: center;
    margin: 20px 0;
}

.footer-links a {
    color: #ffffff;
    font-size: 14px;
    text-decoration: underline;
}

/* SP Responsive */
@media screen and (max-width: 767px) {

    /* Layout & Containers */
    .container {
        padding: 0 15px;
    }

    .hero-section {
        padding: 60px 0;
        /* Ensure overflow is hidden so stamps don't cause horizontal scroll */
        overflow: hidden;
    }

    .hero-text-container {
        padding: 10px;
        width: 100%;
        box-sizing: border-box;
    }

    /* Text Sizes */
    .alert-title {
        font-size: 20px;
    }

    .alert-sub {
        font-size: 11px;
    }

    .hero-text-main {
        font-size: 28px;
        line-height: 1.5;
    }

    .text-small {
        font-size: 24px;
    }

    /* .text-green defaults for Hero */
    .text-green {
        font-size: 2.5rem;
    }

    /* Content Typography */
    .intro-text p,
    .text-content-block p {
        font-size: 20px;
        line-height: 1.6;
    }

    .intro-text .text-green,
    .text-content-block .text-green {
        font-size: 1.5rem;
    }

    /* Stamps */
    .stamp-right {
        position: absolute;
        top: -40px;
        right: -76px;
        width: 280px;
        transform: rotate(0deg);
        opacity: 0.9;
        z-index: 1;
        pointer-events: none;
    }

    .stamp-left {
        width: 180px;
        top: -10px;
        left: -30px;
        opacity: 0.6;
    }

    /* Arrows */
    .arrow-down {
        border-left-width: 10px;
        border-right-width: 10px;
        border-top-width: 20px;
    }

    /* Video */
    .video-container {
        width: 100%;
        max-width: 100%;
        padding: 5px;
        /* Less padding on mobile to maximize video size */
        box-sizing: border-box;
        margin-bottom: 20px;
    }

    .video-container video {
        width: 100% !important;
        height: auto !important;
        display: block;
        /* Removes weird bottom spacing */
    }

    .video-placeholder {
        height: 200px;
    }

    /* Buttons & Inputs */
    .input-secret {
        width: 100% !important;
        font-size: 16px;
        box-sizing: border-box;
    }

    .btn-secret-red,
    .btn-secret-green {
        width: 100%;
        flex-direction: row;
        padding: 10px 5px;
        box-sizing: border-box;
    }

    .btn-icon-circle,
    .line-icon-circle {
        width: 40px;
        height: 40px;
        font-size: 10px;
        margin-right: 8px;
    }

    .btn-text,
    .btn-text-line {
        font-size: 15px;
        line-height: 1.3;
    }

    .btn-arrow {
        font-size: 16px;
        margin-left: 5px;
    }

    /* Timer */
    #countdown {
        font-size: 32px;
    }

    .countdown-box {
        padding: 10px;
    }

    /* Steps */
    .step-header {
        flex-wrap: wrap;
        /* Allow wrapping */
        align-items: center;
    }

    .step-badge {
        font-size: 12px;
        padding: 4px 10px;
        margin-right: 10px;
    }

    .step-title {
        font-size: 14px;
        margin-right: 10px;
    }
}