@charset "UTF-8";
/* ===== Fonts ===== */
@font-face {
    font-family: "Noto Sans";
    src: url("https://static.gigabyte.com/Other/fonts/Noto_Sans/noto-sans-v39-latin-regular.woff2")
        format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Noto Sans";
    src: url("https://static.gigabyte.com/Other/fonts/Noto_Sans/noto-sans-v39-latin-700.woff2")
        format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
/* 繁中 CJK */
@font-face {
    font-family: "Noto Sans TC";
    src: url("https://static.gigabyte.com/Other/fonts/Noto_Sans/NotoSans-Regular.woff2")
        format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Noto Sans TC";
    src: url("https://static.gigabyte.com/Other/fonts/Noto_Sans_TC/noto-sans-tc-v26-latin_chinese-traditional-500.woff2")
        format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Noto Sans TC";
    src: url("https://static.gigabyte.com/Other/fonts/Noto_Sans_TC/noto-sans-tc-v26-latin_chinese-traditional-700.woff2")
        format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* CSS Reset & Variables */
:root {
    --brand-dark: #050505;
    --brand-gray: #111111;
    --brand-border: #333333;
    --text-gray-light: #d1d5db;
    --text-gray: #dddddd;
    --text-gray-dark: #6b7280;
    --color-white: #ffffff;
    --color-black: #000000;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--color-black);
    color: var(--color-white);
     font-family: "Noto Sans TC", "Noto Sans", "Microsoft JhengHei", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
}

strong {
    display: block;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}

.italic-text {
    font-style: italic;
}

.ordinal-sup {
    font-size: 0.6em;
    line-height: 0;
    vertical-align: super;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

button {
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: disc;
}

.hidden {
    display: none !important;
}

.headingA {
    font-size: 5rem;
    line-height: 4rem;
    letter-spacing: 3px;
    font-weight: 600;
    margin-bottom: 1rem;
}

.headingB {
    font-size: 1.5rem;
    line-height: 2rem;
    letter-spacing: 2px;
    font-weight: 400;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.headingC {
    font-size: 2.5rem;
    line-height: 3rem;
    letter-spacing: 1px;
    font-weight: 600;
    margin-top: 2rem;
    margin-bottom: 1rem;
}

.headingD {
    font-size: 1.563rem;
    line-height: 2rem;
    letter-spacing: 1px;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.headingC {
    text-shadow:
        /* 0 1px 10px rgba(0, 0, 0, 0.95), */
        1px 0 10px rgba(0, 0, 0, 0.85),
        -1px 0 10px rgba(0, 0, 0, 0.85),
        0 -1px 1px rgba(0, 0, 0, 0.85),
        0 0 10px rgba(255, 255, 255, 0.78),
        0 0 20px rgba(255, 255, 255, 0.55),
        0 0 10px rgba(22, 22, 22, 0.32);
}

/* Buttons */

.btn-primary {
    position: relative;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.1) 0%,
        rgba(255, 255, 255, 0) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
    padding: 0.75rem 2.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    border-radius: 2px;
    color: var(--color-white);
    display: inline-block;
    margin-top: 25px;
}

.btn-primary-label {
    position: relative;
    z-index: 1;
}

.btn-primary:hover {
    border-color: rgba(255, 255, 255, 0.6);
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.05) 100%
    );
}

.btn-primary-story {
    background: #ffffff;
    border-color: #ffffff;
    color: #000000;
}

.btn-primary-story:hover {
    border-color: rgba(255, 255, 255, 0.6);
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.05) 100%
    );
    color: var(--color-white);
}

.btn-outline:hover {
    border-color: rgba(255, 255, 255, 0.6);
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.05) 100%
    );
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.1);
}

/* Decorative crosses */
.cross-mark {
    --cross-size: 30px;
    --cross-inset-x: clamp(28px, 5vw, 100px);
    --cross-inset-y: clamp(40px, 7vw, 100px);
    position: absolute;
    width: var(--cross-size);
    height: var(--cross-size);
    opacity: 0.5;
    pointer-events: none;
    z-index: 1;
}

.cross-mark-top-left {
    top: var(--cross-inset-y);
    left: var(--cross-inset-x);
}

.cross-mark-top-right {
    top: var(--cross-inset-y);
    right: var(--cross-inset-x);
}

