@font-face {
    font-family: 'T-Money-Dungunbaram';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/TmoneyRoundWindRegular.woff') format('woff');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TMoneyDungunbaram';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/TmoneyRoundWindRegular.woff') format('woff');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'TMoneyDungunbaram';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/TmoneyRoundWindExtraBold.woff') format('woff');
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'Suit';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_suit@1.0/SUIT-Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Suit';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_suit@1.0/SUIT-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Bold.woff') format('woff');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-SemiBold.woff') format('woff');
    font-weight: 600;
    font-display: swap;
}


@font-face {
    font-family: 'TMoneyDungunbaram';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/TmoneyRoundWindExtraBold.woff') format('woff');
    font-weight: 800;
    font-display: swap;
}
 


.catfesta-wrap, .catfesta-wrap * { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
}

.catfesta-wrap {
    --bg: #F2F0EC;
    --ink: #1C1C1C;
    --ink2: #5A5650;
    --line: rgba(28,28,28,0.1);
    --accent: #C13D33;
    --accent2: #D96B63;
    --pale: #F5E8E7;
    --white: #FAFAF8;
    --muted: #A8A49E;
    
    background: var(--bg) !important;
    font-family: 'Noto Sans KR', sans-serif;
    color: var(--ink);
    overflow-x: hidden;
    position: relative;
    width: 100%;
    min-height: 100vh;
    z-index: 10;
}

.catfesta-wrap .cf-section { 
    display: none !important; 
    min-height: 100vh; 
    position: relative; 
}

.catfesta-wrap .cf-section.is-active { 
    display: flex !important; 
    flex-direction: column; 
}

.catfesta-wrap #page-hero { justify-content: center; align-items: center; text-align: center; padding: 80px 40px; overflow: hidden; }

.catfesta-wrap .grid-bg {
    position: absolute; inset: 0;
    background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(ellipse 65% 65% at 50% 50%, black 20%, transparent 100%);
}

.catfesta-wrap .hero-orb {
    position: absolute; width: 700px; height: 700px;
    background: radial-gradient(circle, rgba(193,61,51,0.1) 0%, transparent 68%);
    left: 50%; top: 50%; transform: translate(-50%,-50%);
    animation: cf-breathe 7s ease-in-out infinite; pointer-events: none;
}
@keyframes cf-breathe { 0%,100%{transform:translate(-50%,-50%) scale(1)} 50%{transform:translate(-50%,-50%) scale(1.1)} }

.catfesta-wrap .brand-row { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 80px; opacity: 0; animation: cf-up 0.8s 0.1s forwards; }
.catfesta-wrap .brand-logo { width:60vw; height:auto; }

.catfesta-wrap .hero-live {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--pale); border: 1px solid rgba(193,61,51,0.2);
    border-radius: 100px; padding: 7px 16px; font-size: 11px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
    margin-bottom: 32px; opacity: 0; animation: cf-up 0.8s 0.2s forwards;
}
.catfesta-wrap .live-dot { width:7px; height:7px; background: var(--accent2); border-radius:50%; animation: cf-blink 2s infinite; }
@keyframes cf-blink { 0%,100%{opacity:1} 50%{opacity:0.25} }

.catfesta-wrap .hero-h { font-family: 'TMoneyDungunbaram', serif; font-size: clamp(44px, 8vw, 96px); font-weight: 300; line-height: 1.04; letter-spacing: -0.02em; margin-bottom: 24px; opacity: 0; animation: cf-up 0.9s 0.3s forwards; }
.catfesta-wrap .hero-h em { font-style: italic; color: var(--accent); }

.catfesta-wrap .hero-p { font-size: 16px; font-weight: 300; color: var(--ink2); line-height: 1.85; max-width: 380px; margin: 0 auto 56px; opacity: 0; animation: cf-up 0.9s 0.45s forwards; }

