/*
 * tips402/style.css  v1.0.0
 * 텔레그램 선물 조합(Gift Crafting) 가이드
 * 테마: 매직 핑크 #f472b6 (pink-400) + 딥 알케미스트 다크 #120408
 *      (마법적 변환·연금술·크래프팅·스파클·희귀 업그레이드)
 * 그누보드5 격리 | BEM | 모바일 퍼스트
 *
 * 기존과 구별:
 * - tips386: Rose-500 #f43f5e (red-pink, 더 붉은 로즈)
 * - tips381: Hot Magenta (더 채도 높은 마젠타)
 * - tips393: Burgundy #be123c (어두운 버건디 레드)
 * - tips402: Electric Pink #f472b6 (pink-400, "캔디핑크·마법·스파클")
 *   → 선명하고 밝은 핑크, "마법 조합·변환" 테마에 최적
 *   → base #120408 (핑크 계열 보색 어두운 블랙-로즈)
 */

/* ─── 전체 리셋 ─── */
#tg-402-wrapper,
#tg-402-wrapper * {
    box-sizing: border-box; margin: 0; padding: 0; border: none;
    outline: none; text-decoration: none; list-style: none; background: none; font-style: normal;
}
#tg-402-wrapper h1, #tg-402-wrapper h2 { font-size: inherit; font-weight: inherit; color: inherit; line-height: 1.35; }
#tg-402-wrapper strong { font-weight: 700; color: inherit; }
#tg-402-wrapper p { margin-bottom: 14px !important; line-height: 1.85 !important; }
#tg-402-wrapper p:last-child { margin-bottom: 0 !important; }
#tg-402-wrapper button { cursor: pointer; }
#tg-402-wrapper a { color: inherit; }
#tg-402-wrapper ol { list-style: none; }

/* ─── 디자인 토큰 ─── */
#tg-402-wrapper {
    --pnk-50:  #fdf2f8;
    --pnk-100: #fce7f3;
    --pnk-200: #fbcfe8;
    --pnk-300: #f9a8d4;
    --pnk-400: #f472b6;   /* 메인 매직 핑크 */
    --pnk-500: #ec4899;
    --pnk-600: #db2777;
    --grn-400: #4ade80;
    --grn-500: #22c55e;
    --blu-400: #60a5fa;
    --ylw-400: #facc15;
    --red-400: #f87171;
    --dk-base: #120408;   /* 딥 알케미스트 다크 */
    --sl-50:   #f8fafc;
    --sl-100:  #f1f5f9;
    --sl-200:  #e2e8f0;
    --sl-400:  #94a3b8;
    --sl-500:  #64748b;
    --sl-800:  #1e293b;
    --sl-900:  #0f172a;
    --text-sub:#475569;
    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 24px;
    --shadow-sm:  0 4px 14px rgba(0,0,0,.06);
    --shadow-pnk: 0 6px 28px rgba(244,114,182,.28);
    --fs-sm:   .9rem;
    --fs-base: 1rem;
    --fs-lg:   1.2rem;

    font-family: 'Pretendard', 'Noto Sans KR', sans-serif;
    font-size: var(--fs-base); color: var(--sl-800); line-height: 1.7;
    max-width: 1100px; margin: 0 auto; width: 100%;
}

/* Material Symbols */
#tg-402-wrapper .material-symbols-outlined {
    font-family: 'Material Symbols Outlined', sans-serif !important;
    font-weight: normal !important; font-style: normal !important;
    font-size: inherit; line-height: 1;
    display: inline-block; white-space: nowrap; direction: ltr;
    -webkit-font-smoothing: antialiased; vertical-align: middle;
    text-transform: none; letter-spacing: normal; word-wrap: normal;
    font-feature-settings: 'liga';
}

/* 스크롤 등장 */
#tg-402-wrapper .tg-402-motion { opacity: 0; transform: translateY(24px); transition: opacity .55s ease, transform .55s ease; }
#tg-402-wrapper .tg-402-motion.is-visible { opacity: 1; transform: translateY(0); }

