/* 궁합·작명·꿈해몽 전용 테마 — 사이트 공통 토큰 위에 화면별 색을 얹는다 */
.th-hero{position:relative;overflow:hidden;border-radius:24px;margin:22px 0 12px;padding:44px 40px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:30px;align-items:center}
.th-hero > *{position:relative}
.th-hero .eb{display:block;font-family:var(--mono,monospace);letter-spacing:.24em;font-size:12px;margin-bottom:12px}
.th-hero h1{font-family:var(--display);font-size:clamp(32px,4.8vw,52px);line-height:1.14;margin:0 0 16px;word-break:keep-all}
.th-hero h1 em{font-style:normal}
.th-hero p{font-size:16px;line-height:1.78;margin:0 0 10px;word-break:keep-all}
.th-hero .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.th-hero .price{margin-top:14px;font-size:13.5px;opacity:.85}
.th-hero .price b{font-family:var(--mono,monospace);font-size:21px;margin-right:6px}
.th-sec{margin:46px 0}
.th-sec > h2{font-family:var(--display);font-size:clamp(23px,3vw,31px);margin:0 0 8px;word-break:keep-all}
.th-sec > p.lead{color:var(--muted);margin:0 0 20px;max-width:66ch;line-height:1.78}
.th-shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.th-shots a{display:block;border-radius:8px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 30px var(--shadow);background:#fff;transition:transform .25s}
.th-shots a:hover{transform:translateY(-4px) rotate(-.4deg)}
.th-shots img{display:block;width:100%;height:auto}
.th-cta{margin:46px 0 10px;border-radius:22px;padding:30px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.th-cta h2{margin:0;font-family:var(--display);font-size:clamp(21px,2.6vw,27px);word-break:keep-all}
.th-cta p{margin:6px 0 0;font-size:14.5px;opacity:.85}
.th-faq details{border:1px solid var(--line);border-radius:14px;padding:13px 17px;background:var(--panel);margin-bottom:8px}
.th-faq summary{cursor:pointer;font-weight:700}
.th-faq p{margin:10px 0 0;color:var(--muted);line-height:1.78}
@media (prefers-reduced-motion:reduce){.th-hero *,.th-hero::before,.th-hero::after{animation:none!important}}
@media (max-width:860px){.th-hero{grid-template-columns:1fr;padding:30px 20px}.th-shots{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ====== 궁합: 붉은 실(紅絲) ====== */
.ghp .th-hero{background:radial-gradient(110% 90% at 85% 0%,#7a1f2b 0%,#3d0f18 42%,#1c070c 100%);color:#fbeee8;border:1px solid rgba(240,170,150,.25)}
.ghp .th-hero::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 70% 55%,rgba(226,64,58,.28),transparent 45%),radial-gradient(circle at 15% 90%,rgba(240,199,122,.12),transparent 40%);pointer-events:none}
.ghp .th-hero .eb{color:#f0c77a}.ghp .th-hero h1{color:#fff}.ghp .th-hero h1 em{color:#ff8a7a}
.ghp .th-hero p{color:#f2d7d0}.ghp .th-hero .price b{color:#f0c77a}
.ghp .th-hero .btn.ghost{color:#fbeee8;border-color:rgba(251,238,232,.45)}
.gh-art{width:100%;max-width:430px;justify-self:center}
.gh-art .pil text{font-family:var(--display)}
.gh-art .thread{stroke-dasharray:900;stroke-dashoffset:900;animation:ghline 2.4s .4s ease forwards}
.gh-art .seal{animation:ghseal .7s 2.3s cubic-bezier(.2,1.6,.4,1) both}
.gh-art .badge{opacity:0;animation:ghfade .6s 2.8s ease forwards}
.gh-art .glow{animation:ghglow 3s 2.6s ease-in-out infinite alternate}
@keyframes ghline{to{stroke-dashoffset:0}}@keyframes ghseal{from{transform:scale(0);opacity:0}to{transform:none;opacity:1}}@keyframes ghfade{to{opacity:1}}@keyframes ghglow{from{opacity:.35}to{opacity:.85}}
.gh-rules7{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gh-rules7 article{border:1px solid var(--line);border-radius:16px;padding:16px 16px 14px;background:var(--panel);position:relative;overflow:hidden}
.gh-rules7 article::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:var(--w);background:linear-gradient(90deg,#e2403a,#f0c77a)}
.gh-rules7 .n{font-family:var(--mono,monospace);font-size:26px;font-weight:700;color:#c8433a}.gh-rules7 .n small{font-size:12px;color:var(--muted);margin-left:2px}
.gh-rules7 h3{margin:4px 0 6px;font-size:16px}.gh-rules7 p{margin:0;color:var(--muted);font-size:13.8px;line-height:1.65}
.gh-rules7 .total{background:linear-gradient(135deg,#3d0f18,#7a1f2b);color:#fbeee8;border-color:transparent}.gh-rules7 .total h3{color:#fff}.gh-rules7 .total p{color:#f2d7d0}.gh-rules7 .total .n{color:#f0c77a}
.ghp #ghForm{border:1px solid rgba(200,67,58,.35);box-shadow:0 18px 40px rgba(122,31,43,.12)}
.ghp .gh-rel{gap:8px}.ghp .gh-rel label{display:inline-flex;align-items:center;gap:6px;padding:8px 16px}
.ghp .gh-rel label i{font-style:normal;font-family:var(--display);color:#c8433a;font-size:15px}
.ghp .gh-rel label:has(input:checked){background:linear-gradient(135deg,#c8433a,#7a1f2b);border-color:transparent;color:#fff}.ghp .gh-rel label:has(input:checked) i{color:#f0c77a}
.ghp .gh-two{position:relative;gap:42px}
.ghp .gh-two::after{content:"合";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#c8433a;color:#fff;font-family:var(--display);font-size:18px;box-shadow:0 0 0 6px rgba(200,67,58,.15)}
.ghp #pA .bform{border-color:rgba(70,110,200,.4)}.ghp #pA legend{color:#4a74c9}
.ghp #pB .bform{border-color:rgba(200,67,58,.45)}.ghp #pB legend{color:#c8433a}
.ghp #ghGo{background:linear-gradient(135deg,#c8433a,#7a1f2b)}
.ghp .gh-res{background:radial-gradient(120% 120% at 0% 0%,rgba(200,67,58,.09),var(--panel) 55%);border:1px solid rgba(200,67,58,.3)}
.ghp .gh-score .ring{width:124px;height:124px;background:conic-gradient(#e2403a calc(var(--p)*1%),var(--line) 0)}
.ghp .gh-score .ring span{width:100px;height:100px;font-size:34px;color:#c8433a}
.ghp .gh-score b{font-size:26px}.ghp .gh-score small{color:#c8433a}
.ghp .th-cta{background:radial-gradient(120% 140% at 10% 0%,#7a1f2b,#1c070c);color:#fbeee8}.ghp .th-cta h2{color:#fff}
@media (max-width:860px){.gh-rules7{grid-template-columns:repeat(2,minmax(0,1fr))}.ghp .gh-two::after{display:none}.ghp .gh-two{gap:14px}}

/* ====== 작명: 먹과 한지(墨·紙) ====== */
.nmp .th-hero{background:radial-gradient(120% 100% at 80% 20%,#3a3129 0%,#1d1915 50%,#0f0d0b 100%);color:#f3ebdd;border:1px solid rgba(243,235,221,.14)}
.nmp .th-hero::before{content:"";position:absolute;width:620px;height:620px;right:-160px;top:-120px;background:radial-gradient(closest-side,rgba(255,255,255,.07),transparent 70%);filter:blur(2px);pointer-events:none}
.nmp .th-hero .eb{color:#d9b779}.nmp .th-hero h1{color:#fff}.nmp .th-hero h1 em{color:#e0584c}
.nmp .th-hero p{color:#ddd2c0}.nmp .th-hero .price b{color:#d9b779}
.nmp .th-hero .btn.ghost{color:#f3ebdd;border-color:rgba(243,235,221,.4)}
.nm-art{position:relative;height:430px;max-width:520px;width:100%;justify-self:center}
.nm-plaque{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-2deg);width:160px;height:390px;background:linear-gradient(180deg,#f6eedd,#ead9ba);border-radius:6px;box-shadow:0 30px 60px rgba(0,0,0,.55),inset 0 0 40px rgba(150,110,60,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;animation:nmrise 1s .2s cubic-bezier(.2,1,.3,1) both}
.nm-plaque::before{content:"";position:absolute;inset:10px;border:1px solid rgba(120,80,40,.35);border-radius:3px}
.nm-plaque b{font-family:var(--display);font-size:72px;line-height:1.02;color:#1b1714;text-shadow:0 1px 0 rgba(255,255,255,.4)}
.nm-plaque .hg{font-size:15px;letter-spacing:.5em;color:#6b5a44;margin-top:10px;padding-left:.5em}
.nm-plaque .stamp{position:absolute;right:16px;bottom:18px;width:44px;height:44px;border:2.5px solid #b3261e;border-radius:4px;color:#b3261e;font-family:var(--display);font-size:13px;line-height:1.05;display:grid;place-items:center;text-align:center;transform:rotate(6deg);opacity:0;animation:nmstamp .45s 1.3s cubic-bezier(.3,1.8,.5,1) forwards;background:rgba(179,38,30,.06)}
.nm-tag{position:absolute;background:rgba(20,17,14,.86);border:1px solid rgba(217,183,121,.45);border-radius:10px;padding:7px 10px;font-size:12px;line-height:1.45;color:#f3ebdd;width:118px;z-index:2;opacity:0;animation:ghfade .5s ease forwards;backdrop-filter:blur(4px)}
.nm-tag b{display:block;color:#d9b779;font-size:11px;letter-spacing:.08em;margin-bottom:2px}
.nm-tag.t1{left:0;top:34px;animation-delay:1.6s}.nm-tag.t2{right:0;top:92px;animation-delay:1.8s}.nm-tag.t3{left:0;bottom:40px;animation-delay:2s}.nm-tag.t4{right:0;bottom:150px;animation-delay:2.2s}
@keyframes nmrise{from{opacity:0;transform:translate(-50%,-40%) rotate(-6deg)}to{opacity:1}}@keyframes nmstamp{from{opacity:0;transform:scale(2.2) rotate(-10deg)}to{opacity:1;transform:rotate(6deg)}}
.nm-four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nm-four article{border:1px solid var(--line);border-radius:16px;padding:18px 16px;background:var(--panel)}
.nm-four .vis{height:74px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.nm-four h3{margin:0 0 6px;font-size:16px}.nm-four p{margin:0;color:var(--muted);font-size:13.8px;line-height:1.65}
.nm-four .gyeok{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:100%}.nm-four .gyeok span{border:1px solid var(--line);border-radius:8px;text-align:center;padding:6px 0;font-family:var(--display);font-size:20px}.nm-four .gyeok span small{display:block;font-family:inherit;font-size:10px;color:var(--muted)}
.nm-four .yy{display:flex;gap:10px}.nm-four .yy i{width:26px;height:26px;border-radius:50%;border:2px solid var(--text)}.nm-four .yy i.y{background:var(--text)}
.nm-four .rad{font-family:var(--display);font-size:30px;letter-spacing:.2em;color:var(--gold)}
.nm-schools{width:100%;border-collapse:collapse;margin-top:14px;font-size:14.5px;background:var(--panel);border-radius:14px;overflow:hidden}
.nm-schools th,.nm-schools td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:center}.nm-schools thead th{background:color-mix(in srgb,var(--gold) 12%,transparent)}
.nmp .nm-tabs{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px;display:inline-flex}
.nmp .nm-tabs button{border:0;padding:10px 20px}
.nmp .nm-tabs button[aria-selected="true"]{background:#1d1915;color:#f3ebdd}
.nmp #mkGo,.nmp #evGo{background:linear-gradient(135deg,#2a241e,#0f0d0b);color:#f3ebdd}
.nmp .nm-peek div{background:linear-gradient(180deg,#f6eedd,#ead9ba);border-color:#d8c29a;color:#1b1714}
.nmp .nm-peek b{font-size:24px;color:#1b1714}.nmp .nm-peek small{color:#6b5a44}.nmp .nm-peek em{color:#b3261e}
.nmp .th-cta{background:radial-gradient(120% 140% at 10% 0%,#3a3129,#0f0d0b);color:#f3ebdd}.nmp .th-cta h2{color:#fff}
@media (max-width:860px){.nm-four{grid-template-columns:repeat(2,minmax(0,1fr))}.nm-art{height:380px}.nm-plaque{width:170px;height:340px}.nm-plaque b{font-size:66px}}
@media (max-width:520px){.nm-four{grid-template-columns:1fr}.nm-tag{font-size:11.5px}}

/* ====== 꿈해몽: 달밤(月夜) ====== */
.drp .th-hero{display:block;text-align:center;padding:54px 30px 34px;background:radial-gradient(120% 90% at 50% -10%,#3b2b72 0%,#1b1840 45%,#0a0b1e 100%);color:#e9e6ff;border:1px solid rgba(180,170,255,.22)}
.drp .th-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1.4px 1.4px at 8% 20%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 22% 64%,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 40% 14%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 62% 30%,#fff 50%,transparent 51%),radial-gradient(1.6px 1.6px at 84% 22%,#ffe9b3 50%,transparent 51%),radial-gradient(1px 1px at 92% 70%,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 12% 86%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 72% 84%,#fff 50%,transparent 51%);opacity:.8;animation:tw 5s ease-in-out infinite alternate;pointer-events:none}
.dr-moon{position:absolute;right:7%;top:26px;width:110px;height:110px;border-radius:50%;box-shadow:-22px 10px 0 0 #ffe9b0;filter:drop-shadow(0 0 22px rgba(255,233,176,.55));transform:rotate(-20deg);animation:drfloat 7s ease-in-out infinite alternate}
.dr-cloud{position:absolute;height:34px;border-radius:40px;background:rgba(220,215,255,.10);filter:blur(1px);animation:drdrift 26s linear infinite}
.dr-cloud.c1{width:220px;top:70px;left:-240px}.dr-cloud.c2{width:160px;top:150px;left:-180px;animation-duration:34s;animation-delay:-12s}.dr-cloud.c3{width:280px;bottom:60px;left:-300px;animation-duration:40s;animation-delay:-20s}
@keyframes drdrift{to{transform:translateX(1500px)}}@keyframes drfloat{to{transform:rotate(-20deg) translateY(10px)}}@keyframes tw{from{opacity:.45}to{opacity:.95}}
.drp .th-hero .eb{color:#ffe9b0}.drp .th-hero h1{color:#fff;margin-left:auto;margin-right:auto}.drp .th-hero h1 em{color:#ffe9b0}
.drp .th-hero > p{color:#cfcaf5;max-width:640px;margin:0 auto 18px}
.dr-diary{max-width:720px;margin:22px auto 0;text-align:left;background:rgba(255,255,255,.07);border:1px solid rgba(220,215,255,.25);border-radius:20px;padding:18px;backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.dr-diary label{color:#ffe9b0;font-weight:700;font-size:14px;letter-spacing:.04em}
.drp #drQ{background:rgba(10,11,30,.55);color:#fff;border:1px solid rgba(220,215,255,.3);border-radius:14px;padding:14px 16px;font-size:17px;margin-top:8px;font-family:var(--display)}
.drp #drQ::placeholder{color:#8f89c4}
.drp .dr-ex .chipb{color:#e9e6ff;border-color:rgba(220,215,255,.35);background:rgba(255,255,255,.05)}.drp .dr-ex .chipb:hover{border-color:#ffe9b0;color:#ffe9b0}
.drp #drGo{width:100%;padding:15px;font-size:17px;background:linear-gradient(135deg,#ffe9b0,#e9c27a);color:#1b1840;font-weight:800;border-radius:14px}
.drp .dr-free{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:18px;font-size:13px;color:#b9b3ea}.drp .dr-free b{color:#ffe9b0;font-family:var(--mono,monospace);font-size:18px;margin-right:4px}
.drp #drErr{color:#ffb3a8}
.drp .dr-sum{background:radial-gradient(120% 140% at 100% 0%,#3b2b72,#14122e);color:#e9e6ff;border:0}.drp .dr-sum .muted{color:#b9b3ea}.drp .dr-q{color:#fff;font-size:22px}
.drp .dr-card{border-top:4px solid var(--tc,#8f89c4)}
.drp .dr-card.t-up{--tc:#4caf7a}.drp .dr-card.t-dn{--tc:#e07a5f}.drp .dr-card.t-md{--tc:#8f89c4}
.drp .dr-card .dr-h h2{font-family:var(--display);font-size:24px}
.drp .dr-sit{background:color-mix(in srgb,#8f89c4 9%,transparent);border-left-color:#8f89c4}
.drp .dr-tip{background:color-mix(in srgb,var(--gold) 9%,transparent);border-radius:12px;padding:10px 14px}
.dr-cats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.dr-cats button{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:14px 8px;cursor:pointer;color:var(--text);display:grid;gap:4px;justify-items:center;transition:transform .2s,border-color .2s}
.dr-cats button:hover,.dr-cats button[aria-pressed="true"]{transform:translateY(-3px);border-color:#8f89c4}
.dr-cats i{font-style:normal;font-family:var(--display);font-size:28px;color:#6d5fc0}.dr-cats b{font-size:14px}.dr-cats small{color:var(--muted);font-size:12px}
.dr-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.drp .th-cta{background:radial-gradient(120% 140% at 10% 0%,#3b2b72,#0a0b1e);color:#e9e6ff}.drp .th-cta h2{color:#fff}
@media (max-width:860px){.dr-cats{grid-template-columns:repeat(3,minmax(0,1fr))}.dr-moon{width:70px;height:70px;right:4%;top:14px}}
.drp .th-hero > :not(.dr-moon):not(.dr-cloud){position:relative;z-index:1}.drp .th-hero .dr-ex{justify-content:flex-start}
@media (max-width:520px){.drp .th-hero{padding-top:74px}.dr-moon{width:54px;height:54px;top:12px;right:10%}.dr-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dr-cats button{padding:10px 4px}.dr-cats i{font-size:22px}.dr-cats b{font-size:12.5px}}
@media (max-width:520px){.drp .th-hero{padding-top:92px}.dr-moon{width:46px;height:46px;top:14px;right:12%;box-shadow:-14px 6px 0 0 #ffe9b0}}