.cross-mark-bottom-left {
    bottom: var(--cross-inset-y);
    left: var(--cross-inset-x);
}

.cross-mark-bottom-right {
    right: var(--cross-inset-x);
    bottom: var(--cross-inset-y);
}

.cross-mark::before,
.cross-mark::after {
    content: "";
    position: absolute;
    background-color: var(--color-white);
    animation: cross-mark-expand 0.7s cubic-bezier(0.65, 0, 0.35, 1) both;
}

.cross-mark::before {
    top: calc((var(--cross-size) - 1px) / 2);
    left: 0;
    width: var(--cross-size);
    height: 1px;
    transform-origin: center;
}

.cross-mark::after {
    top: 0;
    left: calc((var(--cross-size) - 1px) / 2);
    width: 1px;
    height: var(--cross-size);
    transform-origin: center;
    animation-delay: 0.35s;
}

@media (max-width: 1199px) {
    .cross-mark {
        --cross-size: 24px;
        --cross-inset-x: 48px;
        --cross-inset-y: 64px;
    }
}

@keyframes cross-mark-expand {
    from {
        opacity: 0;
        transform: scale(0);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* --- Sections --- */

/* Hero Section */

.link-card {
    --link-card-y: 0px;
    --link-card-corner-size: 18px;
    --link-card-corner-color: rgba(255, 255, 255, 0.9);
    position: fixed;
    bottom: 5%;
    right: 24px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 180px;
    height: 180px;
    overflow: hidden;
    padding: 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    transform: translate3d(0, calc(-50% + var(--link-card-y)), 0);
    text-align: center;
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.35;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
    will-change: transform, opacity;
    transition: opacity 0.35s ease;
    background: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    animation: link-card-enter 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.25s
        backwards;
}

@keyframes link-card-enter {
    from {
        opacity: 0;
        transform: translate3d(
            calc(100% + 48px),
            calc(-50% + var(--link-card-y)),
            0
        );
    }

    to {
        opacity: 1;
        transform: translate3d(0, calc(-50% + var(--link-card-y)), 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .link-card {
        animation: none;
    }
}

@media (max-width: 767px) {
    .link-card {
        width: 100px;
        height: 160px;
        padding: 0.5rem;
        gap: 0.35rem;
    }
    .link-card__logo {
        width: 54px;
    }
    .link-card span {
        font-size: 0.72rem;
    }
}

.link-card::before,
.link-card::after,
.link-card__corner-bottom::before,
.link-card__corner-bottom::after {
    content: "";
    position: absolute;
    width: var(--link-card-corner-size);
    height: var(--link-card-corner-size);
    border-color: var(--link-card-corner-color);
    border-style: solid;
    z-index: 2;
    pointer-events: none;
}

.link-card::before {
    top: 0;
    left: 0;
    border-width: 1px 0 0 1px;
}

.link-card::after {
    top: 0;
    right: 0;
    border-width: 1px 1px 0 0;
}

.link-card__corner-bottom {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.link-card__corner-bottom::before {
    bottom: 0;
    left: 0;
    border-width: 0 0 1px 1px;
}

.link-card__corner-bottom::after {
    right: 0;
    bottom: 0;
    border-width: 0 1px 1px 0;
}

.link-card span:nth-of-type(2) {
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    padding-top: 10px;
}
.link-card span:not(.link-card__corner-bottom) {
    position: relative;
    z-index: 3;
}

.link-card__logo {
    position: relative;
    z-index: 3;
    width: min(100%, 90px);
    height: auto;
    flex-shrink: 0;
}

.link-card{
    text-shadow:
        0 2px 4px rgba(0, 0, 0, 1),
        0 2px 10px rgba(0, 0, 0, 0.5),
        0 0 18px rgba(0, 0, 0, 0.5);
}

.link-card.is-scrolling {
    opacity: 0.55;
}

.link-card:hover .link-card__bg {
    opacity: 0.85;
    transform: scale(1.05);
}

.link-card__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.6;
    filter: grayscale(0);
    transition:
        opacity 0.3s ease,
        filter 0.3s ease,
        transform 0.3s ease;
}

.link-card_bg::after {
    background-color: #000;
}

.hero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items:flex-end;
    justify-content: center;
    overflow: hidden;
    background-image: url("../images/kv.jpg");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}

.pattern-dot {
    position: absolute;
    bottom: 12%;
    left: 4%;
    width: min(22vw, 260px);
    height: auto;
    pointer-events: none;
    z-index: 1;
}

.pattern-dot-right {
    top: 26%;
    bottom: auto;
    left: auto;
    right: 20%;
}

.pattern-stroke {
    position: absolute;
    right: 7%;
    bottom: 15%;
    width: 60px;
    height: min(46vh, 360px);
    pointer-events: none;
    z-index: 2;
}

.pattern-stroke-dots-only {
    top: 15%;
    left: 2%;
}

.pattern-stroke-line,
.pattern-stroke-box {
    fill: none;
    stroke: rgba(255, 255, 255, 0.72);
    stroke-width: 1;
    stroke-miterlimit: 10;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: pattern-stroke-draw 1.5s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

.pattern-stroke-box {
    opacity: 1;
    animation-delay: 0.45s;
    animation-fill-mode: forwards;
}

.pattern-stroke .pattern-stroke-dot:nth-of-type(n + 8) {
    --dot-final-opacity: 1;
}

.pattern-stroke-dot,
.pattern-stroke-circle {
    --dot-final-opacity: 1;
    fill: #ffffff;
    opacity: 0;
    animation: pattern-stroke-dot-in 0.08s steps(1, end) both;
}

.pattern-stroke-dot.is-mid {
    --dot-final-opacity: 0.7;
}

.pattern-stroke-dot.is-dim {
    --dot-final-opacity: 0.45;
}

.pattern-stroke-dot:not(.is-mid):not(.is-dim),
.pattern-stroke-circle {
    --dot-final-opacity: 1;
}

.pattern-stroke-dot:nth-of-type(2) {
    animation-delay: 0.15s;
}

.pattern-stroke-dot:nth-of-type(3) {
    animation-delay: 0.21s;
}

.pattern-stroke-dot:nth-of-type(4) {
    animation-delay: 0.27s;
}

.pattern-stroke-dot:nth-of-type(5) {
    animation-delay: 0.33s;
}

.pattern-stroke-dot:nth-of-type(6) {
    animation-delay: 0.39s;
}

.pattern-stroke-dot:nth-of-type(7) {
    animation-delay: 0.45s;
}

.pattern-stroke-dot:nth-of-type(8) {
    animation-delay: 0.51s;
}

.pattern-stroke-dot:nth-of-type(9) {
    animation-delay: 0.57s;
}

.pattern-stroke-dot:nth-of-type(10) {
    animation-delay: 0.63s;
}

.pattern-stroke-dot:nth-of-type(11) {
    animation-delay: 0.69s;
}

.pattern-stroke-dot:nth-of-type(12) {
    animation-delay: 0.75s;
}

.pattern-stroke-dot:nth-of-type(13) {
    animation-delay: 0.81s;
}

.pattern-stroke-dot:nth-of-type(14) {
    animation-delay: 0.87s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(13) {
    animation-delay: 0.15s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(12) {
    animation-delay: 0.21s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(11) {
    animation-delay: 0.27s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(10) {
    animation-delay: 0.33s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(9) {
    animation-delay: 0.39s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(8) {
    animation-delay: 0.45s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(7) {
    animation-delay: 0.51s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(6) {
    animation-delay: 0.57s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(5) {
    animation-delay: 0.63s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(4) {
    animation-delay: 0.69s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(3) {
    animation-delay: 0.75s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(2) {
    animation-delay: 0.81s;
}

.pattern-stroke-dots-only .pattern-stroke-dot:nth-of-type(1) {
    animation-delay: 0.87s;
}

.pattern-stroke-circle {
    animation-delay: 1.2s;
}

@keyframes pattern-stroke-draw {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes pattern-stroke-dot-in {
    to {
        opacity: var(--dot-final-opacity);
    }
}

.hero-stroke-path {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
}

.hero-stroke-path-line {
    stroke: rgba(255, 255, 255, 0.72);
    stroke-width: 1;
    stroke-linecap: square;
    stroke-linejoin: miter;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: hero-stroke-draw 1.8s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

.hero-stroke-path-line-horizontal {
    animation-delay: 0.2s;
}

@keyframes hero-stroke-draw {
    to {
        stroke-dashoffset: 0;
    }
}

.hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.4;
}

.hero-content {
    position: relative;
    z-index: 10;
    text-align: center;
    padding: 0 1rem 5rem 1rem;
    animation: hero-content-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.25s both;
}

@keyframes hero-content-rise {
    from {
        opacity: 0;
        transform: translateY(36px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-title {
    font-style: italic;
    letter-spacing: 0.05em;
    text-shadow: 0 10px 15px rgba(0, 0, 0, 0.5);
    font-size: 4.5rem;
}

@media (max-width: 1023px) {
    .hero-title {
        font-size: 3.75rem;
    }
}

.hero-subtitle {
    color: var(--text-gray-light);
    font-size: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.1em;
}

/* Intro Section */
.intro-text {
    max-width: 56rem;
    margin: 0 auto;
    text-align: center;
}

.intro-text {
    font-size: 1rem;
    line-height: 1.2rem;
    margin-bottom: 0.5rem;
    margin-top: 1rem;
}

.join-text i {
    color: #ff6400;
    letter-spacing: 1px;
    font-weight: 400;
}

#how-to-join-text1 {
    margin-top: 2rem;
}

.join-options {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    max-width: 58rem;
    margin: 1.25rem auto 0;
}

.join-options::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: rgba(255, 255, 255, 0.35);
    transform: translateX(-50%);
}

.join-options .join-text {
    margin-bottom: 0;
}

/* Phase Section */
.phase-section {
    margin: 0 auto;
    padding: 2rem 1rem;
    position: relative;
    overflow: hidden;
    z-index: 0;
    background-color: #000;
}

.phase-section::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0.45;
}

.phase-section .btn-primary-label{
    font-weight: bold;
    font-size: 1rem;
}

.pattern-enter {
    position: absolute;
    top: 30%;
    left: 10%;
    width: 5%;
    height: auto;
    transform: translateX(-50%);
    pointer-events: none;
    z-index: 0;
}

.pattern-cross {
    position: absolute;
    bottom: 150px;
    left: 110px;
    width: 10px;
    height: auto;
    pointer-events: none;
    z-index: 1;
    overflow: visible;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.25));
}

.pattern-cross-right {
    top: 150px;
    bottom: auto;
    left: auto;
    right: 110px;
}

.pattern-cross path {
    --tick-low: 0.12;
    --tick-mid: 0.38;
    --tick-high: 0.9;
    opacity: var(--tick-low);
    transform-origin: center;
    filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.12));
}

.pattern-cross path:nth-of-type(1) {
    --tick-low: 0.08;
    --tick-mid: 0.28;
    --tick-high: 0.75;
    animation-delay: -0.12s;
    animation-duration: 3.7s;
}

.pattern-cross path:nth-of-type(2) {
    --tick-low: 0.18;
    --tick-mid: 0.52;
    --tick-high: 1;
    animation-delay: -1.34s;
    animation-duration: 2.65s;
}

.pattern-cross path:nth-of-type(3) {
    --tick-low: 0.05;
    --tick-mid: 0.2;
    --tick-high: 0.62;
    animation-delay: -0.76s;
    animation-duration: 4.15s;
}

.pattern-cross path:nth-of-type(4) {
    --tick-low: 0.22;
    --tick-mid: 0.66;
    --tick-high: 1;
    animation-delay: -2.05s;
    animation-duration: 3.05s;
}

.pattern-cross path:nth-of-type(5) {
    --tick-low: 0.1;
    --tick-mid: 0.34;
    --tick-high: 0.82;
    animation-delay: -0.48s;
    animation-duration: 2.95s;
}

.pattern-cross path:nth-of-type(6) {
    --tick-low: 0.04;
    --tick-mid: 0.18;
    --tick-high: 0.58;
    animation-delay: -1.88s;
    animation-duration: 4.6s;
}

.pattern-cross path:nth-of-type(7) {
    --tick-low: 0.16;
    --tick-mid: 0.48;
    --tick-high: 0.96;
    animation-delay: -0.94s;
    animation-duration: 2.35s;
}

.pattern-cross path:nth-of-type(8) {
    --tick-low: 0.07;
    --tick-mid: 0.24;
    --tick-high: 0.7;
    animation-delay: -2.62s;
    animation-duration: 3.85s;
}

.pattern-cross path:nth-of-type(9) {
    --tick-low: 0.24;
    --tick-mid: 0.58;
    --tick-high: 1;
    animation-delay: -1.16s;
    animation-duration: 3.25s;
}

.pattern-cross-right path:nth-of-type(1) {
    animation-delay: -1.82s;
}

.pattern-cross-right path:nth-of-type(2) {
    animation-delay: -0.36s;
}

.pattern-cross-right path:nth-of-type(3) {
    animation-delay: -2.47s;
}

.pattern-cross-right path:nth-of-type(4) {
    animation-delay: -0.88s;
}

.pattern-cross-right path:nth-of-type(5) {
    animation-delay: -2.98s;
}

.pattern-cross-right path:nth-of-type(6) {
    animation-delay: -0.14s;
}

.pattern-cross-right path:nth-of-type(7) {
    animation-delay: -1.55s;
}

.pattern-cross-right path:nth-of-type(8) {
    animation-delay: -3.2s;
}

.pattern-cross-right path:nth-of-type(9) {
    animation-delay: -0.67s;
}

.tabs-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.tab-btn {
    position: relative;
    flex: 1;
    min-width: 260px;
    padding: 0.6rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-gray-dark);
    background-color: var(--brand-dark);
    border: 1px solid #333;
    transition: all 0.3s ease;
    text-align: left;
}

.tab-btn-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    position: relative;
    z-index: 1;
}

.tab-btn-kicker {
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0;
    color: #cfcfcf;
    text-transform: none;
}

.tab-btn-title {
    font-size: 1.5rem;
    line-height: 1;
    font-weight: 400;
    letter-spacing: -0.03em;
    text-transform: none;
}

.tab-active {
    /* border-color: rgba(255, 255, 255, 0.8); */
    background-color: rgba(121, 56, 56, 0.1);
}

.tab-active .tab-btn-kicker,
.tab-active .tab-btn-title {
    color: #ffffff;
    font-weight: 600;
}

.tab-inactive {
    color: #cfcfcf;
}

.tab-btn:hover:not(.tab-active) {
    border-color: #555;
    background-color: var(--brand-dark);
}

.tab-btn:disabled {
    cursor: default;
    opacity: 0.6;
    pointer-events: none;
}

.tab-btn:hover:not(.tab-active),
.tab-active {
    background-size:
        16px 1px,
        1px 16px,
        16px 1px,
        1px 16px,
        16px 1px,
        1px 16px,
        16px 1px,
        1px 16px;
}

.tab-btn.corner-box:hover:not(.tab-active) {
    background-color: var(--brand-dark);
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
    animation: fadeIn 0.5s ease-in-out;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 2.5rem;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}
.join-title{
    padding-bottom: 50px;
}
.tab-pane-title,
.join-title {
    text-align: center;
    margin-bottom: 3rem;
}

.tab-pane-title h2{
    color: var(--text-gray);
    font-size: 1rem;
    line-height: 2rem;
}

.tab-pane-title p {
    font-size: 1.3rem;
    line-height: 3rem;

}

.status-live {
    display: inline-block;
    margin: 0 0.35rem;
    padding: 0.1rem 0.5rem;
    border: 1px solid rgba(255, 100, 0);
    background: linear-gradient(
        180deg,
        rgba(255, 100, 0, 0.22) 0%,
        rgba(255, 100, 0, 0.08) 100%
    );
    color: #ff6400;
    font-size: 0.8em;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.2;
    vertical-align: middle;
    box-shadow: 0 0 14px rgba(255, 100, 0, 0.3);
}

.setup-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem;
    margin-bottom: 3rem;
}

.profile-card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.profile-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
}

.profile-card p {
    color: var(--text-gray);
    font-size: 1rem;
    line-height: 1.625;
}

.profile-img-box {
    aspect-ratio: 1/1;
    position: relative;
    overflow: hidden;
    border-radius: 2px;
    border: 1px solid var(--brand-border);
}

.profile-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.profile-img-box:hover img {
    transform: scale(1.05);
}

.overlay-blue {
    position: absolute;
    inset: 0;
    background-color: rgba(255, 7, 7, 0.1);
    mix-blend-mode: overlay;
}

.overlay-purple {
    position: absolute;
    inset: 0;
    background-color: rgba(168, 85, 247, 0.1);
    mix-blend-mode: overlay;
}

.text-center {
    text-align: center;
}

.py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.text-gray-500 {
    color: var(--text-gray-dark);
}

/* Prize Section */
.prize-section {
    margin: 0 auto;
    padding: 3rem 1rem;
    position: relative;
    overflow: hidden;
    text-align: center;
    background:
        url("../images/prize-bg-2.jpg") center / cover no-repeat,
        radial-gradient(
            circle at left bottom,
            rgba(78, 88, 100, 0.5) 0%,
            rgba(198, 191, 191, 0) 40%
        ),
        linear-gradient(30deg, #000000 0%, #1a1d22 45%, #000000 100%);
}

/* .prize-section h2 {
    margin-bottom: 3rem;
} */

.pattern-grid {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(90vw, 1400px);
    height: auto;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: 0.7;
    z-index: 1;
}

.pattern-enter-prize {
    top: 18%;
    right: 8%;
    left: auto;
    width: min(7vw, 96px);
    transform: none;
    z-index: 1;
}

.prize-section > .container {
    position: relative;
    z-index: 2;
}

.prize-header {
    font-size: 1.875rem;
    font-weight: 700;
    font-style: italic;
    margin-bottom: 4rem;
    display: inline-block;
    position: relative;
}

.prize-header-glow {
    position: absolute;
    bottom: -0.5rem;
    left: 0;
    width: 100%;
    height: 0.25rem;
    background: linear-gradient(
        to right,
        transparent,
        var(--text-gray-dark),
        transparent
    );
    filter: blur(4px);
}

.prize-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6rem;
    margin-bottom: 4rem;
}

.prize-item {
    border: 1px solid #727272;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(20, 20, 20, 0.5);
    backdrop-filter: blur(40px);
    -webkit-backdrop-filter: blur(40px);
    padding: 1.5rem;
}

.prize-item--bg-pack {
    position: relative;
    min-height: clamp(24rem, 38vw, 32rem);
    justify-content: flex-start;
    overflow: hidden;
}

.prize-item--bg-pack .prize-tier,
.prize-item--bg-pack .prize-name {
    position: relative;
    z-index: 2;
}

.prize-item--bg-pack .prize-img {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    pointer-events: none;
}

.prize-item--bg-pack .prize-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    padding: 0;
    /* opacity: 0.9; */
}

.prize-tier {
    color: var(--text-gray);
    font-size: 1rem;
    letter-spacing: 0.1em;
    margin-bottom: 0.5rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75);
}

.prize-name {
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    line-height: 1.4;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85);
}

.prize-name span {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--text-gray);
    display: block;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75);
}

.prize-img {
    width: clamp(16rem, 34vw, 28rem);
    aspect-ratio: 1 / 1;
    position: relative;
    cursor: pointer;
}

.prize-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    padding: 0.5rem;
    transition: transform 0.5s ease;
}

.prize-img:hover img {
    transform: translateY(-0.5rem);
}

.prize-item--bg-pack .prize-img:hover img {
    transform: none;
}

.prize-img-shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top right,
        transparent,
        rgba(255, 255, 255, 0.1),
        transparent
    );
    pointer-events: none;
}

/*------------- Lightbox -------------*/
.pop_content {
    width: 100%;
    max-width: 1000px;
    display: none;
}

#terms h3,
#terms2 h3 {
    font-size: 1.15rem;
    line-height: 1.5rem;
}