/* ══════════════════════════
   히어로
════════════════════════════ */
#tg-402-wrapper .tg-402-hero {
    position: relative; background: var(--dk-base);
    border-radius: var(--radius-lg); padding: 64px 28px 72px; text-align: center; overflow: hidden;
}
#tg-402-wrapper .tg-402-hero__bg {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(ellipse 60% 55% at 50% 40%, rgba(244,114,182,.12) 0%, transparent 55%),
        radial-gradient(ellipse 30% 25% at 15% 75%, rgba(236,72,153,.08) 0%, transparent 50%);
}
/* 스파크 이모지 플로팅 */
#tg-402-wrapper .tg-402-hero__sparks { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
#tg-402-wrapper .tg-402-spark { position: absolute; opacity: 0; animation: tg402SparkFloat ease-in-out infinite; }
#tg-402-wrapper .tg-402-spark--1 { font-size: 1.6rem; top: 14%; left: 5%;    animation-duration: 4.5s; }
#tg-402-wrapper .tg-402-spark--2 { font-size: 1.2rem; top: 22%; right: 6%;   animation-duration: 3.8s; animation-delay: -1.5s; }
#tg-402-wrapper .tg-402-spark--3 { font-size: 2rem;   bottom: 28%; left: 4%; animation-duration: 5s;   animation-delay: -0.8s; }
#tg-402-wrapper .tg-402-spark--4 { font-size: 1.4rem; bottom: 18%; right:5%; animation-duration: 4s;   animation-delay: -2.2s; }
#tg-402-wrapper .tg-402-spark--5 { font-size: 1.8rem; top: 50%;   left: 45%; animation-duration: 5.5s; animation-delay: -3s; }
@keyframes tg402SparkFloat { 0%,100%{opacity:0;transform:translateY(0) rotate(0deg) scale(.8);}50%{opacity:.58;transform:translateY(-18px) rotate(20deg) scale(1.15);} }
/* 텍스트 */
#tg-402-wrapper .tg-402-hero__inner { position: relative; z-index: 1; max-width: 700px; margin: 0 auto; }
#tg-402-wrapper .tg-402-hero__badge { display:inline-flex; align-items:center; gap:6px; background:rgba(244,114,182,.1); border:1px solid rgba(244,114,182,.28); color:var(--pnk-400); font-size:.85rem; font-weight:700; padding:6px 18px; border-radius:999px; margin-bottom:22px !important; }
#tg-402-wrapper .tg-402-hero__title { font-size:clamp(1.65rem,4.2vw,2.3rem); font-weight:900; color:#fff; line-height:1.28; letter-spacing:-.02em; margin-bottom:16px; }
#tg-402-wrapper .tg-402-hero__title em { font-style:normal; color:var(--pnk-400); text-shadow:0 0 24px rgba(244,114,182,.55); }
#tg-402-wrapper .tg-402-hero__subtitle { color:rgba(255,255,255,.65); line-height:1.8; max-width:540px; margin:0 auto 28px !important; }
#tg-402-wrapper .tg-402-hero__chips { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
#tg-402-wrapper .tg-402-hero__chip { display:inline-flex; align-items:center; gap:6px; background:rgba(244,114,182,.08); border:1px solid rgba(244,114,182,.2); color:var(--pnk-400); font-size:.82rem; font-weight:800; padding:8px 16px; border-radius:999px; }
#tg-402-wrapper .tg-402-hero__chip--ylw { background:rgba(250,204,21,.07); border-color:rgba(250,204,21,.18); color:var(--ylw-400); }
#tg-402-wrapper .tg-402-hero__chip--red { background:rgba(248,113,113,.07); border-color:rgba(248,113,113,.18); color:var(--red-400); }

/* ─── 레이아웃 ─── */
#tg-402-wrapper .tg-402-main { display: flex; flex-direction: column; gap: 28px; }

