/* ─── Page Overrides ─── */
:root{ --page-gutter:20px; --container:480px; }
@media(max-width:480px){ :root{ --page-gutter:16px; } }

body{
  background:
    radial-gradient(ellipse at 50% 0%, rgba(50,25,65,.45) 0%, transparent 55%),
    radial-gradient(ellipse at 30% 70%, rgba(25,30,60,.2) 0%, transparent 45%),
    radial-gradient(ellipse at 70% 90%, rgba(60,30,45,.12) 0%, transparent 40%),
    var(--navy);
  line-height:1.7;
}

.wrap{
  position:relative; z-index:1;
  max-width:var(--container); margin:0 auto;
  padding:0 var(--page-gutter);
  min-height:100vh; display:flex; flex-direction:column;
}

/* ─── Hero ─── */
.hero{
  padding:48px 0 24px;
}
.title-card{
  width:min(320px,85vw); aspect-ratio:7/5;
  animation:heroZoom 1.2s cubic-bezier(.2,0,.2,1) both;
  cursor:pointer;
}
.card-sub{ margin-bottom:16px; margin-top:8px; }
.card-title-ko{ margin-bottom:10px; }
.card-inner{ padding-bottom:8px; }
@keyframes heroZoom{
  from{ opacity:0; transform:scale(.85); filter:blur(6px); }
  to{   opacity:1; transform:scale(1);   filter:blur(0); }
}

/* ─── Phase Containers ─── */
.phase{
  display:none; flex-direction:column;
  align-items:center; padding:0 0 80px;
}
.phase.active{
  display:flex;
  animation:phaseIn .6s ease both;
}
@keyframes phaseIn{
  from{ opacity:0; transform:translateY(10px); filter:blur(2px); }
  to{   opacity:1; transform:translateY(0);    filter:blur(0); }
}

/* ─── ASK — 순차 등장 (자동) ─── */
.ask-s1,.ask-s1b,.ask-s2,.ask-s3,.ask-s4{
  opacity:0; transform:translateY(12px); filter:blur(3px);
}
.phase.active .ask-s1{  animation:askTextPop .9s cubic-bezier(.15,0,.2,1) .15s forwards; }
.phase.active .ask-s1b{ animation:askTextPop .9s cubic-bezier(.15,0,.2,1) .5s forwards; }
.phase.active .ask-s2{  animation:askIn .6s ease .9s forwards; }
.phase.active .ask-s3{  animation:askIn .6s ease 1.2s forwards; }
.phase.active .ask-s4{  animation:askIn .6s ease 1.4s forwards; }
@keyframes askTextPop{
  0%{   opacity:0; transform:translateY(12px) scale(.95); filter:blur(3px); }
  60%{  opacity:1; filter:blur(0); }
  100%{ opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
}
@keyframes askIn{
  from{ opacity:0; transform:translateY(8px) scale(.98); filter:blur(2px); }
  to{   opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
}

/* ─── ASK Inputs ─── */
.ask-label{
  font-family:'Noto Serif KR',serif;
  font-size:clamp(20px,5vw,28px); font-weight:700;
  color:var(--white); text-align:center;
  line-height:1.45; letter-spacing:var(--ls-ko-title);
  text-shadow:0 0 20px rgba(201,165,92,0.1);
}
.ask-label-sub{
  font-family:'Noto Serif KR',serif;
  font-size:clamp(20px,5vw,28px); font-weight:700;
  color:var(--gold-lt); text-align:center; margin-bottom:28px;
  line-height:1.45; letter-spacing:var(--ls-ko-title);
  text-shadow:0 0 20px rgba(201,165,92,0.15);
}
.ask-textarea{
  width:100%; background:rgba(255,255,255,.06);
  border:1px solid rgba(201,165,92,.25);
  border-radius:16px; padding:20px; color:var(--white);
  font-family:'Pretendard',sans-serif;
  font-size:15px; line-height:1.7; resize:none; outline:none;
  min-height:110px; transition:border-color .3s, box-shadow .3s;
  box-shadow:0 0 0 0 rgba(201,165,92,0);
}
.ask-textarea:focus{
  border-color:rgba(201,165,92,.5);
  box-shadow:0 0 20px rgba(201,165,92,.08), inset 0 0 30px rgba(201,165,92,.03);
}
.ask-textarea::placeholder{ color:var(--body); }
#ask-btn-wrap{ margin-top:12px; }
.ask-examples{ display:flex; flex-wrap:nowrap; gap:6px; justify-content:center; margin-top:14px; }
.ask-examples span{
  font-size:12px; color:var(--gold); letter-spacing:.02em;
  background:rgba(201,165,92,.08); border:1px solid rgba(201,165,92,.22);
  border-radius:999px; padding:5px 14px; cursor:pointer; transition:all .2s;
  white-space:nowrap;
}
@media(max-width:420px){
  .ask-examples{ gap:4px; }
  .ask-examples span{ font-size:11px; padding:5px 10px; }
}
.ask-examples span:hover{
  background:rgba(201,165,92,.16); border-color:rgba(201,165,92,.32); color:var(--gold-lt);
}
.ask-examples span:active{ transform:scale(.95); }
.ask-tips{
  margin-top:28px; padding:0 4px;
}
.ask-tips-title{
  margin-bottom:14px;
}
.ask-tip{ padding-left:16px; position:relative; }
.ask-tip+.ask-tip{ margin-top:12px; }
.ask-tip::before{
  content:'·'; position:absolute; left:0; top:0;
  color:var(--gold-dk); font-weight:700; font-size:14px;
}
.ask-tip>p:first-child{
  font-size:13px; color:var(--body); line-height:1.5; opacity:.7;
}
.ask-tip-sub{
  font-size:11px; color:var(--muted); opacity:.4; margin-top:3px; line-height:1.4;
}
.ask-spec{
  font-size:11px; color:var(--muted); letter-spacing:var(--ls-en);
  margin-top:20px; opacity:.5;
}

/* 카드섞기 버튼 — disabled 상태 가장자리 밝기 */
#ask-btn:disabled{
  opacity:.55;
  border-color:rgba(201,165,92,.35);
}
/* 별무리 + 글로우: 질문 입력 전 숨김, 입력 후 등장 */
#ask-btn-wrap .btn-star-ring,
#ask-btn-wrap .btn-glow{
  opacity:0; visibility:hidden;
  transition:opacity .5s ease, visibility .5s ease;
}
#ask-btn-wrap .btn-star-ring{
  animation:none;
}
#ask-btn-wrap .btn-glow{
  animation:none;
}
#ask-btn-wrap.active .btn-star-ring,
#ask-btn-wrap.active .btn-glow{
  opacity:1; visibility:visible;
}
#ask-btn-wrap.active .btn-star-ring{
  animation:starWrap 4s cubic-bezier(.4,0,.2,1) infinite;
}
#ask-btn-wrap.active .btn-glow{
  animation:glowPulse 4.5s ease-in-out infinite;
}

