:root {
  color-scheme: dark;
  --bg: #100c17; --panel: #191321; --panel-2: #211829;
  --ink: #f1e5d3; --muted: #bdb1c1; --gold: #d8aa63; --line: #3c3046;
  --accent: #d8aa63; --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Segoe UI', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
body::before { content: ''; position: fixed; z-index: -1; inset: 0; background: radial-gradient(ellipse at 86% 6%, #45265438, transparent 54%), radial-gradient(ellipse at 5% 56%, #301b3326, transparent 55%); pointer-events: none; }
button, input, select { font: inherit; }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
button:disabled { cursor: default; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
button, input, select { color: var(--ink); }
input, select { min-height: 48px; background: #17111e; border: 1px solid var(--line); border-radius: 5px; }
input::placeholder { color: #a89bad; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; }
h1 { font-size: clamp(2.7rem, 5.6vw, 5.05rem); line-height: 1.09; letter-spacing: -.035em; margin-bottom: 25px; }
h2 { font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.2; letter-spacing: -.02em; }
h3 { font-size: 1.6rem; line-height: 1.25; }
p { margin-bottom: 1.15em; }
img { max-width: 100%; display: block; }
svg { display: block; }
[hidden] { display: none !important; }
small { font-size: .8rem; }
::selection { background: #6c4b7e; color: white; }
.container { width: min(1220px, calc(100% - 96px)); margin: 0 auto; }
.eyebrow { display: flex; align-items: center; gap: 12px; font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.muted { color: var(--muted); }
.gold { color: var(--gold); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -70px; left: 12px; z-index: 100; padding: 12px 20px; background: var(--gold); color: var(--bg); }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 40; background: #100c17f2; backdrop-filter: blur(18px); border-bottom: 1px solid #392c425f; }
.header-inner { min-height: 89px; display: flex; align-items: center; gap: 30px; justify-content: space-between; }
.brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.brand-icon { width: 42px; height: 49px; color: var(--gold); }
.brand-name { font-family: var(--serif); text-transform: uppercase; letter-spacing: .15em; font-size: 1rem; line-height: 1.4; }
.brand-name span { display: block; color: var(--muted); font-family: var(--sans); font-size: .55rem; letter-spacing: .3em; margin-top: 3px; }
.main-nav { display: flex; align-items: center; gap: 27px; }
.main-nav a { position: relative; font-size: .82rem; padding: 29px 0; color: var(--muted); }
.main-nav a:hover, .main-nav a[aria-current='page'] { color: var(--ink); }
.main-nav a[aria-current='page']::after { content: ''; position: absolute; bottom: 18px; height: 2px; left: 0; right: 0; background: var(--gold); }
.edition { font-size: .62rem; color: var(--muted); line-height: 1.7; text-transform: uppercase; letter-spacing: .17em; border-left: 1px solid var(--line); padding-left: 22px; }
.menu-toggle { display: none; background: transparent; border: 1px solid var(--line); padding: 8px 13px; border-radius: 3px; font-size: .85rem; }
.preview-line { padding: 8px 20px; text-align: center; background: #1c1524; color: #c5b8cb; font-size: .7rem; letter-spacing: .03em; border-bottom: 1px solid #392c425f; }
.preview-line strong { color: var(--gold); font-weight: 500; }
main { min-height: 60vh; outline: none; }
.hero { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; gap: 50px; padding: 65px 0 74px; }
.hero-copy .eyebrow { margin-bottom: 25px; }
.hero h1 em { font-weight: 400; color: var(--gold); }
.hero-copy > p { max-width: 450px; font-size: .96rem; color: var(--muted); line-height: 1.9; }
.button-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 30px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 13px 22px; min-height: 49px; border: 1px solid var(--line); background: transparent; border-radius: 3px; font-size: .8rem; font-weight: 500; transition: background .2s, border-color .2s; }
.btn.primary { color: #211527; background: var(--gold); border-color: var(--gold); }
.btn.primary:hover { background: #e7be7d; border-color: #e7be7d; }
.btn.secondary:hover { border-color: var(--gold); background: #281c30; }
.btn.small { min-height: 42px; padding: 9px 15px; font-size: .76rem; }
.text-link { display: inline-flex; gap: 13px; align-items: center; font-size: .82rem; color: var(--ink); }
.text-link:hover { color: var(--gold); }
.stats { display: flex; gap: 28px; margin-top: 41px; }
.stat { border-right: 1px solid var(--line); padding-right: 29px; }
.stat:last-child { border-right: 0; }
.stat strong { font-family: var(--serif); font-size: 1.65rem; line-height: 1.1; display: block; font-weight: 400; }
.stat span { display: block; font-size: .57rem; color: var(--muted); text-transform: uppercase; letter-spacing: .16em; margin-top: 9px; }
.hero-stage { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px 35px 0; min-height: 530px; isolation: isolate; }
.hero-stage::before { content: ''; position: absolute; width: 500px; max-width: 100%; aspect-ratio: 1; background: radial-gradient(circle, #7b458f21 0%, #5428660b 50%, transparent 69%); border: 1px solid #6f4f6925; border-radius: 50%; z-index: -2; }
.hero-stage::after { content: ''; position: absolute; width: 72%; max-width: 380px; aspect-ratio: 1; border: 1px solid #8f6d4930; transform: rotate(32deg); z-index: -2; }
.hero-stage .flip-wrap::before, .hero-stage .flip-wrap::after { content: ''; position: absolute; inset: 0; border: 1px solid #654d60; background: #201527; border-radius: 13px; z-index: -1; transform: rotate(-9deg); }
.hero-stage .flip-wrap::after { transform: rotate(7deg); border-color: #624e60; background: #271b30; }
.flip-wrap { position: relative; width: min(100%, 306px); z-index: 1; }
.flip-card { position: relative; width: 100%; aspect-ratio: 5 / 7.4; perspective: 1400px; border: 0; background: none; padding: 0; display: block; text-align: center; border-radius: 12px; }
.flip-inner { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .85s cubic-bezier(.2,.7,.25,1); }
.flip-card.is-flipped .flip-inner { transform: rotateY(180deg); }
.card-face { position: absolute; inset: 0; display: flex; flex-direction: column; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; border-radius: 12px; border: 1px solid #bb986c; background: #201528; box-shadow: 0 23px 70px #0007; }
.card-face::after { content: ''; position: absolute; inset: 8px; border: 1px solid #997a4d80; border-radius: 6px; pointer-events: none; }
.card-face-front { transform: rotateY(0); }
.card-face-back { transform: rotateY(180deg); background: radial-gradient(circle at 50% 40%, #462458, #210e2d 68%); align-items: center; justify-content: center; padding: 35px; }
.card-header { display: flex; justify-content: space-between; padding: 21px 22px 0; color: var(--gold); letter-spacing: .16em; font-size: .58rem; text-transform: uppercase; z-index: 2; }
.card-art { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; color: var(--accent); }
.card-art::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 64%); }
.sigil { width: 120px; height: 120px; color: var(--accent); position: relative; }
.card-art .sigil { width: 152px; height: 152px; }
.card-art img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.art-reserved { position: absolute; bottom: 6px; left: 14px; right: 14px; text-transform: uppercase; font-family: var(--sans); font-size: .48rem; letter-spacing: .18em; color: var(--muted); }
.card-title-box { padding: 18px 21px 23px; position: relative; background: linear-gradient(transparent, #160e1e); }
.card-title-box::before { content: ''; width: 45%; height: 1px; background: #b99c6670; position: absolute; top: 0; left: 27.5%; }
.card-name { font-family: var(--serif); text-transform: uppercase; letter-spacing: .12em; display: block; font-size: 1.4rem; color: var(--ink); }
.card-subtitle { display: block; font-family: var(--serif); font-size: .88rem; color: var(--accent); margin-top: 4px; }
.card-affinity { font-size: .5rem; letter-spacing: .14em; color: #b9adbf; text-transform: uppercase; display: block; margin-top: 13px; }
.card-power { display: block; border-top: 1px solid #ffffff15; margin: 13px 1px 0; padding-top: 10px; font-size: .62rem; color: var(--ink); }
.back-icon { width: 98px; height: 112px; color: var(--gold); margin-bottom: 22px; }
.back-title { font-family: var(--serif); font-size: 1.2rem; letter-spacing: .15em; text-transform: uppercase; line-height: 1.6; }
.back-rule { width: 70px; height: 1px; background: var(--gold); margin: 19px 0; opacity: .6; }
.qr-note { font-size: .6rem; color: #d1bfcf; max-width: 160px; line-height: 1.65; }
.flip-hint { font-size: .64rem; color: var(--muted); letter-spacing: .08em; margin: 26px 0 0; text-align: center; }
.ornament-divider { display: flex; align-items: center; gap: 22px; color: var(--gold); opacity: .65; margin: 0; }
.ornament-divider::before, .ornament-divider::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, #9e7a4c70); }
.ornament-divider::after { transform: scaleX(-1); }
.section { padding: 69px 0; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 32px; }
.section-heading h2 { margin: 10px 0 0; }
.section-heading > p { color: var(--muted); max-width: 310px; font-size: .85rem; margin-bottom: 2px; }
.founder-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.founder-card { position: relative; overflow: hidden; display: block; border: 1px solid var(--line); border-radius: 5px; background: #19131f; transition: border-color .25s, transform .25s; }
.founder-card:hover { border-color: var(--accent); transform: translateY(-5px); }
.founder-art { position: relative; display: flex; justify-content: center; align-items: center; height: 212px; background: radial-gradient(ellipse at center bottom, color-mix(in srgb, var(--accent) 11%, #17111e), #17111e 78%); border-bottom: 1px solid #ffffff09; overflow: hidden; }
.founder-art::before { content: ''; position: absolute; inset: 20px 21px 0; border: 1px solid color-mix(in srgb, var(--accent) 18%, transparent); border-bottom: 0; border-radius: 140px 140px 0 0; }
.founder-art img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.founder-art .sigil { width: 105px; height: 105px; }
.card-index { position: absolute; top: 17px; left: 18px; font-size: .6rem; color: #c5b9c9; letter-spacing: .13em; z-index: 1; }
.card-index.on-art { background: #160f23ca; padding: 3px 7px; border-radius: 2px; }
.founder-art .art-reserved { bottom: 18px; text-align: center; font-size: .49rem; }
.founder-text { padding: 24px 25px 21px; }
.founder-text h3 { font-size: 1.7rem; margin-bottom: 3px; }
.founder-title { color: var(--accent); font-family: var(--serif); font-size: 1rem; margin-bottom: 17px; }
.founder-bottom { display: flex; gap: 12px; align-items: center; justify-content: space-between; border-top: 1px solid #ffffff10; padding-top: 13px; }
.founder-bottom span { font-size: .61rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.founder-bottom b { font-size: 1.1rem; font-weight: 400; color: var(--accent); }
.pending-strip { display: flex; gap: 26px; align-items: center; justify-content: space-between; padding: 24px 28px; margin-top: 28px; border: 1px dashed #493852; background: #18111e55; border-radius: 4px; }
.pending-strip p { margin: 0; font-size: .8rem; color: var(--muted); }
.pending-strip strong { color: var(--ink); font-weight: 500; }
.pending-names { font-family: var(--serif); font-size: 1.05rem; color: #b6a1bf; white-space: nowrap; }
.quote-panel { padding: 54px 65px; margin: 0 0 78px; background: linear-gradient(110deg, #281b32, #1a1222); border: 1px solid #47324d; text-align: center; }
.quote-panel p { font-family: var(--serif); font-size: clamp(1.6rem, 2.8vw, 2.35rem); line-height: 1.5; max-width: 820px; margin: 15px auto 19px; color: #eadcc7; }
.quote-panel .eyebrow { justify-content: center; }
.quote-panel .eyebrow::before { display: none; }
.page-top { padding: 59px 0 35px; }
.page-top h1 { font-size: clamp(2.5rem, 4.6vw, 4.1rem); margin-top: 17px; }
.page-top > p { max-width: 650px; color: var(--muted); }
.filter-bar { display: grid; grid-template-columns: 1fr minmax(220px, 290px); gap: 20px; margin: 0 0 22px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field label { font-size: .72rem; color: var(--muted); }
.field input, .field select { width: 100%; padding: 12px 15px; }
.result-count { font-size: .72rem; color: var(--muted); margin-bottom: 22px; }
.no-results { padding: 45px; text-align: center; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); grid-column: 1 / -1; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; color: var(--muted); font-size: .72rem; padding: 28px 0 0; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span { color: var(--accent); }
.character-hero { display: grid; grid-template-columns: 1.5fr 1fr; gap: 65px; align-items: center; padding: 40px 0 58px; }
.character-hero h1 { font-size: clamp(3.1rem, 5.7vw, 5.2rem); margin: 17px 0 9px; }
.character-subtitle { font-size: clamp(1.65rem, 2.5vw, 2.1rem); color: var(--accent); margin-bottom: 21px; }
.character-class { color: var(--muted); font-size: .9rem; margin-bottom: 23px; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tag { border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); background: color-mix(in srgb, var(--accent) 6%, transparent); padding: 5px 11px; border-radius: 2px; font-size: .62rem; color: var(--accent); letter-spacing: .04em; }
.primary-power { margin: 28px 0 0; max-width: 580px; border-left: 2px solid var(--accent); padding: 3px 0 3px 20px; }
.primary-power small { color: var(--muted); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; }
.primary-power h3 { margin: 8px 0 10px; font-size: 1.35rem; }
.primary-power p { color: var(--muted); font-size: .82rem; margin-bottom: 0; }
.character-card-area { display: flex; align-items: center; flex-direction: column; }
.character-card-area .flip-wrap { width: min(100%, 286px); }
.art-tools { margin: 17px auto 0; max-width: 315px; text-align: center; }
.art-tools p { font-size: .62rem; color: var(--muted); margin: 9px 0 0; }
.clear-art { display: block; border: 0; border-bottom: 1px solid var(--line); background: transparent; margin: 8px auto 0; color: var(--muted); font-size: .67rem; padding: 3px 0; }
.character-nav { display: flex; flex-wrap: wrap; gap: 26px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 13px 0; }
.character-nav button { border: 0; background: transparent; font-size: .76rem; color: var(--muted); padding: 6px 0; }
.character-nav button:hover { color: var(--accent); }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 62px; padding-top: 50px; }
.detail-content section { margin-bottom: 52px; scroll-margin-top: 110px; }
.detail-content h2 { font-size: 2rem; margin: 15px 0 23px; }
.detail-content h3 { font-size: 1.55rem; }
.prose { color: #d7cbd8; font-family: var(--serif); font-size: 1.1rem; line-height: 1.85; }
.prose p:last-child { margin-bottom: 0; }
.prose .opening::first-letter { font-family: var(--serif); float: left; font-size: 3.5rem; color: var(--accent); line-height: 1; padding: 5px 9px 0 0; }
.status-note { display: inline-block; font-size: .62rem; padding: 4px 9px; border: 1px solid #5e4769; color: #d7bbdc; border-radius: 3px; }
.status-note.pending { color: #ebc384; border-color: #715632; background: #3d2a1426; }
.editor-note { font-size: .75rem; line-height: 1.75; color: #bdafc5; border-left: 2px solid #6b5175; padding: 3px 0 3px 15px; margin-top: 20px; }
.character-quote { margin: 27px 0 0; padding: 23px 27px; border: 1px solid #48324f; background: #24172c; }
.character-quote p { font-family: var(--serif); font-style: italic; font-size: 1.3rem; line-height: 1.6; margin: 0; color: var(--accent); }
.character-quote small { display: block; margin-top: 10px; color: var(--muted); font-size: .7rem; }
.power-list { display: grid; gap: 13px; }
.power-item { border: 1px solid var(--line); background: #1b1422; border-radius: 4px; padding: 23px 24px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 18px; }
.power-item .roman { font-family: var(--serif); color: var(--accent); font-size: 1.2rem; }
.power-item h3 { font-size: 1.25rem; margin-bottom: 11px; }
.power-item p { font-size: .86rem; color: #c6b9cb; margin: 0; }
.power-item .power-status { display: block; color: var(--muted); font-size: .61rem; margin-top: 12px; }
.weakness-box { border: 1px solid #655136; background: #382a171f; border-radius: 4px; padding: 27px; }
.weakness-box h3 { color: #e1be83; margin: 0 0 14px; }
.weakness-box .prose { font-size: 1rem; }
.alternative { padding-top: 18px; margin-top: 20px; border-top: 1px solid #65513680; font-size: .86rem; color: #d3c3cc; }
.alternative strong { display: block; margin-bottom: 10px; color: #e1be83; font-size: .68rem; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
.detail-sidebar { min-width: 0; }
.side-panel { border: 1px solid var(--line); background: #1b1422; padding: 26px; margin-bottom: 23px; border-radius: 4px; scroll-margin-top: 110px; }
.side-panel h3 { font-size: 1.45rem; margin-bottom: 22px; }
.facts { margin: 0; }
.fact { margin-bottom: 18px; }
.fact:last-child { margin-bottom: 0; }
.fact dt { color: var(--muted); font-size: .61rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.fact dd { margin: 0; font-size: .83rem; line-height: 1.65; overflow-wrap: anywhere; }
.attribute-row { display: flex; gap: 13px; margin-top: 24px; border-top: 1px solid var(--line); padding-top: 21px; }
.attribute { flex: 1; }
.attribute span { color: var(--muted); font-size: .65rem; display: block; }
.attribute b { display: block; font-size: 1.1rem; margin: 5px 0; color: var(--accent); font-weight: 400; }
.attribute small { display: block; font-size: .6rem; color: var(--muted); }
.side-panel .disclaimer { margin: 18px 0 0; color: var(--muted); font-size: .67rem; }
.review-box { background: #1a1222; border: 1px solid #47364f; padding: 22px 24px; border-radius: 4px; scroll-margin-top: 110px; margin-bottom: 42px; }
.review-box summary { cursor: pointer; font-size: .83rem; color: var(--ink); }
.review-box summary::marker { color: var(--gold); }
.review-content { padding-top: 20px; color: var(--muted); font-size: .8rem; }
.review-content ul { padding-left: 19px; }
.review-content li { margin-bottom: 12px; }
.review-content strong { color: #ead5b6; font-weight: 500; }
.next-prev { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border-top: 1px solid var(--line); padding: 30px 0 60px; }
.next-prev a { display: block; border: 1px solid var(--line); border-radius: 4px; padding: 20px 24px; }
.next-prev a:hover { border-color: var(--gold); }
.next-prev a:last-child { text-align: right; }
.next-prev span { display: block; color: var(--muted); font-size: .61rem; text-transform: uppercase; letter-spacing: .1em; }
.next-prev strong { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; display: block; margin-top: 6px; }
.reading-layout { display: grid; grid-template-columns: 180px minmax(0, 760px); gap: 65px; padding: 15px 0 75px; }
.chapter-marker { color: var(--gold); border-top: 1px solid var(--line); padding-top: 24px; }
.chapter-marker span { font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; display: block; }
.chapter-marker b { font-family: var(--serif); font-size: 6rem; line-height: 1.3; font-weight: 400; color: #715378; }
.reading-layout .prose { font-size: 1.22rem; }
.reading-layout .prose p { margin-bottom: 28px; }
.story-divider { border: 0; border-top: 1px solid var(--line); margin: 34px 0; }
.empty-state { border: 1px solid #48364f; background: radial-gradient(ellipse at 50% 0%, #38204377, #19121f); padding: 55px 60px; margin: 4px 0 55px; text-align: center; }
.empty-state > p { max-width: 580px; margin: 15px auto 25px; color: var(--muted); font-size: .9rem; }
.empty-state > .sigil { margin: 0 auto 22px; width: 90px; height: 90px; color: var(--gold); }
.avatar-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 33px; }
.avatar-links a { width: 106px; text-align: center; padding: 10px 0; }
.avatar-links .sigil { width: 52px; height: 52px; margin: 0 auto 9px; }
.avatar-links span { font-size: .76rem; color: var(--muted); }
.avatar-links a:hover span { color: var(--ink); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 15px 0 40px; }
.about-panel { padding: 31px; border: 1px solid var(--line); background: #1a1321; }
.about-panel h2 { font-size: 1.65rem; }
.about-panel p { color: var(--muted); font-size: .88rem; }
.about-panel p:last-child { margin: 0; }
.route-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.route-list a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; border-bottom: 1px solid var(--line); padding: 10px 0; font-size: .83rem; }
.route-list code { color: var(--gold); font-size: .75rem; overflow-wrap: anywhere; }
.site-footer { border-top: 1px solid var(--line); background: #0c0911; padding: 35px 0; }
.footer-inner { display: flex; justify-content: space-between; gap: 35px; align-items: center; }
.footer-title { font-family: var(--serif); letter-spacing: .1em; text-transform: uppercase; font-size: .84rem; }
.footer-inner p { font-size: .66rem; line-height: 1.8; color: var(--muted); margin: 7px 0 0; max-width: 440px; }
.footer-links { display: flex; gap: 22px; align-items: center; font-size: .68rem; color: var(--muted); }
.footer-links a:hover { color: var(--gold); }
.version { white-space: nowrap; border: 1px solid var(--line); padding: 4px 8px; font-size: .6rem; }
.toast { position: fixed; z-index: 80; bottom: 22px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); color: var(--ink); background: #2c1e36; border: 1px solid #91724e; border-radius: 5px; box-shadow: 0 6px 40px #0009; padding: 14px 23px; font-size: .82rem; text-align: center; }
dialog { border: 1px solid var(--gold); border-radius: 6px; background: #1b1422; color: var(--ink); width: min(520px, calc(100% - 32px)); padding: 30px; }
dialog::backdrop { background: #08050cc9; }
dialog h2 { font-size: 1.8rem; }
dialog p { color: var(--muted); font-size: .85rem; }
dialog input { width: 100%; padding: 10px 12px; }
dialog .btn { margin-top: 18px; }
@media (min-width: 1500px) { .hero { padding-top: 85px; padding-bottom: 90px; } }
@media (max-width: 1100px) {
 .container { width: calc(100% - 64px); }
 .edition { display: none; }
 .hero { gap: 27px; }
 .hero-stage { padding-left: 15px; padding-right: 15px; }
 .detail-layout { grid-template-columns: minmax(0, 1fr) 275px; gap: 35px; }
 .character-hero { gap: 40px; }
 .founder-title { font-size: .94rem; }
 .founder-text { padding: 22px 19px; }
}
@media (max-width: 820px) {
 .container { width: calc(100% - 44px); }
 .header-inner { min-height: 76px; gap: 20px; }
 .brand-name { font-size: .87rem; }
 .brand-icon { width: 34px; height: 41px; }
 .main-nav { gap: 19px; }
 .main-nav a { font-size: .73rem; padding: 24px 0; }
 .main-nav a[aria-current='page']::after { bottom: 13px; }
 .hero { grid-template-columns: 1fr 1fr; gap: 12px; padding: 47px 0 58px; }
 .hero h1 { font-size: 3.2rem; }
 .hero-stage { min-height: 460px; padding: 15px 8px 0; }
 .hero-stage .flip-wrap { max-width: 250px; }
 .hero-copy > p { font-size: .85rem; }
 .hero .button-row { gap: 15px; }
 .stats { gap: 17px; }
 .stat { padding-right: 17px; }
 .stat span { font-size: .5rem; }
 .founder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .section { padding: 50px 0; }
 .section-heading { align-items: start; }
 .section-heading > p { max-width: 230px; }
 .character-hero { grid-template-columns: 1.2fr 1fr; gap: 30px; }
 .character-hero h1 { font-size: 3.6rem; }
 .character-subtitle { font-size: 1.7rem; }
 .detail-layout { grid-template-columns: minmax(0, 1fr); }
 .detail-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
 .detail-sidebar .side-panel { margin-bottom: 0; }
 .detail-layout { padding-bottom: 35px; }
 .reading-layout { grid-template-columns: 100px minmax(0, 1fr); gap: 34px; }
}
@media (max-width: 640px) {
 .container { width: calc(100% - 36px); }
 .header-inner { min-height: 72px; }
 .brand { gap: 10px; }
 .brand-name { font-size: .83rem; }
 .brand-name span { font-size: .49rem; }
 .menu-toggle { display: inline-block; }
 .main-nav { position: absolute; top: 72px; left: 0; right: 0; background: #19121ffb; border-bottom: 1px solid var(--line); display: none; padding: 9px 19px; box-shadow: 0 12px 20px #0004; }
 .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
 .main-nav a { padding: 12px 8px; font-size: .85rem; }
 .main-nav a[aria-current='page']::after { bottom: 9px; width: 30px; left: 8px; }
 .preview-line { font-size: .63rem; padding: 8px 18px; }
 .hero { grid-template-columns: 1fr; gap: 28px; padding-top: 38px; padding-bottom: 46px; }
 .hero-copy .eyebrow { font-size: .59rem; margin-bottom: 22px; }
 .hero h1 { font-size: clamp(3rem, 11.7vw, 4.2rem); }
 .hero-copy > p { font-size: .93rem; max-width: 420px; }
 .hero-copy .button-row { gap: 20px; }
 .stats { margin-top: 33px; gap: 25px; }
 .stat { padding-right: 25px; }
 .stat span { font-size: .51rem; }
 .hero-stage { min-height: 479px; padding-top: 13px; margin-top: 9px; }
 .hero-stage::before { max-width: 97%; }
 .hero-stage::after { max-width: 80%; }
 .hero-stage .flip-wrap { max-width: 273px; }
 .card-art .sigil { width: 135px; height: 135px; }
 .card-name { font-size: 1.25rem; }
 .section-heading { display: block; margin-bottom: 26px; }
 .section-heading > p { margin: 17px 0 0; max-width: 100%; }
 .section-heading .text-link { margin-top: 20px; }
 .section { padding-top: 40px; }
 .founder-grid { grid-template-columns: 1fr 1fr; gap: 13px; }
 .founder-art { height: 153px; }
 .founder-art::before { inset: 18px 12px 0; }
 .founder-art .sigil { width: 78px; height: 78px; }
 .card-index { font-size: .60rem; left: 11px; top: 11px; }
 .founder-art .art-reserved { font-size: .4rem; bottom: 13px; left: 5px; right: 5px; letter-spacing: .07em; }
 .founder-text { padding: 18px 12px 14px; }
 .founder-text h3 { font-size: 1.35rem; }
 .founder-title { font-size: .82rem; line-height: 1.4; min-height: 2.8em; margin: 7px 0 12px; }
 .founder-bottom { gap: 5px; }
 .founder-bottom span { font-size: .60rem; letter-spacing: .035em; }
 .pending-strip { display: block; padding: 20px; margin-top: 22px; }
 .pending-names { margin-top: 12px; }
 .quote-panel { padding: 33px 23px; margin-bottom: 50px; }
 .quote-panel p { font-size: 1.6rem; }
 .page-top { padding: 37px 0 24px; }
 .page-top h1 { font-size: 2.75rem; }
 .page-top > p { font-size: .9rem; }
 .filter-bar { grid-template-columns: 1fr; gap: 14px; }
 .character-hero { grid-template-columns: 1fr; padding-top: 29px; gap: 35px; }
 .character-hero h1 { font-size: 3.65rem; }
 .character-subtitle { font-size: 1.8rem; }
 .character-class { font-size: .85rem; }
 .primary-power p { font-size: .86rem; }
 .character-card-area .flip-wrap { max-width: 280px; }
 .character-nav { gap: 15px; justify-content: space-between; }
 .character-nav button { font-size: .69rem; }
 .detail-layout { padding-top: 35px; }
 .detail-sidebar { grid-template-columns: 1fr; }
 .detail-content section { margin-bottom: 37px; scroll-margin-top: 92px; }
 .detail-content h2 { font-size: 1.9rem; }
 .prose { font-size: 1.06rem; }
 .power-item { grid-template-columns: 21px minmax(0, 1fr); padding: 21px 18px; gap: 13px; }
 .power-item h3 { font-size: 1.2rem; }
 .weakness-box { padding: 23px 21px; }
 .character-quote { padding: 23px 21px; }
 .character-quote p { font-size: 1.2rem; }
 .next-prev { gap: 12px; padding-bottom: 40px; }
 .next-prev a { padding: 17px 14px; }
 .reading-layout { grid-template-columns: 1fr; gap: 20px; padding-bottom: 45px; }
 .chapter-marker { display: flex; align-items: center; gap: 18px; padding-top: 10px; }
 .chapter-marker b { font-size: 2.5rem; }
 .reading-layout .prose { font-size: 1.13rem; }
 .empty-state { padding: 34px 22px; }
 .avatar-links { gap: 5px; }
 .avatar-links a { width: 88px; }
 .about-grid { grid-template-columns: 1fr; gap: 18px; }
 .about-panel { padding: 26px; }
 .footer-inner { display: block; }
 .footer-links { margin-top: 22px; justify-content: space-between; gap: 12px; }
}
@media (max-width: 350px) {
 .founder-grid { grid-template-columns: 1fr; }
 .founder-art { height: 210px; }
 .founder-title { min-height: 0; }
 .founder-art .sigil { width: 100px; height: 100px; }
 .stats { gap: 16px; }
 .stat { padding-right: 16px; }
 .hero-stage .flip-wrap { max-width: 245px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
 .founder-card:hover { transform: none; }
}
@media print {
 .site-header, .preview-line, .site-footer, .button-row, .character-nav, .art-tools, .flip-hint, .next-prev, .toast { display: none !important; }
 body { background: white; color: black; }
 .container { width: 100%; }
 .detail-layout, .character-hero { display: block; }
 .character-card-area { display: none; }
 .detail-content section, .side-panel { break-inside: avoid; }
 .prose, .power-item p, .muted, .fact dt { color: #222; }
 .side-panel, .power-item, .weakness-box { background: white; border-color: #aaa; }
}

/* 0.2: user-supplied character art, placed full-bleed behind card text. */
.card-face-front.has-art .card-art { position: absolute; inset: 0; min-height: 0; display:block; }
.card-face-front.has-art .card-art::before { display: none; }
.card-face-front.has-art .card-art img { display:block; width:100%; height:100%; inset:0; object-fit:cover; object-position: center center; }
.card-face-front.has-art .card-header { position:relative; z-index:2; flex-shrink:0; padding:20px 21px 31px; background:linear-gradient(to bottom,#140b1fdf,transparent); text-shadow:0 1px 7px #000; }
.card-face-front.has-art .card-title-box { margin-top:auto; z-index:2; padding:50px 21px 22px; background:linear-gradient(to bottom,transparent 0%,#180e24ed 34%,#140d1ffd 100%); text-shadow:0 1px 8px #000b; }
.card-face-front.has-art .card-title-box::before { display:none; }
.card-face-front.has-art .card-subtitle { color:#f3d6ac; }
.card-face-front.has-art .card-affinity { color:#e2d4e6; }
.card-face-front.has-art .card-power { border-top-color:#f5d7b830; }
.art-tools { display:flex; flex-direction:column; align-items:center; gap:8px; }
.art-tools .btn { min-width:210px; }
.art-tools p { max-width:260px; }
#art-viewer { width:auto; min-width:min(320px,90vw); max-width:min(800px,96vw); max-height:95vh; padding:0; overflow:auto; border-radius:7px; background:#100b18; border:1px solid #aa895d; color:#eee0d1; }
#art-viewer::backdrop { background:#05030aeb; }
#art-viewer img { display:block; width:auto; max-width:min(730px,94vw); max-height:80vh; object-fit:contain; }
.art-viewer-footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 18px; }
.art-viewer-caption { font-family:var(--serif); font-size:1.05rem; margin:0; }
.art-viewer-footer button { border:1px solid #ad8955; background:transparent; color:#f1e5d3; border-radius:4px; padding:8px 13px; cursor:pointer; }
@media(max-width:640px) { .card-face-front.has-art .card-title-box {padding:39px 17px 17px;} .card-face-front.has-art .card-header {padding:18px 19px 25px;} }

/* --- GUILDA / v0.3: original identity, chronicles-first and interactive atlas --- */
:root { --gold-light:#f2d7a3; --aurora:#b592d0; --panel-gold:#4b3546; }
.site-header { background:#100c17f2; }
.header-inner { gap:19px; }
.brand { gap:9px; }
.brand-seal { object-fit:contain; filter:drop-shadow(0 0 8px #d8aa6330); width:51px; height:57px; }
.main-nav { gap:21px; }
.main-nav a { font-size:.79rem; }
.edition { font-size:.53rem; }
.new-mark { width:100px; height:100px; }
.story-first { min-height:580px; padding:58px 0 61px; }
.story-first .hero-copy h1 { max-width:700px; font-size:clamp(3.1rem,5.75vw,5.2rem); }
.story-first .hero-copy p { max-width:510px; }
.hero-brand-stage { min-height:570px; }
.hero-brand-stage:before { width:530px; border:1px solid #986d552b; background:radial-gradient(circle,#6c446a1e,#3b224c18 46%, transparent 72%); }
.hero-brand-stage:after { width:73%; max-width:400px; border:1px solid #ba9b5b3a; transform:rotate(45deg); }
.hero-emblem { width:min(100%,370px); aspect-ratio:1; display:block; z-index:2; filter:drop-shadow(0 0 32px #bc865b31); animation:emblem-breathe 6s ease-in-out infinite; }
.hero-emblem-caption { position:relative; z-index:2; margin-top:0; text-transform:uppercase; font-size:.64rem; letter-spacing:.31em; color:#d0ae77; }
.portal-halo { position:absolute; inset:13%; border-radius:50%; background:conic-gradient(from 0deg,transparent,#96713d29,transparent,#b391c322, transparent); animation:slow-rotate 38s linear infinite; opacity:.7; }
.portal-dust { position:absolute; width:7px; height:7px; border-radius:50%; background:#f2cf91; box-shadow:0 0 14px #ffca7fbd; }
.dust-a { top:19%;left:28%; } .dust-b { right:17%;bottom:27%;width:4px;height:4px; }
@keyframes emblem-breathe { 0%,100% { filter:drop-shadow(0 0 20px #bc865b24);transform:scale(1); }50%{filter:drop-shadow(0 0 38px #bc865b4c);transform:scale(1.02);} }
@keyframes slow-rotate { to { transform:rotate(360deg); } }
.chronicle-feature { margin:46px auto 38px; display:grid; grid-template-columns:320px minmax(0,1fr);gap:58px;align-items:center;background:radial-gradient(ellipse at 12% 35%,#49304a7a,#211724 50%,#1a1221);border:1px solid #574057;padding:42px 70px 42px 26px; }
.chronicle-feature-crest { border-right:1px solid #8c6c4938;display:flex;align-items:center;justify-content:center;padding:10px 20px 10px 0; }
.chronicle-feature-crest img { width:230px; height:230px;filter:drop-shadow(0 0 25px #ae81b74b); }
.chronicle-feature h2 { font-size:clamp(1.9rem,3vw,3.1rem); margin:14px 0; }
.chronicle-feature p { color:var(--muted); max-width:570px; font-size:.92rem; }
.centered { justify-content:center; }
.chronicle-heading { position:relative; text-align:center; min-height:445px; padding:60px 16px 36px; display:flex;align-items:center;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate; }
.chronicle-heading:before { content:'';position:absolute;top:8%;left:50%;width:450px;transform:translateX(-50%);aspect-ratio:1;background:radial-gradient(circle,#6846662a,transparent 69%);border:1px solid #99775320;border-radius:50%;z-index:-1; }
.chronicle-logo { width:112px;height:112px;margin:8px auto 13px;filter:drop-shadow(0 0 20px #d8aa633b); }
.chronicle-heading h1 { font-size:clamp(3rem,6vw,5.5rem);margin:12px 0 16px; }
.chronicle-heading h1 em {color:var(--gold);}
.chronicle-heading p { max-width:670px; color:var(--muted);font-size:1.03rem; }
.chronicle-vertical-rule {height:42px; width:1px;background:linear-gradient(var(--gold),transparent);margin-top:20px;}
.chronicle-book { margin:4px 0 75px; border:1px solid #695074;display:grid;grid-template-columns:200px minmax(0,1fr);background:linear-gradient(110deg,#211629 0,#1b1421 42%,#17111d 100%);box-shadow:0 22px 75px #0004; }
.chronicle-aside { position:relative;border-right:1px solid #755b602b;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;padding:50px 24px;color:#d1b177; }
.chronicle-aside span { font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg); }
.chronicle-aside strong { display:block;font-family:Georgia,serif;font-size:6.7rem;font-weight:normal;line-height:1;margin-top:45px;color:#b58a5980; }
.chronicle-aside small {font-size:.58rem;letter-spacing:.2em;}
.chronicle-book-page { padding:64px clamp(28px,6vw,94px) 38px; }
.chronicle-book-page h2 { font-size:clamp(2.2rem,4vw,3.5rem);margin:18px 0 34px; }
.story-prose {max-width:740px;font-size:1.11rem;line-height:2.03;}
.story-prose p:first-child:first-letter {float:left;color:#d8aa63;font:normal 4.8rem/.85 Georgia,serif;padding:10px 10px 1px 0;}
.chronicle-seal { display:flex;align-items:center;gap:15px;margin:28px 0 30px;color:#cab28e;font-family:Georgia,serif;font-size:1rem;line-height:1.4; }
.chronicle-seal-mark {width:69px;height:69px;}
.chronicle-timeline {padding-bottom:70px;}
.lore-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.lore-panel {position:relative;min-height:300px;padding:34px 28px;border:1px solid #48364b;background:linear-gradient(145deg,#261b2a,#19141f);overflow:hidden;}
.lore-panel:before {position:absolute;content:'';inset:12px;border:1px solid #bc915326;pointer-events:none;}
.lore-roman {float:right;font:3.8rem Georgia,serif;color:#a8884b40;line-height:1;}
.lore-panel h3 {clear:both;font-size:1.65rem;margin:20px 0 13px;}
.lore-panel p {font-size:.86rem;line-height:1.82;color:var(--muted);}
.chronicle-ending {border-top:1px solid #5c4660;border-bottom:1px solid #5c4660;margin:0 0 76px;padding:30px 40px;display:flex;gap:43px;align-items:center;background:linear-gradient(90deg,#291b31,#15111b);}
.chronicle-ending-mark {width:180px;height:180px;flex-shrink:0;}
.chronicle-ending h2 {font-size:2.3rem;margin:12px 0;}
.chronicle-ending p {color:var(--muted);}
/* Special glossary book and linked definitions */
.glossary-jump {font-size:.76rem;color:#e3bc79;margin-left:10px;border-bottom:1px solid #d0aa655a;white-space:nowrap;}
.glossary-jump:hover {color:#ffe0a1;}
.glossary-hero {text-align:center;position:relative;padding:75px 16px 70px;overflow:hidden;isolation:isolate;border-bottom:1px solid #49354d;}
.glossary-hero:before{content:'';position:absolute;inset:12px 12%;background:radial-gradient(ellipse at center,#3d294b88,transparent 66%);z-index:-1;}
.glossary-hero-emblem {width:104px;height:104px;margin:0 auto 18px;}
.glossary-hero .eyebrow{justify-content:center;}
.glossary-hero h1{font-size:clamp(3rem,5.5vw,5rem);margin:21px 0 15px;}
.glossary-hero h1 em{color:var(--gold);}
.glossary-hero p{color:var(--muted);max-width:685px;margin:auto;}
.glossary-ledger{display:flex;justify-content:center;gap:29px;margin-top:28px;font-size:.7rem;letter-spacing:.14em;color:#d4b985;text-transform:uppercase;}
.glossary-ledger span+span{border-left:1px solid #75555c;padding-left:29px;}
.glossary-toolbar{padding:29px;background:linear-gradient(120deg,#21172a,#17101d);border:1px solid #4d354e;margin:39px 0 21px;}
.glossary-toolbar label{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#d8aa63;margin-bottom:11px;}
.glossary-toolbar input{width:100%;padding:13px 16px;background:#0f0b15;border:1px solid #614766;font-size:1rem;}
.glossary-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px;}
.glossary-tab{border:1px solid #57415f;background:#1c1423;color:#bfb0c5;padding:8px 14px;font-size:.73rem;border-radius:2px;}
.glossary-tab:hover,.glossary-tab.is-active{background:#dac08a;color:#241726;border-color:#d8aa63;}
.glossary-count{color:#a899b2;font-size:.72rem;margin:0 0 18px;}
.glossary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;}
.glossary-card{border:1px solid #483649;background:linear-gradient(160deg,#241a2b,#19131e);padding:26px 25px 30px;min-height:230px;transition:border-color .25s;}
.glossary-card:hover{border-color:#b18a62;}
.glossary-card-top{display:flex;justify-content:space-between;color:#d5ad76;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;}
.glossary-card-top span+span{font-size:1.2rem;line-height:1;}
.glossary-card h3{font-size:1.55rem;margin:22px 0 12px;}
.glossary-card p{color:var(--muted);font-size:.83rem;line-height:1.75;margin:0;}
.glossary-feature{margin:20px 0;background:linear-gradient(120deg,#422944,#211a2b);padding:40px;border:1px solid #9b6a78;}
.glossary-feature h2{margin:12px 0;}
.glossary-feature p{font-size:1.05rem;max-width:780px;}
.glossary-editor-note{margin:24px 0 70px;}
/* More immersive character lore */
.character-hero {position:relative;}
.character-page .primary-power {padding:12px 0 12px 22px;}
.character-page .character-card-area{position:relative;}
.character-page .character-card-area:before{content:'';position:absolute;top:3%;width:100%;max-width:390px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 17%,transparent),transparent 65%);pointer-events:none;}
.power-reveal{border:1px solid #4d3b52;margin-bottom:12px;background:linear-gradient(120deg,#271b2d,#19121f);}
.power-reveal[open]{border-color:color-mix(in srgb,var(--accent) 57%,#48344e);}
.power-reveal summary{list-style:none;display:grid;grid-template-columns:36px minmax(0,1fr) 35px;gap:14px;align-items:center;padding:22px 22px;cursor:pointer;}
.power-reveal summary::-webkit-details-marker{display:none;}
.power-reveal summary strong{display:block;font-family:Georgia,serif;font-weight:normal;font-size:1.3rem;}
.power-reveal summary small{color:var(--muted);font-size:.67rem;display:block;margin-top:5px;}
.power-reveal .roman{font:1.5rem Georgia,serif;color:var(--accent);}
.power-expand{color:#d8aa63;font-size:1.35rem;text-align:center;transition:transform .3s;}
.power-reveal[open] .power-expand{transform:rotate(45deg);}
.power-reveal-body{border-top:1px solid #ffffff16;padding:17px 24px 25px 73px;color:var(--muted);font-size:.91rem;line-height:1.84;}
.power-reveal-body p{margin:0;}
.power-hint{font-size:.77rem;margin-top:-5px;margin-bottom:19px;}
.lore-bridge{margin:34px 0 52px;border:1px solid #493650;background:linear-gradient(110deg,#2a1c30,#17121e);padding:22px 26px;display:flex;align-items:center;gap:20px;justify-content:space-between;}
.lore-bridge>div{display:flex;align-items:center;gap:20px;max-width:780px;}
.lore-bridge .new-mark{width:66px;height:66px;flex-shrink:0;}
.lore-bridge p{margin:0;font-size:.85rem;color:var(--muted);}
.lore-bridge .btn{flex-shrink:0;}
/* Alliances constellation and prototype pairing simulator */
.alliance-top{padding-bottom:25px;}
.alliance-top h1 em{color:#dcb68d;}
.alliance-premise {display:flex;gap:26px;align-items:center;padding:22px 30px;background:linear-gradient(115deg,#2b1b31,#1b1422);border:1px solid #61445b;}
.alliance-premise-mark{width:106px;height:106px;flex-shrink:0;}
.alliance-premise .eyebrow{margin-bottom:9px;}
.alliance-premise strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:normal;display:block;}
.alliance-premise p{margin:9px 0 0;color:var(--muted);font-size:.84rem;max-width:900px;}
.alliance-constellation {height:630px;position:relative;overflow:hidden;isolation:isolate;margin:24px 0 0;background:radial-gradient(ellipse at 50% 45%,#4c305b8a 0,#241629 34%,#16101d 79%);border:1px solid #614b60;}
.alliance-constellation:before{position:absolute;content:'';inset:11px;border:1px solid #95703b51;pointer-events:none;}
.alliance-stars{position:absolute;inset:0;opacity:.6;pointer-events:none;background-image:radial-gradient(circle,#edc996b9 1px,transparent 1.4px),radial-gradient(circle,#b09ccc7a 1px,transparent 1.4px);background-size:93px 71px,127px 109px;background-position:12px 32px,56px 0;}
.alliance-paths{position:absolute;inset:0;width:100%;height:100%;opacity:.64;pointer-events:none;}
.alliance-paths .radial{opacity:.27;stroke-dasharray:4 9;}
.alliance-core{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:235px;height:235px;border-radius:50%;background:radial-gradient(circle,#3b2448d9,#1e1527db);border:1px solid #9b7b5b7a;box-shadow:0 0 0 15px #99744910,0 0 0 49px #99744909,0 0 57px #d3a36429;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;pointer-events:none;}
.alliance-core-mark{width:168px;height:168px;filter:drop-shadow(0 0 10px #e4bb8e3d);}
.alliance-core span{position:absolute;bottom:14px;font:.66rem/1.4 Georgia,serif;letter-spacing:.13em;text-align:center;text-transform:uppercase;color:#edd9b0;}
.alliance-node {position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;width:112px;background:transparent;border:0;color:#f2dfd1;z-index:4;padding:0;gap:2px;text-shadow:0 2px 9px #000;}
.alliance-node img{height:74px;width:74px;object-fit:cover;object-position:center 23%;border:2px solid var(--node-accent);border-radius:50%;background:#211b27;box-shadow:0 0 0 6px #1a1424ad,0 0 24px color-mix(in srgb,var(--node-accent) 30%,transparent);transition:transform .2s,box-shadow .2s;}
.alliance-node:hover img, .alliance-node.is-selected img{transform:scale(1.09);box-shadow:0 0 0 5px #c5a36b84,0 0 30px color-mix(in srgb,var(--node-accent) 65%,transparent);}
.alliance-node span{display:block;font-size:.72rem;letter-spacing:.02em;margin-top:8px;}
.alliance-node[aria-pressed=true] span{color:#f3ce8e;}
.alliance-node-locked{opacity:.5;cursor:default;}
.lock-sigil{font-size:2.9rem!important;color:#b8a0b5;border:1px solid #7b5a77;border-radius:50%;height:71px;width:71px;display:flex!important;align-items:center;justify-content:center;margin:0!important;}
.alliance-node-locked small{font-size:.57rem;color:#bdaab9;}
.diagram-note{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:.63rem;letter-spacing:.17em;color:#d0b88a;white-space:nowrap;}
.alliance-result{border:1px solid #715775;border-top:none;min-height:230px;background:linear-gradient(120deg,#271b2e,#1b1522);padding:33px 40px;text-align:center;}
.alliance-result .eyebrow{justify-content:center;}
.alliance-result .eyebrow:before{display:none;}
.alliance-result h2{font-size:clamp(1.7rem,3.3vw,2.65rem);margin:13px 0 13px;}
.alliance-result p{color:var(--muted);max-width:710px;margin:0 auto 15px;font-size:.86rem;}
.pair-selected{display:flex;justify-content:center;align-items:center;gap:13px;margin:18px 0 12px;}
.pair-avatar{display:flex;gap:7px;align-items:center;border:1px solid color-mix(in srgb,var(--accent) 42%,#3c3046);background:#211728;padding:5px 15px 5px 5px;border-radius:30px;font-size:.7rem;color:#dfcfde;}
.pair-avatar img{height:38px;width:38px;object-fit:cover;border-radius:50%;border:1px solid var(--accent);}
.pair-plus{color:#efc88b;font-size:1.4rem;}
.pair-roles{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;color:#bea4ca;font-size:.72rem;}
.pair-meta{display:flex;gap:22px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:20px;font-size:.61rem;letter-spacing:.14em;color:#e6b983;}
.alliance-section-head{margin:74px 0 24px;}
.alliance-section-head h2{margin:12px 0;}
.alliance-section-head p{color:var(--muted);}
.alliance-proposals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.alliance-suggestion{text-align:left;border:1px solid #4f3b52;background:linear-gradient(145deg,#2b1b35,#19131e);padding:24px;transition:transform .2s,border-color .2s;min-height:274px;}
.alliance-suggestion:hover{border-color:#b6946d;transform:translateY(-3px);}
.pair-badges{display:flex;align-items:center;position:relative;height:92px;margin-bottom:13px;}
.pair-badges img{object-fit:cover;object-position:center 20%;width:77px;height:77px;border-radius:50%;border:2px solid #b9a179;}
.pair-badges img+img{margin-left:-15px;}
.pair-symbol{width:76px;height:76px;margin-left:auto;opacity:.65;}
.alliance-suggestion>span{color:#d7ad77;letter-spacing:.14em;font-size:.58rem;}
.alliance-suggestion h3{font-size:1.52rem;margin:12px 0 5px;}
.alliance-suggestion p{font-size:.82rem;color:var(--muted);margin:0 0 20px;}
.alliance-suggestion small{color:#e7bd84;font-size:.7rem;}
.alliance-horizon{margin:40px 0 80px;padding:30px;border:1px solid #4e3b56;display:flex;gap:28px;align-items:center;background:#18121f;}
.horizon-seal{width:115px;height:115px;flex-shrink:0;}
.alliance-horizon h2{margin:0 0 12px;font-size:1.8rem;}
.alliance-horizon p{color:var(--muted);margin:0;font-size:.85rem;}
@media(max-width:1080px){.edition{display:none;}.main-nav{gap:17px;}.chronicle-feature{grid-template-columns:220px 1fr;gap:26px;padding:30px;}.chronicle-feature-crest img{width:185px;height:185px;}}
@media(max-width:800px){.story-first{grid-template-columns:1fr;gap:5px;}.hero-brand-stage{min-height:400px;}.hero-emblem{width:300px;}.chronicle-feature{grid-template-columns:1fr;text-align:center;padding:25px;}.chronicle-feature-crest{border-right:0;border-bottom:1px solid #755b602b;padding:0 0 10px;}.chronicle-feature-crest img{width:170px;height:170px;}.chronicle-feature .eyebrow{justify-content:center;}.chronicle-book{grid-template-columns:1fr;}.chronicle-aside{display:none;}.lore-grid,.glossary-grid,.alliance-proposals{grid-template-columns:repeat(2,minmax(0,1fr));}.chronicle-ending{gap:18px;}.chronicle-ending-mark{width:120px;height:120px;}.alliance-constellation{height:590px;}.alliance-node img{width:61px;height:61px;}.alliance-core{width:180px;height:180px;}.alliance-core-mark{width:134px;height:134px;}.alliance-node{width:88px;}}
@media(max-width:640px){
 .brand-seal{width:40px;height:45px;}.story-first{padding-top:37px;}.story-first .hero-copy h1{font-size:clamp(2.8rem,10vw,4rem);}.hero-brand-stage{min-height:320px;padding:0;}.hero-emblem{width:245px;}.portal-halo{inset:12%;}.hero-emblem-caption{font-size:.54rem;margin-top:-5px;}.chronicle-feature{margin-top:32px;}.chronicle-feature h2{font-size:1.85rem;}.chronicle-heading{min-height:340px;padding-top:44px;}.chronicle-logo{width:76px;height:76px;}.chronicle-heading h1{font-size:clamp(2.6rem,11vw,3.7rem);}.chronicle-heading p{font-size:.9rem;}.chronicle-book-page{padding:38px 21px;}.story-prose{font-size:1rem;}.story-prose p:first-child:first-letter{font-size:4rem;}.chronicle-timeline{padding-bottom:40px;}.lore-grid,.glossary-grid,.alliance-proposals{grid-template-columns:1fr;}.lore-panel{min-height:auto;padding:28px;}.chronicle-ending{flex-direction:column;text-align:center;padding:25px 18px;}.chronicle-ending-mark{width:100px;height:100px;}.chronicle-ending h2{font-size:1.8rem;}.glossary-hero{padding:46px 10px 50px;}.glossary-hero h1{font-size:2.7rem;}.glossary-hero-emblem{width:75px;height:75px;}.glossary-ledger{gap:11px;font-size:.54rem;}.glossary-ledger span+span{padding-left:11px;}.glossary-toolbar{padding:20px 15px;}.glossary-tab{font-size:.68rem;padding:8px 10px;}.glossary-card{min-height:auto;}.glossary-feature{padding:24px;}.lore-bridge{flex-direction:column;text-align:center;}.lore-bridge>div{flex-direction:column;}.lore-bridge .new-mark{width:67px;height:67px;}.alliance-top h1{font-size:2.7rem;}.alliance-premise{padding:21px 18px;gap:14px;flex-direction:column;text-align:center;}.alliance-premise-mark{width:80px;height:80px;}.alliance-premise .eyebrow{justify-content:center;}.alliance-constellation{height:530px;margin-top:16px;}.alliance-paths{opacity:.48;}.alliance-core{width:132px;height:132px;box-shadow:0 0 0 9px #99744910,0 0 0 27px #99744909;}.alliance-core-mark{width:110px;height:110px;}.alliance-core span{font-size:.43rem;bottom:6px;}.alliance-node{width:69px;gap:0;}.alliance-node img{width:49px;height:49px;box-shadow:0 0 0 3px #1a1424ad;}.alliance-node span{font-size:.59rem;margin-top:7px;}.alliance-node-locked .lock-sigil{width:49px;height:49px;font-size:2rem!important;}.alliance-node-locked small{font-size:.48rem;}.diagram-note{font-size:.51rem;}.alliance-result{padding:26px 17px;}.alliance-result h2{font-size:1.75rem;}.pair-roles{gap:7px;flex-direction:column;}.pair-badges img{width:73px;height:73px;}.alliance-horizon{flex-direction:column;text-align:center;}.horizon-seal{width:90px;height:90px;}.alliance-section-head{margin-top:44px;}.power-reveal summary{grid-template-columns:23px minmax(0,1fr) 20px;padding:20px 14px;gap:9px;}.power-reveal summary strong{font-size:1.16rem;}.power-reveal-body{padding:16px 17px 22px;}.character-page .character-class{line-height:2;}.glossary-jump{display:inline-block;}
}
