:root {
  --ink: #10131a;
  --paper: #f6f1e8;
  --panel: #ffffff;
  --navy: #112746;
  --blue: #1f4f8a;
  --red: #bd2636;
  --gold: #e3b23c;
  --muted: #667085;
  --line: #d3d8df;
  --shadow: 0 18px 45px rgba(17, 39, 70, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 10px 10px, rgba(17,39,70,.055) 1px, transparent 1.4px) 0 0/20px 20px,
    var(--paper);
}

a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px clamp(20px, 4vw, 64px);
  background: rgba(17,39,70,.96);
  color: white;
  border-bottom: 4px solid var(--red);
  backdrop-filter: blur(10px);
}

.brand-wrap { display: flex; align-items: center; gap: 12px; }
.brand-burst {
  width: 52px; height: 52px; display: grid; place-items: center;
  font-family: Bangers, cursive; font-size: 28px; letter-spacing: 1px;
  background: var(--gold); color: var(--navy); border: 3px solid white;
  clip-path: polygon(50% 0%, 61% 20%, 82% 9%, 79% 31%, 100% 38%, 80% 50%, 96% 67%, 74% 69%, 78% 93%, 58% 80%, 50% 100%, 42% 80%, 22% 93%, 26% 69%, 4% 67%, 20% 50%, 0 38%, 21% 31%, 18% 9%, 39% 20%);
}
.site-header h1 { margin: 0; font: 34px/1 Bangers, cursive; letter-spacing: 1px; }
.site-header p { margin: 2px 0 0; font-size: 12px; opacity: .7; text-transform: uppercase; letter-spacing: 1.8px; }
.site-header nav { display: flex; gap: 24px; font-weight: 700; font-size: 14px; text-transform: uppercase; }
.site-header nav a:hover { color: var(--gold); }

