:root {
  --paper:#f7f3ec; --paper2:#ede7db; --ink:#1c1710; --ink2:#3d3428;
  --muted:#8c7d6a; --faint:#c4b49a; --gold:#b8924a; --gold2:#e8d4a8;
  --line:#ddd4c0; --white:#fff;
  --wood:#3a6b10; --fire:#9b1b20; --earth:#7a5c10;
  --metal:#2d5070; --water:#1a2e5a;
  --wood-bg:#f0f8e8; --fire-bg:#fdf0ee; --earth-bg:#fdf8e8;
  --metal-bg:#eaf2f8; --water-bg:#eaeef8;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{background:var(--paper);color:var(--ink);font-family:'Gowun Batang',serif;min-height:100vh;overflow-x:hidden;}

/* 노이즈 텍스처 */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");pointer-events:none;z-index:0;}

/* ── 글로벌 랩 ── */
.wrap{position:relative;z-index:1;max-width:480px;margin:0 auto;padding:0 20px 100px;}

/* ── 히어로 (첫 화면) ── */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;position:relative;overflow:hidden;}
.hero-deco{display:flex;align-items:center;gap:8px;margin-bottom:32px;opacity:.45;}
.hero-deco-line{height:1px;width:28px;background:linear-gradient(90deg,transparent,var(--faint));}
.hero-deco-line:last-child{background:linear-gradient(90deg,var(--faint),transparent);}
.hero-deco-dot{width:3px;height:3px;border-radius:50%;background:var(--gold);}
.hero-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:9px;letter-spacing:.5em;color:var(--faint);text-transform:uppercase;margin-bottom:20px;}
.hero-title{font-size:38px;font-weight:300;letter-spacing:.25em;line-height:1;margin-bottom:40px;color:var(--ink);}
.hero-poem{font-size:13px;font-weight:300;color:var(--muted);letter-spacing:.06em;line-height:2.8;margin-bottom:44px;}
.hero-poem em{font-style:normal;color:var(--ink2);}
.hero-cta{display:inline-block;padding:14px 40px;border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.25em;color:var(--muted);background:none;cursor:pointer;transition:all .4s;margin-bottom:14px;}
.hero-cta:hover{border-color:var(--gold);color:var(--ink);letter-spacing:.35em;}
.hero-scroll{font-size:9px;letter-spacing:.15em;color:var(--faint);animation:breathe 2.5s ease-in-out infinite;}
.hero-seed{position:absolute;opacity:.035;pointer-events:none;font-size:0;}
.hero-seed svg{width:100%;height:100%;}
.hero-seed:nth-child(1){top:10%;left:6%;width:80px;height:80px;transform:rotate(-20deg);}
.hero-seed:nth-child(2){top:22%;right:4%;width:50px;height:50px;transform:rotate(25deg);}
.hero-seed:nth-child(3){bottom:15%;left:10%;width:60px;height:60px;transform:rotate(8deg);}

/* ── 헤더 (히어로 아래) ── */
.site-header{padding:48px 0 36px;text-align:center;}
.hd-deco{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;}
.hd-line{height:1px;width:28px;background:linear-gradient(90deg,transparent,var(--faint));}
.hd-line:last-child{background:linear-gradient(90deg,var(--faint),transparent);}
.hd-dot{width:3px;height:3px;border-radius:50%;background:var(--gold);}
.site-en{display:block;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:9px;letter-spacing:.4em;color:var(--faint);text-transform:uppercase;margin-bottom:10px;}
.site-title{font-size:28px;font-weight:300;letter-spacing:.18em;line-height:1;margin-bottom:12px;}
.site-sub{font-size:12px;font-weight:300;color:var(--muted);letter-spacing:.05em;line-height:2;}
.site-sub em{font-style:normal;color:var(--gold);font-size:13px;}
.site-sub small{display:block;font-size:10px;color:var(--faint);letter-spacing:.05em;margin-top:2px;}

/* ── 탭 메뉴 ── */
.tab-nav{display:flex;border-bottom:1.5px solid var(--line);margin:28px 0 0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.tab-nav::-webkit-scrollbar{display:none;}
.tab-btn{flex-shrink:0;padding:11px 16px;background:none;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.15em;color:var(--muted);cursor:pointer;transition:all .2s;white-space:nowrap;}
.tab-btn.active{color:var(--ink);border-bottom-color:var(--gold);}
.tab-btn:hover:not(.active){color:var(--ink2);}

/* ── 탭 패널 ── */
.tab-panel{display:none;padding-top:28px;animation:fadeUp .5s ease both;}
.tab-panel.active{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── 공통 섹션 헤더 ── */
.sec-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.sec-label{font-size:9px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;white-space:nowrap;}
.sec-line{flex:1;height:1px;background:var(--line);}

/* ── 입력 카드 ── */
.form-card{background:var(--white);border:1px solid var(--line);padding:24px 20px 20px;position:relative;box-shadow:0 2px 12px rgba(0,0,0,.04);}
.form-card::before{content:'生年月日時';position:absolute;top:-9px;left:16px;background:var(--white);padding:0 6px;font-size:9px;letter-spacing:.18em;color:var(--muted);}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.field label{display:block;font-size:9px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-bottom:5px;}
input,select{width:100%;background:var(--paper);border:none;border-bottom:1.5px solid var(--line);color:var(--ink);font-family:'Gowun Batang',serif;font-size:14px;padding:8px 2px;outline:none;transition:border-color .2s;-webkit-appearance:none;appearance:none;border-radius:0;}
input:focus,select:focus{border-bottom-color:var(--gold);}
input::placeholder{color:var(--faint);font-size:12px;}
.sel-wrap{position:relative;}
.sel-wrap::after{content:'↓';position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:10px;pointer-events:none;}
.foot-note{text-align:center;font-size:9px;letter-spacing:.12em;color:var(--faint);margin:10px 0 20px;}
.g-row{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:16px;border:1px solid var(--line);}
.g-btn{background:var(--paper);border:none;color:var(--muted);font-family:'Gowun Batang',serif;font-size:12px;padding:10px;cursor:pointer;letter-spacing:.15em;transition:all .2s;}
.g-btn:first-child{border-right:1px solid var(--line);}
.g-btn.on{background:var(--ink);color:var(--paper);}
.btn-main{width:100%;background:var(--ink);color:var(--paper);border:none;padding:15px;font-family:'Gowun Batang',serif;font-size:12px;letter-spacing:.35em;cursor:pointer;transition:all .2s;}
.btn-main:hover{background:#2e2416;letter-spacing:.45em;}
.err{font-size:11px;color:#c0392b;text-align:center;padding:8px;display:none;}

/* ── 로딩 ── */
.loading{display:none;text-align:center;padding:60px 0;}
.ink-drop{width:2px;height:0;background:linear-gradient(to bottom,var(--gold),transparent);margin:0 auto 18px;animation:inkfall 1.4s ease-in-out infinite;}
@keyframes inkfall{0%{height:0;opacity:0}50%{height:44px;opacity:1}100%{height:60px;opacity:0}}
.load-txt{font-size:10px;letter-spacing:.3em;color:var(--muted);animation:breathe 2s ease-in-out infinite;}
@keyframes breathe{0%,100%{opacity:.25}50%{opacity:1}}

/* ── 결과 ── */
.result{display:none;}
@keyframes riseUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* 사주 바 */
.saju-bar{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);animation:riseUp .7s .08s ease both;}
.saju-col{padding:14px 8px 12px;text-align:center;border-right:1px solid var(--line);}
.saju-col:last-child{border-right:none;}
.saju-col.me{background:var(--ink);}
.saju-col.me .s-lbl,.saju-col.me .s-e{color:rgba(255,255,255,.45);}
.saju-col.me .s-cg,.saju-col.me .s-jj{color:var(--white);}
.s-lbl{display:block;font-size:8.5px;letter-spacing:.2em;color:var(--muted);margin-bottom:6px;}
.s-chars{display:flex;flex-direction:column;gap:2px;}
.s-cg,.s-jj{font-size:22px;font-weight:300;letter-spacing:.05em;line-height:1.1;}
.s-e{font-size:9px;color:var(--muted);margin-top:5px;letter-spacing:.1em;}

/* 일주 태그 */
.ilju-tag{text-align:center;padding:10px;font-size:10px;letter-spacing:.18em;color:var(--muted);border:1px solid var(--line);border-top:none;margin-bottom:24px;background:var(--white);animation:riseUp .7s .12s ease both;}

/* 꽃 카드 */
.fl-card{margin-bottom:0;animation:riseUp .8s .2s ease both;border-radius:0;}
.fl-stage{height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.fl-bg-blur{position:absolute;inset:-20px;background:inherit;filter:blur(0px);opacity:.15;transform:scale(1.1);}
.fl-glyph{font-size:108px;animation:floatFlower 7s ease-in-out infinite;filter:drop-shadow(0 10px 28px rgba(0,0,0,.35));position:relative;z-index:2;}
@keyframes floatFlower{
  0%,100%{transform:translateY(0) rotate(-2deg) scale(1);}
  33%{transform:translateY(-10px) rotate(1deg) scale(1.03);}
  66%{transform:translateY(-5px) rotate(-1deg) scale(1.01);}
}
.fl-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 40%,transparent 65%);}
.fl-label{position:absolute;bottom:16px;left:18px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;color:rgba(255,255,255,.92);letter-spacing:.06em;z-index:3;}
.fl-pantone-badge{position:absolute;top:14px;right:14px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.fl-pantone-code{font-size:7.5px;letter-spacing:.22em;color:rgba(255,255,255,.55);text-transform:uppercase;}
.fl-pantone-name{font-size:10px;letter-spacing:.08em;color:rgba(255,255,255,.8);}
.fl-hex-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);margin-top:4px;align-self:flex-end;}
.ptn-strip{display:flex;border:1px solid var(--line);border-top:none;background:var(--white);}
.ptn-swatch{width:48px;height:48px;flex-shrink:0;}
.ptn-info{flex:1;padding:7px 14px;display:flex;flex-direction:column;justify-content:center;}
.ptn-code{font-size:8px;letter-spacing:.22em;color:var(--muted);}
.ptn-name{font-size:12px;letter-spacing:.05em;color:var(--ink);}
.ptn-hex{font-size:10px;color:var(--faint);padding:7px 14px;display:flex;align-items:center;font-family:'Cormorant Garamond',serif;letter-spacing:.08em;}

/* 오행 배지 */
.oh-row{display:flex;gap:6px;justify-content:center;padding:16px 0 2px;flex-wrap:wrap;animation:riseUp .8s .25s ease both;}
.oh-tag{padding:4px 12px;font-size:10px;border:1px solid;letter-spacing:.08em;}
.oh-wood{border-color:var(--wood);color:var(--wood);background:var(--wood-bg);}
.oh-fire{border-color:var(--fire);color:var(--fire);background:var(--fire-bg);}
.oh-earth{border-color:var(--earth);color:var(--earth);background:var(--earth-bg);}
.oh-metal{border-color:var(--metal);color:var(--metal);background:var(--metal-bg);}
.oh-water{border-color:var(--water);color:var(--water);background:var(--water-bg);}
.oh-note{text-align:center;font-size:9px;color:var(--faint);letter-spacing:.06em;margin-bottom:20px;animation:riseUp .8s .28s ease both;}

/* 인포 카드 */
.info-card{background:var(--white);border:1px solid var(--line);padding:20px;margin-bottom:8px;}
.info-card.d1{animation:riseUp .8s .3s ease both;}
.info-card.d2{animation:riseUp .8s .38s ease both;}
.info-card.d3{animation:riseUp .8s .44s ease both;}
/* 일주 심층 섹션 */
.ilju-detail{margin-top:4px;}
.ilju-tab-row{display:flex;border-bottom:1.5px solid var(--line);margin-bottom:0;overflow-x:auto;scrollbar-width:none;}
.ilju-tab-row::-webkit-scrollbar{display:none;}
.ilju-tab{flex-shrink:0;padding:9px 14px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.15em;color:var(--muted);cursor:pointer;transition:all .2s;}
.ilju-tab.on{color:var(--ink);border-bottom-color:var(--gold);}
.ilju-pane{display:none;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-top:none;}
.ilju-pane.on{display:block;}
.ilju-essence{font-size:13px;line-height:2.1;color:var(--muted);font-weight:300;margin-bottom:14px;}
.ilju-section-title{font-size:9px;letter-spacing:.25em;color:var(--faint);text-transform:uppercase;margin-bottom:8px;}
.ilju-strength-list{display:flex;flex-direction:column;gap:4px;}
.ilju-strength-item{font-size:12px;font-weight:300;padding:7px 10px;background:var(--paper);border-left:2px solid var(--gold);color:var(--ink2);}
.ilju-text{font-size:13px;line-height:2;color:var(--muted);font-weight:300;}
.ilju-tip{margin-top:12px;padding:12px 16px;background:var(--paper2);border:1px solid var(--line);font-size:12px;line-height:1.9;color:var(--ink2);font-weight:300;}
.ilju-tip::before{content:'✦ 홀씨 팁  ';color:var(--gold);letter-spacing:.1em;}
.card-title{font-size:8.5px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;margin-bottom:12px;}
.fl-name-ko{font-size:22px;font-weight:300;letter-spacing:.1em;margin-bottom:3px;}
.fl-name-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--muted);margin-bottom:12px;}
.fl-desc{font-size:13px;line-height:2.1;color:var(--ink2);}
.traits-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.trait{padding:9px 12px;border:1px solid var(--line);font-size:12px;letter-spacing:.06em;color:var(--ink2);}
.trait::before{content:'— ';color:var(--faint);}
.well-list{display:flex;flex-direction:column;gap:8px;}
.well-item{display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--ink2);}
.well-n{font-family:'Cormorant Garamond',serif;font-size:10px;color:var(--faint);flex-shrink:0;}

