:root {
  --ink: #1f1b2e;
  --ink-soft: #4a4558;
  --ink-muted: #8a849c;
  --violet: #7c5cfc;
  --coral: #ff6b6b;
  --line: #ece9f5;
  --bg: #f6f4fb;
}
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
html, body {
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Segoe UI', Roboto, sans-serif;
  line-height: 1.5;
}
.wrap { max-width: 520px; margin: 0 auto; padding: 24px 20px 40px; }
.brand { text-align: center; font-weight: 800; color: var(--violet); font-size: 14px; letter-spacing: -0.2px; margin-bottom: 18px; }
.card {
  background: #fff;
  border-radius: 24px;
  border: 1px solid var(--line);
  box-shadow: 0 8px 30px rgba(31, 27, 46, 0.06);
  padding: 32px 24px;
  text-align: center;
}
.emoji { font-size: 64px; line-height: 1; margin-bottom: 12px; }
.code { font-size: 15px; font-weight: 900; letter-spacing: 4px; color: var(--violet); }
.title { font-size: 27px; font-weight: 900; letter-spacing: -0.6px; margin: 6px 0 4px; }
.subtitle { font-size: 15px; color: var(--ink-soft); }
.divider { height: 1px; background: var(--line); margin: 22px 0; }
.desc { font-size: 15px; color: var(--ink-soft); line-height: 1.65; text-align: left; }
.matches { display: flex; gap: 12px; margin-top: 22px; }
.match { flex: 1; border-radius: 18px; padding: 16px 10px; }
.match.best { background: #eafaf4; }
.match.worst { background: #ffeef0; }
.match .lbl { font-size: 12px; font-weight: 800; color: var(--ink-soft); }
.match .emo { font-size: 32px; margin: 8px 0 2px; }
.match .mt { font-size: 14px; font-weight: 800; }
.match .mc { font-size: 11px; font-weight: 700; color: var(--ink-muted); margin-top: 2px; }
.share-hint { text-align: center; color: var(--ink-muted); font-size: 13px; margin: 22px 0 12px; }
.install {
  display: block; width: 100%; text-align: center; text-decoration: none;
  background: var(--violet); color: #fff; font-weight: 800; font-size: 17px;
  padding: 17px; border-radius: 16px; box-shadow: 0 6px 18px rgba(124, 92, 252, 0.35);
}
.install:active { transform: scale(0.99); }
.foot { text-align: center; color: var(--ink-muted); font-size: 12px; margin-top: 22px; }

.whybox { margin-top: 18px; background: #f4f3f7; border-radius: 16px; padding: 16px; }
.whyline { font-size: 13px; color: var(--ink-soft); line-height: 1.55; }
.whyline + .whyline { margin-top: 10px; }
.whyline b { color: var(--ink); font-weight: 800; }

/* 광고 슬롯 CSS(.ad-inline · .ad-rail · ins.adsbygoogle)는 **지웠다** — 2026-08-23.
   이 사이트에서 애드센스를 걷어냈다(donghwan ceo: "여기는 광고 붙이고 싶지 않아").
   ⚠️ 애드센스가 `dulii-8ea1f.web.app` 을 **「게시자 콘텐츠가 없는 화면에 Google 게재 광고」**
   로 지적했는데(2026-07-06), 정작 `data-ad-slot` 이 `0000000000` 플레이스홀더라
   **광고가 채워질 수가 없었다 — 수익 0인데 지적만 받고 있었다.**
   그 계정(`ca-pub-3559641446407116`)이 **앱 AdMob 과 같은 게시자**라 위반 누적이
   회사 유일 수익원에 닿는다.
   ⚠️ `app-ads.txt` 는 남긴다 — 그건 AdMob 앱 광고 인증용이고 이 사이트 광고와 무관하다. */

.notfound { text-align: center; padding: 60px 20px; color: var(--ink-muted); }

/* 개인정보처리방침 페이지는 generate-privacy.js가 스타일을 통째로 구워 만든다(자체 완결).
   여기 있던 .policy 규칙은 그 전환으로 쓰이지 않게 되어 지웠다 —
   .policy a가 .install의 흰 글씨를 덮어 보라 배경에 보라 글씨가 되던 버그도 함께 사라졌다. */
.foot a { color: var(--ink-muted); text-decoration: underline; }