/* 카드섞기 버튼 — 활성 시 아이콘 셔플 애니메이션 */
#ask-btn:not(:disabled) svg{ animation:cardShuffle 1.2s ease-in-out infinite; }
#ask-btn:not(:disabled) svg rect:first-of-type{ animation:cardShuffleL 1.2s ease-in-out infinite; }
#ask-btn:not(:disabled) svg rect:last-of-type{ animation:cardShuffleR 1.2s ease-in-out infinite; }
@keyframes cardShuffleL{
  0%,100%{ transform:translateX(0) rotate(0deg); }
  30%{ transform:translateX(-2px) rotate(-4deg); }
  70%{ transform:translateX(1px) rotate(2deg); }
}
@keyframes cardShuffleR{
  0%,100%{ transform:translateX(0) rotate(0deg); }
  30%{ transform:translateX(2px) rotate(4deg); }
  70%{ transform:translateX(-1px) rotate(-2deg); }
}

/* ─── Card Backs ─── */
.card-back{
  border:1px solid rgba(201,165,92,.24);
  border-radius:8px; cursor:pointer; transition:all .2s;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--navy2), var(--navy));
}
.card-back:hover{
  border-color:rgba(201,165,92,.35);
  box-shadow:0 0 14px rgba(201,165,92,.08);
  transform:translateY(-4px);
}
.card-back:active{
  transform:scale(.95);
  box-shadow:0 0 20px rgba(201,165,92,.15);
}
.card-back.picked{ opacity:.15; pointer-events:none; transform:scale(.9); }
.chosen-glow{
  border-color:rgba(201,165,92,.6) !important;
  box-shadow:0 0 12px rgba(201,165,92,.3), 0 0 28px rgba(201,165,92,.1) !important;
  animation:chosenPulse 1.6s ease-in-out infinite !important;
}
.card-back.picked.chosen-glow{
  opacity:.2 !important; animation:none !important;
  box-shadow:none !important; border-color:rgba(201,165,92,.22) !important;
}
@keyframes chosenPulse{
  0%,100%{ box-shadow:0 0 8px rgba(201,165,92,.2), 0 0 20px rgba(201,165,92,.06); }
  50%{ box-shadow:0 0 18px rgba(201,165,92,.45), 0 0 40px rgba(201,165,92,.14); }
}
.card-back svg{ display:block; width:100%; height:100%; }
.cb-sm{ width:54px; height:81px; }
.cb-md{ width:68px; height:102px; }
.cb-lg{ width:90px; height:135px; }