/* 인용 + 인장 */
.quote-sec{padding:32px 0;text-align:center;animation:riseUp .8s .5s ease both;}
.q-mark{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--gold2);line-height:.5;display:block;margin-bottom:8px;}
.q-body{font-size:14px;line-height:2.2;color:var(--ink2);font-style:italic;}
.q-sub{display:block;font-size:9px;letter-spacing:.25em;color:var(--faint);margin-top:10px;}
.seal{text-align:center;padding:20px 0 0;border-top:1px solid var(--line);animation:riseUp .8s .55s ease both;}
.seal-ko{font-size:10px;letter-spacing:.2em;color:var(--muted);margin-bottom:4px;}
.seal-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11px;color:var(--line);}

/* ── 달력 탭 ── */
.cal-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.cal-nav-btn{background:none;border:1px solid var(--line);width:32px;height:32px;cursor:pointer;color:var(--muted);font-size:14px;transition:all .2s;}
.cal-nav-btn:hover{border-color:var(--gold);color:var(--gold);}
.cal-title{font-size:14px;letter-spacing:.1em;color:var(--ink);}
.cal-title span{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11px;color:var(--muted);margin-left:8px;}

/* 달력 그리드 */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:20px;}
.cal-dow{text-align:center;font-size:9px;letter-spacing:.1em;color:var(--muted);padding:6px 0;}
.cal-dow:first-child{color:var(--fire);}
.cal-dow:last-child{color:var(--metal);}
.cal-day{padding:6px 4px 8px;background:var(--white);border:1px solid var(--line);cursor:pointer;transition:all .15s;min-height:64px;position:relative;}
.cal-day:hover{border-color:var(--gold);z-index:1;}
.cal-day.empty{background:transparent;border-color:transparent;cursor:default;}
.cal-day.today{border-color:var(--gold);background:linear-gradient(135deg,var(--white) 0%,#fdf8ef 100%);}
.cal-day.selected{background:var(--ink);border-color:var(--ink);}
.cal-day.selected .day-num,.cal-day.selected .day-gj,.cal-day.selected .day-emoji{color:var(--white) !important;}
.cal-day.selected .day-oh{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.7);}
.day-num{font-size:13px;font-weight:300;display:block;margin-bottom:2px;}
.cal-day:first-child .day-num,.sun .day-num{color:var(--fire);}
.sat .day-num{color:var(--metal);}
.day-gj{font-size:9px;letter-spacing:.02em;color:var(--muted);display:block;margin-bottom:3px;}
.day-emoji{font-size:14px;display:block;margin-bottom:2px;}
.day-oh{display:inline-block;font-size:8px;padding:1px 5px;border:1px solid;letter-spacing:.05em;}

/* 날짜 상세 패널 */
.day-detail{background:var(--white);border:1px solid var(--line);padding:20px;margin-bottom:16px;display:none;animation:riseUp .4s ease both;}
.day-detail.show{display:block;}
.dd-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.dd-emoji{font-size:32px;}
.dd-date{flex:1;}
.dd-date-main{font-size:13px;letter-spacing:.05em;}
.dd-gj{font-size:10px;color:var(--muted);letter-spacing:.1em;margin-top:2px;}
.dd-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px;}
.dd-pillar{text-align:center;padding:10px 6px;border:1px solid var(--line);}
.dd-p-label{font-size:8px;letter-spacing:.15em;color:var(--muted);display:block;margin-bottom:6px;}
.dd-p-cg{font-size:18px;font-weight:300;display:block;line-height:1;}
.dd-p-jj{font-size:18px;font-weight:300;display:block;line-height:1;margin-top:2px;}
.dd-p-e{font-size:9px;color:var(--muted);margin-top:4px;display:block;}
.dd-oh-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;}
.dd-desc{font-size:12px;line-height:2;color:var(--ink2);}

/* 년운·월운 섹션 */
.yun-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px;}
.yun-item{padding:14px;border:1px solid var(--line);background:var(--white);}
.yun-label{font-size:8.5px;letter-spacing:.2em;color:var(--muted);display:block;margin-bottom:8px;}
.yun-gj{font-size:20px;font-weight:300;letter-spacing:.1em;display:block;margin-bottom:4px;}
.yun-desc{font-size:11px;line-height:1.8;color:var(--ink2);}

/* 월운 바 */
.month-bar{display:flex;overflow-x:auto;gap:4px;padding-bottom:8px;scrollbar-width:none;margin-bottom:16px;}
.month-bar::-webkit-scrollbar{display:none;}
.month-chip{flex-shrink:0;padding:8px 10px;border:1px solid var(--line);background:var(--white);cursor:pointer;text-align:center;transition:all .15s;min-width:52px;}
.month-chip.active{background:var(--ink);border-color:var(--ink);}
.month-chip.active .mc-num,.month-chip.active .mc-gj{color:var(--white);}
.mc-num{display:block;font-size:10px;color:var(--muted);margin-bottom:3px;}
.mc-gj{display:block;font-size:11px;letter-spacing:.05em;color:var(--ink);}

/* ── 저널링 탭 ── */
.j-sec-title{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;margin-bottom:14px;}
.j-sec-title::after{content:'';flex:1;height:1px;background:var(--line);}
.q-type-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-bottom:16px;overflow:hidden;}
.q-type-btn{padding:9px 4px;background:transparent;border:none;border-right:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.08em;color:var(--muted);cursor:pointer;transition:all .15s;}
.q-type-btn:last-child{border-right:none;}
.q-type-btn.active{background:var(--ink);color:var(--paper);}
.q-num{font-size:9px;letter-spacing:.2em;color:var(--faint);display:block;margin-bottom:6px;}
.q-prompt{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;line-height:1.7;color:var(--ink2);margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line);min-height:54px;transition:opacity .3s;}
.j-textarea{width:100%;min-height:160px;background:transparent;border:none;border-bottom:1.5px solid var(--line);padding:10px 0;font-family:'Gowun Batang',serif;font-size:13px;line-height:2.1;color:var(--ink);outline:none;resize:none;transition:border-color .2s;}
.j-textarea:focus{border-bottom-color:var(--gold);}
.j-textarea::placeholder{color:var(--faint);}
.j-char{text-align:right;margin-top:4px;font-size:9px;color:var(--faint);}
.holssi-btn{position:relative;overflow:visible;background:transparent;border:1px solid var(--line);padding:7px 14px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;color:var(--muted);cursor:pointer;transition:all .15s;}
.holssi-btn:hover{border-color:var(--gold);color:var(--gold);}
.holssi-particle{position:absolute;pointer-events:none;z-index:999;font-size:12px;animation:holssi-fly 1.3s ease-out forwards;}
@keyframes holssi-fly{0%{opacity:1;transform:translate(0,0) scale(1.2) rotate(0deg)}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.2) rotate(var(--rot))}}
.j-save-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;}
.j-save-btn{background:var(--gold);border:none;color:var(--white);padding:14px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.2em;cursor:pointer;transition:opacity .2s;}
.j-save-btn:hover{opacity:.88;}
.j-clear-btn{padding:14px 16px;background:transparent;border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;color:var(--muted);cursor:pointer;}
.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;}
.insight-item{padding:14px;border:1px solid var(--line);background:var(--paper);}
.insight-icon{font-size:16px;margin-bottom:5px;}
.insight-label{font-size:8.5px;letter-spacing:.18em;color:var(--muted);margin-bottom:5px;}
.insight-val{font-size:11px;line-height:1.85;color:var(--ink2);}
.j-insight-note{font-size:9px;letter-spacing:.08em;color:var(--muted);margin:-6px 0 12px;}
.j-insight-note strong{color:var(--gold);font-weight:400;}
.j-rec-item{border:1px solid var(--line);margin-bottom:6px;cursor:pointer;background:var(--white);transition:border-color .15s;}
.j-rec-item:hover{border-color:var(--gold);}
.j-rec-head{padding:11px 14px;display:flex;align-items:center;gap:10px;}
.j-rec-body{display:none;padding:12px 14px;border-top:1px solid var(--line);background:var(--paper);font-size:12px;line-height:2;color:var(--ink2);}
/* ── 일주 상세 카드 (통합 개선) ── */
.ilju-hero{margin-bottom:6px;padding:20px;background:var(--ink);animation:riseUp .8s .45s ease both;position:relative;overflow:hidden;}
.ilju-hero::before{content:'';position:absolute;top:-40px;right:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.03);pointer-events:none;}
.ilju-animal{font-size:32px;margin-bottom:10px;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));}
.ilju-hero-name{font-size:22px;font-weight:300;letter-spacing:.15em;color:var(--white);margin-bottom:4px;}
.ilju-hero-sub{font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.4);}
.ilju-keyword-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px;}
.ilju-kw{padding:4px 10px;border:1px solid rgba(255,255,255,.2);font-size:9px;letter-spacing:.1em;color:rgba(255,255,255,.65);}
.ilju-kw.ganyo{border-color:var(--gold);color:var(--gold);}
.ilju-essence-card{background:var(--white);border:1px solid var(--line);border-top:none;padding:20px;animation:riseUp .8s .5s ease both;margin-bottom:8px;}
.ilju-essence-txt{font-size:13px;line-height:2.2;color:var(--ink2);font-weight:300;}
.ilju-detail2{margin-top:0;animation:riseUp .8s .55s ease both;}
.ilju-tab-row2{display:flex;border-bottom:1.5px solid var(--line);overflow-x:auto;scrollbar-width:none;background:var(--white);border:1px solid var(--line);border-bottom:none;}
.ilju-tab-row2::-webkit-scrollbar{display:none;}
.ilju-tab2{flex-shrink:0;padding:11px 14px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.12em;color:var(--muted);cursor:pointer;transition:all .2s;}
.ilju-tab2.on{color:var(--ink);border-bottom-color:var(--gold);}
.ilju-pane2{display:none;background:var(--white);border:1px solid var(--line);border-top:none;}
.ilju-pane2.on{display:block;}
.ilju-pane2-inner{padding:18px 20px;}
.ilju-section-block{margin-bottom:20px;}
.ilju-section-block:last-child{margin-bottom:0;}
.ilju-block-title{font-size:9px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.ilju-block-title::after{content:'';flex:1;height:1px;background:var(--line);}
.ilju-block-text{font-size:13px;line-height:2.1;color:var(--muted);font-weight:300;}
.ilju-detail-list{display:flex;flex-direction:column;gap:5px;}
.ilju-detail-item{font-size:12px;font-weight:300;padding:8px 12px;background:var(--paper);border-left:2px solid var(--gold);color:var(--ink2);line-height:1.7;}
.ilju-tag-list{display:flex;flex-wrap:wrap;gap:6px;}
.ilju-job-tag{padding:6px 12px;border:1px solid var(--line);font-size:11px;letter-spacing:.04em;color:var(--ink2);background:var(--paper);}
.ilju-health-item{display:flex;align-items:baseline;gap:8px;font-size:12px;color:var(--ink2);padding:6px 0;border-bottom:1px dotted var(--line);}
.ilju-health-item:last-child{border-bottom:none;}
.ilju-health-item::before{content:'♡';color:var(--fire);font-size:10px;flex-shrink:0;}
/* 꽃 파티클 */
.fl-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1;}
.fl-particle{position:absolute;font-size:12px;opacity:0;animation:particleDrift var(--dur,9s) var(--delay,0s) ease-in-out infinite;}
@keyframes particleDrift{
  0%{opacity:0;transform:translateY(0) rotate(0deg) scale(0.8);}
  15%{opacity:.5;}
  70%{opacity:.25;}
  100%{opacity:0;transform:translateY(-220px) rotate(540deg) scale(0.3);}
}
/* 꽃 정보 카드 */
.fl-card2-info{background:var(--white);border:1px solid var(--line);border-top:none;padding:22px 20px 18px;margin-bottom:8px;animation:riseUp .8s .25s ease both;position:relative;}
.fl-ohaeng-bar{display:flex;gap:5px;margin-bottom:16px;flex-wrap:wrap;}
.fl-title-ko{font-size:26px;font-weight:300;letter-spacing:.12em;margin-bottom:3px;color:var(--ink);}
.fl-title-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:var(--muted);margin-bottom:16px;letter-spacing:.04em;}
.fl-traits-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px;}
.fl-trait-tag{padding:5px 12px;background:var(--paper);border:1px solid var(--line);font-size:10px;letter-spacing:.08em;color:var(--ink2);}
.fl-trait-tag::before{content:'— ';color:var(--faint);}
.fl-desc2{font-size:13px;line-height:2.2;color:var(--ink2);font-weight:300;}
.fl-quote{margin-top:16px;padding:14px 18px;border-left:2px solid var(--gold);background:linear-gradient(to right,rgba(184,146,74,.06),transparent);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15.5px;color:var(--ink2);line-height:1.85;}
.fl-wellness{margin-top:0;background:var(--white);border:1px solid var(--line);border-top:none;padding:18px 20px 16px;margin-bottom:8px;animation:riseUp .8s .32s ease both;}
.fl-wellness-title{font-size:8.5px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;margin-bottom:12px;}