.catfesta-wrap .hero-cta { display: inline-flex; align-items: center; gap: 14px; background: var(--ink); color: var(--white); font-family: 'Noto Sans KR', sans-serif; font-size: 15px; font-weight: 600; padding: 18px 44px; border-radius: 100px; border: none; cursor: none; letter-spacing: 0.04em; opacity: 0; animation: cf-up 0.9s 0.6s forwards; transition: all 0.3s cubic-bezier(.22,.68,0,1.2); position: relative; overflow: hidden; }
.catfesta-wrap .hero-cta::after { content:''; position:absolute; inset:0; background: var(--accent); transform: translateX(-101%); transition: transform 0.38s cubic-bezier(.22,.68,0,1.2); }
.catfesta-wrap .hero-cta:hover::after { transform: translateX(0); }
.catfesta-wrap .hero-cta span { position: relative; z-index:1; }
.catfesta-wrap .hero-cta:hover { transform: scale(1.03); box-shadow: 0 12px 48px rgba(193,61,51,0.28); }

.catfesta-wrap .hero-stats { display: flex; gap: 56px; justify-content: center; margin-top: 80px; opacity: 0; animation: cf-up 0.9s 0.75s forwards; }
.catfesta-wrap .stat-n { font-family: 'Playfair Display', serif; font-size: 34px; font-weight: 700; display: block; }
.catfesta-wrap .stat-l { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }

/* ─── FORM ─── */
.catfesta-wrap #page-form { flex-direction: row; }
.catfesta-wrap .form-left { width: 320px; flex-shrink: 0; background: var(--ink); padding: 5px 20px !important; display: flex; flex-direction: column; justify-content: space-between; min-height: 70vh; position: sticky; top: 0; }
@media(max-width:768px){ .catfesta-wrap #page-form{flex-direction:column} .catfesta-wrap .form-left{width:100%;min-height:auto;position:relative;padding:36px 24px} }
.catfesta-wrap .fl-h { font-size: 20px; font-weight: 700; color: #fff; line-height: 1.4; margin-bottom: 14px; }
.catfesta-wrap .fl-p { font-size: 13px; font-weight: 300; color: rgba(255,255,255,0.38); line-height: 1.85; }
.catfesta-wrap .fl-cat { font-size: 88px; text-align: center; opacity: 0.2; margin-top: auto; filter: grayscale(1); }
.catfesta-wrap .form-right { flex:1; padding: 36px 30px; overflow-y: auto; }

.catfesta-wrap .step-lbl { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); font-weight:700; margin-bottom: 6px; }
.catfesta-wrap .form-h { font-size: 22px; font-weight: 700; margin-bottom: 36px; }
.catfesta-wrap .ff { margin-bottom: 32px; }
.catfesta-wrap .fl { display:block; font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform:uppercase; color: var(--ink2); margin-bottom: 12px; }
.catfesta-wrap .ti { width: 100%; padding: 14px 18px; background: var(--white); border: 1.5px solid var(--line); border-radius: 12px; font-size: 15px; font-family: 'Noto Sans KR', sans-serif; outline: none; transition: border-color 0.2s; }
.catfesta-wrap .tag-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 600px) {
    .catfesta-wrap .tag-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}