#terms h4,
#terms2 h4 {
    font-size: 1rem;
    line-height: 1.5rem;
    margin-bottom: 1rem;
}

#terms,
#terms2 {
    font-size: 14px;
    line-height: 20px;
}

.terms-note {
    margin: 0.5rem 0;
}

#terms p {
    margin-bottom: 0.5rem;
}

#terms p span {
    display: block;
    font-weight: bold;
}

#terms ol,
#terms2 ol {
    margin-left: 1rem;
}

#terms ol li::marker,
#terms2 ol li::marker {
    font-weight: bold;
}

#terms ol li,
#terms2 ol li {
    list-style: decimal;
    margin-bottom: 1rem;
}

/* #terms ol li:last-child,
#terms2 ol li:last-child {
    margin-bottom: 0;
} */

#terms ol li ul,
#terms2 ol li ul {
    margin-left: 1.5rem;
}

#terms ol li ul li,
#terms2 ol li ul li {
    list-style: square;
    margin-bottom: 0.5rem;
}

#terms .criteria-title,
#terms2 .criteria-title {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

#terms .criteria-category,
#terms2 .criteria-category {
    font-weight: 600;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.pop_content a {
    outline: none !important;
}

.fancybox__content > .carousel__button.is-close {
    position: fixed;
    right: 1%;
    top: 1%;
}