.j-rec-q{font-size:9px;color:var(--muted);margin-bottom:6px;}

/* ── 토스트 ── */
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 20px;font-size:11px;letter-spacing:.1em;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;}
.toast.show{opacity:1;}

/* ── 근거 태그 ── */
.basis-tag{display:inline-block;background:var(--paper2);border:1px solid var(--line);padding:2px 8px;font-size:10px;color:var(--ink2);margin:2px 0;letter-spacing:.04em;}
.basis-note{font-size:9.5px;color:var(--gold);letter-spacing:.04em;display:block;margin:3px 0 5px;background:rgba(184,146,74,.08);padding:3px 8px;border-left:2px solid var(--gold);}
.pillar-ment{font-size:11.5px;line-height:2;color:var(--ink2);}
.pillar-ment b{color:var(--ink);font-weight:600;}
.ment-divider{height:1px;background:var(--line);margin:10px 0;}

/* ── 하늘지도 탭 ── */
.sky-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--white);border:1px solid var(--line);}
.sky-table th{background:var(--paper);font-size:9px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);}
.sky-table td{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--ink2);font-size:11.5px;}
.sky-table tr:last-child td{border-bottom:none;}
.sky-sum-card{background:var(--white);border:1px solid var(--line);padding:14px;text-align:center;}
.sky-sum-icon{font-size:20px;margin-bottom:4px;}
.sky-sum-label{font-size:9px;letter-spacing:.18em;color:var(--muted);margin-bottom:4px;}
.sky-sum-sign{font-size:14px;font-weight:300;letter-spacing:.08em;margin-bottom:2px;}
.sky-sum-kw{font-size:9px;color:var(--faint);letter-spacing:.04em;}
.sky-interp-card{background:var(--white);border:1px solid var(--line);margin-bottom:6px;animation:riseUp .5s ease both;}
.sky-ic-head{padding:14px 18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s;}
.sky-ic-head:hover{background:rgba(0,0,0,.015);}
.sky-ic-arrow{font-size:10px;color:var(--faint);transition:transform .3s;flex-shrink:0;margin-left:8px;}
.sky-interp-card.open .sky-ic-arrow{transform:rotate(180deg);}
.sky-ic-body{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s ease;padding:0 18px;}
.sky-interp-card.open .sky-ic-body{max-height:2000px;padding:0 18px 16px;}
.sky-ic-title{font-size:12px;font-weight:400;letter-spacing:.06em;color:var(--ink);}
.sky-ic-title span{font-size:10px;color:var(--gold);margin-left:6px;}
.sky-ic-text{font-size:12px;line-height:2.1;color:var(--muted);font-weight:300;}
.sky-tone-bar{display:flex;justify-content:center;gap:8px;margin:16px 0 12px;}
.sky-tone-btn{padding:6px 16px;border:1px solid var(--line);background:none;font-family:'Gowun Batang',serif;font-size:10.5px;letter-spacing:.1em;color:var(--muted);cursor:pointer;border-radius:20px;transition:all .2s;}
.sky-tone-btn.active{background:var(--ink);color:var(--white);border-color:var(--ink);}
.sky-tone-btn:hover:not(.active){border-color:var(--gold);color:var(--ink2);}
.sky-asp-item{padding:10px 14px;border:1px solid var(--line);margin-bottom:4px;background:var(--white);}
.sky-asp-head{font-size:11.5px;letter-spacing:.04em;margin-bottom:4px;}
.sky-asp-meaning{font-size:10.5px;color:var(--muted);line-height:1.8;}
#sky-chart-container svg{max-width:100%;height:auto;}

/* ── 하늘지도 액션 버튼 ── */
.sky-actions{display:flex;gap:6px;margin:20px 0;flex-wrap:wrap;}
.sky-act-btn{flex:1;min-width:0;background:var(--white);border:1px solid var(--line);padding:12px 6px;text-align:center;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;color:var(--muted);cursor:pointer;transition:all .25s;}
.sky-act-btn:hover{border-color:var(--gold);color:var(--ink);}
.sky-act-btn .sky-act-icon{font-size:18px;display:block;margin-bottom:4px;}

/* ── 인스타 카드 (숨김, 캡처용) ── */
.insta-card-wrap{position:fixed;left:-9999px;top:0;z-index:-1;}
.insta-card{width:1080px;height:1080px;background:linear-gradient(135deg,#f7f3ec 0%,#ede7db 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Gowun Batang',serif;position:relative;overflow:hidden;}
.insta-card::before{content:'';position:absolute;inset:40px;border:1px solid rgba(184,146,74,0.25);pointer-events:none;}
.insta-card .ic-top{font-size:22px;letter-spacing:.5em;color:rgba(140,125,106,0.5);margin-bottom:50px;text-transform:uppercase;}
.insta-card .ic-title{font-size:62px;font-weight:300;letter-spacing:.3em;color:#1c1710;margin-bottom:18px;}
.insta-card .ic-date{font-size:24px;color:#8c7d6a;letter-spacing:.2em;margin-bottom:60px;}
.insta-card .ic-signs{display:flex;gap:60px;margin-bottom:70px;}
.insta-card .ic-sign{text-align:center;}
.insta-card .ic-sign-sym{font-size:52px;margin-bottom:8px;display:block;}
.insta-card .ic-sign-name{font-size:22px;color:#1c1710;letter-spacing:.12em;display:block;}
.insta-card .ic-sign-label{font-size:16px;color:#b8924a;letter-spacing:.2em;display:block;margin-top:4px;}
.insta-card .ic-palette{display:flex;gap:12px;margin-bottom:50px;}
.insta-card .ic-pal-dot{width:32px;height:32px;border-radius:50%;}
.insta-card .ic-footer{font-size:18px;letter-spacing:.3em;color:#c4b49a;}

/* ── 별꽃 캐릭터 ── */
.starflower-card{background:var(--white);border:1px solid var(--line);padding:24px 20px;margin-top:16px;animation:riseUp .5s ease both;text-align:center;}
.sf-avatar{width:120px;height:120px;border-radius:50%;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;font-size:48px;position:relative;overflow:hidden;}
.sf-avatar::before{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--sf-c1),var(--sf-c2),var(--sf-c3),var(--sf-c4),var(--sf-c1));opacity:.15;}
.sf-name{font-size:20px;font-weight:300;letter-spacing:.15em;margin-bottom:4px;color:var(--ink);}
.sf-archetype{font-size:11px;letter-spacing:.2em;color:var(--gold);margin-bottom:14px;}
.sf-desc{font-size:12px;line-height:2.1;color:var(--muted);font-weight:300;text-align:left;padding:0 8px;}
.sf-traits{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:14px;}
.sf-trait{font-size:9.5px;padding:3px 10px;border:1px solid var(--line);color:var(--muted);letter-spacing:.08em;}
.sf-palette{display:flex;gap:6px;justify-content:center;margin-top:14px;}
.sf-pal{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);}

/* ── 반응형 ── */
@media(max-width:400px){
  .saju-bar{font-size:.9em;}
  .cal-day{min-height:54px;}
  .dd-pillars{grid-template-columns:repeat(3,1fr);}
  .yun-grid{grid-template-columns:1fr;}
}

/* ═══════════════════════════════════════════════ */
/*  퍼스널 플라워 탭 (pf- prefix)                  */
/* ═══════════════════════════════════════════════ */
.pf-intro{text-align:center;padding:20px 0 32px;}
.pf-intro-emoji{font-size:56px;margin-bottom:18px;animation:breathe 3s ease-in-out infinite;}
.pf-intro h2{font-size:22px;font-weight:300;letter-spacing:.12em;margin-bottom:10px;}
.pf-intro h2 span{color:var(--gold);}
.pf-intro p{font-size:12px;color:var(--muted);line-height:2;margin-bottom:20px;}
.pf-intro-meta{display:flex;gap:12px;justify-content:center;margin-bottom:24px;}
.pf-intro-meta-item{text-align:center;background:var(--white);border:1px solid var(--line);padding:10px 16px;min-width:64px;}
.pf-intro-meta-item .num{font-size:18px;font-weight:300;color:var(--gold);letter-spacing:.08em;}
.pf-intro-meta-item .lbl{font-size:9px;color:var(--muted);letter-spacing:.12em;margin-top:2px;}
.pf-btn-start{width:100%;background:var(--ink);color:var(--paper);border:none;padding:15px;font-family:'Gowun Batang',serif;font-size:12px;letter-spacing:.35em;cursor:pointer;transition:all .2s;}
.pf-btn-start:hover{background:#2e2416;letter-spacing:.45em;}

.pf-screen{display:none;}
.pf-screen.active{display:block;}

.pf-progress{height:2px;background:var(--line);margin:0 0 6px;}
.pf-progress-fill{height:100%;background:var(--gold);transition:width .4s;width:0;}

.pf-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 0 8px;}
.pf-q-num{font-size:10px;letter-spacing:.15em;color:var(--muted);}
.pf-flower-hint{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:10px;color:var(--white);border-radius:3px;opacity:0;transition:opacity .3s;}
.pf-flower-hint.show{opacity:1;}

.pf-q-card{background:var(--white);border:1px solid var(--line);padding:24px 18px 20px;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .2s,box-shadow .2s;}
.pf-q-card.answered{box-shadow:0 2px 12px rgba(0,0,0,.04);}
.pf-q-text{font-size:13px;line-height:2;color:var(--ink);text-align:center;margin-bottom:20px;flex:1;display:flex;align-items:center;justify-content:center;letter-spacing:.03em;word-break:keep-all;overflow-wrap:break-word;padding:0 8px;}

.pf-q-options{display:flex;align-items:center;justify-content:center;gap:0;}
.pf-q-label{font-size:10px;font-weight:400;letter-spacing:.08em;flex-shrink:0;width:30px;}
.pf-q-label.yes{color:var(--pf-color,var(--gold));text-align:right;padding-right:6px;}
.pf-q-label.no{color:var(--faint);text-align:left;padding-left:6px;}
.pf-q-circles{display:flex;align-items:center;gap:6px;}

.pf-circle-btn{border:none;background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:transform .15s;}
.pf-circle-btn:active{transform:scale(.88);}
.pf-circle{border-radius:50%;border:1.5px solid var(--line);background:var(--white);display:flex;align-items:center;justify-content:center;transition:all .18s;}
.pf-circle-btn[data-v="6"] .pf-circle,.pf-circle-btn[data-v="1"] .pf-circle{width:40px;height:40px;}
.pf-circle-btn[data-v="5"] .pf-circle,.pf-circle-btn[data-v="2"] .pf-circle{width:34px;height:34px;}
.pf-circle-btn[data-v="4"] .pf-circle,.pf-circle-btn[data-v="3"] .pf-circle{width:28px;height:28px;}
.pf-circle-btn[data-v="6"].sel .pf-circle,.pf-circle-btn[data-v="5"].sel .pf-circle,.pf-circle-btn[data-v="4"].sel .pf-circle{background:var(--pf-color,var(--gold));border-color:var(--pf-color,var(--gold));}
.pf-circle-btn[data-v="3"].sel .pf-circle,.pf-circle-btn[data-v="2"].sel .pf-circle{background:var(--faint);border-color:var(--faint);}
.pf-circle-btn[data-v="1"].sel .pf-circle{background:var(--muted);border-color:var(--muted);}

.pf-q-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;}
.pf-btn-prev{background:none;border:1px solid var(--line);color:var(--muted);padding:10px 18px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.1em;cursor:pointer;transition:all .2s;}
.pf-btn-prev:hover{border-color:var(--ink);color:var(--ink);}
.pf-btn-prev:disabled{opacity:0;pointer-events:none;}
.pf-btn-next{background:var(--ink);color:var(--paper);border:none;padding:10px 22px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.15em;cursor:pointer;transition:all .2s;opacity:.35;pointer-events:none;}
.pf-btn-next.ready{opacity:1;pointer-events:auto;}
.pf-btn-next.ready:hover{letter-spacing:.25em;}

.pf-dots{display:flex;gap:4px;align-items:center;justify-content:center;padding:12px 0 0;flex-wrap:wrap;}
.pf-dot{width:6px;height:6px;border-radius:50%;background:var(--line);transition:all .2s;}
.pf-dot.done{background:var(--gold);transform:scale(1.1);}
.pf-dot.current{background:var(--gold);width:16px;border-radius:3px;}

/* 결과 화면 */
.pf-result{text-align:center;padding:20px 0;word-break:keep-all;overflow-wrap:break-word;}
.pf-result-emoji{font-size:56px;margin-bottom:12px;animation:breathe 3s ease-in-out infinite;}
.pf-result-sub{font-size:9px;letter-spacing:.3em;color:var(--muted);margin-bottom:6px;text-transform:uppercase;}
.pf-result-name{font-size:24px;font-weight:300;letter-spacing:.15em;margin-bottom:4px;}
.pf-result-en{font-size:11px;color:var(--faint);font-style:italic;margin-bottom:14px;font-family:'Cormorant Garamond',serif;}
.pf-result-badge{display:inline-block;padding:4px 14px;color:var(--white);font-size:10px;letter-spacing:.12em;margin-bottom:10px;}
.pf-result-keyword{font-size:14px;font-weight:300;letter-spacing:.1em;margin-bottom:4px;}
.pf-result-desc{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:20px;max-width:320px;margin-left:auto;margin-right:auto;}

.pf-result-tabs{display:flex;border-bottom:1.5px solid var(--line);margin-bottom:16px;}
.pf-result-tab{flex:1;padding:10px;background:none;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.12em;color:var(--muted);cursor:pointer;transition:all .2s;}
.pf-result-tab.active{color:var(--ink);border-bottom-color:var(--gold);}
.pf-result-panel{display:none;}
.pf-result-panel.active{display:block;}

.pf-bars{background:var(--white);border:1px solid var(--line);padding:16px;margin-bottom:16px;text-align:left;}
.pf-bars-title{font-size:9px;letter-spacing:.2em;color:var(--muted);margin-bottom:12px;text-transform:uppercase;}
.pf-score-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.pf-score-plant{font-size:11px;color:var(--ink2);width:64px;flex-shrink:0;}
.pf-score-track{flex:1;height:4px;background:var(--paper2);overflow:hidden;}
.pf-score-fill{height:100%;transition:width .8s cubic-bezier(.4,0,.2,1);width:0;}
.pf-score-num{font-size:11px;font-weight:300;width:18px;text-align:right;flex-shrink:0;}

.pf-guide-card{background:var(--white);border:1px solid var(--line);padding:20px 16px;margin-bottom:12px;text-align:left;word-break:keep-all;overflow-wrap:break-word;}
.pf-guide-card h4{font-size:11px;letter-spacing:.15em;color:var(--gold);margin-bottom:10px;text-align:center;}
.pf-guide-section{font-size:12px;line-height:2;color:var(--ink2);margin-bottom:12px;}
.pf-guide-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;justify-content:center;}
.pf-guide-tag{font-size:9.5px;padding:2px 8px;border:1px solid var(--line);color:var(--muted);letter-spacing:.06em;}
.pf-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.pf-guide-bloom{padding:6px 8px;font-size:11px;background:var(--paper);line-height:1.6;text-align:center;word-break:keep-all;}
.pf-guide-wilt{padding:6px 8px;font-size:11px;background:var(--paper2);line-height:1.6;text-align:center;color:var(--muted);word-break:keep-all;}

/* 유형 만나기 갤러리 */
.pf-type-card{background:var(--white);border:1px solid var(--line);padding:16px;margin-bottom:10px;text-align:left;word-break:keep-all;overflow-wrap:break-word;cursor:pointer;transition:all .2s;}
.pf-type-card:hover{border-color:var(--gold);box-shadow:0 2px 10px rgba(0,0,0,.05);}
.pf-type-card.expanded .pf-type-detail{display:block;}
.pf-type-head{display:flex;align-items:center;gap:12px;}
.pf-type-emoji{font-size:28px;flex-shrink:0;}
.pf-type-info{flex:1;min-width:0;}
.pf-type-name{font-size:13px;font-weight:400;letter-spacing:.08em;margin-bottom:2px;}
.pf-type-nick{font-size:10px;color:var(--muted);letter-spacing:.04em;}
.pf-type-arrow{font-size:10px;color:var(--faint);transition:transform .2s;flex-shrink:0;}
.pf-type-card.expanded .pf-type-arrow{transform:rotate(90deg);}
.pf-type-detail{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;line-height:2;color:var(--ink2);}
.pf-type-motto{font-size:11px;color:var(--gold);letter-spacing:.06em;margin-bottom:8px;font-style:italic;}
.pf-type-traits{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;}
.pf-type-trait{font-size:9px;padding:2px 7px;border:1px solid var(--line);color:var(--muted);letter-spacing:.04em;}
.pf-type-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px;}
.pf-type-bloom{padding:5px 8px;font-size:10px;background:var(--paper);line-height:1.7;word-break:keep-all;}
.pf-type-wilt{padding:5px 8px;font-size:10px;background:var(--paper2);line-height:1.7;color:var(--muted);word-break:keep-all;}
.pf-type-quote{font-size:10px;color:var(--gold);text-align:center;margin-top:8px;letter-spacing:.06em;font-style:italic;}

.pf-btn-restart{width:100%;background:none;border:1px solid var(--line);color:var(--muted);padding:13px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.2em;cursor:pointer;transition:all .2s;margin-top:16px;}
.pf-btn-restart:hover{border-color:var(--ink);color:var(--ink);}

.pf-save-note{font-size:10px;color:var(--faint);text-align:center;margin-top:10px;letter-spacing:.06em;}

/* ═══════════════════════════════════════════════ */
/*  홀씨밭 탭 (hb- prefix)                         */
/* ═══════════════════════════════════════════════ */
.hb-header{text-align:center;padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px;}
.hb-header h3{font-size:16px;font-weight:300;letter-spacing:.12em;margin-bottom:4px;}
.hb-header p{font-size:11px;color:var(--muted);line-height:1.9;letter-spacing:.04em;}

.hb-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;justify-content:center;}
.hb-filter-btn{padding:5px 12px;background:var(--paper);border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;color:var(--muted);cursor:pointer;transition:all .2s;}
.hb-filter-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.hb-filter-btn:hover:not(.active){color:var(--ink);border-color:var(--ink2);}

