:root{--bg:#0b0b0d;--panel:#16161a;--line:#2c2a2a;--txt:#d8d2c4;--mute:#8a847a;--blood:#8b1a1a;--brass:#b08d57}
*{box-sizing:border-box}body{margin:0;background:var(--bg) radial-gradient(ellipse at top,#1d1416,transparent 60%);color:var(--txt);font:17px/1.6 Georgia,serif}
a{color:var(--brass)}h1,h2,h3,.logo{font-family:"Cinzel","Trajan Pro",Georgia,serif;letter-spacing:.12em;text-transform:uppercase}
header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:2px solid var(--blood);background:#000}
.logo{font-size:1.5rem;color:var(--txt);text-decoration:none}.logo span{color:var(--blood)}
nav a{margin-left:1.5rem;text-decoration:none;text-transform:uppercase;font-size:.85rem;letter-spacing:.15em}
main{max-width:1100px;margin:auto;padding:2rem}
.hero{text-align:center;padding:5rem 1rem;border:1px solid var(--line);background:linear-gradient(#0000,#000a),repeating-linear-gradient(45deg,#111 0 10px,#141414 10px 20px)}
.hero h1{font-size:3rem;margin:0}.hero p{color:var(--mute);font-style:italic}
.btn{display:inline-block;padding:.8rem 2rem;background:var(--blood);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.2em;border:1px solid #c33}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--blood);padding:1.2rem;text-decoration:none;color:var(--txt)}
.card .score{float:right;font-size:1.6rem;color:var(--brass)}.tag{color:var(--mute);font-size:.85rem}
.example{background:var(--brass);color:#000;font-size:.7rem;padding:2px 6px;letter-spacing:.1em;font-family:sans-serif}
.meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;border:1px solid var(--line);padding:1rem;background:var(--panel)}
.meta b{display:block;color:var(--mute);font-size:.75rem;text-transform:uppercase}
.bigscore{font-size:4rem;color:var(--brass);text-align:center}.pc{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.pros li::marker{content:"+ ";color:#6a6}.cons li::marker{content:"− ";color:#c44}
.pledge{border:2px solid var(--blood);padding:2rem;text-align:center;background:#000}
footer{text-align:center;color:var(--mute);padding:2rem;border-top:1px solid var(--line);font-size:.85rem}
form.wr{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--blood);padding:1.5rem;display:grid;gap:1rem;max-width:700px}
form.wr label{display:grid;gap:.3rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
form.wr input,form.wr textarea,form.wr select{background:#000;color:var(--txt);border:1px solid var(--line);padding:.6rem;font:inherit}
form.wr .chk{display:flex;gap:.6rem;align-items:flex-start;text-transform:none;letter-spacing:0;color:var(--txt)}
.hidden{display:none}.ph{background:var(--brass);color:#000;padding:0 6px}
table{border-collapse:collapse;width:100%}td,th{border:1px solid var(--line);padding:.5rem;text-align:left}
/* ===== Themes ===== */
:root{--hdr:#000;--field:#000;--hero:#111;--hero2:#141414;--glow:#1d1416;--btntxt:#fff}
html[data-theme=light]{--bg:#f3ecd9;--panel:#fbf6e9;--line:#c9b98f;--txt:#231c14;--mute:#5a4c36;--blood:#8b1a1a;--brass:#74520f;--hdr:#e9dfc4;--field:#fffaf0;--hero:#ece2c8;--hero2:#e6dabb;--glow:#e8dcc0}
html[data-theme=red]{--bg:#050000;--panel:#120202;--line:#3a0a0a;--txt:#ff5a4a;--mute:#e85848;--blood:#7a0c0c;--brass:#ff7a5a;--hdr:#000;--field:#0a0000;--hero:#0c0101;--hero2:#100202;--glow:#1a0303;--btntxt:#ffd0c8}
body{background:var(--bg) radial-gradient(ellipse at top,var(--glow),transparent 60%)}
header{background:var(--hdr)}.logo,.card,.card h3{color:var(--txt)}
.hero{background:linear-gradient(#0000,color-mix(in srgb,var(--bg) 60%,transparent)),repeating-linear-gradient(45deg,var(--hero) 0 10px,var(--hero2) 10px 20px)}
.pledge{background:var(--panel)}form.wr input,form.wr textarea,form.wr select{background:var(--field);color:var(--txt)}
.btn{color:var(--btntxt)}html[data-theme=light] .example,html[data-theme=light] .ph{background:#c9a24a}
html[data-theme=red] .example,html[data-theme=red] .ph{background:#7a0c0c;color:#ffd0c8}
html[data-theme=red] img{filter:sepia(1) hue-rotate(-50deg) saturate(4) brightness(.6)}
.themes{margin-left:1.5rem;display:inline-flex;gap:.3rem}.themes button{background:var(--panel);color:var(--brass);border:1px solid var(--line);font:inherit;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .5rem;cursor:pointer}
.themes button[aria-pressed=true]{border-color:var(--blood);color:var(--txt)}
.hero .sub{font-size:1.4rem;color:var(--brass)}.hero .btn{margin:.4rem}
.banner{display:block;margin:1.5rem 0;padding:1rem 1.5rem;border:1px solid var(--blood);border-left:6px solid var(--blood);background:var(--panel);text-decoration:none;color:var(--txt)}
.banner b{color:var(--brass);letter-spacing:.1em;text-transform:uppercase}
.status{display:inline-block;background:#1f6a3a;color:#fff;font-size:.75rem;padding:1px 8px;font-family:sans-serif}
/* ===== Topbar, nav dropdown, a11y ===== */
.topbar{background:var(--blood);color:var(--btntxt);text-align:center;font-size:.85rem;padding:.35rem 1rem;letter-spacing:.05em}
.topbar a{color:var(--btntxt);font-weight:bold;text-decoration:underline}
.skip{position:absolute;left:-999px;top:0;background:var(--panel);color:var(--txt);padding:.5rem 1rem;z-index:10}.skip:focus{left:1rem}
header{flex-wrap:wrap;gap:.5rem}nav{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.1rem}nav a{margin-left:0}
.more{position:relative;text-transform:uppercase;font-size:.85rem;letter-spacing:.15em;color:var(--brass);cursor:pointer}
.more summary{list-style:none}.more summary::after{content:" ▾"}
.more div{position:absolute;right:0;top:1.6rem;background:var(--panel);border:1px solid var(--line);padding:.5rem 1rem;display:grid;gap:.4rem;z-index:5;min-width:9rem}
.btn-alt{background:transparent;border-color:var(--brass);color:var(--brass)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus,#f0e442);outline-offset:2px}
:root{--focus:#f0e442;--ok-bg:#1f6a3a;--ok-txt:#fff}
html[data-theme=light]{--focus:#0b4fa8}
html[data-theme=red]{--focus:#ff9a8a;--ok-bg:#3a0000;--ok-txt:#ffb3a6}
.status{background:var(--ok-bg);color:var(--ok-txt);border:1px solid currentColor}
/* Colorblind (Okabe-Ito, high contrast) */
html[data-theme=cb]{--bg:#000;--panel:#111418;--line:#56b4e9;--txt:#ffffff;--mute:#d0d6dc;--blood:#0072b2;--brass:#e69f00;--hdr:#000;--field:#05080b;--hero:#0a0d10;--hero2:#0d1116;--glow:#001522;--btntxt:#fff;--focus:#f0e442;--ok-bg:#f0e442;--ok-txt:#000}
html[data-theme=cb] .example,html[data-theme=cb] .ph{background:#e69f00;color:#000}
html[data-theme=cb] .pros li::marker{color:#56b4e9}html[data-theme=cb] .cons li::marker{color:#e69f00}
/* Flame swatches: color + distinct pattern (never color alone; rank name shown alongside) */
.sw{display:inline-block;width:34px;height:20px;border:1px solid #888;vertical-align:middle}
.flame-reject{background:#8a8a8a}
.flame-trustworthy-reject{background:#f2efe6 repeating-linear-gradient(90deg,#0000 0 4px,#9994 4px 6px)}
.flame-veteran{background:#4a6a8a repeating-linear-gradient(45deg,#0000 0 4px,#fff5 4px 6px)}
.flame-strike-team{background:#b0142a repeating-linear-gradient(0deg,#0000 0 4px,#fff5 4px 6px)}
.flame-lieutenant{background:#1f9a5a radial-gradient(#fff8 1.5px,#0000 2px) 0 0/6px 6px}
.flame-loremaster{background:#7a3fb0 repeating-linear-gradient(-45deg,#0000 0 4px,#fff5 4px 6px)}
.flame-primaris{background:#d4a838 conic-gradient(#0003 25%,#0000 0 50%,#0003 0 75%,#0000 0) 0 0/8px 8px}
.flame-soul-unbound{background:#000;box-shadow:0 0 0 2px #b0142a;border-color:#b0142a}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Art + forum */
.hero-art{background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.6)),url(img/lighthouse-hero.jpg) center/cover;color:#fff;padding:5rem 1rem}
.hero-art h1,.hero-art .sub,.hero-art p{color:#fff;text-shadow:0 0 4px #000,0 2px 8px #000,0 0 18px #000}
.tithe-btn{background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),url(img/tithe-bg.jpg) center/cover!important;color:#fff!important;position:relative}
.tithe-btn .tip{visibility:hidden;opacity:0;position:absolute;left:50%;bottom:120%;transform:translateX(-50%);width:16rem;background:#000;color:#fff;border:1px solid var(--brass);padding:.5rem;font-size:.85rem;text-transform:none;letter-spacing:0;z-index:9}
.tithe-btn:hover .tip,.tithe-btn:focus .tip{visibility:visible;opacity:1}
#local-tithe{background:linear-gradient(rgba(0,0,0,.82),rgba(0,0,0,.86)),url(img/tithe-bg.jpg) center/cover;color:#fff;padding:1.5rem;border:1px solid var(--line)}
#local-tithe .tag,#local-tithe label,#local-tithe h2{color:#fff}
.art-head{width:100%;max-height:340px;object-fit:cover;border:1px solid var(--line);display:block}
.portrait{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);padding:1rem;margin:1.5rem 0}
.portrait img{width:min(360px,100%);border:1px solid var(--brass)}
.wip{border-left:4px solid var(--brass);background:var(--panel);padding:.6rem 1rem;margin:1rem 0}
.coffee{display:inline-flex;align-items:center;gap:.4rem}.coffee svg{vertical-align:middle}
.board{background:var(--panel);border:1px solid var(--line);padding:1rem;margin:1rem 0}
.pinned{border-left:4px solid var(--brass);padding-left:.8rem}
.conduct,.free{border:1px solid var(--brass);padding:1rem;margin:1rem 0}
.free-badge{display:inline-block;background:var(--ok-bg);color:var(--ok-txt);padding:.1rem .6rem;font-weight:bold}
.coffee .av{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--brass)}

/* Live bar */
.live-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem;padding:.4rem 1rem;background:#120708;border-bottom:1px solid var(--line);font-size:.9rem}
.live-dot{width:.7rem;height:.7rem;border-radius:50%;background:#e01b24;box-shadow:0 0 0 0 rgba(224,27,36,.7);animation:livepulse 1.6s infinite}
.live-label{color:#fff;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.live-btn{color:#fff!important;text-decoration:none;padding:.25rem .7rem;border-radius:999px;font-weight:600}
.live-btn.twitch{background:#6441a5}.live-btn.yt{background:#c4302b}
.live-btn:hover,.live-btn:focus{filter:brightness(1.2)}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(224,27,36,.7)}70%{box-shadow:0 0 0 .6rem rgba(224,27,36,0)}100%{box-shadow:0 0 0 0 rgba(224,27,36,0)}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.cathedral-sec{background:linear-gradient(rgba(0,0,0,.78),rgba(0,0,0,.84)),url(img/cathedral.jpg) center/cover;color:#fff;padding:1.5rem;border:1px solid var(--line);margin:1.5rem 0}
.cathedral-sec h2,.cathedral-sec li{color:#fff}.cathedral-sec a{color:#f3d27a}

/* Patron Video Vault */
#patron-video-vault{margin:2rem 0;padding:1.5rem;border:1px solid var(--line);border-top:3px solid var(--blood);background:var(--panel)}
#patron-video-vault .card .btn{margin-top:.6rem;padding:.5rem 1.2rem;font-size:.8rem}
#vault-teaser{margin:1.5rem 0}
