:root{
  --stone:#14110e;--stone-2:#1d1814;--stone-3:#2a231c;
  --ink:#2a1a0e;--ink-soft:#5a4127;
  --parch:#e9d9b4;--parch-2:#d9c294;--parch-edge:#9c7a45;
  --gold:#d4af5a;--gold-2:#f3dc92;--gold-deep:#8a6a24;
  --blood:#7a1020;--blood-2:#a3182c;--torch:#ff9a3c;
  --text:#e8dcc2;--muted:#a8997c;
  --serif-d:'Cinzel Decorative',Georgia,serif;
  --serif:'Cinzel',Georgia,serif;
  --body:'IM Fell English','EB Garamond',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--stone);color:var(--text);font-family:var(--body);font-size:18px;line-height:1.6;
  min-height:100vh;overflow-x:hidden;
  background-image:
    radial-gradient(120% 60% at 50% -10%,rgba(255,140,50,.10),transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .42 0 0 0 0 .33 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    repeating-linear-gradient(0deg,transparent 0 58px,rgba(0,0,0,.35) 58px 60px),
    repeating-linear-gradient(90deg,transparent 0 118px,rgba(0,0,0,.22) 118px 120px);
}
a{color:var(--gold-2)}
img,svg{display:block;max-width:100%}
#embers{position:fixed;inset:0;pointer-events:none;z-index:1}
main,header,footer{position:relative;z-index:2}
.site-head{position:sticky;top:0;z-index:20;background:linear-gradient(#0c0a08f2,#0c0a08d9);border-bottom:1px solid #3a2e1f;backdrop-filter:blur(6px)}
.site-head::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:6px;background:linear-gradient(90deg,transparent,var(--gold-deep),var(--gold),var(--gold-deep),transparent);opacity:.55}
.head-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:10px 16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--gold-2);font-family:var(--serif-d);font-weight:900;font-size:22px;letter-spacing:.08em;white-space:nowrap}
.brand svg{width:30px;height:30px}
.nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{font-family:var(--serif);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:8px 10px;border:1px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--gold-2)}
.nav a[aria-current=page]{color:var(--gold-2);border-color:#5a4523;background:#1c1610}
.torch{width:12px;height:22px;position:relative;flex:none}
.torch::before{content:"";position:absolute;left:4px;bottom:0;width:4px;height:10px;background:#4a3218}
.torch::after{content:"";position:absolute;left:0;top:0;width:12px;height:14px;border-radius:50% 50% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff3c0,var(--torch) 45%,#c2410c 75%,transparent 80%);filter:blur(.3px);animation:flick 1.3s infinite alternate}
@keyframes flick{0%{transform:scale(1,1) rotate(-3deg);opacity:.9}50%{transform:scale(1.1,.92) rotate(2deg)}100%{transform:scale(.94,1.08) rotate(-1deg);opacity:1}}
@media (max-width:760px){
  .head-in{flex-wrap:wrap;padding:8px 16px 0}
  .nav{margin-left:0;width:100%;padding-bottom:6px;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
  .head-in .torch{display:none}
  .brand{font-size:20px}
}
.eyebrow{font-family:var(--serif);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
h1,h2,h3{font-family:var(--serif-d);font-weight:900;line-height:1.05;letter-spacing:.02em}
h1{font-size:clamp(44px,11vw,120px)}
h2{font-size:clamp(30px,6vw,56px)}
h3{font-size:clamp(20px,3.4vw,26px)}
.gilt{background:linear-gradient(180deg,#fff1bf 0%,var(--gold-2) 30%,var(--gold) 55%,var(--gold-deep) 80%,#f0d27e 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 18px rgba(255,170,60,.25))}
.lede{font-size:clamp(18px,2.6vw,22px);color:#d9c9a6;max-width:640px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.section{padding:72px 0}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
.flourish{display:flex;align-items:center;gap:12px;justify-content:center;margin:22px auto;color:var(--gold);max-width:520px}
.flourish::before,.flourish::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.flourish::after{background:linear-gradient(90deg,var(--gold),transparent)}
.flourish span{font-size:18px}
.parchment{
  position:relative;color:var(--ink);font-family:var(--body);
  background:
    radial-gradient(ellipse at 20% 15%,rgba(255,255,255,.35),transparent 50%),
    radial-gradient(ellipse at 80% 90%,rgba(120,80,30,.25),transparent 55%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.035' numOctaves='4'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .3 0 0 0 0 .12 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E"),
    linear-gradient(var(--parch),var(--parch-2));
  box-shadow:inset 0 0 40px rgba(110,70,20,.55),inset 0 0 6px rgba(80,40,10,.6),0 18px 40px rgba(0,0,0,.6);
  border-radius:3px;padding:28px 22px;
}
.parchment h2,.parchment h3{color:var(--ink)}
.parchment .eyebrow{color:var(--blood)}
.parchment p{color:var(--ink-soft)}
.scroll{position:relative;margin:0 6px}
.scroll::before,.scroll::after{content:"";position:absolute;left:-10px;right:-10px;height:22px;border-radius:12px;background:linear-gradient(#b08a4e,#6e4f25 60%,#3d2a12);box-shadow:0 4px 8px rgba(0,0,0,.5);z-index:1}
.scroll::before{top:-12px}.scroll::after{bottom:-12px}
.frame{position:relative;border:2px solid var(--gold-deep);outline:1px solid #3a2c14;outline-offset:4px;background:linear-gradient(#1b1611,#120f0c);padding:24px 20px;box-shadow:0 0 0 1px #000,0 20px 40px rgba(0,0,0,.55)}
.frame::before,.frame::after{content:"❦";position:absolute;color:var(--gold);font-size:18px;line-height:1;background:var(--stone);padding:0 6px}
.frame::before{top:-11px;left:50%;transform:translateX(-50%)}
.frame::after{bottom:-11px;left:50%;transform:translateX(-50%) rotate(180deg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--serif);font-weight:700;font-size:14px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:16px 26px;color:#2a1a08;border:1px solid #f6e3a6;
  background:linear-gradient(180deg,#f7e3a0,#d4af5a 45%,#9c7a2e);box-shadow:inset 0 1px 0 #fff6d0,inset 0 -3px 0 #6e521b,0 8px 24px rgba(212,175,90,.25);transition:transform .25s,box-shadow .25s,filter .25s}
.btn:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff6d0,inset 0 -3px 0 #6e521b,0 12px 34px rgba(255,170,60,.45);filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--gold-2);border-color:var(--gold-deep);box-shadow:none}
.btn.ghost:hover{background:#2a2014}
.seal{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:radial-gradient(circle at 35% 30%,#d8404f,var(--blood-2) 35%,#5a0b16 75%);
  box-shadow:inset -6px -8px 14px rgba(0,0,0,.5),inset 4px 5px 8px rgba(255,160,160,.25),0 6px 12px rgba(0,0,0,.6);
  clip-path:polygon(50% 0,60% 4%,70% 2%,78% 8%,88% 10%,92% 20%,99% 28%,97% 40%,100% 50%,97% 60%,99% 72%,92% 80%,88% 90%,78% 92%,70% 98%,60% 96%,50% 100%,40% 96%,30% 98%,22% 92%,12% 90%,8% 80%,1% 72%,3% 60%,0 50%,3% 40%,1% 28%,8% 20%,12% 10%,22% 8%,30% 2%,40% 4%)}
.seal svg{width:54px;height:54px;opacity:.85;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.45))}
.hero{position:relative;min-height:calc(100svh - 60px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero .scene{position:absolute;inset:0}
.hero .scene svg{width:100%;height:100%;object-fit:cover}
.hero-copy{position:relative;z-index:2;padding:0 16px 56px;max-width:1180px;margin:0 auto;width:100%;text-align:center}
.hero-copy h1{margin:10px 0 6px;font-size:clamp(72px,21vw,168px);line-height:.9}
.hero-copy .lede{margin:0 auto 26px;text-shadow:0 2px 8px #000}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.moon-glow{animation:pulse 6s ease-in-out infinite alternate}
@keyframes pulse{from{opacity:.7}to{opacity:1}}
.win{animation:wflick 3s infinite alternate}
@keyframes wflick{0%{opacity:.75}40%{opacity:1}70%{opacity:.8}100%{opacity:.95}}
.fog{animation:drift 40s linear infinite alternate}
@keyframes drift{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
.banner-wave{transform-origin:top center;animation:wave 4s ease-in-out infinite alternate}
@keyframes wave{from{transform:skewY(-2deg) scaleX(.98)}to{transform:skewY(2deg) scaleX(1.02)}}
.grid{display:grid;gap:22px}
@media(min-width:700px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.step{text-align:center}
.step .num{font-family:var(--serif-d);font-size:44px;color:var(--gold);line-height:1}
.step h3{margin:8px 0 6px;color:var(--gold-2)}
.step p{color:var(--muted);font-size:17px}
.house{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;transition:transform .3s}
.house:hover{transform:translateY(-4px)}
.house .crest{width:140px;height:168px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.7))}
.house h3{color:var(--gold-2)}
.house .motto{font-style:italic;color:#d8c49a}
.house dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:15px;text-align:left;margin-top:6px;color:var(--muted)}
.house dt{font-family:var(--serif);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding-top:3px}
.house.vacant .crest{opacity:.55}
.tag{display:inline-block;font-family:var(--serif);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--gold-deep);color:var(--gold-2)}
.tag.blood{border-color:var(--blood-2);color:#ff9aa8}
.banners{display:flex;justify-content:center;gap:clamp(8px,3vw,34px);padding:10px 0 0;overflow:hidden}
.banners svg{width:clamp(44px,10vw,90px);height:auto}
.map-wrap{display:grid;gap:22px}
@media(min-width:980px){.map-wrap{grid-template-columns:1.6fr 1fr;align-items:start}}
.map-svg{width:100%;height:auto;border-radius:4px}
.region{cursor:pointer;transition:filter .25s,opacity .25s}
.region:hover,.region.active{filter:brightness(1.25) saturate(1.2)}
.region:focus{outline:none}
.map-label{font-family:'Cinzel',serif;font-weight:700;fill:#3b250f;paint-order:stroke;stroke:#e9d9b4;stroke-width:3px;pointer-events:none}
.map-label.sm{font-family:'IM Fell English',serif;font-style:italic;font-weight:400}
.info h3{margin-bottom:6px}
.throne-hero{display:grid;gap:26px;align-items:center}
@media(min-width:900px){.throne-hero{grid-template-columns:1fr 1.1fr}}
.throne-art{max-width:460px;margin:0 auto;width:100%}
.court{list-style:none;display:grid;gap:10px}
.court li{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#1a1510;border:1px solid #3a2e1f}
.court li .mini{width:40px;height:48px;flex:none}
.court .who{flex:1;min-width:0}
.court .who b{display:block;font-family:var(--serif);color:var(--gold-2);font-size:15px;letter-spacing:.04em}
.court .who span{color:var(--muted);font-size:15px}
.court .rk{font-family:var(--serif);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.chron{list-style:none}
.chron li{padding:12px 0;border-bottom:1px dashed rgba(90,65,39,.45);display:flex;gap:12px}
.chron time{font-family:var(--serif);font-size:12px;color:var(--blood);white-space:nowrap;padding-top:4px;letter-spacing:.08em}
.stat{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.stat div{min-width:120px;text-align:center;padding:12px 10px;border:1px solid #4a3a20;background:#17120d}
.stat b{display:block;font-family:var(--serif-d);font-size:28px;color:var(--gold-2)}
.stat span{font-family:var(--serif);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.notice{font-family:var(--serif);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#c9a97a;border:1px dashed #6b5431;padding:8px 12px;display:inline-block;background:#150f0a}
.ranks{display:grid;gap:18px}
.rank{display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:center;padding:18px;border:1px solid #3d311f;background:linear-gradient(90deg,#1c1711,#110e0b);position:relative;overflow:hidden}
.rank::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,var(--gold-deep))}
.rank .ins{width:84px;height:84px}
.rank h3{color:var(--gold-2);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rank h3 small{font-family:var(--serif);font-size:11px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}
.rank p{color:var(--muted);font-size:16px;margin-top:4px}
.rank ul{margin:8px 0 0 18px;color:#cdbb95;font-size:16px}
.rank.crown{border-color:var(--gold);background:radial-gradient(90% 140% at 0 50%,rgba(212,175,90,.18),transparent 60%),#15110c;box-shadow:0 0 40px rgba(212,175,90,.12)}
@media(min-width:760px){.rank{grid-template-columns:120px 1fr;padding:22px 26px}.rank .ins{width:110px;height:110px}}
.site-foot{border-top:1px solid #3a2e1f;padding:40px 16px;text-align:center;color:var(--muted);font-size:15px;background:#0b0907}
.site-foot .brand{justify-content:center;margin-bottom:10px}
.site-foot a{color:var(--gold)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  #embers{display:none}
}