/* 도입부 */
#tg-402-wrapper .tg-402-intro { background:#fff; border:1px solid var(--sl-200); border-top:4px solid var(--pnk-400); border-radius:var(--radius-md); padding:36px 28px; text-align:center; box-shadow:var(--shadow-sm); }
#tg-402-wrapper .tg-402-intro__icon { font-size:2.4rem; color:var(--pnk-500); margin-bottom:14px; }
#tg-402-wrapper .tg-402-intro__title { font-size:clamp(1.05rem,2.8vw,1.3rem); font-weight:800; color:var(--sl-900); margin-bottom:14px; }
#tg-402-wrapper .tg-402-intro p { color:var(--text-sub); max-width:680px; margin-left:auto; margin-right:auto; }
/* 규칙 그리드 */
#tg-402-wrapper .tg-402-rule-grid { display:grid; grid-template-columns:1fr; gap:12px; max-width:680px; margin:20px auto 0; text-align:left; }
#tg-402-wrapper .tg-402-rule-item { border:1px solid var(--sl-200); border-radius:14px; padding:18px 20px; }
#tg-402-wrapper .tg-402-rule-item--main   { border-color:rgba(244,114,182,.2); background:rgba(244,114,182,.03); }
#tg-402-wrapper .tg-402-rule-item--chance { border-color:rgba(34,197,94,.18); background:rgba(34,197,94,.03); }
#tg-402-wrapper .tg-402-rule-item--warn   { border-color:rgba(248,113,113,.22); background:rgba(248,113,113,.04); }
#tg-402-wrapper .tg-402-rule-item__ico { width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:12px; border:1px solid transparent; }
#tg-402-wrapper .tg-402-rule-item__ico--pink { background:rgba(244,114,182,.1); border-color:rgba(244,114,182,.22); color:var(--pnk-500); }
#tg-402-wrapper .tg-402-rule-item__ico--grn  { background:rgba(34,197,94,.1); border-color:rgba(34,197,94,.22); color:var(--grn-500); }
#tg-402-wrapper .tg-402-rule-item__ico--blue { background:rgba(96,165,250,.1); border-color:rgba(96,165,250,.22); color:var(--blu-400); }
#tg-402-wrapper .tg-402-rule-item__ico--red  { background:rgba(248,113,113,.1); border-color:rgba(248,113,113,.22); color:var(--red-400); }
#tg-402-wrapper .tg-402-rule-item__title { font-size:.92rem; font-weight:800; color:var(--sl-900); margin-bottom:6px !important; }
#tg-402-wrapper .tg-402-rule-item__desc  { font-size:.82rem; color:var(--text-sub); line-height:1.65; margin-bottom:0 !important; }
/* 성공 확률 바 */
#tg-402-wrapper .tg-402-chance-bar-wrap { max-width:560px; margin:24px auto 0; text-align:left; background:var(--sl-50); border:1px solid var(--sl-200); border-radius:14px; padding:18px 22px; }
#tg-402-wrapper .tg-402-chance-bar-wrap__title { font-size:.88rem; font-weight:800; color:var(--sl-800); margin-bottom:14px !important; text-align:center; }
#tg-402-wrapper .tg-402-chance-bars { display:flex; flex-direction:column; gap:10px; }
#tg-402-wrapper .tg-402-cbar { display:flex; align-items:center; gap:10px; }
#tg-402-wrapper .tg-402-cbar__lbl { font-size:.76rem; font-weight:700; color:var(--sl-500); min-width:72px; flex-shrink:0; }
#tg-402-wrapper .tg-402-cbar__track { flex:1; height:8px; background:var(--sl-200); border-radius:999px; overflow:hidden; }
#tg-402-wrapper .tg-402-cbar__fill { height:100%; border-radius:999px; background:linear-gradient(90deg, var(--pnk-400), var(--pnk-600)); width:0; transition:width 1.2s ease; }
#tg-402-wrapper .tg-402-cbar--max .tg-402-cbar__fill { background:linear-gradient(90deg, var(--grn-500), #16a34a); }
#tg-402-wrapper .tg-402-cbar__pct { font-size:.76rem; font-weight:800; color:var(--pnk-600); min-width:36px; text-align:right; flex-shrink:0; }
#tg-402-wrapper .tg-402-cbar__pct--max { color:var(--grn-500); }