.catfesta-wrap .tp { padding: 10px 18px; text-align:center;   background: var(--white); border: 1.5px solid var(--line); border-radius: 100px; font-size: 15px; font-weight: 500; cursor: none; transition: all 0.18s; user-select: none; }
.catfesta-wrap .tp.on { background: var(--accent); border-color: var(--accent); color: #fff; text-align:center;}
.catfesta-wrap .submit-row { display: flex; align-items: center; gap: 16px; margin-top: 36px; }
.catfesta-wrap .submit-btn { flex:1; padding: 18px; background: var(--ink); color: var(--white); font-family: 'Noto Sans KR', sans-serif; font-size: 15px; font-weight:700; border: none; border-radius: 14px; cursor: none; transition: all 0.3s; position: relative; overflow: hidden; }
.catfesta-wrap .submit-btn::after { content:''; position:absolute; inset:0; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 0.38s cubic-bezier(.22,.68,0,1.2); }
.catfesta-wrap .submit-btn:hover::after { transform: scaleX(1); }
.catfesta-wrap .submit-btn > span { position:relative; z-index:1; }
.catfesta-wrap .back-btn { padding: 18px 20px; background: transparent; border: 1.5px solid var(--line); border-radius: 14px; font-family: 'Noto Sans KR', sans-serif; font-size: 14px; cursor: none; transition: all 0.2s; }

/* ─── LOADING & RESULT ─── */
.catfesta-wrap #page-loading { justify-content: center; align-items: center; background: var(--ink); }
.catfesta-wrap .load-marquee { position: absolute; white-space: nowrap; font-family: 'Playfair Display', serif; font-size: clamp(72px,14vw,160px); font-weight: 700; font-style: italic; color: rgba(255,255,255,0.028); animation: cf-marquee 10s linear infinite; }
@keyframes cf-marquee { from{transform:translateX(100vw)} to{transform:translateX(-100%)} }
.catfesta-wrap .load-inner { text-align: center; position: relative; z-index:1; }
.catfesta-wrap .load-ring-wrap { width: 80px; height: 80px; margin: 0 auto 28px; }
.catfesta-wrap .load-ring-wrap svg { width:100%; height:100%; animation: cf-spinr 2s linear infinite; }
@keyframes cf-spinr { to{transform:rotate(360deg)} }
.catfesta-wrap circle { fill: none; stroke-width: 2; }
.catfesta-wrap .rg-bg { stroke: rgba(255,255,255,0.07); }
.catfesta-wrap .rg-fg { stroke: #E8918B; stroke-dasharray: 188; stroke-dashoffset: 55; stroke-linecap: round; }
.catfesta-wrap .load-lbl { font-size: 11px; letter-spacing:0.26em; color: rgba(255,255,255,0.3); display:block; margin-bottom:10px; }
.catfesta-wrap .load-status { font-family:'Playfair Display',serif; font-size:28px; font-style:italic; color:rgba(255,255,255,0.8); transition: opacity 0.3s; }

.catfesta-wrap .res-hd { background: var(--ink); padding: 52px 60px 60px; position: relative; overflow: hidden; }
.catfesta-wrap .res-hd-orb { position:absolute; right:-80px; top:-80px; width:380px; height:380px; background: radial-gradient(circle, rgba(193,61,51,0.18) 0%, transparent 70%); }
.catfesta-wrap .res-eye { font-size: 11px; letter-spacing:0.22em; color: var(--accent2); margin-bottom: 18px; display: flex; align-items: center; gap: 12px; }
.catfesta-wrap .res-eye::before { content:''; width:28px; height:1.5px; background:var(--accent2); }
.catfesta-wrap .res-title { font-family: 'TMoneyDungunbaram', sans-serif; font-weight: 400; font-size: clamp(30px,5vw,56px); font-weight:700; color:#fff; margin-bottom:10px; }
.catfesta-wrap .res-title em { font-family: 'TMoneyDungunbaram', sans-serif;  font-weight: 800; font-style: normal;}  
.catfesta-wrap .res-sub { font-size:13px; font-weight:300; color:rgba(255,255,255,0.38); }
.catfesta-wrap .res-body { padding: 36px 30px; }

.catfesta-wrap .rec-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 18px; margin-bottom: 28px; }
@media(max-width:900px){ .catfesta-wrap .rec-grid{grid-template-columns:1fr} }
.catfesta-wrap .rc { background: var(--white); border: 1px solid var(--line); border-radius: 20px; padding: 26px; opacity: 0; transform: translateY(18px); transition: box-shadow 0.3s, transform 0.3s; position: relative; overflow: hidden; margin:35px 25px; padding-bottom: 60px;}
.catfesta-wrap .rc::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition: transform 0.4s; }
.catfesta-wrap .rc:hover { box-shadow: 0 14px 44px rgba(0,0,0,0.07); transform: translateY(-4px); }
.catfesta-wrap .rc:hover::after { transform: scaleX(1); }
.catfesta-wrap .rc.anim { animation: cf-cardUp 0.5s forwards; }
@keyframes cf-cardUp { to{opacity:1; transform:translateY(0)} }

.catfesta-wrap .rc.main { display: flex; align-items: center; gap: 24px; background: var(--pale); border-color: rgba(193,61,51,0.12); }
@media(max-width:900px){ .catfesta-wrap .rc.main{display: flex; align-items: flex; justify-content: center; flex-direction: column;} }
.catfesta-wrap .pi {flex-shrink:0; width:160px; height:160px; background: rgba(193,61,51,0.1); border-radius:18px; display:flex; align-items:center; justify-content:center; }
.catfesta-wrap .pi.sm { font-size:30px; width:58px; height:58px; border-radius:14px; margin-bottom:14px; }
.catfesta-wrap .best { display:inline-flex; align-items:center; gap:5px; background:var(--accent); color:#fff; font-size:10px; font-weight:700; padding:4px 10px; border-radius:100px; margin-bottom:10px; }
.catfesta-wrap .rc-name { font-size:17px; font-weight:700; margin-bottom:6px; }
.catfesta-wrap .rc-desc { font-size:13px; font-weight:300; line-height:1.7; }
.catfesta-wrap .ok { display:inline-flex; align-items:center; gap:6px; background: rgba(193,61,51,0.1); color:var(--accent); font-size:11px; font-weight:700; padding:5px 12px; border-radius:100px; margin-top:12px; margin-right:6px; }
.catfesta-wrap .rc-button {
    margin: 20px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 0;
    background: #c0392b;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    border-radius: 12px;
    text-decoration: none;
    box-sizing: border-box;
    transition: background 0.15s, transform 0.1s, box-shadow 0.1s;
}
.catfesta-wrap .rc-button:hover {
    background: #a93226;
}

.catfesta-wrap .rc-button:active {
    background: #8e1a0e;
    transform: translateY(2px);
    box-shadow: 0 0px 0 #8e1a0e;
}

.catfesta-wrap .rc-button-wrap {
    position: relative;
    display: inline-block;
    width: 100%;
}

.catfesta-wrap .rc-tooltip {
    position: absolute;
    bottom: -42px;
    left: 50%;
    transform: translateX(-50%);
    background: #2d2d2d;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 8px;
    white-space: nowrap;
}

/* 위쪽 삼각형 화살표 */
.catfesta-wrap .rc-tooltip::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 0 6px 6px 6px;
    border-style: solid;
    border-color: transparent transparent #2d2d2d transparent;
}



.catfesta-wrap .fut { background: var(--ink); padding: 52px 60px; }
.catfesta-wrap .fut-h { font-family: 'Suit', serif; font-size:22px; font-weight:800; color:#fff; margin-bottom:24px; }
.catfesta-wrap .fut-pills { display:flex; flex-wrap:wrap; gap:12px; }
.catfesta-wrap .fut-pill { display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); border-radius:100px; padding:12px 20px; transition: all 0.25s; }
.catfesta-wrap .fut-pill:hover { background:rgba(65,182,75,0.1); border-color:rgba(65, 182, 75, 0.28); }
.catfesta-wrap .fut-pill-t { font-size:13px; font-weight:500; color:rgba(255,255,255,0.6); }
.catfesta-wrap .soon { font-size:10px; font-weight:700; color:#41B64A; background:rgba(65,182,75,0.1); padding:2px 8px; border-radius:100px; }

.catfesta-wrap .like-sec { padding: 30px 60px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; }
.catfesta-wrap .like-q { font-family:'Suit',serif; font-size:26px; margin-bottom:6px; }
.catfesta-wrap .like-btn { display:flex; align-items:center; gap:14px; background: transparent; border: 1.5px solid var(--line); border-radius:100px; padding:16px 32px; cursor:none; transition:all 0.25s; }
.catfesta-wrap .like-btn:hover { border-color:var(--accent2); background:var(--pale); }
.catfesta-wrap .like-btn.liked {
    border-color: var(--accent);
    background: var(--pale);
    color: var(--accent);
}

.catfesta-wrap .like-btn.liked .hrt{
    color: var(--accent);
}

.catfesta-wrap .like-btn.liked .like-n{
    color: var(--accent);
}


.catfesta-wrap .hrt { font-size:22px; transition:transform 0.3s cubic-bezier(.22,.68,0,1.5); }
.catfesta-wrap .like-btn:hover .hrt { transform:scale(1.3); }
.catfesta-wrap .like-n { font-family:'Playfair Display',serif; font-size:30px; font-weight:700; }

.catfesta-wrap footer { border-top: 1px solid var(--line); padding: 22px 60px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.catfesta-wrap .fb { font-size:11px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; }
.catfesta-wrap .fc { font-size:11px; color:var(--muted); }

.cat_dungun{ font-family: 'TMoneyDungunbaram', sans-serif; font-weight:600; }

@keyframes cf-up { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }


/* 여백 제거 */

html, body {
    margin:0 !important;
    padding:0 !important;
}

.site {
    margin:0 !important;
    padding:0 !important;
}

.site-content {
    margin-bottom:0 !important;
    padding-bottom:0 !important;
}

.ast-container {
    padding-bottom:0 !important;
}

.catfesta-wrap{
    margin-bottom:0 !important;
}

