@font-face { font-family: "Pretendard"; src: url("assets/fonts/pretendard/PretendardVariable.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }
:root {
  color-scheme: dark;
  --bg: #0d0c11;
  --panel: #16141c;
  --text: #ece7ef;
  --muted: #9c96a3;
  --red: #ff2d4a;
  --line: #302b38;
  --field-bg: #100e15;
  --field-border: #403647;
  --field-radius: 8px;
  --serif: 'Pretendard', -apple-system, sans-serif;
  --sans: 'Pretendard', -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 15px/1.85 var(--sans); overflow-wrap: anywhere; }
body, input, select, button, textarea { font-family: var(--sans); }
img, svg { display: block; max-width: 100%; }
img { object-fit: cover; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button, select, input { font: inherit; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, figure, blockquote { margin: 0; }
h2, .serif { font-family: var(--serif); }
h2 { font-size: clamp(24px, 5.8vw, 34px); font-weight: 800; line-height: 1.65; letter-spacing: -.055em; word-break: keep-all; margin-bottom: 32px; }
h3 { font-size: 17px; line-height: 1.6; }
p { white-space: normal; }
:focus-visible { outline: 2px solid var(--text); outline-offset: 5px; }
[hidden] { display: none !important; }
.page { width: 100%; max-width: 720px; margin-inline: auto; }
.checkout-policy-link{margin:0 0 16px 28px;font-size:13px;line-height:1.8;color:#e0b1c0}
.checkout-policy-link a{text-decoration:underline;text-underline-offset:4px;padding-block:7px;display:inline-block}
.reading-policy-link{display:inline-block;padding:10px 0;color:#d7a8b7;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.muted, .field-note, .privacy { color: var(--muted); }
.small { font-size: 12px; line-height: 1.9; }
.blurred { display: inline-block; filter: blur(5px); user-select: none; }
.entry-page { padding-bottom: 64px; }
.entry-hero { position: relative; height: clamp(440px, 135vw, 680px); isolation: isolate; }
.entry-hero > img { width: 100%; height: 100%; object-position: center 33%; }
.entry-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #0d0c1150, transparent 25%, transparent 55%, var(--bg)); pointer-events: none; }
.brand { position: absolute; top: 22px; left: 24px; z-index: 1; font: 700 19px var(--serif); letter-spacing: .16em; text-shadow: 0 2px 12px #000; }
.brand .brand-mark { display: inline-block; width: 1.25em; height: 1.25em; margin-right: .3em; vertical-align: -.28em; filter: drop-shadow(0 1px 6px #000); }
.speech, .whisper { position: relative; width: fit-content; padding: 16px 20px; background: #fffdfa; color: #201c22; border: 2.5px solid #19151d; border-radius: 25px; font-weight: 800; line-height: 1.6; text-align: center; }
.speech::after { content: ''; position: absolute; width: 12px; height: 12px; left: 24px; bottom: -8px; background: #fffdfa; border-right: 2.5px solid #19151d; border-bottom: 2.5px solid #19151d; transform: skewY(-18deg) rotate(40deg); }
.speech.seon { box-shadow: 0 0 0 1.5px #b4243a; }
.hero-speech { position: absolute; z-index: 2; top: 12%; left: 5%; font-family: var(--sans); font-size: clamp(15px, 3.8vw, 22px); font-weight: 600; line-height: 1.53; letter-spacing: -.035em; word-break: keep-all; }
.form-card { position: relative; margin: -54px 16px 0; padding: 28px 20px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(155deg, #1e1a24, var(--panel) 35%); box-shadow: 0 18px 60px #0006; }
fieldset { border: 0; padding: 0; margin: 0 0 30px; min-width: 0; }
legend { padding: 0; margin-bottom: 12px; font-size: 15px; font-weight: 700; }
.field-note { font-size: 11px; font-weight: 400; margin-left: 6px; }
.gender-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gender-card, .chip { position: relative; cursor: pointer; }
.gender-card { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 17px 8px; border: 1px solid #403647; border-radius: 12px; font-size: 16px; font-weight: 700; background: #17131c; }
.gender-card input, .chip input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.gender-card:has(input:checked) { background: #391620; border-color: var(--red); box-shadow: inset 0 0 18px #ff2d4a12, 0 0 14px #ff2d4a14; }
.gender-card:has(input:focus-visible), .chip:has(input:focus-visible) { outline: 2px solid var(--text); outline-offset: 3px; }
.sticker { display: inline-block; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; border: 3px solid #e5dce6; box-shadow: 0 8px 25px #0005; flex-shrink: 0; transform: rotate(-6deg); background: var(--panel); }
.sticker img { width: 100%; height: 100%; object-position: center 29%; transform: scale(1.2); }
.s-crazy img { object-position: center 24%; }
.gender-face .sticker { width: 36px; height: 36px; border-width: 1px; vertical-align: middle; }
.date-fields { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 8px; }
select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 8px; color: var(--text); border: 1px solid var(--field-border); border-radius: var(--field-radius); background: var(--field-bg); font-size: 14px; }
select:disabled { opacity: .32; cursor: not-allowed; }
.time-row { display: flex; gap: 14px; align-items: center; }
.time-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; flex: 1; min-width: 0; }
.check-label { display: flex; align-items: center; gap: 7px; white-space: nowrap; font-size: 13px; color: #c5bdcc; cursor: pointer; min-height: 44px; }
.check-label input { width: 17px; height: 17px; accent-color: #b7a6be; }
.partner-unknown { width: fit-content; margin-top: 5px; }
.relation-options { display: flex; flex-wrap: wrap; gap: 8px; }
.chip span { display: block; padding: 10px 13px; border: 1px solid #403647; border-radius: 24px; color: #c4bacb; font-size: 13px; }
.chip input:checked + span { background: #e5dce9; color: #241b2a; border-color: #e5dce9; font-weight: 700; }
.pay-button { position: relative; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: center; width: 100%; min-height: 58px; border: 1px solid #ff6980; border-radius: 12px; padding: 15px 12px; background: linear-gradient(125deg, #fa304e, #d71d3b); color: white; font-size: 15px; line-height: 1.55; font-weight: 700; cursor: pointer; box-shadow: 0 0 0 3px #ff2d4a0c, 0 7px 30px #ff2d4a20, inset 0 1px #ffb2be45; transition: transform .15s, box-shadow .15s; text-align: center; }
.pay-button:active { transform: scale(.98); box-shadow: 0 2px 12px #ff2d4a20; }
.pay-button:disabled { background: #302a36; border-color: #403747; color: #817887; box-shadow: none; cursor: not-allowed; }
.privacy { font-size: 11px; text-align: center; margin-top: 16px; }
.form-error { margin-bottom: 16px; font-size: 13px; }
.concern-help { color: #bfb4c5; font-size: 13px; line-height: 1.8; margin-bottom: 14px; word-break: keep-all; }
.concern-field textarea { display: block; width: 100%; min-width: 0; min-height: 176px; resize: vertical; appearance: none; border: 1px solid var(--field-border); border-radius: var(--field-radius); padding: 14px; background: var(--field-bg); color: var(--text); font: 400 16px/1.8 var(--sans); }
.concern-field textarea::placeholder { color: #95899f; opacity: 1; }
.concern-field textarea:focus-visible { outline: 2px solid #d26680; outline-offset: 2px; }
.concern-count { margin-top: 8px; color: var(--muted); font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
.concern-note { padding: 24px; margin-bottom: 40px; border: 1px solid #4a2d3b; border-radius: 16px; background: #1b111a; }
.concern-note h3 { margin-bottom: 16px; color: #d5a3b2; font-size: 14px; }
.concern-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.9; color: #e7dce3; }
.order-summary dd { white-space: pre-wrap; overflow-wrap: anywhere; }
.reading-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 20; }
#progress-fill { width: 100%; height: 100%; background: var(--red); box-shadow: 0 0 9px #ff2d4a80; transform: scaleX(0); transform-origin: left; }
.reading-page { padding: 24px 16px 100px; }
.webtoon { padding-top: 0; }
.comic-cut, .text-cut { margin-bottom: 56px; }
.comic-cut.inset { margin-left: 6%; margin-right: 6%; }
.comic-frame { position: relative; width: 100%; container-type: inline-size; }
.comic-frame > img { width: 100%; height: 100%; }
.comic-copy { font-size: clamp(12px, 3.4vw, 20px); }
.comic-frame .comic-copy { position: absolute; max-width: 62%; margin: 0; font-size: clamp(11px, 3.6cqw, 23px); }
.comic-frame .speech, .comic-frame .whisper { padding: 3.4% 4.3%; }
.pos-tl { top: 4.5%; left: 4.5%; }
.pos-tr { top: 4.5%; right: 4.5%; }
.pos-bl { bottom: 4.5%; left: 4.5%; }
.pos-br { bottom: 4.5%; right: 4.5%; }
.comic-frame .pos-top, .comic-frame .pos-bottom { max-width: 84%; width: max-content; left: 50%; translate: -50% 0; }
.pos-top { top: 4.5%; }
.pos-bottom { bottom: 4.5%; }
.pos-before { margin-bottom: 20px; }
.pos-after { margin-top: 20px; }
.comic-cut > .speech, .comic-cut > .whisper { margin-left: auto; margin-right: 5%; max-width: 84%; }
.narration { background: var(--panel); border-left: 2px solid #b5233b; padding: 14px 17px; color: #c4bbc9; font: 400 clamp(12px, 3.1vw, 17px)/2 var(--serif); }
.whisper { border-style: dashed; border-width: 1px; font-size: 12px; font-weight: 500; border-radius: 22px; }
.crazy { width: fit-content; padding: 12px 17px; background: #230b14; border: 4px double #ff2d4a; border-radius: 4px; color: var(--red); text-shadow: 0 0 10px #ff2d4a60; box-shadow: 0 0 16px #ff2d4a18; font-weight: 800; line-height: 1.65; text-align: center; transform: rotate(-2deg); }
.comic-frame .sfx { color: #fff; font: 400 clamp(30px, 10cqw, 68px)/1.2 'Black Han Sans', sans-serif; transform: rotate(-13deg); -webkit-text-stroke: 1px #181018; paint-order: stroke fill; text-shadow: 3px 4px #d51d39; }
.drawn-bubble { position: absolute; display: flex; justify-content: center; align-items: center; text-align: center; color: #211c23; font: 800 clamp(9px, 2.9cqw, 19px)/1.45 var(--sans); padding: 1%; }
.missing-panel { display: grid; place-items: center; border: 1px dashed #66576c; background: repeating-linear-gradient(135deg, transparent, transparent 12px, #ffffff02 12px, #ffffff02 13px), var(--panel); }
.scene-placeholder { max-width: 75%; color: var(--muted); text-align: center; font-size: 13px; line-height: 2; }
.text-cut { padding: 48px 14px; text-align: center; font: 400 clamp(14px, 3.5vw, 20px)/2.2 var(--serif); }
.text-cut p + p { margin-top: 34px; }
.text-cut .large { font-size: 1.25em; font-weight: 700; }
.accent { color: #e95b70; }
.reading-section { padding: 64px 4px; border-top: 1px solid #27212d; }
.bridge { padding-top: 80px; padding-bottom: 90px; text-align: center; border: 0; }
.bridge .sticker { width: 114px; height: 114px; margin-bottom: 28px; }
.bridge h2 { margin-bottom: 0; }
.chart-card, .type-card, .price-card { padding: 20px 16px; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; }
.pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pillar { min-width: 0; text-align: center; }
.god { display: block; color: #bbb2c1; font-size: 11px; margin-bottom: 10px; }
.hanja-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 110px; aspect-ratio: .72; margin-bottom: 8px; border-radius: 14px; background: var(--element); color: #fff; }
.hanja-tile span { font-size: 12px; line-height: 1.6; }
.hanja-tile b { font: 400 clamp(34px, 10vw, 64px)/1.15 var(--serif); }
.hanja-tile.metal { color: #242830; }
.hanja-tile.unknown { background: transparent; border: 1px dashed #625769; color: var(--muted); font-size: 12px; }
.pillar-label { display: block; padding: 6px 0 0; font-size: 12px; }
.chart-card > .small { margin-top: 18px; }
.chart-card h3 { margin: 30px 0 18px; font-size: 14px; }
.element-bars { display: grid; gap: 13px; margin-bottom: 24px; }
.element-row { display: grid; grid-template-columns: 20px 1fr 20px; align-items: center; gap: 12px; font-size: 13px; }
.element-row b { text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
.bar-track { height: 9px; background: #ffffff09; border-radius: 10px; overflow: hidden; }
.bar-track > div { height: 100%; border-radius: inherit; }
.chart-card > p + p { margin-top: 12px; }
.sinsal-block { margin-top: 36px; }
.sinsal-block h3 { font-size: 14px; margin-bottom: 16px; }
.sinsal-badges { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
.sinsal-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 66px; padding: 8px 2px; border: 1px solid #37313c; border-radius: 9px; color: #8c8494; background: #1b1820; text-align: center; }
.sinsal-badge strong { font-size: 11px; font-weight: 600; white-space: nowrap; }
.sinsal-badge small { font-size: 9px; margin-top: 4px; }
.sinsal-badge.active { color: #ffb4c0; background: #34121e; border-color: #d32a46; box-shadow: 0 0 16px #ff2d4a20; }
.reading-speech { margin-top: 26px; max-width: 100%; padding: 19px 22px; font-size: 14px; text-align: left; font-weight: 600; }
.day-reading { margin-top: 38px; }
.eyebrow { color: var(--muted); font-size: 12px; }
.day-reading .reading-speech { margin-top: 12px; }
.concealed-pillar { filter: blur(6px); user-select: none; }
.score { text-align: center; padding-top: 40px; }
.score > span { font-size: 46px; font-weight: 800; }
.score p { margin-top: 14px; }
.no-partner { color: #c5bacb; line-height: 2; padding: 28px 20px; border-left: 1px solid #78687d; background: var(--panel); }
.type-card { padding: 14px; }
.thread-frame { position: relative; }
.portrait { width: 100%; aspect-ratio: 1; border-radius: 13px; overflow: hidden; position: relative; background: #25202c; }
.portrait img { width: 100%; height: 100%; }
.thread-frame svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.thread-frame path, .versus path { stroke: var(--red); stroke-width: 1.5; fill: none; filter: drop-shadow(0 0 3px #ff2d4a); }
.type-details { padding: 22px 6px 8px; }
.type-details h3 { font: 800 25px var(--serif); }
.traits { margin: 24px 0 0; }
.traits > div { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 13px; }
.traits dt { color: var(--muted); }
.traits dd { margin: 0; position: relative; padding-right: 22px; }
.lock { position: absolute; right: 1px; top: 9px; width: 11px; height: 9px; border: 1px solid #ab9db4; border-radius: 2px; }
.lock::before { content: ''; position: absolute; bottom: 7px; left: 2px; width: 5px; height: 6px; border: 1px solid #ab9db4; border-bottom: 0; border-radius: 5px 5px 0 0; }
.when { padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; }
.heading-sticker .sticker { display: block; margin: 0 0 24px auto; }
#choice { text-align: center; }
.choice-lead { font-size: 18px; margin-bottom: 24px; color: #bdb0c3; }
.versus { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr); align-items: center; gap: 12px; position: relative; margin: 40px 0 56px; }
.versus > b { font: italic 700 20px var(--serif); color: #af9db8; }
.versus .portrait { border-radius: 50%; border: 1px solid #5b3b4a; }
.versus svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.percentage { font-size: 28px; margin-top: 20px; }
.crazy-callout { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-bottom: 42px; }
.crazy-callout .crazy { font-size: 18px; }
.book-wrap { display: flex; justify-content: center; padding: 56px 18px; perspective: 900px; }
.book-cover { position: relative; width: 72%; max-width: 320px; aspect-ratio: .7; transform: rotate(-6deg) rotateY(-10deg); box-shadow: 12px 12px 0 -7px #bcb2a5, 16px 16px 0 -8px #5b4a4b, 22px 24px 38px #000a; border-left: 8px solid #211721; }
.book-cover > img { width: 100%; height: 100%; }
.book-cover > div { position: absolute; inset: 0; padding: 24px 16px; display: flex; flex-direction: column; text-align: center; background: linear-gradient(#0d0c11a0, transparent 55%, #0d0c11e0); }
.book-cover p { font-size: 11px; letter-spacing: .2em; }
.book-cover h3 { font: 800 clamp(22px, 5.4vw, 33px)/1.7 var(--serif); margin-top: 20px; }
.book-cover span { font-size: 10px; margin-top: auto; }
.toc { list-style: none; padding: 0; margin: 24px 0 40px; }
.toc li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.toc li > span { font-size: 11px; color: #a697b1; padding-top: 3px; }
.toc h3 { font-size: 14px; font-weight: 500; }
.toc p { font-size: 12px; color: var(--muted); margin-top: 5px; }
.sample-pages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 36px 0 24px; }
.sample-page { aspect-ratio: 210 / 297; background: #f2eee7; color: #332f33; padding: 12% 9%; box-shadow: 0 8px 20px #0005; overflow: hidden; }
.sample-page h3 { font: 700 clamp(7px, 1.9vw, 12px)/1.6 var(--serif); min-height: 3.2em; border-bottom: 1px solid #c7bdb8; padding-bottom: 8px; margin-bottom: 10px; }
.sample-lines { display: grid; gap: 4px; filter: blur(1.6px); margin: 10px 0; }
.sample-lines i { display: block; width: 100%; height: 3px; background: #aaa3a1; }
.sample-lines i:nth-child(3n) { width: 75%; }
.sample-calendar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; filter: blur(1px); }
.sample-calendar i { aspect-ratio: 1.1; border: 1px solid #c5bcb6; background: #d6cfc7; }
.sample-table { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; filter: blur(1px); }
.sample-table i { height: 9px; background: #d0c7bf; }
.sample-table i:nth-child(-n+3) { background: #8f8582; }
.pdf-size { text-align: center; font-size: 13px; color: #bcb0c4; margin-bottom: 26px; }
.review-card { margin-top: 16px; padding: 24px; border: 1px solid var(--line); background: var(--panel); border-radius: 12px; }
.review-card cite { display: block; margin-top: 12px; color: var(--muted); font-size: 12px; font-style: normal; }
#checkout { scroll-margin-top: 28px; }
.price-card { padding: 28px 20px; }
.price-before { display: flex; align-items: center; gap: 12px; }
.price-before del { color: var(--muted); font-size: 17px; }
.discount { color: #ffacba; border: 1px solid #a52940; background: #3d1521; border-radius: 5px; padding: 2px 8px; font-size: 11px; }
.price { display: block; font-size: clamp(36px, 10vw, 48px); letter-spacing: -.06em; margin: 10px 0 24px; line-height: 1.4; }
.includes { list-style: none; padding: 20px 0; margin: 0 0 20px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.includes li { position: relative; padding-left: 19px; font-size: 13px; }
.includes li + li { margin-top: 14px; }
.includes li::before { content: ''; position: absolute; top: 9px; left: 2px; width: 6px; height: 6px; border: 1px solid #b2a2bc; transform: rotate(45deg); }
.price-card .pay-button { margin-top: 28px; }
.disclaimer { margin: 32px 8px 0; font-size: 11px; color: var(--muted); text-align: center; }
.sticky-checkout { position: fixed; z-index: 15; bottom: 0; left: 50%; transform: translateX(-50%); width: min(100%, 720px); padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 16px; background: #16141cf5; border-top: 1px solid #55303c; box-shadow: 0 -12px 34px #0008; backdrop-filter: blur(12px); }
.sticky-checkout > strong { white-space: nowrap; font-size: 19px; }
.sticky-checkout .pay-button { flex: 1; min-width: 0; min-height: 48px; font-size: 13px; padding: 12px 8px; }
.will-reveal { opacity: 0; transform: translateY(12px); transition: opacity .45s ease, transform .45s ease; }
.will-reveal.in-view { opacity: 1; transform: translateY(0); }
.comic-cut.in-view .crazy, .crazy.in-view { animation: brief-shiver .22s ease 1; }
@keyframes brief-shiver { 0%, 100% { transform: rotate(-2deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 70% { transform: translateX(2px) rotate(-2deg); } }
@media (min-width: 600px) {
  .form-card { margin-inline: 48px; padding: 36px; }
  .reading-page { padding-inline: 24px; }
  .reading-section { padding: 88px 36px; }
  .bridge { padding-block: 110px; }
  .chart-card { padding: 28px; }
  .pillars { gap: 14px; }
  .hanja-tile { min-height: 140px; }
  .sinsal-badge strong { font-size: 13px; }
  .sinsal-badge small { font-size: 11px; }
  .reading-speech { font-size: 16px; }
  .type-card { padding: 22px; }
  .type-details { padding: 26px 14px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .will-reveal { opacity: 1; transform: none; }
}

/* 주문 확인 화면 (checkout.html) */
.checkout-page { padding-bottom: 60px; }
.checkout-back { display: inline-block; margin: 20px 16px 0; color: var(--muted); font-size: 13px; text-decoration: none; }
.checkout-head { display: flex; align-items: center; gap: 16px; padding: 22px 16px 26px; }
.checkout-head .sticker { width: 72px; height: 72px; }
.checkout-head h1 { margin: 0; font: 800 clamp(20px, 5.4vw, 26px)/1.5 var(--serif); }
.checkout-card { margin: 0 16px 16px; }
.checkout-card h2, .checkout-card legend { font: 700 15px/1.6 var(--sans); margin-bottom: 12px; padding: 0; }
.order-summary { margin: 0 0 18px; }
.order-summary div { display: grid; grid-template-columns: 88px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid #2b2532; font-size: 13px; }
.order-summary dt { color: var(--muted); }
.order-summary dd { margin: 0; }
.checkout-price { margin: 0; padding: 16px 0 0; background: none; border: 0; box-shadow: none; }
.text-field { display: grid; gap: 6px; margin-bottom: 14px; font-size: 13px; color: #c4bacb; }
.text-field input { min-height: 48px; padding: 10px 12px; color: var(--text); border: 1px solid #403647; border-radius: 8px; background: #100e15; font-size: 15px; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-size: 13px; line-height: 1.7; color: #d6cdd9; cursor: pointer; }
.consent input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--red); flex-shrink: 0; }
.checkout-status { min-height: 1em; margin: 12px 0 0; color: #ffb3bf; font-size: 13px; }
.review-slot { border: 1px dashed #5a4c60; background: transparent; color: var(--muted); font-size: 13px; }
.spouse-card { display: flex; flex-direction: column; align-items: center; }
.spouse-label, .score-label { display: block; margin: 0 0 8px; color: var(--muted); font-size: 12px; letter-spacing: .04em; text-align: center; }
.spouse-card .pillars { grid-template-columns: minmax(0, 92px); justify-content: center; width: 100%; }