main { width: min(1220px, calc(100% - 36px)); margin: 0 auto; }
.hero-section {
  margin: 32px 0 42px;
  min-height: 420px;
  display: grid;
  grid-template-columns: 1.45fr .75fr;
  gap: 24px;
  align-items: stretch;
}
.hero-copy, .status-card {
  border: 3px solid var(--navy);
  box-shadow: var(--shadow);
}
.hero-copy {
  position: relative;
  overflow: hidden;
  padding: clamp(34px, 6vw, 74px);
  background: linear-gradient(135deg, rgba(17,39,70,.98), rgba(31,79,138,.94));
  color: white;
}
.hero-copy::after {
  content: "";
  position: absolute; inset: auto -80px -110px auto;
  width: 360px; height: 360px;
  background: var(--red); opacity: .9;
  transform: rotate(22deg);
}
.hero-copy > * { position: relative; z-index: 1; }
.eyebrow { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 2px; color: var(--red); }
.hero-copy .eyebrow { color: var(--gold); }
.hero-copy h2 { max-width: 770px; margin: 12px 0; font: clamp(48px, 7vw, 84px)/.95 Bangers, cursive; letter-spacing: 1px; }
.hero-copy p { max-width: 720px; font-size: 18px; line-height: 1.7; color: #dfe8f5; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.btn { border: 0; padding: 13px 18px; font-weight: 800; cursor: pointer; text-transform: uppercase; letter-spacing: .6px; }
.btn.primary { background: var(--red); color: white; }
.btn.secondary { background: white; color: var(--navy); }
.btn:hover { transform: translateY(-1px); }

.status-card { background: var(--panel); padding: 28px; display: flex; flex-direction: column; justify-content: center; }
.status-card::before { content: "FIELD STATUS"; font: 30px Bangers, cursive; color: var(--navy); margin-bottom: 18px; }
.status-line { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.status-line span { color: var(--muted); }
.status-line strong { color: var(--red); font-size: 18px; }

.content-section { margin: 52px 0; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 22px; }
.section-heading h2 { margin: 4px 0 0; font: 52px/1 Bangers, cursive; color: var(--navy); }
.filters { display: flex; gap: 10px; flex-wrap: wrap; }
.filters input, .filters select { border: 2px solid var(--navy); background: white; padding: 11px 12px; min-width: 210px; }
.filters input { min-width: min(360px, 72vw); }

.character-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.character-card {
  background: var(--panel);
  border: 2px solid var(--navy);
  box-shadow: 6px 6px 0 rgba(17,39,70,.13);
  overflow: hidden;
  transition: .15s ease;
}
.character-card:hover { transform: translateY(-3px); box-shadow: 9px 9px 0 rgba(17,39,70,.14); }
.card-top { padding: 16px 18px 12px; background: var(--navy); color: white; display: flex; justify-content: space-between; gap: 12px; }
.card-type { font-size: 11px; font-weight: 800; letter-spacing: 1.4px; color: var(--gold); }
.threat-badge { font-size: 11px; font-weight: 800; background: var(--red); padding: 4px 8px; }
.card-body { padding: 20px; }
.card-body h3 { margin: 0; font: 38px/1 Bangers, cursive; color: var(--navy); }
.identity { color: var(--muted); margin: 4px 0 14px; }
.stat-strip { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; margin: 14px 0; }
.stat-strip span { background: #edf2f7; padding: 8px 5px; text-align: center; font-size: 11px; font-weight: 700; }
.power-line { min-height: 48px; color: #394150; line-height: 1.5; font-size: 14px; }
.card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding: 12px 20px 16px; }
.card-footer small { color: var(--muted); }
.card-footer button { background: var(--red); color: white; border: 0; padding: 9px 12px; font-weight: 800; cursor: pointer; }

.module-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.module-grid article { background: white; border: 2px solid var(--navy); padding: 22px; min-height: 150px; }
.module-grid h3 { margin: 0 0 8px; font: 32px Bangers, cursive; color: var(--navy); }
.module-grid p { margin: 0; line-height: 1.6; color: var(--muted); }

.modal { position: fixed; inset: 0; z-index: 100; display: none; }
.modal.active { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(7,15,28,.78); }
.sheet-panel {
  position: relative;
  z-index: 2;
  width: min(1050px, calc(100% - 28px));
  max-height: 92vh;
  overflow: auto;
  margin: 4vh auto;
  background: var(--paper);
  border: 4px solid var(--navy);
  box-shadow: 0 24px 80px rgba(0,0,0,.35);
}
.close-btn { position: sticky; top: 10px; float: right; z-index: 5; margin: 10px 10px -52px 0; width: 40px; height: 40px; border: 0; background: var(--red); color: white; font-size: 28px; cursor: pointer; }
.sheet-hero { padding: 30px 34px 24px; background: var(--navy); color: white; }
.sheet-hero h2 { margin: 0; font: 62px/1 Bangers, cursive; }
.sheet-hero p { margin: 6px 0 0; color: #dbe5f2; }
.sheet-grid { padding: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.sheet-box { background: white; border: 2px solid var(--navy); padding: 18px; }
.sheet-box.full { grid-column: 1 / -1; }
.sheet-box h3 { margin: 0 0 14px; font: 30px Bangers, cursive; color: var(--navy); border-bottom: 3px solid var(--red); padding-bottom: 6px; }
.stats-table { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; }
.stat-cell { border: 1px solid var(--line); padding: 12px 8px; text-align: center; }
.stat-cell strong { display: block; font-size: 24px; color: var(--red); }
.stat-cell span { font-size: 11px; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.detail-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.detail-list div { padding: 8px 0; border-bottom: 1px solid var(--line); }
.detail-list span { display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; font-weight: 700; }
.attacks-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.attacks-table th, .attacks-table td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; }
.attacks-table th { background: #edf2f7; color: var(--navy); }
.tag { display: inline-block; margin: 3px 4px 3px 0; padding: 5px 8px; background: #edf2f7; border: 1px solid #ccd5df; font-size: 12px; font-weight: 700; }
.empty-state { grid-column: 1/-1; padding: 36px; border: 2px dashed var(--navy); text-align: center; background: rgba(255,255,255,.55); }

footer { margin-top: 60px; padding: 24px clamp(20px,4vw,64px); display: flex; justify-content: space-between; background: var(--navy); color: #cbd7e5; font-size: 13px; }

@media (max-width: 900px) {
  .hero-section, .sheet-grid { grid-template-columns: 1fr; }
  .character-grid, .module-grid { grid-template-columns: 1fr 1fr; }
  .sheet-box.full { grid-column: auto; }
  .site-header nav { display: none; }
}
@media (max-width: 620px) {
  main { width: min(100% - 20px, 1220px); }
  .hero-section { margin-top: 16px; }
  .character-grid, .module-grid { grid-template-columns: 1fr; }
  .section-heading { align-items: stretch; flex-direction: column; }
  .filters { flex-direction: column; }
  .filters input, .filters select { width: 100%; min-width: 0; }
  .stats-table { grid-template-columns: repeat(2,1fr); }
  .detail-list { grid-template-columns: 1fr; }
  footer { flex-direction: column; gap: 8px; }
}

/* v1.1 editor additions */
.roster-tools { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.archive-note { margin:-8px 0 18px; padding:10px 12px; background:rgba(227,178,60,.14); border-left:4px solid var(--gold); color:#4b5563; font-size:13px; }
.card-actions { display:flex; gap:7px; }
.card-footer button.edit-card { background:var(--navy); }
.hidden { display:none !important; }
.btn.danger { background:#8e1725; color:white; }
.btn.outlined { border:2px solid var(--navy); }

.editor-panel {
  position:relative;
  width:min(1050px, calc(100% - 28px));
  max-height:92vh;
  overflow:auto;
  background:var(--paper);
  border:4px solid var(--navy);
  box-shadow:0 25px 80px rgba(0,0,0,.35);
  z-index:2;
  padding:30px;
}
.editor-header { border-bottom:4px solid var(--red); padding:0 8px 18px; margin-bottom:22px; }
.editor-header h2 { margin:4px 0 0; font:52px/1 Bangers,cursive; color:var(--navy); }
.editor-header p { margin:6px 0 0; color:var(--muted); }
.form-section { background:white; border:2px solid var(--navy); box-shadow:5px 5px 0 rgba(17,39,70,.09); padding:18px; margin:0 0 18px; }
.form-section h3 { margin:0 0 14px; font:30px/1 Bangers,cursive; color:var(--navy); letter-spacing:.5px; }
.form-section-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.form-section-heading h3 { margin-bottom:12px; }
.form-grid { display:grid; gap:12px; }
.form-grid.three-col { grid-template-columns:repeat(3,1fr); }
.form-grid.five-col { grid-template-columns:repeat(5,1fr); }
.form-section label, .full-label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:#475467; }
.form-section input, .form-section select, .form-section textarea { width:100%; border:2px solid #bdc6d1; background:#fff; padding:10px; color:var(--ink); text-transform:none; font-weight:500; letter-spacing:0; }
.form-section input:focus, .form-section select:focus, .form-section textarea:focus { outline:3px solid rgba(31,79,138,.14); border-color:var(--blue); }
.mini-btn { border:0; padding:8px 11px; background:var(--navy); color:white; font-weight:800; cursor:pointer; }
.repeat-list { display:flex; flex-direction:column; gap:8px; }
.power-row { display:grid; grid-template-columns:1fr auto; gap:8px; }
.attack-row, .attack-editor-head { display:grid; grid-template-columns:1.4fr .8fr 1fr 1fr .85fr 36px; gap:7px; align-items:center; }
.attack-editor-head { margin:0 0 7px; padding:0 3px; font-size:11px; font-weight:800; color:var(--muted); text-transform:uppercase; }
.repeat-list input { border:2px solid #c7ced7; padding:9px; width:100%; }
.remove-row { width:34px; height:34px; border:0; background:#e9edf2; color:#8e1725; font-size:20px; font-weight:800; cursor:pointer; }
.remove-row:hover { background:#8e1725; color:white; }
.form-actions { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:24px 0 2px; }
.form-actions-right { display:flex; justify-content:flex-end; gap:10px; margin-left:auto; }

@media (max-width: 900px) {
  .roster-tools { width:100%; justify-content:flex-start; }
  .form-grid.three-col { grid-template-columns:1fr 1fr; }
  .form-grid.five-col { grid-template-columns:repeat(3,1fr); }
  .attack-editor-head { display:none; }
  .attack-row { grid-template-columns:1fr 1fr; border:1px solid var(--line); padding:8px; }
  .attack-row .remove-row { grid-column:2; justify-self:end; }
}
@media (max-width: 620px) {
  .editor-panel { width:calc(100% - 12px); padding:18px 12px; border-width:3px; }
  .form-grid.three-col, .form-grid.five-col { grid-template-columns:1fr; }
  .attack-row { grid-template-columns:1fr; }
  .attack-row .remove-row { grid-column:1; justify-self:end; }
  .form-actions { align-items:stretch; flex-direction:column-reverse; }
  .form-actions-right { width:100%; margin-left:0; }
  .form-actions-right .btn, .form-actions>.btn { flex:1; }
}

/* v1.2 backup and portability additions */
.backup-panel {
  display:grid;
  grid-template-columns:1.4fr auto;
  gap:22px;
  align-items:center;
  margin:0 0 24px;
  padding:22px;
  background:white;
  border:2px solid var(--navy);
  border-left:8px solid var(--gold);
  box-shadow:6px 6px 0 rgba(17,39,70,.10);
}
.backup-panel h3 { margin:3px 0 6px; font:34px/1 Bangers,cursive; color:var(--navy); }
.backup-panel p { margin:0; max-width:760px; color:var(--muted); line-height:1.55; }
.backup-actions { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.backup-status { grid-column:1 / -1; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; font-weight:600; }
.backup-status.success { color:#176b3a; }
.backup-status.error { color:#9c1c2b; }

@media (max-width: 900px) {
  .backup-panel { grid-template-columns:1fr; align-items:start; }
  .backup-actions { justify-content:flex-start; }
}
@media (max-width: 620px) {
  .backup-actions { display:grid; grid-template-columns:1fr; }
  .backup-actions .btn { width:100%; }
}

/* v1.3 account + cloud sync */
.site-header { gap: 1rem; }
.account-area { margin-left: auto; display: flex; align-items: center; gap: .65rem; }
.storage-badge { font-size: .68rem; font-weight: 800; letter-spacing: .08em; padding: .42rem .6rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.28); white-space: nowrap; }
.storage-badge.local { background: rgba(255,255,255,.08); color: #fff; }
.storage-badge.cloud { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.storage-badge.error { background: var(--red); color: #fff; border-color: var(--red); }
.account-btn { border: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; padding: .58rem .8rem; border-radius: 7px; font-weight: 800; cursor: pointer; }
.account-btn:hover { background: rgba(255,255,255,.1); }
.cloud-actions { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: .85rem; }
.auth-panel { position: relative; width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; margin: 24px auto; background: var(--panel); border: 4px solid var(--navy); border-radius: 14px; box-shadow: var(--shadow); padding: 2rem; z-index: 2; }
.auth-panel h2 { font-family: Bangers, Impact, sans-serif; font-size: 2.4rem; letter-spacing: .04em; margin: .25rem 0 .5rem; color: var(--navy); }
.auth-panel > p { color: var(--muted); margin-top: 0; }
.auth-form { display: grid; gap: 1rem; margin-top: 1.3rem; }
.auth-form label { display: grid; gap: .35rem; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--navy); }
.auth-form input { width: 100%; padding: .75rem; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.auth-actions { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1rem; }
.account-card { background: #f5f7fa; border: 1px solid var(--line); border-left: 5px solid var(--blue); padding: 1rem; border-radius: 8px; display: grid; gap: .25rem; }
.account-card span, .account-card small { color: var(--muted); }
.account-card strong { color: var(--navy); }
button:disabled { opacity: .52; cursor: not-allowed; }

@media (max-width: 760px) {
  .site-header { flex-wrap: wrap; }
  .site-header nav { order: 3; width: 100%; justify-content: center; }
  .account-area { margin-left: 0; }
  .storage-badge { display: none; }
}

/* v1.4 public repository + visibility controls */
.visibility-badge { display:inline-flex; align-items:center; gap:.3rem; padding:.3rem .5rem; border-radius:999px; font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; border:1px solid var(--line); }
.visibility-badge.public { background:#eaf7ef; color:#176b3a; border-color:#b8dec6; }
.visibility-badge.players-only { background:#fff6db; color:#725209; border-color:#e7d08b; }
.visibility-badge.private { background:#f5e8eb; color:#8e1725; border-color:#dfb9c1; }
.card-top-right { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
.public-mode-note { color:var(--muted); font-size:.78rem; font-weight:700; }
.readonly-message { padding:14px 16px; background:#eef3f8; border-left:5px solid var(--blue); color:#405067; font-weight:600; }


/* v1.5 Powers, Equipment, Organizations, and Locations databases */
.module-card { display:block; color:inherit; text-decoration:none; background:white; border:2px solid var(--navy); padding:22px; min-height:150px; transition:transform .15s ease, box-shadow .15s ease; }
.module-card strong, .module-grid article strong { display:block; margin-top:12px; color:var(--blue); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.module-card:hover { transform:translateY(-2px); box-shadow:8px 8px 0 rgba(17,39,70,.12); }
.repository-section { scroll-margin-top:96px; }
.repo-tools { display:flex; gap:10px; margin:-8px 0 18px; }
.repo-tools input, .repo-tools select { border:2px solid var(--navy); background:white; padding:11px 12px; font:inherit; }
.repo-tools input { flex:1; min-width:260px; }
.repo-tools select { min-width:190px; }
.repository-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.repository-card { display:flex; flex-direction:column; min-height:320px; background:white; border:2px solid var(--navy); box-shadow:6px 6px 0 rgba(17,39,70,.1); }
.repo-card-head { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:11px 13px; border-bottom:1px solid var(--line); background:#f5f7fa; }
.repo-card-body { padding:18px; flex:1; }
.repo-card-body h3 { margin:0; font:34px/1 Bangers,cursive; color:var(--navy); }
.repo-category { margin:5px 0 14px !important; color:var(--red); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.repo-card-body>p:not(.repo-category) { color:var(--muted); line-height:1.55; }
.repo-facts { display:grid; gap:7px; margin-top:16px; }
.repo-facts span { display:grid; grid-template-columns:minmax(110px,.8fr) 1fr; gap:8px; padding-top:7px; border-top:1px solid var(--line); font-size:12px; }
.repo-facts strong { color:var(--navy); text-transform:uppercase; font-size:10px; letter-spacing:.04em; }
.repo-detail-panel .sheet-grid { margin-top:0; }
.repo-longtext { white-space:pre-wrap; line-height:1.65; }
.repo-detail-list { grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){.repository-grid{grid-template-columns:1fr 1fr}.repo-detail-list{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.repository-grid{grid-template-columns:1fr}.repo-tools{flex-direction:column}.repo-tools input,.repo-tools select{min-width:0;width:100%}.repo-detail-list{grid-template-columns:1fr}}

/* v1.7 image storage and display */
.image-editor-grid { display:grid; grid-template-columns:220px 1fr; gap:20px; align-items:start; }
.image-preview-box { aspect-ratio:3/4; border:2px dashed var(--navy); background:#eef2f6; overflow:hidden; display:grid; place-items:center; }
.image-preview-box.repo-image-preview { aspect-ratio:16/10; }
.image-preview-box img { width:100%; height:100%; object-fit:cover; display:block; }
.image-placeholder { font:24px/1 Bangers,cursive; letter-spacing:.08em; color:#8290a4; text-align:center; padding:18px; }
.image-editor-controls { display:grid; gap:12px; }
.image-editor-controls label { display:grid; gap:6px; font-weight:700; font-size:13px; }
.image-editor-controls input { width:100%; border:2px solid var(--navy); padding:10px 11px; background:white; }
.image-button-row { display:flex; flex-wrap:wrap; gap:8px; }
.image-help { color:var(--muted); line-height:1.45; }
.image-status { min-height:1.25em; color:var(--muted); font-size:12px; font-weight:700; }
.image-status.error { color:var(--red); }
.image-status.success { color:#176b3a; }
.character-card-image, .repo-card-image { position:relative; overflow:hidden; background:linear-gradient(135deg,#dce5ef,#f4f6f8); border-bottom:2px solid var(--navy); }
.character-card-image { aspect-ratio:16/9; }
.repo-card-image { aspect-ratio:16/8; }
.character-card-image img, .repo-card-image img { width:100%; height:100%; object-fit:cover; display:block; }
.card-image-placeholder { width:100%; height:100%; display:grid; place-items:center; font:42px/1 Bangers,cursive; color:#8b99ab; letter-spacing:.06em; }
.sheet-image-layout { display:grid; grid-template-columns:minmax(190px,260px) 1fr; gap:20px; align-items:start; }
.sheet-primary-image { width:100%; max-height:520px; object-fit:contain; background:#edf1f5; border:2px solid var(--navy); }
.sheet-primary-image.location-map { max-height:650px; }
.sheet-image-placeholder { min-height:260px; border:2px dashed var(--navy); display:grid; place-items:center; background:#eef2f6; font:30px/1 Bangers,cursive; color:#8b99ab; }
@media (max-width:700px){.image-editor-grid,.sheet-image-layout{grid-template-columns:1fr}.image-preview-box{max-width:280px}.image-preview-box.repo-image-preview{max-width:none}}


/* v1.9.1 About / fan-site disclaimer */
.about-section { padding:56px clamp(20px,5vw,72px); background:#f4f6f8; border-top:4px solid var(--navy); }
.about-section .section-heading { max-width:900px; margin-bottom:24px; }
.about-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:20px; max-width:1200px; }
.about-card { background:white; border:2px solid var(--navy); box-shadow:6px 6px 0 rgba(18,35,58,.12); padding:22px; }
.about-card h3 { margin:0 0 12px; font-family:Bangers,cursive; letter-spacing:.06em; font-size:27px; }
.about-card p { margin:0 0 12px; line-height:1.65; }
.about-card p:last-child { margin-bottom:0; }
.disclaimer-card { border-left:7px solid var(--red); }
footer { flex-wrap:wrap; gap:10px 24px; }
@media (max-width:760px){.about-grid{grid-template-columns:1fr}}


/* v2.1 Campaigns + Documents */
.document-editor-grid{display:grid;grid-template-columns:1fr;gap:16px}.document-access{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.document-link{display:inline-flex;text-decoration:none}.document-missing{font-weight:700;opacity:.72}.disabled-link{pointer-events:none;opacity:.55}.repository-card .repo-card-body p{overflow-wrap:anywhere}