/* ─── 공통 섹션 ─── */
#tg-402-wrapper .tg-402-section { background:#fff; border:1px solid var(--sl-200); border-radius:var(--radius-md); padding:44px 32px; box-shadow:var(--shadow-sm); text-align:center; }
#tg-402-wrapper .tg-402-section--dark { background:var(--dk-base); border-color:rgba(244,114,182,.1); }
#tg-402-wrapper .tg-402-section__label { display:inline-flex; align-items:center; gap:7px; font-size:.88rem; font-weight:700; padding:7px 20px; border-radius:999px; margin-bottom:22px; }
#tg-402-wrapper .tg-402-section__label--dark { background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.2); }
#tg-402-wrapper .tg-402-section__label--pink { background:rgba(244,114,182,.08); color:var(--pnk-600); border:1px solid rgba(244,114,182,.18); }
#tg-402-wrapper .tg-402-section__label .material-symbols-outlined { font-size:1rem; }
#tg-402-wrapper .tg-402-section__title--light { color:#fff; font-size:clamp(1.2rem,3vw,1.5rem); font-weight:900; letter-spacing:-.02em; margin-bottom:16px !important; line-height:1.35; }
#tg-402-wrapper .tg-402-section__title { font-size:clamp(1.2rem,3vw,1.5rem); font-weight:900; color:var(--sl-900); letter-spacing:-.02em; margin-bottom:16px; display:flex; align-items:center; justify-content:center; gap:10px; }
#tg-402-wrapper .tg-402-section > p { color:var(--text-sub); max-width:680px; margin-left:auto; margin-right:auto; }
#tg-402-wrapper .tg-402-section__desc--light { color:rgba(255,255,255,.75) !important; margin-bottom:28px !important; }

/* ══════════════════════════
   시뮬레이터
════════════════════════════ */
#tg-402-wrapper .tg-402-sim-wrap { max-width:380px; margin:0 auto; text-align:left; }
#tg-402-wrapper .tg-402-sim-hint { font-size:.7rem; color:rgba(255,255,255,.22); text-align:center; margin-top:8px !important; }
#tg-402-wrapper .tg-402-stage { animation:tg402FadeIn .3s ease; }
@keyframes tg402FadeIn { from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);} }

