/* Gangho Life: one reading, one character, visible reasoning. */
.hero .hero-copy h1{font-size:clamp(30px,5vw,52px);line-height:1.3;letter-spacing:-2px}.hero .hero-copy{max-width:780px}.hero .intro{font-size:14px}.calculation-policy{max-width:680px;margin:0 auto 20px;padding:0 24px;font-size:12px;color:var(--shell-small)}.calculation-policy p{line-height:1.85}.result-navigation{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;max-width:960px;margin:24px auto}.result-navigation button{background:var(--panel);color:var(--paper);border:1px solid var(--panel-line);border-radius:3px;padding:12px 16px;font-size:13px}.saju-paper{max-width:920px;margin:24px auto 36px;padding:36px;background:var(--paper);color:var(--ink);scroll-margin-top:20px}.saju-paper h2{font:600 clamp(24px,4vw,34px)/1.4 'Noto Serif KR',serif;margin:10px 0}.saju-paper .eyebrow{color:var(--red)}.saju-deck{color:var(--paper-label2);line-height:1.8}.pillar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0}.pillar{border:1px solid var(--line);text-align:center;padding:14px 6px}.pillar h3{font-size:12px;font-weight:500;margin:0 0 12px}.pillar p{margin:6px 0}.pillar .pillar-hanja{font:30px/1.3 'Noto Serif KR',serif;letter-spacing:4px}.pillar.day-master{border:2px solid var(--gold);background:var(--connection-bg)}.saju-scope{border-left:3px solid var(--outline);padding:10px 14px;font-size:13px;line-height:1.8}.reading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0}.reading-grid h3,.reason-card h3{font-size:16px}.reading-grid p,.saju-paper details p{font-size:14px;line-height:1.95}.saju-paper details{padding:18px 0;border-top:1px solid var(--line)}.saju-paper summary{cursor:pointer;font-size:14px}.saju-paper .ink-button{margin-top:20px;padding:14px 20px}.element-bars{margin:24px 0;display:grid;gap:12px}.element-row{display:grid;grid-template-columns:24px 1fr 48px;gap:14px;font-size:13px}.element-row meter{width:100%;height:16px;accent-color:var(--gold)}.reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:25px 0}.reason-card{padding:24px;border:1px solid var(--line);background:transparent}.reason-kind{font-size:11px;color:var(--paper-label2);border-bottom:1px solid var(--line);padding-bottom:5px}.reason-card dt{color:var(--paper-label);font-size:11px;margin-top:16px}.reason-card dd{margin:4px 0 0;font-size:14px;line-height:1.8}.reason-rule{font-size:12px;line-height:1.8;color:var(--paper-label2);border-top:1px solid var(--line);padding-top:14px}.saju-paper .small{color:var(--paper-label2)}.saju-paper:focus{outline:none}#transmission-context{font-size:12px;line-height:1.8;color:var(--paper-label2)}
@media(max-width:600px){.saju-paper{margin:18px 10px;padding:24px 18px}.pillar-grid{gap:5px}.pillar .pillar-hanja{font-size:24px;letter-spacing:1px}.pillar .small{font-size:10px}.reading-grid,.reason-grid{grid-template-columns:1fr}.reading-grid{gap:8px}.reason-card{padding:18px}.result-navigation button{font-size:11px;padding:11px 10px}.hero .hero-copy h1{font-size:32px}.hero .intro{font-size:12px}.calculation-policy{font-size:11px}}

