/* =====================================================================
 * 홀드링크 운세 v2 — 허브 / 오늘의 운세 / 나의 운명 리포트 / 연애운·타로
 * 기본 분위기(종이·도장·테이프)는 style.css 를 그대로 쓰고,
 * 카테고리마다 테마 변수만 바꿔서 "같은 브랜드, 다른 섹션" 느낌을 줘요.
 * ===================================================================== */

/* ---------- 카테고리 테마 ---------- */
body.theme-today {
  --paper: #fdf4e8;
  --paper-line: #f2dcc2;
  --card: #fffcf6;
  --stamp: #e0702f;
  --stamp-dark: #b9561c;
  --gold: #f0b43c;
  --gold-soft: #fbe3b0;
  --mint: #5fae9c;
  --mint-dark: #458878;
  --mint-soft: #d5ede6;
  --accent-soft: #ffe8d4;
}
body.theme-destiny {
  --paper: #f3f2ed;
  --paper-line: #e1dfd4;
  --card: #fffffb;
  --stamp: #3f5aa8;
  --stamp-dark: #2c4183;
  --gold: #c9a34e;
  --gold-soft: #ece0bd;
  --mint: #6d93b8;
  --mint-dark: #4f7193;
  --mint-soft: #dbe6f1;
  --accent-soft: #e3e8f6;
}
body.theme-love {
  --paper: #fdf2f3;
  --paper-line: #f2dce0;
  --card: #fffbfb;
  --stamp: #d2577a;
  --stamp-dark: #a73c5c;
  --gold: #e59ab0;
  --gold-soft: #f9dbe4;
  --mint: #9a7fc6;
  --mint-dark: #7559a5;
  --mint-soft: #ebe2f7;
  --accent-soft: #fbe3ea;
}
body.theme-hub { --accent-soft: #fbe7d7; --mint-dark: #4c8267; }

body.theme-destiny::before {
  /* 밤하늘 느낌의 아주 옅은 별 점 */
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(63,90,168,.10) 0 1.5px, transparent 2px),
    radial-gradient(circle at 78% 9%,  rgba(201,163,78,.18) 0 1.5px, transparent 2px),
    radial-gradient(circle at 88% 62%, rgba(63,90,168,.10) 0 1.5px, transparent 2px),
    radial-gradient(circle at 30% 80%, rgba(201,163,78,.16) 0 1.5px, transparent 2px);
  background-size: 260px 260px;
}
body.theme-love::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(210,87,122,.08) 0 2px, transparent 3px),
                    radial-gradient(circle at 70% 75%, rgba(154,127,198,.10) 0 2px, transparent 3px);
  background-size: 180px 180px;
}
.wrap { position: relative; z-index: 1; }