/* Stage 1: 조합 패널 */
#tg-402-wrapper .tg-402-craft-panel { background:rgba(255,255,255,.04); border:1px solid rgba(244,114,182,.12); border-radius:16px; overflow:hidden; }
#tg-402-wrapper .tg-402-craft-panel__hd { display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.05); }
#tg-402-wrapper .tg-402-craft-panel__hd .material-symbols-outlined { font-size:1.1rem; color:var(--pnk-400); }
#tg-402-wrapper .tg-402-craft-panel__title { font-size:.8rem; font-weight:800; color:rgba(255,255,255,.5); margin-bottom:0 !important; }
/* 메인 선물 + 결과 */
#tg-402-wrapper .tg-402-main-gift { display:flex; align-items:center; gap:10px; padding:14px 16px 10px; }
#tg-402-wrapper .tg-402-main-gift__card { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; background:rgba(255,255,255,.04); border:1px solid rgba(244,114,182,.2); border-radius:12px; padding:12px 8px; text-align:center; }
#tg-402-wrapper .tg-402-main-gift__emoji { font-size:1.8rem; display:block; }
#tg-402-wrapper .tg-402-main-gift__name { font-size:.72rem; font-weight:800; color:rgba(255,255,255,.7); margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-main-gift__sub  { font-size:.6rem; color:rgba(255,255,255,.25); margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-main-gift__arrow { font-size:1.1rem; color:rgba(255,255,255,.2); flex-shrink:0; }
#tg-402-wrapper .tg-402-main-gift__result { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; background:rgba(244,114,182,.05); border:1.5px dashed rgba(244,114,182,.2); border-radius:12px; padding:12px 8px; }
#tg-402-wrapper .tg-402-main-gift__result .material-symbols-outlined { font-size:1.8rem; color:rgba(244,114,182,.3); animation:tg402QuestionPulse 2s ease-in-out infinite; }
@keyframes tg402QuestionPulse { 0%,100%{opacity:.3;}50%{opacity:.7;} }
#tg-402-wrapper .tg-402-main-gift__result-txt { font-size:.72rem; color:rgba(244,114,182,.3); font-weight:700; margin-bottom:0 !important; }
/* 슬롯 레이블 */
#tg-402-wrapper .tg-402-slots-label { font-size:.68rem; font-weight:700; color:rgba(255,255,255,.25); padding:0 16px 8px; }
/* 재료 슬롯 */
#tg-402-wrapper .tg-402-slots { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:0 16px 14px; }
#tg-402-wrapper .tg-402-slot { border-radius:10px; padding:10px 4px; display:flex; flex-direction:column; align-items:center; gap:4px; background:rgba(255,255,255,.03); border:1.5px dashed rgba(255,255,255,.1); transition:all .2s; min-height:64px; justify-content:center; }
#tg-402-wrapper .tg-402-slot .material-symbols-outlined { font-size:1.2rem; color:rgba(255,255,255,.2); }
#tg-402-wrapper .tg-402-slot:hover { background:rgba(244,114,182,.08); border-color:rgba(244,114,182,.3); }
#tg-402-wrapper .tg-402-slot:hover .material-symbols-outlined { color:var(--pnk-400); }
#tg-402-wrapper .tg-402-slot--filled { background:rgba(244,114,182,.08); border:1.5px solid rgba(244,114,182,.25); cursor:default; }
#tg-402-wrapper .tg-402-slot__emoji { font-size:1.3rem; display:block; }
#tg-402-wrapper .tg-402-slot__name { font-size:.52rem; color:rgba(255,255,255,.45); font-weight:700; line-height:1.3; text-align:center; }
/* 성공 확률 게이지 */
#tg-402-wrapper .tg-402-chance { padding:0 16px 14px; }
#tg-402-wrapper .tg-402-chance__row { display:flex; align-items:center; gap:6px; margin-bottom:6px; }
#tg-402-wrapper .tg-402-chance__row .material-symbols-outlined { font-size:.85rem; color:var(--pnk-400); }
#tg-402-wrapper .tg-402-chance__lbl { font-size:.72rem; font-weight:700; color:rgba(255,255,255,.28); flex:1; }
#tg-402-wrapper .tg-402-chance__val { font-size:.9rem; font-weight:900; color:var(--pnk-400); transition:color .3s; }
#tg-402-wrapper .tg-402-chance__val--high { color:var(--grn-400) !important; }
#tg-402-wrapper .tg-402-chance__track { height:8px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; margin-bottom:6px; }
#tg-402-wrapper .tg-402-chance__fill { height:100%; border-radius:999px; background:linear-gradient(90deg, var(--pnk-400), var(--pnk-600)); width:0; transition:width .4s ease, background .3s; }
#tg-402-wrapper .tg-402-chance__fill--high { background:linear-gradient(90deg, var(--grn-500), #16a34a) !important; }
#tg-402-wrapper .tg-402-chance__hint { font-size:.64rem; color:rgba(255,255,255,.2); margin-bottom:0 !important; }
/* Craft 버튼 */
#tg-402-wrapper .tg-402-craft-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:calc(100% - 32px); margin:0 16px 16px; padding:13px; border-radius:10px; background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); color:#fff; font-size:.9rem; font-weight:900; box-shadow:var(--shadow-pnk); transition:transform .18s, opacity .18s; }
#tg-402-wrapper .tg-402-craft-btn:disabled { background:rgba(255,255,255,.07); color:rgba(255,255,255,.2); box-shadow:none; cursor:not-allowed; }
#tg-402-wrapper .tg-402-craft-btn:not(:disabled):hover { transform:translateY(-2px); }
#tg-402-wrapper .tg-402-craft-btn .material-symbols-outlined { font-size:1rem; }