@media(max-width:780px){.saju-paper,#result{scroll-margin-top:130px}}
.reading-actions{display:flex;flex-wrap:wrap;gap:10px}.reading-diagrams{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}.reading-figure{margin:0;padding:22px;border:1px solid var(--line);background:transparent;min-width:0}.reading-figure.wide{grid-column:1/-1}.reading-figure h3{margin:0 0 8px;font-size:18px}.reading-figure figcaption{font-size:12px;line-height:1.7;color:var(--paper-label2);margin-bottom:18px}.element-ring{width:140px;height:140px;border-radius:50%;margin:20px auto;display:grid;place-items:center}.element-ring span{width:96px;height:96px;background:var(--paper);border-radius:50%;display:grid;place-items:center;white-space:pre-line;text-align:center;line-height:1.7;font-size:18px}.reading-bar{display:grid;grid-template-columns:34px 1fr 46px;gap:10px;align-items:center;margin:12px 0;font-size:12px}.bar-track{height:10px;background:var(--connection-bg);border-radius:2px;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:2px}.reading-bar strong{text-align:right;font-weight:500}.roots-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.roots-grid article{border-top:2px solid var(--red);text-align:center}.roots-grid h4{font-size:12px}.roots-grid p{white-space:pre-line;font-size:12px;line-height:1.8}.roots-grid strong{font-size:21px;font-weight:400}.connection-line{padding:12px;border-left:3px solid var(--red);background:var(--connection-bg);font-size:14px;line-height:1.8}.reading-toc{display:flex;flex-wrap:wrap;gap:7px;border-block:1px solid var(--line);padding:22px 0;margin:30px 0}.reading-toc h3{flex-basis:100%;margin:0 0 10px}.reading-toc .ink-button{font-size:12px;padding:9px 11px;margin:0;background:transparent;color:var(--ink);border:1px solid var(--outline);text-align:left}.reading-chapter{padding:24px 0;border-bottom:1px solid var(--line);scroll-margin-top:30px}.reading-chapter h3{font-size:21px;line-height:1.6;color:var(--ink)}.reading-chapter p{font-size:15px;line-height:2.15;word-break:keep-all;overflow-wrap:anywhere;max-width:70ch}.reading-chapter:focus{outline:2px solid var(--gold);outline-offset:4px}.record-chapter{padding:25px 0;scroll-margin-top:25px;border-top:1px solid var(--line)}.record-chapter summary{font-size:19px;color:var(--ink);cursor:pointer}.record-count{font-size:13px;line-height:1.8}.record-toc{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.record-toc button{border:1px solid var(--outline);background:transparent;color:var(--ink);padding:9px 12px;font-size:12px}.record-tools{display:flex;flex-wrap:wrap;gap:10px}.record-tools button{color:var(--ink);background:transparent;border:1px solid var(--outline);padding:10px 14px}#full-details>summary{font-size:24px}#full-settings .facts dd{line-height:1.85;overflow-wrap:anywhere}#full-settings .facts dt{line-height:1.65}
@media(max-width:600px){.reading-diagrams{grid-template-columns:1fr}.reading-figure{padding:18px}.reading-chapter p{font-size:14px;line-height:2.1}.reading-chapter h3{font-size:18px}.reading-toc .ink-button{font-size:11px}.record-chapter summary{font-size:17px}}
@media(max-width:780px){.reading-chapter,.record-chapter{scroll-margin-top:145px}}
.identity-reading{margin-top:30px;border-top:1px solid var(--line);padding:24px 0}.identity-reading>summary{font-size:22px;cursor:pointer}.identity-reading>p{line-height:2.1;max-width:72ch;word-break:keep-all}.identity-reading>h3{margin-top:36px;color:var(--ink)}.record-chapter .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-chapter .facts>div{min-width:0}.record-chapter .facts dd{white-space:pre-line}@media(max-width:600px){.record-chapter .detail-grid{grid-template-columns:1fr}}.identity-reading .reading-figure{color:var(--ink)}
.saju-paper>.ink-button,.reading-actions>.ink-button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:2px;font:inherit;font-size:13px;cursor:pointer}.reading-actions>.ink-button{margin:0}.reading-actions{margin:22px 0}.reading-toc button:hover,.record-toc button:hover{background:var(--connection-bg)}.reading-toc button:focus-visible,.record-toc button:focus-visible,.record-tools button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.identity-transfer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 28px;padding:18px 20px;background:var(--connection-bg);border:1px solid var(--line);color:var(--ink)}.identity-transfer p{margin:0;max-width:42ch;font-size:13px;line-height:1.8}.transfer-button{flex-shrink:0;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:3px;padding:15px 19px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.transfer-button:hover{background:var(--toast-ink)}.transfer-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:600px){.identity-transfer{flex-direction:column;align-items:stretch;padding:16px;gap:12px}.transfer-button{width:100%;font-size:13px}}

