:root{--paper:#ede9df;--paper-light:#f8f5ed;--ink:#292e2c;--muted:#71736a;--line:#cfcbbc;--accent:#a54e65;--accent-soft:#ead8dc;--serif:"Batang","바탕","Noto Serif KR",serif;--sans:"Malgun Gothic","맑은 고딕",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{touch-action:manipulation}button[aria-pressed=true]{color:var(--accent)}[hidden]{display:none!important}.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url(%23n)'/%3E%3C/svg%3E")}.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--accent);margin:0 0 16px}.title-screen{max-width:1400px;margin:auto;min-height:100dvh;position:relative;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;padding:80px 9% 100px;overflow:hidden}.title-copy{position:relative;z-index:2}.title-copy h1{font-family:var(--serif);font-size:clamp(58px,7vw,96px);line-height:1.15;font-weight:500;letter-spacing:-.07em;margin:0 0 28px}.title-copy h1 span{display:block;font-size:18px;letter-spacing:.75em;font-weight:400;margin:24px 0 0 5px;color:#72766e}.title-description{color:#62695f;font-family:var(--serif);font-size:16px;line-height:2}.primary-button{border:1px solid var(--ink);background:var(--ink);color:var(--paper-light);min-width:228px;padding:14px 24px;text-align:left;letter-spacing:.2em;margin:30px 0 18px;display:flex;justify-content:space-between;align-items:center;transition:background .2s,transform .2s}.primary-button:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.primary-button span{font-size:22px;line-height:1}.prototype-caption{font-size:10px;color:var(--muted);letter-spacing:.03em}.title-art{height:580px;position:relative;display:grid;place-items:center}.ink-circle{position:absolute;width:420px;height:420px;border:1px solid #bfc2b6;border-radius:50%;box-shadow:0 0 0 22px #cbd0c321,0 0 0 65px #cbd0c31a}.hero-art{position:relative;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.title-seal{font-family:var(--serif);position:absolute;bottom:80px;right:10px;color:var(--accent);border:1px solid var(--accent);padding:6px 9px;font-size:12px;line-height:1.5;letter-spacing:.14em;transform:rotate(-4deg)}.title-bottom{position:absolute;left:9%;right:9%;bottom:35px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:10px;letter-spacing:.13em;color:var(--muted)}
.martial-screen{max-width:1400px;margin:auto;padding:0 54px}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.back-button{border:0;background:none;padding:9px 0;font-size:12px;color:#62695f}.back-button span{margin-right:10px}.brand{font-family:var(--serif);font-size:18px;letter-spacing:.13em}.brand small{font-size:10px;color:var(--muted);margin-left:10px;letter-spacing:.12em}.context-badge{font-size:10px;border:1px solid #bfc2b8;padding:4px 9px;color:#62695f;letter-spacing:.04em}.page-heading{display:flex;justify-content:space-between;align-items:end;padding:34px 0 14px}.page-heading .eyebrow{margin-bottom:5px}.page-heading h1{font-family:var(--serif);font-size:40px;line-height:1.4;letter-spacing:.05em;font-weight:500;margin:0}.page-heading>p{text-align:right;font-family:var(--serif);font-size:15px;margin:0 0 8px}.page-heading>p span{font-family:var(--sans);font-size:11px;color:var(--muted)}.lineage-map{position:relative;height:510px;isolation:isolate}.lineage-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible}.lineage-lines path{fill:none;stroke:#b9bdb0;stroke-width:1;stroke-dasharray:3 5;transition:stroke .2s}.lineage-lines path.is-selected{stroke:var(--accent);stroke-dasharray:none;stroke-width:1.5}.map-character{position:absolute;left:35%;width:30%;height:410px;top:28px;display:flex;justify-content:center;align-items:center}.map-character img{position:relative;width:100%;height:95%;object-fit:contain;mix-blend-mode:multiply;z-index:1}.character-fallback{font-family:var(--serif);font-size:80px;position:absolute;color:#bfc2b6;z-index:-1}.character-ring{position:absolute;width:225px;height:225px;border:1px solid #bdc4b5;border-radius:50%;top:90px;opacity:.65}.character-ring:before,.character-ring:after{content:"";position:absolute;border:1px solid #bdc4b5;border-radius:50%;inset:12px}.character-ring:after{inset:-17px;border-style:dashed;opacity:.6}.character-label{position:absolute;bottom:-9px;background:var(--paper);padding:0 24px;z-index:2;text-align:center}.character-label>span{display:block;font-family:var(--serif);font-size:22px;letter-spacing:.25em;padding-left:.25em}.character-label small{display:block;font-size:9px;color:var(--muted);letter-spacing:.12em}.category-cluster{position:absolute}.category-cluster.righteous{left:0;top:65px;width:31%}.category-cluster.heterodox{right:0;top:30px;width:31%}.category-cluster.outer{right:0;top:315px;width:31%}.category-heading{display:flex;align-items:center;gap:11px;border:0;border-bottom:1px solid var(--line);background:none;width:100%;text-align:left;padding:0 0 12px;margin-bottom:16px}.category-heading>strong{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:.12em}.category-heading>small{font-size:9px;color:var(--muted);letter-spacing:.1em}.category-number{font-size:10px;font-family:var(--serif);color:var(--accent)}.category-cluster.is-selected .category-heading{border-color:var(--accent)}.faction-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 9px}.faction-button{position:relative;min-height:60px;border:1px solid transparent;border-bottom-color:#c7c9bd;background:#f7f5ef63;padding:8px 2px 5px;transition:background .2s,border-color .2s}.faction-button:hover{background:#f8f5ed;border-color:#aab19f}.faction-button.is-selected{border-color:var(--accent);background:#f5e9e8}.faction-name{font-family:var(--serif);display:block;font-size:16px;white-space:nowrap}.faction-status{font-size:8px;line-height:1.6;color:#797d72;display:block;letter-spacing:.04em}.faction-button.is-planned .faction-status{color:var(--accent)}.faction-button.is-planned .faction-name:before{content:"";display:inline-block;width:4px;height:4px;background:var(--accent);border-radius:50%;margin:0 5px 4px 0}.faction-button[data-faction="river_bandits"] .faction-name{font-size:13px}.map-legend{position:absolute;bottom:0;left:0;right:0;border-bottom:1px solid var(--line);padding:16px 0;display:flex;gap:22px;font-size:9px;color:var(--muted)}.priority-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin:0 5px 1px 0}.school-panel{padding:30px 0 12px;scroll-margin-top:20px}.school-heading{display:flex;gap:16px;align-items:start;justify-content:space-between}.school-eyebrow{font-size:10px;color:var(--accent);letter-spacing:.1em;margin:0 0 6px}.school-heading h2{font-family:var(--serif);font-weight:500;font-size:29px;line-height:1.5;margin:0}.school-heading .school-summary{font-size:12px;margin:5px 0 0;color:#62695f;max-width:680px}.school-seal{border:1px solid var(--accent);padding:7px 10px;writing-mode:vertical-rl;font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--accent);flex-shrink:0}.pair-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pair-button{background:none;border:0;border-right:1px solid var(--line);padding:18px 18px 17px;text-align:left;position:relative}.pair-button:last-child{border-right:0}.pair-button[aria-pressed=true]{background:#f5e9e866}.pair-button[aria-pressed=true]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent)}.pair-button>small{font-size:9px;color:var(--muted);letter-spacing:.08em;display:block}.pair-title{display:block;font-family:var(--serif);font-size:18px;margin:5px 0}.pair-result{font-size:10px;display:block;color:var(--accent)}.pair-result span{font-size:13px;margin-right:6px}.pair-subtitle{color:var(--muted);font-size:10px;font-family:var(--sans);display:block}.pair-intro{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0 18px}.pair-intro h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:0}.pair-intro p{font-size:10px;color:var(--muted);margin:0}.skill-columns{display:grid;grid-template-columns:1fr 1fr;gap:42px}.skill-column{min-width:0}.skill-type{font-size:9px;color:var(--accent);letter-spacing:.15em}.skill-column h4{font-family:var(--serif);font-size:21px;font-weight:500;margin:4px 0 14px}.stage-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:20px}.stage-button{border:1px solid var(--line);background:transparent;padding:9px 0 7px;font-size:13px;line-height:1.5;min-width:0}.stage-button small{display:block;font-size:8px;color:var(--muted)}.stage-button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper-light)}.stage-button[aria-pressed=true] small{color:#d5d9cb}.stage-button.fusion-stage{border-color:#c89aa8;color:var(--accent)}.stage-button.fusion-stage[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff5f6}.stage-detail{border-top:1px solid var(--line);padding-top:18px;min-height:215px}.stage-detail.is-fusion{border-color:var(--accent)}.stage-form{font-size:10px;color:var(--accent);letter-spacing:.07em;margin:0 0 5px}.stage-detail h5{font-family:var(--serif);font-size:22px;font-weight:500;margin:0;line-height:1.5}.stage-meaning{font-family:var(--serif);font-size:13px;color:var(--muted);margin:7px 0 14px}.stage-description{font-size:12px;line-height:1.95;margin:0;white-space:pre-line}.fusion-note{background:#e4d6d84d;border-left:2px solid var(--accent);padding:12px 16px;margin:20px 0 0;font-size:11px;line-height:1.9}.fusion-note strong{color:var(--accent);font-weight:600}.reference-notes{margin-top:26px;border-top:1px solid var(--line);padding-top:16px}.reference-notes summary{font-size:11px;cursor:pointer;color:#62695f;min-height:30px}.reference-notes ul{padding-left:18px;margin:10px 0;font-size:11px;color:#62695f;line-height:2}.pending-notes{font-size:10px;color:var(--muted);margin-top:15px}.pending-notes strong{color:var(--ink);font-weight:400}.empty-school{min-height:270px;padding:30px 0}.empty-school .empty-number{font-family:var(--serif);font-size:62px;color:#bdc1b4;line-height:1.1;float:right;padding:0 20px}.empty-school h3{font-family:var(--serif);font-size:25px;font-weight:500;margin:18px 0 8px}.empty-school p{font-size:12px;color:var(--muted);max-width:550px}.page-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:22px 0 26px;font-size:9px;color:var(--muted);letter-spacing:.06em}
@media(min-width:1440px){.martial-screen{padding:0 70px}.lineage-map{height:530px}.category-cluster.righteous{top:70px}.map-character{height:425px}}
@media(max-width:1050px){.martial-screen{padding:0 28px}.category-cluster.righteous,.category-cluster.heterodox,.category-cluster.outer{width:33%}.map-character{left:33%;width:34%}.faction-list{gap:11px 5px}.faction-name{font-size:14px}.faction-button[data-faction="river_bandits"] .faction-name{font-size:11px}.category-heading>strong{font-size:21px}.category-heading{gap:6px}.category-heading>small{font-size:8px}.character-ring{width:180px;height:180px;top:105px}.skill-columns{gap:25px}.pair-title{font-size:16px}.pair-button{padding:16px 11px}.title-screen{padding-left:7%;padding-right:5%}.title-art{height:500px}.ink-circle{width:330px;height:330px}}
@media(max-width:700px){.title-screen{grid-template-columns:1fr;min-height:100dvh;padding:65px 28px 95px;align-content:start}.title-copy{padding-top:25px}.title-copy h1{font-size:64px}.title-copy h1 span{font-size:14px}.title-description{font-size:14px}.title-art{position:absolute;width:70%;height:420px;right:-21%;top:155px;opacity:.35;z-index:-1}.title-seal{display:none}.primary-button{margin-top:25px}.title-bottom{left:28px;right:28px}.title-copy .prototype-caption{max-width:230px}.martial-screen{padding:0 20px}.topbar{height:65px}.brand{font-size:14px}.brand small{display:none}.context-badge{font-size:8px;padding:3px 6px}.back-button{font-size:10px}.back-button span{margin-right:3px}.page-heading{padding-top:25px}.page-heading h1{font-size:34px}.page-heading>p{font-size:12px}.page-heading>p span{display:none}.eyebrow{font-size:9px}.lineage-map{height:auto;padding-top:310px}.lineage-lines{display:none}.map-character{top:0;left:calc(50% - 120px);width:240px;height:280px}.map-character img{height:100%}.character-ring{width:170px;height:170px;top:55px}.character-label{bottom:-15px}.character-label>span{font-size:20px}.category-cluster{position:relative;inset:auto!important;width:100%!important;margin:0 0 24px}.category-heading{margin-bottom:12px;padding-bottom:8px}.category-heading:before{content:"";width:14px;height:1px;background:var(--accent);margin-right:3px}.category-heading>strong{font-size:22px}.category-heading>small{font-size:9px}.category-cluster.righteous .faction-list{grid-template-columns:repeat(3,minmax(0,1fr))}.faction-list{gap:8px}.faction-button{min-height:59px}.faction-name{font-size:16px}.faction-status{font-size:9px}.faction-button[data-faction="river_bandits"] .faction-name{font-size:14px}.map-legend{position:relative;padding-top:0;padding-bottom:18px;font-size:9px;justify-content:space-between}.school-panel{padding-top:24px}.school-heading h2{font-size:27px}.school-heading .school-summary{font-size:11px}.school-seal{font-size:11px}.pair-selector{grid-template-columns:1fr}.pair-button{padding:13px 12px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0 6px}.pair-button:last-child{border-bottom:0}.pair-button>small{grid-column:1}.pair-title{grid-column:1;font-size:17px;margin:0}.pair-subtitle{grid-column:2;grid-row:1;font-size:9px;text-align:right}.pair-result{grid-column:2;grid-row:2;font-size:11px;text-align:right}.pair-button[aria-pressed=true]:after{width:2px;height:auto;top:0;bottom:0;right:auto}.pair-intro{align-items:start;flex-direction:column;gap:4px;margin:20px 0 17px}.pair-intro h3{font-size:21px}.skill-columns{grid-template-columns:1fr;gap:26px}.skill-column h4{margin-top:3px;font-size:22px}.stage-tabs{gap:6px;margin-bottom:17px}.stage-button{padding:10px 0 8px}.stage-detail{min-height:0;padding-top:14px}.stage-detail h5{font-size:22px}.stage-description{font-size:12px}.fusion-note{margin-top:24px}.page-footer{font-size:8px}.empty-school .empty-number{font-size:45px}.empty-school h3{font-size:22px}.school-heading{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.preview-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:0 0 28px}.preview-heading h4{font-family:var(--serif);font-size:20px;font-weight:500;margin:2px 0}.preview-heading>p:not(.school-eyebrow){font-size:11px;color:var(--muted);margin:2px 0 14px}.preview-heading>small{display:block;font-size:9px;color:var(--muted);line-height:1.9;margin-top:14px}.preview-replay{display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;border-bottom:1px solid #a9afa0;padding:7px 0;font-size:11px}.preview-replay span{font-size:18px}.preview-layout canvas{display:block;width:100%;max-width:720px;min-width:0;height:auto;background:#e3e4d9;border:1px solid #c7cbbb}@media(max-width:700px){.preview-layout{grid-template-columns:1fr;gap:14px;padding:17px 0}.preview-heading{display:grid;grid-template-columns:1fr auto}.preview-heading .school-eyebrow,.preview-heading h4,.preview-heading>p{grid-column:1}.preview-heading .school-eyebrow{margin:0}.preview-heading h4{font-size:19px}.preview-heading>p:not(.school-eyebrow){margin-bottom:0}.preview-heading .preview-replay{grid-column:2;grid-row:2;font-size:10px}.preview-heading>small{grid-column:2;grid-row:3;margin-top:0;text-align:right;font-size:8px}.preview-heading>small br{display:none}}
.inheritance-banner{font-size:12px;color:var(--accent);border-left:2px solid var(--accent);padding:6px 12px;margin:0 0 20px;line-height:1.8}.inheritance-banner>span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.new-effect-label{font-size:9px;color:var(--muted);letter-spacing:.08em;margin:15px 0 4px}.inherited-effects{margin-top:19px;border-top:1px solid var(--line);padding-top:10px}.inherited-effects summary{font-size:11px;color:var(--accent);cursor:pointer;padding:5px 0;min-height:30px}.inheritance-explanation{font-size:10px;line-height:1.9;color:var(--muted);margin:8px 0 14px}.inherited-source h6{font-family:var(--serif);font-size:13px;font-weight:500;margin:15px 0 10px}.inherited-source ol{list-style:none;padding:0;margin:0}.inherited-source li{border-top:1px solid #d9d5c9;padding:10px 0;font-size:10px;line-height:1.9}.inherited-source li>strong{display:block;font-weight:500;color:var(--ink)}.inherited-source li>span{display:block;color:#62695f;margin-top:3px}@media(max-width:700px){.inheritance-banner{font-size:11px}.inheritance-banner>span{font-size:9px}.inherited-source li{font-size:11px}}