.hb-feed{display:flex;flex-direction:column;gap:12px;}
.hb-card{background:var(--white);border:1px solid var(--line);padding:16px;position:relative;transition:box-shadow .2s;}
.hb-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.04);}
.hb-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.hb-card-author{font-size:10px;letter-spacing:.1em;color:var(--gold);}
.hb-card-date{font-size:9px;color:var(--faint);}
.hb-card-body{font-size:12px;line-height:2;color:var(--ink2);letter-spacing:.03em;margin-bottom:10px;white-space:pre-line;}
.hb-card-q{font-size:10.5px;color:var(--muted);font-style:italic;margin-bottom:8px;padding:6px 10px;background:var(--paper);border-left:2px solid var(--gold);line-height:1.8;}
.hb-card-bottom{display:flex;align-items:center;gap:12px;}
.hb-wind-btn{background:none;border:1px solid var(--line);padding:4px 10px;font-size:10px;color:var(--muted);cursor:pointer;font-family:'Gowun Batang',serif;letter-spacing:.08em;transition:all .2s;display:flex;align-items:center;gap:4px;}
.hb-wind-btn:hover{border-color:var(--gold);color:var(--gold);}
.hb-wind-btn.blown{background:var(--gold);color:var(--white);border-color:var(--gold);}
.hb-wind-count{font-size:9px;color:var(--faint);}
.hb-tag{font-size:9px;padding:2px 6px;background:var(--paper);color:var(--muted);border:1px solid var(--line);letter-spacing:.06em;}

.hb-empty{text-align:center;padding:40px 0;color:var(--muted);}
.hb-empty-emoji{font-size:36px;margin-bottom:12px;opacity:.5;}
.hb-empty p{font-size:12px;line-height:2;letter-spacing:.04em;}

.hb-share-toggle{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:var(--paper);border:1px solid var(--line);}
.hb-share-toggle label{font-size:10px;color:var(--muted);letter-spacing:.06em;flex:1;}
.hb-toggle{position:relative;width:36px;height:20px;background:var(--line);border-radius:10px;cursor:pointer;transition:background .2s;border:none;padding:0;}
.hb-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--white);border-radius:50%;transition:transform .2s;}
.hb-toggle.on{background:var(--gold);}
.hb-toggle.on::after{transform:translateX(16px);}

