* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    word-break: keep-all;
}

body {
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

:root {
    --arrow-h: 48px;
}

/* 화살표 높이 */

/* tvN Enjoystories (OTEnjoystoriesBA) */
@font-face {
    font-family: 'tvN-Medium';
    src: url('../fonts/tvN-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'tvN-Light';
    src: url('../fonts/tvN-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'tvN-Bold.ttf';
    src: url('../fonts/tvN-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Paperlogy-3Light';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-3Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Paperlogy-4Regular';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-4Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Paperlogy-5Medium';
    font-weight: 500;
    font-style: normal;
    src: url('https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/Paperlogy-5Medium.woff2') format('woff2'),
        url('https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/Paperlogy-5Medium.woff') format('woff'),
        url('https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/Paperlogy-5Medium.otf') format('opentype'),
        url('https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/Paperlogy-5Medium.ttf') format('truetype');
}

@font-face {
    font-family: 'Paperlogy-6SemiBold';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-6SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: 'Paperlogy-7Bold';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-7Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Paperlogy-8ExtraBold';
    src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-8ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
}

/* Pretendard */
/* Light 300 */
@font-face {
    font-family: 'Pretendard';
    src:
        url('/fonts/Pretendard-Light.woff2') format('woff2'),
        url('/fonts/Pretendard-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* Regular 400 */
@font-face {
    font-family: 'Pretendard';
    src:
        url('/fonts/Pretendard-Regular.woff2') format('woff2'),
        url('/fonts/Pretendard-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* SemiBold 600 */
@font-face {
    font-family: 'Pretendard';
    src:
        url('/fonts/Pretendard-SemiBold.woff2') format('woff2'),
        url('/fonts/Pretendard-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

#container>.inner {
    position: relative;
    max-width: 100%;
    margin: -2.5rem auto 0 auto;
    padding: 0;
}

/* ===== 레이아웃 ===== */
.flex-center-container {
    display: flex;
    align-items: center;
}

.intro {
    position: relative;
    padding: 0 0 1rem 0;
    width: 100%;
    min-height: auto;
    background: linear-gradient(180deg, #316AF6 0%, #789FFF 100%);
}


.bottom-arrow {
    margin-top: -1px;
    --arrow-h: clamp(36px, 10vw, 180px);
    /* 화살표 깊이(크면 더 뾰족) */
    --arrow-inset: 0%;
    /* 좌우 상단을 안쪽으로(커질수록 더 뾰족) */
    position: relative;
    width: 100%;
    background: linear-gradient(180deg, #789FFF 0%, #789FFF 100%);
    margin-bottom: var(--arrow-h);
    /* 아래 섹션과 간섭 방지 */
    overflow-x: clip;
}

/* 하단 V 꼬리 */
.bottom-arrow::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(-1 * var(--arrow-h));
    height: var(--arrow-h);
    background: inherit;
    /* 동일 그라데이션 */
    background-position: 0 calc(-1 * var(--arrow-h));
    /* 색 이어지게 오프셋 */
    background-size: 100% calc(100% + var(--arrow-h));
    clip-path: polygon(var(--arrow-inset) 0, 50% 100%, calc(100% - var(--arrow-inset)) 0);
    pointer-events: none;
}


.intro-bottom-arrow {
    margin-top: -1px;
    --arrow-h: clamp(36px, 10vw, 180px);
    /* 화살표 깊이(크면 더 뾰족) */
    --arrow-inset: 0%;
    /* 좌우 상단을 안쪽으로(커질수록 더 뾰족) */
    position: relative;
    width: 100%;
    background: linear-gradient(180deg, #d8e4ff 0%, #d8e4ff 100%);
    margin-bottom: var(--arrow-h);
    /* 아래 섹션과 간섭 방지 */
    overflow-x: clip;
}

/* 하단 V 꼬리 */
.intro-bottom-arrow::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(-1 * var(--arrow-h));
    height: var(--arrow-h);
    background: inherit;
    /* 동일 그라데이션 */
    background-position: 0 calc(-1 * var(--arrow-h));
    /* 색 이어지게 오프셋 */
    background-size: 100% calc(100% + var(--arrow-h));
    clip-path: polygon(var(--arrow-inset) 0, 50% 100%, calc(100% - var(--arrow-inset)) 0);
    pointer-events: none;
}

.wrap {
    overflow-x: hidden;
}

.wrap {
    width: 100%;
    background: #fff;
}

.wrap.first {
    background: #d8e4ff;
}

.event-info-section,
.prize-event-banner {
    width: 100%;
    background: #d8e4ff;
}

.event-info-section {
    padding: 6rem 0 0 0;
    max-width: 57.8125rem;
    margin: 0 auto;
}

.event-hero {
    position: relative;
    margin: 0 auto;
    padding: 0 3rem 3rem 3rem;
    width: 100%;
    height: auto;
    border-radius: 0.625rem;
    background: #FFF;
}

.background-text {
    position: absolute;
    top: 0;
    left: 0;
    max-width: 24rem;
    width: 100%;
}

.prize-product-img {
    position: relative;
    margin: 0 auto;
    padding: 5rem 0 1.56rem 0;
    max-width: 23.4rem;
    width: 100%;
}

.prize-product-img img {
    max-width: 23.4rem;
    width: 100%;
}

.prize-product-img .thumbnail-final-bg {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1;
    background-size: cover;
    background-image: url('../img/thumbnail_final_bg.png');
}


.prize-product-img .thumbnail-final-item img {
    /* position: absolute;
    top: 9rem;
    left: 3.5rem; */
    max-width: 17rem;
}

.event-description {
    margin-top: 2.4rem;
    color: #001446;
    font-family: "Pretendard";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal !important;
    letter-spacing: -0.09rem;
}

.draw-ltr {
    /* 왼→오 애니메이션 */
    -webkit-mask: linear-gradient(#000 0 0) left / 0% 100% no-repeat;
    mask: linear-gradient(#000 0 0) left / 0% 100% no-repeat;
    animation: reveal-ltr 1.8s cubic-bezier(.2, .7, .2, 1) both;
    animation-iteration-count: infinite;
}

.draw-ltr image {
    width: 100%;
    /* 화면 너비에 맞게 */
    height: auto;
    /* 비율 유지 */
    max-width: 600px;
    /* 필요 시 최대 크기 제한 */
}

@keyframes reveal-ltr {
    to {
        -webkit-mask-size: 100% 100%;
        mask-size: 100% 100%;
    }
}


/* overflow-x: clip 미지원 브라우저 대응 */
@supports not (overflow: clip) {
    .intro {
        overflow-x: hidden;
    }
}

.intro-container {
    margin: 0 auto;
    width: 100%;
    max-width: 66.5rem;
    padding: 0 1.5rem;
}

/* ===== article 1 ===== */

.phone-frame {
    padding: 8.81rem 0 0 0;
}

.hero {
    text-align: center;
}

.eyebrow span {
    color: #FFF;
    text-align: center;
    font-family: 'tvN-Light', sans-serif;
    font-size: 3.75rem;
    line-height: normal;
    letter-spacing: -0.15rem;
}

.hero h1 {
    color: #FFF;
    text-align: center;
    font-family: 'Paperlogy-8ExtraBold';
    font-size: 6.875rem;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    letter-spacing: -0.275rem;
}

.hero .highlight {
    position: relative;
    display: inline-block;
    line-height: 1;
    white-space: nowrap;
    color: #F8FF6B;
}

.hero .highlight .apple-1,
.hero .highlight .apple-2 {
    position: absolute;
    display: block;
    pointer-events: none;
}

.hero .highlight .apple-1 {
    left: -20px;
    top: -38px;
    width: var(--a1-size);
    transform: translate(var(--a1-x), var(--a1-y)) rotate(-18deg);
    z-index: -1;
}

.hero .highlight .apple-2 {
    right: -12px;
    bottom: -11px;
    width: var(--a2-size);
    transform: translate(var(--a2-x), var(--a2-y)) rotate(12deg);
}

/* SVG는 블록으로(행간 영향 제거) */
.hero .highlight svg {
    width: 100%;
    height: auto;
    display: block;
}

/* 초기 상태 */
.hero .eyebrow span {
    display: inline-block;
}

/* 글자 단위 애니메이션 */
.hero .eyebrow .char {
    display: inline-block;
    opacity: 0;
    transform: translateY(8px) scale(0.92);
    animation: popIn .6s cubic-bezier(.2, .7, .2, 1.1) both;
    animation-delay: calc(var(--i) * 60ms);
    will-change: transform, opacity;
}

/* H1 왼→오 리빌 */
.hero h1 {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 900ms ease, opacity 200ms ease;
    will-change: clip-path, opacity;
}

.hero.in h1 {
    opacity: 1;
    clip-path: inset(-25% -6% -25% -12%);
}

/* 팝인 키프레임 */
@keyframes popIn {
    0% {
        opacity: 0;
        transform: translateY(8px) scale(0.92);
    }

    50% {
        opacity: 1;
        transform: translateY(-4px) scale(1.06);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* 사과 텍스트 */
.highlight {
    display: inline-block;
    transform-origin: center;
}

/* 팝 효과 */
.highlight.pop {
    animation: applePop 0.6s ease forwards;
}

@keyframes applePop {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.15);
    }

    100% {
        transform: scale(1);
    }
}

/* 등장 애니메이션 */
.prod-item.reveal-up {
    opacity: 0;
    transform: translateY(24px);
    transition: transform .7s ease, opacity .7s ease;
    will-change: transform, opacity;
}

.prod-item.reveal-up.in {
    opacity: 1;
    transform: translateY(0);
}

.products {
    position: relative;
}

/* 배경 투명 */
.watermark {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    background: transparent;
}

/* 텍스트 그라데이션 + 무한 스크롤 */
.watermark p {
    position: absolute;
    display: inline-flex;
    gap: 2rem;
    /* 글자 덩어리 간격 */
    white-space: nowrap;
    width: max-content;
    text-align: center;
    font-family: 'Paperlogy-7Bold';
    font-size: 5rem;
    font-style: normal;
    line-height: normal;
    line-height: 1;
    /* 줄 간격 줄임 */
    animation: marquee var(--dur, 36s) linear infinite;

    /* 텍스트 컬러를 그라데이션으로 */
    background: linear-gradient(180deg, #5989FF 0%, #5989FF 90.8%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    /* Firefox */
    -webkit-text-fill-color: transparent;
    /* Safari/iOS */
}

/* 줄 위치(더 촘촘) & 방향/속도 */
.watermark p:nth-child(1) {
    top: 5%;
    --dur: 34s;
    opacity: 1;
}

.watermark p:nth-child(2) {
    top: 15%;
    --dur: 40s;
    animation-name: marquee-rev;
    opacity: 1;
}

.watermark p:nth-child(3) {
    top: 25%;
    --dur: 32s;
    opacity: 0.75;
}

.watermark p:nth-child(4) {
    top: 35%;
    --dur: 38s;
    animation-name: marquee-rev;
    opacity: 0.75;
}

.watermark p:nth-child(5) {
    top: 45%;
    --dur: 30s;
    opacity: 0.5;
}

@keyframes marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }

    /* 아래 마크업처럼 두 번 이어붙였을 때 완전 루프 */
}

@keyframes marquee-rev {
    from {
        transform: translateX(-50%);
    }

    to {
        transform: translateX(0);
    }
}

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

.prod {
    width: 100%;
}

.prod .prod-item {
    position: relative;
    z-index: 1;
    padding: 8.5rem 0 5rem 0;
    margin: 0 auto;
    width: 100%;
    max-width: 59.8075rem;
    transition: transform 0.6s ease;
}

.prod .prod-item>canvas.fw {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.prod .prod-item.active {
    transform: scale(1.1);
    /* 살짝 확대 */
}

/* 폭죽 */
dotlottie-player {
    position: fixed;
    width: 400px;
    height: 400px;
    z-index: 99;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.relative {
    position: relative;
}

.info {
    display: flex;
    justify-content: center;
}

.dl {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5rem;
}

.dl-container {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    align-content: center;
}

.dl-container dt {
    padding: 0.5rem 1.5rem;
    border-radius: 62.5rem;
    background: #3A72FD;
    color: #FFF;
    text-align: center;
    font-family: 'Paperlogy-7Bold';
    font-size: 1.25rem;
    font-style: normal;
    line-height: 130%;
    letter-spacing: -0.025rem;
}

.dl-container dd {
    flex: 1;
    color: #FFF;
    font-family: 'Paperlogy-4Regular';
    font-size: 2.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 130%;
    letter-spacing: -0.05rem;
}

.note {
    width: 100%;
    max-width: 57.8125rem;
    margin: 5rem auto;
    border-bottom-left-radius: 0.625rem;
    border-bottom-right-radius: 0.625rem;
}

.note img {
    width: 100%;
    max-width: 57.8125rem;
}

/* ===== Door Overlay for .note ===== */
/* ===== Door Overlay for .note (blur 강화) ===== */
.note {
    position: relative;
    overflow: hidden;
}

/* 기본값: 문 닫힘 상태 블러 강도 */
.note.door-ready {
    --door-blur: 6px;
}

/* 문 열림 시 블러 0 */
.note.door-ready.doors-open {
    --door-blur: 0px;
}

.note.door-ready::before,
.note.door-ready::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    /* before: left half */
    width: 50%;
    background: rgba(255, 255, 255, 0.5);
    pointer-events: none;
    z-index: 2;
    transform: translateX(0);
    /* transform + blur 함께 전환 */
    transition:
        transform 1000ms cubic-bezier(.22, 1, .36, 1),
        backdrop-filter 350ms ease,
        -webkit-backdrop-filter 350ms ease;
    /* 닫힘 상태에서만 블러 적용 (열림 시 0으로) */
    backdrop-filter: blur(var(--door-blur, 6px));
    -webkit-backdrop-filter: blur(var(--door-blur, 6px));
    /* iOS/Safari */
    will-change: transform, backdrop-filter;
}

.note.door-ready::after {
    inset: 0 0 0 auto;
    /* after: right half */
}

/* 문 열림 상태: 좌우로 슬라이드 아웃 */
.note.door-ready.doors-open::before {
    transform: translateX(-100%);
}

.note.door-ready.doors-open::after {
    transform: translateX(100%);
}

.event-title p {
    color: #001446;
    text-align: center;
    font-family: Paperlogy-4Regular;
    font-size: 2.5rem;
    font-style: normal;
    line-height: normal;
    letter-spacing: -0.1rem;
}

.event-title p b {
    font-family: Paperlogy-6SemiBold;
}

.event-title h2 {
    color: #316AF6;
    text-align: center;
    font-family: Paperlogy-6SemiBold;
    font-size: 3.75rem;
    font-style: normal;
    line-height: normal;
    letter-spacing: -0.15rem;
    transform: none;
    will-change: transform;
}

/* 글자 기본 상태 */
.event-title .char {
    display: inline-block;
    opacity: 0;
    transform: translateY(8px) scale(0.92);
    will-change: transform, opacity;
}

/* 트리거: 글자별 팝 */
.event-title.in .char {
    animation: charPop .6s cubic-bezier(.2, .7, .2, 1.1) both;
}

/* h2 확대→원복 (글자 튐이 끝난 뒤 실행) */
.event-title.h2-grow h2 {
    animation: growBack .6s ease both;
}

@keyframes charPop {
    0% {
        opacity: 0;
        transform: translateY(8px) scale(0.92)
    }

    60% {
        opacity: 1;
        transform: translateY(-3px) scale(1.04)
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1)
    }
}

@keyframes growBack {
    0% {
        transform: scale(1)
    }

    60% {
        transform: scale(1.08)
    }

    100% {
        transform: scale(1)
    }
}

/* (선택) 혹시 AOS로 부모에 transform/opacity가 걸려 있다면 통짜 이동 방지 */
.event-title[data-aos],
.event-title p[data-aos] {
    transform: none !important;
    opacity: 1 !important;
}

/* 기본 상태: 살짝 흐림+아래쪽, 투명 */
.event-description {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(6px);
    transition: opacity .6s ease, filter .6s ease, transform .6s ease;
}

/* 트리거 시: 또렷하게 등장 */
.event-description.desc-in {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

.press-effect-btn {
    display: block;
    margin: 0 auto 6rem auto;
    padding: 1.19rem 0;
    width: 100%;
    max-width: 52.8125rem;
    border-radius: 62.5rem;
    color: #FFF;
    text-align: center;
    font-family: 'Paperlogy-6SemiBold';
    font-size: 2.75rem;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: -0.11rem;
    border: 1px solid #3D75FF;
}

.blue.press-effect-btn {
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    color: #FFF;
    background: #3D75FF;
    box-shadow: 0 8px #0041E0;
}


.press-effect-btn:active {
    position: relative;
    top: 8px;
    transform: translateY(4px) scale(0.96);
    box-shadow: 0 2px #0537b7;
    transition: transform 0.05s ease, box-shadow 0.05s ease;
}


.blue.press-effect-btn:hover {
    background: #356cf4;
    cursor: pointer;
}

.blue.press-effect-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(120deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.4) 50%,
            rgba(255, 255, 255, 0) 100%);
    transform: skewX(-25deg);
    animation: shine 2.5s infinite;
}

@keyframes shine {
    0% {
        left: -75%;
    }

    100% {
        left: 125%;
    }
}

.box-section {
    margin: 2rem 0 2.44rem 0;
    display: flex;
    align-items: center;
    gap: 2rem;
    width: 100%;
}

.box-section .box-container {
    width: 100%;
    height: 21.25rem;
    background-color: #fff;
    border-radius: 0.625rem;
}

.box-section .box {
    width: 100%;
    background-size: 100%;
    background-repeat: no-repeat;
    border-radius: 0.625rem;
    /* background-position: center -15px; */
}

.flex-column-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.box-section .box1 .text-group {
    text-align: right;
}

.box-section .box1 .text-group small {
    display: block;
    padding-top: 3rem;
    padding-right: 1rem;
    color: #001446;
    text-align: right;
    font-family: "Pretendard";
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: -0.035rem;
}

.box-section .text-group {
    padding-top: 6.25rem;
    width: 100%;
    aspect-ratio: 14 / 16;
}

.box-section .text-group .badge {
    margin-bottom: 0.62rem;
    width: 100%;
    max-width: 3.25rem;
}

.box-section .text-group .badge img {
    width: 100%;
}

.box-section .text-group p {
    color: #404040;
    text-align: center;
    font-family: 'Paperlogy-4Regular';
    font-size: 2rem;
    font-style: normal;
    line-height: normal;
    letter-spacing: -0.08rem;
    line-height: 1.25 !important;
}

.box-section .text-group .blue {
    color: #316AF6;
    font-family: 'Paperlogy-5Medium';
}

.box-section .box1 {
    background-image: url('../img/box1.png');
}

.box-section .box2 {
    background-image: url('../img/box2.png');
}

.box-section .box3 {
    background-image: url('../img/box3.png');
}

.wrap.second,
.intro.last {
    background: #F3F6FF;
}

/* ===== 압도적 차이, 이감은 진짜입니다 [START] ===== */
.intro.last {
    padding: 6.69rem 0 9.5rem 0;
}

.intro.last.intro-container {
    max-width: 57.8125rem;
    margin: 0 auto;
}

.eyebrow {
    color: #002375;
    text-align: center;
    font-family: 'Paperlogy-3Light';
    font-size: 2.5rem;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: -0.1rem;
}

.intro.last .intro-container .headline {
    color: #002375;
    text-align: center;
    font-family: 'Paperlogy-7Bold';
    font-size: 5rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: -0.2rem;
}

.intro.last .intro-container .headline .accent {
    color: #6B20FF;
}

.ranks {
    padding: 5rem 0 1.5rem 0;
    color: #002375;
    text-align: right;
    font-family: 'Paperlogy-3Light';
    font-size: 2.5rem;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: -0.1rem;
    text-align: center;
}

.ranks .no1 {
    color: #002375;
    font-family: 'Paperlogy-7Bold';
    font-size: 3.75rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: -0.15rem;
}

.footnote {
    padding: 0 0 6.9rem 0;
    color: #002375;
    text-align: center;
    font-family: "Pretendard";
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 150% !important;
    letter-spacing: -0.035rem;
    opacity: 0.4 !important;
}

.cta {
    margin-bottom: 4.5rem;
    color: #002375;
    text-align: center;
    font-family: 'Paperlogy-3Light';
    font-size: 2.5rem;
    font-style: normal;
    font-weight: 300;
    line-height: 150% !important;
    letter-spacing: -0.1rem;
}

.cta .accent {
    color: #6B20FF;
    font-family: 'Paperlogy-5Medium';
    font-size: 2.5rem;
    font-style: normal;
    font-weight: 500;
    line-height: 150% !important;
    letter-spacing: -0.1rem;
}

.intro.last .press-effect-btn {
    margin: 0 auto;
    max-width: 62.5rem;
    border: 1px solid #8C53FF;
}

.intro.last .press-effect-btn:hover {
    background: #7d46ec;
    cursor: pointer;
}

.intro.last .press-effect-btn {
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    color: #FFF;
    background: #8C53FF;
    box-shadow: 0 8px #6728E4;
}

.intro.last .press-effect-btn:active {
    box-shadow: 0 2px #5a21cd;
}

/* ===== footer ===== */
.event-footer {
    margin: 0 auto;
    padding: 5rem 1.5rem 6.5rem 1.5rem;
    width: 100%;
    max-width: 57.937rem;
}

.footer-block {
    margin-bottom: 2rem;
}

.footer-title {
    display: flex;
    align-items: center;
    height: 2.25rem;
    color: #002375;
    font-family: "Pretendard";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 600;
    line-height: 150% !important;
    letter-spacing: -0.06rem;
}

.num-list {
    list-style: decimal;
    list-style-position: outside;
    margin: 0;
    padding-left: 1.25em;
    color: #002375;
    font-family: "Pretendard";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 300;
    line-height: 150% !important;
    letter-spacing: -0.06rem;
}

.num-list .emphasis {
    color: #CB1400;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 600;
    line-height: 150% !important;
    letter-spacing: -0.06rem;
}

.num-list li {
    text-indent: 0;
    padding-left: 0.3em;
}

.box2 .text-group,
.box3 .text-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

/* headline 개별 조각 공통 */
.figure .headline .chunk {
    display: inline-block;
    /* transform용 */
    opacity: 0;
    transform: translateX(-14px);
    will-change: transform, opacity;
}

/* in 상태일 때: 왼→오 순차 등장(지연은 JS가 --d로 주입) */
.figure.in .headline .chunk {
    animation: reveal .6s ease forwards var(--d, 0s);
}

/* accent 단어는 팝 효과 추가 (자신의 지연 + 0.35s 후 시작) */
.figure.in .headline .chunk.accent-pop {
    animation:
        reveal .6s ease forwards var(--d, 0s),
        pop .45s ease forwards calc(var(--d, 0s) + .35s);
}

/* 리스트 기본은 네 스타일 유지 가정 */
.ranks {
    visibility: hidden;
    list-style: none;
}

/* 단어 조각 공통 */
.ranks .chunk {
    display: inline-block;
    /* transform 용 */
    opacity: 0;
    letter-spacing: -0.1rem;
    transform: translateX(-14px);
    will-change: transform, opacity;
}
/* li가 in 되면, 자신의 chunk들을 왼→오 순서로 등장
   (지연값은 JS가 --d 로 주입) */
.ranks li.in .chunk {
    animation: reveal .6s ease forwards var(--d, 0s);
}

/* no1 팝(자기 지연 + 0.35s 이후 시작) */
.ranks li.in .no1 {
    display: inline-block;
    /* scale 용 */
    /* transform-origin: 50% 60%; */
    animation:
        reveal .6s ease forwards var(--d, 0s),
        pop .45s ease forwards calc(var(--d, 0s) + .35s);
}

/* 키프레임 */
@keyframes reveal {
    from {
        opacity: 0;
        transform: translateX(-14px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes pop {
    0% {
        transform: scale(1);
    }

    40% {
        transform: scale(1.12);
    }

    100% {
        transform: scale(1);
    }
}

/* 접근성: 모션 최소화 선호 시 */
@media (prefers-reduced-motion: reduce) {
    .figure .headline .chunk {
        animation: none !important;
        opacity: 1;
        transform: none;
    }
}



/* 태블릿만 */
@media (max-width: 1023px) {

    html,
    body {
        overflow-x: hidden;
    }

    dotlottie-player {
        width: 200px;
        height: 200px;
    }

    .box-section {
        /* flex-direction: column; */
    }

    .eyebrow span {
        font-size: 2.5rem;
    }

    .hero h1 {
        font-size: 4.875rem;
        line-height: 1.25;
    }

    .hero .highlight .apple-1 {
        left: -8px;
        top: -16px;
        width: 2.5rem;
    }

    .hero .highlight .apple-2 {
        right: -12px;
        bottom: -11px;
        width: 2rem;
    }

    .watermark p {
        font-size: 4rem;
    }

    /* 줄 위치(더 촘촘) & 방향/속도 */
    .watermark p:nth-child(1) {
        top: 5%;
        --dur: 34s;
        opacity: 1;
    }

    .watermark p:nth-child(2) {
        top: 17%;
        --dur: 40s;
        animation-name: marquee-rev;
        opacity: 1;
    }

    .watermark p:nth-child(3) {
        top: 29%;
        --dur: 32s;
        opacity: 0.75;
    }

    .watermark p:nth-child(4) {
        top: 41%;
        --dur: 38s;
        animation-name: marquee-rev;
        opacity: 0.75;
    }

    .watermark p:nth-child(5) {
        top: 53%;
        --dur: 30s;
        opacity: 0.5;
    }

    .info {
        justify-content: start;
    }

    .prod .prod-item {
        padding: 6.5rem 0 4rem 0;
    }

    .phone-frame {
        padding: 4rem 0 1rem 0;
    }

    .dl-container {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-wrap: wrap;
    }

    .dl {
        gap: 1rem;
    }

    .dl-container dt {
        font-size: 1rem;
    }

    .dl-container dd {
        font-size: 1.7rem;
    }

    .note {
        margin: 4rem auto;
    }

    .event-hero {
        padding: 0 1rem 3rem 1rem;
    }

    .event-title p {
        font-size: 1.25rem;
    }

    .prize-product-img .thumbnail-final-item img {
        margin: 2rem 0 0 0;
    }

    .event-title h2 {
        font-size: 2.75rem;
    }

    .prize-product-img {
        padding: 3.06rem 0 1.56rem 0;
    }

    .event-description {
        margin-top: 1.4rem;
        font-size: 1rem;
    }
}

@media (max-width: 1000px) {
    .press-effect-btn {
        font-size: 1.5rem;
    }

    .press-effect-btn,
    .intro.last .press-effect-btn {
        max-width: 40.5rem;
    }

}

@media (max-width: 900px) {
    .box-section .text-group {
        padding-top: 5.25rem;
    }

    .box-section .box-container {
        height: 17.25rem;
    }

    .box-section .box1 .text-group small {
        padding-top: 1.5rem;
    }

    .box-section .text-group p {
        font-size: 1.5rem;
    }

    .box-section .text-group .badge {
        max-width: 4.25rem;
    }
}

/* 폰만 */
@media (max-width: 575px) {
    .eyebrow span {
        font-size: 2rem;
    }

    .hero h1 {
        font-size: 3.875rem;
        line-height: 1.25;
    }

    .watermark p {
        font-size: 2.25rem;
    }

    .watermark p:nth-child(1) {
        top: 0%;
        --dur: 34s;
        opacity: 1;
    }

    .watermark p:nth-child(2) {
        top: 14%;
        --dur: 40s;
        animation-name: marquee-rev;
        opacity: 1;
    }

    .watermark p:nth-child(3) {
        top: 28%;
        --dur: 32s;
        opacity: 0.75;
    }

    .watermark p:nth-child(4) {
        top: 42%;
        --dur: 38s;
        animation-name: marquee-rev;
        opacity: 0.75;
    }

    .watermark p:nth-child(5) {
        top: 56%;
        --dur: 30s;
        opacity: 0.5;
    }

    .dl-container dd {
        font-size: 1.25em;
    }

    .prod .prod-item {
        padding: 1.5rem 0 2rem 0;
    }

    .prize-product-img .thumbnail-final-item img {
        max-width: 13rem;
    }

    .note {
        margin: 2rem auto;
    }

    .event-title h2 {
        font-size: 2.25rem;
    }

    .box-section {
        flex-direction: column;
    }

    .box-section .text-group p {
        font-size: 2rem;
    }

    .box-section .box-container {
        height: auto;

    }

    .box-section .text-group {
        aspect-ratio: 1.2;
        padding-top: 7.25rem;
    }

    .press-effect-btn {
        font-size: 0.8rem;
        letter-spacing: 0;
        padding: 0.5rem 0;
    }

    .intro.last .press-effect-btn {
        box-shadow: 0 5px #6728E4;
    }

    .m-pb-5-5rem {
        padding-bottom: 5.5rem;
    }

    .box-section .box1 .text-group small {
        padding-top: 4.5rem;
        padding-bottom: 1rem;
    }

    .event-footer {
        padding: 5rem 1.5rem 4rem 1.5rem;
    }

    .eyebrow {
        font-size: 1.5rem;
    }

    .intro.last .intro-container .headline {
        font-size: 2.75rem;
    }

    .ranks {
        padding: 3rem 0 1.5rem 0;
        font-size: 1.5rem;
    }

    .ranks .no1 {
        font-size: 2.5rem;
    }

    .intro.last {
        padding: 6rem 0 6rem 0;
    }

    .cta {
        margin-bottom: 2.5rem;
    }

    .cta,
    .cta .accent {
        font-size: 1.5rem;
    }

    .footnote {
        padding: 0 0 4rem 0;
    }

    .footer-title,
    .num-list,
    .num-list .emphasis {
        font-size: 1rem;
    }

    .blue.press-effect-btn {
        box-shadow: 0 5px #0041E0;
    }
}