/* Stage 2: 조합 애니메이션 */
#tg-402-wrapper .tg-402-crafting-panel { background:rgba(255,255,255,.04); border:1px solid rgba(244,114,182,.15); border-radius:16px; padding:28px 18px; text-align:center; }
#tg-402-wrapper .tg-402-forge-anim { position:relative; display:inline-flex; align-items:center; justify-content:center; width:100px; height:100px; margin-bottom:16px; }
#tg-402-wrapper .tg-402-forge-core { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:50%; background:rgba(244,114,182,.12); border:2px solid rgba(244,114,182,.35); font-size:1.5rem; color:var(--pnk-400); animation:tg402ForgeShake .3s ease-in-out infinite; }
@keyframes tg402ForgeShake { 0%,100%{transform:rotate(-8deg);}50%{transform:rotate(8deg);} }
#tg-402-wrapper .tg-402-forge-ring { position:absolute; border-radius:50%; border:1.5px solid rgba(244,114,182,.2); }
#tg-402-wrapper .tg-402-forge-ring--1 { inset:-12px; animation:tg402ForgeRing 1.2s ease-in-out infinite; }
#tg-402-wrapper .tg-402-forge-ring--2 { inset:-22px; animation:tg402ForgeRing 1.2s ease-in-out infinite; animation-delay:.4s; }
#tg-402-wrapper .tg-402-forge-ring--3 { inset:-34px; animation:tg402ForgeRing 1.2s ease-in-out infinite; animation-delay:.8s; }
@keyframes tg402ForgeRing { 0%,100%{opacity:.15;transform:scale(.9);}50%{opacity:.8;transform:scale(1.08);border-color:rgba(244,114,182,.45);} }
#tg-402-wrapper .tg-402-forge-sparks { position:absolute; inset:0; pointer-events:none; }
#tg-402-wrapper .tg-402-fspark { position:absolute; font-size:1rem; opacity:0; animation:tg402FSpark ease-in-out infinite; }
#tg-402-wrapper .tg-402-fspark--1 { top:0;    left:50%;  animation-duration:1s; }
#tg-402-wrapper .tg-402-fspark--2 { bottom:0; right:5%;  animation-duration:.9s; animation-delay:.25s; }
#tg-402-wrapper .tg-402-fspark--3 { top:20%;  right:0;   animation-duration:1.1s; animation-delay:.5s; }
#tg-402-wrapper .tg-402-fspark--4 { bottom:15%; left:0;  animation-duration:.85s; animation-delay:.75s; }
@keyframes tg402FSpark { 0%,100%{opacity:0;transform:translateY(0) scale(.5);}50%{opacity:.9;transform:translateY(-16px) scale(1.2);} }
#tg-402-wrapper .tg-402-crafting-panel__title { font-size:.9rem; font-weight:800; color:rgba(255,255,255,.75); margin-bottom:4px !important; }
#tg-402-wrapper .tg-402-crafting-panel__sub   { font-size:.72rem; color:rgba(255,255,255,.28); margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-dots::after { content:'...'; animation:tg402Dots 1.5s steps(4, end) infinite; }
@keyframes tg402Dots { 0%{content:'';}25%{content:'.';}50%{content:'..';}75%{content:'...';}100%{content:'';} }

