:root {
  --ink: #16131f;
  --ink-soft: #23172f;
  --panel: #30213b;
  --paper: #d6c7b4;
  --paper-2: #bda98f;
  --white: #f1e9f3;
  --muted: #b8a9c0;
  --line: rgba(232, 185, 245, .16);
  --gold: #b1844b;
  --gold-bright: #d8b978;
  --danger: #b54b6b;
  --success: #9e8c63;
  --arcane: #76508f;
  --energy: #a45ed0;
  --glow: #e8b9f5;
  --bronze: #8a5d34;
  --max: 1220px;
  --header: 82px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--white);
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, .button { cursor: pointer; }
main { min-height: 70vh; overflow: hidden; }

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
  align-items: center;
  padding: 0 38px;
  border-bottom: 1px solid rgba(232,185,245,.11);
  background: linear-gradient(to bottom, rgba(22,19,31,.95), rgba(22,19,31,.46));
  transition: background .3s ease, height .3s ease;
}
.site-header.scrolled { background: rgba(22,19,31,.97); backdrop-filter: blur(14px); }
.brand { display: inline-flex; align-items: center; gap: 12px; width: max-content; }
.brand-logo { display: block; width: 230px; height: auto; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.brand-copy strong { font-family: Georgia, serif; font-size: 16px; letter-spacing: 1.5px; }
.brand-copy small { color: var(--gold); font-size: 8px; letter-spacing: 3px; margin-top: 5px; }
.main-nav { display: flex; justify-content: center; gap: clamp(20px, 3vw, 48px); height: 100%; }
.main-nav a { position: relative; display: grid; place-items: center; color: #e1d5e5; font-size: 14px; letter-spacing: 1px; }
.main-nav a::after { content: ""; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background: var(--energy); transform: translateX(-50%); transition: width .25s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--white); }
.main-nav a:hover::after, .main-nav a.active::after { width: 28px; }
.header-account { justify-self: end; padding: 10px 20px; border: 1px solid rgba(164,94,208,.6); color: var(--glow); font-size: 13px; letter-spacing: 1px; transition: .2s ease; }
.header-account:hover { background: var(--arcane); color: var(--white); }
.nav-toggle { display: none; }

.hero {
  position: relative;
  min-height: 760px;
  height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, .7fr);
  align-items: center;
  gap: 40px;
  padding: calc(var(--header) + 60px) max(7vw, 48px) 70px;
  isolation: isolate;
  background:
    radial-gradient(ellipse at 78% 42%, rgba(164,94,208,.3), transparent 31%),
    radial-gradient(ellipse at 32% 86%, rgba(118,80,143,.17), transparent 42%),
    linear-gradient(112deg, #11101a 12%, #281b34 56%, #0d0b14 100%);
}
.hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(to top, var(--ink), transparent 25%), linear-gradient(90deg, rgba(0,0,0,.28), transparent 60%); }
.hero-grid { position: absolute; z-index: -2; inset: 0; opacity: .8; background-image: radial-gradient(ellipse at 77% 42%, transparent 0 30%, rgba(232,185,245,.1) 30.3%, transparent 31.2%), radial-gradient(ellipse at 77% 42%, transparent 0 38%, rgba(164,94,208,.08) 38.3%, transparent 39.2%), repeating-linear-gradient(180deg, transparent 0 96px, rgba(232,185,245,.025) 97px, transparent 98px); mask-image: linear-gradient(90deg, transparent 4%, black 42%, black 92%, transparent); }
.hero-content { position: relative; z-index: 2; width: min(820px, 100%); animation: rise .9s var(--ease) both; }
.hero-brand-visual { position: relative; z-index: 1; width: min(38vw, 520px); justify-self: center; animation: hammerRise 1s .12s var(--ease) both; }
.hero-brand-visual::after { content: ""; position: absolute; z-index: -1; left: 15%; right: 7%; bottom: 4%; height: 12%; border-radius: 50%; background: rgba(164,94,208,.32); filter: blur(30px); }
.hero-brand-visual img { display: block; width: 100%; height: auto; filter: drop-shadow(0 28px 38px rgba(0,0,0,.38)); }
.eyebrow { margin: 0 0 15px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; }
.hero-content > .eyebrow { font-size: clamp(13px, .8vw, 15px); }
.hero h1 { max-width: 700px; margin: 0; font-family: Georgia, "STSong", serif; font-size: clamp(58px, 7.4vw, 112px); font-weight: 500; line-height: .98; letter-spacing: -5px; text-shadow: 0 8px 45px rgba(0,0,0,.3); }
.hero-lead { max-width: 600px; margin: 30px 0 0; color: #d5c9d9; font-size: 17px; line-height: 1.9; white-space: pre-line; text-align: left; }
.hero-actions { display: flex; gap: 14px; margin-top: 38px; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 30px; padding: 12px 26px; border: 1px solid transparent; border-radius: 0; font-size: 14px; font-weight: 700; letter-spacing: 1px; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: linear-gradient(135deg, var(--arcane), var(--energy)); color: var(--white); border-color: var(--energy); }
.button.primary:hover { background: var(--energy); border-color: var(--glow); }
.button.ghost { color: var(--white); border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.03); }
.button.ghost:hover { border-color: var(--white); background: rgba(255,255,255,.08); }
.button.light { background: var(--paper); color: var(--ink); }
.button.disabled, button.disabled { opacity: .46; cursor: not-allowed; pointer-events: none; }
.server-chip { margin-top: 34px; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }
.server-chip strong { color: #e4dbe7; margin-right: 6px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--energy); box-shadow: 0 0 0 5px rgba(164,94,208,.15); }
.scroll-cue { position: absolute; bottom: 38px; left: max(7vw,48px); color: #887b91; font-size: 10px; letter-spacing: 3px; writing-mode: vertical-rl; }

.section { width: min(var(--max), calc(100% - 72px)); margin: 0 auto; padding: 110px 0; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 46px; }
.section h2, .world-section h2, .page-hero h1, .article-page h1, .account-page h1, .result-page h1 { margin: 0; font-family: Georgia, "STSong", serif; font-weight: 500; line-height: 1.15; }
.section h2, .world-section h2 { font-size: clamp(38px, 4.4vw, 64px); }
.text-link, .back-link { color: var(--energy); font-size: 13px; letter-spacing: 1px; }
.news-section { background: var(--ink); }
.news-layout { display: grid; grid-template-columns: 1.05fr .95fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.featured-news { position: relative; min-height: 390px; display: flex; align-items: flex-end; padding: 44px; overflow: hidden; background: linear-gradient(145deg, #34243f, #17121f 70%); }
.featured-news::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 20%, rgba(164,94,208,.2), transparent 32%), linear-gradient(120deg, transparent 55%, rgba(232,185,245,.06) 56%, transparent 57%); }
.featured-news > div { position: relative; z-index: 1; max-width: 520px; }
.news-index { position: absolute; top: 24px; right: 32px; color: rgba(241,233,243,.12); font-family: Georgia, serif; font-size: 82px; line-height: 1; }
.tag { display: inline-flex; align-items: center; min-width: 42px; justify-content: center; padding: 4px 9px; background: rgba(118,80,143,.22); color: var(--glow); font-size: 10px; letter-spacing: 1px; }
.featured-news time { margin-left: 12px; color: var(--muted); font-size: 11px; }
.featured-news h3 { margin: 18px 0 12px; font-family: Georgia, "STSong", serif; font-size: 31px; font-weight: 500; }
.featured-news p { color: var(--muted); font-size: 14px; }
.server-plan { position: relative; min-height: 390px; display: flex; flex-direction: column; justify-content: center; padding: 44px; overflow: hidden; border-left: 1px solid var(--line); background: radial-gradient(circle at 78% 18%, rgba(177,132,75,.16), transparent 28%), linear-gradient(145deg, #241b2a, #151119); }
.server-plan .plan-mark { position: absolute; top: 25px; right: 30px; color: rgba(241,233,243,.08); font-family: Georgia, serif; font-size: 62px; letter-spacing: 4px; }
.server-plan h3 { margin: 0; font-family: Georgia, "STSong", serif; font-size: 32px; font-weight: 500; }
.server-plan > p:not(.eyebrow) { max-width: 480px; margin: 18px 0 30px; color: var(--muted); font-size: 14px; line-height: 1.9; }
.server-plan dl { display: grid; gap: 1px; margin: 0; background: var(--line); }
.server-plan dl > div { display: flex; justify-content: space-between; gap: 24px; padding: 13px 16px; background: rgba(16,13,20,.82); }
.server-plan dt { color: #b7a9bc; font-size: 12px; }
.server-plan dd { margin: 0; color: var(--gold); font-size: 12px; letter-spacing: 1px; }
.server-plan small { margin-top: 18px; color: #7f7285; font-size: 11px; letter-spacing: 1px; }

.world-section { min-height: 650px; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; background: var(--paper); color: var(--ink); }
.world-copy { padding: 100px max(6vw, 50px); display: flex; flex-direction: column; justify-content: center; background: radial-gradient(circle at 30% 20%, white, transparent 38%); }
.world-copy p:not(.eyebrow) { max-width: 600px; margin: 28px 0 36px; color: #665b62; line-height: 1.95; }
.world-copy .button { align-self: flex-start; background: var(--ink); color: var(--white); }
.world-cards { display: grid; grid-template-columns: repeat(3, 1fr); background: #211727; color: var(--white); }
.world-cards article { position: relative; padding: 38px 24px; display: flex; flex-direction: column; justify-content: flex-end; border-left: 1px solid rgba(241,233,243,.1); background: linear-gradient(to top, rgba(0,0,0,.62), transparent 70%), radial-gradient(circle at 50% 35%, rgba(118,80,143,.2), transparent 28%); transition: background .3s ease; }
.world-cards article:hover { background-color: #382540; }
.world-cards span { position: absolute; top: 30px; left: 24px; color: var(--gold); font-family: Georgia, serif; font-size: 12px; }
.world-cards h3 { margin: 0; font-family: Georgia, "STSong", serif; font-size: 29px; font-weight: 500; }
.world-cards p { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.join-section { padding-top: 90px; padding-bottom: 90px; }
.join-card { min-height: 240px; display: flex; justify-content: space-between; align-items: center; gap: 40px; padding: 50px 65px; border: 1px solid rgba(164,94,208,.32); background: radial-gradient(circle at 80% 30%, rgba(164,94,208,.18), transparent 26%), #211528; }
.join-card p:last-child { color: var(--muted); }
.community-hub { padding-top: 45px; }
.community-link-grid, .community-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.community-link-grid article, .community-page-grid article { min-height: 270px; display: flex; flex-direction: column; align-items: flex-start; padding: 44px; border: 1px solid var(--line); background: radial-gradient(circle at 82% 20%, rgba(118,80,143,.24), transparent 30%), linear-gradient(135deg, #30203a, #18111f); }
.community-link-grid article:nth-child(2), .community-page-grid article:nth-child(2) { background: radial-gradient(circle at 82% 20%, rgba(177,132,75,.18), transparent 30%), linear-gradient(135deg, #33251d, #18111f); }
.community-link-grid h3, .community-page-grid h2 { margin: 0; font-family: Georgia, "STSong", serif; font-size: clamp(30px, 3.4vw, 48px); font-weight: 500; line-height: 1.15; }
.community-link-grid article > p:not(.eyebrow), .community-page-grid article > p:not(.eyebrow) { margin: 16px 0 30px; color: var(--muted); }
.community-link-grid .button, .community-page-grid .button { margin-top: auto; }
.community-page-grid { padding-top: 70px; }
.compact-contact .button { margin: 16px 0 28px; }

.page-hero { min-height: 470px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: calc(var(--header) + 80px) 30px 80px; background: radial-gradient(circle at 50% 40%, rgba(164,94,208,.22), transparent 32%), linear-gradient(135deg, #11101a, #2c1e38 50%, #0d0b14); border-bottom: 1px solid var(--line); }
.page-hero.compact { min-height: 410px; }
.page-hero h1 { font-size: clamp(50px, 7vw, 86px); }
.page-hero > p:last-child { max-width: 640px; color: var(--muted); }
.lore-section { display: grid; grid-template-columns: 180px 1fr; gap: 50px; align-items: start; }
.lore-number { color: rgba(118,80,143,.26); font-family: Georgia, serif; font-size: 130px; line-height: .8; }
.lore-section > div:last-child { max-width: 750px; }
.lore-section p:last-child { color: var(--muted); font-size: 16px; line-height: 2; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; padding-top: 0; }
.feature-grid article { min-height: 360px; padding: 50px 38px; background: var(--ink-soft); border: 1px solid var(--line); }
.feature-grid article:nth-child(2) { background: #30213b; }
.feature-icon { display: block; margin-bottom: 80px; color: var(--gold); font-size: 34px; }
.feature-grid h3 { margin: 0 0 15px; font-family: Georgia, "STSong", serif; font-size: 30px; font-weight: 500; }
.feature-grid article > p:last-child { color: var(--muted); font-size: 14px; }
.placeholder-panel { margin-bottom: 100px; padding: 80px; text-align: center; border: 1px dashed rgba(164,94,208,.42); background: rgba(164,94,208,.06); }
.placeholder-panel p:last-child { max-width: 680px; margin: 22px auto 0; color: var(--muted); }

.listing-section { padding-top: 70px; }
.filter-tabs { display: flex; gap: 8px; margin-bottom: 38px; border-bottom: 1px solid var(--line); }
.filter-tabs a { padding: 12px 22px; color: var(--muted); font-size: 13px; border-bottom: 2px solid transparent; }
.filter-tabs a.active, .filter-tabs a:hover { color: var(--white); border-bottom-color: var(--gold); }
.article-list > a { display: grid; grid-template-columns: 55px 1fr 100px 35px; gap: 28px; align-items: center; padding: 32px 20px; border-bottom: 1px solid var(--line); transition: background .2s ease, padding .2s ease; }
.article-list > a:hover { padding-left: 30px; background: rgba(255,255,255,.025); }
.article-list h2 { margin: 0 0 7px; font-family: inherit; font-size: 20px; font-weight: 500; }
.article-list p { margin: 0; color: var(--muted); font-size: 13px; }
.article-list time { color: #96869e; font-size: 12px; }
.article-list .arrow { color: var(--gold); font-size: 20px; }
.empty-state { padding: 60px; text-align: center; color: var(--muted); border: 1px dashed var(--line); }
.article-page { width: min(820px, calc(100% - 50px)); margin: 0 auto; padding: calc(var(--header) + 80px) 0 140px; }
.article-page > header { margin-top: 55px; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.article-page header time { margin-left: 15px; color: var(--muted); font-size: 12px; }
.article-page h1 { margin-top: 25px; font-size: clamp(42px, 6vw, 70px); }
.article-page header > p { color: var(--muted); font-size: 17px; }
.article-body { padding-top: 50px; color: #d5cad9; font-size: 16px; line-height: 2.1; white-space: pre-line; }

.download-section { padding-top: 70px; }
.download-list { display: grid; gap: 16px; }
.download-card { min-height: 160px; display: grid; grid-template-columns: 86px 1fr auto; align-items: center; gap: 28px; padding: 30px 36px; border: 1px solid var(--line); background: var(--ink-soft); }
.platform-badge { width: 70px; height: 70px; display: grid; place-items: center; background: var(--gold); color: var(--ink); font-family: Georgia, serif; font-size: 32px; font-weight: 700; }
.download-card h2 { margin: 0; font-family: inherit; font-size: 23px; font-weight: 500; }
.download-card p { margin: 6px 0; color: var(--muted); font-size: 13px; }
.download-card code { color: #aa9aaf; font-size: 10px; word-break: break-all; }
.download-placeholder { padding: 95px 30px; font-size: 16px; letter-spacing: 2px; }

.support-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: start; }
.support-layout > div > p:not(.eyebrow) { color: var(--muted); line-height: 1.9; }
.support-points { display: grid; gap: 12px; margin-top: 34px; color: #ded5e2; font-size: 13px; }
.support-points span::first-letter { color: var(--gold); }
.panel-form, .editor-form, .inline-create { display: grid; gap: 20px; }
.panel-form { padding: 38px; background: var(--ink-soft); border: 1px solid var(--line); }
label { display: grid; gap: 8px; color: #e1d8e5; font-size: 13px; }
input, textarea, select { width: 100%; border: 1px solid rgba(232,185,245,.18); border-radius: 0; outline: 0; background: #18111f; color: var(--white); padding: 12px 14px; transition: border-color .2s ease; }
input:focus, textarea:focus, select:focus { border-color: var(--gold); }
textarea { resize: vertical; }
.panel-form .button { justify-self: start; margin-top: 5px; }

.result-page { min-height: 750px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: calc(var(--header) + 60px) 24px 80px; background: radial-gradient(circle at 50% 45%, rgba(164,94,208,.18), transparent 25%); }
.result-icon { width: 68px; height: 68px; display: grid; place-items: center; margin-bottom: 28px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 28px; }
.result-page > strong:not(.error-code) { margin: 12px 0 20px; color: var(--gold-bright); font-family: monospace; font-size: 24px; letter-spacing: 2px; }
.result-page > p { color: var(--muted); }
.error-code { color: rgba(164,94,208,.34); font-family: Georgia, serif; font-size: 150px; line-height: 1; }
.account-page { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; width: min(var(--max), calc(100% - 72px)); margin: 0 auto; padding: calc(var(--header) + 80px) 0 90px; }
.account-page h1 { font-size: clamp(58px, 7vw, 90px); }
.account-page > div:first-child > p:not(.eyebrow) { max-width: 620px; color: var(--muted); line-height: 2; }
.account-actions { display: flex; gap: 14px; margin-top: 35px; }
.account-visual { width: min(40vw, 470px); aspect-ratio: 1; justify-self: center; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(164,94,208,.44); border-radius: 50%; background: radial-gradient(circle, rgba(118,80,143,.2), transparent 65%); }
.account-visual span { color: var(--gold); font-size: 10px; letter-spacing: 5px; }
.account-visual strong { font-family: Georgia, serif; font-size: 110px; line-height: 1.1; }
.account-visual small { color: var(--muted); font-size: 8px; letter-spacing: 4px; }

.flash-stack { position: fixed; z-index: 100; top: 100px; right: 24px; width: min(380px, calc(100% - 48px)); display: grid; gap: 8px; }
.flash { padding: 13px 16px; border-left: 3px solid var(--energy); background: #30213b; box-shadow: 0 10px 30px rgba(0,0,0,.25); color: var(--white); font-size: 13px; }
.flash.error { border-color: var(--danger); }
.flash.success { border-color: var(--success); }
.site-footer { min-height: 230px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 50px; padding: 50px max(5vw, 35px); border-top: 1px solid var(--line); background: #0e0c14; }
.footer-brand .brand-logo { width: 270px; }
.site-footer > div:first-child > p { color: #85798b; font-size: 12px; }
.footer-links { display: flex; gap: 25px; color: var(--muted); font-size: 12px; }
.footer-links a:hover { color: var(--gold); }
.footer-legal { justify-self: end; text-align: right; color: #74697a; font-size: 10px; }

/* Admin */
.admin-body { min-height: 100vh; display: grid; grid-template-columns: 260px 1fr; background: #18111f; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 28px 24px; border-right: 1px solid var(--line); background: #11101a; }
.admin-sidebar nav { display: grid; gap: 5px; margin-top: 55px; }
.admin-sidebar nav a { padding: 12px 14px; color: var(--muted); font-size: 13px; border-left: 2px solid transparent; }
.admin-sidebar nav a:hover { color: var(--white); background: rgba(255,255,255,.035); border-color: var(--gold); }
.admin-sidebar > form { margin-top: auto; }
.admin-sidebar > form button { width: 100%; padding: 10px; color: var(--muted); border: 1px solid var(--line); background: transparent; }
.admin-main { padding: 50px clamp(28px, 5vw, 80px); overflow: visible; }
.admin-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 35px; }
.admin-heading h1 { margin: 0; font-family: Georgia, "STSong", serif; font-size: 46px; font-weight: 500; }
.admin-heading > span { color: var(--gold); font-size: 12px; letter-spacing: 1px; }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 25px; }
.stat-grid article { min-height: 130px; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; border: 1px solid var(--line); background: #281b34; }
.stat-grid span { color: var(--muted); font-size: 12px; }
.stat-grid strong { font-family: Georgia, serif; font-size: 38px; color: var(--gold-bright); }
.admin-panel { margin-bottom: 24px; padding: 28px; border: 1px solid var(--line); background: #281b34; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; }
.panel-heading h2, .inline-create h2 { margin: 0; font-size: 20px; font-weight: 500; }
.panel-heading span { color: var(--muted); font-size: 11px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { color: var(--muted); text-align: left; font-weight: 500; }
th, td { padding: 15px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
td code { color: var(--gold-bright); }
td small { color: var(--muted); }
td select { min-width: 90px; padding: 7px; }
td details { margin-top: 8px; color: var(--muted); }
td details summary { cursor: pointer; color: var(--gold); }
.actions { display: flex; gap: 14px; }
.actions a, td button { color: var(--gold); border: 0; background: none; padding: 0; font-size: 12px; }
.form-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.form-row.four { grid-template-columns: repeat(4,1fr); }
.checkbox { display: flex; align-items: center; }
.checkbox input { width: auto; }
.form-actions { display: flex; gap: 12px; }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 25px; background: radial-gradient(circle at 50% 20%, #38294a, #11101a 45%); }
.login-card { width: min(440px, 100%); display: grid; gap: 23px; padding: 44px; border: 1px solid rgba(164,94,208,.36); background: rgba(24,17,31,.96); box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.login-card h1 { margin: 0; font-family: Georgia, "STSong", serif; font-size: 38px; font-weight: 500; }
.login-card p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); font-size: 13px; }
.login-card .back-link { text-align: center; }
.admin-flashes { position: static; width: 100%; margin-bottom: 20px; }

@keyframes rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes hammerRise { from { opacity: 0; transform: translate(26px, 30px) rotate(3deg); } to { opacity: 1; transform: none; } }

@media (max-width: 980px) {
  :root { --header: 70px; }
  .site-header { grid-template-columns: 1fr auto; padding: 0 22px; }
  .header-account { display: none; }
  .nav-toggle { display: block; color: var(--white); border: 1px solid var(--line); background: rgba(0,0,0,.2); padding: 8px 13px; font-size: 12px; }
  .main-nav { position: absolute; top: var(--header); left: 0; width: 100%; height: auto; display: none; padding: 18px; background: rgba(22,19,31,.98); border-bottom: 1px solid var(--line); }
  .main-nav.open { display: grid; }
  .main-nav a { padding: 13px; }
  .main-nav a::after { display: none; }
  .hero { min-height: 760px; height: auto; grid-template-columns: 1fr; padding-top: 150px; }
  .hero-content { text-align: center; margin: 0 auto; }
  .hero-brand-visual { position: absolute; z-index: -1; top: 125px; right: -110px; width: 470px; opacity: .16; animation: none; }
  .hero h1 { letter-spacing: -3px; }
  .hero-actions, .server-chip { justify-content: center; }
  .scroll-cue { display: none; }
  .news-layout { grid-template-columns: 1fr; }
  .world-section { grid-template-columns: 1fr; }
  .world-cards { min-height: 380px; }
  .support-layout { grid-template-columns: 1fr; gap: 45px; }
  .account-page { grid-template-columns: 1fr; text-align: center; }
  .account-page > div:first-child > p { margin-left: auto; margin-right: auto; }
  .account-actions { justify-content: center; }
  .account-visual { display: none; }
  .site-footer { grid-template-columns: 1fr; text-align: center; }
  .site-footer > div, .footer-legal { justify-self: center; text-align: center; }
  .footer-brand { margin: 0 auto; }
  .admin-body { grid-template-columns: 200px 1fr; }
  .admin-main { padding: 35px 24px; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .form-row.four { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 680px) {
  .site-header { padding: 0 16px; }
  .brand-logo { width: 190px; }
  .brand-copy strong { font-size: 13px; }
  .hero { padding: 130px 22px 70px; min-height: 700px; }
  .hero h1 { font-size: 53px; letter-spacing: -2px; }
  .hero-lead { font-size: 14px; }
  .hero-actions { flex-direction: column; }
  .server-chip { flex-wrap: wrap; }
  .server-chip span:last-child { width: 100%; }
  .section { width: min(100% - 36px, var(--max)); padding: 75px 0; }
  .section-heading { align-items: start; flex-direction: column; }
  .featured-news { padding: 30px; min-height: 350px; }
  .featured-news h3 { font-size: 26px; }
  .server-plan { min-height: 350px; padding: 30px; border-left: 0; border-top: 1px solid var(--line); }
  .world-copy { padding: 75px 24px; }
  .world-cards { min-height: 600px; grid-template-columns: 1fr; }
  .world-cards article { min-height: 200px; }
  .join-card { align-items: flex-start; flex-direction: column; padding: 34px 26px; }
  .community-link-grid, .community-page-grid { grid-template-columns: 1fr; }
  .community-link-grid article, .community-page-grid article { min-height: 240px; padding: 34px 26px; }
  .page-hero { min-height: 380px; }
  .page-hero.compact { min-height: 360px; }
  .lore-section { grid-template-columns: 1fr; gap: 25px; }
  .lore-number { font-size: 80px; }
  .feature-grid { grid-template-columns: 1fr; }
  .feature-grid article { min-height: 270px; }
  .feature-icon { margin-bottom: 40px; }
  .placeholder-panel { padding: 50px 22px; }
  .filter-tabs { overflow-x: auto; }
  .filter-tabs a { padding: 12px 15px; white-space: nowrap; }
  .article-list > a { grid-template-columns: 46px 1fr 25px; gap: 14px; padding: 26px 5px; }
  .article-list time { display: none; }
  .article-list p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .download-card { grid-template-columns: 62px 1fr; padding: 24px 20px; }
  .platform-badge { width: 58px; height: 58px; }
  .download-card .button { grid-column: 1 / -1; }
  .install-grid { grid-template-columns: 1fr; }
  .panel-form { padding: 24px 20px; }
  .account-page { width: calc(100% - 36px); }
  .account-actions { flex-direction: column; }
  .site-footer { padding: 55px 22px; }
  .footer-brand .brand-logo { width: 235px; }
  .footer-links { flex-wrap: wrap; justify-content: center; }
  .admin-body { display: block; }
  .admin-sidebar { position: static; width: 100%; height: auto; padding: 18px; }
  .admin-sidebar nav { grid-template-columns: repeat(2,1fr); margin-top: 25px; }
  .admin-sidebar > form { margin-top: 20px; }
  .admin-heading { align-items: flex-start; flex-direction: column; }
  .admin-heading h1 { font-size: 38px; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .form-row, .form-row.four { grid-template-columns: 1fr; }
  .admin-panel { padding: 20px 16px; }
  .login-card { padding: 32px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