/* ─── Shuffle ─── */
.shuffle-label{
  font-family:'Noto Serif KR',serif;
  font-size:14px; font-weight:600; color:var(--gold-lt);
  text-align:center; margin-bottom:32px; letter-spacing:-.02em;
  animation:readingFade 2s ease-in-out infinite;
}
.shuffle-area{
  position:relative; width:min(320px,85vw); height:120px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
}
.shuffle-card{
  position:absolute;
  will-change:transform, opacity;
}

/* ─── Pick ─── */
/* ─── PICK — 캐러셀 ─── */
.pick-label{ font-size:13px; font-weight:300; color:var(--body); margin-bottom:8px; }
.pick-count{
  font-family:'Cormorant Garamond',serif;
  font-size:32px; font-weight:400;
  color:var(--gold-lt); margin-bottom:12px;
}
.pick-question{
  font-size:13px; color:var(--muted); margin-bottom:16px;
  text-align:center; max-width:90%; line-height:1.6; word-break:keep-all;
}
.pick-slots{ display:flex; gap:6px; margin-bottom:20px; flex-wrap:wrap; justify-content:center; }
.pick-slot{
  width:40px; height:60px; border-radius:8px;
  border:1px dashed rgba(201,165,92,.24);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.pick-slot.filled{
  border:1px solid rgba(201,165,92,.35);
  background:rgba(201,165,92,.04);
  animation:popIn .3s ease;
}
.pick-slot-label{
  position:absolute; bottom:-18px;
  font-size:10px; color:var(--muted);
  letter-spacing:.04em; white-space:nowrap;
}

/* 캐러셀 래퍼 */
.pick-carousel-wrap{
  position:relative; width:100%; max-width:420px;
}
.pick-carousel{
  overflow:hidden; width:100%;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
.pick-carousel-track{
  display:flex; transition:transform .35s ease;
  will-change:transform;
}
.pick-page{
  flex:0 0 100%; display:grid;
  grid-template-columns:repeat(13, 1fr);
  grid-template-rows:auto auto;
  gap:4px; padding:4px;
  justify-items:center;
}
.pick-page .card-back{ width:100%; aspect-ratio:2/3; height:auto; border-radius:5px; min-width:0; }
.pick-page .card-back svg{ border-radius:4px; }

/* 화살표 + 도트 — 하단 네비게이션 */
.pick-nav{
  display:flex; align-items:center; justify-content:center;
  gap:20px; margin-top:16px;
}
.pick-arrow{
  width:32px; height:32px; border-radius:50%;
  background:rgba(201,165,92,.04);
  border:1px solid rgba(201,165,92,.22);
  color:var(--gold-lt); font-size:18px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s;
  -webkit-tap-highlight-color:transparent;
}
.pick-arrow:hover{ background:rgba(201,165,92,.24); border-color:rgba(201,165,92,.3); }
.pick-arrow:active{ transform:scale(.9); }
.pick-arrow:disabled{ opacity:.15; cursor:default; }

/* 페이지 인디케이터 */
.pick-dots{ display:flex; gap:10px; align-items:center; }
.pick-dot{
  width:8px; height:8px; border-radius:50%;
  background:rgba(201,165,92,.2); transition:all .2s;
}
.pick-dot.active{ background:var(--gold); width:12px; height:12px; }
.pick-help{
  font-size:12px; color:var(--body); text-align:center;
  margin-top:12px; opacity:.7; letter-spacing:.01em;
}

/* ─── Reveal ─── */
.reveal-question{
  font-size:clamp(13px,3vw,15px); color:var(--body); margin-bottom:32px;
  text-align:center; max-width:90%; line-height:1.6; word-break:keep-all;
}
.reveal-cards{ display:flex; gap:6px; margin-bottom:24px; justify-content:center; }
.reveal-col{
  display:flex; flex-direction:column; align-items:center;
  width:min(70px, calc((100vw - 72px) / 5));
  transition:opacity .5s;
}
.reveal-pos{ text-align:center; margin-bottom:6px; min-height:32px; }
.reveal-pos-name{ font-size:clamp(10px,2.4vw,12px); font-weight:600; color:var(--gold); letter-spacing:.03em; }
.reveal-pos-sub{ font-size:clamp(10px,2.2vw,12px); color:var(--muted); margin-top:1px; }
.reveal-wrap{ perspective:600px; width:100%; }
.reveal-flipper{
  width:100%; aspect-ratio:2/3; position:relative;
  transform-style:preserve-3d;
  transition:transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal-flipper.flipped{ transform:rotateY(180deg); }
.reveal-flipper .card-back,
.reveal-flipper .card-front{
  position:absolute; inset:0;
  backface-visibility:hidden; border-radius:10px;
}
.reveal-flipper .card-back{ width:100%; height:100%; }
.card-front{
  transform:rotateY(180deg);
  background:linear-gradient(160deg, var(--navy2), var(--navy));
  border:1px solid rgba(201,165,92,.35);
  display:flex; align-items:center; justify-content:center;
  border-radius:10px; overflow:hidden;
}
.card-front-inner{
  display:flex; flex-direction:column;
  align-items:center; gap:2px; padding:8px 4px; text-align:center;
}
.cf-symbol{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(16px,4vw,22px); font-weight:400;
  color:var(--gold-lt); line-height:1;
}
.cf-kr{ font-size:clamp(11px,2.8vw,14px); font-weight:600; color:var(--white); margin-top:2px; }
.cf-en{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(10px,2.4vw,12px); color:var(--gold-dk);
  font-weight:500; letter-spacing:.04em;
}
.reveal-kw{
  display:flex; flex-wrap:wrap; gap:2px; justify-content:center;
  margin-top:6px; min-height:28px;
}
.reveal-kw span{
  font-size:clamp(10px,2.2vw,12px); color:var(--gold);
  background:rgba(201,165,92,.1); border:1px solid rgba(201,165,92,.22);
  padding:1px 4px; border-radius:999px;
}
.reveal-positions{ display:none; }

/* ─── Result ─── */
.result-divider{ height:1px; background:rgba(201,165,92,.24); margin:8px 0 28px; }
.result-card{
  border:1px solid rgba(201,165,92,.24); border-radius:14px;
  padding:20px; margin-bottom:14px;
  background:rgba(201,165,92,.02);
}
.result-header{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.result-pos{
  font-family:'Cormorant Garamond',serif;
  font-size:11px; font-weight:500; letter-spacing:var(--ls-en-wide);
  text-transform:uppercase; color:var(--gold-dk);
}
.result-name{
  font-family:'Noto Serif KR',serif;
  font-size:15px; font-weight:700; color:var(--white); letter-spacing:-.02em;
}
.result-name-en{
  font-family:'Cormorant Garamond',serif;
  font-weight:400; font-size:12px; color:var(--gold-dk);
  margin-left:6px; letter-spacing:.04em;
}
.result-reversed{
  font-size:11px; color:#c97a6a;
  background:rgba(201,122,106,.1); border:1px solid rgba(201,122,106,.2);
  padding:1px 7px; border-radius:999px;
}
.result-keywords{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:10px; }
.result-keyword{
  font-size:11px; color:var(--gold);
  background:rgba(201,165,92,.08); border:1px solid rgba(201,165,92,.24);
  padding:2px 8px; border-radius:999px; letter-spacing:.02em;
}
.result-desc{ font-size:13px; color:var(--body); line-height:1.7; letter-spacing:.01em; }

/* ─── Copy + AI CTA ─── */
.btn-copy{
  width:100%; text-align:center;
  background:rgba(255,255,255,.042);
  border:1px solid rgba(255,255,255,.09);
  color:var(--body); font-family:'Pretendard',sans-serif;
  font-size:13px; font-weight:400;
  padding:12px 0; border-radius:12px;
  cursor:pointer; transition:all .2s;
  margin-bottom:14px; letter-spacing:.02em;
}
.btn-copy:hover{ border-color:rgba(201,165,92,.42); color:var(--gold-lt); background:rgba(255,255,255,.075); }
.btn-copy.copied{ border-color:rgba(201,165,92,.35); color:var(--gold); }
.ai-cta{
  margin-top:10px;
  border:1px solid rgba(201,165,92,.24);
  border-radius:16px; padding:36px 24px;
  text-align:center; background:rgba(201,165,92,.03);
}
.ai-badge{
  font-size:11px; letter-spacing:var(--ls-en-wide);
  margin-bottom:20px;
}
.ai-title{
  font-family:'Noto Serif KR',serif;
  font-size:17px; font-weight:700; color:var(--white);
  letter-spacing:var(--ls-ko-title); margin-bottom:8px;
}
.ai-desc{ font-size:12px; color:var(--body); line-height:1.7; margin-bottom:8px; }
.ai-features{ display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.ai-item{
  font-size:12px; color:var(--gold-lt);
  display:flex; align-items:center; gap:8px; justify-content:center;
}
.ai-item::before{ content:'✦'; font-size:8px; color:var(--gold); }
.ai-price{ font-size:12px; color:var(--muted); margin-top:12px; letter-spacing:.02em; }
#retry-btn{ display:block; margin:28px auto 0; }

/* ─── AI Result — Premium Report ─── */
.ai-loading{ padding:40px 0; text-align:center; }
.ai-error{
  text-align:center; padding:28px 20px;
  border:1px solid rgba(201,122,106,.15);
  border-radius:16px; background:rgba(201,122,106,.03);
  margin-bottom:16px;
}

/* Report */
.rpt-header{ text-align:center; padding:24px 0 20px; }
.rpt-badge{ font-size:11px; letter-spacing:var(--ls-en-wider); margin-bottom:12px; }
.rpt-question{
  font-family:'Noto Serif KR',serif;
  font-size:clamp(16px,4vw,20px); font-weight:700;
  color:var(--white); letter-spacing:var(--ls-ko-title);
  line-height:1.5; margin-bottom:6px;
}
.rpt-meta{ font-size:11px; color:var(--muted); }
.rpt-cards{
  display:flex; justify-content:center; gap:6px;
  padding:0 0 20px;
}
.rpt-card{
  width:min(60px, calc((100vw - 72px) / 5));
  aspect-ratio:2/3;
  border:1px solid rgba(201,165,92,.3);
  border-radius:7px;
  background:linear-gradient(160deg, var(--navy2), var(--navy));
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:2px; padding:5px 2px;
  text-align:center; position:relative;
}
.rpt-card-sym{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(13px,3.2vw,17px); font-weight:400;
  color:var(--gold-lt); line-height:1;
}
.rpt-card-kr{
  font-size:clamp(10px,2.2vw,12px); font-weight:600;
  color:var(--white); line-height:1.2;
}
.rpt-card-pos{
  position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  font-size:10px; color:var(--gold-dk); white-space:nowrap;
}
.rpt-card.reversed{ border-color:rgba(201,122,106,.3); }
.rpt-card.reversed::after{
  content:'역'; position:absolute; bottom:3px; right:3px;
  font-size:7px; color:#c97a6a;
  background:rgba(201,122,106,.12);
  padding:0 3px; border-radius:3px;
}
.rpt-spread-info{
  display:flex; flex-wrap:wrap; gap:5px;
  justify-content:center; margin-bottom:24px;
}
.rpt-tag{
  font-size:11px; color:var(--gold);
  background:rgba(201,165,92,.06);
  border:1px solid rgba(201,165,92,.18);
  border-radius:999px; padding:3px 10px;
}
.rpt-divider{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,165,92,.18), transparent);
  margin:0 0 28px;
}
.rpt-section-divider{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,165,92,.1), transparent);
  margin:24px 0;
}
.rpt-section{ margin-bottom:28px; }
.rpt-section-num{
  font-family:'Cormorant Garamond',serif;
  font-size:11px; font-weight:500;
  letter-spacing:var(--ls-en-wider);
  color:var(--gold-dk); text-transform:uppercase;
  margin-bottom:6px;
}
.rpt-section-title{
  font-family:'Noto Serif KR',serif;
  font-size:clamp(15px,3.6vw,19px); font-weight:700;
  color:var(--white); letter-spacing:var(--ls-ko-title);
  line-height:1.4; margin-bottom:14px;
}
.rpt-body{
  font-size:13.5px; color:var(--body);
  line-height:1.85;
}
.rpt-body p{ margin-bottom:12px; }
.rpt-hi{
  font-weight:700; color:var(--white);
  background:linear-gradient(180deg, transparent 55%, rgba(201,165,92,.2) 55%, rgba(201,165,92,.2) 90%, transparent 90%);
  padding:0 2px;
}
.rpt-cd{
  border:1px solid rgba(201,165,92,.12);
  border-radius:14px; padding:18px;
  margin-bottom:12px; background:rgba(201,165,92,.02);
}
.rpt-cd.rv{ border-color:rgba(201,122,106,.12); }
.rpt-cd-header{
  display:flex; align-items:center; gap:8px;
  flex-wrap:wrap; margin-bottom:8px;
}
.rpt-cd-pos{
  font-family:'Cormorant Garamond',serif;
  font-size:11px; font-weight:500;
  letter-spacing:var(--ls-en-wide);
  text-transform:uppercase; color:var(--gold-dk);
}
.rpt-cd-name{
  font-family:'Noto Serif KR',serif;
  font-size:14px; font-weight:700;
  color:var(--white);
}
.rpt-cd-name-en{
  font-family:'Cormorant Garamond',serif;
  font-weight:400; font-size:12px;
  color:var(--gold-dk); margin-left:5px;
}
.rpt-cd-rv{
  font-size:11px; color:#c97a6a;
  background:rgba(201,122,106,.1);
  border:1px solid rgba(201,122,106,.2);
  padding:1px 7px; border-radius:999px;
}
.rpt-cd-kws{
  display:flex; flex-wrap:wrap; gap:4px;
  margin-bottom:10px;
}
.rpt-cd-kw{
  font-size:11px; color:var(--gold);
  background:rgba(201,165,92,.08);
  border:1px solid rgba(201,165,92,.12);
  padding:2px 7px; border-radius:999px;
}
.rpt-cd-sub{
  font-family:'Noto Serif KR',serif;
  font-size:13px; font-weight:600;
  color:var(--gold-lt); margin-bottom:8px;
}
.rpt-cd-body{
  font-size:13px; color:var(--body); line-height:1.8;
}
.rpt-cd-whisper{
  margin-top:10px; padding:9px 13px;
  border-left:2px solid rgba(201,165,92,.2);
  background:rgba(201,165,92,.02);
  font-size:12.5px; color:var(--gold-lt);
  line-height:1.5; font-style:italic;
}
.rpt-rel{
  padding:14px; border:1px solid rgba(201,165,92,.1);
  border-radius:12px; margin-bottom:10px;
  background:rgba(201,165,92,.02);
}
.rpt-rel-pair{
  font-size:13px; font-weight:600;
  color:var(--gold-lt); margin-bottom:5px;
}
.rpt-rel-body{
  font-size:12.5px; color:var(--body); line-height:1.7;
}
.rpt-action{
  display:flex; gap:12px; padding:12px 14px;
  border:1px solid rgba(201,165,92,.1);
  border-radius:12px; margin-bottom:8px;
  background:rgba(201,165,92,.02);
}
.rpt-action-num{
  font-family:'Cormorant Garamond',serif;
  font-size:22px; font-weight:400;
  color:rgba(201,165,92,.2);
  line-height:1; flex-shrink:0; padding-top:2px;
}
.rpt-action-body{
  font-size:13px; color:var(--body); line-height:1.7;
}
.rpt-closing{
  text-align:center; padding:24px 18px;
  border:1px solid rgba(201,165,92,.18);
  border-radius:16px;
  background:linear-gradient(160deg, rgba(201,165,92,.04), rgba(201,165,92,.01));
}
.rpt-closing-text{
  font-family:'Noto Serif KR',serif;
  font-size:clamp(14px,3.2vw,17px); font-weight:700;
  color:var(--gold-lt); letter-spacing:var(--ls-ko-title);
  line-height:1.6;
}
.rpt-closing-deco{
  margin-top:10px; font-size:14px;
  color:var(--gold); opacity:.4;
}
.rpt-actions{
  display:flex; flex-direction:column; gap:8px;
  padding:20px 0 16px;
}
.rpt-btn-share{
  width:100%; text-align:center;
  background:rgba(255,255,255,.042);
  border:1px solid rgba(255,255,255,.09);
  color:var(--body); font-family:'Pretendard',sans-serif;
  font-size:13px; font-weight:400;
  padding:12px 0; border-radius:12px;
  cursor:pointer; transition:all .2s;
}
.rpt-btn-share:hover{
  border-color:rgba(201,165,92,.42); color:var(--gold-lt);
}

/* ─── Footer override ─── */
footer{ margin-top:20px; }
.back-link{
  display:inline-block; 
  font-size:12px; font-weight:300; color:var(--muted);
  text-decoration:none; letter-spacing:.02em;
  padding:8px 0;
  border-bottom:1px dashed rgba(201,165,92,.2);
  padding-bottom:1px;
}
.back-link:hover{ color:var(--gold-lt); border-color:rgba(201,165,92,.4); }
.notice{
  border-top:1px solid rgba(201,165,92,.08);
  padding:20px var(--page-gutter) 0;
  text-align:center;
}
.notice p{
  font-size:11px; color:var(--muted); opacity:.6;
  line-height:1.6; letter-spacing:.01em;
}
.notice p+p{ margin-top:4px; }

/* ─── Payment Sheet ─── */
.pay-overlay{
  position:fixed; inset:0; z-index:800;
  background:rgba(7,9,15,.75);
  backdrop-filter:blur(6px);
  opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.pay-overlay.open{ opacity:1; pointer-events:auto; }
.pay-sheet{
  position:fixed; bottom:0; left:0; right:0; z-index:801;
  background:linear-gradient(180deg, var(--navy3), var(--navy));
  border-top:1px solid rgba(201,165,92,.24);
  border-radius:20px 20px 0 0;
  padding:28px 24px max(24px, env(safe-area-inset-bottom));
  max-width:480px; margin:0 auto;
  transform:translateY(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.pay-overlay.open .pay-sheet{ transform:translateY(0); }
.pay-handle{
  width:36px; height:4px; border-radius:2px;
  background:rgba(255,255,255,.12);
  margin:0 auto 20px;
}
.pay-header{ text-align:center; margin-bottom:20px; }
.pay-title{
  font-family:'Noto Serif KR',serif;
  font-size:18px; font-weight:700; color:var(--white);
  letter-spacing:var(--ls-ko-title); margin-bottom:4px;
}
.pay-amount-original{
  font-family:'Cormorant Garamond',serif;
  font-size:16px; font-weight:400; color:var(--muted);
  text-decoration:line-through; letter-spacing:-.01em;
  margin-bottom:2px;
}
.pay-amount{
  font-family:'Cormorant Garamond',serif;
  font-size:32px; font-weight:600; color:var(--gold-lt);
  letter-spacing:-.02em; line-height:1.2;
}
.pay-amount-sub{
  font-size:11px; color:var(--gold); margin-top:4px;
  letter-spacing:.02em;
}
.pay-methods{ display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.pay-method{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; border-radius:12px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
  cursor:pointer; transition:all .2s;
  -webkit-tap-highlight-color:transparent;
}
.pay-method:hover{ border-color:rgba(201,165,92,.2); background:rgba(255,255,255,.05); }
.pay-method.selected{
  border-color:rgba(201,165,92,.4);
  background:rgba(201,165,92,.06);
}
.pay-method-icon{
  width:40px; height:28px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:11px; letter-spacing:-.02em;
  flex-shrink:0;
}
.pay-method-icon.kakao{ background:#FEE500; color:#3C1E1E; }
.pay-method-icon.naver{ background:#03C75A; color:#fff; }
.pay-method-icon.card{ background:rgba(255,255,255,.1); color:var(--body); font-size:16px; }
.pay-method-label{
  font-size:14px; font-weight:500; color:var(--white);
}
.pay-method-label small{
  display:block; font-size:11px; font-weight:300;
  color:var(--muted); margin-top:1px;
}
.pay-method-check{
  margin-left:auto; width:20px; height:20px;
  border-radius:50%; border:1px solid rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
  transition:all .2s; flex-shrink:0;
}
.pay-method.selected .pay-method-check{
  border-color:var(--gold);
  background:var(--gold);
}
.pay-method.selected .pay-method-check::after{
  content:'✓'; font-size:11px; color:var(--navy); font-weight:700;
}
.pay-submit{
  width:100%; padding:16px 0; border:none; border-radius:12px;
  font-family:'Pretendard',sans-serif;
  font-size:15px; font-weight:600; cursor:pointer;
  background:var(--gold); color:var(--navy);
  transition:all .2s; letter-spacing:-.01em;
}
.pay-submit:hover{ background:var(--gold-lt); }
.pay-submit:disabled{
  background:rgba(201,165,92,.22); color:rgba(255,255,255,.25);
  cursor:not-allowed;
}
.pay-close{
  position:absolute; top:16px; right:16px;
  width:32px; height:32px; border:none; background:none;
  color:var(--muted); font-size:20px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:all .2s;
}
.pay-close:hover{ color:var(--white); background:rgba(255,255,255,.06); }
.pay-note{
  text-align:center; font-size:11px; color:var(--muted);
  margin-top:12px; line-height:1.5;
}
.pay-processing{
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:40px 0 20px; text-align:center;
}
.pay-processing .reading-orb-wrap{ width:60px; height:60px; margin-bottom:16px; }
.pay-processing .reading-orb{ width:6px; height:6px; }
.pay-processing p{
  font-family:'Noto Serif KR',serif;
  font-size:14px; color:var(--gold-lt);
  animation:readingFade 2s ease-in-out infinite;
}
.pay-done{
  text-align:center; padding:32px 0 16px;
}
.pay-done-icon{
  width:48px; height:48px; border-radius:50%;
  background:rgba(201,165,92,.24); border:1px solid rgba(201,165,92,.3);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px; font-size:22px; color:var(--gold);
  line-height:1; padding-bottom:2px;
  animation:popIn .4s ease;
}
.pay-done p{
  font-size:14px; color:var(--gold-lt); font-weight:500;
}

/* ─── Intro Overlay ─── */
.intro{
  position:fixed; inset:0; z-index:900;
  background:var(--navy);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  transition:opacity .5s ease;
}
.intro.done{ opacity:0; pointer-events:none; }
.intro-orb{
  width:10px; height:10px; border-radius:50%;
  background:var(--gold-lt);
  box-shadow:0 0 20px rgba(201,165,92,.8),0 0 60px rgba(201,165,92,.3);
  animation:heartbeat 1.5s ease-in-out;
}
.intro-ring{
  position:absolute; border-radius:50%;
  border:2px solid rgba(201,165,92,.4);
  opacity:0;
}
.intro-ring:nth-child(1){
  width:50px; height:50px;
  animation:ringBurst 1s .35s ease-out forwards;
}
.intro-ring:nth-child(2){
  width:100px; height:100px;
  animation:ringBurst 1s .42s ease-out forwards;
}
.intro-ring:nth-child(3){
  width:160px; height:160px;
  animation:ringBurst 1s .5s ease-out forwards;
}
.intro-spark{
  position:absolute; border-radius:50%;
  background:var(--gold-lt);
  box-shadow:0 0 6px rgba(201,165,92,.8),0 0 12px rgba(201,165,92,.3);
  opacity:0;
  animation:sparkBurst 1s ease-out forwards;
}
@keyframes heartbeat{
  0%{ transform:scale(0); opacity:0; }
  8%{ transform:scale(.6); opacity:.8; }
  20%{ transform:scale(.4); opacity:1; }
  35%{ transform:scale(1.8); opacity:1;
       box-shadow:0 0 40px rgba(201,165,92,1),0 0 90px rgba(201,165,92,.5),0 0 140px rgba(201,165,92,.2); }
  50%{ transform:scale(.9); }
  65%{ transform:scale(1.2);
       box-shadow:0 0 24px rgba(201,165,92,.7),0 0 50px rgba(201,165,92,.3); }
  80%{ transform:scale(1); }
  100%{ transform:scale(.8); opacity:.4; }
}
@keyframes ringBurst{
  0%{ transform:scale(.2); opacity:0; }
  15%{ opacity:.55; }
  60%{ opacity:.25; }
  100%{ transform:scale(1.4); opacity:0; }
}
@keyframes sparkBurst{
  0%{ transform:translate(0,0) scale(1); opacity:0; }
  15%{ opacity:.9; }
  100%{ transform:translate(var(--tx),var(--ty)) scale(0); opacity:0; }
}

/* ─── Reading Scene ─── */
.reading-scene{
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:24px;
}
.reading-orb-wrap{
  position:relative; width:100px; height:100px;
  display:flex; align-items:center; justify-content:center;
}
.reading-orb{
  width:10px; height:10px; border-radius:50%;
  background:radial-gradient(circle, var(--gold-lt), var(--gold));
  box-shadow:0 0 16px rgba(201,165,92,.7),0 0 48px rgba(201,165,92,.3),0 0 96px rgba(201,165,92,.1);
  animation:orbPulse 1.4s ease-in-out infinite;
}
.reading-ring{
  position:absolute; border-radius:50%;
  border:1px solid rgba(201,165,92,.2);
  top:50%; left:50%;
}
.reading-ring:nth-child(2){ width:50px; height:50px; margin:-25px 0 0 -25px; animation:readingSpin 4s linear infinite; }
.reading-ring:nth-child(3){ width:80px; height:80px; margin:-40px 0 0 -40px; animation:readingSpin 6s linear infinite reverse; }
.reading-ring:nth-child(4){ width:100px; height:100px; margin:-50px 0 0 -50px; border-style:dashed; border-color:rgba(201,165,92,.1); animation:readingSpin 8s linear infinite; }
.reading-ring-dot{
  position:absolute; top:-2px; left:50%;
  width:4px; height:4px; border-radius:50%;
  background:var(--gold-lt); box-shadow:0 0 6px rgba(201,165,92,.5);
  transform:translateX(-50%);
}
@keyframes readingSpin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
.reading-text{
  font-family:'Noto Serif KR',serif;
  font-size:15px; font-weight:600;
  color:var(--gold-lt); letter-spacing:-.02em;
  animation:readingFade 2s ease-in-out infinite;
}
.reading-sub{
  font-size:12px; font-weight:300;
  color:var(--muted); letter-spacing:.02em; margin-top:-20px;
}
@keyframes readingFade{ 0%,100%{opacity:.5;} 50%{opacity:1;} }
@keyframes pulse{ 0%,100%{opacity:.5;} 50%{opacity:1;} }