/* Stage 3: 결과 */
#tg-402-wrapper .tg-402-result-panel { background:rgba(255,255,255,.04); border:1px solid rgba(244,114,182,.15); border-radius:16px; overflow:hidden; }
#tg-402-wrapper .tg-402-success-state { padding:20px 18px; text-align:center; position:relative; overflow:hidden; }
/* 반짝임 배경 */
#tg-402-wrapper .tg-402-result-shine { position:absolute; inset:0; background:radial-gradient(ellipse 70% 50% at 50% 30%, rgba(244,114,182,.12) 0%, transparent 60%); pointer-events:none; animation:tg402Shine 2s ease-in-out infinite; }
@keyframes tg402Shine { 0%,100%{opacity:.4;}50%{opacity:1;} }
#tg-402-wrapper .tg-402-success-badge { position:relative; z-index:1; display:inline-block; font-size:.78rem; font-weight:900; letter-spacing:.1em; color:#000; background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); padding:5px 18px; border-radius:999px; margin-bottom:12px; box-shadow:var(--shadow-pnk); }
#tg-402-wrapper .tg-402-new-gift { position:relative; z-index:1; display:inline-flex; flex-direction:column; align-items:center; gap:4px; background:rgba(244,114,182,.08); border:2px solid rgba(244,114,182,.3); border-radius:16px; padding:16px 24px; margin-bottom:14px; animation:tg402GiftPop .5s ease; }
@keyframes tg402GiftPop { 0%{transform:scale(.5);opacity:0;}60%{transform:scale(1.1);}100%{transform:scale(1);opacity:1;} }
#tg-402-wrapper .tg-402-new-gift__emoji { font-size:2.6rem; display:block; }
#tg-402-wrapper .tg-402-new-gift__name { font-size:.92rem; font-weight:900; color:#fff; margin-bottom:2px; }
#tg-402-wrapper .tg-402-new-gift__sub  { font-size:.66rem; color:rgba(255,255,255,.4); margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-new-gift__tag { font-size:.58rem; font-weight:900; letter-spacing:.08em; color:var(--pnk-400); background:rgba(244,114,182,.1); border:1px solid rgba(244,114,182,.25); padding:3px 12px; border-radius:999px; margin-top:4px; }
/* 속성 그리드 */
#tg-402-wrapper .tg-402-attrs { position:relative; z-index:1; width:100%; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); padding:12px 14px; margin-bottom:14px; }
#tg-402-wrapper .tg-402-attrs__title { font-size:.66rem; font-weight:700; color:rgba(255,255,255,.25); text-align:center; margin-bottom:10px !important; }
#tg-402-wrapper .tg-402-attrs__grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
#tg-402-wrapper .tg-402-attr-item { display:flex; flex-direction:column; gap:2px; background:rgba(255,255,255,.04); border-radius:8px; padding:8px 10px; }
#tg-402-wrapper .tg-402-attr-item--rare { background:rgba(244,114,182,.07); border:1px solid rgba(244,114,182,.15); }
#tg-402-wrapper .tg-402-attr-item__lbl { font-size:.58rem; font-weight:700; color:rgba(255,255,255,.2); }
#tg-402-wrapper .tg-402-attr-item__val { font-size:.72rem; font-weight:800; color:rgba(255,255,255,.7); }
#tg-402-wrapper .tg-402-attr-item__val--pink { color:var(--pnk-400); }
/* 결과 버튼 */
#tg-402-wrapper .tg-402-result-btns { position:relative; z-index:1; display:flex; flex-direction:column; gap:8px; }
#tg-402-wrapper .tg-402-pin-btn { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; padding:11px; border-radius:10px; background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); color:#fff; font-size:.85rem; font-weight:900; box-shadow:var(--shadow-pnk); }
#tg-402-wrapper .tg-402-pin-btn .material-symbols-outlined { font-size:1rem; }
#tg-402-wrapper .tg-402-retry-btn { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; padding:10px; border-radius:999px; background:rgba(244,114,182,.1); border:1px solid rgba(244,114,182,.25); color:var(--pnk-400); font-size:.82rem; font-weight:800; transition:background .18s; }
#tg-402-wrapper .tg-402-retry-btn:hover { background:rgba(244,114,182,.18); }

/* ─── 기기별 탭 ─── */
#tg-402-wrapper .tg-402-tabs { display:flex; gap:6px; background:var(--sl-100); border-radius:var(--radius-sm); padding:5px; margin-bottom:22px; flex-wrap:wrap; }
#tg-402-wrapper .tg-402-tab-btn { flex:1; min-width:72px; display:flex; align-items:center; justify-content:center; gap:6px; padding:11px 10px; border-radius:7px; font-size:var(--fs-sm); font-weight:600; color:var(--sl-500); transition:background .2s, color .2s; }
#tg-402-wrapper .tg-402-tab-btn .material-symbols-outlined { font-size:1.1rem; }
#tg-402-wrapper .tg-402-tab-btn--active { background:#fff; color:var(--pnk-600); box-shadow:0 2px 8px rgba(0,0,0,.08); font-weight:800; }
#tg-402-wrapper .tg-402-tab-panel { display:none; text-align:left; animation:tg402FadeIn .3s ease; }
#tg-402-wrapper .tg-402-tab-panel--active { display:block; }
#tg-402-wrapper .tg-402-tab-panel__head { display:flex; align-items:center; gap:14px; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--sl-100); }
#tg-402-wrapper .tg-402-tab-panel__icon { width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; flex-shrink:0; }
#tg-402-wrapper .tg-402-tab-panel__icon--pc      { background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); color:#fff; }
#tg-402-wrapper .tg-402-tab-panel__icon--android { background:linear-gradient(135deg, #3ddc84, #00ac47); color:#fff; }
#tg-402-wrapper .tg-402-tab-panel__icon--ios     { background:linear-gradient(135deg, #555, #111); color:#fff; }
#tg-402-wrapper .tg-402-tab-panel__name { font-size:var(--fs-lg); font-weight:800; color:var(--sl-900); margin-bottom:4px; }
#tg-402-wrapper .tg-402-tab-panel__sub  { font-size:var(--fs-sm); color:var(--sl-500); margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-steps { display:flex; flex-direction:column; gap:12px; counter-reset:steps; }
#tg-402-wrapper .tg-402-steps li { counter-increment:steps; display:flex; align-items:flex-start; gap:12px; font-size:var(--fs-base); color:var(--text-sub); line-height:1.75; }
#tg-402-wrapper .tg-402-steps li::before { content:counter(steps); min-width:28px; height:28px; flex-shrink:0; margin-top:2px; background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); color:#fff; font-size:.8rem; font-weight:900; border-radius:50%; display:flex; align-items:center; justify-content:center; }
#tg-402-wrapper .tg-402-steps li strong { color:var(--sl-800); }
#tg-402-wrapper .tg-402-tip-box { display:flex; align-items:flex-start; gap:12px; background:rgba(244,114,182,.05); border:1px solid rgba(244,114,182,.16); border-radius:var(--radius-sm); padding:14px 18px; margin-top:18px; font-size:var(--fs-sm); color:var(--text-sub); line-height:1.7; }
#tg-402-wrapper .tg-402-tip-box .material-symbols-outlined { font-size:1.2rem; color:var(--pnk-500); flex-shrink:0; margin-top:2px; }
#tg-402-wrapper .tg-402-tip-box--warn { background:rgba(248,113,113,.05); border-color:rgba(248,113,113,.18); }
#tg-402-wrapper .tg-402-tip-box--warn .material-symbols-outlined { color:#dc2626; }