/* 홀씨밭 감정 체크인 */
.hb-checkin{text-align:center;padding:20px 0 24px;border-bottom:1px solid var(--line);margin-bottom:20px;}
.hb-checkin-q{font-size:13px;color:var(--ink);letter-spacing:.06em;line-height:2;margin-bottom:16px;}
.hb-checkin-q em{font-style:normal;color:var(--gold);}
.hb-weather-row{display:flex;justify-content:center;gap:4px;margin-bottom:10px;}
.hb-weather-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;background:none;border:1.5px solid var(--line);cursor:pointer;transition:all .25s;min-width:56px;font-family:'Gowun Batang',serif;}
.hb-weather-btn:hover{border-color:var(--gold);transform:translateY(-2px);}
.hb-weather-btn.selected,.hb-weather-btn.active{border-color:var(--gold);background:var(--paper2);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.hb-weather-emoji{font-size:24px;line-height:1;}
.hb-weather-label{font-size:8.5px;letter-spacing:.1em;color:var(--muted);}
.hb-weather-btn.selected .hb-weather-label,.hb-weather-btn.active .hb-weather-label{color:var(--ink);}
.hb-card-weather{font-size:14px;margin-left:auto;margin-right:4px;}
.hb-checkin-msg{font-size:10.5px;color:var(--faint);letter-spacing:.04em;line-height:1.8;min-height:20px;transition:opacity .3s;}

/* 빈 메모장 — 폭풍 써내려가기 */
.hb-storm{display:none;margin-bottom:20px;transition:opacity .4s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.hb-storm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.hb-storm-title{font-size:10px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;}
.hb-storm-timer{font-size:9px;color:var(--faint);font-variant-numeric:tabular-nums;}
.hb-storm-pad{width:100%;min-height:180px;max-height:400px;border:none;background:transparent;font-family:'Gowun Batang',serif;font-size:14px;line-height:2.4;color:var(--ink);resize:none;padding:0;outline:none;letter-spacing:.04em;overflow-y:auto;}
.hb-storm-pad::placeholder{color:var(--faint);font-size:12px;letter-spacing:.06em;}
.hb-storm-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);}
.hb-storm-charcount{font-size:9px;color:var(--faint);}
.hb-storm-actions{display:flex;gap:6px;align-items:center;}
.hb-storm-save{background:var(--ink);color:var(--paper);border:none;padding:8px 18px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.15em;cursor:pointer;transition:all .2s;}
.hb-storm-save:hover{background:#2e2416;}
.hb-storm-share{background:none;border:1px solid var(--line);color:var(--muted);padding:8px 14px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;cursor:pointer;transition:all .2s;}
.hb-storm-share:hover{border-color:var(--gold);color:var(--gold);}
.hb-storm-hint{font-size:9px;color:var(--faint);text-align:center;margin-top:6px;letter-spacing:.04em;line-height:1.8;}

/* 감정 날씨 태그 (카드용) */
.hb-weather-tag{font-size:9px;padding:2px 6px;border:1px solid var(--line);letter-spacing:.06em;display:inline-flex;align-items:center;gap:3px;}

/* ══ 타로명상 (mt-) ══ */
.mt-header{text-align:center;padding:0 0 20px;}
.mt-header h3{font-size:16px;font-weight:300;letter-spacing:.12em;margin-bottom:4px;}
.mt-header p{font-size:11px;color:var(--muted);line-height:1.9;letter-spacing:.04em;}

/* 진입 화면 */
.mt-intro{text-align:center;padding:30px 0;}
.mt-intro-msg{font-size:13px;color:var(--ink);line-height:2.4;letter-spacing:.06em;margin-bottom:28px;}
.mt-intro-msg em{font-style:normal;color:var(--gold);}
.mt-breath{font-size:11px;color:var(--faint);letter-spacing:.1em;margin-bottom:24px;min-height:20px;transition:opacity .5s;}
.mt-start-btn{background:var(--ink);color:var(--paper);border:none;padding:14px 40px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.3em;cursor:pointer;transition:all .3s;}
.mt-start-btn:hover{background:#2e2416;letter-spacing:.4em;}

/* 카드 선택 화면 */
.mt-spread{display:none;text-align:center;padding:20px 0;}
.mt-spread-msg{font-size:11px;color:var(--muted);letter-spacing:.08em;margin-bottom:24px;}
.mt-fan{display:flex;justify-content:center;align-items:flex-end;padding:20px 0 30px;min-height:180px;perspective:800px;}
.mt-fan-card{width:64px;height:100px;margin:0 -6px;background:var(--ink);border:1px solid rgba(180,160,120,.3);cursor:pointer;transition:all .35s cubic-bezier(.23,1,.32,1);position:relative;flex-shrink:0;}
.mt-fan-card::after{content:'🌿';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;opacity:.3;}
.mt-fan-card:hover{transform:translateY(-14px) scale(1.06);box-shadow:0 8px 20px rgba(0,0,0,.15);border-color:var(--gold);}
.mt-fan-card.selected{transform:translateY(-24px) scale(1.1);border-color:var(--gold);box-shadow:0 12px 30px rgba(0,0,0,.2);}

/* 카드 뒤집기 */
.mt-flip-area{display:none;justify-content:center;padding:20px 0 10px;perspective:1000px;}
.mt-card-3d{width:140px;height:220px;position:relative;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.4,.2,.2,1);}
.mt-card-3d.flipped{transform:rotateY(180deg);}
.mt-card-face{position:absolute;inset:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.mt-card-back{background:var(--ink);border:1.5px solid rgba(180,160,120,.3);}
.mt-card-back::after{content:'🌿';font-size:28px;opacity:.25;}
.mt-card-front{background:var(--paper);border:1.5px solid var(--line);transform:rotateY(180deg);padding:12px 8px;text-align:center;overflow:hidden;}
.mt-card-num{font-family:'Cormorant Garamond',serif;font-size:14px;font-style:italic;color:var(--muted);letter-spacing:.15em;}
.mt-card-symbol{font-size:36px;margin:10px 0 8px;line-height:1;}
.mt-card-name-en{font-family:'Cormorant Garamond',serif;font-size:11px;font-style:italic;color:var(--faint);letter-spacing:.1em;}
.mt-card-name-ko{font-size:14px;color:var(--ink);letter-spacing:.15em;margin-top:4px;font-weight:400;}
.mt-card-keywords{font-size:8px;color:var(--muted);letter-spacing:.08em;margin-top:8px;line-height:1.6;}

/* 결과 화면 */
.mt-result{display:none;padding:10px 0 30px;}
.mt-result-title{text-align:center;margin-bottom:20px;}
.mt-result-title .mt-r-num{font-family:'Cormorant Garamond',serif;font-size:12px;font-style:italic;color:var(--muted);letter-spacing:.2em;}
.mt-result-title .mt-r-name{font-size:18px;letter-spacing:.15em;font-weight:300;margin:4px 0 2px;}
.mt-result-title .mt-r-sub{font-size:11px;color:var(--gold);letter-spacing:.06em;}
.mt-reading{border-top:1px solid var(--line);padding-top:20px;margin-top:10px;}
.mt-reading-label{font-size:9px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px;}
.mt-reading-text{font-size:13px;color:var(--ink);line-height:2.4;letter-spacing:.04em;margin-bottom:24px;}
.mt-questions{background:var(--paper2);padding:16px 18px;margin-bottom:20px;}
.mt-questions-label{font-size:9px;color:var(--gold);letter-spacing:.2em;margin-bottom:10px;}
.mt-q-item{font-size:12px;color:var(--ink);line-height:2;letter-spacing:.04em;padding-left:12px;position:relative;}
.mt-q-item::before{content:'·';position:absolute;left:0;color:var(--gold);}
.mt-shadow{font-size:11px;color:var(--faint);line-height:2;letter-spacing:.04em;padding:12px 0;border-top:1px solid var(--line);margin-bottom:20px;}
.mt-shadow-label{font-size:9px;color:var(--muted);letter-spacing:.15em;margin-bottom:6px;}
.mt-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding-top:10px;}
.mt-actions button{font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;padding:10px 18px;cursor:pointer;transition:all .2s;border:1px solid var(--line);background:none;color:var(--muted);}
.mt-actions button:hover{border-color:var(--gold);color:var(--gold);}
.mt-actions .mt-retry{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.mt-actions .mt-retry:hover{background:#2e2416;}

/* 타로 인라인 메모 */
.mt-memo{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;}
.mt-memo-label{font-size:9px;color:var(--gold);letter-spacing:.2em;margin-bottom:10px;}
.mt-memo-pad{width:100%;min-height:100px;border:none;border-bottom:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:13px;line-height:2.4;color:var(--ink);resize:none;padding:0;outline:none;letter-spacing:.04em;}
.mt-memo-pad::placeholder{color:var(--faint);font-size:11px;letter-spacing:.06em;}
.mt-memo-pad:focus{border-bottom-color:var(--gold);}
.mt-memo-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;}
.mt-memo-count{font-size:9px;color:var(--faint);}
.mt-memo-save{background:var(--ink);color:var(--paper);border:none;padding:8px 20px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.15em;cursor:pointer;transition:all .2s;}
.mt-memo-save:hover{background:#2e2416;}
.mt-memo-saved{font-size:9px;color:var(--gold);letter-spacing:.06em;opacity:0;transition:opacity .3s;}

/* 타로 카드 이미지 */
.mt-card-img{width:100%;max-height:140px;object-fit:contain;margin-bottom:6px;}

/* 카드 심볼 대응표 */
.mt-symbols{border-top:1px solid var(--line);padding:16px 0;margin-bottom:4px;}
.mt-sym-label{font-size:9px;color:var(--muted);letter-spacing:.2em;margin-bottom:12px;}
.mt-sym-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 20px;font-size:11px;line-height:2.2;}
.mt-sym-k{color:var(--muted);letter-spacing:.08em;white-space:nowrap;}
.mt-sym-v{color:var(--ink);letter-spacing:.04em;}

/* 홀씨밭 쓰기 모달 (기존 — 축소) */
.hb-write-btn{width:100%;background:var(--ink);color:var(--paper);border:none;padding:13px;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.25em;cursor:pointer;transition:all .2s;margin-bottom:16px;}
.hb-write-btn:hover{background:#2e2416;letter-spacing:.35em;}
.hb-write-area{background:var(--white);border:1px solid var(--line);padding:16px;margin-bottom:12px;display:none;}
.hb-write-area.open{display:block;}
.hb-write-area textarea{width:100%;min-height:80px;border:none;border-bottom:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:12px;line-height:2;color:var(--ink);resize:vertical;padding:8px 0;outline:none;}
.hb-write-area textarea:focus{border-bottom-color:var(--gold);}
.hb-write-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px;}
.hb-post-btn{background:var(--ink);color:var(--paper);border:none;padding:8px 20px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.15em;cursor:pointer;transition:all .2s;}
.hb-post-btn:hover{background:#2e2416;}

/* ── 저널링 모드 선택 바 ── */
.j-mode-row{display:flex;gap:6px;margin-bottom:14px;}
.j-mode-btn{flex:1;padding:9px 6px;background:transparent;border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.06em;color:var(--muted);cursor:pointer;transition:all .2s;}
.j-mode-btn:hover{border-color:var(--gold);color:var(--gold);}
.j-mode-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}

/* ── 구조화 저널링 패널 (감정 씨앗 / 멈춤의 정원) ── */
.j-structured{margin-bottom:16px;}
.j-step{margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);background:var(--white);}
.j-step-label{font-size:12px;letter-spacing:.08em;color:var(--ink);margin-bottom:4px;font-weight:400;}
.j-step-desc{font-size:10px;color:var(--muted);margin-bottom:10px;letter-spacing:.04em;}
.j-step-input{width:100%;padding:8px 0;border:none;border-bottom:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:12px;color:var(--ink);background:transparent;outline:none;transition:border-color .2s;}
.j-step-input:focus{border-bottom-color:var(--gold);}
.j-step-input::placeholder{color:var(--faint);}
.j-step-textarea{width:100%;min-height:72px;border:none;border-bottom:1px solid var(--line);padding:8px 0;font-family:'Gowun Batang',serif;font-size:12px;line-height:2;color:var(--ink);background:transparent;outline:none;resize:none;transition:border-color .2s;}
.j-step-textarea:focus{border-bottom-color:var(--gold);}
.j-step-textarea::placeholder{color:var(--faint);}

/* ── 감정 태그 ── */
.j-emotion-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.j-etag{padding:5px 12px;border:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:11px;color:var(--muted);cursor:pointer;transition:all .2s;letter-spacing:.04em;}
.j-etag:hover{border-color:var(--gold);color:var(--gold);}
.j-etag.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}

