@font-face{font-family:Kanit;font-weight:300;src:url(/fonts/Kanit-Light.ttf);font-display:swap}
@font-face{font-family:Kanit;font-weight:400;src:url(/fonts/Kanit-Regular.ttf);font-display:swap}
@font-face{font-family:Kanit;font-weight:500;src:url(/fonts/Kanit-Medium.ttf);font-display:swap}
@font-face{font-family:Cinzel;font-weight:400 900;src:url(/fonts/Cinzel.ttf);font-display:swap}
:root{--gold:#c9a24d;--gold-l:#f1d58a;--gold-d:#7a5a1e;--blood:#b3001b;--blood-d:#6e0010;--bone:#e9e4d8;--ash:#a39e93;--line:rgba(201,162,77,.28)}
*{box-sizing:border-box;border-radius:0!important}
html{background:#050304}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;font:300 16px/1.65 Kanit,sans-serif;color:var(--bone);background:#050304}
a{color:var(--gold-l);text-decoration:none}a:hover{color:#fff}
.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 40%,#160709 0%,#070405 55%,#000 100%)}
.bg .rose{position:absolute;left:50%;top:46%;width:60vh;height:80vh;transform:translate(-50%,-50%);background:url(/logo.svg) center/contain no-repeat;opacity:.04}
.bg .vig{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.85) 100%)}
nav.top{display:flex;justify-content:space-between;align-items:center;padding:1rem 2.2rem;border-bottom:1px solid var(--line);background:rgba(0,0,0,.55);position:relative}
nav.top::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent 35%,var(--blood) 50%,transparent 65%)}
.brand{display:flex;align-items:center;gap:.7rem;font:600 1.05rem Cinzel,serif;letter-spacing:.28em;color:var(--gold)}
.brand img{width:1.6rem;height:2.1rem}
.links{display:flex;align-items:center;gap:1.6rem}.links form{margin:0}
.links a,.link{font:400 .95rem Kanit;color:var(--bone);letter-spacing:.04em;background:none;border:0;cursor:pointer;padding:0}
.links a:hover,.link:hover{color:var(--gold-l)}
.links a.cta{border:1px solid var(--gold);padding:.4rem 1rem;color:var(--gold-l)}
.links a.cta:hover{background:var(--gold);color:#000}
main{flex:1;width:100%;max-width:640px;margin:0 auto;padding:3rem 1.2rem}main.wide{max-width:980px}
footer{text-align:center;padding:2rem 1rem 2.5rem;color:var(--ash);font-size:.8rem;letter-spacing:.2em}
.rule{position:relative;height:1px;width:min(28rem,80%);margin:1.1rem auto;background:linear-gradient(90deg,transparent,var(--gold) 20%,var(--gold-l) 50%,var(--gold) 80%,transparent)}
.rule span{position:absolute;left:50%;top:50%;width:.55rem;height:.55rem;transform:translate(-50%,-50%) rotate(45deg);background:#050304;border:1px solid var(--blood);box-shadow:0 0 8px rgba(179,0,27,.8)}
.ph{text-align:center;margin-bottom:2rem}
.ph h1,.sec{font:500 2rem Kanit;letter-spacing:.06em;margin:0;color:var(--gold-l)}
.sec{font-size:1.25rem;margin:3rem 0 1rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}.sec small{font-size:.8rem;color:var(--ash);font-weight:300}
.sub{color:var(--ash);margin:.3rem 0}.center{text-align:center}.right{text-align:right;margin-top:-1rem}
.hero{text-align:center;padding:3rem 0 2rem}
.hero .mark{width:6.5rem;height:8.6rem;filter:drop-shadow(0 0 16px rgba(179,0,27,.4))}
.hero .title{margin:1rem 0 0;font:700 clamp(2.2rem,6vw,4rem) Cinzel,serif;letter-spacing:.3em;padding-left:.3em;line-height:1.1;background:linear-gradient(180deg,var(--gold-l),var(--gold) 55%,var(--gold-d));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.2rem;letter-spacing:.06em;margin:0 0 2rem}
.actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.5rem}
.steps div{background:rgba(5,3,4,.92);padding:1.6rem}
.steps b{font:600 1rem Cinzel,serif;color:var(--blood);letter-spacing:.2em}
.steps h3{margin:.3rem 0;font-weight:500;color:var(--gold-l)}.steps p{margin:0;color:var(--ash);font-size:.95rem}
.card{background:rgba(0,0,0,.62);border:1px solid var(--line);padding:2rem;position:relative}
.card::before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 30%,var(--blood) 50%,transparent 70%)}
.card.narrow{max-width:420px;margin:0 auto}
label{display:block;margin-bottom:1.1rem;font-size:.9rem;color:var(--ash);letter-spacing:.03em}label small{opacity:.7}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:560px){.row{grid-template-columns:1fr}nav.top{padding:1rem}.brand span{display:none}}
input,textarea{display:block;width:100%;margin-top:.35rem;padding:.7rem .8rem;font:300 1rem Kanit;color:var(--bone);background:rgba(10,6,7,.85);border:1px solid rgba(201,162,77,.25);outline:0;transition:border-color .2s}
input:focus,textarea:focus{border-color:var(--gold);box-shadow:0 1px 0 var(--blood)}
textarea{resize:vertical}
.btn{display:inline-block;padding:.75rem 2rem;font:500 1rem Kanit;letter-spacing:.08em;color:#0a0606;background:linear-gradient(180deg,var(--gold-l),var(--gold));border:1px solid var(--gold);cursor:pointer;transition:filter .2s}
.btn:hover{filter:brightness(1.12);color:#000}
form.card .btn{width:100%;margin-top:.4rem}
.btn.ghost{background:transparent;color:var(--gold-l)}.btn.ghost:hover{background:rgba(201,162,77,.12)}
.btn.blood{background:transparent;color:#ff4a5e;border-color:var(--blood)}.btn.blood:hover{background:var(--blood);color:var(--bone)}
.btn.sm{padding:.35rem .9rem;font-size:.85rem;width:auto!important;margin:0!important}
.alt{text-align:center;margin:1.2rem 0 0;font-size:.9rem;color:var(--ash)}
.msg{padding:.8rem 1rem;margin-bottom:1.2rem;border:1px solid;border-left-width:3px}
.msg.err{border-color:var(--blood);background:rgba(110,0,16,.25)}.msg.ok{border-color:var(--gold);background:rgba(201,162,77,.08)}
.status{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:.6rem}
.status span{color:var(--ash)}.status strong{font-weight:500;font-size:1.4rem}
.s-pending strong,.tag.s-pending{color:var(--gold-l)}.s-approved strong,.tag.s-approved{color:#9fd39a}.s-rejected strong,.s-banned strong,.tag.s-rejected,.tag.s-banned{color:#ff4a5e}
dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin:1.4rem 0 0}dt{color:var(--ash)}dd{margin:0;word-break:break-all}
.tabs{display:flex;gap:0;border:1px solid var(--line);margin-bottom:1.5rem}
.tabs a{flex:1;text-align:center;padding:.6rem;color:var(--ash);border-right:1px solid var(--line)}.tabs a:last-child{border-right:0}
.tabs a.on{color:var(--gold-l);background:rgba(201,162,77,.08);box-shadow:inset 0 -1px 0 var(--blood)}.tabs i{font-style:normal;opacity:.7}
.app,.mail{border:1px solid var(--line);background:rgba(0,0,0,.6);padding:1.2rem 1.4rem;margin-bottom:1rem}
.app header{display:flex;justify-content:space-between;align-items:center}.app h3{margin:0;font-weight:500;color:var(--gold-l)}
.tag{font-size:.8rem;border:1px solid currentColor;padding:.1rem .6rem}
.meta{color:var(--ash);font-size:.85rem;margin:.3rem 0}
blockquote{margin:.8rem 0;padding:.6rem 1rem;border-left:1px solid var(--blood);color:var(--bone);white-space:pre-wrap;background:rgba(255,255,255,.02)}
.acts{display:flex;gap:.5rem;flex-wrap:wrap}.acts form{margin:0}
pre{white-space:pre-wrap;word-break:break-all;font:300 .9rem Kanit;margin:.4rem 0 0}
/* ---------- Red Diamond top-up */
:root{--ruby:#ff2e4d;--ruby-d:#8a0016}
.dnav{color:#ff8a9c!important}
.testbar{margin:0 auto 1rem;max-width:960px;padding:.6rem 1rem;border:1px dashed var(--ruby);background:repeating-linear-gradient(135deg,rgba(255,46,77,.08) 0 12px,rgba(0,0,0,.2) 12px 24px);text-align:center;font-size:.9rem}
.testbar b{font-family:Cinzel,serif;letter-spacing:.2em;color:var(--ruby);margin-right:.6rem}
.dbal{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.2rem;max-width:960px;margin:0 auto 1.2rem}
.dbal img{width:54px;height:54px;filter:drop-shadow(0 0 12px rgba(255,46,77,.6))}
.dbal span{display:block;color:var(--ash);font-size:.85rem}
.dbal strong{font-family:Cinzel,serif;font-size:2.2rem;color:var(--ruby);text-shadow:0 0 18px rgba(255,46,77,.45);line-height:1}
.dbal .sub{flex-basis:100%;margin:0}
.dbal .warn{color:#ffb35c}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:960px;margin:0 auto 1.4rem}
.dpk{position:relative;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.4rem 1rem 1.1rem;border:1px solid var(--line);background:linear-gradient(180deg,rgba(40,4,10,.75),rgba(5,3,4,.85));transition:transform .15s,border-color .15s}
.dpk:hover{transform:translateY(-3px);border-color:var(--ruby)}
.dpk.hot{border-color:rgba(255,46,77,.55);box-shadow:0 0 24px rgba(255,46,77,.15)}
.dtag{position:absolute;top:-.7rem;left:50%;transform:translateX(-50%);padding:.1rem .7rem;background:var(--ruby-d);border:1px solid var(--ruby);font-size:.75rem;letter-spacing:.08em;white-space:nowrap}
.dgem{width:64px;height:64px;margin-bottom:.3rem;filter:drop-shadow(0 0 14px rgba(255,46,77,.55));animation:dgem 3s ease-in-out infinite}
@keyframes dgem{50%{transform:translateY(-4px);filter:drop-shadow(0 0 22px rgba(255,46,77,.9))}}
.damt{font-family:Cinzel,serif;font-size:2rem;color:var(--bone);line-height:1}
.dunit{font-size:.8rem;color:var(--ash)}
.dprice{font-family:Cinzel,serif;font-size:1.25rem;color:var(--gold-l);margin:.4rem 0 .6rem}
.dpk .btn{width:100%}
.dpk .btn.test{background:linear-gradient(180deg,#c4102e,#6e0010);border-color:var(--ruby);color:#fff}
.dpk .btn[disabled]{opacity:.45;cursor:not-allowed}
.dh{font-family:Cinzel,serif;font-weight:500;color:var(--gold);margin:0 0 .6rem}
.tw{overflow-x:auto}
.dtab{width:100%;border-collapse:collapse;font-size:.88rem}
.dtab th{text-align:left;color:var(--gold);font-weight:400;border-bottom:1px solid var(--line);padding:.4rem .5rem}
.dtab td{padding:.45rem .5rem;border-bottom:1px solid rgba(201,162,77,.1)}
.dtab .mono{font-family:ui-monospace,Consolas,monospace;font-size:.8rem}
.ost{padding:.05rem .45rem;border:1px solid var(--line);font-size:.78rem;white-space:nowrap}
.ost.ok{border-color:#4f8a3c;color:#9ccf86}.ost.mail{border-color:var(--gold);color:var(--gold-l)}.ost.paid{border-color:#3fa9ff;color:#9fd6ff}.ost.bad{border-color:var(--blood);color:#ff8090}
.dlink{display:inline-flex;align-items:center;gap:.5rem}.dlink img{width:20px;height:20px}
main.wide .card{max-width:960px;margin-left:auto;margin-right:auto}
/* top-up: success banner + hard size caps for the gem icons */
.dgem,.dbal img,.dok img,.dlink img{max-width:none;flex:none}
.dgem{width:64px!important;height:64px!important}
.dbal img{width:54px!important;height:54px!important}
.dlink img{width:20px!important;height:20px!important}
.dok{display:flex;align-items:center;gap:1rem;max-width:960px;margin:0 auto 1rem;padding:.9rem 1.2rem;border:1px solid var(--gold);background:linear-gradient(90deg,rgba(201,162,77,.16),rgba(110,0,16,.25));box-shadow:0 0 24px rgba(201,162,77,.12);animation:dok .5s ease-out}
.dok img{width:40px!important;height:40px!important;filter:drop-shadow(0 0 10px rgba(255,46,77,.6))}
.dok>div>b{display:block;font-family:Cinzel,Kanit,serif;color:var(--gold-l);font-size:1.1rem;font-weight:500}
.dok span{font-size:.9rem;color:var(--bone)}
.dok code{font-family:ui-monospace,Consolas,monospace;color:var(--gold-l);background:rgba(0,0,0,.4);padding:0 .3rem}
@keyframes dok{from{opacity:0;transform:translateY(-6px)}}
.dok span b{color:var(--gold-l);font-weight:500}
.dpk .btn{white-space:nowrap;font-size:.92rem;padding-left:.6rem;padding-right:.6rem}

/* whitelist character info (birthdate / gender / nationality / height) */
select{display:block;width:100%;margin-top:.35rem;padding:.7rem 2.2rem .7rem .8rem;font:300 1rem Kanit;color:var(--bone);border:1px solid rgba(201,162,77,.25);outline:0;transition:border-color .2s;-webkit-appearance:none;appearance:none;border-radius:0;cursor:pointer;
  background:rgba(10,6,7,.85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c9a24d' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right .85rem center/.7rem}
select:focus{border-color:var(--gold);box-shadow:0 1px 0 var(--blood)}
select:invalid{color:var(--ash)}
option,optgroup{background:#0b0708;color:var(--bone)}
optgroup{color:var(--gold-l);font-style:normal}
input[type=date],input[type=number]{color-scheme:dark}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.75) sepia(1) saturate(3) hue-rotate(5deg);cursor:pointer}
fieldset.cinfo{margin:.4rem 0 1.4rem;padding:1.1rem 1.2rem .2rem;border:1px solid var(--line);border-left:2px solid var(--blood);background:linear-gradient(100deg,rgba(110,0,16,.16),rgba(0,0,0,0) 60%)}
fieldset.cinfo legend{padding:0 .6rem;font:500 1rem Kanit;letter-spacing:.06em;color:var(--gold-l)}
fieldset.cinfo .hint{margin:-.2rem 0 1rem;font-size:.82rem;color:var(--ash)}
form.cedit{margin-top:1.4rem}
form.cedit fieldset.cinfo{margin-top:0}
.lockt{display:inline-block;margin-left:.5rem;padding:0 .5rem;font-size:.72rem;letter-spacing:.04em;color:var(--gold-l);border:1px solid var(--line);background:rgba(110,0,16,.3);vertical-align:middle}
.lockt::before{content:'';display:inline-block;width:.6rem;height:.65rem;margin-right:.3rem;vertical-align:-.05rem;background:var(--gold-l);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9h-1V7a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2zm-7-2a2 2 0 0 1 4 0v2h-4V7z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9h-1V7a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2zm-7-2a2 2 0 0 1 4 0v2h-4V7z'/%3E%3C/svg%3E") center/contain no-repeat}
details.cfix{margin:.2rem 0 .9rem;border:1px dashed var(--line);padding:.5rem .9rem}
details.cfix summary{cursor:pointer;color:var(--gold-l);font-size:.88rem}
details.cfix form{margin-top:.8rem}
details.cfix .btn.sm{margin-right:.5rem!important}
/* admin: full account reset */
.acts a.btn.danger{background:var(--blood-d);color:#fff;border-color:var(--blood);font-weight:500}.acts a.btn.danger:hover{background:var(--blood)}
.rhead h2{margin:.2rem 0 .3rem;font:500 1.35rem Kanit;color:var(--gold-l)}.rhead h2 small{font-size:.8rem;color:var(--ash);margin-left:.4rem}
.rchar{border:1px solid var(--line);border-left:2px solid var(--blood);background:rgba(0,0,0,.5);padding:.8rem 1.1rem;margin:.6rem 0}
.rchar h4{margin:0 0 .4rem;font:500 1.05rem Kanit;color:var(--bone)}.rchar h4 .mono{font-size:.8rem;color:var(--ash);margin-left:.4rem}
.rchar dl{display:grid;grid-template-columns:9rem 1fr;gap:.15rem .8rem;margin:0;font-size:.92rem}.rchar dt{color:var(--ash)}.rchar dd{margin:0}
.plate{display:inline-block;padding:0 .35rem;border:1px solid var(--gold-d);font:500 .8rem monospace;color:var(--gold-l);background:rgba(201,162,77,.06)}
table.rt{width:100%;border-collapse:collapse;margin:.6rem 0 1.4rem;font-size:.9rem;background:rgba(0,0,0,.45)}
table.rt th,table.rt td{padding:.4rem .6rem;border-bottom:1px solid rgba(201,162,77,.14);text-align:left;vertical-align:top}
table.rt th{font-weight:500;color:var(--gold);border-bottom-color:var(--line)}table.rt .num{text-align:right;white-space:nowrap}
table.rt small{display:block;color:var(--ash);font-size:.75rem}table.rt small.mono{word-break:break-all}
table.rh td{font-size:.85rem}
.ra{display:inline-block;padding:0 .45rem;font-size:.8rem;border:1px solid}.ra-x{border-color:var(--blood);color:#ff8090}.ra-r{border-color:var(--gold-d);color:var(--gold-l)}.ra-k{border-color:#4f8a3c;color:#9ccf86}
.keepbox{border:1px solid #4f8a3c;border-left-width:3px;background:rgba(79,138,60,.08);padding:.8rem 1.2rem;margin:1rem 0 1.6rem}
.keepbox h3{margin:0 0 .3rem;font:500 1rem Kanit;color:#9ccf86}.keepbox ul{margin:.2rem 0;padding-left:1.2rem;font-size:.9rem}.keepbox small{color:var(--ash)}
.confirmbox{border:1px solid var(--blood);border-left-width:3px;background:rgba(110,0,16,.18);padding:.8rem 1.2rem;margin:1rem 0 1.4rem}
.confirmbox ul{padding-left:1.2rem;font-size:.92rem}
form.rform h3{margin:0 0 .8rem;font:500 1.1rem Kanit;color:var(--gold-l)}
form.rform label.mode,form.rform label.chk{display:flex;gap:.7rem;align-items:flex-start;padding:.7rem .9rem;margin:0 0 .6rem;border:1px solid var(--line);cursor:pointer;background:rgba(255,255,255,.02)}
form.rform label.mode input,form.rform label.chk input{width:auto;margin:.35rem 0 0}
form.rform label.mode small,form.rform label.chk small{display:block;color:var(--ash);font-size:.82rem;margin-top:.15rem}
form.rform label.mode:has(input:checked){border-color:var(--blood);background:rgba(110,0,16,.2)}
form.rform label.mode:has(input:disabled){opacity:.6;cursor:not-allowed}
.rwarn{color:#ff8090}
