:root{color-scheme:dark;--ink:#121718;--surface:#1d2526;--surface-2:#273031;--line:#3b4545;--cream:#e8e0d2;--muted:#aeb4ae;--gold:#d9b979;--red:#a95049;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);font-size:1rem;line-height:1.55}button,a{touch-action:manipulation}button{font:inherit}a{color:inherit}img{display:block;max-width:100%}::selection{background:var(--gold);color:var(--ink)}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.skip-link{position:absolute;left:1rem;top:-5rem;z-index:20;background:var(--gold);color:var(--ink);padding:.6rem 1rem}.skip-link:focus{top:1rem}.section-wrap{width:min(100% - 4rem,1260px);margin-inline:auto}.content-section{padding-block:7rem;scroll-margin-top:5rem}
.site-header{height:76px;padding:0 clamp(1.2rem,4vw,4rem);position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:rgba(18,23,24,.94);backdrop-filter:blur(14px);border-bottom:1px solid #323b3b}.brand{text-decoration:none;display:flex;align-items:center;gap:.65rem;font-family:var(--serif);font-size:1.25rem;font-weight:700;letter-spacing:.18em;white-space:nowrap}.brand-mark{display:grid;place-items:center;border:1px solid var(--gold);width:31px;height:31px;color:var(--gold);font-size:1.05rem;letter-spacing:0}.site-nav{display:flex;gap:clamp(1rem,3vw,3rem)}.site-nav a{font-size:.88rem;text-decoration:none;color:#c8ceca;transition:color .2s}.site-nav a:hover,.site-nav a:focus-visible{color:var(--gold)}.header-index{font-size:.65rem;letter-spacing:.19em;color:#89938d;white-space:nowrap}
.hero{min-height:min(790px,calc(100svh - 76px));display:grid;grid-template-columns:1.13fr .87fr;align-items:center;position:relative;padding-block:5rem 6.5rem;gap:2rem}.hero:before{content:"";position:absolute;left:-8vw;top:14%;width:44vw;height:44vw;background:radial-gradient(circle,rgba(144,60,56,.13),transparent 65%);pointer-events:none}.hero-content{position:relative;z-index:1}.eyebrow{font-size:.72rem;letter-spacing:.24em;font-weight:700;color:var(--gold);margin:0 0 1.25rem;text-transform:uppercase}.rule{display:inline-block;width:33px;border-top:1px solid var(--gold);vertical-align:middle;margin-right:.65rem}.hero h1{font-family:var(--serif);font-size:clamp(4rem,9.7vw,9rem);line-height:.88;letter-spacing:-.065em;margin:0;font-weight:400;text-shadow:0 8px 35px rgba(0,0,0,.25)}.hero-colon{color:var(--gold)}.hero h1 small{display:block;margin-top:1.25rem;font-size:clamp(1.4rem,2.8vw,2.65rem);letter-spacing:.04em;font-weight:400;color:var(--gold);line-height:1.15}.hero-lede{font-family:var(--serif);font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.5;max-width:560px;color:#c7cbc5;margin:2.5rem 0 2.2rem}.primary-link{display:inline-flex;align-items:center;justify-content:space-between;gap:2.7rem;background:var(--gold);color:#172020;text-decoration:none;padding:.9rem 1.2rem;font-weight:700;font-size:.88rem;min-height:48px;transition:background .2s,transform .2s}.primary-link:hover{background:#edcf95;transform:translateY(-2px)}.primary-link span{font-size:1.1rem}.hero-art{height:min(570px,43vw);min-height:420px;display:grid;place-items:center;position:relative}.hero-orbit{position:absolute;border:1px solid rgba(217,185,121,.24);border-radius:50%;pointer-events:none}.orbit-one{width:95%;aspect-ratio:1}.orbit-two{width:70%;aspect-ratio:1;border-style:dashed;opacity:.5}.hero-frame{position:relative;width:min(80%,405px);height:min(92%,530px);border:1px solid rgba(217,185,121,.65);padding:9px;background:linear-gradient(150deg,#3d3c39,#1b2425);box-shadow:0 30px 90px rgba(0,0,0,.45);transform:rotate(3deg)}.hero-frame:after{content:"";position:absolute;inset:16px;border:1px solid rgba(217,185,121,.23);pointer-events:none}.hero-frame img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.75) contrast(1.05)}.hero-image-fallback{display:none;place-items:center;width:100%;height:100%;font-family:var(--serif);font-size:3rem;letter-spacing:.15em;color:var(--gold)}.hero-stamp{position:absolute;right:-1%;bottom:12%;display:grid;place-items:center;width:104px;height:104px;border:1px solid var(--red);border-radius:50%;color:#d68979;font-family:var(--serif);font-size:.75rem;line-height:1.25;letter-spacing:.12em;text-align:center;transform:rotate(12deg);background:#1b2424e8}.hero-footnote{position:absolute;bottom:1.3rem;left:0;right:0;display:flex;justify-content:space-between;color:#838e89;font-size:.64rem;letter-spacing:.22em;border-top:1px solid var(--line);padding-top:1rem}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem}.section-heading h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.7rem,5vw,5rem);letter-spacing:-.045em;line-height:1.03;margin:0}.section-heading>p{max-width:330px;color:var(--muted);margin:0 0 .25rem;font-size:.95rem}.world-section{border-top:1px solid var(--line)}.world-layout{display:grid;grid-template-columns:minmax(210px,.38fr) 1fr;gap:clamp(2rem,6vw,6rem)}.world-aside{border-top:1px solid var(--gold);padding-top:1.3rem;display:flex;flex-direction:column;justify-content:space-between;min-height:340px}.vertical-label{color:var(--gold);font-size:.7rem;letter-spacing:.2em}.world-quote{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.4rem);line-height:1.25;color:var(--gold);max-width:340px}.prose{color:#c9cfca}.prose h2,.prose h3,.prose h4{font-family:var(--serif);font-weight:400;color:var(--cream);line-height:1.2}.prose h2{font-size:2.1rem;margin:2.5rem 0 .7rem}.prose h2:first-child{margin-top:0}.prose h3{font-size:1.45rem}.prose p{margin:.7rem 0 1.25rem}.prose ul,.prose ol{padding-left:1.3rem;margin:1rem 0 1.6rem}.prose li{padding-left:.2rem;margin:.42rem 0}.prose strong{color:var(--cream)}.prose em{color:#dbbea3}.world-prose{columns:2;column-gap:3rem}.world-prose>*{break-inside:avoid}.world-prose h2{border-top:1px solid var(--line);padding-top:1rem}.world-prose h2:first-child{border:0;padding-top:0}.world-prose p,.world-prose li{font-size:1rem;line-height:1.7}
.factions-section{background:#202829;border-block:1px solid var(--line)}.faction-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.faction-card{background:#202829;padding:1.55rem;min-height:380px;transition:background .2s}.faction-card:hover{background:#273031}.faction-top{display:flex;justify-content:space-between;align-items:start}.faction-mark{font-size:1.7rem;line-height:1}.card-number{font-family:var(--serif);font-size:.8rem;color:#8f9a91}.faction-card h3{font-family:var(--serif);font-size:1.65rem;line-height:1.14;font-weight:400;margin:1.45rem 0 .2rem}.faction-epithet{color:var(--gold);font-family:var(--serif);font-style:italic;margin:0 0 1.25rem}.faction-details{font-size:.87rem;line-height:1.55}.faction-details ul{padding-left:1rem;margin:0}.faction-details li{margin:.4rem 0}.faction-details strong{font-weight:700}
.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem}.character-card{padding:0;background:#242c2c;color:var(--cream);border:1px solid var(--line);text-align:left;cursor:pointer;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.character-card:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 22px 45px rgba(0,0,0,.24)}.card-portrait{width:100%;aspect-ratio:1;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#3c4340,#171b1c)}.card-portrait:after{content:"";position:absolute;inset:0;border-bottom:1px solid rgba(217,185,121,.3);pointer-events:none}.card-portrait img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}.portrait-fallback{display:none;font-family:var(--serif);font-size:clamp(1.3rem,2vw,2.1rem);color:var(--gold);text-align:center;padding:1rem}.image-missing .portrait-fallback{display:block}.card-info{display:flex;flex-direction:column;min-height:137px;padding:1.1rem 1.2rem 1.35rem}.card-info small{color:var(--gold);font-size:.69rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-info strong{font-family:var(--serif);font-weight:400;font-size:1.55rem;line-height:1.2;margin:.5rem 0 .2rem}.card-info>span{color:#abb5ad;font-size:.87rem;line-height:1.35}
.map-section{background:#202829;border-top:1px solid var(--line)}.map-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,5vw,5rem);align-items:stretch}.direction-map{min-height:560px;border:1px solid #6b6150;position:relative;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);align-items:center;justify-items:center;background:radial-gradient(circle at center,#34403e,#202829 70%);overflow:hidden}.direction-map:before,.direction-map:after{content:"";position:absolute;inset:20px;border:1px solid rgba(217,185,121,.22);pointer-events:none}.direction-map:after{inset:38px;border-style:dashed;opacity:.55}.map-grid-lines{position:absolute;width:1px;height:80%;left:50%;top:10%;background:rgba(217,185,121,.18);transform:rotate(45deg)}.map-grid-lines:after{content:"";position:absolute;width:1px;height:100%;background:inherit;transform:rotate(90deg)}.map-center{grid-area:2/2;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:125px;aspect-ratio:1;border:1px solid rgba(217,185,121,.4);border-radius:50%;background:#252d2c;box-shadow:0 0 60px #d9b97917;color:var(--gold);font-family:var(--serif);letter-spacing:.12em;font-size:.95rem}.map-center i{font-style:normal;margin-top:.15rem}.region-point{z-index:2;appearance:none;display:flex;flex-direction:column;align-items:center;gap:.1rem;max-width:150px;padding:.65rem;color:var(--cream);border:0;background:none;cursor:pointer;text-align:center;transition:transform .2s,color .2s}.region-point:hover,.region-point[aria-pressed=true]{color:var(--gold);transform:scale(1.07)}.region-point .point-dot{width:11px;height:11px;background:var(--gold);border:2px solid #27302e;border-radius:50%;box-shadow:0 0 0 1px var(--gold);margin-bottom:.5rem}.region-point[aria-pressed=true] .point-dot{background:var(--red);box-shadow:0 0 0 3px rgba(217,185,121,.2)}.region-point b{font-size:.74rem;letter-spacing:.2em}.region-point small{font-family:var(--serif);font-size:.9rem}.north{grid-area:1/2}.west{grid-area:2/1}.east{grid-area:2/3}.south{grid-area:3/2}.map-caption{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:.59rem;letter-spacing:.17em;color:#a1a79e}.region-panel{border-top:1px solid var(--gold);padding:1.3rem .5rem 0 0;min-height:400px}.region-kicker{color:var(--gold);font-size:.72rem;letter-spacing:.14em}.region-panel h3{font-family:var(--serif);font-size:clamp(2.2rem,3.5vw,3.4rem);font-weight:400;line-height:1.1;margin:1.3rem 0 2rem}.region-panel .prose li{margin:.9rem 0;border-top:1px solid var(--line);padding-top:.9rem;list-style:none}.region-panel .prose ul{padding:0}
.site-footer{border-top:1px solid var(--line);padding:3rem 0 4rem}.footer-inner{display:flex;justify-content:space-between;align-items:end;gap:2rem}.footer-brand{font-family:var(--serif);color:var(--gold);font-size:1.8rem;letter-spacing:.16em}.site-footer p{color:var(--muted);margin:.4rem 0 0}.site-footer a{font-size:.86rem;color:var(--gold);text-decoration:none}
.character-dialog{background:#1d2526;color:var(--cream);border:1px solid #746b58;padding:0;width:min(970px,calc(100% - 2rem));max-width:none;max-height:min(91dvh,1000px);box-shadow:0 35px 100px #000a}.character-dialog::backdrop{background:rgba(4,8,9,.82);backdrop-filter:blur(6px)}.dialog-shell{max-height:min(91dvh,1000px);overflow:auto;overscroll-behavior:contain}.dialog-top{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;background:#1d2526;border-bottom:1px solid var(--line);padding:.7rem 1.5rem}.dialog-top span{font-size:.65rem;letter-spacing:.2em;color:var(--gold)}.close-button{appearance:none;background:transparent;border:1px solid var(--line);color:var(--cream);width:42px;height:42px;font-size:1.6rem;line-height:1;cursor:pointer}.close-button:hover{background:var(--red)}.dialog-header{display:grid;grid-template-columns:minmax(220px,.42fr) 1fr;gap:2.3rem;padding:2rem}.dialog-cover{aspect-ratio:1;background:#34403e;display:grid;place-items:center;border:1px solid var(--line);overflow:hidden}.dialog-cover img{width:100%;height:100%;object-fit:contain}.dialog-image-fallback{font-family:var(--serif);font-size:2rem;color:var(--gold)}.dialog-intro{align-self:center}.dialog-intro h2{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,6vw,5.5rem);line-height:1;margin:0}.dialog-epithet{font-family:var(--serif);font-size:1.4rem;font-style:italic;color:var(--gold);margin:.6rem 0 1.5rem}.dialog-facts{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.5rem}.dialog-facts div{border-top:1px solid var(--line);padding-top:.55rem;display:flex;flex-direction:column}.dialog-facts span{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}.dialog-facts strong{font-size:.88rem;font-weight:400;color:var(--cream)}.dialog-tabs{position:sticky;top:56px;z-index:2;display:flex;background:#1d2526;border-bottom:1px solid var(--line);padding:0 2rem}.dialog-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;color:#9da8a0;cursor:pointer;padding:1rem 1.2rem;font-size:.9rem}.dialog-tabs button[aria-selected=true]{color:var(--gold);border-bottom-color:var(--gold)}.dialog-panel{padding:1.4rem 2rem 2.5rem}.dialog-panel[hidden]{display:none}.dialog-panel.prose h3{font-size:1.7rem;color:var(--gold);margin:2rem 0 .5rem}.dialog-panel.prose p:first-child{margin-top:0}.dialog-panel.prose p{line-height:1.68}.dialog-panel.prose ul{margin-bottom:2rem}.pending-note{padding:2rem;border:1px solid var(--line)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}.gallery-grid figure{margin:0}.gallery-frame{aspect-ratio:1;background:#2b3433;display:grid;place-items:center;border:1px solid var(--line)}.gallery-frame img{width:100%;height:100%;object-fit:contain}.gallery-grid figcaption{color:var(--gold);font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;padding:.6rem 0}.unavailable-image{color:var(--muted);font-family:var(--serif)}
@media(max-width:1050px){.header-index{display:none}.faction-grid{grid-template-columns:repeat(2,1fr)}.character-grid{grid-template-columns:repeat(3,1fr)}.hero{min-height:680px}.hero h1{font-size:clamp(4rem,10vw,7rem)}}
@media(max-width:760px){.site-header{height:auto;min-height:68px;padding:.7rem 1.1rem;flex-wrap:wrap;gap:.6rem}.brand{font-size:1rem}.brand-mark{width:28px;height:28px}.site-nav{width:100%;overflow:auto;justify-content:space-between;gap:1.1rem;padding:.25rem 0 .15rem}.site-nav a{font-size:.82rem;white-space:nowrap}.section-wrap{width:min(100% - 2.3rem,1260px)}.content-section{padding-block:4.5rem;scroll-margin-top:7rem}.hero{grid-template-columns:1fr;gap:1rem;padding-top:4rem;padding-bottom:3.5rem;min-height:auto}.hero-content{z-index:2}.hero h1{font-size:clamp(3.9rem,17vw,7rem)}.hero h1 small{font-size:clamp(1.45rem,6vw,2.2rem);margin-top:.8rem}.hero-lede{margin:1.7rem 0 1.6rem;max-width:550px}.hero-art{height:340px;min-height:0;max-width:480px;width:100%;margin-inline:auto}.hero-frame{height:305px;width:245px}.hero-stamp{width:75px;height:75px;font-size:.57rem;right:10%}.hero-footnote{display:none}.section-heading{display:block;margin-bottom:2rem}.section-heading>p{margin-top:1.2rem;max-width:570px}.world-layout{display:block}.world-aside{min-height:0;display:block;border:0;padding:0;margin-bottom:2.5rem}.vertical-label{display:none}.world-quote{border-left:2px solid var(--gold);padding-left:1rem;font-size:1.55rem;max-width:100%}.world-prose{columns:1}.faction-card{min-height:0}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.card-info{padding:.8rem;min-height:123px}.card-info strong{font-size:1.35rem}.card-info small{font-size:.61rem}.card-info>span{font-size:.78rem}.map-layout{grid-template-columns:1fr}.direction-map{min-height:420px}.region-panel{min-height:0}.dialog-header{grid-template-columns:150px 1fr;gap:1rem;padding:1.2rem}.dialog-intro h2{font-size:2.5rem}.dialog-epithet{font-size:1.1rem}.dialog-facts{grid-template-columns:1fr}.dialog-tabs{padding:0 1rem}.dialog-panel{padding:1rem 1.2rem 2rem}}
@media(max-width:480px){.eyebrow{font-size:.63rem}.hero-art{height:300px}.hero-frame{height:265px;width:210px}.hero-stamp{right:2%}.section-heading h2{font-size:2.8rem}.faction-grid{grid-template-columns:1fr}.faction-card{padding:1.3rem}.direction-map{min-height:350px}.map-center{width:85px;font-size:.68rem}.region-point{padding:.25rem;max-width:97px}.region-point b{font-size:.62rem}.region-point small{font-size:.72rem}.map-caption{font-size:.5rem}.dialog-header{grid-template-columns:1fr}.dialog-cover{width: min(220px,70%);margin:auto}.dialog-intro h2{font-size:3rem}.dialog-facts{grid-template-columns:1fr 1fr}.gallery-grid{gap:.65rem}.gallery-grid figcaption{font-size:.67rem}.footer-inner{align-items:start;flex-direction:column}.card-info{min-height:132px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.header-index,.hero-footnote,.vertical-label,.card-info small,.map-caption,.dialog-top span,.dialog-facts span,.region-kicker,.eyebrow{font-size:.75rem}
.card-info small,.region-point b,.region-point small,.gallery-grid figcaption{font-size:.75rem}
.map-caption{font-size:.75rem}.region-point small{line-height:1.15}
@media(max-width:760px){.card-info>span{font-size:.875rem}}
@media(max-width:480px){.hero h1{font-size:clamp(3.2rem,15vw,6rem)}.eyebrow,.card-info small,.region-point b,.region-point small,.map-caption,.gallery-grid figcaption{font-size:.75rem}}