/* Plain language reading: a story first, definitions when asked. */
.reading-body{max-width:760px;margin-inline:auto}.reading-index,.reading-reference{border-block:1px solid var(--line);margin:24px 0;padding:18px 0}.reading-index>summary,.reading-reference>summary,.reason-basis>summary{cursor:pointer;font-size:13px;line-height:1.9;color:var(--paper-label2)}.reading-index .reading-toc{border:0;margin:10px 0 0;padding:10px 0}.reading-chapter>p{margin:18px 0;font-size:16px;line-height:1.95;max-width:65ch}.reading-chapter>h3{font-size:24px;margin-bottom:25px}.reading-chapter>p:first-of-type{color:var(--ink)}.reading-body .reading-figure{margin:28px 0}.role-figure .reading-bar{grid-template-columns:125px 1fr 36px}.reason-basis{margin-top:18px}.reason-basis>p,.reason-card>p{font-size:14px;line-height:1.9}.reading-reference[open]>summary{margin-bottom:24px}.reading-reference .reading-chapter>h3{font-size:20px}.identity-reading .reading-body>h3{margin-top:24px}@media(max-width:600px){.reading-chapter>p{font-size:15px;line-height:1.95;margin:18px 0}.reading-chapter>h3{font-size:22px}.role-figure .reading-bar{grid-template-columns:105px 1fr 33px;gap:7px}.reading-body .reading-figure{padding:18px 14px}.reading-chapter{padding:24px 0}}

