/* premium-report.css : 신년 종합 프리미엄 리포트 (A5 · 한지 · 먹 · 금박 · 낙관) */
@page { size: 148mm 210mm; margin: 0; }
:root {
  --paper: #f3ead6; --paper2: #ead9b8; --ink: #1d1a16; --ink2: #4a4137; --muted: #7d6f5c;
  --gold: #b48a3c; --gold2: #e0c27a; --seal: #a8261c; --night: #0e1430; --night2: #1a2350; --moon: #f4e6bd;
  --wood: #4f7d4a; --fire: #b3472f; --earth: #a77b2f; --metal: #8a8a86; --water: #2f4f7a;
  --brush: 'Nanum Brush Script', 'Song Myung', serif; --han: 'Song Myung', 'Nanum Myeongjo', 'Noto Serif CJK KR', serif;
  --body: 'Gowun Batang', 'Nanum Myeongjo', 'Noto Serif CJK KR', serif;
}
* { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
html, body { margin: 0; background: #555; }
body { font-family: var(--body); color: var(--ink); font-size: 9.6pt; line-height: 1.62; word-break: keep-all; }
.pg { color: var(--ink); width: 148mm; height: 210mm; position: relative; overflow: hidden; page-break-after: always; break-after: page; margin: 0 auto;
  background: var(--paper) url('premium-paper.jpg') center/cover no-repeat;
}
@media screen { .pg { margin: 8mm auto; box-shadow: 0 4px 24px rgba(0,0,0,.4); } }
.frame { position: absolute; inset: 6.5mm; border: .55mm solid var(--gold); pointer-events: none; }
.frame::after { content: ''; position: absolute; inset: 1.1mm; border: .18mm solid var(--gold); }
.cn { position: absolute; width: 9mm; height: 9mm; background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cg fill='none' stroke='%23b48a3c' stroke-width='1.4'%3E%3Cpath d='M2 22V2h20'/%3E%3Cpath d='M7 16c0-5 4-9 9-9'/%3E%3Ccircle cx='12' cy='12' r='2.4' fill='%23b48a3c'/%3E%3Cpath d='M2 30c6 0 8-4 8-8M30 2c0 6-4 8-8 8'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain; }
.cn.tl { left: -2.2mm; top: -2.2mm } .cn.tr { right: -2.2mm; top: -2.2mm; transform: scaleX(-1) }
.cn.bl { left: -2.2mm; bottom: -2.2mm; transform: scaleY(-1) } .cn.br { right: -2.2mm; bottom: -2.2mm; transform: scale(-1) }
.in { position: absolute; inset: 13mm 13.5mm 15mm; display: flex; flex-direction: column; gap: 2.6mm; }
.in p { margin: 0; }
.folio { position: absolute; left: 0; right: 0; bottom: 8.6mm; display: flex; justify-content: center; align-items: center; gap: 4mm; font-size: 6.6pt; color: var(--muted); letter-spacing: .14em; }
.folio b { font-family: var(--han); font-size: 9pt; color: var(--gold); font-weight: 400; min-width: 8mm; text-align: center; }
.folio span { width: 38mm; } .folio span:first-child { text-align: right; }

/* 머리 */
.hd { display: flex; align-items: center; gap: 4mm; border-bottom: .2mm solid var(--gold); padding-bottom: 2.2mm; margin-bottom: 1mm; }
.hd .han { font-family: var(--han); font-size: 22pt; color: var(--seal); width: 13mm; height: 13mm; display: grid; place-items: center; border: .3mm solid var(--seal); border-radius: 1mm; line-height: 1; flex: none; }
.hd .han { font-size: 17pt; }
.hd h2, .mh h2 { font-family: var(--brush); font-weight: 400; font-size: 26pt; line-height: 1; margin: 0; color: var(--ink); }
.en { font-size: 6.4pt; letter-spacing: .22em; color: var(--gold); text-transform: uppercase; }
.verdict { font-family: var(--han); font-size: 11.2pt; line-height: 1.5; color: var(--ink); border-left: .8mm solid var(--seal); padding-left: 2.6mm; }
small { display: block; font-size: 6.6pt; letter-spacing: .12em; color: var(--gold); font-weight: 700; margin-bottom: .6mm; }
.note { font-size: 7.4pt; color: var(--muted); line-height: 1.55; }
.voice { font-family: var(--brush); font-size: 15pt; line-height: 1.25; color: var(--seal); }
.tip { background: rgba(180,138,60,.1); border: .2mm solid rgba(180,138,60,.45); padding: 2mm 2.6mm; border-radius: 1mm; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; }
.two > div, .four > div { border-top: .2mm solid rgba(180,138,60,.6); padding-top: 1.4mm; }
.four { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4mm 3.2mm; font-size: 8.6pt; line-height: 1.5; }
.row { display: flex; align-items: center; gap: 4mm; }
.ring { width: 27mm; height: 27mm; flex: none; }
.rbg { fill: none; stroke: rgba(180,138,60,.25); stroke-width: 5; } .rfg { fill: none; stroke: var(--seal); stroke-width: 5; stroke-linecap: round; }
.rv { font-family: var(--han); font-size: 22px; text-anchor: middle; fill: var(--ink); } .rl { font-size: 7.5px; text-anchor: middle; fill: var(--muted); letter-spacing: .1em; }
.bars { flex: 1; display: flex; flex-direction: column; gap: 1.6mm; }
.bar { display: grid; grid-template-columns: 16mm 1fr 7mm; align-items: center; gap: 2mm; font-size: 8pt; }
.bar i { height: 1.6mm; background: rgba(180,138,60,.2); border-radius: 1mm; overflow: hidden; } .bar i b { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--seal)); }
.bar em { font-style: normal; font-family: var(--han); text-align: right; }
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; text-align: center; }
.trio > div { border: .2mm solid rgba(180,138,60,.5); padding: 1.6mm 1mm; border-radius: 1mm; } .trio b { font-family: var(--han); font-weight: 400; font-size: 10.5pt; }
.trio.v { grid-template-columns: 1fr; flex: 1; text-align: left; } .trio.v > div { padding: 1.2mm 2mm; }
.chart { width: 100%; height: 30mm; } .chart polyline { fill: none; stroke: var(--gold); stroke-width: 1.4; }
.chart circle { fill: var(--ink2); } .chart circle.hi { fill: var(--seal); } .chart circle.lo { fill: #fff; stroke: var(--ink2); }
.chart text { font-size: 7px; text-anchor: middle; fill: var(--muted); }

/* 명식 */
.ms { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2mm; margin: 1mm 4mm; }
.mc { display: flex; flex-direction: column; align-items: center; gap: 1mm; border: .2mm solid rgba(180,138,60,.55); padding: 2mm 0 2.4mm; border-radius: 1mm; background: rgba(255,255,255,.18); }
.mc.me { border-color: var(--seal); box-shadow: inset 0 0 0 .3mm var(--seal); }
.mc small { font-family: var(--han); font-size: 10pt; color: var(--muted); letter-spacing: 0; margin: 0; font-weight: 400; }
.mc i { font-style: normal; font-size: 7pt; color: var(--ink2); }
.mc b { font-family: var(--han); font-weight: 400; font-size: 27pt; line-height: 1.1; }
.wood { color: var(--wood) } .fire { color: var(--fire) } .earth { color: var(--earth) } .metal { color: var(--metal) } .water { color: var(--water) } .unk { color: #bbb }
/* 오행 */
.els { display: flex; justify-content: space-around; align-items: flex-end; height: 50mm; padding: 0 4mm; }
.el { display: flex; flex-direction: column; align-items: center; gap: 1mm; font-size: 7.6pt; }
.el b { font-family: var(--han); font-size: 15pt; font-weight: 400; } .el i { width: 8mm; border-radius: 1mm 1mm 0 0; background: currentColor; opacity: .75; }
.el.yong b { color: #fff; background: var(--seal); border-radius: 50%; width: 9mm; height: 9mm; display: grid; place-items: center; }
/* 네 기둥 · 신살 */
.pal { border-left: .4mm solid var(--gold); padding-left: 2.6mm; font-size: 8.8pt; line-height: 1.55; }
.ss { display: flex; gap: 3mm; align-items: flex-start; opacity: .62; font-size: 8.6pt; } .ss.on { opacity: 1; }
.ss > b { font-family: var(--han); font-weight: 400; font-size: 10pt; writing-mode: vertical-rl; color: var(--muted); border: .2mm solid currentColor; padding: 1mm .6mm; }
.ss.on > b { color: var(--seal); }
/* 대운 */
.dw { display: grid; grid-template-columns: repeat(8, 1fr); gap: 1mm; direction: rtl; }
.dw > div { direction: ltr; text-align: center; border: .2mm solid rgba(180,138,60,.45); padding: 1mm 0; border-radius: 1mm; }
.dw b { font-family: var(--han); font-weight: 400; font-size: 12pt; line-height: 1.15; display: block; } .dw i { font-style: normal; font-size: 6.2pt; color: var(--muted); }
.dw small { margin: 0; } .dw .cur { background: var(--seal); border-color: var(--seal); } .dw .cur * { color: #fff !important; }
/* 토정 */
.tjwrap { display: flex; gap: 4mm; }
.vert { writing-mode: vertical-rl; font-family: var(--han); font-size: 14.5pt; line-height: 1.6; letter-spacing: .14em; color: var(--ink); border-left: .2mm solid var(--gold); border-right: .2mm solid var(--gold); padding: 2mm 1mm; height: 72mm; flex: none; }
.vert p { margin: 0; } .vert.sm { font-size: 11pt; height: 40mm; letter-spacing: .08em; }
.tjtxt { display: flex; flex-direction: column; gap: 2.4mm; }
.gw { font-family: var(--han); font-size: 20pt; letter-spacing: .2em; }
.grade { font-family: var(--body); font-size: 7.5pt; letter-spacing: 0; vertical-align: middle; padding: .4mm 1.6mm; border-radius: 3mm; color: #fff; background: var(--muted); }
.g-길 { background: var(--seal); } .g-흉 { background: var(--ink2); }
.calc { width: 100%; border-collapse: collapse; font-size: 7.6pt; } .calc th { font-family: var(--han); font-weight: 400; color: var(--gold); width: 12mm; text-align: left; }
.calc td, .calc th { border-bottom: .15mm solid rgba(180,138,60,.4); padding: .8mm 0; }

/* 밤 쪽 */
.night { background: radial-gradient(100% 70% at 50% 0%, var(--night2), var(--night) 70%); color: #e9e2cf; }
.night .frame { border-color: var(--gold2); } .night .frame::after { border-color: rgba(224,194,122,.5); }
.night .hd h2, .night .mh h2 { color: var(--moon); } .night .verdict { color: var(--moon); }
.night small, .night .en { color: var(--gold2); } .night .folio { color: rgba(233,226,207,.55); } .night .folio b { color: var(--gold2); }
.night::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(1px 1px at 20% 30%, #fff8, transparent), radial-gradient(1px 1px at 70% 12%, #fff9, transparent), radial-gradient(1.4px 1.4px at 85% 60%, #fffa, transparent), radial-gradient(1px 1px at 35% 80%, #fff7, transparent), radial-gradient(1px 1px at 55% 45%, #fff6, transparent), radial-gradient(1.2px 1.2px at 12% 65%, #fff8, transparent), radial-gradient(1px 1px at 90% 88%, #fff7, transparent), radial-gradient(1px 1px at 45% 20%, #fff6, transparent); }
.night .hd { border-color: var(--gold2); } .night .hd .han { color: var(--gold2); border-color: var(--gold2); }
.tc { margin: 0; text-align: center; } .tc img { width: 100%; border-radius: 1.6mm; box-shadow: 0 0 0 .3mm var(--gold2), 0 2mm 5mm rgba(0,0,0,.4); display: block; }
.tc.rev img { transform: rotate(180deg); } .tc figcaption { font-size: 7.4pt; margin-top: 1.2mm; font-family: var(--han); }
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; padding: 0 4mm; }
.c3t { display: flex; flex-direction: column; gap: 2mm; font-size: 8.6pt; line-height: 1.55; } .c3t b { color: var(--gold2); font-weight: 400; font-family: var(--han); }
.tc.sm { width: 24mm; flex: none; } .tc.xs { width: 19mm; flex: none; } .tc.xs img { box-shadow: 0 0 0 .3mm var(--gold), 0 1mm 3mm rgba(0,0,0,.25); }

/* 달 */
.mh { display: flex; align-items: center; gap: 3.4mm; border-bottom: .2mm solid var(--gold); padding-bottom: 1.6mm; }
.mh > div { flex: 1; } .mh .ring { width: 19mm; height: 19mm; }
.mnum { font-family: var(--brush); font-size: 40pt; line-height: .9; color: var(--seal); display: flex; align-items: baseline; }
.mnum small { font-family: var(--han); font-size: 12pt; color: var(--gold); letter-spacing: 0; margin-left: .6mm; font-weight: 400; }
.night .mnum { color: var(--gold2); }
.night .rv { fill: var(--moon); }
.tjm { display: flex; gap: 3.4mm; align-items: stretch; background: rgba(180,138,60,.08); border: .2mm solid rgba(180,138,60,.35); padding: 2.2mm; border-radius: 1mm; }
.tjm .vert { height: auto; min-height: 30mm; } .tjm > div:last-child { display: flex; flex-direction: column; gap: 1mm; }
.tjm .voice { font-size: 13pt; }
.sky { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.5mm; }
.sky li { display: flex; gap: 2.6mm; font-size: 8pt; line-height: 1.45; } .sky li > b { font-family: var(--han); font-weight: 400; color: var(--gold2); width: 10mm; flex: none; font-size: 9pt; }
.sky span { color: var(--moon); font-family: var(--han); } .sky p { color: rgba(233,226,207,.8); }
.sky li.k-moon > b::before { content: '☽ '; } .sky li.k-ecl span { color: #ffb38a; } .sky li.k-retro span { color: #c9b8ff; }
.sign { font-size: 8pt; color: rgba(233,226,207,.85); border-left: .5mm solid var(--gold2); padding-left: 2mm; }
.mcard { display: flex; gap: 3.4mm; align-items: flex-start; font-size: 8.6pt; line-height: 1.5; } .mcard > div { display: flex; flex-direction: column; gap: 1.2mm; }
.mini { font-size: 7.6pt; opacity: .85; }
.days { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3mm; }
.days span { display: inline-flex; flex-direction: column; align-items: center; margin-right: 2mm; font-family: var(--han); font-size: 12pt; line-height: 1.1; }
.days span i { font-family: var(--body); font-style: normal; font-size: 6pt; opacity: .7; }
.gd { color: #e3b55a; } .bd { color: #9fa8c9; }
.pg:not(.night) .gd { color: var(--seal); } .pg:not(.night) .bd { color: var(--water); }
/* 달력 · 행운 */
.cal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; }
.cal > div { border: .2mm solid rgba(180,138,60,.5); border-radius: 1mm; padding: 1.6mm 2mm; display: flex; flex-direction: column; gap: .6mm; }
.cal b { font-family: var(--brush); font-weight: 400; font-size: 15pt; line-height: 1; } .cal span { font-family: var(--han); font-size: 9pt; }
.lucky { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 4mm; }
.lucky > div { border-bottom: .2mm solid rgba(180,138,60,.5); padding-bottom: 1.2mm; } .lucky b { font-weight: 400; font-family: var(--han); display: flex; align-items: center; gap: 1.6mm; }
.lucky b i { width: 4mm; height: 4mm; border-radius: 50%; display: inline-block; box-shadow: 0 0 0 .3mm var(--gold); }
/* 목차 */
.toc { list-style: none; margin: 2mm 0; padding: 0; display: flex; flex-direction: column; gap: 2.4mm; }
.toc li { display: flex; align-items: baseline; gap: 2.4mm; font-size: 10pt; }
.toc .th { font-family: var(--han); color: var(--seal); width: 9mm; } .toc .tt { font-family: var(--han); }
.toc .dots { flex: 1; border-bottom: .3mm dotted var(--gold); } .toc .tn { font-family: var(--han); color: var(--gold); }
/* 편지 */
.letter .in { gap: 2.8mm; } .letter p { font-size: 9.6pt; line-height: 1.7; }
.letter .lead { font-family: var(--brush); font-size: 18pt; line-height: 1.3; color: var(--ink); }
.host { width: 30mm; height: 30mm; object-fit: cover; object-position: top; border-radius: 50%; align-self: center; box-shadow: 0 0 0 .5mm var(--gold), 0 0 0 1.4mm var(--paper), 0 0 0 1.7mm var(--gold); }
.letter .sign { text-align: right; font-family: var(--brush); font-size: 15pt; color: var(--ink2); }
.endsign { display: flex; justify-content: flex-end; align-items: center; gap: 4mm; margin-top: auto; font-family: var(--brush); font-size: 15pt; }
.seal { width: 16mm; height: 16mm; background: var(--seal); border-radius: 1.2mm; display: grid; place-items: center; transform: rotate(-4deg); box-shadow: inset 0 0 0 .7mm var(--seal), inset 0 0 0 1.1mm #f3ead6aa;
  filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='r'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='2.4'/%3E%3C/filter%3E%3C/svg%3E#r"); }
.seal span { writing-mode: vertical-rl; font-family: var(--han); color: #f6ead0; font-size: 12pt; line-height: 1; letter-spacing: 0; height: 12.4mm; display: flex; flex-wrap: wrap; align-content: center; justify-content: center; }
/* 표지 */
.cover { background: radial-gradient(90% 60% at 50% 30%, #243066, var(--night) 70%); color: var(--moon); display: flex; flex-direction: column; align-items: center; text-align: center; }
.cover .frame { border-color: var(--gold2); inset: 7mm; } .cover .frame::after { border-color: rgba(224,194,122,.55); }
.cover .stars { position: absolute; inset: 0; background-image: radial-gradient(1px 1px at 15% 20%, #fff, transparent), radial-gradient(1.3px 1.3px at 80% 15%, #fff, transparent), radial-gradient(1px 1px at 65% 40%, #fffc, transparent), radial-gradient(1px 1px at 30% 75%, #fffa, transparent), radial-gradient(1.5px 1.5px at 88% 70%, #fff, transparent), radial-gradient(1px 1px at 10% 55%, #fffb, transparent), radial-gradient(1px 1px at 50% 88%, #fff9, transparent), radial-gradient(1px 1px at 40% 10%, #fffb, transparent), radial-gradient(1.2px 1.2px at 72% 82%, #fffc, transparent); }
.cv-top { margin-top: 20mm; font-family: var(--han); letter-spacing: .4em; font-size: 9pt; color: var(--gold2); position: relative; }
.moon { width: 34mm; height: 34mm; border-radius: 50%; margin: 10mm 0 6mm; position: relative; background: radial-gradient(circle at 38% 36%, #fffaf0, #f2e2b4 45%, #cfa95a 100%); box-shadow: 0 0 12mm 3mm rgba(224,194,122,.35); }
.moon.sm { width: 20mm; height: 20mm; margin-top: 60mm; }
.cover h1 { font-family: var(--brush); font-weight: 400; font-size: 44pt; line-height: 1; margin: 0; color: #fff6dc; position: relative; }
.cover h1 span { display: block; font-family: var(--han); font-size: 12pt; letter-spacing: .5em; color: var(--gold2); margin-bottom: 3mm; }
.cv-sub { font-size: 8.4pt; letter-spacing: .14em; color: rgba(244,230,189,.75); margin: 4mm 0 0; position: relative; }
.cv-name { margin-top: 16mm; position: relative; } .cv-name span { font-family: var(--han); font-size: 18pt; letter-spacing: .3em; display: block; }
.cv-name small { color: rgba(244,230,189,.7); letter-spacing: .1em; font-weight: 400; margin-top: 1mm; }
.cover .seal { position: absolute; right: 22mm; bottom: 40mm; }
.cv-foot { position: absolute; bottom: 16mm; left: 0; right: 0; font-size: 7.4pt; letter-spacing: .16em; color: rgba(244,230,189,.6); line-height: 1.8; }
.back .cv-sub { margin-top: 6mm; line-height: 1.9; }

.pg:last-child { break-after: auto; page-break-after: auto; }
@media print { html, body { background: none; } }
.four.lt { font-size: 8pt; } .night .four > div { border-color: rgba(224,194,122,.4); }
.ink { background: radial-gradient(110% 80% at 50% 20%, #2b2622, #15120f 75%); color: #ece2cc; }
.ink .frame { border-color: var(--gold2); } .ink .frame::after { border-color: rgba(224,194,122,.45); }
.ink .mh h2 { color: #f6ead0; } .ink small, .ink .en { color: var(--gold2); } .ink .mnum { color: var(--gold2); }
.ink .folio { color: rgba(236,226,204,.5); } .ink .folio b { color: var(--gold2); } .ink .four > div { border-color: rgba(224,194,122,.4); }
.bigcard { display: flex; gap: 4.4mm; align-items: center; } .tc.lg { width: 42mm; flex: none; }
.bigcard > div { display: flex; flex-direction: column; gap: 1.6mm; font-size: 8.8pt; line-height: 1.55; }
.cn2 { font-family: var(--brush); font-size: 22pt; line-height: 1; color: #f6ead0; } .kw { font-family: var(--han); color: var(--gold2); font-size: 9pt; }
.acts ol { margin: 0; padding-left: 5mm; font-size: 8.6pt; line-height: 1.6; } .acts li::marker { color: var(--gold2); font-family: var(--han); }
.sign { border-left: .5mm solid var(--gold2); padding-left: 2.6mm; display: flex; flex-direction: column; gap: 1mm; font-size: 8.4pt; line-height: 1.5; color: rgba(233,226,207,.92); }
.sign .adv { font-family: var(--brush); font-size: 14pt; color: var(--gold2); line-height: 1.2; }
.ten { width: 100%; border-collapse: collapse; font-size: 8.2pt; text-align: center; }
.ten th { font-size: 6.8pt; color: var(--gold); letter-spacing: .08em; font-weight: 700; border-bottom: .3mm solid var(--gold); padding: 1mm 0; }
.ten td { border-bottom: .15mm solid rgba(180,138,60,.35); padding: 1.3mm .5mm; } .ten td.h { font-family: var(--han); font-size: 11pt; }
.ten tr.hi td { color: var(--seal); font-weight: 700; } .ten tr.lo td { color: var(--water); }
.ten.mt td { padding: 1.1mm .5mm; }
.qa { display: flex; flex-direction: column; gap: 1mm; font-size: 8.8pt; line-height: 1.6; }
.qa .q { font-family: var(--han); font-size: 10.4pt; color: var(--seal); }
.qa .q::before { content: '問 '; color: var(--gold); }
.orn { margin-top: auto; display: flex; align-items: center; gap: 3mm; color: var(--gold); font-size: 7pt; letter-spacing: .4em; opacity: .8; padding-top: 1mm; }
.orn i { flex: 1; height: .2mm; background: linear-gradient(90deg, transparent, currentColor, transparent); }
.night .orn, .ink .orn { color: var(--gold2); }

/* ───────── v2 : 더 신비롭게 ───────── */
.gtxt { background: linear-gradient(100deg, #b8862f, #f7e3a3 30%, #d4a94f 50%, #fff0bf 65%, #b8862f); -webkit-background-clip: text; background-clip: text; color: transparent; }
/* 표지 */
.cover2 { background: #07091a radial-gradient(80% 55% at 50% 38%, #1c2350 0%, #0b0f2a 60%, #05060f 100%); color: var(--moon); }
.cover2 .mandala { position: absolute; left: 50%; top: 27mm; width: 118mm; transform: translateX(-50%); }
.mandala .mt { font-family: var(--han); font-size: 7.6px; fill: #e8cf8a; text-anchor: middle; dominant-baseline: middle; }
.mandala .mz { font-family: var(--han); font-size: 10px; fill: #d4a94f; text-anchor: middle; } .mandala .mz.on { fill: #fff3c8; font-size: 12px; }
.cover2 .cmoon { position: absolute; left: 50%; top: 66mm; width: 26mm; height: 26mm; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle at 38% 36%, #fffaf0, #f2e2b4 45%, #c99d4c 100%); box-shadow: 0 0 10mm 2mm rgba(255,225,150,.45); }
.cover2 .ctitle { position: absolute; left: 0; right: 0; top: 152mm; text-align: center; }
.cover2 .ctitle small { font-family: var(--han); letter-spacing: .6em; color: #e0c27a; font-size: 9pt; font-weight: 400; }
.cover2 .ctitle h1 { font-family: var(--brush); font-weight: 400; font-size: 46pt; line-height: 1.05; margin: 1mm 0 0; }
.cover2 .cname { position: absolute; left: 0; right: 0; top: 180mm; text-align: center; font-family: var(--han); letter-spacing: .4em; font-size: 13pt; color: #f6ead0; }
.cover2 .cname i { display: block; font-style: normal; font-size: 7pt; letter-spacing: .14em; color: rgba(246,234,208,.6); margin-top: 1mm; font-family: var(--body); }
.cover2 .seal { position: absolute; right: 20mm; top: 172mm; }
.cover2 .ctop { position: absolute; top: 15mm; left: 0; right: 0; text-align: center; font-family: var(--han); letter-spacing: .5em; font-size: 8pt; color: #e0c27a; }

/* 장 표지 */
.chap { background: #0a0806 radial-gradient(70% 50% at 50% 42%, #2a2117, #0d0a07 75%); color: #f2e6c9; }
.chap .frame { border-color: #b48a3c; } .chap .frame::after { border-color: rgba(180,138,60,.45); }
.chap .cbig { position: absolute; left: 0; right: 0; top: 46mm; text-align: center; font-family: var(--han); font-size: 74pt; line-height: 1; letter-spacing: .05em; }
.chap .cno { position: absolute; left: 0; right: 0; top: 30mm; text-align: center; font-family: var(--han); letter-spacing: .8em; font-size: 9pt; color: #c9a45a; }
.chap .cko { position: absolute; left: 0; right: 0; top: 122mm; text-align: center; font-family: var(--brush); font-size: 30pt; color: #f6ead0; }
.chap .cdesc { position: absolute; left: 22mm; right: 22mm; top: 142mm; text-align: center; font-size: 8.8pt; line-height: 1.8; color: rgba(242,230,201,.72); }
.chap .cring { position: absolute; left: 50%; top: 24mm; width: 104mm; transform: translateX(-50%); opacity: .35; }
.chap .mtn { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 34mm; } .chap .mtn path { fill: #c9a45a; }

/* 고서 (토정비결) */
.oldbook { background: #e6d3ac url('premium-oldpaper.jpg') center/cover no-repeat; }
.oldbook .frame { left: 17mm; border-color: #8c2a1e; border-width: .5mm; } .oldbook .frame::after { border-color: rgba(140,42,30,.6); }
.oldbook .frame .cn { display: none; }
.oldbook::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 12mm; background: linear-gradient(90deg, rgba(60,40,20,.28), rgba(60,40,20,.06)); }
.oldbook .stitch { position: absolute; left: 6mm; top: 0; bottom: 0; width: 6mm; }
.oldbook .stitch i { position: absolute; left: 1.6mm; width: 2.2mm; height: 2.2mm; border-radius: 50%; background: #3b2a18; box-shadow: inset 0 .3mm .4mm rgba(0,0,0,.6); }
.oldbook .stitch i::after { content: ''; position: absolute; left: .9mm; top: 1.1mm; width: 5mm; height: .5mm; background: #e9dcc0; box-shadow: 0 0 .2mm rgba(0,0,0,.4); }
.oldbook .stitch b { position: absolute; left: 2.5mm; width: .5mm; background: #e9dcc0; }
.oldbook .in { left: 23mm; }
.oldbook .hd { border-color: #8c2a1e; } .oldbook .hd .han { color: #8c2a1e; border-color: #8c2a1e; }
.oldbook .mtn { position: absolute; left: 17mm; right: 6.5mm; bottom: 6.6mm; width: calc(100% - 23.5mm); height: 26mm; }
.ruled { background-image: repeating-linear-gradient(90deg, transparent 0 calc(var(--col, 9mm) - .3mm), rgba(160,40,28,.55) calc(var(--col, 9mm) - .3mm) var(--col, 9mm)); border: .4mm solid rgba(160,40,28,.7); border-left-width: .25mm; }
.vbook { writing-mode: vertical-rl; font-family: var(--han); --col: 10mm; font-size: 16pt; line-height: 10mm; letter-spacing: .28em; color: #1d140c; padding: 3mm 0; height: 78mm; align-self: center; }
.vbook p { margin: 0; } .vbook .k { font-size: 9pt; letter-spacing: .1em; color: #8c2a1e; }
.sg3 { display: flex; justify-content: center; gap: 6mm; } .sangaji { width: 20mm; height: 23mm; } .sgt { font-family: var(--han); font-size: 9px; text-anchor: middle; fill: #8c2a1e; }
.tjstamp { position: absolute; right: 14mm; bottom: 36mm; top: auto; width: 15mm; height: 15mm; border: .7mm solid #a8261c; color: #a8261c; font-family: var(--han); font-size: 10.5pt; line-height: 1; display: grid; place-items: center; writing-mode: vertical-rl; transform: rotate(3deg); opacity: .85; padding: .8mm; }
.oldbook .verdict { border-color: #8c2a1e; }

/* 벨벳 (타로) */
.velvet { background: #2a0d26 url('premium-velvet.jpg') center/cover no-repeat; color: #f1e4cf; }
.velvet .frame { border-color: #e0c27a; } .velvet .frame::after { border-color: rgba(224,194,122,.5); }
.velvet .hd { border-color: #e0c27a; } .velvet .hd h2, .velvet .mh h2 { color: #fff1d6; } .velvet .hd .han { color: #e0c27a; border-color: #e0c27a; }
.velvet small, .velvet .en { color: #e8c983; } .velvet .folio { color: rgba(241,228,207,.55); } .velvet .folio b, .velvet .mnum { color: #e8c983; }
.velvet .verdict { color: #fff1d6; border-color: #e0c27a; } .velvet .four > div { border-color: rgba(224,194,122,.4); } .velvet .orn { color: #e0c27a; }
.velvet::before { content: ''; position: absolute; inset: 0; background: radial-gradient(18mm 18mm at 16% 86%, rgba(255,190,90,.22), transparent), radial-gradient(18mm 18mm at 84% 86%, rgba(255,190,90,.22), transparent); }
.tc.gold img { box-shadow: 0 0 0 .35mm #f3d88f, 0 0 0 1.2mm rgba(42,13,38,.9), 0 0 0 1.5mm #b8862f, 0 3mm 7mm rgba(0,0,0,.55); border-radius: 1.4mm; }
.spread { position: relative; height: 70mm; margin: 2mm 0; }
.spread .tc { position: absolute; width: 33mm; top: 6mm; } .spread .tc:nth-child(1) { left: 6mm; transform: rotate(-7deg); top: 10mm; } .spread .tc:nth-child(2) { left: 50%; margin-left: -16.5mm; top: 2mm; } .spread .tc:nth-child(3) { right: 6mm; transform: rotate(7deg); top: 10mm; }
.spread .tc figcaption { font-family: var(--body); font-size: 7.2pt; letter-spacing: .04em; color: #f6e2b0; }
.cpos { display: block; font-family: var(--han); font-size: 8pt; color: #e8c983; letter-spacing: .2em; margin-bottom: 1mm; }

/* 하늘 (달력 · 원판) */
.skyrow { display: flex; gap: 3.4mm; align-items: center; }
.wheel { width: 52mm; height: 52mm; flex: none; }
.wheel .wz { font-family: var(--han); font-size: 7.4px; fill: #d9bf7d; text-anchor: middle; dominant-baseline: middle; } .wheel .wz.on { fill: #fff3c8; font-size: 8.6px; }
.wheel .wp { fill: #0e1430; stroke: #e0c27a; stroke-width: .6; } .wheel .wp.Sun { fill: #6b2a12; } .wheel .wpt { font-family: var(--han); font-size: 7px; fill: #fff1d6; text-anchor: middle; }
.wheel .wc { font-family: var(--brush); font-size: 18px; fill: #e0c27a; text-anchor: middle; }
.phases { display: grid; grid-template-columns: repeat(7, 1fr); gap: .8mm 1mm; flex: 1; }
.phases div { display: flex; flex-direction: column; align-items: center; font-size: 5.6pt; color: rgba(233,226,207,.6); line-height: 1; }
.phases .mn { width: 5.2mm; height: 5.2mm; } .phases div.nm, .phases div.fm { color: #ffe19a; } .phases div.fm .mn { filter: drop-shadow(0 0 1mm rgba(255,220,140,.8)); }
.planets { font-size: 7.4pt; color: rgba(233,226,207,.78); line-height: 1.5; } .planets b { font-family: var(--han); color: #e0c27a; font-weight: 400; }
.gtxt { background: none !important; -webkit-background-clip: border-box; background-clip: border-box; color: #ecc977 !important; text-shadow: 0 0 .6mm rgba(255,225,150,.5), 0 .3mm 0 #8a6424; }
.vbook.sm { height: 40mm; font-size: 12pt; line-height: 8mm; --col: 8mm; letter-spacing: .16em; padding: 1.4mm 0; }
.oldbook .four { font-size: 8.1pt; line-height: 1.45; gap: 1.8mm 3mm; }
.oldbook .tjm { padding: 1.8mm; } .oldbook .in { gap: 2.1mm; }
.mon.night .sky li { font-size: 7.6pt; } .mon.night .sky { gap: 1.1mm; }
.mon.night .sign { font-size: 7.9pt; line-height: 1.45; }
.mon.night .wheel { width: 46mm; height: 46mm; }
/* 토정 쪽 넘침 수정 */
.oldbook .tjwrap { gap: 3.4mm; min-width: 0; }
.oldbook .tjtxt { flex: 1; min-width: 0; }
.oldbook .vbook:not(.sm) { font-size: 13pt; --col: 8.4mm; line-height: 8.4mm; letter-spacing: .18em; height: 70mm; }
.oldbook .gw { font-size: 15pt; letter-spacing: .1em; }
.oldbook .sg3 { gap: 2mm; justify-content: space-between; } .oldbook .sangaji { width: 16mm; height: 19mm; }
.oldbook .tjtxt .verdict { font-size: 10pt; } .oldbook .tjtxt p { font-size: 8.8pt; }
.oldbook .tjtxt .voice { font-size: 13pt; }
.oldbook::before { background: linear-gradient(90deg, #b9a173, #d9c497 60%, rgba(217,196,151,0)); }
.tjstamp { right: 15mm !important; top: 13.5mm !important; bottom: auto !important; width: 12mm; height: 12mm; font-size: 8.5pt; }
.oldbook .hd { padding-right: 15mm; }
.m12 > div { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.4mm; }
.m12 span { border: .25mm solid rgba(140,42,30,.5); border-radius: .8mm; padding: 1.2mm .4mm; display: flex; flex-direction: column; align-items: center; gap: .4mm; background: rgba(255,250,235,.25); }
.m12 b { font-family: var(--han); font-weight: 400; font-size: 9pt; color: #8c2a1e; } .m12 i { font-style: normal; font-family: var(--han); font-size: 7.4pt; letter-spacing: .05em; }
.m12 em { font-style: normal; font-size: 6.6pt; padding: 0 1.4mm; border-radius: 2mm; color: #fff; background: var(--muted); }
.m12 .g-길 em { background: var(--seal); } .m12 .g-흉 em { background: var(--ink2); } .m12 .g-길 { background: rgba(168,38,28,.08); }

.oldbook .stitch, .oldbook::before { display: none !important; }
.oldbook .frame { left: 6.5mm !important; } .oldbook .in { left: 13.5mm !important; } .oldbook .mtn { left: 6.5mm !important; width: calc(100% - 13mm) !important; }
/* 타로 심화 표지 */
.cover2.tarotcv { background: #12051a radial-gradient(75% 50% at 50% 40%, #3b1450 0%, #1d0828 55%, #0b0310 100%); }
.tarotcv .rays { position: absolute; left: 50%; top: 18mm; width: 130mm; transform: translateX(-50%); opacity: .9; }
.tarotcv .fan { position: absolute; left: 0; right: 0; top: 48mm; height: 80mm; }
.tarotcv .fan img { position: absolute; width: 36mm; left: 50%; top: 0; border-radius: 1.6mm; box-shadow: 0 0 0 .35mm #f3d88f, 0 0 0 1.3mm #2a0d26, 0 0 0 1.6mm #b8862f, 0 4mm 9mm rgba(0,0,0,.6); }
.tarotcv .fan img:nth-child(1) { margin-left: -46mm; top: 8mm; transform: rotate(-12deg); }
.tarotcv .fan img:nth-child(2) { margin-left: -18mm; z-index: 2; }
.tarotcv .fan img:nth-child(3) { margin-left: 10mm; top: 8mm; transform: rotate(12deg); }
.tarotcv .arch { position: absolute; inset: 9mm; }
/* 교정판 추가 : 시간 모름 기둥, 다섯 해 한 줄 풀이 */
.mc.nohour { justify-content: center; border-style: dashed; background: transparent; }
.mc.nohour .nh { font-size: 8.5pt; line-height: 1.5; color: var(--muted); text-align: center; letter-spacing: .1em; padding: 6mm 0; }
p.fy { margin: 1.2mm 0; font-size: 8.6pt; line-height: 1.55; }
p.fy b { color: var(--seal); font-weight: 700; margin-right: 1mm; }
/* 고급 일러스트 표지 배경 (힉스필드 생성) */
.cover2.bgimg { background-size: cover; background-position: center; }
.cover2.bgmain { background-image: url('premium-cover-main.jpg'); }
.cover2.bgtr { background-image: url('premium-cover-tarot.jpg'); }
.cover2.bgtj { background-image: url('premium-cover-tojeong.jpg'); }
.cover2.bgimg .mandala, .cover2.bgimg .cmoon, .cover2.bgimg .rays, .cover2.bgimg .arch, .cover2.bgimg .fan, .cover2.bgimg > .frame { display: none !important; }
.cover2.bgimg .ctitle h1 { text-shadow: 0 1mm 3mm rgba(0,0,0,.65); }
.cover2.bgimg .cname, .cover2.bgimg .ctop { text-shadow: 0 .5mm 2mm rgba(0,0,0,.8); }
.cover2.bgtr .ctitle { top: 138mm; } .cover2.bgtr .cname { top: 172mm; }
.cover2.bgmain .ctitle { top: 146mm; }
.cover2.bgtj .ctitle { top: 150mm; }
.cover2.bgmain .ctitle h1 { color: #3b2a0e !important; -webkit-text-fill-color: #3b2a0e; text-shadow: 0 .3mm 0 rgba(255,240,200,.6); }
.cover2.bgmain .ctitle small { color: #4a3612 !important; text-shadow: none; }
.cover2.bgtj .ctitle { top: 118mm; } .cover2.bgtj .ctitle h1 { color: #1f2a48 !important; -webkit-text-fill-color: #1f2a48; text-shadow: 0 .3mm 0 rgba(255,255,255,.7); }
.cover2.bgtj .ctitle small { color: #2b3a60 !important; text-shadow: none; }
.cover2.bgtj .cname { top: 186mm; color: #1f2a48; text-shadow: none; } .cover2.bgtj .cname i { color: rgba(31,42,72,.75); }
.cover2.bgtj .cname { color: #f6ead0 !important; text-shadow: 0 .5mm 2mm rgba(0,0,0,.9) !important; top: 178mm; } .cover2.bgtj .cname i { color: rgba(246,234,208,.85) !important; }
/* 안쪽 쪽 배경 (힉스필드 일러스트) */
.pg.velvet:not(.cover2) { background: #1d0a20 url('premium-page-velvet.jpg') center/100% 100% no-repeat; }
.pg.velvet:not(.cover2) > .frame { opacity: 0; }
.pg.oldbook { background: #f4ead6 url('premium-page-ivory.jpg') center/100% 100% no-repeat !important; }
.pg.oldbook > .frame { opacity: 0; }
.pg.oldbook .mount, .pg.oldbook svg.mountains { opacity: .35; }
.pg.oldbook > .in { padding-top: 5mm !important; }
.pg.velvet:not(.cover2) > .in { padding-top: 5mm !important; }
.pg.oldbook > .in { background: linear-gradient(rgba(248,241,226,0) 0, rgba(248,241,226,.72) 30mm, rgba(248,241,226,.72) 100%); }