.btn.secondary {
  background: linear-gradient(135deg, var(--mint), var(--mint-dark, #5fa080));
  box-shadow: 0 6px 0 var(--mint-dark, #4c8267);
}
.btn.secondary:active { box-shadow: 0 2px 0 var(--mint-dark, #4c8267); }
.btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }

/* 상단 미니 네비 (← 홈) */
.top-bar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px; font-size: 14px;
}
.top-bar a {
  color: var(--ink-soft); text-decoration: none;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(255,255,255,.65); border: 1px dashed var(--paper-line);
}
.top-bar .brand-mini { font-family: 'Gaegu', cursive; font-size: 17px; color: var(--stamp); font-weight: 700; }

/* =====================================================================
 * 허브
 * ===================================================================== */
.hub-hero { text-align: center; margin: 6px 0 20px; }
.hub-hero .brand-mark {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Gaegu', cursive; font-size: 16px; color: var(--ink-soft);
  background: #fff; border: 1.5px dashed var(--paper-line); border-radius: 999px; padding: 4px 14px 4px 6px;
}
.hub-hero .brand-mark img { width: 26px; height: 26px; border-radius: 50%; }
.hub-hero h1 { font-size: 36px; margin: 12px 0 2px; color: var(--stamp); letter-spacing: -1px; }
.hub-hero .sub { color: var(--ink-soft); margin: 0; font-size: 15px; }
.today-chip {
  display: inline-flex; gap: 8px; align-items: center; margin-top: 12px;
  padding: 8px 16px; border-radius: 999px; background: var(--ink); color: var(--paper);
  font-family: 'Gaegu', cursive; font-size: 16px; box-shadow: 0 5px 0 rgba(0,0,0,.12);
}
.today-chip b { color: var(--gold-soft); }

.feature-banner {
  display: block; position: relative; border-radius: 20px; overflow: hidden; text-decoration: none;
  border: 2px dashed #d9cba0; background: var(--card); margin-bottom: 16px;
  box-shadow: 0 8px 0 rgba(43,43,61,.06);
}
.feature-banner img { display: block; width: 100%; height: auto; }
.feature-banner .fb-body { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; gap: 10px; }
.feature-banner .fb-title { font-family: 'Gaegu', cursive; font-size: 21px; color: #d64545; font-weight: 700; }
.feature-banner .fb-sub { font-size: 13px; color: var(--ink-soft); }
.feature-banner .fb-dday {
  flex-shrink: 0; font-family: 'Gaegu', cursive; font-size: 18px; color: #fff; background: #d64545;
  border-radius: 999px; padding: 4px 12px;
}

.section-label {
  display: flex; align-items: baseline; justify-content: space-between; margin: 24px 2px 10px;
}
.section-label h2 { font-size: 23px; margin: 0; }
.section-label span { font-size: 13px; color: var(--pencil); }

.cat-list { display: grid; gap: 14px; }
.cat-card {
  --c: #e0702f; --c-soft: #ffe8d4; --c-deep: #b9561c;
  position: relative; display: flex; gap: 14px; align-items: center;
  padding: 18px 16px 18px 18px; border-radius: 20px; text-decoration: none; color: var(--ink);
  background: var(--card); border: 2px solid var(--c-soft);
  box-shadow: 0 7px 0 var(--c-soft); transition: transform .12s ease, box-shadow .12s ease;
  overflow: hidden;
}
.cat-card:active { transform: translateY(4px); box-shadow: 0 3px 0 var(--c-soft); }
.cat-card::after {
  content: ""; position: absolute; right: -30px; top: -30px; width: 110px; height: 110px;
  border-radius: 50%; background: var(--c-soft); opacity: .55;
}
.cat-card.c-today   { --c: #e0702f; --c-soft: #ffe1c8; --c-deep: #b9561c; }
.cat-card.c-destiny { --c: #3f5aa8; --c-soft: #dbe2f5; --c-deep: #2c4183; }
.cat-card.c-love    { --c: #d2577a; --c-soft: #fadbe4; --c-deep: #a73c5c; }
.cat-card.c-suneung { --c: #d64545; --c-soft: #f6dfa0; --c-deep: #b73535; }
.cat-card .cat-icon {
  position: relative; z-index: 1; flex-shrink: 0; width: 64px; height: 64px; border-radius: 18px;
  display: grid; place-items: center; font-size: 34px; background: var(--c-soft);
  transform: rotate(-4deg);
}
.cat-card .cat-body { position: relative; z-index: 1; flex: 1; min-width: 0; }
.cat-card .cat-title { font-family: 'Gaegu', cursive; font-size: 23px; font-weight: 700; color: var(--c-deep); line-height: 1.1; word-break: keep-all; }
.cat-card .cat-desc { font-size: 13.5px; color: var(--ink-soft); margin-top: 4px; line-height: 1.45; word-break: keep-all; }
.cat-card .cat-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.cat-card .cat-tags span {
  font-size: 11.5px; padding: 2px 8px; border-radius: 999px; background: var(--c-soft); color: var(--c-deep);
}
.cat-card .cat-arrow { position: relative; z-index: 1; font-size: 22px; color: var(--c); font-family: 'Gaegu', cursive; }
.cat-card .cat-badge {
  position: absolute; z-index: 2; top: 10px; right: 12px; font-size: 11px; font-weight: 700;
  background: var(--c); color: #fff; padding: 2px 8px; border-radius: 999px;
}

.ddi-preview {
  background: var(--card); border: 2px dashed var(--paper-line); border-radius: 20px; padding: 16px 14px;
}
.ddi-preview .dp-head { text-align: center; font-size: 13.5px; color: var(--ink-soft); margin-bottom: 12px; }
.ddi-preview .dp-head b { color: var(--stamp); }
.dp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dp-item {
  position: relative; text-align: center; padding: 8px 2px 6px; border-radius: 14px; background: #fff;
  border: 1.5px solid #f1e8d4; text-decoration: none; color: var(--ink);
}
.dp-item .e { font-size: 26px; display: block; line-height: 1.2; }
.dp-item .n { font-size: 12px; font-weight: 700; display: block; }
.dp-item .s { font-size: 10.5px; color: #f2b01e; letter-spacing: -1px; }
.dp-item.top { border-color: var(--stamp); background: #fff8f2; }
.dp-item .rk {
  position: absolute; top: -7px; left: 50%; transform: translateX(-50%);
  font-size: 10px; background: var(--stamp); color: #fff; border-radius: 8px; padding: 0 6px; white-space: nowrap;
}
.dp-cta { display: block; text-align: center; margin-top: 12px; font-size: 14px; color: var(--stamp); font-weight: 700; text-decoration: none; }

/* =====================================================================
 * 입력 폼
 * ===================================================================== */
.form-intro { text-align: center; margin-bottom: 18px; }
.form-intro .mascot-cluster { font-size: 38px; }
.form-intro h1 { font-size: 31px; margin: 6px 0 4px; color: var(--stamp); letter-spacing: -.5px; }
.form-intro p { margin: 0; color: var(--ink-soft); font-size: 14.5px; line-height: 1.5; word-break: keep-all; }
.what-you-get { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 12px; }
.what-you-get span {
  font-size: 12.5px; background: #fff; border: 1.5px dashed var(--paper-line); border-radius: 999px; padding: 4px 10px; color: var(--ink-soft);
}

.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field .opt { color: var(--pencil); font-weight: 400; font-size: 14px; }
.field input[type="text"], .field input[type="date"], .field select { min-height: 46px; }

.chip-group { display: flex; flex-wrap: wrap; gap: 7px; }
.chip-group input { position: absolute; opacity: 0; pointer-events: none; }
.chip-group label {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: 'Gowun Dodum', sans-serif; font-size: 14px; margin: 0;
  padding: 9px 13px; border-radius: 12px; background: #fffefb; cursor: pointer;
  border: 1.5px dashed var(--gold); color: var(--ink-soft); transition: all .12s ease;
  -webkit-tap-highlight-color: transparent; user-select: none;
}
.chip-group input:checked + label {
  background: var(--stamp); border: 1.5px solid var(--stamp); color: #fff; font-weight: 700;
  box-shadow: 0 3px 0 var(--stamp-dark);
}
.chip-group input:focus-visible + label { outline: 3px solid var(--gold-soft); outline-offset: 2px; }
.chip-group.big label { flex: 1 1 calc(50% - 7px); justify-content: center; padding: 11px 8px; }
.chip-group.three label { flex: 1 1 calc(33.333% - 7px); justify-content: center; }
.chip-count { font-size: 12.5px; color: var(--pencil); margin-left: 6px; font-weight: 400; }

.fold-toggle {
  display: block; width: 100%; text-align: left; background: none; border: none; padding: 6px 0 12px;
  font-family: 'Gaegu', cursive; font-size: 17px; color: var(--stamp); cursor: pointer;
}
.fold-body[hidden] { display: none; }
.privacy-note { font-size: 12.5px; color: var(--pencil); text-align: center; margin-top: 12px; line-height: 1.5; }

/* 입력 → 타로 단계 */
.step-dots { display: flex; justify-content: center; gap: 6px; margin-bottom: 14px; }
.step-dots span { width: 26px; height: 6px; border-radius: 3px; background: var(--paper-line); }
.step-dots span.on { background: var(--stamp); }

/* =====================================================================
 * 결과 공통
 * ===================================================================== */
.result-hero { text-align: center; margin: 4px 0 16px; }
.result-hero .cat-pill {
  display: inline-block; font-size: 13px; padding: 4px 12px; border-radius: 999px;
  background: var(--stamp); color: #fff; font-weight: 700;
}
.result-hero h1 { font-size: 29px; margin: 10px 0 4px; letter-spacing: -.5px; }
.result-hero .meta { font-size: 13.5px; color: var(--ink-soft); }
.badge-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 10px; }
.badge-row span {
  font-size: 12.5px; padding: 4px 10px; border-radius: 999px; background: var(--gold-soft); color: var(--ink);
}

.sec-nav {
  position: sticky; top: 0; z-index: 20; display: flex; gap: 6px; overflow-x: auto;
  margin: 0 -14px 16px; padding: 10px 14px; background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); scrollbar-width: none;
}
.sec-nav::-webkit-scrollbar { display: none; }
.sec-nav a {
  flex-shrink: 0; font-size: 13.5px; padding: 7px 13px; border-radius: 999px; text-decoration: none;
  background: #fff; color: var(--ink-soft); border: 1.5px solid var(--paper-line); white-space: nowrap;
}
.sec-nav a.on { background: var(--ink); color: var(--paper); border-color: var(--ink); font-weight: 700; }

.sec { scroll-margin-top: 64px; }
.sec + .sec { margin-top: 26px; }
.sec-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.sec-head .no {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  background: var(--stamp); color: #fff; font-family: 'Gaegu', cursive; font-size: 17px; font-weight: 700;
}
.sec-head h2 { font-size: 22px; margin: 0; line-height: 1.15; }
.sec-head small { display: block; font-family: 'Gowun Dodum', sans-serif; font-size: 12.5px; color: var(--pencil); font-weight: 400; }

.note-box {
  background: #fff; border-radius: 14px; padding: 14px 15px; font-size: 14.5px; line-height: 1.75;
  border-left: 4px solid var(--stamp); word-break: keep-all;
}
.note-box b, .note-box strong { color: var(--stamp-dark); }
.quote-line {
  font-family: 'Gaegu', cursive; font-size: 21px; text-align: center; color: var(--stamp-dark);
  margin: 14px 0 4px; line-height: 1.3; word-break: keep-all;
}

/* 점수 링 */
.score-ring-wrap { display: flex; align-items: center; gap: 18px; justify-content: center; margin: 6px 0 14px; }
.score-ring {
  --v: 80; position: relative; width: 128px; height: 128px; border-radius: 50%; flex-shrink: 0;
  background: conic-gradient(var(--stamp) calc(var(--v) * 1%), var(--paper-line) 0);
  display: grid; place-items: center;
}
.score-ring::before { content: ""; position: absolute; inset: 11px; border-radius: 50%; background: var(--card); }
.score-ring .num { position: relative; text-align: center; font-family: 'Gaegu', cursive; line-height: 1; }
.score-ring .num b { font-size: 44px; color: var(--stamp); display: block; }
.score-ring .num span { font-size: 13px; color: var(--pencil); }
.score-ring-side { flex: 1; min-width: 0; }
.score-ring-side .hl-title { font-family: 'Gaegu', cursive; font-size: 21px; font-weight: 700; line-height: 1.25; word-break: keep-all; }
.score-ring-side .tag {
  display: inline-block; font-size: 12px; background: var(--accent-soft); color: var(--stamp-dark);
  padding: 3px 9px; border-radius: 999px; margin-bottom: 6px;
}

/* 영역 카드 */
.area-list { display: grid; gap: 10px; }
.area-item { background: #fff; border-radius: 14px; padding: 12px 14px; border: 1.5px solid var(--paper-line); }
.area-item .top { display: flex; align-items: center; gap: 10px; }
.area-item .lbl { font-family: 'Gaegu', cursive; font-size: 17px; font-weight: 700; width: 80px; flex-shrink: 0; }
.area-item .track { flex: 1; height: 10px; border-radius: 999px; background: var(--paper-line); overflow: hidden; }
.area-item .fill { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, var(--gold), var(--stamp)); transition: width 1s cubic-bezier(.2,.8,.2,1); }
.area-item .val { width: 30px; text-align: right; font-weight: 700; font-size: 14px; }
.area-item p { margin: 8px 0 0; font-size: 13.5px; color: var(--ink-soft); line-height: 1.6; word-break: keep-all; }

/* 시간대 */
.time-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.time-flow .tf {
  position: relative; background: #fff; border-radius: 14px; padding: 12px 10px; text-align: center;
  border: 1.5px solid var(--paper-line); font-size: 12.5px; line-height: 1.55; color: var(--ink-soft); word-break: keep-all;
}
.time-flow .tf .ic { font-size: 24px; display: block; }
.time-flow .tf b { display: block; font-family: 'Gaegu', cursive; font-size: 16px; color: var(--ink); margin: 2px 0 4px; }
.time-flow .tf.best { border: 2px solid var(--stamp); background: var(--accent-soft); }
.time-flow .tf .best-tag {
  position: absolute; top: -9px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  font-size: 10.5px; background: var(--stamp); color: #fff; border-radius: 8px; padding: 1px 7px;
}

/* 띠 순위 */
.my-ddi-card {
  display: flex; gap: 14px; align-items: center; background: #fff; border-radius: 16px; padding: 14px;
  border: 2px solid var(--stamp); margin-bottom: 12px;
}
.my-ddi-card .big { flex-shrink: 0; width: 66px; height: 66px; border-radius: 50%; display: grid; place-items: center; font-size: 40px; background: var(--accent-soft); }
.my-ddi-card h3 { margin: 0; font-size: 19px; }
.my-ddi-card .stars { color: #f2b01e; letter-spacing: 1px; font-size: 14px; }
.my-ddi-card p { margin: 4px 0 0; font-size: 13.5px; color: var(--ink-soft); line-height: 1.6; word-break: keep-all; }
.my-ddi-card .rel { font-size: 11.5px; background: var(--gold-soft); border-radius: 999px; padding: 2px 8px; margin-left: 4px; vertical-align: middle; }

.ddi-rank { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.ddi-rank .row {
  display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 12px; padding: 8px 10px;
  border: 1.5px solid var(--paper-line); font-size: 13px; cursor: pointer; text-align: left; font-family: inherit; color: var(--ink);
}
.ddi-rank .row .rk { width: 20px; font-family: 'Gaegu', cursive; font-size: 16px; color: var(--pencil); font-weight: 700; }
.ddi-rank .row .rk.t3 { color: var(--stamp); }
.ddi-rank .row .em { font-size: 20px; }
.ddi-rank .row .nm { flex: 1; font-weight: 700; }
.ddi-rank .row .st { color: #f2b01e; font-size: 11px; letter-spacing: -1px; }
.ddi-rank .row.mine { border-color: var(--stamp); background: var(--accent-soft); }
.ddi-line { margin-top: 10px; background: #fff; border-radius: 12px; padding: 12px 14px; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); border: 1.5px dashed var(--paper-line); min-height: 48px; }
.ddi-line b { color: var(--ink); }

/* 행운 키트 */
.lucky-kit { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.lucky-kit .lk { background: #fff; border-radius: 14px; padding: 12px 6px; text-align: center; border: 1.5px dashed var(--gold); }
.lucky-kit .lk .k { display: block; font-size: 11.5px; color: var(--pencil); margin-bottom: 4px; }
.lucky-kit .lk .v { display: block; font-size: 14px; font-weight: 700; word-break: keep-all; line-height: 1.35; }
.lucky-kit .lk .sw { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: -1px; margin-right: 3px; border: 1px solid rgba(0,0,0,.1); }
.caution-row { display: flex; gap: 8px; margin-top: 10px; }
.caution-row div { flex: 1; background: #fff; border-radius: 12px; padding: 10px 12px; font-size: 13px; border: 1.5px solid var(--paper-line); }
.caution-row b { display: block; font-size: 11.5px; color: var(--pencil); font-weight: 400; margin-bottom: 2px; }

/* =====================================================================
 * 타로 카드
 * ===================================================================== */
.tarot-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tarot-single { display: flex; gap: 16px; align-items: center; }
.tarot-single .tarot-card { width: 118px; flex-shrink: 0; }

.tarot-card {
  --hue: #6b4fa0;
  position: relative; aspect-ratio: 5 / 8.4; perspective: 900px; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.tarot-card .inner {
  position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.3,1.3,.5,1);
}
.tarot-card.flipped .inner { transform: rotateY(180deg); }
.tarot-card .face, .tarot-card .back {
  position: absolute; inset: 0; border-radius: 12px; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden;
}
.tarot-card .back {
  background:
    radial-gradient(circle at 50% 50%, transparent 0 22%, rgba(232,185,74,.0) 23%),
    repeating-linear-gradient(45deg, rgba(232,185,74,.18) 0 2px, transparent 2px 10px),
    repeating-linear-gradient(-45deg, rgba(232,185,74,.18) 0 2px, transparent 2px 10px),
    linear-gradient(160deg, #2a2350, #171332);
  border: 3px solid #e8b94a; box-shadow: inset 0 0 0 3px #171332, inset 0 0 0 4px rgba(232,185,74,.6), 0 6px 12px rgba(23,19,50,.25);
  display: grid; place-items: center;
}
.tarot-card .back::after {
  content: "✦"; font-size: 28px; color: #e8b94a; width: 46%; aspect-ratio: 1; border-radius: 50%;
  display: grid; place-items: center; border: 1.5px solid rgba(232,185,74,.7); background: rgba(23,19,50,.6);
}
.tarot-card .face {
  transform: rotateY(180deg);
  background: linear-gradient(170deg, #fffaf0, #f6ecd6);
  border: 3px solid #c9a34e; box-shadow: inset 0 0 0 3px #fffaf0, inset 0 0 0 4.5px var(--hue), 0 6px 14px rgba(23,19,50,.22);
  display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 8% 6% 7%;
}
.tarot-card .face .numeral { font-family: 'Noto Serif KR', 'Times New Roman', serif; font-size: clamp(11px, 3.2vw, 14px); color: var(--hue); font-weight: 700; letter-spacing: 1px; }
.tarot-card .face .art {
  width: 78%; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center;
  font-size: clamp(28px, 9vw, 42px);
  background: radial-gradient(circle, #fff 0 45%, color-mix(in srgb, var(--hue) 22%, #fff) 46% 100%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--hue) 55%, #fff), 0 0 0 5px #fffaf0, 0 0 0 6px color-mix(in srgb, var(--hue) 35%, #fff);
}
.tarot-card .face .art span { display: inline-block; }
.tarot-card.rev .face .art span { transform: rotate(180deg); }
.tarot-card .face .nm { text-align: center; line-height: 1.15; }
.tarot-card .face .nm b { display: block; font-family: 'Gaegu', cursive; font-size: clamp(14px, 4vw, 18px); color: #2a2350; }
.tarot-card .face .nm i { font-style: normal; font-size: clamp(8.5px, 2.4vw, 10.5px); color: #8a7b5c; letter-spacing: .5px; }
.tarot-card .rev-tag {
  position: absolute; z-index: 3; top: -8px; right: -6px; font-size: 10.5px; background: #6b4fa0; color: #fff;
  border-radius: 8px; padding: 1px 6px; opacity: 0; transition: opacity .3s .6s;
}
.tarot-card.flipped .rev-tag { opacity: 1; }
.tarot-pos { text-align: center; font-family: 'Gaegu', cursive; font-size: 16px; margin-top: 8px; color: var(--ink-soft); font-weight: 700; }
.tap-hint { text-align: center; font-size: 12.5px; color: var(--pencil); margin: 8px 0 0; }

.tarot-reading { display: grid; gap: 12px; margin-top: 16px; }
.tarot-reading .tr {
  background: #fff; border-radius: 16px; padding: 14px 15px; border: 1.5px solid var(--paper-line);
  opacity: .35; transition: opacity .5s;
}
.tarot-reading .tr.shown { opacity: 1; }
.tarot-reading .tr .pos { font-size: 12px; color: #fff; background: var(--mint); border-radius: 999px; padding: 2px 9px; }
.tarot-reading .tr h3 { margin: 8px 0 4px; font-size: 19px; }
.tarot-reading .tr h3 small { font-family: 'Gowun Dodum', sans-serif; font-size: 12.5px; color: var(--pencil); font-weight: 400; }
.tarot-reading .tr .kws { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 6px; }
.tarot-reading .tr .kws span { font-size: 11.5px; background: var(--mint-soft); border-radius: 999px; padding: 2px 8px; }
.tarot-reading .tr p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--ink-soft); word-break: keep-all; }

.tarot-summary {
  margin-top: 14px; border-radius: 18px; padding: 18px 16px; color: #f6ecd6;
  background: linear-gradient(160deg, #2a2350, #1b1640); border: 2px solid #c9a34e; position: relative; overflow: hidden;
}
.tarot-summary::before { content: "✦ ✧ ✦"; position: absolute; top: 8px; right: 14px; color: rgba(232,185,74,.55); font-size: 12px; letter-spacing: 4px; }
.tarot-summary h3 { margin: 0 0 8px; color: #e8b94a; font-size: 21px; }
.tarot-summary p { margin: 0 0 10px; font-size: 14px; line-height: 1.75; word-break: keep-all; }
.tarot-summary .flowline { font-family: 'Gaegu', cursive; font-size: 18px; color: #fff; margin-bottom: 10px; }
.tarot-summary .quint { display: flex; gap: 12px; align-items: center; background: rgba(255,255,255,.07); border-radius: 12px; padding: 10px 12px; }
.tarot-summary .quint .qi { font-size: 30px; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: rgba(232,185,74,.18); flex-shrink: 0; }
.tarot-summary .quint b { color: #e8b94a; }
.tarot-summary .quint small { display: block; font-size: 12.5px; color: #cfc4a8; line-height: 1.55; }

/* 타로 고르기 (연애·타로 입력 2단계) */
.pick-board { position: relative; }
.pick-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.pick-slot {
  aspect-ratio: 5 / 8.4; border-radius: 12px; border: 2px dashed var(--mint); background: rgba(255,255,255,.55);
  display: grid; place-items: center; text-align: center; font-family: 'Gaegu', cursive; font-size: 15px; color: var(--mint-dark);
  padding: 6px; position: relative; overflow: hidden;
}
.pick-slot.filled { border-style: solid; border-color: #e8b94a; }
.pick-slot.filled .mini-back { position: absolute; inset: 0; }
.pick-slot .slot-label { position: relative; z-index: 2; background: rgba(255,255,255,.88); border-radius: 8px; padding: 2px 6px; }
.pick-slot.filled .slot-label { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 13px; }
.pick-deck { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.pick-deck .pc {
  aspect-ratio: 5 / 8; border-radius: 8px; border: 2px solid #e8b94a; cursor: pointer; padding: 0;
  background:
    repeating-linear-gradient(45deg, rgba(232,185,74,.2) 0 1.5px, transparent 1.5px 7px),
    linear-gradient(160deg, #2a2350, #171332);
  box-shadow: 0 3px 6px rgba(23,19,50,.25); transition: transform .2s ease, opacity .25s ease;
  -webkit-tap-highlight-color: transparent;
  animation: deal .45s backwards;
}
.pick-deck .pc:nth-child(odd) { transform: rotate(-2deg); }
.pick-deck .pc:nth-child(even) { transform: rotate(2deg); }
.pick-deck .pc:hover { transform: translateY(-4px) rotate(0); }
.pick-deck .pc.taken { opacity: .12; pointer-events: none; transform: translateY(6px); }
.pick-deck.shuffling .pc { animation: shuffle .6s ease-in-out; }
@keyframes deal { from { opacity: 0; transform: translateY(-20px) scale(.8); } }
@keyframes shuffle {
  0% { transform: translate(0,0) rotate(0); }
  40% { transform: translate(calc((var(--i, 0) - 3) * -6px), -10px) rotate(calc((var(--i, 0) - 3) * 4deg)); }
  100% { transform: translate(0,0) rotate(0); }
}
.mini-back {
  background: repeating-linear-gradient(45deg, rgba(232,185,74,.2) 0 1.5px, transparent 1.5px 7px), linear-gradient(160deg, #2a2350, #171332);
}
.pick-tools { display: flex; gap: 8px; margin-top: 14px; }
.pick-tools .btn { margin-top: 0; }
.pick-guide { text-align: center; font-size: 14px; color: var(--ink-soft); margin: 0 0 12px; line-height: 1.5; }
.pick-guide b { color: var(--stamp); }
.question-echo {
  text-align: center; font-family: 'Gaegu', cursive; font-size: 18px; background: #fff; border-radius: 14px;
  padding: 10px 14px; border: 1.5px dashed var(--mint); margin-bottom: 14px; word-break: keep-all;
}

/* =====================================================================
 * 나의 운명 리포트
 * ===================================================================== */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; text-align: center; }
.pillars .pl { background: #fff; border-radius: 14px; padding: 8px 4px 10px; border: 1.5px solid var(--paper-line); }
.pillars .pl.dm { border: 2px solid var(--stamp); background: var(--accent-soft); }
.pillars .pl .lab { font-size: 12px; color: var(--pencil); }
.pillars .pl .ch {
  width: 46px; height: 46px; margin: 6px auto 0; border-radius: 12px; display: grid; place-items: center;
  font-family: 'Noto Serif KR', serif; font-size: 26px; font-weight: 700; color: #fff;
}
.pillars .pl .ko { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; }
.pillars .pl.unknown .ch { background: var(--paper-line) !important; color: var(--pencil); font-size: 18px; }
.el-0 { background: #5f9e6e; } .el-1 { background: #d9574a; } .el-2 { background: #c9a24a; }
.el-3 { background: #9aa3ad; } .el-4 { background: #3d5a8a; }
.pillar-note { font-size: 12px; color: var(--pencil); text-align: center; margin-top: 8px; line-height: 1.5; }

.el-bars { display: grid; gap: 7px; margin-top: 14px; }
.el-bars .eb { display: flex; align-items: center; gap: 8px; font-size: 13.5px; }
.el-bars .eb .n { width: 54px; flex-shrink: 0; font-weight: 700; }
.el-bars .eb .t { flex: 1; height: 14px; border-radius: 999px; background: var(--paper-line); overflow: hidden; }
.el-bars .eb .f { display: block; height: 100%; width: 0; border-radius: 999px; transition: width 1s cubic-bezier(.2,.8,.2,1); }
.el-bars .eb .c { width: 34px; text-align: right; color: var(--ink-soft); font-size: 12.5px; }

.identity-card {
  background: #fff; border-radius: 18px; padding: 18px 16px; border: 2px solid var(--stamp); position: relative; text-align: center;
}
.identity-card .big-emoji { font-size: 50px; line-height: 1; }
.identity-card .type { display: inline-block; margin-top: 8px; font-size: 12.5px; background: var(--stamp); color: #fff; border-radius: 999px; padding: 3px 11px; }
.identity-card h3 { font-size: 23px; margin: 8px 0 6px; word-break: keep-all; }
.identity-card .kw { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin-bottom: 10px; }
.identity-card .kw span { font-size: 12.5px; padding: 3px 10px; border-radius: 999px; background: var(--gold-soft); }
.identity-card p { margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--ink-soft); text-align: left; word-break: keep-all; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.two-col .cc { background: #fff; border-radius: 14px; padding: 12px; border: 1.5px solid var(--paper-line); font-size: 13px; line-height: 1.6; color: var(--ink-soft); word-break: keep-all; }
.two-col .cc b { display: block; font-family: 'Gaegu', cursive; font-size: 16px; color: var(--ink); margin-bottom: 4px; }
.plain-list { margin: 0; padding-left: 16px; }
.plain-list li { margin-bottom: 3px; }

.fit-list { display: grid; gap: 8px; }
.fit-row { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 12px; padding: 10px 12px; border: 1.5px solid var(--paper-line); }
.fit-row .fe { font-size: 22px; }
.fit-row .fl { flex: 1; min-width: 0; }
.fit-row .fl b { font-size: 14px; }
.fit-row .fl .mk { display: inline-block; font-size: 10.5px; border-radius: 6px; padding: 0 5px; margin-left: 4px; vertical-align: 1px; }
.fit-row .mk.rec { background: var(--stamp); color: #fff; }
.fit-row .mk.my { background: var(--gold-soft); color: var(--ink); }
.fit-row .ft { display: block; height: 7px; border-radius: 999px; background: var(--paper-line); margin-top: 5px; overflow: hidden; }
.fit-row .ft i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--mint), var(--stamp)); border-radius: 999px; transition: width 1s; }
.fit-row .fp { font-family: 'Gaegu', cursive; font-size: 20px; font-weight: 700; color: var(--stamp); }
.job-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.job-chips span { font-size: 13px; background: #fff; border: 1.5px dashed var(--gold); border-radius: 999px; padding: 4px 11px; }

.month-chart { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; align-items: end; height: 150px; padding: 0 2px; }
.month-chart .mc { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.month-chart .mc .bar {
  width: 100%; border-radius: 6px 6px 2px 2px; background: var(--mint-soft); height: 0; transition: height 1s cubic-bezier(.2,.8,.2,1);
  position: relative;
}
.month-chart .mc.best .bar { background: linear-gradient(180deg, var(--stamp), var(--mint)); }
.month-chart .mc.rest .bar { background: var(--paper-line); }
.month-chart .mc .v { font-size: 10px; color: var(--pencil); margin-bottom: 2px; }
.month-chart .mc.best .v { color: var(--stamp); font-weight: 700; }
.month-labels { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; text-align: center; font-size: 11px; color: var(--ink-soft); margin-top: 4px; }
.month-legend { display: flex; gap: 8px; margin-top: 12px; }
.month-legend div { flex: 1; background: #fff; border-radius: 12px; padding: 10px 12px; font-size: 13px; line-height: 1.5; border: 1.5px solid var(--paper-line); }
.month-legend b { display: block; font-family: 'Gaegu', cursive; font-size: 17px; }

/* =====================================================================
 * 연애운
 * ===================================================================== */
.compat-card { background: #fff; border-radius: 18px; padding: 16px; border: 2px solid var(--stamp); }
.compat-pair { display: flex; align-items: center; justify-content: center; gap: 14px; }
.compat-pair .who { text-align: center; }
.compat-pair .who .av { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; font-size: 36px; background: var(--accent-soft); margin: 0 auto 4px; }
.compat-pair .who small { font-size: 12px; color: var(--ink-soft); }
.compat-pair .heart { text-align: center; font-family: 'Gaegu', cursive; }
.compat-pair .heart .h { font-size: 30px; animation: beat 1.2s ease-in-out infinite; display: inline-block; }
.compat-pair .heart b { display: block; font-size: 34px; color: var(--stamp); line-height: 1; }
@keyframes beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.2); } 30% { transform: scale(1); } 45% { transform: scale(1.12); } }
.compat-items { display: grid; gap: 8px; margin-top: 14px; }
.compat-items .ci { background: var(--paper); border-radius: 12px; padding: 11px 13px; font-size: 13.5px; line-height: 1.65; color: var(--ink-soft); word-break: keep-all; }
.compat-items .ci b { display: block; color: var(--ink); font-family: 'Gaegu', cursive; font-size: 17px; }

/* =====================================================================
 * 공유/교차 유도/기타
 * ===================================================================== */
.share-box { margin-top: 26px; text-align: center; }
.share-box .share-row { margin-top: 10px; }
.cross-cats { display: grid; gap: 10px; margin-top: 12px; }
.cross-cats .cat-card { padding: 13px 14px; }
.cross-cats .cat-card .cat-icon { width: 48px; height: 48px; font-size: 26px; border-radius: 14px; }
.cross-cats .cat-card .cat-title { font-size: 19px; }

.today-amulet { text-align: center; margin-top: 4px; }
.today-amulet .amulet-card { border-color: var(--stamp); color: var(--stamp); }
.today-amulet .amulet-top { color: var(--stamp); }
.amulet-word { font-family: 'Gaegu', cursive; font-size: 22px; color: var(--ink); margin: 10px 0 4px; line-height: 1.3; word-break: keep-all; }

.reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .tarot-card .inner, .area-item .fill, .el-bars .eb .f, .month-chart .mc .bar, .fit-row .ft i { transition: none; }
  .pick-deck .pc, .compat-pair .heart .h, .mascot-cluster { animation: none; }
}

@media (max-width: 370px) {
  .pick-deck { grid-template-columns: repeat(5, 1fr); }
  .lucky-kit { grid-template-columns: repeat(2, 1fr); }
  .score-ring { width: 110px; height: 110px; }
  .score-ring .num b { font-size: 38px; }
  .hub-hero h1 { font-size: 31px; }
}
@media (min-width: 520px) {
  .pick-deck { grid-template-columns: repeat(8, 1fr); }
}

/* ---------- 모바일 폭 미세 조정 ---------- */
.ddi-rank .row .nm { white-space: nowrap; line-height: 1.2; }
.ddi-rank .row .nm .st { display: block; font-weight: 400; }
.area-item .lbl { width: auto; min-width: 74px; white-space: nowrap; font-size: 16px; }
.share-box .share-row .btn { font-size: 17px; padding: 13px 8px; white-space: nowrap; }
.chip-group.three label { white-space: nowrap; padding: 9px 4px; font-size: 13.5px; }
.tarot-pos { font-size: 14.5px; word-break: keep-all; line-height: 1.25; }
.ticket-card > .sec:first-of-type .sec-head { padding-right: 64px; }
@media (max-width: 370px) {
  .chip-group.three label { flex-basis: calc(50% - 7px); }
  .area-item .lbl { min-width: 0; font-size: 15px; }
}

/* =====================================================================
 * 생년월일 달력
 * ===================================================================== */
.dp-wrap { position: relative; }
.dp-wrap .dp-display {
  width: 100%; min-height: 48px; padding: 12px 44px 12px 14px; cursor: pointer;
  font-family: 'Gowun Dodum', sans-serif; font-size: 15px; color: var(--ink);
  background: #fffefb; border: none; border-bottom: 2.5px dashed var(--gold); border-radius: 10px 10px 0 0;
  outline: none; caret-color: transparent; -webkit-tap-highlight-color: transparent;
}
.dp-wrap .dp-display::placeholder { color: var(--pencil); }
.dp-wrap .dp-display:focus, .dp-wrap .dp-display.has-value { background: var(--mint-soft); }
.dp-wrap .dp-display.has-value { font-weight: 700; }
.dp-icon { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 19px; cursor: pointer; }

html.dp-lock, html.dp-lock body { overflow: hidden; }
.dp-sheet {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-end; justify-content: center;
  background: rgba(23, 23, 31, .45); opacity: 0; pointer-events: none; transition: opacity .2s ease;
}
.dp-sheet.open { opacity: 1; pointer-events: auto; }
.dp-panel {
  width: 100%; max-width: 460px; background: var(--card, #fffdf6); color: var(--ink);
  border-radius: 24px 24px 0 0; padding: 8px 18px calc(18px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -10px 30px rgba(0,0,0,.18); transform: translateY(100%); transition: transform .28s cubic-bezier(.2,.9,.3,1);
  border-top: 3px dashed var(--gold);
}
.dp-sheet.open .dp-panel { transform: none; }
.dp-grab { width: 44px; height: 5px; border-radius: 3px; background: var(--paper-line); margin: 4px auto 10px; }
.dp-title { display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.dp-title b { font-family: 'Gaegu', cursive; font-size: 22px; color: var(--stamp); }
.dp-title small { font-size: 12px; color: var(--pencil); }
.dp-x { margin-left: auto; border: none; background: var(--paper); width: 32px; height: 32px; border-radius: 50%; font-size: 14px; color: var(--ink-soft); cursor: pointer; }
.dp-head { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
.dp-head select {
  flex: 1; min-height: 44px; padding: 8px 30px 8px 12px; border: 2px solid var(--paper-line); border-radius: 12px;
  font-family: 'Gaegu', cursive; font-size: 19px; font-weight: 700; color: var(--ink); background-color: #fff;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--stamp) 50%), linear-gradient(135deg, var(--stamp) 50%, transparent 50%);
  background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-size: 5px 5px; background-repeat: no-repeat;
}
.dp-head select:focus { border-color: var(--stamp); outline: none; }
.dp-head .dp-year { flex: 1.4; }
.dp-nav {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; border: 2px solid var(--paper-line); background: #fff;
  font-size: 24px; line-height: 1; color: var(--stamp); cursor: pointer;
}
.dp-nav:active { transform: scale(.94); }
.dp-week, .dp-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.dp-week span { font-size: 12.5px; color: var(--pencil); padding: 4px 0; }
.dp-week .w0, .dp-day.w0 { color: #d64545; }
.dp-week .w6, .dp-day.w6 { color: #3f6fc4; }
.dp-days { min-height: 252px; align-content: start; }
.dp-day {
  aspect-ratio: 1 / 1; max-height: 46px; border: none; border-radius: 50%; background: transparent; cursor: pointer;
  font-family: 'Gowun Dodum', sans-serif; font-size: 15px; color: var(--ink); -webkit-tap-highlight-color: transparent;
}
.dp-day:hover { background: var(--accent-soft, #fbe7d7); }
.dp-day.on { background: var(--stamp) !important; color: #fff !important; font-weight: 700; box-shadow: 0 3px 0 var(--stamp-dark); }
.dp-day:disabled { color: var(--paper-line) !important; cursor: default; background: none; }
.dp-foot { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1.5px dashed var(--paper-line); }
.dp-picked { flex: 1; font-size: 14px; color: var(--ink-soft); }
.dp-ok {
  border: none; border-radius: 12px; padding: 12px 18px; font-family: 'Gaegu', cursive; font-size: 18px; font-weight: 700;
  color: #fff; background: linear-gradient(135deg, var(--stamp), var(--stamp-dark)); box-shadow: 0 4px 0 var(--stamp-dark); cursor: pointer;
}
.dp-ok:disabled { opacity: .4; box-shadow: none; cursor: default; }
@media (min-width: 600px) {
  .dp-sheet { align-items: center; }
  .dp-panel { border-radius: 24px; border: 3px dashed var(--gold); transform: translateY(20px) scale(.97); }
  .dp-grab { display: none; }
}

/* ---------- 하루 무료 / 포인트 안내 (입력 폼 위) ---------- */
.use-note { word-break: keep-all; border-radius: 14px; padding: 11px 14px; margin: 0 0 16px; font-size: 14px; line-height: 1.55; }
.use-note b { font-weight: 700; }
.use-note span { color: var(--pencil, #77778c); font-size: 13px; }
.use-note.free { background: #eef7f1; color: #1f6b45; }
.use-note.paid { background: #fff6dc; color: #7a5410; }
.use-note.need { background: #fdecec; color: #8f2323; }
.use-note a { display: block; margin-top: 8px; font-weight: 700; color: inherit; }


/* ---------- 타로 카드 실제 이미지 (holdlink.kr/unse/images) ---------- */
/* 뒷면: 이미지가 있으면 그림으로, 없으면 기존 무늬 */
.tarot-card .back.has-img { padding: 0; }
.tarot-card .back.has-img::after { display: none; }
.tarot-card .back img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* 앞면: 카드 그림이 기존 그린 카드 위를 덮음 (이미지가 없는 카드는 기존 디자인 그대로) */
.tarot-card .face .card-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2; background: #171332; }
.tarot-card.rev .face .card-img { transform: rotate(180deg); }   /* 역방향은 그림을 뒤집어서 */
/* 고르기 화면의 카드 뒷면 + 슬롯에 담긴 카드 */
.pick-deck .pc { background: var(--tarot-back, none) center / cover no-repeat, repeating-linear-gradient(45deg, rgba(232,185,74,.2) 0 1.5px, transparent 1.5px 7px), linear-gradient(160deg, #2a2350, #171332); }
.pick-slot.filled .mini-back { background: var(--tarot-back, none) center / cover no-repeat, linear-gradient(160deg, #2a2350, #171332); }

/* =====================================================================
 * K-POP 덕질 운세 (최애 궁합 / 아이돌 데뷔 사주) — 2026-10-05 추가
 * ===================================================================== */
body.theme-idol {
  --paper: #f6f1ff;
  --paper-line: #e6dcfa;
  --card: #fffdff;
  --stamp: #7c4dff;
  --stamp-dark: #5b30d6;
  --gold: #ff7ac6;
  --gold-soft: #ffd9ef;
  --mint: #33bfc4;
  --mint-dark: #1e9a9f;
  --mint-soft: #d3f3f4;
  --accent-soft: #efe6ff;
  --idol-grad: linear-gradient(120deg, #7c4dff 0%, #ff5fb7 55%, #ffb547 100%);
}
body.theme-idol::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(circle at 15% 22%, rgba(124,77,255,.10) 0 2px, transparent 3px),
    radial-gradient(circle at 72% 12%, rgba(255,95,183,.12) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 85% 70%, rgba(51,191,196,.12) 0 2px, transparent 3px);
  background-size: 200px 200px;
}

/* ---------- 허브: 오늘의 운세 아래 강조 박스 ---------- */
.idol-zone {
  position: relative; border-radius: 26px; padding: 3px;
  background: linear-gradient(115deg, #7c4dff, #ff5fb7, #ffb547, #33bfc4, #7c4dff);
  background-size: 300% 300%;
  animation: izFlow 7s linear infinite;
  box-shadow: 0 9px 0 rgba(124, 77, 255, .16), 0 0 26px rgba(255, 95, 183, .22);
}
@keyframes izFlow { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }
.idol-zone-inner { background: #fffdff; border-radius: 23px; padding: 14px 12px 12px; }
.iz-head { display: flex; align-items: center; gap: 8px; padding: 0 4px; }
.iz-head h2 {
  margin: 0; font-size: 23px; line-height: 1.1;
  background: linear-gradient(100deg, #6a3df0, #e2479b); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.iz-spark { color: #ff5fb7; font-size: 16px; animation: izTwinkle 1.6s ease-in-out infinite; }
@keyframes izTwinkle { 50% { opacity: .35; transform: scale(.8); } }
.iz-pill {
  margin-left: auto; font-size: 11px; font-weight: 700; color: #fff; padding: 3px 9px; border-radius: 999px;
  background: linear-gradient(120deg, #7c4dff, #ff5fb7);
}
.iz-sub { margin: 4px 4px 12px; font-size: 12.5px; color: var(--ink-soft); line-height: 1.5; word-break: keep-all; }
.iz-cards { display: grid; gap: 10px; }
.cat-card.c-idolmatch { --c: #7c4dff; --c-soft: #e8ddff; --c-deep: #5b30d6; }
.cat-card.c-idoldebut { --c: #e2479b; --c-soft: #ffd9ec; --c-deep: #b72d76; }
.iz-cards .cat-card { box-shadow: 0 5px 0 var(--c-soft); }
.cat-card .cat-tags .cat-price { background: #1b1630; color: #f6d98a; font-weight: 700; }
@media (prefers-reduced-motion: reduce) {
  .idol-zone, .iz-spark { animation: none; }
}

/* ---------- 입력 폼 ---------- */
.idol-divider { display: flex; align-items: center; gap: 10px; margin: 22px 0 14px; }
.idol-divider::before, .idol-divider::after { content: ""; flex: 1; height: 0; border-top: 1.5px dashed var(--paper-line); }
.idol-divider span { font-family: 'Gaegu', cursive; font-size: 19px; font-weight: 700; color: var(--stamp); }
.theme-idol .chip-group label { border-color: #cdb8ff; }

/* ---------- 공통 작은 요소 ---------- */
.mini-kws { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.mini-kws span { font-size: 12px; padding: 2px 9px; border-radius: 999px; background: var(--accent-soft); color: var(--stamp-dark); }
.gap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.gap-grid .gap { border-radius: 14px; padding: 12px; font-size: 13.5px; line-height: 1.55; word-break: keep-all; color: var(--ink-soft); }
.gap-grid .gap span { display: block; font-family: 'Gaegu', cursive; font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.gap-grid .gap.on { background: #1b1630; color: rgba(241,236,255,.85); }
.gap-grid .gap.on span { color: #f6d98a; }
.gap-grid .gap.off { background: #fff; border: 1.5px solid var(--paper-line); }

/* ---------- 최애 궁합: 케미 카드 (html2canvas 저장용이라 conic/blur 안 씀) ---------- */
.chemi-card {
  position: relative; border-radius: 22px; padding: 16px 16px 12px; color: #fff; overflow: hidden;
  background: linear-gradient(150deg, #6a3df0 0%, #a64be0 45%, #ff5fb7 100%);
  box-shadow: 0 8px 0 rgba(91, 48, 214, .18);
}
.chemi-card::before {
  content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%;
  background: rgba(255,255,255,.12);
}
.chemi-card::after {
  content: "✦"; position: absolute; left: 14px; bottom: 34px; font-size: 18px; color: rgba(255,255,255,.35);
}
.cc-top { position: relative; display: flex; justify-content: space-between; font-size: 11px; letter-spacing: .12em; opacity: .85; font-weight: 700; }
.cc-pair { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 6px; margin: 14px 0 10px; }
.cc-who { text-align: center; min-width: 0; }
.cc-who .cc-av {
  width: 62px; height: 62px; margin: 0 auto 6px; border-radius: 50%; display: grid; place-items: center; font-size: 34px;
  background: rgba(255,255,255,.2); border: 2px solid rgba(255,255,255,.55);
}
.cc-who b { display: block; font-family: 'Gaegu', cursive; font-size: 20px; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-who small { display: block; font-size: 11.5px; opacity: .85; margin-top: 2px; }
.cc-score { text-align: center; font-family: 'Gaegu', cursive; line-height: 1; }
.cc-score .cc-heart { display: block; font-size: 20px; }
.cc-score b { display: block; font-size: 52px; color: #fff3b0; text-shadow: 0 3px 0 rgba(0,0,0,.15); }
.cc-score small { font-size: 11px; letter-spacing: .15em; opacity: .85; font-family: 'Gowun Dodum', sans-serif; }
.cc-type {
  position: relative; text-align: center; font-family: 'Gaegu', cursive; font-size: 26px; font-weight: 700;
  background: rgba(255,255,255,.95); color: #5b30d6; border-radius: 14px; padding: 6px 10px; margin-top: 2px;
}
.cc-line { position: relative; text-align: center; font-size: 13px; margin-top: 8px; opacity: .95; }
.cc-tags { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin-top: 9px; }
.cc-tags span { font-size: 12px; padding: 3px 9px; border-radius: 999px; background: rgba(27,22,48,.28); }
.cc-roles { position: relative; display: grid; gap: 6px; margin-top: 12px; }
.cc-roles div { background: rgba(255,255,255,.14); border-radius: 12px; padding: 8px 11px; font-size: 13px; line-height: 1.45; word-break: keep-all; }
.cc-roles i { display: block; font-style: normal; font-size: 11px; opacity: .8; margin-bottom: 1px; }
.cc-foot { position: relative; text-align: right; font-size: 10.5px; opacity: .7; margin-top: 10px; letter-spacing: .04em; }

.chemi-moments { display: grid; gap: 8px; margin-top: 10px; }
.chemi-moments .cm { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 14px; padding: 11px 13px; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); word-break: keep-all; }
.chemi-moments .cm b { display: block; font-family: 'Gaegu', cursive; font-size: 17px; color: var(--stamp-dark); }
.chemi-moments .cm.warn b { color: #c4572f; }

.saju-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; }
.saju-pair .sp { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 16px; padding: 12px 6px; text-align: center; min-width: 0; }
.saju-pair .sp-el { display: block; font-size: 28px; }
.saju-pair .sp b { display: block; font-family: 'Gaegu', cursive; font-size: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.saju-pair .sp small { display: block; font-size: 11.5px; color: var(--pencil); }
.saju-pair .sp-mid {
  font-size: 12px; font-weight: 700; color: #fff; background: var(--stamp); border-radius: 999px; padding: 5px 9px; white-space: nowrap;
}

.fan-type { display: flex; gap: 12px; align-items: flex-start; margin-top: 12px; background: var(--accent-soft); border-radius: 16px; padding: 13px; }
.fan-type .ft-ic { flex-shrink: 0; width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 28px; background: #fff; }
.fan-type small { font-size: 11.5px; color: var(--pencil); }
.fan-type b { display: block; font-family: 'Gaegu', cursive; font-size: 20px; color: var(--stamp-dark); line-height: 1.15; }
.fan-type p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); word-break: keep-all; }

.kw-bridge { text-align: center; margin-top: 14px; }
.kw-bridge small { font-size: 12px; color: var(--pencil); }
.kw-bridge div { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.kw-bridge span {
  font-family: 'Gaegu', cursive; font-size: 17px; font-weight: 700; color: #fff; padding: 4px 13px; border-radius: 999px;
  background: linear-gradient(120deg, #7c4dff, #ff5fb7);
}

.luck-list { display: grid; gap: 8px; }
.luck-row { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 14px; padding: 11px 13px; }
.luck-row.boost { border: 2px solid var(--stamp); background: #fbf8ff; }
.luck-row .lr-head { display: flex; justify-content: space-between; align-items: center; }
.luck-row .lr-head b { font-family: 'Gaegu', cursive; font-size: 17px; }
.luck-row .stars { color: #f2b01e; letter-spacing: 1px; font-size: 14px; }
.luck-row p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); word-break: keep-all; }

.fan-letter {
  position: relative; background: #fff; border-radius: 16px; padding: 16px 18px; border: 1.5px dashed #cdb8ff;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 27px, #f0e9ff 27px, #f0e9ff 28px);
}
.fan-letter .fl-to, .fan-letter .fl-from { display: block; font-family: 'Gaegu', cursive; font-size: 17px; color: var(--stamp-dark); }
.fan-letter .fl-from { text-align: right; }
.fan-letter p { margin: 6px 0; font-family: 'Gaegu', cursive; font-size: 21px; line-height: 1.35; word-break: keep-all; }

/* ---------- 아이돌 데뷔 사주: 프로필 카드 ---------- */
.debut-card {
  --ls: #7c4dff;
  position: relative; border-radius: 22px; overflow: hidden; background: #1b1630; color: #f4f0ff;
  box-shadow: 0 8px 0 rgba(27,22,48,.18);
}
.dc-band {
  display: flex; justify-content: space-between; padding: 9px 16px; font-size: 11px; font-weight: 700; letter-spacing: .14em; color: #fff;
  background: linear-gradient(90deg, var(--ls), #ff5fb7);
}
.dc-body { position: relative; padding: 16px 16px 12px; text-align: center; }
.dc-body::before {
  content: ""; position: absolute; left: 50%; top: -30px; width: 220px; height: 220px; margin-left: -110px; border-radius: 50%;
  background: radial-gradient(circle, var(--ls) 0%, rgba(27,22,48,0) 68%); opacity: .45;
}
.dc-emblem { position: relative; font-size: 34px; }
.dc-name { position: relative; font-family: 'Noto Serif KR', serif; font-size: 40px; font-weight: 700; letter-spacing: .06em; color: #fff; line-height: 1.1; margin-top: 2px; }
.dc-name-ko { position: relative; font-size: 13px; color: rgba(244,240,255,.75); margin-top: 3px; }
.dc-pos { position: relative; display: flex; justify-content: center; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
.dc-pos span { font-size: 13px; padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); }
.dc-pos span.main { background: #f6d98a; color: #3b2a12; border-color: #f6d98a; font-weight: 700; }
.dc-info { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 14px 0 0; text-align: left; }
.dc-info div { background: rgba(255,255,255,.08); border-radius: 12px; padding: 8px 10px; min-width: 0; }
.dc-info dt { font-size: 10.5px; color: rgba(244,240,255,.6); letter-spacing: .05em; }
.dc-info dd { margin: 2px 0 0; font-size: 13.5px; font-weight: 700; word-break: keep-all; line-height: 1.35; }
.dc-sw { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: var(--ls); margin-right: 5px; vertical-align: 0; box-shadow: 0 0 8px var(--ls); }
.dc-stats { position: relative; display: grid; gap: 6px; margin-top: 12px; text-align: left; }
.dc-stats div { display: grid; grid-template-columns: 82px 1fr 28px; align-items: center; gap: 8px; font-size: 12.5px; }
.dc-stats i { display: block; height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--ls), #ff5fb7); }
.dc-stats b { text-align: right; font-size: 13px; }
.dc-power { position: relative; margin-top: 12px; font-size: 12px; color: rgba(244,240,255,.75); }
.dc-power b { font-family: 'Gaegu', cursive; font-size: 26px; color: #f6d98a; margin-left: 4px; vertical-align: -2px; }
.dc-foot { text-align: right; font-size: 10.5px; color: rgba(244,240,255,.5); padding: 0 16px 10px; letter-spacing: .04em; }

.debut-facts { display: grid; gap: 8px; margin-top: 12px; }
.debut-facts div { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 14px; padding: 10px 13px; font-size: 13.5px; line-height: 1.55; color: var(--ink-soft); word-break: keep-all; }
.debut-facts span { display: block; font-family: 'Gaegu', cursive; font-size: 16px; font-weight: 700; color: var(--stamp-dark); }

.pos-card { display: flex; gap: 12px; align-items: flex-start; background: var(--accent-soft); border-radius: 16px; padding: 14px; }
.pos-card .pc-ic { flex-shrink: 0; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 30px; background: #fff; }
.pos-card small { font-size: 11.5px; color: var(--pencil); }
.pos-card b { display: block; font-family: 'Gaegu', cursive; font-size: 22px; color: var(--stamp-dark); line-height: 1.15; }
.pos-card p { margin: 5px 0 0; font-size: 13.5px; line-height: 1.65; color: var(--ink-soft); word-break: keep-all; }
.area-item.top-stat { border: 2px solid var(--stamp); background: #fbf8ff; }

.concept-hero { text-align: center; padding: 14px; border-radius: 16px; background: #fff; border: 1.5px solid var(--paper-line); }
.concept-hero .ch-ic { display: block; font-size: 36px; }
.concept-hero b { display: block; font-family: 'Gaegu', cursive; font-size: 25px; color: var(--stamp-dark); }
.concept-hero .mini-kws { justify-content: center; }
.concept-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.concept-grid div { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 14px; padding: 10px 12px; font-size: 13.5px; line-height: 1.45; word-break: keep-all; }
.concept-grid span { display: block; font-size: 11.5px; color: var(--pencil); margin-bottom: 2px; }

.story-line { list-style: none; margin: 0; padding: 0 0 0 18px; position: relative; }
.story-line::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; border-left: 2px dashed #cdb8ff; }
.story-line li { position: relative; margin-bottom: 12px; }
.story-line li::before {
  content: ""; position: absolute; left: -17px; top: 5px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--stamp); box-shadow: 0 0 0 3px var(--accent-soft);
}
.story-line li:last-child { margin-bottom: 0; }
.story-line .sl-tag { display: inline-block; font-size: 12.5px; font-weight: 700; color: var(--stamp-dark); background: var(--accent-soft); padding: 2px 9px; border-radius: 999px; }
.story-line p { margin: 5px 0 0; font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); word-break: keep-all; }

.member-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.member-grid .mg { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 14px; padding: 11px 8px; text-align: center; }
.member-grid .mg .e { display: block; font-size: 30px; line-height: 1.2; }
.member-grid .mg b { display: block; font-family: 'Gaegu', cursive; font-size: 17px; }
.member-grid .mg small { display: block; font-size: 11.5px; color: var(--pencil); line-height: 1.4; word-break: keep-all; }
.member-grid .mg.best { border: 2px solid var(--stamp); background: #fbf8ff; }
.member-grid .mg.rival { border-style: dashed; }

@media (max-width: 360px) {
  .cc-who .cc-av { width: 52px; height: 52px; font-size: 28px; }
  .cc-score b { font-size: 44px; }
  .dc-name { font-size: 34px; }
  .gap-grid, .concept-grid { grid-template-columns: 1fr; }
}

/* =====================================================================
 * 가독성 보정 (2026-10-05) — 귀여운 폰트(Gaegu / Gowun Dodum)는 그대로,
 * 글자를 키우고 회색 글씨를 진하게. 모바일에서 흐리고 작게 보이던 부분 위주.
 * 되돌리고 싶으면 이 블록만 지우면 돼요.
 * ===================================================================== */
/* 1) 흐림의 주원인: 글자색이 회색 + Gowun Dodum 이 한 가지 굵기(얇음)뿐
 *    → 본문 글자색을 거의 검정으로, 보조 글씨도 진한 회색으로
 *    → 얇은 획을 0.15px 정도 살짝 보정 (-webkit-text-stroke, 모든 최신 브라우저 지원)
 *    → 맥/아이폰에서 글자를 더 가늘게 만드는 antialiased 해제 */
:root, body[class*="theme-"] {
  --ink: #111118;
  --ink-soft: #24242f;
  --pencil: #4d4d5e;
}
body {
  font-size: 17px; color: var(--ink);
  -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;
  -webkit-text-stroke: .15px currentColor;  /* 굵기 보정: 0 = 원래, .15 = 중간(현재), .3 = 두껍게 */
}
/* 큰 제목·숫자·흰 글씨 버튼은 보정 없이 (번져 보이지 않게) */
h1, .hub-hero h1, .form-intro h1, .result-hero h1, .score-ring .num b, .cc-score b, .dc-name,
.btn, .cat-pill, .cat-badge, .iz-pill, .kw-bridge span, .sec-head .no, .stamp, .iz-head h2 { -webkit-text-stroke: 0; }

/* Gaegu(손글씨) 는 얇아서 작은 크기에선 흐려 보여요 → 굵게 + 한 단계 크게 */
h1, h2, h3, .brush { font-weight: 700; }
.sec-head h2 { font-size: 25px; }
.sec-head small { font-size: 14px; }
.section-label h2 { font-size: 25px; }
.section-label span { font-size: 14px; }
.quote-line { font-size: 23px; font-weight: 700; }

/* 본문 (Gowun Dodum) */
.note-box { font-size: 16px; line-height: 1.75; }
.field .hint, .privacy-note, .footnote { font-size: 14px; color: var(--pencil); }
.form-intro p { font-size: 16px; }
.what-you-get span { font-size: 14px; padding: 5px 11px; }
.chip-group label { font-size: 15.5px; }
.badge-row span { font-size: 14px; }
.result-hero .meta { font-size: 15px; }
.sec-nav a { font-size: 14.5px; }

/* 허브 카드 */
.cat-card .cat-title { font-size: 25px; }
.cat-card .cat-desc { font-size: 15px; color: var(--ink-soft); }
.cat-card .cat-tags span { font-size: 13px; padding: 3px 9px; }
.cat-card .cat-badge { font-size: 12px; }
.cross-cats .cat-card .cat-title { font-size: 21px; }
.iz-head h2 { font-size: 26px; }
.iz-sub { font-size: 14px; }
.ddi-preview .dp-head { font-size: 15px; }
.dp-item .n { font-size: 13px; }

/* 결과 공통 리스트 */
.area-item .lbl { font-size: 18px; width: 92px; }
.area-item .val { font-size: 15px; }
.area-item p, .time-flow .tf, .my-ddi-card p { font-size: 15px; }
.compat-items .ci { font-size: 15px; }
.compat-items .ci b { font-size: 19px; }
.lucky-kit .lk .k { font-size: 13px; }
.lucky-kit .lk .v { font-size: 15.5px; }

/* K-POP 덕질 운세 */
.mini-kws span { font-size: 13.5px; }
.gap-grid .gap { font-size: 15px; }
.gap-grid .gap span { font-size: 18px; }
.gap-grid .gap.on { color: rgba(241,236,255,.95); }
.cc-who small { font-size: 13px; opacity: 1; }
.cc-line { font-size: 15px; }
.cc-tags span { font-size: 13.5px; }
.cc-roles div { font-size: 15px; }
.cc-roles i { font-size: 12.5px; opacity: .9; }
.cc-top { font-size: 12px; opacity: 1; }
.chemi-moments .cm { font-size: 15px; }
.chemi-moments .cm b { font-size: 19px; }
.saju-pair .sp b { font-size: 20px; }
.saju-pair .sp small { font-size: 13px; }
.saju-pair .sp-mid { font-size: 13px; }
.fan-type small, .pos-card small { font-size: 13px; }
.fan-type b { font-size: 22px; }
.fan-type p, .pos-card p { font-size: 15px; }
.pos-card b { font-size: 24px; }
.kw-bridge small { font-size: 13.5px; }
.kw-bridge span { font-size: 19px; }
.luck-row .lr-head b { font-size: 19px; }
.luck-row p { font-size: 15px; }
.fan-letter p { font-size: 23px; font-weight: 700; }
.fan-letter .fl-to, .fan-letter .fl-from { font-size: 19px; font-weight: 700; }
.dc-name-ko { font-size: 14.5px; color: rgba(244,240,255,.9); }
.dc-pos span { font-size: 14.5px; }
.dc-info dt { font-size: 12px; color: rgba(244,240,255,.75); }
.dc-info dd { font-size: 15px; }
.dc-stats div { font-size: 14px; grid-template-columns: 90px 1fr 30px; }
.dc-power { font-size: 13.5px; color: rgba(244,240,255,.9); }
.debut-facts div { font-size: 15px; }
.debut-facts span { font-size: 18px; }
.concept-hero b { font-size: 27px; }
.concept-grid div { font-size: 15px; }
.concept-grid span { font-size: 13px; }
.story-line .sl-tag { font-size: 14px; }
.story-line p { font-size: 15px; }
.member-grid .mg b { font-size: 19px; }
.member-grid .mg small { font-size: 13px; }

/* 카드 안 반투명 글씨를 불투명하게 */
.cc-top, .cc-line, .cc-foot, .cc-score small { opacity: 1; }
.cc-foot { color: rgba(255,255,255,.85); }
.dc-foot { color: rgba(244,240,255,.75); }
.cat-card .cat-tags span { font-weight: 700; }
.area-item .lbl, .luck-row .lr-head b, .chemi-moments .cm b, .debut-facts span, .gap-grid .gap span { font-weight: 700; }

/* =====================================================================
 * 메인: 퀴즈로 포인트 모으기 유도 (2026-10-05)
 * ===================================================================== */
.quiz-strip {
  display: flex; align-items: center; gap: 9px; margin-top: 10px; padding: 11px 12px; border-radius: 14px;
  background: #1b1630; color: #f1ecff; text-decoration: none; font-size: 14.5px; -webkit-text-stroke: 0;
}
.quiz-strip .qs-coin {
  flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  background: #f3c552; color: #7a5410; font-weight: 800; font-size: 13px;
}
.quiz-strip .qs-text { flex: 1; min-width: 0; line-height: 1.4; word-break: keep-all; }
.quiz-strip .qs-text b { color: #f6d98a; }
.quiz-strip .qs-go { flex-shrink: 0; font-weight: 800; color: #f6d98a; font-size: 14px; }

.quiz-cta {
  position: relative; margin-top: 18px; padding: 18px 16px 16px; border-radius: 22px; overflow: hidden;
  background: linear-gradient(160deg, #2a2342, #1b1630); color: #f1ecff;
  box-shadow: 0 7px 0 rgba(27,22,48,.18); -webkit-text-stroke: 0;
}
.quiz-cta::after {
  content: "?"; position: absolute; right: -6px; top: -26px; font-family: 'Gaegu', cursive; font-weight: 700;
  font-size: 150px; color: rgba(243,197,82,.13); line-height: 1;
}
.qc-head { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.qc-badge { font-size: 13px; font-weight: 700; color: #3b2a12; background: #f3c552; padding: 3px 10px; border-radius: 999px; }
.qc-live { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #c9f5d9; }
.qc-live i { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,.25); animation: qcPulse 1.6s ease-in-out infinite; }
@keyframes qcPulse { 50% { box-shadow: 0 0 0 6px rgba(74,222,128,0); } }
.quiz-cta h2 { position: relative; margin: 12px 0 14px; font-size: 26px; line-height: 1.25; color: #fff; word-break: keep-all; }
.qc-steps { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.qc-steps li { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 10px 6px; text-align: center; }
.qc-steps b {
  display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
  background: #f3c552; color: #3b2a12; font-size: 12px; margin-bottom: 5px;
}
.qc-steps span { display: block; font-size: 14px; font-weight: 700; color: #fff; line-height: 1.3; word-break: keep-all; }
.qc-steps small { display: block; font-size: 12px; color: rgba(241,236,255,.78); margin-top: 3px; word-break: keep-all; }
.qc-me {
  position: relative; display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 12px;
  font-size: 14px; color: rgba(241,236,255,.9);
}
.qc-me b { color: #f6d98a; }
.qc-btn {
  position: relative; display: block; margin-top: 12px; padding: 13px; border-radius: 14px; text-align: center; text-decoration: none;
  background: #f3c552; color: #3b2a12; font-size: 16px; font-weight: 800; box-shadow: 0 4px 0 #b98f2a;
}
.qc-btn:active { transform: translateY(3px); box-shadow: 0 1px 0 #b98f2a; }
.qc-sub { position: relative; display: block; margin-top: 9px; text-align: center; font-size: 13.5px; color: rgba(241,236,255,.85); }
@media (prefers-reduced-motion: reduce) { .qc-live i { animation: none; } }

/* =====================================================================
 * 메인 정리 (2026-10-05)
 * ===================================================================== */
.hub-hero.v2 { margin-bottom: 14px; }
.hub-hero.v2 h1 { font-size: 34px; margin-top: 10px; }
.idol-zone.v2 .iz-head { margin-bottom: 10px; }
.idol-zone.v2 .cat-card { padding: 14px 14px 14px 14px; }
.idol-zone.v2 .cat-card .cat-icon { width: 56px; height: 56px; font-size: 30px; }

.mini-cats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mini-cat {
  --c-soft: #e8e8f0; --c-deep: #333; display: block; text-align: center; text-decoration: none; color: var(--ink);
  background: var(--card); border: 2px solid var(--c-soft); border-radius: 18px; padding: 14px 8px; box-shadow: 0 5px 0 var(--c-soft);
}
.mini-cat.c-destiny { --c-soft: #dbe2f5; --c-deep: #2c4183; }
.mini-cat.c-love    { --c-soft: #fadbe4; --c-deep: #a73c5c; }
.mini-cat .mc-ic { display: block; font-size: 32px; }
.mini-cat b { display: block; font-family: 'Gaegu', cursive; font-size: 21px; color: var(--c-deep); margin-top: 2px; word-break: keep-all; }
.mini-cat small { display: block; font-size: 13px; color: var(--pencil); margin-top: 2px; word-break: keep-all; }

/* 메인 — 오늘의 운세 카드 */
.feature-banner .fb-free {
  display: inline-block; vertical-align: 3px; margin-left: 4px; font-family: 'Gowun Dodum', sans-serif; font-size: 12px; font-weight: 700;
  color: #fff; background: #d64545; padding: 1px 8px; border-radius: 999px; -webkit-text-stroke: 0;
}
.today-ticket {
  position: relative; display: flex; margin-bottom: 16px; text-decoration: none; color: var(--ink); border-radius: 20px; overflow: hidden;
  background: #fff; border: 1.5px solid #f1dcc6; box-shadow: 0 10px 26px -16px rgba(185, 86, 28, .55);
}
.today-ticket:active { transform: translateY(2px); }
.tt-stub {
  flex-shrink: 0; width: 92px; display: flex; flex-direction: column; justify-content: center; text-align: center; padding: 16px 6px;
  background: linear-gradient(180deg, #ff9a4d, #e0702f); color: #fff; -webkit-text-stroke: 0;
}
.tt-stub .m { font-size: 12px; letter-spacing: .18em; font-weight: 700; }
.tt-stub .d { font-family: 'Noto Serif KR', serif; font-size: 40px; font-weight: 700; line-height: 1; margin: 4px 0; }
.tt-stub .w { font-size: 13px; font-weight: 700; }
.tt-stub .p { margin-top: 8px; font-size: 12px; background: rgba(255, 255, 255, .22); border-radius: 999px; padding: 2px 0; }
.tt-perf { position: relative; width: 0; border-left: 2px dashed #f1dcc6; }
.tt-perf::before, .tt-perf::after {
  content: ""; position: absolute; left: -10px; width: 18px; height: 18px; border-radius: 50%; background: var(--paper); border: 1.5px solid #f1dcc6;
}
.tt-perf::before { top: -10px; }
.tt-perf::after { bottom: -10px; }
.tt-body { flex: 1; min-width: 0; padding: 14px 14px 14px 16px; }
.tt-k { display: block; font-size: 12.5px; font-weight: 700; color: #d0682a; -webkit-text-stroke: 0; }
.tt-t { display: block; font-family: 'Gaegu', cursive; font-weight: 700; font-size: 29px; line-height: 1.1; margin-top: 2px; }
.tt-ic { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin: 10px 0; }
.tt-ic > span { text-align: center; font-size: 12.5px; background: #fff5ea; border-radius: 10px; padding: 6px 0 4px; color: var(--ink-soft); }
.tt-ic i { display: block; font-style: normal; font-size: 18px; }
.tt-go { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: 13.5px; }
.tt-go > span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tt-go b { flex-shrink: 0; background: #1d1830; color: #f6d98a; padding: 7px 12px; border-radius: 999px; font-size: 13.5px; -webkit-text-stroke: 0; }
@media (max-width: 350px) { .tt-stub { width: 78px; } .tt-stub .d { font-size: 34px; } }

/* 효과음 🔊 · 배경음 🎵 버튼 (운세 화면 오른쪽 아래) */
.unse-snd { position: fixed; right: max(12px, calc(50% - 248px)); bottom: calc(96px + env(safe-area-inset-bottom)); z-index: 901; display: flex; flex-direction: column; gap: 8px; }
.unse-snd button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--paper-line); background: rgba(255,255,255,.95); font-size: 19px; cursor: pointer;
  box-shadow: 0 6px 14px rgba(27,22,48,.16); -webkit-text-stroke: 0; opacity: .55; }
.unse-snd button.on { opacity: 1; background: #1b1630; border-color: #1b1630; box-shadow: 0 0 0 3px rgba(246,217,138,.5); }
.unse-snd button:last-child { opacity: 1; }

/* =====================================================================
 * 시즌 이벤트 운세 (2026-10-05)
 * ===================================================================== */
.season-banner {
  position: relative; display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding: 14px 14px 14px 12px;
  border-radius: 20px; text-decoration: none; color: #fff; overflow: hidden;
  background: linear-gradient(120deg, var(--s1), var(--s2)); box-shadow: 0 8px 20px -10px var(--s1);
}
.season-banner::after { content: ""; position: absolute; right: -30px; top: -30px; width: 120px; height: 120px; border-radius: 50%; background: rgba(255,255,255,.16); }
.season-banner .sb-emoji { position: relative; flex-shrink: 0; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 32px; background: rgba(255,255,255,.22); }
.season-banner .sb-body { position: relative; flex: 1; min-width: 0; }
.season-banner .sb-badge { display: inline-block; font-size: 11.5px; font-weight: 700; background: rgba(27,22,48,.3); padding: 2px 8px; border-radius: 99px; -webkit-text-stroke: 0; }
.season-banner b { display: block; font-family: 'Gaegu', cursive; font-size: 24px; line-height: 1.15; margin-top: 3px; }
.season-banner small { display: block; font-size: 13px; opacity: .95; line-height: 1.4; word-break: keep-all; }
.season-banner .sb-go { position: relative; font-size: 22px; font-weight: 800; }
.season-badge { display: inline-block; font-size: 12.5px; font-weight: 700; color: #fff; background: var(--stamp); padding: 3px 11px; border-radius: 99px; margin-bottom: 4px; -webkit-text-stroke: 0; }
.season-card {
  position: relative; border-radius: 22px; padding: 16px 18px 12px; text-align: center; color: #fff; overflow: hidden;
  background: linear-gradient(160deg, var(--season-1, #e0702f), var(--season-2, #f0b43c)); -webkit-text-stroke: 0;
}
.season-card::before { content: ""; position: absolute; left: -40px; bottom: -50px; width: 170px; height: 170px; border-radius: 50%; background: rgba(255,255,255,.14); }
.season-card .sc-top { position: relative; display: flex; justify-content: space-between; font-size: 11px; font-weight: 700; letter-spacing: .1em; opacity: .9; }
.season-card .sc-emoji { position: relative; font-size: 58px; line-height: 1.1; margin-top: 8px; }
.season-card .sc-label { position: relative; font-size: 13px; opacity: .95; margin-top: 4px; }
.season-card .sc-name { position: relative; font-family: 'Gaegu', cursive; font-weight: 700; font-size: 30px; line-height: 1.15; }
.season-card .sc-score { position: relative; display: inline-flex; align-items: baseline; gap: 2px; margin-top: 6px; background: rgba(255,255,255,.95); color: var(--season-1, #e0702f); border-radius: 99px; padding: 2px 18px; }
.season-card .sc-score b { font-family: 'Gaegu', cursive; font-size: 34px; }
.season-card .sc-head { position: relative; font-size: 14.5px; margin-top: 8px; font-weight: 700; word-break: keep-all; }
.season-card .sc-bars { position: relative; display: grid; gap: 6px; margin-top: 12px; text-align: left; }
.season-card .sc-bars div { display: grid; grid-template-columns: 104px 1fr 28px; align-items: center; gap: 8px; font-size: 13.5px; }
.season-card .sc-bars i { display: block; height: 8px; border-radius: 99px; background: rgba(255,255,255,.95); }
.season-card .sc-bars b { text-align: right; }
.season-card .sc-foot { position: relative; text-align: right; font-size: 11px; opacity: .85; margin-top: 10px; }
.season-number { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--accent-soft); border-radius: 16px; padding: 14px 16px; }
.season-number span { font-size: 15px; font-weight: 700; word-break: keep-all; }
.season-number b { font-family: 'Gaegu', cursive; font-size: 36px; color: var(--stamp); line-height: 1; white-space: nowrap; }
.season-number small { font-size: 16px; margin-left: 2px; }

/* =====================================================================
 * 운세 카드 도감 (2026-10-05)
 * ===================================================================== */
.dex-link { display: block; margin-top: 14px; padding: 13px 16px 12px 58px; position: relative; border-radius: 18px; text-decoration: none; color: var(--ink);
  background: #fff; border: 1.5px dashed #cdb8ff; }
.dex-link > span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-size: 30px; }
.dex-link b { display: block; font-size: 15.5px; }
.dex-link b em { font-style: normal; color: #7c4dff; margin-left: 4px; }
.dex-link small { display: block; font-size: 13px; color: var(--pencil); margin-top: 2px; word-break: keep-all; }
.dex-link.hub { margin: 16px 0 0; }
.dex-hero { position: relative; border-radius: 22px; padding: 16px 18px 12px; color: #fff; text-align: center; overflow: hidden; -webkit-text-stroke: 0;
  background: linear-gradient(150deg, #2a2342, #5b30d6 55%, #ff5fb7); }
.dex-hero .dh-top { display: flex; justify-content: space-between; font-size: 11px; font-weight: 700; letter-spacing: .12em; opacity: .85; }
.dex-hero .dh-title { font-family: 'Gaegu', cursive; font-weight: 700; font-size: 25px; margin-top: 10px; line-height: 1.2; word-break: keep-all; }
.dex-hero .dh-rank { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 700; color: #3b2a12; background: #f6d98a; padding: 3px 12px; border-radius: 99px; }
.dex-hero .dh-count { margin-top: 8px; font-size: 16px; }
.dex-hero .dh-count b { font-family: 'Gaegu', cursive; font-size: 44px; color: #fff3b0; }
.dex-hero .dh-bar { height: 10px; border-radius: 99px; background: rgba(255,255,255,.2); overflow: hidden; margin: 6px 0 10px; }
.dex-hero .dh-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #f6d98a, #fff); min-width: 4%; }
.dex-hero .dh-sets { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.dex-hero .dh-sets span { font-size: 13px; background: rgba(27,22,48,.35); padding: 3px 10px; border-radius: 99px; }
.dex-hero .dh-sets span.full { background: #f6d98a; color: #3b2a12; font-weight: 700; }
.dex-hero .dh-foot { text-align: right; font-size: 10.5px; opacity: .7; margin-top: 10px; }
.dex-tip { margin: 14px 0; background: #fff; border-radius: 16px; padding: 13px 15px; font-size: 14.5px; line-height: 1.6; border-left: 4px solid #7c4dff; word-break: keep-all; }
.dex-tip span { font-size: 13px; color: var(--pencil); }
.dex-set { background: #fff; border: 1.5px solid var(--paper-line); border-radius: 20px; padding: 14px; margin-top: 14px; }
.dex-set .ds-head { display: flex; justify-content: space-between; align-items: center; }
.dex-set .ds-head h2 { margin: 0; font-size: 22px; }
.dex-set .ds-head span { font-size: 14px; font-weight: 700; color: var(--pencil); }
.dex-set .ds-head span.done { color: #b4851f; }
.dex-set .ds-how { margin: 2px 0 10px; font-size: 13.5px; color: var(--pencil); word-break: keep-all; }
.ds-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 7px; }
.ds-grid.small { grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); }
.ds-grid .dx { position: relative; text-align: center; border-radius: 14px; padding: 10px 4px 8px; background: #f3f1f8; border: 1.5px dashed #d9d3ea; color: #a39db8; }
.ds-grid .dx .e { display: block; font-size: 26px; line-height: 1.15; font-weight: 800; }
.ds-grid .dx .n { display: block; font-size: 11.5px; line-height: 1.3; margin-top: 4px; word-break: keep-all; }
.ds-grid .dx.got { background: linear-gradient(160deg, #fff, #f3ecff); border: 1.5px solid #cdb8ff; color: var(--ink); }
.ds-grid .dx .x { position: absolute; top: -6px; right: -4px; font-size: 10.5px; font-weight: 700; background: #7c4dff; color: #fff; border-radius: 99px; padding: 1px 6px; -webkit-text-stroke: 0; }
.dex-set .ds-go { display: block; text-align: right; margin-top: 10px; font-size: 14px; font-weight: 700; color: #7c4dff; text-decoration: none; }
.download-btn.wall-btn { margin-left: 6px; background: #1b1630; color: #f6d98a; border-color: #1b1630; -webkit-text-stroke: 0; }
.qc-more { position: relative; margin: 10px 0 0; text-align: center; font-size: 13px; color: #f6d98a; }

/* 하단 블로그 · 인스타그램 링크 */
.sns-links { display: flex; justify-content: center; gap: 8px; margin: 10px 0 8px; }
.sns-links a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border-radius: 99px; text-decoration: none; font-size: 13px; font-weight: 700;
  background: #fff; border: 1px solid #e5e1ee; color: #2e2e3f; -webkit-text-stroke: 0; }
.sns-links a.sns-insta svg { color: #e1306c; }


/* =====================================================================
 * 2026-10-06 첫 화면 정리 · 오늘의 퀴즈 · 내 캐릭터 키우기 카드
 * ===================================================================== */
/* 섹션 여백 · 띠 TOP3 · 맨 아래 묶음 */
.idol-zone.v2, .today-ticket, .feature-banner { margin-bottom: 26px; }
.section-label.cl { margin-top: 30px; }
.ddi-top { margin: 14px 0 0; padding: 14px; border-radius: 20px; background: #fff; border: 1.5px solid #f1e6f3; }
.dt-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 15px; color: #3b2b55; }
.dt-head span { font-size: 12px; color: #9a8fb0; }
.dt-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
.dt-item { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 10px 4px; border-radius: 16px; background: #fbf8ff; text-decoration: none; color: #3b2b55; }
.dt-item.r1 { background: linear-gradient(160deg, #fff7d6, #ffe9a8); }
.dt-item .rk { font-size: 20px; } .dt-item .e { font-size: 30px; line-height: 1.1; } .dt-item .n { font-size: 13px; font-weight: 800; }
.dt-more { margin-top: 10px; }
.dt-more summary { list-style: none; text-align: center; font-size: 13px; font-weight: 800; color: #8b5cf6; cursor: pointer; padding: 6px; }
.dt-more summary::-webkit-details-marker { display: none; }
.dt-more .dp-grid { margin-top: 8px; }
.bottom-pack { margin-top: 34px; padding-top: 18px; border-top: 1.5px dashed #eadff0; }
.bottom-pack .product-section { margin: 0; }
.bp-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.bp-link { display: block; padding: 12px 6px; border-radius: 14px; border: 1.5px solid #eee5f3; background: #fff; text-align: center; font: inherit; font-size: 13.5px; font-weight: 800; color: #5b4a75; text-decoration: none; cursor: pointer; }


/* 덕질 박스 안: 내 캐릭터 키우기 카드 */
.pet-card{position:relative;display:flex;align-items:center;gap:12px;margin:10px 0 0;padding:14px 14px 14px 10px;border-radius:22px;text-decoration:none;color:#3b2b55;
 background:linear-gradient(135deg,#f0fff8,#eaf6ff);border:2.5px solid #bfeedd;box-shadow:0 5px 0 #c9efe0;overflow:hidden}
.pet-card::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:rgba(124,214,190,.18)}
.pc-art{flex:none;width:92px;height:92px;border-radius:24px;background:#fff;display:grid;place-items:center;box-shadow:inset 0 0 0 3px #d6f5ea}
.pc-art img{width:100px;height:100px;margin-top:-6px;animation:pcHop 1.6s ease-in-out infinite}
.pc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;position:relative;z-index:1}
.pc-badge{align-self:flex-start;font-size:12px;font-weight:900;color:#fff;background:linear-gradient(135deg,#2ec4b6,#5aa9ff);padding:2px 10px;border-radius:99px}
.pc-body b{font-size:22px;font-weight:900;color:#1a8f84;letter-spacing:-.5px}
.pc-desc{font-size:13.5px;line-height:1.45;color:#4b5b66;word-break:keep-all}
.pc-tags{display:flex;gap:5px;flex-wrap:wrap}.pc-tags i{font-style:normal;font-size:11.5px;font-weight:800;background:#fff;border:1.5px solid #c9efe0;border-radius:99px;padding:1px 8px;color:#1a8f84}
.pc-go{font-size:26px;color:#2ec4b6;position:relative;z-index:1}
@keyframes pcHop{0%,60%,100%{transform:translateY(0)}75%{transform:translateY(-6px)}}

/* 오늘의 퀴즈 (메인 맨 위 강조 · 컬러 카드형) */
.qz2{margin:0 0 26px}
.qz2-head{display:flex;justify-content:space-between;align-items:center}
.qz2-head h2{margin:0;font-size:22px;font-weight:900;color:#3b2b55}
.qz2-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#1a9e6b;background:#e6fbf3;padding:3px 10px;border-radius:99px}
.qz2-live i{width:8px;height:8px;border-radius:50%;background:#20c27a;animation:qzBlink 1.2s infinite}
.qz2-lead{margin:4px 0 10px;font-size:13.5px;color:#7a6e90}.qz2-lead b{color:#ff4f98}
.qz2-shop{position:relative;display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:22px;text-decoration:none;color:#fff;overflow:hidden;
 background:radial-gradient(60% 60% at 90% 10%,rgba(255,255,255,.45),transparent 60%),linear-gradient(135deg,#ff8cc6,#b18cff 55%,#7cc8ff);box-shadow:0 8px 18px rgba(177,140,255,.35)}
.qz2-se{font-size:34px}.qz2-sb{flex:1;display:flex;flex-direction:column}.qz2-sb b{font-size:20px;font-weight:900}.qz2-sb small{font-size:12.5px;opacity:.95}
.qz2-sp{font-weight:900;font-size:16px;background:rgba(255,255,255,.3);padding:4px 10px;border-radius:99px;margin-right:58px}
.qz2-shop img{position:absolute;right:-2px;bottom:-12px;width:84px;height:84px}
.qz2-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}
.qz2-card{position:relative;display:flex;flex-direction:column;padding:13px 14px 12px;border-radius:20px;text-decoration:none;color:#fff;overflow:hidden;min-height:96px}
.qz2-card::after{content:"";position:absolute;right:-20px;top:-20px;width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.16)}
.qz2-card i{font-style:normal;font-size:28px;line-height:1.1}.qz2-card b{font-size:17px;font-weight:900;margin-top:4px}.qz2-card small{font-size:12px;opacity:.95}
.qc-nonsense{background:linear-gradient(150deg,#a78bfa,#f472b6);box-shadow:0 6px 14px rgba(167,139,250,.3)}
.qc-ox{background:linear-gradient(150deg,#ff9a76,#ffc24d);box-shadow:0 6px 14px rgba(255,154,118,.3)}
.qc-kpop{background:linear-gradient(150deg,#ff5fa2,#8b5cf6);box-shadow:0 6px 14px rgba(255,95,162,.3)}
.qc-ajae{background:linear-gradient(150deg,#2ec4b6,#5aa9ff);box-shadow:0 6px 14px rgba(46,196,182,.3)}
@keyframes qzBlink{50%{opacity:.3}}
@media (prefers-reduced-motion: reduce) { .pc-art img, .qz2-live i { animation: none; } }
