:root{
  --bg:#0b0f14;
  --panel:#0f141b;
  --muted:#a3b3b3;
  --text:#e7f1ee;
  --accent:#68a063;
  --accent-2:#8ccf7e;
  --card:#111821;
  --border:#1e2632;
  --danger:#ff6b6b;
}
*{box-sizing:border-box} html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Arial;background:radial-gradient(80rem 80rem at 20% -10%, #0e151e, var(--bg));color:var(--text);line-height:1.6}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:2rem 1rem}
.site-header{position:sticky;top:0;z-index:10;backdrop-filter:saturate(160%) blur(4px);background-color:rgba(11,15,20,.7);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:.2px}
.site-header nav{display:flex;gap:1rem;align-items:center}
.site-header nav a{padding:.35rem .6rem;border-radius:.6rem;color:var(--text);opacity:.85}
.site-header nav a.active{background:var(--panel);opacity:1}
.hero{display:grid;gap:1rem;padding:3rem 0 2rem}
.hero h1{font-size:clamp(2rem,3vw,3rem);line-height:1.1;margin:0}
.accent{color:var(--accent)}
.stats{display:flex;gap:1.2rem;margin-top:1rem}
.stats div{background:var(--panel);border:1px solid var(--border);border-radius:.8rem;padding:.6rem .8rem;text-align:center}
.stats div span{display:block;color:var(--muted);font-size:.85rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.card{background:linear-gradient(180deg,var(--card),#0c1219);border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 10px 30px rgba(0,0,0,.2);display:flex;flex-direction:column;gap:.6rem}
.card header{display:flex;justify-content:space-between;align-items:center}
.card .chip{background:#0b1a12;color:var(--accent-2);border:1px solid #16331e;padding:.2rem .5rem;border-radius:.6rem;font-size:.85rem}
.btn{background:var(--accent);color:#08120a;border:0;padding:.7rem 1rem;border-radius:.8rem;font-weight:700;box-shadow:0 10px 20px rgba(104,160,99,.15)} .btn:hover{filter:brightness(1.05);cursor:pointer}
.btn.outline{background:transparent;border:1px solid var(--accent);color:var(--text)} .btn.tiny{padding:.35rem .6rem;font-weight:600}
.alert{border:1px solid var(--border);border-radius:.8rem;padding:.6rem .8rem;margin:.6rem 0}
.alert.ok{background:#0d1a13;border-color:#16331e;color:#a1e3b1} .alert.err{background:#1a0d0d;border-color:#3a1a1a;color:#ffb3b3}
.stone-detail{display:grid;gap:1rem} .stone-head{display:flex;align-items:center;gap:1rem}
.timeline{display:grid;gap:.6rem} .tl-item{background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.5rem .6rem}
#map{height:60vh;border:1px solid var(--border);border-radius:1rem}
.profile-header{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}
.profile-header .avatar img{width:80px;height:80px;border-radius:999px;border:2px solid var(--border);object-fit:cover}
.username.vip{background:linear-gradient(90deg,#f0b90b,#fffad1,#f0b90b);-webkit-background-clip:text;background-clip:text;color:transparent;animation:spark 2s linear infinite}
@keyframes spark{0%{filter:drop-shadow(0 0 0 gold)}50%{filter:drop-shadow(0 0 6px gold)}100%{filter:drop-shadow(0 0 0 gold)}}
.role{border:1px solid var(--border);border-radius:.6rem;padding:.15rem .4rem;background:#091015;color:var(--text)}
.role::before{content:'●';margin-right:.3rem;color:var(--text)}
.role{--role-color:#9ca3af;border-color:color-mix(in srgb, var(--role-color) 40%, #000);box-shadow:0 0 12px color-mix(in srgb, var(--role-color) 30%, transparent)}
.table{width:100%;border-collapse:collapse} .table th,.table td{border:1px solid var(--border);padding:.4rem .5rem;text-align:left}
.inline{display:inline}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.ad{margin:1rem auto;max-width:1100px}
.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:2rem 1rem;text-align:center;opacity:.8}