/* 강호행 기록 화면(records.js) — 수련 현황 · 요괴 도감 v2 · 계보도 · 관리자 체험 패널
   먹빛/한지 팔레트 · 명조 제목 · 두꺼운 먹 테두리 · 딱딱한 그림자. 모든 클래스는 rc- 접두사. */
.rc{--rc-ink:#1b1b22;--rc-ink2:#34313d;--rc-hanji:#f4f1e8;--rc-hanji2:#e9d8a6;--rc-wood:#8c6e45;--rc-seal:#b8322e;--rc-gold:#e8b53a;--rc-jade:#4fa38a;
  --rc-ok:#3f9a74;--rc-okt:#1d6b4b;--rc-ng:#c9493f;--rc-ngt:#9e2a22;--rc-muted:#5a5566;--rc-line:#c9b27c;--rc-serif:"Batang","AppleMyungjo","Noto Serif KR",serif;
  min-width:0}
.rc *{box-sizing:border-box}
.rc .myeong,.rc h2,.rc h3,.rc h4{font-family:var(--rc-serif)}
.rc .scroll{overflow:hidden}
.rc-px{image-rendering:pixelated;image-rendering:crisp-edges;display:block}
.rc-sil{filter:brightness(0);opacity:.82}
.rc-ghost{filter:grayscale(1) contrast(.8);opacity:.5}
.rc-h h2 .rc-sub{display:block;font:800 12.5px/1.3 system-ui,sans-serif;color:var(--rc-muted);margin-top:2px}
.rc-ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rc-muted{color:var(--rc-muted)}
.rc-loading,.rc-error{margin:14px 0;padding:18px 14px;text-align:center;font-weight:800}
.rc-loading{color:var(--rc-hanji2,#e9d8a6)}
.rc-loading:before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:rcSpin .8s linear infinite}
.rc-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.rc-h h2,.rc-h h3{margin:0;min-width:0}
.rc-h h2{font-size:clamp(19px,5.6vw,25px);line-height:1.25}
.rc-h h3{font-size:clamp(16.5px,4.6vw,19px);line-height:1.25}
.rc-keep span{white-space:nowrap}
.rc-h .rc-grow{flex:1 1 auto}
.rc-chip{display:inline-flex;align-items:center;gap:4px;border:2px solid var(--rc-ink);border-radius:999px;padding:3px 10px;background:#fff;color:var(--rc-ink);font-weight:800;font-size:12.5px;line-height:1.2;cursor:pointer;white-space:nowrap}
.rc-chip[aria-pressed="true"],.rc-chip.on{background:var(--rc-ink);color:var(--rc-hanji)}
.rc-chip.dim{opacity:.55}
.rc-chip:focus-visible,.rc button:focus-visible,.rc-back button:focus-visible{outline:3px solid var(--rc-gold);outline-offset:2px}
.rc-tag{display:inline-block;flex:none;font-weight:900;font-size:10.5px;line-height:1.3;border:1.5px solid var(--rc-ink);border-radius:5px;padding:0 4px;background:var(--rc-hanji2);color:var(--rc-ink)}
.rc-stamp{position:absolute;right:6px;top:6px;z-index:2;font:900 13px/1 var(--rc-serif);letter-spacing:1px;color:var(--rc-seal);border:2.5px solid currentColor;border-radius:4px;padding:3px 4px;background:#fffaf0cc;transform:rotate(-9deg);pointer-events:none}
.rc-stamp.met{color:var(--rc-ink2)}.rc-stamp.subdued{color:#9a6a00;background:#fff4c9e6}
.rc-sm{font-size:12px}
.rc-note{margin:8px 0 0;font-size:12.5px;color:var(--rc-muted);line-height:1.45}
.rc-note b{color:var(--rc-ink)}
.rc-empty{text-align:center;padding:18px 12px}
.rc-empty .rc-emo{font-size:44px;line-height:1}
.rc-empty p{margin:8px 0 12px;font-weight:700;line-height:1.5}

/* ── 공용 아래 시트 */
body.rc-lock{overflow:hidden}
.rc-back{position:fixed;inset:0;z-index:75;background:#0b0a0fcc;display:flex;align-items:flex-end;justify-content:center;animation:rcFade .18s both}
.rc-sheet{position:relative;width:100%;max-width:600px;max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain;
  background:var(--rc-hanji);color:var(--rc-ink);border:3px solid #000;border-bottom:0;border-top:10px solid var(--rc-wood);border-radius:14px 14px 0 0;box-shadow:0 -6px 0 #0008;
  padding:10px 14px calc(16px + env(safe-area-inset-bottom,0px));animation:rcUp .24s cubic-bezier(.2,.9,.3,1.1) both}
.rc-xbar{position:sticky;top:0;z-index:6;height:0;display:flex;justify-content:flex-end;pointer-events:none}
.rc-x{pointer-events:auto;flex:none;width:40px;height:40px;margin:-4px -6px 0 0;border:2.5px solid var(--rc-ink);border-radius:10px;background:#fff;color:var(--rc-ink);font-size:17px;font-weight:900;box-shadow:2px 2px 0 var(--rc-ink);cursor:pointer}
@media (min-width:720px){.rc-back{align-items:center;padding:16px}.rc-sheet{border-bottom:3px solid #000;border-radius:14px;max-height:92dvh;box-shadow:6px 6px 0 #000}}

/* ── 사부 영상(기본 음소거 + 자막) */
.rc-video{position:fixed;inset:0;z-index:85;background:#000e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.rc-video .rc-vt{color:#ffe08a;font:800 15px/1.3 var(--rc-serif);text-align:center;max-width:720px}
.rc-video video{width:100%;max-width:720px;max-height:62dvh;background:#000;border:3px solid #000;border-radius:8px;box-shadow:0 0 0 2px #e9d8a655}
.rc-video .rc-vbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.rc-video .rc-vmsg{color:#ffd7d2;font-weight:800;text-align:center}

/* ══════════════ A. 수련 현황 */
.rc-sum-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.rc-ring{width:100px;height:100px;display:block}
.rc-ring .trk{fill:none;stroke:#e3dccb;stroke-width:11}
.rc-ring .ok{fill:none;stroke:var(--rc-ok);stroke-width:11}
.rc-ring .ng{fill:none;stroke:var(--rc-ng);stroke-width:11}
.rc-ring .edge{fill:none;stroke:var(--rc-ink);stroke-width:2.5}
.rc-ring text{font-family:var(--rc-serif);font-weight:900;fill:var(--rc-ink)}
.rc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.rc-tile{border:2.5px solid var(--rc-ink);border-radius:9px;background:#fff;padding:4px 2px 5px;text-align:center;box-shadow:2px 2px 0 var(--rc-ink);min-width:0}
.rc-tile small{display:block;font-size:11px;font-weight:800;color:var(--rc-muted)}
.rc-tile b{display:block;font:900 clamp(17px,5.4vw,24px)/1.1 var(--rc-serif);overflow:hidden;text-overflow:ellipsis}
.rc-tile.ok b{color:var(--rc-okt)}.rc-tile.ng b{color:var(--rc-ngt)}
.rc-week{margin-top:7px;font-size:13px;font-weight:800;line-height:1.35}
.rc-week .up{color:var(--rc-okt)}.rc-week .down{color:var(--rc-ngt)}
.rc-days{margin-top:12px}
.rc-days-bars{display:flex;align-items:flex-end;gap:3px;height:74px;border-bottom:2.5px solid var(--rc-ink);padding:0 1px}
.rc-day{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column-reverse;position:relative}
.rc-day i{display:block;width:100%;flex:none}
.rc-day i.ok{background:var(--rc-ok);border-radius:0}
.rc-day i.ng{background:var(--rc-ng);border-radius:3px 3px 0 0}
.rc-day i.ok:only-of-type{border-radius:3px 3px 0 0}
.rc-day.today:after{content:"";position:absolute;left:-1px;right:-1px;bottom:-6px;height:3px;background:var(--rc-gold)}
.rc-day.zero:before{content:"";position:absolute;left:30%;right:30%;bottom:0;height:2px;background:#cfc6b1}
.rc-days-lab{display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:var(--rc-muted);margin-top:7px}
.rc-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;font-weight:800;color:var(--rc-muted);margin-top:4px}
.rc-legend i{display:inline-block;width:10px;height:10px;border:1.5px solid var(--rc-ink);border-radius:2px;margin-right:3px;vertical-align:-1px}
.rc-legend i.ok{background:var(--rc-ok)}.rc-legend i.ng{background:var(--rc-ng)}
.rc-srcs{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.rc-src{display:inline-flex;align-items:center;gap:4px;border:2px solid var(--rc-ink);border-radius:8px;padding:2px 8px;background:#fff;font-size:12px;font-weight:800;white-space:nowrap}
.rc-src b{font-family:var(--rc-serif)}
.rc-src.zero{opacity:.5;background:transparent}
.rc-courses{display:flex;gap:5px;flex-wrap:wrap}
.rc-sorts{display:flex;gap:5px;flex-wrap:wrap}
.rc-tree{margin-top:4px}
.rc-node{position:relative;min-width:0}
.rc-node .rc-kids{margin-left:9px;padding-left:9px;border-left:2px dashed var(--rc-line)}
.rc-node + .rc-node{border-top:1px dashed #d8cba7}
.rc-node.lv-course > .rc-rowwrap .rc-name{font-size:17px}
.rc-node.lv-unit > .rc-rowwrap .rc-name{font-size:15.5px}
.rc-rowwrap{padding:8px 0 7px}
.rc-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;background:none;border:0;padding:0;margin:0;text-align:left;color:var(--rc-ink);font:inherit;cursor:pointer}
.rc-row[disabled]{cursor:default}
.rc-row .rc-caret{display:grid;place-items:center;width:22px;height:22px;border:2px solid var(--rc-ink);border-radius:6px;background:#fff;font-size:11px;font-weight:900;transition:transform .15s}
.rc-row[aria-expanded="true"] .rc-caret{transform:rotate(90deg);background:var(--rc-gold)}
.rc-row .rc-caret.leaf{border-color:transparent;background:none;color:var(--rc-line)}
.rc-namebox{display:flex;align-items:center;gap:5px;min-width:0}
.rc-name{font:900 14.5px/1.25 var(--rc-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rc-acc{flex:none;font:900 13px/1 var(--rc-serif);border:2px solid var(--rc-ink);border-radius:7px;padding:3px 6px;background:#fff;min-width:46px;text-align:center}
.rc-acc.hi{background:#d8f0e3}.rc-acc.mid{background:#fff0c2}.rc-acc.lo{background:#fbd9d3}.rc-acc.none{background:transparent;border-style:dashed;color:var(--rc-muted)}
.rc-bar{display:block;height:11px;margin:6px 0 4px 28px;border:2px solid var(--rc-ink);border-radius:6px;background:#ece5d3;overflow:hidden}
.rc-bar .fill{display:flex;height:100%;min-width:0}
.rc-bar .fill i{display:block;height:100%;min-width:0}
.rc-bar .fill i.ok{background:var(--rc-ok)}.rc-bar .fill i.ng{background:var(--rc-ng)}
.rc-bar .fill i.ok + i.ng{box-shadow:inset 2px 0 0 #0004}
.rc-nums{margin-left:28px;font-size:12.5px;font-weight:800;line-height:1.35;color:var(--rc-ink2)}
.rc-nums .ok{color:var(--rc-okt)}.rc-nums .ng{color:var(--rc-ngt)}
.rc-prog{display:flex;flex-wrap:wrap;gap:4px;margin:5px 0 0 28px}
.rc-pb{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:800;border:1.5px solid #8f8575;border-radius:999px;padding:0 7px;background:#fffdf6;white-space:nowrap;line-height:1.5}
.rc-pb.due{border-color:var(--rc-seal);color:var(--rc-seal);background:#fdeceb}
.rc-pb.nem{border-color:#7a1d18;background:#7a1d18;color:#fff}
.rc-pb.gold{border-color:#9a6a00;background:#fff4c9}
.rc-pb.zero{opacity:.55}
.rc-weak{list-style:none;margin:0;padding:0}
.rc-weak li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;padding:9px 0;border-top:1px dashed var(--rc-line)}
.rc-weak li:first-child{border-top:0}
.rc-weak .stem{font-weight:800;font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rc-weak .meta{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;font-weight:800;color:var(--rc-muted)}
.rc-weak .meta .ng{color:var(--rc-ngt)}
.rc-weak .rc-wbar{display:inline-block;width:56px;height:8px;border:1.5px solid var(--rc-ink);border-radius:5px;background:var(--rc-ok);overflow:hidden;vertical-align:middle}
.rc-weak .rc-wbar i{display:block;height:100%;background:var(--rc-ng)}
.rc-clipbtn{padding:6px 10px!important;font-size:13px!important;border-width:2.5px!important;box-shadow:2px 2px 0 var(--rc-ink)!important;white-space:nowrap}

/* ══════════════ B. 요괴 도감 v2 */
.rc-comp{display:flex;align-items:center;gap:8px;margin:6px 0 4px}
.rc-comp-bar{flex:1 1 auto;height:16px;border:2.5px solid var(--rc-ink);border-radius:9px;background:#fff;overflow:hidden;position:relative}
.rc-comp-bar i{display:block;height:100%;background:repeating-linear-gradient(-45deg,#e8b53a 0 8px,#f2c95b 8px 16px)}
.rc-comp b{font:900 22px/1 var(--rc-serif);min-width:54px;text-align:right}
.rc-bstats{display:flex;gap:5px;flex-wrap:wrap}
.rc-bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:9px}
.rc-bcard{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;border:2.5px solid var(--rc-ink);border-radius:11px;background:#fff;color:var(--rc-ink);padding:6px 6px 7px;box-shadow:3px 3px 0 var(--rc-ink);cursor:pointer;text-align:center;font:inherit;transition:transform .08s}
.rc-bcard:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--rc-ink)}
.rc-bcard.st-unknown{background:#e9e4d8}
.rc-bcard.st-subdued{background:linear-gradient(#fffbea,#fff)}
.rc-stage{position:relative;display:grid;place-items:end center;height:104px;border-radius:8px;overflow:hidden;
  background:radial-gradient(70% 22% at 50% 92%,#0000001f,#0000 70%),linear-gradient(#f7f1e1 0 72%,#e3d3a8 72% 100%);border:2px solid var(--rc-line)}
.rc-bcard.st-unknown .rc-stage{background:radial-gradient(70% 22% at 50% 92%,#0000002a,#0000 70%),linear-gradient(#d9d2c2 0 72%,#c7bb9c 72% 100%)}
.rc-stage canvas{margin-bottom:2px;will-change:transform}
.rc-bcard .nm{display:block;margin-top:5px;font:900 14.5px/1.2 var(--rc-serif)}
.rc-bcard .tp{display:block;font-size:11.5px;font-weight:700;color:var(--rc-muted)}
.rc-ranks{display:flex;justify-content:center;align-items:flex-end;gap:1px;margin:4px 0 2px;min-height:30px}
.rc-ranks canvas{flex:0 1 30px;width:30px;height:auto;aspect-ratio:1;min-width:0}
.rc-vbadges{display:flex;justify-content:center;gap:4px;flex-wrap:wrap;margin-top:2px}
.rc-vb{font-size:11px;font-weight:900;border:1.5px solid var(--rc-ink);border-radius:999px;padding:0 6px;background:#fff;white-space:nowrap;line-height:1.5}
.rc-vb.off{opacity:.4;border-style:dashed}
.rc-vb.shiny{background:linear-gradient(90deg,#ffe08a,#ffd1f0,#c9ecff,#ffe08a);background-size:300% 100%;animation:rcShimmer 2.4s linear infinite}
.rc-kills{margin-top:4px;font-size:11.5px;font-weight:800;color:var(--rc-ink2)}
.rc-spark{position:absolute;inset:0;pointer-events:none;z-index:1}
.rc-spark i{position:absolute;width:7px;height:7px;background:#fff6b3;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:rcTwinkle 1.8s ease-in-out infinite;filter:drop-shadow(0 0 2px #e8b53a)}
.rc-spark i:nth-child(1){left:14%;top:18%}.rc-spark i:nth-child(2){left:78%;top:26%;animation-delay:.5s}.rc-spark i:nth-child(3){left:66%;top:62%;animation-delay:1s;width:5px;height:5px}.rc-spark i:nth-child(4){left:24%;top:58%;animation-delay:1.35s;width:5px;height:5px}
.rc-shiny-hue{filter:hue-rotate(155deg) saturate(1.5) brightness(1.08)}
/* 상세 시트 */
.rc-dt-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.rc-dt-stage{position:relative;display:grid;place-items:end center;height:176px;border:3px solid var(--rc-ink);border-radius:12px;overflow:hidden;touch-action:pan-y;
  background:radial-gradient(40% 12% at 50% 90%,#00000026,#0000 70%),linear-gradient(#f9f4e6 0 74%,#e3d3a8 74% 100%)}
.rc-dt-stage.unknown{background:radial-gradient(40% 12% at 50% 90%,#00000033,#0000 70%),linear-gradient(#d9d2c2 0 74%,#c7bb9c 74% 100%)}
.rc-dt-stage canvas{margin-bottom:4px}
.rc-poses{display:flex;align-items:center;gap:5px;min-width:0}
.rc-poses .rc-arrow{flex:none;width:34px;height:32px;border:2.5px solid var(--rc-ink);border-radius:8px;background:#fff;font-weight:900;cursor:pointer;box-shadow:2px 2px 0 var(--rc-ink);color:var(--rc-ink)}
.rc-poses .rc-arrow[disabled]{opacity:.35}
.rc-poselist{flex:1 1 auto;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0;padding:2px}
.rc-poselist::-webkit-scrollbar{display:none}
.rc-poselist > :first-child{margin-left:auto}.rc-poselist > :last-child{margin-right:auto}
.rc-varsel{display:flex;gap:5px;flex-wrap:wrap}
.rc-dt-title{display:flex;align-items:flex-start;gap:8px;margin:4px 0 2px;position:relative;padding-right:112px;min-height:44px}
.rc-dt-title h3{margin:0;font-size:22px;line-height:1.2;min-width:0}
.rc-dt-title h3 small{display:block;font:800 12.5px/1.3 system-ui,sans-serif;color:var(--rc-muted);margin-top:2px}
.rc-dt-title .rc-stamp{top:4px;right:50px;font-size:16px;padding:4px 6px}
.rc-bubble{position:relative;margin:18px 0 6px;padding:8px 12px;background:#fff;border:2.5px solid var(--rc-ink);border-radius:14px;font-weight:800;font-style:italic;color:var(--rc-seal);box-shadow:2px 2px 0 var(--rc-ink)}
.rc-bubble:before{content:"";position:absolute;left:26px;top:-11px;width:14px;height:14px;background:#fff;border-left:2.5px solid var(--rc-ink);border-top:2.5px solid var(--rc-ink);transform:rotate(45deg) skew(8deg,8deg)}
.rc-dt-stats{display:grid;gap:5px;margin:8px 0}
.rc-meter{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:6px;align-items:center;font-size:12.5px;font-weight:800}
.rc-meter .tr{height:10px;border:2px solid var(--rc-ink);border-radius:6px;background:#fff;overflow:hidden}
.rc-meter .tr i{display:block;height:100%;background:var(--rc-jade)}
.rc-meter .tr.beat i{background:var(--rc-seal)}.rc-meter .tr.sub i{background:var(--rc-gold)}
.rc-lore{position:relative;margin:12px 4px;padding:12px 14px;background:#efe3c2 linear-gradient(90deg,#0000 0 96%,#b89b5f33 100%);border-left:3px solid #6b4f2a;border-right:3px solid #6b4f2a;font-family:var(--rc-serif);color:#2c2418;box-shadow:inset 0 0 18px #b89b5f55}
.rc-lore:before,.rc-lore:after{content:"";position:absolute;left:-9px;right:-9px;height:9px;background:linear-gradient(#8c6e45,#5c4526);border:2px solid #2a1c0c;border-radius:6px}
.rc-lore:before{top:-6px}.rc-lore:after{bottom:-6px}
.rc-lore h4{margin:0 0 6px;font-size:14px;letter-spacing:2px;color:#6b4f2a}
.rc-lore p{margin:4px 0;font-size:14px;line-height:1.55}
.rc-lore p.whisper{color:#7a1d18}
.rc-sec-h{margin:14px 0 6px;font-size:15px;display:flex;align-items:center;gap:6px}
.rc-ranklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}
.rc-ranklist li{display:flex;align-items:center;gap:6px;border:2px solid var(--rc-ink);border-radius:9px;background:#fff;padding:3px 8px 3px 3px;min-width:0}
.rc-ranklist li b{font-family:var(--rc-serif);font-size:13.5px}
.rc-ranklist li small{display:block;font-size:11px;color:var(--rc-muted);font-weight:700}
.rc-ranklist canvas{flex:none;background:#f4efe1;border-radius:6px}
.rc-varslots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rc-vslot{position:relative;border:2.5px solid var(--rc-ink);border-radius:10px;background:#fff;padding:6px;text-align:center;min-width:0}
.rc-vslot.locked{background:#e9e4d8;border-style:dashed}
.rc-vslot .rc-stage{height:84px}
.rc-vslot b{display:block;margin-top:4px;font-family:var(--rc-serif)}
.rc-vslot small{display:block;font-size:11.5px;font-weight:800;color:var(--rc-muted)}
/* 보스·큰 요괴 */
.rc-bossgrid,.rc-biggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:9px}
.rc-boss,.rc-big{position:relative;border:2.5px solid var(--rc-ink);border-radius:11px;background:#fff;padding:6px;text-align:center;min-width:0;box-shadow:3px 3px 0 var(--rc-ink)}
.rc-boss .rc-stage{height:84px}
.rc-big .rc-stage{height:102px;background:radial-gradient(60% 20% at 50% 92%,#0000002a,#0000 70%),linear-gradient(#e7e0f0 0 72%,#cbbfa3 72% 100%)}
.rc-boss b,.rc-big b{display:block;margin-top:4px;font:900 13.5px/1.25 var(--rc-serif)}
.rc-boss small,.rc-big small{display:block;font-size:11.5px;font-weight:800;color:var(--rc-muted);line-height:1.35}
.rc-medal{position:absolute;right:5px;top:5px;z-index:2;font-size:22px;line-height:1;filter:drop-shadow(1px 1px 0 #000)}
.rc-boss.unseen,.rc-big.unseen{background:#e9e4d8;box-shadow:none;border-style:dashed}
.rc-emoji-spr{font-size:52px;line-height:1;margin-bottom:8px}

/* ══════════════ C. 계보도 */
.rc-slotbox{position:relative}
.rc-meterline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-meterline .lab{font:900 16px/1.3 var(--rc-serif)}
.rc-meterline .lab b{font-size:22px;color:var(--rc-seal)}
.rc-pips{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 2px}
.rc-pip{width:22px;height:22px;border:2.5px solid var(--rc-ink);border-radius:6px;background:#fff;box-shadow:1.5px 1.5px 0 var(--rc-ink);display:grid;place-items:center;font-size:12px;transition:background .15s,transform .15s}
.rc-pip.on{background:radial-gradient(circle at 50% 45%,#fff3b0 0 20%,#e8b53a 55%,#c9861c 100%);transform:translateY(-1px)}
.rc-pip.more{width:auto;padding:0 6px;font-weight:900;font-size:11px;background:var(--rc-hanji2)}
.rc-shake{animation:rcShake .45s cubic-bezier(.36,.07,.19,.97) both}
.rc-why{margin:8px 0 0;padding:7px 10px;border:2.5px solid var(--rc-seal);border-radius:9px;background:#fdeceb;color:var(--rc-ngt);font-weight:800;font-size:13px;line-height:1.4}
.rc-course{position:relative}
.rc-course-h{display:flex;align-items:center;gap:10px;min-width:0}
.rc-course-h .rc-cseal{flex:none;display:grid;place-items:center;width:44px;height:44px;border:2.5px solid var(--rc-ink);border-radius:8px;background:var(--rc-seal);color:#fff;font:900 16px/1 var(--rc-serif);transform:rotate(-4deg);box-shadow:2px 2px 0 var(--rc-ink)}
.rc-course-h .txt{flex:1 1 auto;min-width:0}
.rc-course-h h3{margin:0;font-size:19px;line-height:1.2}
.rc-course-h small{display:block;font-size:12px;font-weight:700;color:var(--rc-muted)}
.rc-access{flex:none;font-weight:900;font-size:12px;border:2px solid var(--rc-ink);border-radius:999px;padding:2px 9px;white-space:nowrap;background:#fff}
.rc-access.open{background:#d8f0e3}.rc-access.enrolled{background:#fbe2c8}.rc-access.locked{background:#dedad2}
.rc-course.locked .rc-course-h{filter:grayscale(1);opacity:.72}
.rc-course.locked .rc-cseal{background:var(--rc-ink2)}
.rc-enroll{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-items:end;margin-top:10px}
.rc-enroll label{grid-column:1/-1;font-weight:800;font-size:13px;color:var(--rc-ink2)}
.rc-enroll .input{border-color:var(--rc-ink);text-transform:uppercase;letter-spacing:1px;min-width:0}
.rc-enroll .err{grid-column:1/-1;margin:0;min-height:0}
.rc-enroll .dj-btn{height:48px}
/* 계보도 = 기혈도(氣穴圖 아님 — 우리말로 "기혈 지도"). 경락(주차) 줄 위에 혈자리(거점)가 이어진다.
   글자는 거점 코드만 두고, 자세한 것은 ⓘ(폰)·마우스 호버(PC)로 연다 — 폰 세로가 좁기 때문. */
.rc-mers{margin-top:10px;display:flex;flex-direction:column;gap:13px}
.rc-mer{position:relative}
.rc-mer-h{display:flex;align-items:center;gap:6px;font:900 13.5px/1.3 var(--rc-serif);color:var(--rc-muted);margin:0 0 4px;min-width:0}
.rc-pts{position:relative;display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-start;padding:6px 6px 4px}
.rc-pts:before{content:"";position:absolute;left:14px;right:14px;top:33px;height:3px;border-radius:2px;
  background:repeating-linear-gradient(90deg,var(--rc-line) 0 7px,#0000 7px 14px)}
.rc-pt-wrap{position:relative;display:inline-flex}
.rc-pt{position:relative;width:54px;height:54px;border-radius:50%;border:3px solid var(--rc-ink);background:#fff;color:var(--rc-ink);
  display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:2px 2px 0 var(--rc-ink);transition:transform .1s,box-shadow .1s}
.rc-pt .ring{position:absolute;inset:3px;border-radius:50%;background:conic-gradient(var(--rc,#8c6e45) var(--p,0%),#e6ddc9 0)}
.rc-pt:after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fffdf5}
.rc-pt b{position:relative;z-index:2;font:900 15px/1 var(--rc-serif)}
.rc-pt i.due{position:absolute;right:0;top:0;z-index:3;width:12px;height:12px;border-radius:50%;background:var(--rc-seal);border:2px solid #fff}
.rc-pt:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--rc-ink)}
.rc-pt.on{border-color:var(--rc-gold);box-shadow:2px 2px 0 var(--rc-ink),0 0 0 3px #f2a93b55,0 0 15px 4px #f2a93b77}
.rc-pt.on:after{background:radial-gradient(circle at 50% 40%,#fff8d6 0 38%,#ffdf9a 100%)}
.rc-pt.on b{color:#7a4a08}
@media (prefers-reduced-motion:no-preference){.rc-pt.on{animation:rcPulse 2.4s ease-in-out infinite}}
@keyframes rcPulse{0%,100%{box-shadow:2px 2px 0 var(--rc-ink),0 0 0 3px #f2a93b55,0 0 13px 3px #f2a93b66}
  50%{box-shadow:2px 2px 0 var(--rc-ink),0 0 0 4px #f2a93b88,0 0 22px 7px #f2a93b99}}
.rc-pti{position:absolute;right:-7px;bottom:-5px;z-index:4;width:25px;height:25px;border-radius:50%;border:2px solid var(--rc-ink);background:#fff;color:var(--rc-ink2);
  font:900 12px/1 Pretendard,system-ui,sans-serif;cursor:pointer;padding:0;box-shadow:1px 1px 0 var(--rc-ink)}
.rc-course.locked .rc-pt,.rc-course.locked .rc-pti{filter:grayscale(1);opacity:.6}
.rc-pt.deny{animation:rcShake .4s both}
/* 설명 문단은 기본으로 접는다 — 📖 설명서 로 편다 */
.rc-lineage .rc-note{display:none}
.rc-lineage.guide-on .rc-note{display:block}
/* 혈자리 상세 쪽지 */
.rc-tip{position:fixed;z-index:60;width:min(300px,calc(100vw - 16px));background:#fffdf5;color:var(--rc-ink);border:3px solid var(--rc-ink);
  border-radius:12px;box-shadow:4px 4px 0 var(--rc-ink);padding:10px 12px 12px;animation:rcTip .16s both}
@keyframes rcTip{from{opacity:0;transform:translateY(5px)}}
.rc-tip.sheet{left:8px;right:8px;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom,0px));width:auto}
.rc-tip .rc-meter{margin-top:5px}
.rc-tip-x{position:absolute;right:3px;top:1px;border:0;background:none;font:900 16px/1 system-ui,sans-serif;color:var(--rc-muted);cursor:pointer;padding:5px 7px}
.rc-tip-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 24px 6px 0;font:900 15px/1.3 var(--rc-serif)}
.rc-tip-due{margin:7px 0 0;font-weight:800;font-size:13px;color:var(--rc-seal)}
.rc-tip-act{margin:8px 0 0;font-size:12.5px;font-weight:700;color:var(--rc-muted);line-height:1.45}
.rc-realm{flex:none;font-weight:900;font-size:10.5px;color:#fff;border:1.5px solid var(--rc-ink);border-radius:5px;padding:0 5px;line-height:1.55}
.rc-realm.light{color:var(--rc-ink)}
.rc-savebar{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px;padding:8px 10px;
  background:var(--rc-ink);color:var(--rc-hanji);border:3px solid #000;border-radius:12px;box-shadow:0 4px 0 #000a;animation:rcUp .2s both}
.rc-savebar .msg{flex:1 1 140px;min-width:0;font-weight:800;font-size:13px}
.rc-savebar .dj-btn{padding:8px 12px;font-size:15px}
.rc-stampin{position:absolute;right:14px;top:8px;z-index:6;display:grid;place-items:center;width:78px;height:78px;border:4px solid var(--rc-seal);border-radius:10px;color:var(--rc-seal);background:#fff5f0e6;
  font:900 26px/1 var(--rc-serif);letter-spacing:2px;writing-mode:vertical-rl;animation:rcStamp .55s cubic-bezier(.2,1.6,.4,1) both;pointer-events:none;box-shadow:0 0 0 3px #fff8 inset}

/* ══════════════ D. 체험 모드 */
.rc-sbx-fab{position:fixed;left:calc(12px + env(safe-area-inset-left,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:66;display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:56px;height:58px;border:3px solid #000;border-radius:14px;background:#2d2a36;color:#ffe08a;box-shadow:3px 3px 0 #000;cursor:pointer;font:inherit;padding:0}
body.rc-has-fab:not(.in-map):not(.in-run){padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
.rc-sbx-fab span{font-size:24px;line-height:1}
.rc-sbx-fab small{font-size:10.5px;font-weight:900;margin-top:2px;letter-spacing:1px}
.rc-sbx-fab:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #000}
.rc-sbx h3{margin:0 0 4px;font-size:20px}
.rc-sbx-now{font-size:12.5px;font-weight:800;color:var(--rc-ink2);line-height:1.4;padding-right:40px}
.rc-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}
.rc-preset{border:2.5px solid var(--rc-ink);border-radius:10px;background:#fff;color:var(--rc-ink);padding:6px 8px;text-align:left;font:inherit;cursor:pointer;box-shadow:2px 2px 0 var(--rc-ink);min-width:0}
.rc-preset b{display:block;font:900 14px/1.25 var(--rc-serif)}
.rc-preset small{display:block;font-size:11.5px;font-weight:700;color:var(--rc-muted)}
.rc-preset.on{background:#ffe9a8;box-shadow:2px 2px 0 var(--rc-ink),inset 0 0 0 2px #e8b53a}
.rc-sbx-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:2.5px solid var(--rc-ink);border-radius:12px;background:radial-gradient(circle at 20% 70%,#fff,#e9d8a6 80%);padding:6px 10px 6px 6px}
.rc-sbx-hero .tier{font:900 19px/1.2 var(--rc-serif)}
.rc-sbx-hero small{display:block;font-size:12px;font-weight:700;color:var(--rc-ink2);line-height:1.4}
.rc-field{display:block;margin:10px 0 0;font-weight:800;font-size:13px}
.rc-field .row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rc-field output{font:900 18px/1 var(--rc-serif);color:var(--rc-seal)}
.rc-field input[type=range]{width:100%;margin:6px 0 0;accent-color:#b8322e;height:28px}
.rc-field .input{margin-top:4px;padding:8px 10px;font-size:15px}
.rc-field .rc-warn{display:block;margin-top:3px;font-size:11.5px;color:var(--rc-ngt)}
.rc-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.rc-grid3 .rc-field{min-width:0}
.rc-switches{display:grid;gap:6px;margin-top:12px}
.rc-switch{display:flex;align-items:center;gap:10px;border:2.5px solid var(--rc-ink);border-radius:10px;background:#fff;padding:7px 10px;font-weight:800;font-size:14px;cursor:pointer}
.rc-switch small{display:block;font-size:11.5px;color:var(--rc-muted);font-weight:700}
.rc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.rc-switch .kn{flex:none;position:relative;width:46px;height:26px;border:2.5px solid var(--rc-ink);border-radius:999px;background:#d7d0c1;transition:background .15s}
.rc-switch .kn:after{content:"";position:absolute;left:2px;top:2px;width:17px;height:17px;border:2px solid var(--rc-ink);border-radius:50%;background:#fff;transition:transform .15s}
.rc-switch input:checked + .kn{background:var(--rc-jade)}
.rc-switch input:checked + .kn:after{transform:translateX(19px)}
.rc-switch input:focus-visible + .kn{outline:3px solid var(--rc-gold);outline-offset:2px}
.rc-sbx-apply{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom,0px));z-index:4;margin:12px -14px calc(-16px - env(safe-area-inset-bottom,0px));padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(#f4f1e800,#f4f1e8 14px);}
.rc-sbx-apply .rc-note{margin-top:6px;text-align:center}
.rc-flash{animation:rcFlash 1.2s ease-out both;border-radius:6px}
@keyframes rcFlash{0%{background:#ffe08a}100%{background:#ffe08a00}}

@keyframes rcSpin{to{transform:rotate(360deg)}}
@keyframes rcFade{from{opacity:0}to{opacity:1}}
@keyframes rcUp{from{transform:translateY(30%);opacity:0}to{transform:none;opacity:1}}
@keyframes rcShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}
@keyframes rcShimmer{to{background-position:300% 0}}
@keyframes rcTwinkle{0%,100%{transform:scale(.3) rotate(0);opacity:0}45%{transform:scale(1.15) rotate(45deg);opacity:1}}
@keyframes rcStamp{0%{transform:scale(2.6) rotate(-24deg);opacity:0}60%{transform:scale(.92) rotate(-10deg);opacity:1}100%{transform:scale(1) rotate(-12deg);opacity:1}}
@media (max-width:400px){
  .rc-ring{width:88px;height:88px}
  .rc-tile b{font-size:18px}
  .rc-pts{gap:14px 16px}
  .rc-pt{width:50px;height:50px}
}
@media (prefers-reduced-motion:reduce){
  .rc-back,.rc-sheet,.rc-savebar,.rc-stampin,.rc-vb.shiny,.rc-spark i,.rc-shake,.rc-pt.deny,.rc-pt.on,.rc-tip{animation:none!important}
  .rc-spark i{opacity:.8}
}
