
:root{
  --bg:#f5efe3;
  --paper:#fffaf1;
  --paper-strong:#fffdf8;
  --ink:#211714;
  --ink-soft:#4a3b32;
  --muted:#6c5c52;
  --red:#b60f16;
  --red-deep:#8f0b12;
  --gold:#9a6f33;
  --line:rgba(154,111,51,.23);
  --shadow:0 24px 60px rgba(34,17,12,.12);
  --shadow-soft:0 10px 28px rgba(34,17,12,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  min-height:100vh;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  background:
    radial-gradient(circle at top left, rgba(182,15,22,.08) 0, rgba(182,15,22,0) 18%),
    radial-gradient(circle at bottom right, rgba(154,111,51,.08) 0, rgba(154,111,51,0) 16%),
    linear-gradient(180deg, #f7f1e7 0%, #f1eadf 100%);
}
body::before,
body::after{
  content:"";
  position:fixed;
  pointer-events:none;
  z-index:-1;
  opacity:.25;
}
body::before{
  top:-32px;left:-44px;width:180px;height:180px;border-radius:50%;
  border:16px solid rgba(182,15,22,.18);
  border-right-color:transparent;border-bottom-color:transparent;
}
body::after{
  right:22px;bottom:16px;width:260px;height:140px;
  background:radial-gradient(circle, rgba(154,111,51,.25) 2px, transparent 2px);
  background-size:18px 18px;opacity:.12;
}
img{max-width:100%;display:block}
button,input,select{font:inherit}
button{color:inherit}
a{color:inherit}
.app-shell{width:min(1320px,calc(100% - 28px));margin:0 auto;padding:20px 0 42px}
.topbar{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-bottom:18px;padding:14px 18px;
  background:rgba(255,250,241,.84);backdrop-filter:blur(8px);
  border:1px solid rgba(154,111,51,.16);border-radius:18px;box-shadow:var(--shadow-soft);
  position:sticky;top:10px;z-index:10;
}
.brand{appearance:none;border:0;background:none;padding:0;text-align:left;cursor:pointer}
.brand-mark{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.9rem;font-weight:700;letter-spacing:.02em;color:var(--red)}
.brand-sub{display:block;font-size:.92rem;color:var(--muted);font-weight:800;margin-top:2px}
.language-picker{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.88rem;font-weight:800}
.language-picker select{min-height:44px;border:1px solid var(--line);border-radius:14px;background:white;padding:10px 36px 10px 12px;font-weight:800;color:var(--ink);box-shadow:var(--shadow-soft)}
.hero{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,46%);gap:30px;align-items:center;
  background:linear-gradient(180deg, rgba(255,252,247,.95), rgba(255,248,237,.92));
  border:1px solid rgba(154,111,51,.18);border-radius:34px;padding:34px;box-shadow:var(--shadow);
  margin-bottom:24px;
}
.hero-copy h1{margin:0;display:grid;gap:8px}
.hero-copy h1 span{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7vw,5.2rem);font-weight:700;letter-spacing:-.04em;line-height:.94}
.hero-copy h1 strong{font-family:Georgia,"Noto Serif KR",serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.05}
.eyebrow{margin:0 0 14px;color:var(--gold);font-weight:900;letter-spacing:.08em;font-size:.85rem}
.hero-lead{font-size:1.04rem;line-height:1.8;color:var(--ink-soft);max-width:630px;margin:20px 0 0}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.feature-pills{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:22px 0 0}
.feature-pills li{padding:10px 14px;border-radius:999px;background:rgba(182,15,22,.08);color:var(--red-deep);font-weight:800;border:1px solid rgba(182,15,22,.1)}
.hero-visual{display:flex;justify-content:flex-end}
.hero-visual-frame{width:100%;max-width:560px;aspect-ratio:4/3;border-radius:28px;overflow:hidden;box-shadow:0 20px 46px rgba(34,17,12,.18);background:#f8f2e8}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:right center;display:block}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 20px;border-radius:999px;font-weight:900;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background .18s ease}
.button:hover{transform:translateY(-2px)}
.button.primary{background:linear-gradient(180deg,var(--red),var(--red-deep));color:#fff;box-shadow:0 14px 26px rgba(182,15,22,.24)}
.button.secondary{background:white;color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-soft)}
.button.accent-hwatu{background:linear-gradient(180deg,var(--red),var(--red-deep));color:#fff;border-color:transparent;box-shadow:0 14px 26px rgba(182,15,22,.24)}
.button.accent-tarot{background:linear-gradient(180deg,#77d8ff,#43bde9);color:#08314a;border-color:transparent;box-shadow:0 14px 26px rgba(67,189,233,.26)}
.button.accent-tarot:hover,.button.accent-hwatu:hover{transform:translateY(-2px)}
.button.hwatu-action{background:linear-gradient(180deg,var(--red),var(--red-deep));color:#fff;border-color:transparent;box-shadow:0 14px 26px rgba(182,15,22,.24)}
.button.tarot-action{background:linear-gradient(180deg,#8fdcff,#59c7ee);color:#08314a;border-color:transparent;box-shadow:0 14px 26px rgba(67,189,233,.26)}
.button.hwatu-action:hover,.button.tarot-action:hover{transform:translateY(-2px)}
.tabs{display:flex;gap:10px;overflow:auto;padding:2px 0;margin:0 0 14px}
.tab{white-space:nowrap;border:1px solid rgba(154,111,51,.22);background:rgba(255,255,255,.78);padding:12px 18px;border-radius:999px;font-weight:900;cursor:pointer;box-shadow:var(--shadow-soft)}
.tab.active{background:linear-gradient(180deg,var(--red),var(--red-deep));color:#fff;border-color:var(--red-deep)}
.panel{display:none}
.panel.active{display:block}
.empty-state,.result-card,.about-card{background:rgba(255,250,241,.94);border:1px solid rgba(154,111,51,.18);border-radius:28px;box-shadow:var(--shadow)}
.empty-state{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:34px;align-items:center;padding:28px}
.empty-visual-stack{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.empty-visual-stack img{border-radius:20px;box-shadow:0 16px 28px rgba(0,0,0,.14)}
.card-back-hero{aspect-ratio:941/1502;object-fit:cover}
.product-spread{aspect-ratio:4/5;object-fit:cover;transform:translateY(22px)}
.empty-copy h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2.3rem;line-height:1.12;margin:0 0 12px}
.empty-copy p{line-height:1.78;color:var(--muted);margin:0}
.empty-note{margin:18px 0;padding:18px;border-radius:18px;background:rgba(182,15,22,.05);border:1px solid rgba(182,15,22,.08)}
.empty-note strong{display:block;margin-bottom:8px;color:var(--red-deep)}
.empty-note ul{margin:0;padding-left:18px;color:var(--ink-soft);line-height:1.72}
.result-card{display:grid;grid-template-columns:minmax(260px,36%) 1fr;gap:36px;padding:28px;align-items:center}
.result-visual{display:flex;justify-content:center}
.flip-stage{width:min(100%,380px);aspect-ratio:9/16;perspective:1200px}
.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.72,.2,1)}
.flip-stage.revealed .flip-inner{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:24px;overflow:hidden;box-shadow:0 18px 36px rgba(0,0,0,.18)}
.flip-face img{width:100%;height:100%;object-fit:cover}
.flip-front{transform:rotateY(180deg)}
.result-label{color:var(--gold);font-weight:900;margin:0 0 8px}
.result-meta{display:flex;gap:8px;color:var(--muted);font-weight:800;margin:0 0 10px}
.result-copy h2{font-family:Georgia,"Noto Serif KR",serif;font-size:clamp(2.15rem,4vw,3.6rem);margin:0 0 10px;line-height:1.05}
.keyword-line{color:var(--red-deep);font-weight:900;letter-spacing:.02em;margin:0}
.reading-block,.flow-block,.message-block,.detail-reading,.detail-flow,.detail-message{margin-top:22px;padding-top:16px;border-top:1px solid rgba(154,111,51,.18)}
.reading-block h3,.flow-block h3,.message-block h3,.shop-block h3,.modal-body h3,.detail-copy h3,.guidebook-head h3{margin:0 0 8px;color:var(--gold);font-size:.96rem}
.reading-block p,.flow-block p,.message-block p,.detail-reading p,.detail-flow p,.detail-message p{font-size:1.03rem;line-height:1.82;margin:0}
.message-block p,.detail-message p{font-weight:780}
.result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.section-heading{padding:18px 4px 14px}
.section-heading h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2.5rem;margin:0 0 8px}
.section-heading p:last-child{color:var(--muted);line-height:1.75;max-width:860px}
.month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
.month-tile{border:1px solid rgba(154,111,51,.2);background:white;border-radius:22px;overflow:hidden;text-align:left;padding:0;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .18s ease, box-shadow .18s ease;min-width:0;width:100%;display:flex;flex-direction:column}
.month-tile:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(34,17,12,.12)}
.month-tile img{display:block;width:100%;height:220px;object-fit:contain;object-position:50% 50%;background:#f8f4ec;padding:10px;border-bottom:1px solid rgba(154,111,51,.12);margin:0 auto;flex:0 0 220px}
.month-tile-copy{padding:14px;min-width:0;flex:1}
.month-tile small{color:var(--gold);font-weight:900}
.month-tile strong{display:block;font-size:1.15rem;margin:5px 0 6px;overflow-wrap:anywhere;word-break:normal}
.month-tile span{font-size:.88rem;color:var(--muted);line-height:1.5;overflow-wrap:anywhere;word-break:normal}
.about-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:28px;padding:28px}
.about-copy h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2.7rem;line-height:1.12;margin:0 0 16px}
.about-copy > p{line-height:1.82;color:var(--ink-soft)}
.shop-stack{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.shop-block{padding:20px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(154,111,51,.14);display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.shop-block p{margin:0;color:var(--muted);line-height:1.68}
.guidebook-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.language-badge{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:999px;background:rgba(182,15,22,.08);color:var(--red-deep);font-size:.82rem;font-weight:900}
.media-showcase{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row;gap:14px;align-content:start}
.media-card{margin:0;background:white;border-radius:20px;overflow:hidden;border:1px solid rgba(154,111,51,.14);box-shadow:var(--shadow-soft);min-width:0}
.media-card img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.media-card figcaption{padding:12px 14px;font-size:.9rem;color:var(--muted);font-weight:800}
/* 더보기 갤러리 순서 고정: 1행(가이드북+카드덱) → 2행(가로 내지 단독) → 나머지 이미지 */
.media-slot-cover{grid-column:1;grid-row:1}
.media-slot-deck{grid-column:2;grid-row:1}
.media-slot-wide{grid-column:1 / -1;grid-row:2}
.media-slot-rest{grid-row:auto}
.tarot-media-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch}
.tarot-media-card img{aspect-ratio:1/1;object-fit:cover}
.media-card-cover img{object-fit:contain;background:#f8f4ec;padding:22px;box-sizing:border-box}
.media-card-deck img{object-fit:cover}
.media-card-wide{grid-column:1 / -1}
.media-card-wide img{aspect-ratio:auto;height:auto;max-height:none;object-fit:contain;background:#fff}
footer{text-align:center;color:var(--muted);font-size:.84rem;padding:34px 0 0}
.modal,.card-detail-modal{position:fixed;inset:0;display:none;z-index:30}
.modal.open,.card-detail-modal.open{display:block}
.modal-scrim{position:absolute;inset:0;border:0;background:rgba(16,20,34,.58);backdrop-filter:blur(6px)}
.modal-card{position:relative;z-index:1;width:min(980px,calc(100% - 26px));max-height:calc(100vh - 28px);overflow:auto;margin:14px auto;background:var(--paper);border-radius:28px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.34)}
.modal-close{position:sticky;top:0;float:right;z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:white;font-size:1.7rem;cursor:pointer}
.modal-head{display:grid;grid-template-columns:170px 1fr;gap:22px;align-items:center}
.modal-head img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:16px}
.modal-head h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2.8rem;margin:0;line-height:1.04}
.modal-text-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0 18px}
.modal-text-grid section{padding:18px;border-radius:18px;background:rgba(182,15,22,.04)}
.modal-text-grid p{margin:0;line-height:1.78;color:var(--ink-soft)}
.four-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;align-items:stretch}
.mini-card{border:1px solid rgba(154,111,51,.18);background:white;border-radius:16px;overflow:hidden;padding:0;text-align:left;cursor:pointer;box-shadow:var(--shadow-soft);min-width:0;width:100%;display:flex;flex-direction:column}
.mini-card img{width:100%;aspect-ratio:9/16;object-fit:contain;object-position:50% 50%;background:#f8f4ec;margin:0 auto;flex:0 0 auto}
.mini-card div{padding:11px;min-width:0;flex:1}
.mini-card strong{display:block;line-height:1.35;overflow-wrap:anywhere;word-break:normal}
.mini-card small{color:var(--muted)}
.detail-card{position:relative;z-index:1;width:min(860px,calc(100% - 26px));max-height:calc(100vh - 28px);overflow:auto;margin:14px auto;background:var(--paper);border-radius:28px;padding:28px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,48%);grid-template-areas:"copy image";align-items:start;gap:28px;box-shadow:0 30px 80px rgba(0,0,0,.34)}
.detail-card .modal-close{position:absolute;top:20px;left:20px;right:auto;float:none}
.detail-card > img{grid-area:image;width:100%;border-radius:18px;box-shadow:0 15px 30px rgba(0,0,0,.15);align-self:start}
.detail-copy{grid-area:copy;align-self:start;padding-top:72px}
.detail-copy h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2.4rem;line-height:1.06;margin:0 0 10px}
[hidden]{display:none!important}
@media(max-width:1080px){
  .hero{grid-template-columns:1fr}
  .hero-visual{justify-content:center}
  .hero-visual-frame{max-width:680px}
  .about-card{grid-template-columns:1fr}
}
@media(max-width:900px){
  .month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .shop-stack{grid-template-columns:1fr}
}
@media(max-width:720px){
  .app-shell{width:min(100%,calc(100% - 18px));padding:14px 0 36px}
  .topbar{padding:12px 14px}
  .language-picker span{display:none}
  .hero{padding:24px}
  .hero-copy h1 span{font-size:3.4rem}
  .hero-copy h1 strong{font-size:2.2rem}
  .empty-state,.result-card{grid-template-columns:1fr;padding:22px}
  .empty-visual-stack{grid-template-columns:1fr 1fr}
  .product-spread{transform:none}
  .month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .month-tile img{height:170px}
  .media-showcase{grid-template-columns:1fr}
  .tarot-media-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .modal-head{grid-template-columns:110px 1fr}
  .modal-head h2{font-size:2rem}
  .modal-text-grid{grid-template-columns:1fr}
  .four-cards{grid-template-columns:repeat(2,1fr)}
  .detail-card{width:min(94vw,560px);grid-template-columns:1fr;grid-template-areas:"image" "copy";gap:20px;padding:22px;padding-top:76px}
  .detail-card .modal-close{top:18px;left:18px}
  .detail-card > img{width:min(280px,76vw);margin:auto}
  .detail-copy{padding-top:0}
}
@media(max-width:480px){
  .brand-mark{font-size:1.55rem}
  .brand-sub{font-size:.82rem}
  .hero-actions .button{width:100%}
  .feature-pills li{font-size:.92rem}
  .empty-copy h2{font-size:2rem}
  .section-heading h2{font-size:2rem}
  .about-copy h2{font-size:2.2rem}
  .modal-card{padding:20px}
  .month-grid{gap:10px}
}