#Vote h2 {
    font-size: 1.8rem;
    line-height: 2rem;
    letter-spacing: 2px;
}

#Vote h3 {
    font-size: 1.15rem;
    line-height: 1.5rem;
    margin-bottom: 1rem;
    letter-spacing: 1px;
}

#Vote h4 {
    font-size: 1.1rem;
    line-height: 1.5rem;
}

#Vote ul,
#Vote ol {
    margin-left: 1.5rem;
}



/* How to Join Section */
.join-section {
    margin: 0 auto;
    padding: 3rem 1rem;
    position: relative;
    background: transparent;
}

.join-intro {
    text-align: center;
    margin-bottom: 3rem;
}

.join-intro h2 {
    font-size: 1.5rem;
    font-weight: 700;
    font-style: italic;
    margin-bottom: 1rem;
}

.join-intro p {
    color: var(--text-gray);
    font-size: 0.875rem;
    max-width: 42rem;
    margin: 0 auto;
    line-height: 1.625;
}

.join-intro h3 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-top: 2.5rem;
    margin-bottom: 1.5rem;
}

.steps-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2rem;
}

.step-card {
    width: calc(33.333% - 1rem);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 1.5rem;
    margin-top: 0;
}

.step-card img {
    width: 50px;
    height: 50px;
    margin-bottom: 0.1rem;
}