/* v3 두루마리: 덕사주처럼 도표가 위, 운세 갈래가 아래. 펼침 없이 한 흐름으로. */
.life-saju{max-width:none;margin:34px 0;padding:34px 38px;background:var(--white,transparent);border:1px solid var(--line,var(--line));color:var(--ink,var(--ink))}
.life-saju .eyebrow{color:var(--red);font-size:12px;letter-spacing:2px;margin-bottom:6px}
.life-saju h2{font-size:29px;margin:4px 0 8px}
.life-saju .saju-deck{margin-bottom:6px}
.reading-body{max-width:none}
.reading-body .reading-diagrams{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 8px}
.reading-body .reading-figure{margin:0;background:transparent;border-color:var(--line);border-radius:6px}
.reading-figure h3{font-size:16px}
.pillar-figure .pillar-grid{margin:8px 0 10px;gap:8px}
.pillar{padding:10px 6px;border-radius:6px;background:transparent;border-color:var(--line)}
.pillar h3{font-size:12px;color:var(--paper-label2);margin:0 0 8px}
.pillar-cell{border-radius:4px;padding:8px 4px;margin:4px 0}
.pillar-cell b{display:block;font:600 28px/1.1 'Noto Serif KR',serif}
.pillar-cell small{display:block;font-size:10px;color:var(--paper-label2);margin-top:3px}
.pillar-cell span{display:block;font-size:11px;font-weight:600;color:var(--ink);margin-top:2px;min-height:16px}
.pillar.day-master{background:var(--connection-bg);border:2px solid var(--gold)}
.pillar .small{font-size:10px;color:var(--paper-label2);margin:6px 0 0}
.pillar-summary{text-align:center;font-size:12px;color:var(--paper-label2);margin-top:8px}
.ring-row{display:flex;align-items:center;gap:20px}
.ring-row .element-ring{margin:0;flex-shrink:0;width:118px;height:118px}
.ring-row .element-ring span{width:80px;height:80px;font-size:14px;background:var(--paper)}
.ring-bars{flex:1;min-width:0}
.ring-bars .reading-bar{margin:8px 0}
.reading-bar{grid-template-columns:78px 1fr 90px}
.role-figure .reading-bar{grid-template-columns:150px 1fr 40px}
.reading-bar.focus span{font-weight:700;color:var(--red)}
.reading-body .reading-toc{border-block:1px solid var(--line);padding:16px 0;margin:22px 0 4px}
.reading-body .reading-chapter{padding:26px 0}
.reading-body .reading-chapter>h3{font-size:22px;color:var(--ink);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.reading-body .reading-chapter>h3::before{content:'◆';font-size:12px;color:var(--red)}
.reading-body .reading-chapter>p{font-size:15px;line-height:2;max-width:72ch;margin:14px 0}
.reading-body .reading-chapter>p:first-of-type{color:inherit}
.reading-scope{color:var(--paper-label2)}.reading-body .reading-scope>h3{font-size:16px}.reading-body .reading-scope>p{font-size:13px;line-height:1.9}
@media(max-width:700px){.reading-body .reading-diagrams{grid-template-columns:1fr}.life-saju{padding:22px 16px;margin:24px 0}.life-saju h2{font-size:24px}.ring-row{gap:14px}.pillar-cell b{font-size:22px}.pillar-figure .pillar-grid{gap:5px}.pillar{padding:8px 3px}.reading-bar{grid-template-columns:64px 1fr 80px}.role-figure .reading-bar{grid-template-columns:118px 1fr 36px}.reading-body .reading-chapter>h3{font-size:19px}}
.reading-body .reading-toc{flex-direction:row;flex-wrap:wrap;gap:8px}
.reading-body .reading-toc .ink-button{flex:0 0 auto;width:auto;min-height:38px;border-radius:30px;padding:8px 14px;font-size:12px;background:transparent}
.reading-body .reading-toc .ink-button:hover{background:var(--connection-bg)}

/* 오행 링 ↔ 아래 줄 서로 밝아지는 인터랙션 */
.element-ring{position:relative}
.ring-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.ring-seg{stroke-width:9;stroke-opacity:0;transition:stroke-opacity .18s,stroke-width .18s;pointer-events:auto;cursor:pointer}
.ring-seg.hi{stroke-opacity:1;stroke-width:13}
.ring-bars .reading-bar{cursor:pointer;border-radius:4px;padding:2px 4px;margin-inline:-4px;transition:background .15s}
.ring-bars .reading-bar.hi{background:var(--connection-bg)}
.ring-bars .reading-bar:focus-visible{outline:2px solid var(--gold);outline-offset:2px}


/* 챕터 스크롤 리빌 + 지금 읽는 챕터의 목차 강조 */
.reading-chapter{opacity:0;transform:translateY(14px);transition:opacity .5s ease-out,transform .5s ease-out}
.reading-chapter.chapter-in{opacity:1;transform:none}

.reading-toc .ink-button.reading-toc-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
#saju-result.life-saju{padding:34px 38px;margin:34px 0;max-width:none;border-radius:4px}
#saju-result.life-saju h2{font-size:29px}
@media(max-width:700px){#saju-result.life-saju{padding:22px 16px;margin:24px 0}#saju-result.life-saju h2{font-size:24px}}
.identity-reading>h3:first-child{font:600 22px/1.4 'Noto Serif KR',serif;color:var(--ink);margin:0 0 6px}
.org-emblem{vertical-align:middle;border-radius:50%;box-shadow:0 1px 2px var(--paper-shadow)}
.saju-head{display:flex;align-items:center;gap:12px;margin:6px 0 10px}
.saju-who{font:600 15px var(--serif,'Noto Serif KR',serif);color:var(--ink)}
.reveal-place .org-emblem{margin-right:2px}
.card-org .org-emblem{margin-right:4px}

/* 글자 깨짐 방지: 막대 그림의 라벨·값은 한 줄, 칸은 서브그리드로 정렬 */
.bar-list,.ring-bars{display:grid;grid-template-columns:max-content minmax(36px,1fr) max-content;column-gap:10px;align-items:center}
.bar-list .reading-bar,.ring-bars .reading-bar{grid-column:1/-1;grid-template-columns:subgrid;gap:0 10px}
.reading-bar>span:first-child,.reading-bar strong{white-space:nowrap}
.role-figure .reading-bar,.role-figure .bar-list .reading-bar{grid-template-columns:subgrid}
.pillar-cell small,.pillar-cell span,.pillar h3{white-space:nowrap}
.pillar p.small{word-break:keep-all}
.pillar p.small .inner-label{display:block}
.saju-head{flex-wrap:wrap}
@media(max-width:700px){
 .ring-row{flex-direction:column;align-items:center;gap:18px}
 .ring-bars{width:100%}
 .role-figure .bar-list{grid-template-columns:1fr max-content}
 .role-figure .bar-list .reading-bar{grid-template-columns:subgrid;row-gap:4px}
 .role-figure .bar-list .reading-bar>span:first-child{grid-column:1;grid-row:1}
 .role-figure .bar-list .reading-bar strong{grid-column:2;grid-row:1}
 .role-figure .bar-list .reading-bar .bar-track{grid-column:1/-1;grid-row:2}
 #saju-result.life-saju{padding:18px 10px}
 .reading-body .reading-figure{padding:16px 10px}
 .pillar{padding:8px 2px}
 .pillar-cell{padding:8px 2px}
 .pillar-cell small{font-size:9px}
 .pillar-cell span{font-size:10px}
}
@media(max-width:380px){.pillar-cell b{font-size:20px}.pillar h3{font-size:11px}#saju-result.life-saju{padding:16px 6px}.reading-body .reading-figure{padding:14px 8px}.pillar-figure .pillar-grid{gap:3px}}

/* 오행 링의 WebGL 층. 고리 뒤에 깔리고, 가운데 글자판과 SVG 오버레이가 그 위에 온다. */
.element-ring{position:relative}
.ring-gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;border-radius:50%}
.element-ring>span{position:relative;z-index:2}
.ring-overlay{z-index:3}

/* 명식 관계도(2026-10-05) — 오행이 서로 살리고 누르는 길 · 글자 사이의 짝 */
.relation-figure{--cycle-gen:#7a5626;--cycle-ctl:#a43a2f}
.relation-summary{margin:10px 0 0;font-size:14px;line-height:1.9;color:var(--ink);word-break:keep-all;max-width:62ch}
.relation-stage{margin:12px auto 0;max-width:420px}
.relation-stage svg{display:block;width:100%;height:auto;overflow:visible}
.cycle-edge .edge-line{fill:none;stroke:var(--cycle-gen);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85}
.cycle-edge.is-ctl .edge-line{stroke:var(--cycle-ctl);opacity:.7}
.cycle-edge.is-dry .edge-line{stroke-dasharray:.012 .03;opacity:.45}
.cycle-edge .edge-flow{fill:none;stroke:var(--cycle-gen);stroke-linecap:round;stroke-dasharray:3 13;opacity:0;animation:cycle-flow 3s linear infinite}
.cycle-edge.is-ctl .edge-flow{stroke:var(--cycle-ctl);stroke-dasharray:2 16}
.is-drawn .cycle-edge .edge-line{animation:rel-draw .9s cubic-bezier(.3,.7,.2,1) var(--d,0s) forwards}
.is-drawn .cycle-edge.is-dry .edge-line{animation:none;stroke-dashoffset:0}
.is-drawn .cycle-edge .edge-flow{opacity:.85;transition:opacity .6s 1.4s}
.cycle-edge.is-on .edge-line{opacity:.95}.cycle-edge.is-off{opacity:.25}
.cycle-edge{transition:opacity .3s}
@keyframes cycle-flow{to{stroke-dashoffset:-100}}
@keyframes rel-draw{to{stroke-dashoffset:0}}
.cycle-node{cursor:pointer;outline:none;opacity:0;transform-box:fill-box;transform-origin:center}
.is-drawn .cycle-node{animation:node-in .7s cubic-bezier(.3,1.4,.4,1) var(--d,0s) forwards}
@keyframes node-in{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.node-disc{stroke:rgba(30,24,18,.35);stroke-width:1;filter:drop-shadow(0 2px 3px rgba(40,30,20,.25))}
.cycle-node.is-empty .node-disc{fill:var(--paper,#f4efe2);stroke-width:1.6;stroke-dasharray:3 3;filter:none}
.node-han{font-family:'Hanja Brush','Hanja Kai',serif;fill:#fbf6ea;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.node-tag{font-size:13.5px;font-weight:600;fill:var(--ink);text-anchor:middle;pointer-events:none}
.node-me{font-size:10.5px;fill:var(--paper-label2,#7b6f5d);text-anchor:middle;pointer-events:none}
.me-halo{fill:none;stroke:#b8862f;stroke-width:1.6;stroke-dasharray:2 3}
.cycle-node.is-on .node-disc,.cycle-node:focus-visible .node-disc{stroke:var(--ink);stroke-width:2.6}
.cycle-legend{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:4px}
.cycle-legend li{display:grid;grid-template-columns:12px 4.6em 1fr auto;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-size:13px;cursor:pointer;color:var(--ink)}
.cycle-legend li i{width:10px;height:10px;border-radius:50%}
.cycle-legend li span{color:var(--paper-label2,#7b6f5d)}
.cycle-legend li em{font-style:normal;font-family:'Hanja Brush','Hanja Kai',serif;font-size:16px;letter-spacing:.08em}
.cycle-legend li.is-on,.pair-list li.is-on{background:rgba(184,134,47,.13)}
.cycle-legend li:focus-visible,.pair-list li:focus-visible{outline:2px solid #b8862f;outline-offset:1px}
.relation-detail{margin-top:12px;padding:12px 14px;border-left:2px solid #b8862f;background:rgba(184,134,47,.07);font-size:13.5px;line-height:1.8;color:var(--ink);word-break:keep-all}
.relation-detail strong{display:block;font-size:14.5px}
.relation-detail p{margin:4px 0 0}
.relation-gist{color:var(--paper-label2,#7b6f5d)}
.relation-glyphs{font-family:'Hanja Kai','Noto Serif KR',serif}
.relation-flows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px;margin:8px 0 0}
.relation-flows div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dotted var(--line)}
.relation-flows dt{font-size:12px;color:var(--paper-label2,#7b6f5d)}.relation-flows dd{margin:0;font-weight:600}
/* 글자 사이의 짝 */
.rel-cell rect{fill:var(--paper,#f4efe2);stroke-width:1.4}
.rel-cell.is-me rect{stroke-width:2.4}
.rel-ch{font-family:'Hanja Brush','Hanja Kai',serif;font-size:30px;text-anchor:middle;dominant-baseline:central}
.rel-col{font-size:11px;fill:var(--paper-label2,#7b6f5d);text-anchor:middle;letter-spacing:.2em}
.rel-cell.is-on rect{fill:rgba(184,134,47,.18)}
.rel-arc{cursor:pointer;outline:none;transition:opacity .3s}
.rel-arc .arc-hit{fill:none;stroke:transparent;stroke-width:16}
.rel-arc .arc-line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.is-drawn .rel-arc .arc-line{animation:rel-draw .8s cubic-bezier(.3,.7,.2,1) var(--d,0s) forwards}
.rel-arc.is-off{opacity:.3}.rel-arc.is-on .arc-line,.rel-arc:focus-visible .arc-line{stroke-width:3.6}
.k-hap{--k:#b8862f}.k-guk{--k:#4d8a5f}.k-banhap{--k:#6f9a73}.k-chung{--k:#b8463f}.k-hyeong{--k:#7a5a8c}.k-pa{--k:#8a7766}.k-hae{--k:#3d5f86}
.rel-arc .arc-line{stroke:var(--k)}
/* 끊긴 선은 다 그어진 뒤(is-settled)에 무늬를 입힌다 — 그어지는 동안은 실선 */
.is-settled .rel-arc .arc-line{animation:none;stroke-dashoffset:0}
.is-settled .rel-arc.k-banhap .arc-line{stroke-dasharray:.1 .05;stroke-linecap:butt}
.is-settled .rel-arc.k-hyeong .arc-line{stroke-dasharray:.07 .05;stroke-linecap:butt}
.is-settled .rel-arc.k-pa .arc-line{stroke-dasharray:.001 .05}
.is-settled .rel-arc.k-hae .arc-line{stroke-dasharray:.09 .04 .012 .04;stroke-linecap:butt}
.swatch{display:inline-block;width:18px;height:0;border-top:2.6px solid var(--k);vertical-align:middle;margin-right:6px}
.swatch.k-banhap{border-top-style:dashed}.swatch.k-hyeong{border-top-style:dashed}.swatch.k-pa{border-top-style:dotted}.swatch.k-hae{border-top-style:dashed;border-top-width:2px}
.pair-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;font-size:12px;color:var(--paper-label2,#7b6f5d)}
.pair-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}
.pair-list li{padding:6px 8px;border-radius:4px;font-size:13px;cursor:pointer;color:var(--ink)}
@media(max-width:600px){.cycle-legend li{grid-template-columns:12px 4.2em 1fr auto;font-size:12.5px}.relation-flows{grid-template-columns:1fr}}

/* 일간의 힘 — 신강·신약(2026-10-05) */
.strength-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-top:12px}
.strength-grade{font-family:'Song Myung','Noto Serif KR',serif;font-size:30px;color:var(--ink);letter-spacing:.06em}
.strength-pct{font-size:14px;font-weight:600;color:#8a6a3a;font-variant-numeric:tabular-nums}
.strength-gist{flex-basis:100%;margin:2px 0 0;font-size:14px;line-height:1.8;color:var(--ink);word-break:keep-all}
.strength-gauge{position:relative;margin:16px 0 4px;padding-top:6px}
.gauge-zones{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--line)}
.gauge-zones .zone{display:block;height:100%;opacity:.55;transform-origin:left;transform:scaleX(0)}
.is-drawn .gauge-zones .zone{animation:zone-in .5s cubic-bezier(.3,.7,.2,1) forwards}
.is-drawn .gauge-zones .z1{animation-delay:.08s}.is-drawn .gauge-zones .z2{animation-delay:.16s}.is-drawn .gauge-zones .z3{animation-delay:.24s}.is-drawn .gauge-zones .z4{animation-delay:.32s}
@keyframes zone-in{to{transform:none}}
.gauge-zones .z0{background:#3d5f86}.gauge-zones .z1{background:#6f8fa8}.gauge-zones .z2{background:#b9a77e}.gauge-zones .z3{background:#c0803a}.gauge-zones .z4{background:#a43a2f}
.gauge-zones .zone.is-me{opacity:1}
.gauge-marker{position:absolute;top:0;left:0;width:3px;height:24px;margin-left:-1.5px;background:var(--ink);border-radius:2px;box-shadow:0 0 0 2px var(--paper,#f4efe2)}
.is-drawn .gauge-marker{animation:marker-in 1.2s cubic-bezier(.3,1.25,.4,1) .45s both}
@keyframes marker-in{from{left:0}to{left:var(--x)}}
.strength-figure:not(.is-drawn) .gauge-marker,.strength-figure.is-settled .gauge-marker{left:var(--x)}
.gauge-labels{display:flex;margin-top:6px;font-size:11px;color:var(--paper-label2,#7b6f5d)}
.gauge-labels span{text-align:center;white-space:nowrap;overflow:hidden}
.gauge-labels .is-me{color:var(--ink);font-weight:700}
.deuk-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:4px}
.deuk-list li{display:grid;grid-template-columns:4.4em 1fr;gap:8px;font-size:13px;line-height:1.7;color:var(--paper-label2,#7b6f5d);word-break:keep-all}
.deuk-list li b{color:var(--paper-label2,#7b6f5d)}.deuk-list li.is-ok b{color:#8a6a3a}
.strength-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}
.sg-col{display:grid;gap:6px;align-content:start}
.sg-name{text-align:center;font-size:11px;color:var(--paper-label2,#7b6f5d);letter-spacing:.2em}
.sg-cell{border:1px solid var(--line);border-radius:6px;padding:8px 6px 6px;text-align:center;min-height:96px;display:flex;flex-direction:column;align-items:center;gap:2px}
.sg-cell.is-me{border-color:#b8862f;border-width:2px}
.sg-ch{font-family:'Hanja Brush','Hanja Kai',serif;font-size:28px;line-height:1.1}
.sg-cell small{font-size:10.5px;color:var(--paper-label2,#7b6f5d)}
.sg-none{margin:auto}
.hs-bar{display:flex;width:100%;height:22px;margin-top:auto;border-radius:3px;overflow:hidden;background:var(--line)}
.hs-seg{display:flex;align-items:center;justify-content:center;min-width:0;background:var(--c);opacity:.28;transform-origin:left;transform:scaleX(0)}
.hs-seg.is-help{opacity:1}
.is-drawn .hs-seg{animation:zone-in .6s cubic-bezier(.3,.7,.2,1) .2s forwards}
.hs-seg em{font-style:normal;font-family:'Hanja Kai','Noto Serif KR',serif;font-size:10.5px;color:#fbf6ea;white-space:nowrap;overflow:hidden}
.hs-seg:not(.is-help) em{color:#2b241c}
.hs-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:10px 0 0;font-size:12px;color:var(--paper-label2,#7b6f5d)}
.hs-legend span{display:inline-flex;align-items:center;gap:6px}.hs-key{display:inline-block;width:14px;height:10px;border-radius:2px;background:#8a6a3a;opacity:.28}.hs-key.is-help{opacity:1}
.strength-notes{margin-top:12px;font-size:13.5px;line-height:1.85;color:var(--ink);word-break:keep-all}
.strength-notes p{margin:4px 0 0}
.strength-extreme{color:#a43a2f}
.strength-limit{font-size:12px;color:var(--paper-label2,#7b6f5d)}
@media(max-width:600px){.strength-grid{gap:5px}.sg-ch{font-size:24px}.hs-seg em{font-size:9.5px}.gauge-labels{font-size:10px}}

/* 일간 상징(2026-10-05): 세로 4:5, 가운데 작게 */
.story-illustration.is-symbol{max-width:340px;margin:16px auto 10px;border-radius:4px}
.story-illustration.is-symbol img{aspect-ratio:4/5}
