:root{
  --bg:#0a0b0f; --panel:#12141c; --ink:#e9e3d6; --ink-dim:#a49c8c; --ink-faint:#6f6a5f;
  --gold:#c8a865; --gold-bright:#e6ca8c; --void:#7f8ac2; --blood:#8a3b34; --line:rgba(200,168,101,0.22);
  --serif:'Cormorant Garamond', Georgia, serif; --display:'Cinzel', Georgia, serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:20px;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--gold-bright);text-decoration:none}
img{display:block}

.top{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:14px 30px;background:linear-gradient(180deg,rgba(8,9,12,.9),rgba(8,9,12,0));transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
.top.solid{background:rgba(8,9,12,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.top .brand{font-family:var(--display);letter-spacing:.3em;font-size:13px;color:var(--gold-bright);text-transform:uppercase}
.top .navlinks{display:flex;gap:22px}
.top .navlinks a{font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);transition:color .3s}
.top .navlinks a:hover{color:var(--gold-bright)}
@media(max-width:760px){.top .navlinks{display:none}}

.crumbs{max-width:1000px;margin:0 auto;padding:96px 26px 0}
.crumbs a,.crumbs span{font-family:var(--display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}
.crumbs a:hover{color:var(--gold-bright)}

.chero{max-width:1000px;margin:0 auto;padding:20px 26px 8px}
.chero .ey{font-family:var(--display);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.chero h1{font-family:var(--display);font-weight:700;letter-spacing:.05em;font-size:clamp(34px,6vw,58px);line-height:1.03;margin:12px 0 12px}
.chero .lead{font-size:clamp(18px,2.4vw,23px);color:var(--ink-dim);font-style:italic;max-width:740px}
.chero .rule{width:90px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:22px 0 0}

.wrap{max-width:1000px;margin:0 auto;padding:26px}
.prose{max-width:730px}
.prose h2{font-family:var(--display);font-weight:600;font-size:clamp(22px,3vw,29px);letter-spacing:.03em;color:var(--gold-bright);margin:46px 0 14px}
.prose h3{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:30px 0 8px}
.prose p{margin-bottom:20px;color:#ded8cb}
.prose .drop::first-letter{font-family:var(--display);font-weight:700;float:left;font-size:3.6em;line-height:.72;padding:6px 10px 0 0;color:var(--gold-bright)}
.pull{border-left:2px solid var(--gold);padding:4px 0 4px 22px;margin:26px 0;font-style:italic;color:var(--gold-bright);font-size:22px;line-height:1.5}

.entries{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin:32px 0}
@media(max-width:720px){.entries{grid-template-columns:1fr}}
.entry{border:1px solid var(--line);border-radius:2px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column;transition:border-color .4s}
.entry:hover{border-color:var(--gold)}
.entry .im{aspect-ratio:16/10;overflow:hidden}
.entry .im img{width:100%;height:100%;object-fit:cover;object-position:50% 26%;filter:saturate(.92) brightness(.9);transition:transform 1s ease}
.entry:hover .im img{transform:scale(1.04)}
.entry .bd{padding:15px 18px 19px}
.entry .nm{font-family:var(--display);font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright)}
.entry .hs{font-family:var(--display);font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin:4px 0 9px}
.hs.withdrawn{color:var(--gold)} .hs.undivided{color:#8fb3c0} .hs.fallen{color:#c78a84}
.entry .tx{font-size:16.5px;color:var(--ink-dim);line-height:1.5}

.cindex{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:30px 0}
@media(max-width:720px){.cindex{grid-template-columns:1fr}}
.cx{border:1px solid var(--line);border-radius:2px;padding:22px 24px;background:var(--panel);transition:border-color .3s,transform .3s;display:block}
.cx:hover{border-color:var(--gold);transform:translateY(-2px)}
.cx .n{font-family:var(--display);font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright)}
.cx .d{color:var(--ink-dim);font-size:16px;margin-top:6px;line-height:1.45}

.backrow{margin:44px 0 0;display:flex;gap:14px;flex-wrap:wrap}
.cta{display:inline-block;font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright);border:1px solid var(--gold);padding:12px 24px;border-radius:2px;transition:background .3s,color .3s}
.cta:hover{background:var(--gold);color:#0a0b0f}
.cta.plain{border-color:var(--line);color:var(--ink-dim)}
.cta.plain:hover{border-color:var(--gold);color:var(--gold-bright);background:transparent}

footer{border-top:1px solid var(--line);text-align:center;padding:44px 20px 70px;color:var(--ink-faint);margin-top:54px}
footer .mk{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;font-size:13px;color:var(--gold-bright)}
footer .ln{margin-top:18px}
footer a{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
/* click-to-play video */
.entry.has-clip{cursor:pointer}
.entry.has-clip .im{position:relative}
.entry.has-clip .im::after{content:"\25B6";position:absolute;top:50%;left:50%;transform:translate(-42%,-50%);width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(10,11,15,.5);border:1px solid var(--gold);color:var(--gold-bright);font-size:17px;opacity:.62;transition:opacity .3s ease,transform .3s ease;pointer-events:none;z-index:3;backdrop-filter:blur(2px)}
.entry.has-clip:hover .im::after{opacity:1;transform:translate(-42%,-50%) scale(1.08)}
.entry.has-clip:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
.lb{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(5,6,9,.93);backdrop-filter:blur(7px);padding:5vh 4vw}
.lb.open{display:flex}
.lb-stage{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:min(94vw,1000px)}
.lb video{max-width:100%;max-height:80vh;border:1px solid var(--line);border-radius:3px;box-shadow:0 30px 90px rgba(0,0,0,.7);background:#000;display:block}
.lb-cap{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-size:12px;text-align:center}
.lb-close{position:fixed;top:20px;right:24px;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:rgba(18,20,28,.75);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;z-index:210;transition:border-color .3s,color .3s}
.lb-close:hover{border-color:var(--gold);color:var(--gold-bright)}
/* character pages */
a.entry{color:inherit}
.entry .go{color:var(--gold);font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:11px;display:inline-block}
.charhero{max-width:1000px;margin:0 auto;padding:96px 26px 12px;display:flex;gap:46px;align-items:center;flex-wrap:wrap}
.charportrait{position:relative;width:min(82vw,320px);aspect-ratio:3/4;border:1px solid var(--line);border-radius:3px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.62);flex:0 0 auto;cursor:pointer}
.charportrait img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;filter:saturate(.95) brightness(.92)}
.charportrait.has-clip::after{content:"\25B6";position:absolute;top:50%;left:50%;transform:translate(-42%,-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(10,11,15,.5);border:1px solid var(--gold);color:var(--gold-bright);font-size:19px;opacity:.62;transition:opacity .3s ease,transform .3s ease;pointer-events:none;backdrop-filter:blur(2px)}
.charportrait.has-clip:hover::after{opacity:1;transform:translate(-42%,-50%) scale(1.08)}
.charintro{flex:1 1 320px;min-width:280px}
.charintro .ey{font-family:var(--display);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.charintro h1{font-family:var(--display);font-weight:700;letter-spacing:.05em;font-size:clamp(34px,6vw,54px);line-height:1.03;margin:12px 0 8px}
.charintro .role{font-style:italic;color:var(--ink-dim);font-size:clamp(17px,2.3vw,21px)}
.charintro .creed{color:var(--gold-bright);font-style:italic;font-size:clamp(18px,2.4vw,22px);line-height:1.5;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