/* 결론 요약 */
#tg-402-wrapper .tg-402-summary { background:linear-gradient(145deg, var(--dk-base), #1e0511 55%, var(--dk-base)); border:1px solid rgba(244,114,182,.12); border-radius:var(--radius-lg); padding:52px 32px; color:#fff; text-align:center; }
#tg-402-wrapper .tg-402-summary h2 { font-size:1.3rem; font-weight:900; display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:12px; }
#tg-402-wrapper .tg-402-summary h2 .material-symbols-outlined { color:var(--pnk-400); font-size:1.5rem; }
#tg-402-wrapper .tg-402-summary > p { color:rgba(255,255,255,.55); margin-bottom:36px !important; }
#tg-402-wrapper .tg-402-summary__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; max-width:560px; margin:0 auto; }
#tg-402-wrapper .tg-402-summary__item { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:20px; display:flex; flex-direction:column; align-items:center; gap:10px; }
#tg-402-wrapper .tg-402-summary__item .material-symbols-outlined { font-size:1.8rem; color:var(--pnk-400); }
#tg-402-wrapper .tg-402-summary__item p { font-size:.84rem; font-weight:700; color:rgba(255,255,255,.75); line-height:1.5; margin-bottom:0 !important; }
#tg-402-wrapper .tg-402-footer-cta { margin-top:44px; border-top:1px solid rgba(255,255,255,.07); padding-top:28px; }
#tg-402-wrapper .tg-402-footer-cta p { font-size:var(--fs-sm); color:rgba(255,255,255,.4); margin-bottom:20px !important; }
#tg-402-wrapper .tg-402-cta-btn { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg, var(--pnk-400), var(--pnk-600)); color:#fff; font-size:1rem; font-weight:900; padding:15px 32px; border-radius:999px; box-shadow:var(--shadow-pnk); transition:transform .2s; }
#tg-402-wrapper .tg-402-cta-btn:hover { transform:translateY(-3px); }
#tg-402-wrapper .tg-402-cta-btn .material-symbols-outlined { font-size:1.1rem; }

/* 반응형 */
@media (min-width:480px) {
    #tg-402-wrapper .tg-402-rule-grid { grid-template-columns:repeat(2,1fr); }
}
@media (min-width:640px) {
    #tg-402-wrapper .tg-402-summary__grid { grid-template-columns:repeat(4,1fr); }
    #tg-402-wrapper .tg-402-result-btns { flex-direction:row; }
}
@media (min-width:900px) {
    #tg-402-wrapper .tg-402-hero { padding:80px 56px 90px; }
    #tg-402-wrapper .tg-402-section, #tg-402-wrapper .tg-402-intro { padding:52px 48px; }
}