/* v08: card-specific symbol strip */
.symbol-block, .detail-symbols {
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(157, 15, 21, 0.055);
  border: 1px solid rgba(157, 15, 21, 0.12);
}
.symbol-block h3, .detail-symbols h3 { margin: 0 0 6px; font-size: .92rem; color: var(--red); }
.symbol-block p, .detail-symbols p { margin: 0; font-weight: 650; letter-spacing: .01em; }


.button.is-disabled{opacity:.56;pointer-events:none;filter:grayscale(.1)}
.guidebook-note[hidden]{display:none!important}

.draw-disclaimer{max-width:680px;margin:12px 0 0;font-size:.84rem;line-height:1.65;color:var(--muted);opacity:.92}

.bonus-section{margin-top:30px;padding-top:26px;border-top:1px solid rgba(154,111,51,.18)}
.bonus-heading h3{font-family:Georgia,"Noto Serif KR",serif;font-size:2rem;margin:0 0 8px}
.bonus-heading p:last-child{color:var(--muted);line-height:1.7;margin:0 0 18px}
.bonus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
.bonus-tile{border:1px solid rgba(154,111,51,.2);background:#fff;border-radius:22px;overflow:hidden;padding:0;cursor:pointer;box-shadow:var(--shadow-soft);text-align:left;transition:transform .18s ease,box-shadow .18s ease;min-width:0;width:100%;display:flex;flex-direction:column}
.bonus-tile:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(34,17,12,.12)}
.bonus-tile img{display:block;width:100%;height:220px;object-fit:contain;object-position:50% 50%;background:#f8f4ec;padding:10px;border-bottom:1px solid rgba(154,111,51,.12);margin:0 auto;flex:0 0 220px}
.bonus-tile strong{display:block;padding:14px;font-size:1.05rem;line-height:1.35;overflow-wrap:anywhere;word-break:normal}
.bonus-modal{position:fixed;inset:0;display:none;z-index:40}
.bonus-modal.open{display:block}
.bonus-modal-card{position:relative;z-index:1;width:min(920px,calc(100% - 28px));max-height:calc(100vh - 28px);overflow:auto;margin:14px auto;background:var(--paper);border-radius:26px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.34);display:grid;grid-template-columns:minmax(260px,42%) 1fr;gap:28px;align-items:start;text-align:left}
.bonus-modal-card .modal-close{position:absolute;top:16px;right:16px;float:none}
.bonus-modal-card img{width:100%;max-height:76vh;object-fit:contain;margin:0;border-radius:16px;background:#fff}
.bonus-modal-copy{padding-top:38px}
.bonus-modal-card h2{font-family:Georgia,"Noto Serif KR",serif;font-size:2rem;margin:0 0 20px;line-height:1.15}
.bonus-modal-card h3{margin:0 0 10px;color:var(--gold);font-size:.96rem}
.bonus-modal-card p{margin:0;color:var(--ink-soft);font-size:1.03rem;line-height:1.82}
@media(max-width:900px){.bonus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bonus-tile img{height:220px}}
@media(max-width:720px){.bonus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bonus-tile img{height:170px}.bonus-modal-card{width:min(94vw,560px);grid-template-columns:1fr;gap:18px;padding:22px}.bonus-modal-card img{width:min(300px,78vw);margin:24px auto 0}.bonus-modal-copy{padding-top:0}.bonus-modal-card h2{font-size:1.7rem}}
