@font-face{font-family:Cinzel;src:url('/fonts/Cinzel.woff2') format('woff2');font-display:swap;font-weight:400 900}
@font-face{font-family:Outfit;src:url('/fonts/Outfit.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--bg:#030610;--panel:#0b1226;--line:#1f2b4d;--ink:#e9edf7;--muted:#a3adc8;--gold:#f5c96a;--ember:#ff7144;--tide:#46b8ff;color-scheme:dark}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font:400 17px/1.65 Outfit,system-ui,sans-serif;background:radial-gradient(1200px 600px at 20% -10%,#1b2a5a55,transparent),radial-gradient(900px 500px at 100% 0,#5a1b4a33,transparent),var(--bg);min-height:100vh}
a{color:var(--gold)}a:hover{color:#fff}
.top{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;max-width:1080px;margin:0 auto;padding:18px 16px}
.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font:700 20px/1 Cinzel,Georgia,serif;letter-spacing:.06em}.brand b{color:var(--gold)}
.top nav{display:flex;flex-wrap:wrap;gap:4px 18px}.top nav a{color:var(--muted);text-decoration:none;font-weight:500}.top nav a[aria-current],.top nav a:hover{color:#fff}
main{max-width:860px;margin:0 auto;padding:8px 16px 48px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:8px 0 18px;font-size:14px;color:var(--muted)}.crumbs li+li:before{content:'›';margin-right:6px}.crumbs a{color:var(--muted)}
h1{font:700 clamp(30px,6vw,46px)/1.15 Cinzel,Georgia,serif;margin:0 0 14px;letter-spacing:.02em}
h2{font:700 24px/1.3 Cinzel,Georgia,serif;margin:40px 0 10px;color:#fff}h3{font-size:19px;margin:24px 0 6px}
.lede{font-size:20px;color:#cfd6ea;margin:0 0 24px}
.steps{list-style:none;padding:0;counter-reset:s}.steps li{counter-increment:s;position:relative;padding:14px 16px 14px 60px;margin:12px 0;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.steps h3{margin:0 0 4px}.steps p{margin:0}.steps li:before{content:counter(s,decimal-leading-zero);position:absolute;left:16px;top:14px;font:700 20px Cinzel,serif;color:var(--gold)}
.key{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:0;list-style:none}.key li{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.key .r{border-color:var(--ember)}.key .b{border-color:var(--tide)}
details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:10px 0}summary{cursor:pointer;font-weight:600;color:#fff}details p{margin:10px 0 2px}
.regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;padding:0;list-style:none}
.regions a{display:block;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink)}.regions a:hover{border-color:var(--gold)}.regions b{display:block;font:700 19px Cinzel,serif;color:#fff}.regions span{color:var(--muted);font-size:15px}
.dex{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;padding:0;list-style:none}
.dex li{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;text-align:center;font-size:14px}.dex img{display:block;width:96px;height:96px;margin:0 auto 4px;object-fit:contain}
.dex small{display:block;color:var(--muted)}.dex .t{color:var(--muted);font-size:12px;text-transform:capitalize}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.author{display:flex;gap:16px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.author img{flex:none;border-radius:50%;background:#16204a}
.cta{margin:44px 0 0;text-align:center}.button{display:inline-block;padding:14px 26px;border-radius:999px;background:linear-gradient(180deg,#ffd981,#e7a93a);color:#1a1205;font-weight:700;text-decoration:none;box-shadow:0 8px 30px #e7a93a44}.button:hover{color:#000}
footer{border-top:1px solid var(--line);max-width:1080px;margin:0 auto;padding:22px 16px 40px;color:var(--muted);font-size:14px}footer nav{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:12px}footer a{color:var(--muted)}
.notfound{text-align:center;padding-top:40px}.notfound img{width:160px;height:160px}