:root {
  --ink: #070a08;
  --ink-2: #0c120e;
  --panel: #111913;
  --panel-2: #172019;
  --paper: #e9e3d6;
  --muted: #99a49b;
  --line: rgba(232, 239, 229, .13);
  --green: #72ff88;
  --green-2: #28c65b;
  --acid: #caff42;
  --amber: #f1b84b;
  --red: #ff5b56;
  --blue: #74b9ff;
  --shadow: 0 24px 70px rgba(0, 0, 0, .42);
  --sans: "Space Grotesk", system-ui, sans-serif;
  --display: "Bebas Neue", Impact, sans-serif;
  --mono: "IBM Plex Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--paper); background: var(--ink); font-family: var(--sans); line-height: 1.55; }
body::selection { color: var(--ink); background: var(--green); }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img { max-width: 100%; }
main { min-height: calc(100vh - 160px); overflow: clip; }

.paper-grain { position: fixed; inset: 0; pointer-events: none; z-index: 1000; opacity: .045; mix-blend-mode: screen; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.site-header { height: 76px; padding: 0 clamp(22px, 4vw, 72px); display: flex; align-items: center; justify-content: space-between; gap: 40px; position: relative; z-index: 90; border-bottom: 1px solid var(--line); background: rgba(6, 10, 7, .94); backdrop-filter: blur(18px); }
.wordmark { display: inline-flex; align-items: baseline; gap: 6px; text-decoration: none; font-family: var(--display); font-size: 32px; letter-spacing: .03em; line-height: 1; transform: skew(-3deg); }
.wordmark span { color: var(--green); text-shadow: 0 0 22px rgba(114, 255, 136, .32); }
.wordmark b { font-weight: 400; }
.site-nav { display: flex; align-items: center; gap: clamp(16px, 2.1vw, 36px); }
.site-nav a, .nav-link { position: relative; border: 0; padding: 10px 0; color: #bdc5be; background: transparent; text-decoration: none; text-transform: uppercase; font: 600 11px/1 var(--mono); letter-spacing: .12em; cursor: pointer; }
.site-nav a::after, .nav-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 3px; height: 1px; background: var(--green); transition: right .2s ease; }
.site-nav a:hover, .site-nav a.active, .nav-link:hover { color: var(--green); }
.site-nav a:hover::after, .site-nav a.active::after, .nav-link:hover::after { right: 0; }
.site-nav form { margin: 0; }
.nav-toggle { display: none; border: 1px solid var(--line); background: transparent; padding: 10px 14px; text-transform: uppercase; font: 600 11px var(--mono); letter-spacing: .12em; }

.flash, .admin-message { padding: 12px 20px; text-align: center; font: 600 12px var(--mono); letter-spacing: .06em; }
.flash.good, .admin-message.good { color: var(--green); background: rgba(40, 198, 91, .13); border-bottom: 1px solid rgba(114, 255, 136, .35); }
.flash.bad, .admin-message.bad { color: #ffaaa6; background: rgba(255, 91, 86, .14); border-bottom: 1px solid rgba(255, 91, 86, .35); }
.admin-db-unavailable { margin-bottom: 20px; padding: 25px 28px; border: 1px solid rgba(241,184,75,.35); border-left: 4px solid var(--amber); background: rgba(241,184,75,.065); }
.admin-db-unavailable h2 { margin: 0; font: 400 32px/1 var(--display); text-transform: uppercase; }
.admin-db-unavailable > p:last-child { max-width: 760px; margin: 12px 0 0; color: #b8aa8e; font-size: 13px; }

.hero { min-height: calc(100vh - 76px); position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 430px); align-items: end; gap: 50px; padding: clamp(90px, 12vh, 150px) clamp(24px, 6vw, 110px) clamp(52px, 9vh, 100px); isolation: isolate; background: #0b120d var(--hero) 67% 47% / cover no-repeat; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(4, 7, 5, .97) 0%, rgba(4, 7, 5, .78) 36%, rgba(4, 7, 5, .16) 72%), linear-gradient(0deg, #070a08 0%, transparent 42%); }
.hero::after { content: "NEON CITY / DISTRICT 01"; position: absolute; right: -70px; top: 45%; transform: rotate(90deg); color: rgba(255, 255, 255, .28); font: 500 10px var(--mono); letter-spacing: .3em; }
.hero-shade { position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 65% 45%, transparent 0 30%, rgba(0,0,0,.22) 70%); }
.hero-copy { max-width: 820px; }
.eyebrow { margin: 0 0 12px; color: var(--green); text-transform: uppercase; font: 600 11px/1.4 var(--mono); letter-spacing: .17em; }
.hero h1 { margin: 0; font: 400 clamp(94px, 15vw, 220px)/.72 var(--display); letter-spacing: -.025em; text-transform: uppercase; text-shadow: 0 13px 40px rgba(0,0,0,.65); }
.hero h1 span { color: var(--green); }
.hero-tag { margin: 26px 0 0; font: 400 clamp(30px, 4vw, 61px)/1 var(--display); letter-spacing: .035em; text-transform: uppercase; }
.hero-tag i { color: var(--green); font-style: normal; }
.hero-deck { max-width: 630px; margin: 21px 0 0; color: #d4dbd4; font-size: clamp(16px, 1.4vw, 20px); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 34px; }

.button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 0; text-decoration: none; text-transform: uppercase; font: 600 11px/1 var(--mono); letter-spacing: .1em; cursor: pointer; transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { color: #071009; background: var(--green); box-shadow: 0 12px 38px rgba(40, 198, 91, .18); }
.button.primary:hover { background: var(--acid); box-shadow: 0 15px 45px rgba(202, 255, 66, .22); }
.button.ghost { color: var(--paper); border-color: rgba(255,255,255,.3); background: rgba(0,0,0,.15); }
.button.ghost:hover { color: var(--green); border-color: var(--green); }
.button.danger { color: #fff; border-color: var(--red); background: rgba(255,91,86,.12); }
.button.small { min-height: 38px; padding: 0 16px; font-size: 10px; }
.button.big { min-width: 240px; min-height: 60px; }

.glass { border: 1px solid rgba(255,255,255,.16); background: rgba(7, 12, 8, .74); backdrop-filter: blur(18px); box-shadow: var(--shadow); }
.pulse-card { padding: 26px; }
.pulse-line { display: flex; align-items: center; gap: 9px; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--muted); text-transform: uppercase; font: 500 10px var(--mono); letter-spacing: .1em; }
.pulse-line b { margin-left: auto; color: var(--paper); }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #59615a; box-shadow: 0 0 0 4px rgba(89,97,90,.12); }
.live-dot.on { background: var(--green); box-shadow: 0 0 14px rgba(114,255,136,.8); }
.pulse-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px 30px; padding-top: 23px; }
.pulse-grid strong { display: block; font: 400 35px/1 var(--display); letter-spacing: .03em; }
.pulse-grid small { display: block; margin-top: 6px; color: var(--muted); text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .08em; }

.city-notice { display: flex; align-items: center; gap: 20px; padding: 13px clamp(24px, 6vw, 110px); color: #1b1506; background: var(--amber); font: 600 12px var(--mono); }
.city-notice span { padding-right: 20px; border-right: 1px solid rgba(0,0,0,.35); text-transform: uppercase; letter-spacing: .12em; }
.section-pad { padding: clamp(76px, 10vw, 150px) clamp(24px, 7vw, 130px); }
.manifesto { max-width: 1280px; }
.manifesto h2, .page-hero h1, .split-copy h2, .final-cta h2 { margin: 0; font: 400 clamp(54px, 7vw, 110px)/.91 var(--display); letter-spacing: -.01em; text-transform: uppercase; }
.manifesto h2 em, .page-hero h1 em, .split-copy h2 em, .final-cta h2 em { color: var(--green); font-style: normal; }
.manifesto > p:last-child { max-width: 780px; margin: 35px 0 0 auto; color: #b8c1ba; font-size: clamp(17px, 1.4vw, 22px); }

.feature-rail { padding-top: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.feature-card { min-height: 480px; position: relative; overflow: hidden; padding: 42px; background: var(--panel); isolation: isolate; }
.feature-card::before, .feature-card::after { content: ""; position: absolute; z-index: -1; pointer-events: none; }
.feature-card h3 { margin: 70px 0 16px; font: 400 clamp(40px, 4vw, 65px)/.95 var(--display); text-transform: uppercase; }
.feature-card > p:not(.eyebrow) { max-width: 390px; color: #aeb8b0; }
.card-no { position: absolute; right: 30px; top: 22px; color: rgba(255,255,255,.06); font: 400 110px/1 var(--display); }
.card-tag { position: absolute; left: 42px; bottom: 38px; color: var(--green); text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .11em; }
.feature-card.botanical::before { width: 300px; height: 300px; right: -105px; bottom: -70px; border: 2px solid rgba(114,255,136,.22); border-radius: 50% 5% 50% 5%; transform: rotate(35deg); box-shadow: -32px -26px 0 -1px rgba(114,255,136,.04), -70px -58px 0 -2px rgba(114,255,136,.025); }
.feature-card.powder { background: #e5dfd3; color: #121612; }
.feature-card.powder .eyebrow, .feature-card.powder .card-tag { color: #167a38; }
.feature-card.powder > p:not(.eyebrow) { color: #505850; }
.feature-card.powder::after { width: 390px; height: 6px; right: -80px; bottom: 90px; border-radius: 50%; transform: rotate(-17deg); background: rgba(255,255,255,.92); box-shadow: 0 8px 22px rgba(45, 37, 27, .15), 0 -13px 0 -4px rgba(255,255,255,.5), -34px 25px 0 -4px rgba(255,255,255,.45); }
.feature-card.evidence::before { inset: auto -50px 60px auto; width: 270px; height: 170px; border: 1px solid rgba(241,184,75,.25); transform: rotate(-9deg); background: repeating-linear-gradient(0deg, transparent 0 24px, rgba(241,184,75,.07) 25px 26px); }

.split-story { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr); gap: clamp(50px, 9vw, 150px); align-items: center; background: #0b0f0c; }
.split-art { min-height: 560px; display: grid; place-items: center; position: relative; border: 1px solid var(--line); background: radial-gradient(circle at center, rgba(114,255,136,.15), transparent 57%), repeating-linear-gradient(-30deg, transparent 0 28px, rgba(255,255,255,.014) 29px 30px); }
.cash-stack span { color: var(--green); font: 400 clamp(180px, 23vw, 380px)/1 var(--display); filter: drop-shadow(20px 24px 0 rgba(114,255,136,.045)); }
.cash-stack b { position: absolute; transform: rotate(-8deg); padding: 6px 20px; border: 3px solid var(--red); color: var(--red); text-transform: uppercase; font: 600 22px var(--mono); letter-spacing: .14em; }
.split-copy p:not(.eyebrow) { max-width: 620px; color: #aeb7b0; font-size: 18px; }
.text-link { display: inline-block; margin-top: 20px; color: var(--green); text-transform: uppercase; text-decoration: none; font: 600 11px var(--mono); letter-spacing: .1em; }

.news-strip { background: var(--paper); color: #141814; }
.section-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 38px; }
.section-head h2 { margin: 0; font: 400 clamp(44px, 5vw, 76px)/1 var(--display); text-transform: uppercase; }
.news-strip .eyebrow { color: #167a38; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: rgba(0,0,0,.15); }
.news-grid article { min-height: 230px; padding: 30px; background: var(--paper); }
.news-grid span { color: #167a38; font: 600 9px var(--mono); letter-spacing: .12em; }
.news-grid h3 { margin: 50px 0 10px; font-size: 22px; }
.news-grid p { color: #556058; }
.final-cta { display: flex; align-items: end; justify-content: space-between; gap: 50px; border-top: 1px solid var(--line); }

.page-hero { min-height: 530px; padding: 125px clamp(24px, 7vw, 130px) 75px; display: flex; flex-direction: column; justify-content: end; position: relative; background: linear-gradient(120deg, #090d0a 18%, #15261a 100%); }
.page-hero::after { content: "420"; position: absolute; right: 6vw; bottom: -54px; color: rgba(114,255,136,.055); font: 400 min(31vw, 430px)/1 var(--display); }
.page-hero > p:last-child { max-width: 610px; margin: 24px 0 0; color: #abb5ad; font-size: 18px; }
.system-list { padding-top: 35px; }
.system-list article { display: grid; grid-template-columns: 115px 1fr; gap: 40px; padding: 55px 0; border-bottom: 1px solid var(--line); }
.system-number { color: rgba(114,255,136,.35); font: 400 64px/1 var(--display); }
.system-list h2 { margin: 0; font: 400 clamp(43px, 5vw, 72px)/1 var(--display); text-transform: uppercase; }
.system-list article p:last-child { max-width: 800px; color: var(--muted); font-size: 17px; }
.design-public { background: #0d130f; }
.record-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.record-grid article { padding: 28px; border: 1px solid var(--line); background: var(--panel); }
.record-meta { display: flex; justify-content: space-between; color: var(--green); text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .1em; }
.record-meta b { color: var(--amber); }
.record-grid h3 { margin: 55px 0 12px; font-size: 23px; }
.record-grid p { color: var(--muted); }
.record-grid small { color: #69736b; font: 500 9px var(--mono); text-transform: uppercase; }

.status-board { padding-top: 40px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.service-card { position: relative; min-height: 190px; padding: 28px; border: 1px solid var(--line); background: var(--panel); }
.service-card .live-dot { position: absolute; right: 25px; top: 25px; }
.service-card h2 { margin: 35px 0 8px; font: 400 35px var(--display); text-transform: uppercase; }
.service-card > p:last-child { color: var(--muted); font: 500 10px var(--mono); }
.service-card.offline { opacity: .66; }
.metric-wall { margin-top: 15px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.metric-wall div { min-height: 150px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.metric-wall strong { display: block; font: 400 48px/1 var(--display); }
.metric-wall span { display: block; margin-top: 20px; color: var(--muted); text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .1em; }
.weather-card { margin-top: 15px; padding: 32px; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(116,185,255,.25); background: linear-gradient(110deg, rgba(116,185,255,.09), var(--panel)); }
.weather-card h2 { margin: 0; font: 400 52px var(--display); text-transform: uppercase; }
.weather-metrics { display: flex; gap: 34px; color: #bcdcff; font: 500 11px var(--mono); }
.status-note, .form-note { color: #77817a; font: 500 10px/1.6 var(--mono); }

.auth-shell { min-height: calc(100vh - 76px); display: grid; grid-template-columns: 1fr minmax(380px, 620px); }
.auth-copy { padding: clamp(80px, 10vw, 160px) clamp(40px, 8vw, 150px); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(130deg, rgba(5,8,6,.55), rgba(5,8,6,.92)), url('../img/420worlds-social.png') center / cover; }
.auth-copy h1 { margin: 0; font: 400 clamp(65px, 9vw, 135px)/.85 var(--display); text-transform: uppercase; }
.auth-copy h1 em { color: var(--green); font-style: normal; }
.auth-copy > p:last-child { max-width: 540px; color: #b7c0b9; font-size: 18px; }
.auth-card { padding: clamp(55px, 7vw, 100px); display: flex; flex-direction: column; justify-content: center; background: var(--panel); }
.auth-card h2 { margin: 0 0 32px; font: 400 54px var(--display); text-transform: uppercase; }

label { display: block; }
label > span { display: block; margin: 0 0 7px; color: #a6b0a8; text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .09em; }
input, textarea, select { width: 100%; border: 1px solid rgba(255,255,255,.16); border-radius: 0; outline: none; color: var(--paper); background: #0a0f0c; padding: 12px 13px; }
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(114,255,136,.07); }
option { color: var(--paper); background: var(--ink-2); }
.auth-card form { display: grid; gap: 18px; }
.auth-card .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.auth-switch { margin-top: 24px; color: var(--muted); font-size: 13px; }
.auth-switch a { color: var(--green); }

.account-head { padding: 80px clamp(24px, 7vw, 130px) 35px; display: flex; align-items: end; justify-content: space-between; border-bottom: 1px solid var(--line); }
.account-head h1 { margin: 0; font: 400 clamp(57px, 7vw, 100px)/1 var(--display); text-transform: uppercase; }
.account-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.authority-unavailable { margin: 24px clamp(24px, 7vw, 130px) 0; padding: 22px 26px; display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1fr); gap: 35px; align-items: center; border: 1px solid rgba(241,184,75,.35); border-left: 4px solid var(--amber); background: rgba(241,184,75,.075); }
.authority-unavailable h2 { margin: 0; font: 400 32px/1 var(--display); text-transform: uppercase; }
.authority-unavailable > p { margin: 0; color: #c0b397; font-size: 13px; }
.character-sheet { padding: 30px; border: 1px solid var(--line); background: var(--panel); }
.character-sheet header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.character-sheet h2 { margin: 0; font: 400 40px var(--display); text-transform: uppercase; }
.character-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 30px; background: var(--line); }
.character-stats div { padding: 18px; background: #0d130f; }
.character-stats strong, .character-stats span { display: block; }
.character-stats span { margin-top: 6px; color: var(--muted); text-transform: uppercase; font: 500 8px var(--mono); }
.custody-alert { margin-top: 20px; padding: 14px; border-left: 3px solid var(--red); background: rgba(255,91,86,.08); }
.skill-bars { margin-top: 24px; }
.skill-bars > div { margin-top: 13px; }
.skill-bars label { display: flex; justify-content: space-between; color: var(--muted); font: 500 10px var(--mono); }
.skill-bars i { display: block; height: 4px; margin-top: 6px; background: var(--green); }
.status-pill, .type-chip { display: inline-flex; padding: 5px 8px; color: var(--green); border: 1px solid rgba(114,255,136,.2); background: rgba(114,255,136,.05); text-transform: uppercase; font: 500 8px var(--mono); letter-spacing: .07em; }
.muted { color: var(--muted); }
.empty-state { padding: 42px; text-align: center; }
.empty-state code { display: block; margin: 10px auto; max-width: 560px; padding: 10px; background: #080b09; color: var(--green); }

.site-footer { min-height: 85px; padding: 23px clamp(24px, 4vw, 72px); display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 30px; border-top: 1px solid var(--line); color: #717b73; background: #050705; font: 500 9px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.site-footer a { color: var(--green); text-decoration: none; }
.mini-mark { margin-right: 10px; color: var(--green); font: 400 20px var(--display); }
.mature { color: #8d766b; }

/* Admin console */
.admin-body .site-header, .admin-body .site-footer { display: none; }
.admin-body main { overflow: visible; }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); background: #090d0a; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 18px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #070a08; }
.admin-brand { padding: 0 12px 28px; color: var(--paper); text-decoration: none; text-transform: uppercase; font: 400 26px var(--display); letter-spacing: .04em; }
.admin-brand span { color: var(--green); }
.admin-sidebar nav { display: grid; gap: 4px; }
.admin-sidebar nav a { padding: 12px; color: #929d94; text-decoration: none; text-transform: uppercase; font: 500 10px var(--mono); letter-spacing: .07em; border-left: 2px solid transparent; }
.admin-sidebar nav a:hover, .admin-sidebar nav a.active { color: var(--green); border-color: var(--green); background: rgba(114,255,136,.055); }
.admin-user { margin-top: auto; padding: 17px 12px; border-top: 1px solid var(--line); display: grid; }
.admin-user small, .admin-user span { color: #6f7971; font: 500 9px var(--mono); }
.admin-user b { margin: 4px 0; font-size: 13px; }
.admin-main { min-width: 0; padding: 38px clamp(28px, 4vw, 68px) 80px; }
.admin-title { min-height: 92px; display: flex; align-items: start; justify-content: space-between; gap: 30px; margin-bottom: 24px; }
.admin-title h1 { margin: 0; font: 400 clamp(42px, 5vw, 70px)/.95 var(--display); text-transform: uppercase; }
.admin-title > span { color: #6f7971; font: 500 10px var(--mono); }
.admin-service-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.admin-service-row > div { min-width: 180px; padding: 12px 14px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; border: 1px solid var(--line); background: var(--panel); }
.admin-service-row b, .admin-service-row em { font: 500 9px var(--mono); text-transform: uppercase; }
.admin-service-row em { color: #6f7971; font-style: normal; }
.admin-tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 18px; }
.admin-tiles article { min-height: 125px; padding: 20px; border: 1px solid var(--line); background: var(--panel); }
.admin-tiles strong { display: block; font: 400 34px/1 var(--display); }
.admin-tiles span { display: block; margin-top: 16px; color: #778078; text-transform: uppercase; font: 500 8px var(--mono); }
.admin-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.admin-panel { min-width: 0; padding: 25px; border: 1px solid var(--line); background: var(--panel); box-shadow: 0 15px 45px rgba(0,0,0,.12); }
.admin-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding-bottom: 19px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.admin-panel header h2 { margin: 0; font: 400 30px/1 var(--display); text-transform: uppercase; }
.admin-panel header > span, .admin-panel header a { color: var(--green); text-decoration: none; text-transform: uppercase; font: 500 9px var(--mono); }
.admin-hint { color: #7c877f; font-size: 13px; }
.vault-health { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); }
.vault-health > div { padding: 16px; background: #0d130f; }
.vault-health b, .vault-health span { display: block; }
.vault-health b { font: 400 31px var(--display); }
.vault-health span { color: #687269; text-transform: uppercase; font: 500 8px var(--mono); }
.vault-health .danger b { color: var(--red); }
.check-list { padding: 0; list-style: none; color: #9da79f; font-size: 13px; }
.check-list li { padding: 8px 0 8px 22px; position: relative; border-bottom: 1px solid rgba(255,255,255,.06); }
.check-list li::before { content: "+"; position: absolute; left: 0; color: var(--green); }
.ops-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ops-grid .wide { grid-column: 1 / -1; }
.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.admin-table th { padding: 10px 12px; color: #788179; text-align: left; text-transform: uppercase; font: 500 8px var(--mono); letter-spacing: .08em; border-bottom: 1px solid var(--line); }
.admin-table td { padding: 13px 12px; border-bottom: 1px solid rgba(255,255,255,.055); vertical-align: top; }
.admin-table td small { display: block; margin-top: 4px; color: #687269; font: 500 8px var(--mono); }
.admin-table tbody tr:hover { background: rgba(114,255,136,.026); }
.crime-pipeline { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.crime-pipeline h3 { color: var(--green); text-transform: uppercase; font: 600 10px var(--mono); }
.crime-pipeline p { display: grid; padding: 11px 0; margin: 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.crime-pipeline span { color: #778078; font: 500 9px var(--mono); }

.vault-filter { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(3, minmax(120px, .35fr)) auto; gap: 10px; align-items: end; padding: 18px; border: 1px solid var(--line); background: var(--panel); }
.vault-summary { display: flex; align-items: baseline; gap: 12px; padding: 18px 0; }
.vault-summary strong { color: var(--green); font: 400 35px var(--display); }
.vault-summary span { text-transform: uppercase; font: 500 9px var(--mono); }
.vault-summary p { margin-left: auto; max-width: 600px; color: #778078; font-size: 12px; }
.vault-table-wrap { border: 1px solid var(--line); background: var(--panel); }
.vault-table td { padding-top: 17px; padding-bottom: 17px; }
.record-link { color: var(--paper); text-decoration: none; font-weight: 600; }
.record-link:hover { color: var(--green); }
.status-blocked, .status-archived { color: var(--red); border-color: rgba(255,91,86,.26); background: rgba(255,91,86,.06); }
.status-verified, .status-released { color: var(--acid); }
.empty-cell { padding: 60px !important; color: var(--muted); text-align: center; }
.pager { margin-top: 22px; }
.pager nav > div:first-child { display: none; }
.pager nav > div:last-child { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 11px; }
.pager svg { width: 18px; }
.record-editor { display: grid; gap: 17px; margin-bottom: 18px; }
.form-grid { display: grid; gap: 13px; }
.form-grid.two { grid-template-columns: repeat(2, 1fr); }
.form-grid.three { grid-template-columns: repeat(3, 1fr); }
.form-grid.four { grid-template-columns: repeat(4, 1fr); }
.title-input { font-size: 22px; font-weight: 600; }
.spec-editor { min-height: 390px; font: 400 12px/1.65 var(--mono); }
.editor-actions { display: flex; justify-content: flex-end; }
.admin-title-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.rich-editor { min-width: 0; border: 1px solid rgba(255,255,255,.16); background: #090e0b; }
.rich-editor:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(114,255,136,.07); }
.rich-editor.invalid, .rich-editor.over-limit { border-color: var(--red); }
.rich-editor__label { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; border-bottom: 1px solid var(--line); background: rgba(114,255,136,.025); }
.rich-editor__label span, .rich-editor__label small { color: #a6b0a8; text-transform: uppercase; font: 500 9px var(--mono); letter-spacing: .09em; }
.rich-editor__label small { color: #58625a; font-size: 7px; }
.rich-editor__toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 8px; border-bottom: 1px solid var(--line); background: #0c120e; }
.rich-editor__toolbar select { width: auto; min-width: 125px; padding: 7px 28px 7px 9px; font: 500 10px var(--mono); }
.rich-editor__group { display: inline-flex; gap: 2px; padding-left: 5px; border-left: 1px solid var(--line); }
.rich-editor__toolbar button { min-width: 31px; height: 31px; padding: 0 8px; border: 1px solid transparent; color: #aab2ac; background: transparent; font: 500 9px var(--mono); cursor: pointer; }
.rich-editor__toolbar button:hover, .rich-editor__toolbar button.active { color: var(--green); border-color: rgba(114,255,136,.25); background: rgba(114,255,136,.07); }
.rich-editor__surface, .rich-editor__source { width: 100%; min-height: 390px; padding: 24px 28px; border: 0; outline: 0; color: var(--paper); background: #090e0b; overflow-wrap: anywhere; }
.rich-editor.compact .rich-editor__surface, .rich-editor.compact .rich-editor__source { min-height: 130px; }
.rich-editor__surface:empty::before { content: attr(data-placeholder); color: #4f5a52; pointer-events: none; }
.rich-editor__source { resize: vertical; font: 400 12px/1.65 var(--mono); tab-size: 2; }
.rich-editor__status { display: flex; justify-content: space-between; gap: 12px; padding: 7px 11px; color: #606b62; border-top: 1px solid var(--line); font: 500 8px var(--mono); text-transform: uppercase; }
.rich-editor.over-limit .rich-editor__status, .rich-editor.invalid .rich-editor__status { color: var(--red); }
.vault-prose { color: #c9d0ca; font-size: 15px; line-height: 1.75; }
.vault-prose > :first-child { margin-top: 0; }
.vault-prose > :last-child { margin-bottom: 0; }
.vault-prose h1, .vault-prose h2, .vault-prose h3, .vault-prose h4 { margin: 1.35em 0 .5em; color: var(--paper); font-family: var(--display); font-weight: 400; line-height: 1.05; letter-spacing: .015em; text-transform: uppercase; }
.vault-prose h1 { font-size: 44px; }.vault-prose h2 { font-size: 33px; }.vault-prose h3 { font-size: 25px; }.vault-prose h4 { font-size: 19px; }
.vault-prose p { margin: .8em 0; }.vault-prose ul, .vault-prose ol { margin: 1em 0; padding-left: 26px; }
.vault-prose li { margin: .35em 0; }.vault-prose li::marker { color: var(--green); }
.vault-prose a { color: var(--green); text-decoration-color: rgba(114,255,136,.4); text-underline-offset: 3px; }
.vault-prose blockquote { margin: 1.2em 0; padding: 14px 20px; color: #b8c0ba; border-left: 3px solid var(--green); background: rgba(114,255,136,.045); }
.vault-prose pre { overflow: auto; padding: 17px 19px; color: #b9f5c2; border: 1px solid var(--line); background: #060907; font: 400 12px/1.65 var(--mono); }
.vault-prose code { color: #b9f5c2; font-family: var(--mono); }.vault-prose hr { border: 0; border-top: 1px solid rgba(114,255,136,.25); margin: 28px 0; }
.vault-browser { margin-bottom: 18px; }
.vault-tree { display: grid; gap: 2px; max-height: 60vh; overflow: auto; }
.vault-tree a { min-width: 0; padding: 9px 10px 9px calc(10px + var(--tree-depth, 0) * 17px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; color: #9aa49c; text-decoration: none; border-left: 2px solid transparent; }
.vault-tree a::before { content: ''; position: absolute; }
.vault-tree a:hover, .vault-tree a.active { color: var(--green); border-color: var(--green); background: rgba(114,255,136,.055); }
.vault-tree a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.vault-tree a small { color: #59635b; text-transform: uppercase; font: 500 7px var(--mono); }
.vault-tree-grid { max-height: 330px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
.vault-breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 18px; color: #687269; font: 500 8px var(--mono); text-transform: uppercase; }
.vault-breadcrumbs a { color: #869087; text-decoration: none; }.vault-breadcrumbs a:hover { color: var(--green); }.vault-breadcrumbs b { color: var(--paper); }
.vault-record-layout { display: grid; grid-template-columns: 240px minmax(420px, 1fr) minmax(260px, 330px); gap: 18px; align-items: start; }
.vault-tree-panel, .vault-record-rail { position: sticky; top: 24px; }
.vault-tree-panel { padding: 15px; }.vault-tree-panel > header { padding: 7px 7px 15px; margin-bottom: 8px; }
.vault-tree-panel header h2 { font-size: 25px; }
.vault-document { padding: clamp(26px, 4vw, 58px); }
.vault-record-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; padding-bottom: 22px; margin-bottom: 28px; color: #6e786f; border-bottom: 1px solid var(--line); text-transform: uppercase; font: 500 8px var(--mono); }
.vault-document-summary { padding: 0 0 28px; margin-bottom: 30px; color: #e0e5e1; border-bottom: 1px solid rgba(114,255,136,.16); font-size: 19px; }
.vault-document-body { min-height: 260px; }
.vault-subpages { padding-top: 32px; margin-top: 45px; border-top: 1px solid var(--line); }
.vault-subpages > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.vault-subpages a { padding: 16px; display: grid; gap: 6px; color: var(--paper); text-decoration: none; border: 1px solid var(--line); background: #0b110d; }
.vault-subpages a:hover { border-color: rgba(114,255,136,.4); }.vault-subpages span { color: #8b958d; font-size: 11px; }.vault-subpages small { color: var(--green); text-transform: uppercase; font: 500 7px var(--mono); }
.vault-record-rail { display: grid; gap: 14px; }.vault-record-rail .admin-panel { padding: 18px; }.vault-record-rail .admin-panel header h2 { font-size: 25px; }
.vault-fact { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.vault-fact span { color: #929c94; font-size: 11px; }.vault-fact strong { color: var(--paper); font: 400 20px var(--display); }.vault-fact code { grid-column: 1 / -1; color: #5e6960; font-size: 8px; }
.vault-connection { display: grid; gap: 3px; padding: 10px 0; color: var(--paper); text-decoration: none; border-bottom: 1px solid var(--line); }.vault-connection:hover b { color: var(--green); }.vault-connection small { color: var(--green); font: 500 8px var(--mono); text-transform: uppercase; }.vault-connection.reverse small { color: #869087; }
.vault-revision { display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 11px; }.vault-revision span { color: #7e8880; }.vault-revision small { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #59635b; font: 500 7px var(--mono); }
.vault-columns { align-items: start; }
.subform { display: grid; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.balance-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.balance-row div { min-width: 0; }
.balance-row b, .balance-row code, .balance-row small { display: block; }
.balance-row code { overflow: hidden; color: var(--green); text-overflow: ellipsis; font-size: 9px; }
.balance-row small { color: #687269; font: 500 8px var(--mono); text-transform: uppercase; }
.balance-row strong { font: 400 24px var(--display); }
.icon-button { border: 0; color: var(--muted); background: transparent; text-transform: uppercase; font: 500 8px var(--mono); cursor: pointer; }
.icon-button:hover { color: var(--green); }
.icon-button.danger:hover { color: var(--red); }
.relation-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.relation-row > span { color: var(--green); font: 500 8px var(--mono); text-transform: uppercase; }
.relation-row small { grid-column: 2 / -1; color: var(--muted); }
.danger-zone { margin-top: 18px; padding: 20px 25px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(255,91,86,.28); background: rgba(255,91,86,.055); }
.danger-zone p { margin: 4px 0 0; color: #a68e8c; font-size: 12px; }
.setting-row { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(240px, 1fr) auto auto; gap: 12px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--line); }
.setting-row code, .setting-row small { display: block; }
.setting-row code { color: var(--green); }
.setting-row small { color: #69726b; font: 500 8px var(--mono); }
.check-control { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font: 500 9px var(--mono); }
.check-control input { width: auto; accent-color: var(--green); }
.sticky-panel { position: sticky; top: 30px; }

@media (max-width: 1200px) {
  .admin-tiles { grid-template-columns: repeat(3, 1fr); }
  .feature-card { min-height: 430px; padding: 30px; }
  .card-tag { left: 30px; }
  .metric-wall { grid-template-columns: repeat(3, 1fr); }
  .vault-filter { grid-template-columns: 1fr 1fr 1fr; }
  .vault-filter label:first-child { grid-column: 1 / 3; }
  .vault-record-layout { grid-template-columns: 220px minmax(0, 1fr); }
  .vault-record-rail { position: static; grid-column: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .site-header { height: 66px; }
  .nav-toggle { display: block; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 65px; padding: 24px; flex-direction: column; align-items: stretch; background: #080c09; border-bottom: 1px solid var(--line); }
  .site-nav.open { display: flex; }
  .site-nav a, .nav-link { display: block; width: 100%; text-align: left; }
  .hero { min-height: calc(100vh - 66px); grid-template-columns: 1fr; align-items: end; padding-top: 100px; background-position: 60% center; }
  .hero::before { background: linear-gradient(90deg, rgba(4,7,5,.96), rgba(4,7,5,.45)), linear-gradient(0deg, #070a08, transparent 55%); }
  .pulse-card { max-width: 470px; }
  .feature-rail, .news-grid, .record-grid, .service-grid { grid-template-columns: 1fr; }
  .feature-card { min-height: 400px; }
  .split-story { grid-template-columns: 1fr; }
  .split-art { min-height: 420px; }
  .final-cta { align-items: start; flex-direction: column; }
  .system-list article { grid-template-columns: 75px 1fr; }
  .metric-wall { grid-template-columns: repeat(2, 1fr); }
  .weather-card, .weather-metrics { align-items: start; flex-direction: column; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-copy { min-height: 480px; }
  .account-grid { grid-template-columns: 1fr; }
  .authority-unavailable { grid-template-columns: 1fr; gap: 12px; }
  .site-footer { grid-template-columns: 1fr; gap: 8px; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: relative; height: auto; }
  .admin-sidebar nav { grid-template-columns: repeat(3, 1fr); }
  .admin-user { margin-top: 22px; }
  .admin-columns, .ops-grid { grid-template-columns: 1fr; }
  .sticky-panel { position: static; }
  .form-grid.four { grid-template-columns: repeat(2, 1fr); }
  .vault-record-layout { grid-template-columns: 1fr; }
  .vault-tree-panel, .vault-record-rail { position: static; grid-column: auto; }
  .vault-tree-panel .vault-tree { max-height: 300px; }
  .vault-record-rail { grid-template-columns: 1fr; }
  .vault-tree-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .hero { padding-left: 22px; padding-right: 22px; }
  .hero h1 { font-size: clamp(78px, 27vw, 130px); }
  .hero-tag { font-size: 35px; }
  .hero-actions, .hero-actions .button { width: 100%; }
  .section-pad { padding-left: 22px; padding-right: 22px; }
  .manifesto h2, .page-hero h1, .split-copy h2, .final-cta h2 { font-size: 51px; }
  .city-notice { align-items: start; flex-direction: column; gap: 7px; }
  .city-notice span { border-right: 0; }
  .system-list article { grid-template-columns: 1fr; gap: 15px; }
  .metric-wall { grid-template-columns: 1fr 1fr; }
  .weather-metrics { gap: 10px; }
  .auth-copy, .auth-card { padding: 55px 22px; }
  .account-head { align-items: start; flex-direction: column; }
  .character-stats { grid-template-columns: 1fr; }
  .admin-main { padding: 25px 14px 60px; }
  .admin-sidebar nav { grid-template-columns: 1fr 1fr; }
  .admin-tiles { grid-template-columns: repeat(2, 1fr); }
  .admin-title { align-items: start; flex-direction: column; }
  .crime-pipeline, .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: 1fr; }
  .vault-filter { grid-template-columns: 1fr; }
  .vault-filter label:first-child { grid-column: auto; }
  .vault-summary { align-items: start; flex-wrap: wrap; }
  .vault-summary p { margin-left: 0; }
  .setting-row { grid-template-columns: 1fr; }
  .balance-row { grid-template-columns: 1fr auto; }
  .balance-row form { grid-column: 2; grid-row: 1; }
  .rich-editor__surface, .rich-editor__source { min-height: 320px; padding: 18px; }
  .rich-editor__group { padding-left: 0; border-left: 0; }
  .vault-document { padding: 24px 18px; }
  .vault-subpages > div { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
