/* =========================================================
   talisman-ritual.css
   🧧 "제작 의식(Crafting Ritual)" 전용 풀스크린 오버레이
   컨셉: 심플 · 고급 · 차분함 · 신비로움 · 여백 · 미니멀
   (tarot-ritual.css와 동일한 오버레이/스테이지 아키텍처를 계승하되,
    색감/모티프는 한지·붓글씨·금문양·붉은 인장으로 전환)
   ========================================================= */

.tc-ritual-overlay{
  position:fixed;inset:0;z-index:3000;overflow:hidden;
  background:radial-gradient(circle at 50% 30%, #2a120c 0%, #170a08 55%, #0c0605 100%);
  display:flex;align-items:center;justify-content:center;
  animation:tcRitualFadeIn .5s ease both;
}
.tc-ritual-overlay.tc-leaving{ animation:tcRitualFadeOut .45s ease both; }
@keyframes tcRitualFadeIn{ from{opacity:0;} to{opacity:1;} }
@keyframes tcRitualFadeOut{ from{opacity:1;} to{opacity:0;} }

.tc-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 50% 20%, rgba(224,179,86,0.16), transparent 55%),
    radial-gradient(circle at 20% 85%, rgba(138,42,31,0.35), transparent 55%),
    radial-gradient(circle at 80% 85%, rgba(138,42,31,0.28), transparent 55%);
}
/* 향 연기 */
.tc-smoke{ position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden; }
.tc-smoke span{
  position:absolute;bottom:-10%;border-radius:50%;
  background:radial-gradient(circle, rgba(230,225,215,0.22), transparent 70%);
  filter:blur(2px);
  animation:tcSmokeRise linear infinite;
}
@keyframes tcSmokeRise{
  0%{ transform:translate(0,0) scale(0.6); opacity:0; }
  15%{ opacity:0.55; }
  70%{ opacity:0.3; }
  100%{ transform:translate(var(--drift,20px), -95vh) scale(1.6); opacity:0; }
}
.tc-topbar{ position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:flex-end;padding:16px 18px; }
.tc-skip-btn{
  background:rgba(255,255,255,0.08);border:1px solid rgba(224,179,86,0.3);color:#e8d5b0;
  font-size:0.74rem;padding:7px 14px;border-radius:999px;cursor:pointer;font-family:inherit;
}
.tc-skip-btn:active{ opacity:0.8; }

.tc-stage{ position:relative;z-index:3;width:100%;max-width:420px;padding:20px;display:none;flex-direction:column;align-items:center;text-align:center; }
.tc-stage.tc-active{ display:flex; }

