:root{--bg:#120B26;--bg2:#1E1340;--ink:#F3EAD8;--dim:#B9A9D6;--gold:#FFD98A;--gold2:#E0A939;--red:#FF6A85;--green:#8CF0C4;--card:rgba(30,19,64,.82);--line:rgba(255,217,138,.28)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(1200px 700px at 30% 10%,#3B2A6B,#120B26 70%) fixed,#120B26;color:var(--ink);font-family:Outfit,"Segoe UI",system-ui,sans-serif}
h1,h2,h3,.serif{font-family:Cinzel,Georgia,"Times New Roman",serif;letter-spacing:.04em}
a{color:var(--gold)}
button,.btn{font:inherit;cursor:pointer;border:0;border-radius:14px;padding:14px 20px;background:linear-gradient(180deg,#FFE7A8,#E0A939);color:#2A1D00;font-weight:800;box-shadow:0 6px 0 #8a5f12,0 10px 20px rgba(0,0,0,.4);transition:transform .08s}
button:active,.btn:active{transform:translateY(4px);box-shadow:0 2px 0 #8a5f12}
button.ghost{background:transparent;color:var(--gold);border:2px solid var(--line);box-shadow:none}
button.red{background:linear-gradient(180deg,#FF8FA3,#D43A5A);color:#fff;box-shadow:0 6px 0 #7a1f33}
button:disabled{opacity:.45;cursor:default}
input,select,textarea{font:inherit;width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#0E0820;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}
label{display:block;color:var(--dim);font-size:13px;margin:12px 0 6px}
.wrap{max-width:520px;margin:0 auto;padding:22px 16px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0;backdrop-filter:blur(6px)}
.pill{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(255,217,138,.14);color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.code{font-family:Cinzel,serif;font-size:56px;letter-spacing:.3em;text-align:center;color:var(--gold);text-shadow:0 0 24px rgba(255,217,138,.5)}
.muted{color:var(--dim)}
.row{display:flex;gap:10px;align-items:center}
.grow{flex:1}
.center{text-align:center}
.stack>*+*{margin-top:10px}
.hero{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;border:2px solid transparent;background:rgba(255,255,255,.04);cursor:pointer}
.hero.on{border-color:var(--gold);background:rgba(255,217,138,.1)}
.dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 0 10px currentColor}
.hp{color:var(--red);letter-spacing:2px}
.opt{display:block;width:100%;text-align:left;margin:8px 0;padding:16px;border-radius:14px;background:linear-gradient(180deg,#2E1F5E,#1B1140);color:var(--ink);border:2px solid var(--line);box-shadow:0 6px 0 #0a0618}
.opt .st{float:right;color:var(--gold);font-size:12px;letter-spacing:.1em}
.opt.on{border-color:var(--gold);background:linear-gradient(180deg,#5A3D12,#3A2708)}
.big{font-size:22px;padding:22px}
.d20{width:150px;height:150px;margin:10px auto;display:block}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#2A1D5C;border:1px solid var(--line);padding:12px 18px;border-radius:12px;z-index:9}
.admin-nav{display:flex;gap:6px;flex-wrap:wrap;padding:12px 16px;background:#0E0820;border-bottom:1px solid var(--line)}
.admin-nav a{padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--dim)}
.admin-nav a.on,.admin-nav a:hover{background:rgba(255,217,138,.12);color:var(--gold)}
.admin{max-width:1060px;margin:0 auto;padding:20px 16px 80px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
.stat b{display:block;font-size:30px;color:var(--gold);font-family:Cinzel,serif}
table{width:100%;border-collapse:collapse;font-size:14px}
td,th{padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.07);text-align:left;vertical-align:top}
th{color:var(--dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
@media(max-width:700px){.two{grid-template-columns:1fr}}
.small{font-size:13px}
code{background:rgba(255,255,255,.08);padding:2px 6px;border-radius:6px}
.opt.locked{opacity:.5;filter:saturate(.4)}.opt.locked .st{color:#FF6A85}