.step-card.mt-md-4 {
    margin-top: 1rem;
}

.step-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    position: relative;
    z-index: 10;
}

.step-num {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--color-white);
}

.step-icon {
    width: 2rem;
    height: 2rem;
    color: var(--text-gray-dark);
    transition: color 0.3s;
}

.step-title {
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: 0.25rem;
    position: relative;
    z-index: 10;
}

.step-desc {
    font-size: 1rem;
    color: var(--text-gray);
    position: relative;
    z-index: 10;
}

/* Corner Box Style for Submission Tips */
.corner-box {
    border: 1px solid #333;
    position: relative;
    transition: all 0.3s ease;
}

.corner-box::before,
.corner-box::after,
.corner-box .corner-bottom::before,
.corner-box .corner-bottom::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    border-color: #cacaca;
    border-style: solid;
    z-index: 10;
    transition: all 0.3s ease;
}

.corner-box::before {
    top: -1px;
    left: -1px;
    border-width: 1px 0 0 1px;
}

.corner-box::after {
    top: -1px;
    right: -1px;
    border-width: 1px 1px 0 0;
}

.corner-box .corner-bottom {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.corner-box .corner-bottom::before {
    bottom: -1px;
    left: -1px;
    border-width: 0 0 1px 1px;
}

.corner-box .corner-bottom::after {
    bottom: -1px;
    right: -1px;
    border-width: 0 1px 1px 0;
}

.corner-box:hover {
    border-color: #555;
}

.corner-box:hover::before,
.corner-box:hover::after,
.corner-box:hover .corner-bottom::before,
.corner-box:hover .corner-bottom::after {
    width: 16px;
    height: 16px;
}

/* Event Duration & Gleam Widget */
.event-section {
    margin: 0 auto;
    padding: 3rem 1rem;
    text-align: center;
}

.event-section p{
    margin-bottom:1rem;
}

.event-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.event-date {
    color: var(--text-gray);
    font-size: 0.875rem;
    margin-bottom: 2.5rem;
}

.gleam-widget {
    background-color: var(--color-white);
    color: var(--color-black);
    text-align: left;
    border-radius: 4px;
    box-shadow:
        0 20px 25px -5px rgba(0, 0, 0, 0.1),
        0 10px 10px -5px rgba(0, 0, 0, 0.04);
    max-width: 28rem;
    margin: 0 auto 2.5rem;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    font-family: Arial, Helvetica, sans-serif;
    /* System font for widgets */
}

.gleam-banner {
    width: 100%;
    height: 10rem;
    background-color: #f3f4f6;
    position: relative;
}

.gleam-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gleam-stats {
    display: flex;
    border-bottom: 1px solid #e5e7eb;
    text-align: center;
    font-size: 0.875rem;
    background-color: #f9fafb;
}

.gleam-stat {
    flex: 1;
    padding: 0.75rem 0;
}

.gleam-stat.border-r {
    border-right: 1px solid #e5e7eb;
}

.gleam-stat-val {
    font-weight: 700;
    font-size: 1.125rem;
}

.gleam-stat-val.blue {
    color: #2563eb;
}

.gleam-stat-label {
    font-size: 0.625rem;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 0.25rem;
}

.gleam-body {
    padding: 1.25rem;
}

.gleam-title {
    font-weight: 700;
    font-size: 1.125rem;
    margin-bottom: 1rem;
    line-height: 1.25;
}

.gleam-login-box {
    background-color: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 1rem;
    margin-bottom: 1.25rem;
}

.gleam-login-text {
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.75rem;
    text-align: center;
}

.gleam-login-btns {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gleam-btn-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    color: var(--color-white);
}

.gleam-btn-icon svg {
    width: 1rem;
    height: 1rem;
}

.gleam-btn-icon:hover {
    opacity: 0.9;
}

.btn-mail {
    background-color: #f3f4f6;
    border: 1px solid #d1d5db;
    color: #4b5563;
}

.btn-mail:hover {
    background-color: #e5e7eb;
}

.btn-fb {
    background-color: #2563eb;
}

.btn-ig {
    background: linear-gradient(to top right, #facc15, #ec4899, #a855f7);
}

.btn-x {
    background-color: #000;
}

.btn-twitch {
    background-color: #9333ea;
}

.btn-yt {
    background-color: #dc2626;
}

/* Community Section */
.community-section {
    max-width: 100rem;
    margin: 0 auto;
    padding: 4rem 1rem;
    text-align: center;
    background: transparent;
}


/* Mobile styles */
@media (max-width: 767px) {
    .cross-mark {
        --cross-size: 20px;
        --cross-inset-x: 18px;
        --cross-inset-y: 28px;
        opacity: 0.35;
    }

    .hero {
        background-image: url("../images/kv-mobile.jpg");
        background-position: center top;
    }

    .pattern-stroke {
        width: 20px;
    }

    .pattern-stroke-dots-only {
        top: 5%;
        left: 2%;
    }

    .hero-title {
        font-size: 2.2rem;
        margin: 0;
    }

    .hero-subtitle {
        font-size: 1.125rem;
        margin: 0;
    }

    .tabs-header {
        gap: 1rem;
    }

    .tab-btn {
        font-size: 0.875rem;
    }

    .tab-btn-title {
        font-size: 1.2rem;
    }

    .setup-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .prize-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .prize-img {
        width: min(100%, 25rem);
    }

    .prize-item--bg-pack {
        min-height: calc(min(100vw - 6rem, 25rem) + 8.5rem);
    }

    .steps-grid {
        gap: 1rem;
    }

    .join-options {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .join-options::before {
        top: 50%;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        height: 1px;
        transform: translateY(-50%);
    }

    .step-card {
        width: 100%;
        margin-top: 1rem;
    }

    .community-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }
}

.community-item {
    aspect-ratio: 1 / 1;
    background-color: var(--brand-border);
    border-radius: 0.5rem;
    overflow: hidden;
}

.community-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.community-item:hover img {
    transform: scale(1.1);
}

/* Notes Section */
.notes-section {
    max-width: 56rem;
    margin: 0 auto;
    padding: 4rem 1rem;
    border-top: 1px solid var(--brand-border);
    text-align: left;
}

.notes-title {
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 1rem;
    text-align: center;
}

.notes-list {
    font-size: 0.75rem;
    color: var(--text-gray-dark);
    padding-left: 1rem;
    opacity: 0.7;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
