:root{--bg:#161515;--panel:#1f1d1d;--panel2:#282524;--line:#393534;--text:#ecebe9;--soft:#d6d3cf;--muted:#a29d99;--red:#d62f2f;--green:#2f9e5a;--green-h:#38b46a;--link:#5aa2ff;--serif:Georgia,"Iowan Old Style","Times New Roman",serif;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--link)}
img{max-width:100%}
:focus-visible{outline:2px solid #fff;outline-offset:2px}
.sr{position:fixed;opacity:0;pointer-events:none}

/* main page */
#fx{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.app{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.app main{flex:1}
.topbar{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}
.top{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:16px 20px}
.nav{display:flex;gap:10px}
.tile{width:88px;height:88px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:6px;color:#fff;text-decoration:none;font-size:12px;font-weight:600;line-height:1.15;text-align:center;transition:transform .12s ease,filter .12s ease}
.tile:hover{transform:translateY(-2px);filter:brightness(1.12)}
.tile svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.c-rules{background:#c0282d}.c-discord{background:#5865f2}.c-player{background:#d77a1d}.c-bug{background:#1f8a8a}.c-appeal{background:#56606e}
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;padding:clamp(24px,5vh,52px) 20px 4px}
.logo{width:min(540px,82vw);height:auto}
.about{max-width:780px;margin:0 auto;padding:clamp(28px,5vh,48px) 20px 48px;text-align:center;text-shadow:0 1px 14px rgba(0,0,0,.85)}
.about h1{font:400 clamp(26px,4.4vw,40px)/1.2 var(--serif);margin:0 0 22px;text-wrap:balance}
.about p{margin:0 0 18px;font-size:clamp(17px,2.1vw,20px);line-height:1.65;color:var(--soft);text-wrap:pretty}
.about .motto{margin:30px 0 0;font:800 clamp(19px,3vw,26px)/1.3 var(--sans);color:#fff;letter-spacing:.01em}
.join{background:var(--green);color:#fff;border:0;border-radius:12px;font:700 20px var(--sans);padding:16px 60px;cursor:pointer;transition:background .12s ease}
.join:hover{background:var(--green-h)}
.status{display:flex;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:14px;color:var(--muted)}
.seg{padding:10px 16px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.seg+.seg{border-left:1px solid var(--line)}
.seg span span{color:var(--text);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;background:#777;display:inline-block}
.status[data-state=online] .dot{background:#3ecf6e}
.status[data-state=online] #st-text{color:#3ecf6e}
.status[data-state=offline] .dot{background:#e04545}
.status[data-state=offline] #st-text{color:#e04545}
#st-text{font-weight:600}
.foot{padding:14px 20px 18px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8}
.foot a{color:var(--muted);margin-right:14px}
.foot span{display:block}

/* join menu */
dialog{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:16px;padding:0;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}
dialog::backdrop{background:rgba(0,0,0,.72)}
.box{padding:28px;position:relative}
.box h2{font:400 28px/1.2 var(--serif);margin:0 0 8px;padding-right:32px}
.sub{color:var(--muted);margin:0 0 6px}
.x{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.x:hover{background:var(--panel2);color:#fff}
.back{background:none;border:0;color:var(--muted);font:500 14px var(--sans);padding:0;margin:0 0 14px;cursor:pointer}
.back:hover{color:#fff}
.opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;margin-top:10px;padding:14px 16px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);font:600 16px var(--sans);cursor:pointer;transition:border-color .12s ease}
.opt small{font-weight:400;color:var(--muted);font-size:13px}
.opt:hover{border-color:var(--red)}
.field{margin-top:16px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.row{display:flex;gap:8px}
.row code{flex:1;min-width:0;overflow-wrap:anywhere;padding:11px 12px;background:#121111;border:1px solid var(--line);border-radius:8px;font:15px var(--mono)}
.copy{background:var(--red);color:#fff;border:0;border-radius:8px;padding:0 16px;font:600 14px var(--sans);cursor:pointer;min-width:76px}
.copy:hover{background:#e23c3c}
.copy.ok{background:var(--green)}
.note{margin:16px 0 0;color:var(--soft);font-size:14px}

/* document pages (rules, terms, privacy) */
.bar{position:sticky;top:0;z-index:5;background:rgba(22,21,21,.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar .in{max-width:820px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.goback{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none;font-weight:600;font-size:14px}
.goback:hover{border-color:var(--red)}
.bar img{height:32px;width:auto;display:block}
.doc{max-width:820px;margin:0 auto;padding:44px 20px 72px}
.doc h1{font:400 clamp(34px,6vw,48px)/1.12 var(--serif);margin:0 0 10px}
.meta{color:var(--muted);margin:0 0 28px}
.doc h2{font:400 27px/1.25 var(--serif);margin:52px 0 14px;padding-top:26px;border-top:1px solid var(--line);scroll-margin-top:72px}
.doc h2 .n{color:var(--red);margin-right:12px;font-variant-numeric:tabular-nums}
.doc h3{font:700 17px/1.4 var(--sans);margin:28px 0 6px;scroll-margin-top:72px}
.doc h3 .n{color:var(--red);margin-right:10px;font-variant-numeric:tabular-nums}
.doc p{margin:0 0 14px;color:var(--soft)}
.doc .lead{color:#fff;font-weight:600;margin-bottom:8px}
.doc ul{margin:0 0 16px;padding:0;list-style:none}
.doc li{position:relative;padding:3px 0 3px 22px;color:var(--soft)}
.doc li:before{content:"";position:absolute;left:4px;top:.85em;width:6px;height:6px;border-radius:50%;background:var(--red)}
.doc blockquote{margin:0 0 12px;padding:10px 16px;border-left:3px solid var(--line);background:var(--panel);border-radius:0 8px 8px 0;color:#fff;font-family:var(--serif);font-style:italic}
.doc .callout{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--panel);border-radius:10px;padding:16px 18px;margin:0 0 28px;color:var(--soft)}
.doc .callout strong{color:#fff}
.doc .ok,.doc .no{font-weight:700;margin-bottom:6px}
.doc .ok{color:#3ecf6e}.doc .no{color:#e85a5a}
.golden{font:400 clamp(28px,6vw,40px)/1.15 var(--serif);color:#fff;margin:6px 0 20px}
.toc{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 28px;margin:0 0 8px;padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:12px;list-style:none}
.toc a{display:block;padding:5px 0;color:var(--soft);text-decoration:none;font-size:15px}
.toc a:hover{color:#fff}
.toc b{color:var(--red);display:inline-block;min-width:26px;font-weight:600}
.docfoot{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.docfoot a{color:var(--muted);margin-right:16px}

@media (max-width:720px){
  .top{justify-content:center;padding:12px 14px}
  .nav{width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
  .tile{width:auto;height:66px;font-size:10px;gap:5px;padding:4px;border-radius:10px}
  .tile svg{width:22px;height:22px}
  .join{width:100%;max-width:340px}
  .seg{padding:9px 11px;font-size:13px}
  .toc{grid-template-columns:1fr}
  .box{padding:22px}
}
@media (max-height:540px){.hero{gap:14px;padding-top:14px}.logo{width:min(300px,60vw)}}

/* motion */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(47,158,90,.5)}70%,100%{box-shadow:0 0 0 16px rgba(47,158,90,0)}}
@keyframes pulse{50%{opacity:.4}}
.rise{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.05s}.d2{animation-delay:.2s}.d3{animation-delay:.35s}.d4{animation-delay:.5s}
.logo{animation:float 7s ease-in-out infinite}
.join{animation:ring 2.8s ease-out infinite}
.status[data-state=online] .dot{animation:pulse 2s ease-in-out infinite}
.tile svg{transition:transform .18s ease}
.tile:hover svg{transform:rotate(-8deg) scale(1.12)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