/* ---------- Stage 1: 복주머니가 떠올라 황금빛으로 변함 ---------- */
.tc-pouch-field{ position:relative;width:260px;height:220px;margin-bottom:18px; }
.tc-pouch{
  position:absolute;font-size:1.7rem;filter:drop-shadow(0 0 4px rgba(0,0,0,0.4));
  animation:tcPouchFloat 3.2s ease-in-out infinite;
  opacity:0.85;
}
.tc-pouch.tc-golden{ animation:tcPouchFloat 3.2s ease-in-out infinite, tcPouchGolden 1.6s ease forwards; }
@keyframes tcPouchFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-14px); }
}
@keyframes tcPouchGolden{
  0%{ filter:drop-shadow(0 0 4px rgba(0,0,0,0.4)) grayscale(0) brightness(1); }
  100%{ filter:drop-shadow(0 0 14px rgba(224,179,86,0.9)) brightness(1.4) saturate(1.6); }
}
.tc-converge-glow{
  position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(255,224,150,0.95), transparent 70%);
  box-shadow:0 0 30px 12px rgba(224,179,86,0.55);
  animation:tcConvergePulse 1.8s ease-in-out infinite;
}
@keyframes tcConvergePulse{
  0%,100%{ transform:translate(-50%,-50%) scale(1); opacity:0.7; }
  50%{ transform:translate(-50%,-50%) scale(1.6); opacity:1; }
}
.tc-stage1-title{ font-family:var(--font-heading,serif);font-size:1.15rem;color:#f0d9a6;margin:6px 0 4px;letter-spacing:0.02em; }
.tc-stage1-sub{ font-size:0.8rem;color:#c9b092;margin:0; }

/* ---------- Stage 2: 인장이 찍히고 한지가 펼쳐짐 ---------- */
.tc-hanji-wrap{ position:relative;width:220px;height:280px;margin-bottom:16px;display:flex;align-items:center;justify-content:center; }
.tc-hanji-paper{
  position:relative;width:100%;height:100%;border-radius:6px;
  background:linear-gradient(170deg,#f3ecd8 0%, #ece2c6 55%, #ddcfa6 100%);
  box-shadow:0 14px 40px rgba(0,0,0,0.5), inset 0 0 30px rgba(140,110,60,0.15);
  transform:scaleY(0.04);transform-origin:top center;
  animation:tcHanjiUnfold 1.4s cubic-bezier(.2,.8,.2,1) forwards;
  overflow:hidden;
}
@keyframes tcHanjiUnfold{
  0%{ transform:scaleY(0.04); opacity:0.4; }
  60%{ transform:scaleY(1.05); opacity:1; }
  100%{ transform:scaleY(1); opacity:1; }
}
.tc-hanji-fiber{
  position:absolute;inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(120,90,40,0.05) 0px, transparent 2px, transparent 6px);
}
.tc-seal-stamp{
  position:absolute;top:50%;left:50%;width:74px;height:74px;border-radius:8px;
  transform:translate(-50%,-50%) scale(2.6) rotate(-8deg);
  background:radial-gradient(circle, #a4281c 0%, #7a2a1a 70%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-heading,serif);font-size:1.7rem;color:#ffe9c4;font-weight:700;
  opacity:0;box-shadow:0 0 0 rgba(122,42,26,0);
  animation:tcSealStampDown .5s cubic-bezier(.34,1.56,.64,1) forwards;
  animation-delay:.9s;
}
@keyframes tcSealStampDown{
  0%{ opacity:0; transform:translate(-50%,-50%) scale(2.6) rotate(-8deg); }
  60%{ opacity:1; transform:translate(-50%,-50%) scale(0.92) rotate(-8deg); box-shadow:0 0 40px 14px rgba(224,60,40,0.5); }
  100%{ opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-8deg); box-shadow:0 0 18px 6px rgba(224,60,40,0.35); }
}
.tc-stage2-title{ font-family:var(--font-heading,serif);font-size:1.1rem;color:#f0d9a6;margin:4px 0 4px; }
.tc-stage2-sub{ font-size:0.8rem;color:#c9b092;margin:0; }

/* ---------- Stage 3: 완성된 부적 등장 + AI 축복 ---------- */
.tc-flash{
  position:fixed;inset:0;z-index:4;pointer-events:none;
  background:radial-gradient(circle at 50% 45%, rgba(255,236,190,0.9), rgba(224,179,86,0.15) 45%, transparent 70%);
  opacity:0;animation:tcFlashPop .9s ease forwards;
}
@keyframes tcFlashPop{ 0%{opacity:0;} 12%{opacity:1;} 100%{opacity:0;} }

.tc-talisman-wrap{ opacity:0;transform:translateY(18px) scale(0.94);animation:tcTalismanEnter .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:.15s; }
@keyframes tcTalismanEnter{ to{ opacity:1;transform:translateY(0) scale(1); } }

.tc-talisman-card{
  position:relative;width:210px;aspect-ratio:2/3;border-radius:8px;margin:0 auto 16px;
  background:linear-gradient(170deg,#f6efd9 0%, #ece0bd 50%, #ddc98f 100%);
  border:2px solid #7a2a1a;
  box-shadow:0 12px 36px rgba(0,0,0,0.55), inset 0 0 22px rgba(122,42,26,0.15);
  padding:20px 12px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;
}
.tc-tc-rule{ width:70%;height:1px;background:rgba(122,42,26,0.4); }
.tc-tc-seal{
  font-family:var(--font-heading,serif);font-size:2.2rem;color:#8a2a1a;font-weight:700;
  text-shadow:0 1px 0 rgba(255,255,255,0.4);
}
.tc-tc-name{ font-family:var(--font-heading,serif);font-size:1rem;color:#3d1c08;font-weight:700; }
.tc-tc-blessing-label{ font-size:0.66rem;letter-spacing:0.12em;color:#8a6a3a; }
.tc-tc-no{ font-size:0.68rem;color:#7a4a1c;letter-spacing:0.03em; }
.tc-seal-pattern{
  display:grid;grid-template-columns:repeat(5,5px);grid-template-rows:repeat(5,5px);gap:1.5px;
  margin-top:2px;
}
.tc-seal-cell{ width:5px;height:5px;background:rgba(122,42,26,0.12); }
.tc-seal-cell.on{ background:#7a2a1a; }

.tc-blessing-box{
  opacity:0;animation:tcFadeUp .8s ease forwards;animation-delay:1.1s;
  max-width:300px;
}
@keyframes tcFadeUp{ from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:translateY(0);} }
.tc-blessing-label{ font-size:0.72rem;color:#e0b356;letter-spacing:0.08em;margin:0 0 6px; }
.tc-blessing-text{ font-size:0.98rem;color:#f5ead0;line-height:1.7;margin:0 0 20px;font-style:italic; }

.tc-done-btn{
  opacity:0;transform:translateY(6px);animation:tcFadeUp .6s ease forwards;animation-delay:1.5s;
  background:linear-gradient(120deg,#c99a3f,#e0b356);color:#2a1608;font-weight:700;font-family:inherit;
  border:none;border-radius:999px;padding:12px 30px;font-size:0.88rem;cursor:pointer;
  box-shadow:0 10px 26px rgba(224,179,86,0.35);
}
.tc-done-btn:active{ opacity:0.85; }

@media (max-width:360px){
  .tc-talisman-card{ width:180px; }
  .tc-hanji-wrap{ width:190px;height:240px; }
  .tc-blessing-text{ font-size:0.9rem; }
}