/* ── 내면대화 가이드 질문 ── */
.j-dlg-prompt{font-family:'Gowun Batang',serif;font-size:12px;font-style:italic;line-height:1.9;color:var(--ink2);padding:8px 12px;border-left:3px solid var(--gold,#b8924a);background:rgba(184,146,74,.04);margin-bottom:8px;letter-spacing:.03em;}

/* ── 기록 모드 뱃지 ── */
.j-rec-mode{display:inline-block;padding:2px 8px;font-size:8px;letter-spacing:.1em;color:var(--gold);border:1px solid var(--gold2);margin-left:8px;vertical-align:middle;}

/* ── 숨고르기 버튼 ── */
.j-breath-btn{width:100%;padding:12px;background:transparent;border:1px dashed var(--line);font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.08em;color:var(--muted);cursor:pointer;transition:all .25s;margin-bottom:16px;}
.j-breath-btn:hover{border-color:var(--gold);color:var(--gold);border-style:solid;}

/* ── 숨고르기 오버레이 ── */
.j-breath-overlay{position:fixed;inset:0;z-index:9999;background:rgba(28,23,16,.92);display:flex;align-items:center;justify-content:center;animation:breathFadeIn .6s ease;}
@keyframes breathFadeIn{from{opacity:0}to{opacity:1}}
.j-breath-content{text-align:center;color:var(--paper);padding:24px;}
.j-breath-intro{font-family:'Gowun Batang',serif;font-size:15px;line-height:2.2;color:rgba(247,243,236,.7);letter-spacing:.08em;animation:breathFadeIn .8s ease;}
.j-breath-circle{width:120px;height:120px;border-radius:50%;border:2px solid var(--gold2);margin:32px auto;animation:breathCycle 14s ease-in-out infinite;opacity:.7;}
@keyframes breathCycle{
  0%{transform:scale(.6);opacity:.4;border-color:var(--gold2)}
  28.6%{transform:scale(1);opacity:.8;border-color:var(--gold)}
  57.1%{transform:scale(1);opacity:.8;border-color:var(--gold)}
  85.7%{transform:scale(.6);opacity:.4;border-color:var(--gold2)}
  100%{transform:scale(.6);opacity:.4;border-color:var(--gold2)}
}
.j-breath-phase{font-size:11px;letter-spacing:.3em;color:var(--gold);margin-bottom:8px;text-transform:uppercase;}
.j-breath-guide{font-family:'Gowun Batang',serif;font-size:16px;line-height:1.8;color:var(--paper);letter-spacing:.1em;margin-bottom:24px;transition:opacity .4s;}
.j-breath-countdown{font-size:28px;font-weight:300;color:rgba(247,243,236,.35);letter-spacing:.15em;margin-bottom:32px;}
.j-breath-skip{background:transparent;border:1px solid rgba(247,243,236,.2);padding:8px 20px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.15em;color:rgba(247,243,236,.45);cursor:pointer;transition:all .2s;}
.j-breath-skip:hover{border-color:rgba(247,243,236,.5);color:rgba(247,243,236,.7);}
.j-breath-start{display:block;margin:28px auto 0;padding:14px 48px;background:linear-gradient(135deg,var(--gold),#d4a853);border:1px solid rgba(255,255,255,.15);color:var(--white);font-family:'Gowun Batang',serif;font-size:13px;letter-spacing:.15em;cursor:pointer;transition:all .3s;animation:breathFadeIn 1s .5s ease both;}
.j-breath-start:hover{background:linear-gradient(135deg,#d4a853,var(--gold));transform:scale(1.05);box-shadow:0 4px 20px rgba(184,146,74,.3);}
.j-breath-back{display:block;margin:16px auto 0;background:transparent;border:none;font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.12em;color:rgba(247,243,236,.35);cursor:pointer;transition:color .2s;padding:8px 16px;animation:breathFadeIn 1s .8s ease both;}
.j-breath-back:hover{color:rgba(247,243,236,.6);}

/* ── 홀씨밭 따뜻한 물주기 ── */
.hb-compassion{margin-top:16px;padding:18px 16px;border:1px solid var(--gold2);background:rgba(184,146,74,.04);animation:breathFadeIn .5s ease;}
.hb-compassion-q{font-family:'Gowun Batang',serif;font-size:13px;line-height:1.9;color:var(--ink2);margin-bottom:12px;letter-spacing:.04em;}
.hb-compassion-pad{width:100%;min-height:64px;border:none;border-bottom:1px solid var(--gold2);padding:8px 0;font-family:'Gowun Batang',serif;font-size:12px;line-height:2;color:var(--ink);background:transparent;outline:none;resize:none;transition:border-color .2s;}
.hb-compassion-pad:focus{border-bottom-color:var(--gold);}
.hb-compassion-pad::placeholder{color:var(--faint);}
.hb-compassion-actions{display:flex;gap:8px;margin-top:12px;}
.hb-compassion-save{flex:1;padding:10px;background:var(--gold);border:none;color:var(--white);font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;cursor:pointer;transition:opacity .2s;}
.hb-compassion-save:hover{opacity:.88;}
.hb-compassion-skip{padding:10px 16px;background:transparent;border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;color:var(--muted);cursor:pointer;transition:all .2s;}
.hb-compassion-skip:hover{border-color:var(--gold);color:var(--gold);}

/* ── 홀씨밭 서브타이틀 ── */
.hb-storm-sub{font-size:11px;color:var(--muted);letter-spacing:.04em;padding:0 0 8px;margin-top:-2px;}

/* ═══ 수비학 — 탄생수 입력 ═══ */
.mt-numer{margin:24px 0;padding:20px;border:1px solid var(--line);background:var(--bg2,#fafaf7);text-align:center;}
.mt-numer-label{font-size:13px;letter-spacing:.12em;color:var(--gold);margin-bottom:6px;}
.mt-numer-desc{font-size:11px;color:var(--muted);margin-bottom:16px;line-height:1.7;}
.mt-numer-input{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;}
.mt-numer-input input{width:64px;padding:8px 4px;border:none;border-bottom:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:13px;text-align:center;color:var(--ink);outline:none;transition:border-color .2s;}
.mt-numer-input input:focus{border-bottom-color:var(--gold);}
.mt-numer-input input::placeholder{color:var(--faint);font-size:11px;}
.mt-numer-input button{padding:8px 16px;background:var(--gold);border:none;color:var(--white);font-family:'Gowun Batang',serif;font-size:11px;letter-spacing:.08em;cursor:pointer;transition:opacity .2s;}
.mt-numer-input button:hover{opacity:.85;}

/* 탄생수 결과 카드 */
.mt-lp-card{margin-top:20px;padding:20px;border:1px solid var(--gold2);text-align:center;}
.mt-lp-num{font-size:36px;font-weight:700;color:var(--gold);line-height:1;margin-bottom:4px;}
.mt-lp-master{background:linear-gradient(135deg,var(--gold),#c97b1a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:42px;}
.mt-lp-name{font-size:15px;letter-spacing:.15em;color:var(--ink);margin-bottom:12px;}
.mt-lp-story{font-size:12px;line-height:2;color:var(--ink);margin-bottom:12px;}
.mt-lp-energy,.mt-lp-shadow{font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:6px;}
.mt-lp-energy b,.mt-lp-shadow b{color:var(--gold);margin-right:4px;}

/* ═══ 수비학 — 카드 번호 해석 ═══ */
.mt-numer-card{margin:16px 0;padding:16px 20px;border:1px solid var(--line);background:var(--bg2,#fafaf7);}
.mt-nc-label{font-size:11px;letter-spacing:.12em;color:var(--gold);margin-bottom:10px;}
.mt-nc-num{font-size:24px;font-weight:700;color:var(--gold);margin-bottom:2px;}
.mt-nc-meaning{font-size:13px;letter-spacing:.1em;color:var(--ink);margin-bottom:8px;}
.mt-nc-desc{font-size:12px;line-height:2;color:var(--muted);margin-bottom:10px;}
.mt-nc-link{font-size:11px;line-height:1.9;color:var(--muted);padding:10px;border-top:1px solid var(--line);margin-top:8px;}
.mt-nc-link b{color:var(--gold);margin-right:4px;}
.mt-nc-resonance{background:linear-gradient(135deg,rgba(183,142,78,.06),rgba(183,142,78,.12));border:1px solid var(--gold2);}

/* ═══ 타로 달력 — 모드 토글 ═══ */
.mt-mode-row{display:flex;gap:6px;margin-bottom:18px;}
.mt-mode-btn{flex:1;padding:9px 6px;background:transparent;border:1px solid var(--line);font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.06em;color:var(--muted);cursor:pointer;transition:all .2s;}
.mt-mode-btn:hover{border-color:var(--gold);color:var(--gold);}
.mt-mode-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}

/* ═══ 타로 달력 — 컨트롤 ═══ */
.mt-cal-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.mt-cal-nav{background:none;border:1px solid var(--line);width:32px;height:32px;cursor:pointer;color:var(--muted);font-size:14px;transition:all .2s;font-family:'Gowun Batang',serif;}
.mt-cal-nav:hover{border-color:var(--gold);color:var(--gold);}
.mt-cal-title{font-size:14px;letter-spacing:.1em;color:var(--ink);}

/* ═══ 타로 달력 — 그리드 ═══ */
.mt-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:20px;}
.mt-cal-dow{text-align:center;font-size:9px;letter-spacing:.1em;color:var(--muted);padding:6px 0;}
.mt-cal-dow.sun{color:#c75050;}
.mt-cal-dow.sat{color:#5070a0;}
.mt-cal-cell{padding:8px 4px;background:var(--white);border:1px solid var(--line);cursor:pointer;transition:all .15s;min-height:56px;text-align:center;position:relative;}
.mt-cal-cell:hover{border-color:var(--gold);z-index:1;}
.mt-cal-cell.empty{background:transparent;border-color:transparent;cursor:default;min-height:0;}
.mt-cal-cell.today{border-color:var(--gold);background:linear-gradient(135deg,var(--white) 0%,#fdf8ef 100%);}
.mt-cal-cell.missed{opacity:.4;cursor:default;}
.mt-cal-cell.missed:hover{border-color:var(--line);}
.mt-cal-cell.future{opacity:.3;cursor:default;}
.mt-cal-cell.future:hover{border-color:var(--line);}
.mt-cal-cell.drawn{background:rgba(184,146,74,.06);border-color:var(--gold2);}
.mt-cal-cell.sun .mt-cal-num{color:#c75050;}
.mt-cal-cell.sat .mt-cal-num{color:#5070a0;}
.mt-cal-num{font-size:12px;font-weight:300;display:block;margin-bottom:4px;color:var(--ink);}
.mt-cal-sym{font-size:20px;display:block;line-height:1;}
.mt-cal-draw-hint{font-size:8px;color:var(--gold);letter-spacing:.1em;display:block;margin-top:2px;animation:breathe 2.5s ease-in-out infinite;}

/* ═══ 타로 달력 — 카드 리뷰 ═══ */
.mt-cal-review{background:var(--white);border:1px solid var(--line);padding:20px;margin-bottom:12px;text-align:center;}
.mt-cal-review-date{font-size:10px;color:var(--muted);letter-spacing:.15em;margin-bottom:8px;}
.mt-cal-review-sym{font-size:36px;margin-bottom:6px;}
.mt-cal-review-name{font-size:16px;letter-spacing:.12em;font-weight:300;margin-bottom:4px;}
.mt-cal-review-sub{font-size:11px;color:var(--gold);letter-spacing:.06em;margin-bottom:14px;}
.mt-cal-review-read{font-size:12px;line-height:2.2;color:var(--ink);text-align:left;padding:14px 0;border-top:1px solid var(--line);}
.mt-cal-review-memo{font-size:11px;line-height:2;color:var(--muted);padding:12px 0;border-top:1px solid var(--line);text-align:left;}
.mt-cal-memo-label{font-size:9px;color:var(--gold);letter-spacing:.15em;display:block;margin-bottom:6px;}
.mt-cal-back-btn{display:block;margin:0 auto;background:none;border:1px solid var(--line);padding:10px 24px;font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.1em;color:var(--muted);cursor:pointer;transition:all .2s;}
.mt-cal-back-btn:hover{border-color:var(--gold);color:var(--gold);}

/* ═══ 타로 달력 — 월간 통계 ═══ */
.mt-cal-stats-inner{border-top:1px solid var(--line);padding-top:18px;margin-top:8px;}
.mt-cal-stat-label{font-size:9px;color:var(--gold);letter-spacing:.2em;margin-bottom:12px;text-align:center;}
.mt-cal-stat-row{display:flex;gap:12px;justify-content:center;margin-bottom:14px;}
.mt-cal-stat-item{text-align:center;padding:10px 16px;border:1px solid var(--line);background:var(--white);min-width:80px;}
.mt-cal-stat-num{font-size:20px;font-weight:300;color:var(--gold);display:block;line-height:1;margin-bottom:4px;}
.mt-cal-stat-unit{font-size:9px;color:var(--muted);letter-spacing:.08em;}
.mt-cal-theme-label{font-size:9px;color:var(--muted);letter-spacing:.15em;text-align:center;margin-bottom:8px;}
.mt-cal-themes{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;}
.mt-cal-theme{font-size:10px;padding:4px 12px;border:1px solid var(--line);color:var(--muted);letter-spacing:.06em;}
.mt-cal-theme em{font-style:normal;color:var(--gold);margin-left:4px;}

@media(max-width:400px){
  .mt-cal-cell{min-height:48px;padding:6px 2px;}
  .mt-cal-sym{font-size:16px;}
  .mt-cal-num{font-size:11px;}
}

/* ═══════════════════════════════════
   인증 UI (Auth)
   ═══════════════════════════════════ */

/* 히어로 위 로그인 (우측 상단) */
.auth-hero-slot{
  position:fixed; top:16px; right:16px; z-index:999;
}

/* 메인 헤더 내 프로필/로그인 */
.auth-slot{
  display:flex; align-items:center; justify-content:center;
  margin-bottom:12px;
}

/* 로그인 버튼 그룹 */
.auth-login-btns{
  display:flex; flex-direction:column; gap:8px; align-items:center;
}

/* 공통 버튼 */
.auth-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px; border:1px solid var(--line);
  font-family:'Gowun Batang',serif; font-size:11px;
  letter-spacing:.08em; cursor:pointer;
  transition:all .3s; width:220px; justify-content:center;
  text-decoration:none;
}

/* 카카오 */
.auth-kakao{
  background:#FEE500; color:#191919; border-color:#FEE500;
}
.auth-kakao:hover{background:#F5DC00;}

/* 구글 */
.auth-google{
  background:var(--white); color:var(--ink); border-color:var(--line);
}
.auth-google:hover{border-color:var(--gold);}

/* 히어로 위 버튼 (작게) */
.auth-hero-slot .auth-login-btns{
  flex-direction:row; gap:6px;
}
.auth-hero-slot .auth-btn{
  width:auto; padding:6px 14px; font-size:10px;
  background:rgba(247,243,236,.85);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-color:var(--line);
}
.auth-hero-slot .auth-kakao{
  background:rgba(254,229,0,.85); border-color:rgba(254,229,0,.6);
}

/* 프로필 (로그인 상태) */
.auth-profile{
  display:flex; align-items:center; gap:8px; justify-content:center;
}
.auth-avatar{
  width:24px; height:24px; border-radius:50%;
  object-fit:cover; border:1px solid var(--line);
}
.auth-avatar-placeholder{
  font-size:16px; line-height:1;
}
.auth-name{
  font-size:11px; color:var(--muted); letter-spacing:.06em;
  font-family:'Gowun Batang',serif;
}
.auth-logout-btn{
  background:none; border:1px solid var(--line);
  font-family:'Gowun Batang',serif; font-size:9px;
  color:var(--faint); padding:4px 10px; cursor:pointer;
  letter-spacing:.08em; transition:all .3s;
}
.auth-logout-btn:hover{
  border-color:var(--gold); color:var(--muted);
}

/* 히어로 위 프로필 (가든ID + 로그아웃 분리형) */
.auth-hero-profile{
  display:flex; align-items:center; gap:10px;
}
.auth-hero-id{
  font-family:'Gowun Batang',serif; font-size:10px;
  letter-spacing:.06em; color:var(--muted);
  background:rgba(247,243,236,.85);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  padding:5px 14px; border:1px solid var(--line);
}
.auth-hero-profile .auth-logout-btn{
  background:rgba(247,243,236,.85);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  font-size:9px; padding:5px 12px;
}
.auth-hero-slot .auth-profile{
  background:rgba(247,243,236,.85);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  padding:5px 12px; border:1px solid var(--line);
}
.auth-hero-slot .auth-name{font-size:10px;}
.auth-hero-slot .auth-avatar{width:20px;height:20px;}

/* ═══════════════════════════════════
   로그인 게이트 오버레이
   ═══════════════════════════════════ */
.auth-gate{
  position:fixed; inset:0; z-index:9999;
  background:rgba(247,243,236,.97);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  display:flex; justify-content:center;
  animation:fadeIn .5s ease;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:40px 0;
}
.auth-gate-inner{
  text-align:center; padding:40px 28px; max-width:380px; width:100%;
  margin:auto 0;
}
.auth-gate-deco{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:28px;opacity:.45;}
.auth-gate-icon{font-size:48px;margin-bottom:20px;}
.auth-gate-title{
  font-family:'Gowun Batang',serif; font-size:22px; font-weight:300;
  letter-spacing:.12em; color:var(--ink); margin-bottom:16px;
}
.auth-gate-desc{
  font-size:13px; color:var(--muted); line-height:2.2;
  letter-spacing:.04em; margin-bottom:32px;
}
.auth-gate-btns{
  display:flex; flex-direction:column; gap:10px;
  align-items:center; margin-bottom:20px;
}
.auth-gate-btns .auth-btn{width:260px; padding:13px 20px; font-size:12px;}
.auth-gate-note{
  font-size:11px; color:var(--faint); letter-spacing:.06em;
  margin-top:28px; margin-bottom:28px; line-height:2;
}
.auth-gate-close{
  background:none; border:none; font-family:'Gowun Batang',serif;
  font-size:11px; color:var(--faint); cursor:pointer;
  letter-spacing:.08em; padding:8px 16px;
  transition:color .3s;
}
.auth-gate-close:hover{color:var(--muted);}

/* ── 이메일 로그인 폼 ── */
.auth-email-form{max-width:280px; margin:0 auto;}
.auth-email-input{
  width:100%; background:var(--white); border:1px solid var(--line);
  padding:13px 16px; font-family:'Gowun Batang',serif; font-size:13px;
  letter-spacing:.04em; color:var(--ink); outline:none;
  transition:border-color .3s; margin-bottom:12px; text-align:center;
  box-sizing:border-box;
}
.auth-email-input:focus{border-color:var(--gold);}
.auth-email-input::placeholder{color:var(--faint); font-size:12px;}
.auth-email-err{
  font-size:11px; color:#c0392b; text-align:center;
  padding:4px 0 8px; margin:0;
}
/* 비밀번호 조건 안내 */
.pw-requirements{
  text-align:left; padding:8px 12px; margin:4px 0 8px;
  background:rgba(139,115,85,.06); border-radius:8px;
  border:1px solid rgba(139,115,85,.12);
}
.pw-req-title{
  font-size:11px; color:var(--faint); margin:0 0 4px; letter-spacing:.04em;
}
.pw-req-list{
  list-style:none; padding:0; margin:0;
}
.pw-req-item{
  font-size:11px; color:var(--faint); padding:2px 0;
  transition:color .2s;
}
.pw-req-item::before{
  content:'○ '; font-size:9px;
}
.pw-req-item.pw-ok{
  color:#27ae60;
}
.pw-req-item.pw-ok::before{
  content:'● ';
}
/* 비밀번호 일치 실시간 표시 */
.pw-match-msg{
  font-size:12px; margin:4px 0 0; padding:0 4px;
}
/* 회원가입 성공 안내 */
.auth-success-msg{
  text-align:center; padding:20px 0;
}
.auth-success-msg p{
  font-size:12px; color:var(--body); line-height:1.8; margin:8px 0;
}
.auth-email-submit{max-width:280px; margin-top:16px;}
.auth-mode-link{
  color:var(--gold); text-decoration:none; font-weight:400;
  border-bottom:1px solid var(--gold); transition:opacity .3s;
}
.auth-mode-link:hover{opacity:.7;}

/* ── 이메일 버튼 (nav/hero용) ── */
.auth-email{
  background:var(--ink); color:var(--paper); border-color:var(--ink);
}
.auth-email:hover{background:#2e2416;}
.auth-hero-slot .auth-email{
  background:rgba(28,23,16,.85); color:var(--paper);
  border-color:rgba(28,23,16,.6);
}

/* ── 프로필 등록 폼 ── */
.profile-form{text-align:left; max-width:300px; margin:0 auto;}
.profile-field{margin-bottom:16px;}
.profile-label{
  display:block; font-size:9px; letter-spacing:.22em;
  color:var(--muted); text-transform:uppercase; margin-bottom:5px;
  font-family:'Gowun Batang',serif;
}
.profile-input{
  width:100%; background:var(--white); border:none;
  border-bottom:1.5px solid var(--line); color:var(--ink);
  font-family:'Gowun Batang',serif; font-size:14px;
  padding:8px 2px; outline:none; transition:border-color .2s;
  box-sizing:border-box;
}
.profile-input:focus{border-bottom-color:var(--gold);}
.profile-input::placeholder{color:var(--faint); font-size:12px;}
.profile-err{
  font-size:11px; color:#c0392b; text-align:center;
  padding:8px 0; margin:0;
}

/* 탭 로그인 필요 오버레이 */
.tab-auth-overlay{
  padding:60px 20px; text-align:center;
}
.tab-auth-overlay .auth-gate-icon{font-size:36px;margin-bottom:14px;}
.tab-auth-overlay .auth-gate-title{font-size:18px;margin-bottom:10px;}
.tab-auth-overlay .auth-gate-desc{font-size:12px;margin-bottom:24px;}
.tab-auth-overlay .auth-gate-btns .auth-btn{width:240px;padding:11px 18px;font-size:11px;}

/* ═══════ 자미두수 12궁 그리드 ═══════ */
.zw-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(4,auto);
  border:1px solid var(--line);
  margin:16px 0 20px;
  animation:riseUp .8s .2s ease both;
}
.zw-cell{
  border:1px solid var(--line);
  padding:8px 5px 6px;
  text-align:center;
  min-height:80px;
  cursor:pointer;
  transition:background .25s, box-shadow .25s;
  position:relative;
}
.zw-cell:hover{background:rgba(184,146,74,.06);box-shadow:inset 0 0 0 1px var(--gold);}
.zw-cell.zw-soul{background:rgba(184,146,74,.08);}
.zw-cell.zw-body{background:rgba(28,23,16,.03);}
.zw-cell-empty{border-color:transparent;}
.zw-cell-branch{
  font-size:8px;letter-spacing:.15em;color:var(--faint);
  position:absolute;top:3px;right:5px;
}
.zw-cell-name{
  font-size:9.5px;letter-spacing:.1em;color:var(--muted);
  margin-bottom:4px;line-height:1.4;
}
.zw-cell.zw-soul .zw-cell-name{color:var(--gold);font-weight:400;}
.zw-star{display:block;line-height:1.5;}
.zw-star-major{font-size:11px;color:var(--ink);font-weight:400;letter-spacing:.06em;}
.zw-star-major small{font-size:8px;color:var(--gold);margin-left:2px;}
.zw-star-minor{font-size:8.5px;color:var(--faint);letter-spacing:.04em;}

/* 중앙 정보 영역 */
.zw-center{
  grid-column:2/4;grid-row:2/4;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:16px 8px;border:1px solid var(--line);
  background:var(--paper);
}
.zw-center-title{font-size:16px;letter-spacing:.15em;color:var(--ink);margin-bottom:4px;}
.zw-center-sub{font-size:10px;color:var(--muted);letter-spacing:.06em;line-height:1.8;}

/* 기본 정보 카드 */
.zw-info{
  margin-bottom:20px;padding:16px;
  border:1px solid var(--line);background:var(--white);
  animation:riseUp .6s ease both;
}
.zw-info-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 0;border-bottom:1px solid rgba(0,0,0,.04);
  font-size:12px;letter-spacing:.05em;
}
.zw-info-row:last-child{border-bottom:none;}
.zw-info-label{color:var(--muted);min-width:50px;}
.zw-info-val{color:var(--ink);text-align:right;}
.zw-info-highlight{background:rgba(184,146,74,.06);padding:6px 8px;margin:2px -8px;border-radius:2px;}
.zw-info-highlight .zw-info-label{color:var(--gold);}

/* 궁위 상세 패널 */
.zw-detail{
  background:var(--white);border:1px solid var(--line);
  padding:20px 16px;margin-bottom:16px;
  animation:riseUp .4s ease both;
}
.zw-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.zw-detail-icon{font-size:28px;}
.zw-detail-title{font-size:16px;letter-spacing:.1em;color:var(--ink);}
.zw-detail-area{font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:2px;}
.zw-detail-desc{
  font-size:12px;line-height:2;color:var(--ink2);
  padding:10px 0 14px;border-bottom:1px solid var(--line);
  margin-bottom:12px;
}
.zw-detail-sec{
  font-size:10px;letter-spacing:.15em;color:var(--gold);
  margin:14px 0 8px;text-transform:uppercase;
}
.zw-detail-star{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.03);}
.zw-detail-star-name{font-size:13px;color:var(--ink);letter-spacing:.08em;}
.zw-detail-bright{font-size:9px;color:var(--gold);margin-left:4px;letter-spacing:.06em;}
.zw-detail-star-desc{font-size:11.5px;line-height:1.9;color:var(--muted);margin-top:4px;}
.zw-detail-minor-grid{display:flex;flex-wrap:wrap;gap:6px;}
.zw-detail-minor-tag{
  font-size:10px;padding:3px 8px;
  background:var(--paper);border:1px solid var(--line);
  color:var(--muted);letter-spacing:.06em;
}
.zw-detail-close{
  display:block;margin:16px auto 0;
  font-size:11px;letter-spacing:.1em;color:var(--muted);
  background:none;border:1px solid var(--line);padding:8px 24px;
  cursor:pointer;transition:all .2s;
}
.zw-detail-close:hover{border-color:var(--gold);color:var(--ink);}

/* 유형 카드 */
.zw-archetype-card{
  border:1px solid var(--line);padding:20px 16px;
  margin-bottom:20px;background:var(--white);
  animation:riseUp .6s .3s ease both;
}
.zw-arch-star{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.04);}
.zw-arch-star:last-of-type{border-bottom:none;}
.zw-arch-star-name{font-size:15px;letter-spacing:.1em;color:var(--ink);}
.zw-arch-bright{font-size:9px;color:var(--gold);letter-spacing:.06em;}
.zw-arch-type{font-size:11px;color:var(--gold);letter-spacing:.1em;margin:4px 0;}
.zw-arch-desc{font-size:12px;line-height:2;color:var(--ink2);}
.zw-arch-summary{
  text-align:center;padding:16px 0 4px;
  border-top:1px solid var(--line);margin-top:8px;
}
.zw-arch-title{font-size:14px;letter-spacing:.12em;color:var(--ink);}
.zw-arch-sub{font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:.06em;}

/* 모바일 반응형 */
@media(max-width:480px){
  .zw-cell{min-height:65px;padding:6px 3px 4px;}
  .zw-cell-name{font-size:8px;}
  .zw-star-major{font-size:9.5px;}
  .zw-star-minor{font-size:7.5px;}
  .zw-center{padding:10px 4px;}
  .zw-center-title{font-size:13px;}
  .zw-center-sub{font-size:8.5px;}
}

/* ═══════ 운명 포토폴리오 그리드 ═══════ */
.zw-portfolio-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.06);
  margin-top:12px;
}
.zw-pf-cell{
  background:var(--cream,#faf9f2);padding:10px 6px 8px;
  min-height:70px;text-align:center;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;
}
.zw-pf-cell.zw-pf-soul{background:rgba(184,146,74,.1);}
.zw-pf-empty{background:transparent;}
.zw-pf-star{font-size:12px;color:var(--ink,#282828);letter-spacing:.06em;font-weight:500;}
.zw-pf-type{font-size:11px;color:#4d6e55;letter-spacing:.04em;margin-top:1px;}
.zw-pf-area{font-size:10px;color:var(--muted,#999);letter-spacing:.06em;margin-top:6px;}
.zw-pf-branch{font-size:9px;color:var(--faint,#ccc);letter-spacing:.04em;}
.zw-pf-center{
  grid-column:span 2;grid-row:span 2;
  background:var(--cream,#faf9f2);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:16px;
}
.zw-pf-center-stars{font-size:18px;letter-spacing:.15em;color:var(--gold,#b8924a);margin-bottom:6px;}
.zw-pf-center-type{font-size:12px;color:var(--ink,#282828);letter-spacing:.1em;}

/* ═══════ 인물의 특성 그리드 ═══════ */
.zw-traits-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.06);
  margin-top:12px;
}
.zw-trait-cell{
  background:var(--cream,#faf9f2);padding:18px 10px;
  text-align:center;font-size:12.5px;letter-spacing:.06em;
  line-height:1.8;
}
.zw-trait-strength{color:var(--ink,#282828);}
.zw-trait-weakness{color:#b85c5c;font-size:11.5px;}

/* ═══════ 내 운명유형 서사 ═══════ */
.zw-narrative-card{
  background:var(--cream,#faf9f2);border:1px solid rgba(0,0,0,.05);
  border-radius:3px;padding:24px 20px;margin-top:12px;
}
.zw-narr-title{
  font-size:16px;letter-spacing:.12em;color:var(--gold,#b8924a);
  text-align:center;margin-bottom:16px;padding-bottom:12px;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.zw-narr-text{
  font-size:13px;line-height:2.2;color:var(--ink2,#4a4a4a);
  letter-spacing:.02em;word-break:keep-all;
  margin-bottom:14px;text-align:justify;
}
.zw-narr-text:last-child{margin-bottom:0;}

@media(max-width:480px){
  .zw-pf-cell{min-height:55px;padding:6px 3px;}
  .zw-pf-star{font-size:10px;}
  .zw-pf-type{font-size:9px;}
  .zw-pf-area{font-size:8.5px;}
  .zw-trait-cell{padding:12px 6px;font-size:11px;}
  .zw-narrative-card{padding:16px 14px;}
  .zw-narr-title{font-size:14px;}
  .zw-narr-text{font-size:12px;line-height:2;}
}

/* ── 자미두수 코칭 서사 & 메타인지 ── */
.zw-coaching{
  margin-top:20px;padding-top:18px;
  border-top:1px solid rgba(184,146,74,.15);
}
.zw-coaching-q{
  font-size:15px;letter-spacing:.1em;color:var(--gold,#b8924a);
  text-align:center;margin-bottom:14px;font-style:italic;
  line-height:1.8;
}
.zw-coaching-text{
  font-size:12.5px;line-height:2.2;color:var(--ink2,#555);
  padding:0 4px;letter-spacing:.03em;
}
.zw-combo-text{
  margin-top:12px;padding:12px 14px;
  background:rgba(184,146,74,.04);border-radius:4px;
  font-size:12px;line-height:2;color:var(--ink,#282828);
  border-left:2px solid var(--gold,#b8924a);
}
.zw-combo-star{
  display:block;font-size:10px;color:var(--gold,#b8924a);
  letter-spacing:.1em;margin-bottom:4px;font-weight:500;
}
.zw-meta{
  margin-top:18px;padding:16px;
  background:rgba(28,23,16,.03);border-radius:4px;
  text-align:center;
}
.zw-meta-label{
  font-size:9px;letter-spacing:.15em;color:var(--muted,#999);
  text-transform:uppercase;margin-bottom:8px;
}
.zw-meta-q{
  font-size:13px;line-height:2;color:var(--ink,#282828);
  letter-spacing:.04em;font-style:italic;
}

/* ── 에세이 씨앗 ── */
.zw-essay-seed{
  margin-top:18px;padding:16px;text-align:center;
  background:linear-gradient(135deg, rgba(184,146,74,.06), rgba(77,110,85,.06));
  border-radius:6px;
}
.zw-essay-label{
  font-size:9px;letter-spacing:.15em;color:var(--accent,#4d6e55);
  margin-bottom:6px;
}
.zw-essay-title{
  font-size:14px;letter-spacing:.08em;color:var(--ink,#282828);
  margin-bottom:12px;font-style:italic;line-height:1.6;
}
.zw-essay-btn{
  display:inline-block;padding:8px 20px;
  background:var(--ink,#282828);color:var(--cream,#faf9f2);
  border:none;border-radius:20px;font-size:11px;
  letter-spacing:.1em;cursor:pointer;
  transition:all .3s ease;
}
.zw-essay-btn:hover{
  background:var(--gold,#b8924a);
  transform:translateY(-1px);
}

/* ── 에세이 모달 ── */
.zw-essay-overlay{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(28,23,16,.85);z-index:9999;
  align-items:center;justify-content:center;
  padding:20px;backdrop-filter:blur(4px);
}
.zw-essay-modal{
  background:var(--cream,#faf9f2);border-radius:8px;
  max-width:520px;width:100%;max-height:90vh;
  overflow-y:auto;padding:28px 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.zw-essay-header{text-align:center;margin-bottom:20px;}
.zw-essay-palace{
  font-size:18px;letter-spacing:.12em;color:var(--ink,#282828);
  margin-bottom:6px;
}
.zw-essay-theme{
  font-size:16px;letter-spacing:.1em;color:var(--gold,#b8924a);
  font-style:italic;margin-bottom:8px;line-height:1.6;
}
.zw-essay-stars{
  font-size:10px;color:var(--muted,#999);letter-spacing:.1em;
}
.zw-essay-prompt{
  padding:16px;background:rgba(28,23,16,.03);
  border-radius:4px;margin-bottom:18px;
}
.zw-essay-prompt p{
  font-size:12px;line-height:2;color:var(--ink2,#555);
  margin:0 0 8px;
}
.zw-essay-guide-q{
  font-style:italic;color:var(--ink,#282828) !important;
  font-size:13px !important;
}
.zw-essay-textarea{
  width:100%;border:1px solid rgba(0,0,0,.08);
  border-radius:4px;padding:16px;font-size:13px;
  line-height:2;color:var(--ink,#282828);
  background:white;resize:vertical;
  font-family:'IBM Plex Sans KR','Noto Serif KR',serif;
  letter-spacing:.03em;box-sizing:border-box;
}
.zw-essay-textarea:focus{
  outline:none;border-color:var(--gold,#b8924a);
  box-shadow:0 0 0 2px rgba(184,146,74,.1);
}
.zw-essay-textarea::placeholder{
  color:var(--faint,#ccc);font-size:12px;line-height:2;
}
.zw-essay-actions{
  display:flex;gap:10px;margin-top:16px;justify-content:center;
}
.zw-essay-save{
  padding:10px 24px;background:var(--ink,#282828);
  color:var(--cream,#faf9f2);border:none;border-radius:20px;
  font-size:12px;letter-spacing:.1em;cursor:pointer;
  transition:all .3s ease;
}
.zw-essay-save:hover{background:var(--gold,#b8924a);}
.zw-essay-close{
  padding:10px 24px;background:transparent;
  color:var(--muted,#999);border:1px solid rgba(0,0,0,.1);
  border-radius:20px;font-size:12px;letter-spacing:.1em;cursor:pointer;
}
.zw-essay-close:hover{color:var(--ink,#282828);border-color:var(--ink,#282828);}

@media(max-width:600px){
  .zw-essay-modal{padding:20px 16px;}
  .zw-essay-palace{font-size:15px;}
  .zw-essay-theme{font-size:14px;}
  .zw-coaching-q{font-size:13px;}
  .zw-meta-q{font-size:12px;}
}

/* ═══════════════════════════════════════════ */
/*  소리 정원 · Frequency Harmony             */
/* ═══════════════════════════════════════════ */
.fq-header{text-align:center;padding:20px 0 24px;}
.fq-header h3{font-family:'Gowun Batang',serif;font-size:18px;letter-spacing:.12em;color:var(--ink);margin:0 0 8px;}
.fq-header p{font-size:12px;color:var(--muted);line-height:2;margin:0;}

.fq-input-wrap{display:flex;gap:8px;margin-bottom:20px;}
.fq-input{flex:1;padding:10px 14px;border:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:12px;color:var(--ink);letter-spacing:.04em;outline:none;transition:border-color .2s;}
.fq-input:focus{border-color:var(--gold);}
.fq-input::placeholder{color:var(--faint);}
.fq-search-btn{padding:10px 16px;background:var(--ink);color:var(--paper);border:none;font-family:'Gowun Batang',serif;font-size:14px;cursor:pointer;transition:opacity .2s;letter-spacing:.1em;}
.fq-search-btn:hover{opacity:.85;}

.fq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px;}
.fq-card{padding:16px 8px;text-align:center;border:1px solid var(--line);background:var(--paper);cursor:pointer;transition:all .25s;}
.fq-card:hover{border-color:var(--gold);transform:translateY(-1px);}
.fq-card.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.fq-card.recommended{animation:fqPulse .6s ease;border-color:var(--gold);box-shadow:0 0 12px rgba(184,146,74,.3);}
.fq-card-icon{font-size:20px;margin-bottom:6px;display:block;}
.fq-card-name{font-family:'Gowun Batang',serif;font-size:10px;letter-spacing:.06em;}

@keyframes fqPulse{
  0%{transform:scale(1);}
  50%{transform:scale(1.06);box-shadow:0 0 20px rgba(184,146,74,.4);}
  100%{transform:scale(1);}
}

.fq-player{text-align:center;padding:28px 20px;border:1px solid var(--line);margin-bottom:16px;background:var(--paper);animation:breathFadeIn .4s ease;}
.fq-player-icon{margin-bottom:8px;}
.fq-player-name{font-family:'Gowun Batang',serif;font-size:16px;letter-spacing:.1em;margin-bottom:4px;color:var(--ink);}
.fq-player-desc{font-size:11px;color:var(--muted);line-height:1.8;margin-bottom:12px;letter-spacing:.03em;}
.fq-player-hz{font-size:10px;color:var(--gold);letter-spacing:.12em;margin-bottom:16px;text-transform:uppercase;}

#fq-visualizer{width:100%;height:60px;margin:16px 0;display:block;}

.fq-play-btn{width:56px;height:56px;border-radius:50%;border:2px solid var(--gold);background:transparent;font-size:18px;color:var(--gold);cursor:pointer;transition:all .3s;letter-spacing:-.05em;}
.fq-play-btn:hover{background:rgba(184,146,74,.1);}
.fq-play-btn.playing{background:var(--gold);color:var(--paper);}

.fq-vol-row{display:flex;align-items:center;gap:10px;justify-content:center;margin:14px 0;}
.fq-vol-row input[type=range]{width:160px;accent-color:var(--gold);height:4px;}

.fq-timer-row{display:flex;gap:6px;justify-content:center;margin:14px 0;}
.fq-timer-btn{padding:5px 14px;border:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:10px;color:var(--muted);cursor:pointer;transition:all .2s;letter-spacing:.06em;}
.fq-timer-btn:hover{border-color:var(--gold);color:var(--gold);}
.fq-timer-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}

.fq-timer-display{font-size:22px;color:var(--ink);letter-spacing:.15em;font-variant-numeric:tabular-nums;min-height:28px;margin:6px 0;}

.fq-close-btn{margin-top:16px;padding:8px 20px;border:1px solid var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:11px;color:var(--muted);cursor:pointer;transition:all .2s;letter-spacing:.06em;}
.fq-close-btn:hover{border-color:var(--gold);color:var(--gold);}

@media(max-width:480px){
  .fq-grid{grid-template-columns:repeat(2,1fr);}
  .fq-card{padding:14px 6px;}
  .fq-card-icon{font-size:18px;}
  .fq-player{padding:20px 14px;}
  .fq-vol-row input[type=range]{width:120px;}
}

/* ══════════════════════════════════════════════
   AR – 아로마 리딩 · Scent of Soul
   ══════════════════════════════════════════════ */
.ar-header{text-align:center;margin-bottom:24px;}
.ar-header h3{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;letter-spacing:2px;color:var(--ink);}
.ar-desc{font-size:13px;color:var(--muted);margin-top:6px;}

/* Phase container */
.ar-phase{display:none;flex-direction:column;align-items:center;justify-content:center;min-height:360px;padding:20px 0;}

/* ── Phase 1: 조율 ── */
.ar-attune-wrap{display:flex;flex-direction:column;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.ar-attune-pool{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center;}
.ar-attune-core{width:40px;height:40px;border-radius:50%;background:var(--gold);opacity:0.6;animation:arPulse 2s ease-in-out infinite;}
.ar-ripple{position:absolute;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--gold);opacity:0;animation:arRipple 2s ease-out infinite;}
@keyframes arPulse{0%,100%{transform:scale(1);opacity:0.6;}50%{transform:scale(1.15);opacity:0.9;}}
@keyframes arRipple{0%{width:40px;height:40px;opacity:0.6;}100%{width:200px;height:200px;opacity:0;}}
.ar-attune-txt{text-align:center;font-size:15px;color:var(--muted);margin-top:24px;line-height:1.8;font-family:'Gowun Batang',serif;}

/* ── Phase 2: 선택 ── */
.ar-select-guide{text-align:center;font-size:14px;color:var(--gold);margin-bottom:20px;font-family:'Gowun Batang',serif;letter-spacing:0.5px;}
.ar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:360px;width:100%;}
.ar-card{perspective:600px;cursor:pointer;height:140px;}
.ar-card-inner{position:relative;width:100%;height:100%;transition:transform 0.6s;transform-style:preserve-3d;}
.ar-card.ar-flipped .ar-card-inner{transform:rotateY(180deg);}
.ar-card-back,.ar-card-front{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.ar-card-back{background:var(--paper);border:1.5px dashed var(--line);z-index:2;}
.ar-card-front{transform:rotateY(180deg);background:var(--paper);border:1.5px solid var(--line);padding:10px;}
.ar-bottle-icon{opacity:0.35;}
.ar-q{font-size:20px;color:var(--muted);margin-top:6px;font-family:'Cormorant Garamond',serif;font-style:italic;}
.ar-card-emoji{font-size:28px;}
.ar-card-name{font-size:14px;color:var(--ink);margin-top:6px;font-family:'Gowun Batang',serif;}
.ar-card-en{font-size:10px;color:var(--muted);font-family:'Cormorant Garamond',serif;font-style:italic;}
.ar-order-badge{position:absolute;top:6px;right:6px;background:var(--gold);color:#fff;font-size:9px;padding:2px 7px;border-radius:10px;font-family:'Cormorant Garamond',serif;letter-spacing:0.5px;}

/* ── Phase 3: 블렌딩 ── */
.ar-blend-title{text-align:center;font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--ink);letter-spacing:1px;margin-bottom:20px;}
.ar-bottle-wrap{display:flex;justify-content:center;animation:arFloat 3s ease-in-out infinite;}
@keyframes arFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.ar-bottle-svg{filter:drop-shadow(0 4px 12px rgba(0,0,0,0.1));}
#ar-soul-bottle{transition:background 1s ease;}
.ar-blend-names{text-align:center;font-size:13px;color:var(--muted);margin-top:20px;font-family:'Gowun Batang',serif;}

/* ── Phase 4: 해석 ── */
.ar-reading-inner{max-width:500px;width:100%;padding:20px 0;}
.ar-layer{padding:20px;margin-bottom:16px;border-radius:14px;background:rgba(255,255,255,0.6);border:1px solid var(--line);transition:opacity 0.8s ease;}
.ar-layer-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ar-layer-icon{font-size:22px;}
.ar-layer-title{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:1px;}
.ar-layer-oil{font-size:15px;color:var(--gold);font-family:'Gowun Batang',serif;margin-bottom:4px;}
.ar-layer-sub{font-size:11px;color:var(--muted);margin-bottom:10px;font-style:italic;}
.ar-layer-msg{font-size:14px;color:var(--ink);line-height:1.8;font-family:'Gowun Batang',serif;}

/* 셀프 코칭 */
.ar-coach{margin:24px 0;padding:20px;border-radius:14px;background:rgba(184,146,74,0.06);border:1px solid var(--gold);border-opacity:0.2;}
.ar-coach-label{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;font-family:'Cormorant Garamond',serif;}
.ar-coach-q{font-size:15px;color:var(--ink);line-height:1.7;font-family:'Gowun Batang',serif;margin-bottom:14px;}
.ar-coach-ans{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;font-size:14px;font-family:'Gowun Batang',serif;background:var(--paper);color:var(--ink);resize:vertical;box-sizing:border-box;}
.ar-coach-ans:focus{outline:none;border-color:var(--gold);}

/* 소울 카드 */
.ar-soul-card{margin:24px auto;width:280px;padding:28px 20px;border-radius:16px;text-align:center;color:#fff;position:relative;overflow:hidden;}
.ar-sc-title{font-family:'Cormorant Garamond',serif;font-size:20px;letter-spacing:3px;margin-bottom:20px;text-shadow:0 1px 4px rgba(0,0,0,0.3);}
.ar-sc-oils{display:flex;justify-content:space-around;margin-bottom:20px;}
.ar-sc-item{font-size:14px;font-family:'Gowun Batang',serif;text-shadow:0 1px 2px rgba(0,0,0,0.3);}
.ar-sc-item small{font-size:10px;opacity:0.8;font-family:'Cormorant Garamond',serif;letter-spacing:1px;}
.ar-sc-footer{font-size:10px;opacity:0.6;letter-spacing:1px;}

/* 버튼 */
.ar-actions{display:flex;gap:12px;justify-content:center;margin-top:24px;}
.ar-btn{padding:10px 24px;border:none;border-radius:20px;font-size:13px;cursor:pointer;font-family:'Gowun Batang',serif;background:var(--gold);color:#fff;transition:opacity 0.2s;}
.ar-btn:hover{opacity:0.85;}
.ar-btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line);}
.ar-btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

/* ── 반응형 ── */
@media(max-width:480px){
  .ar-grid{grid-template-columns:repeat(3,1fr);gap:8px;max-width:300px;}
  .ar-card{height:120px;}
  .ar-card-emoji{font-size:22px;}
  .ar-card-name{font-size:12px;}
  .ar-soul-card{width:240px;padding:22px 16px;}
  .ar-layer{padding:16px;}
}
