:root{
  --bg-dark:#0b1f4b; /* Texas blue */
  --bg-dark-2:#112a63;
  --bg-light:#fff8ef; /* warm parchment */
  --bg-alt:#f3e6d3; /* rustic tan */
  --text:#2c1f12;
  --text-light:#f8fafc;
  --text-muted:#5f4734;
  --primary:#bf0a30; /* Texas red */
  --primary-dark:#8f0f2e;
  --border:#d2b48c; /* saddle brown */
  --card:#fffdf9;
  --max-width:1100px;
  --shadow-soft:0 10px 28px rgba(44,31,18,0.12);
}

*{
  box-sizing:border-box;
}

body{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.6;
  color:var(--text);
  background:
    radial-gradient(circle at 20% 20%, rgba(191,10,48,0.05) 0 120px, transparent 121px),
    radial-gradient(circle at 85% 30%, rgba(11,31,75,0.05) 0 140px, transparent 141px),
    linear-gradient(180deg,#fffdf9 0%,#fff8ef 100%);
}

.container{
  width:min(100% - 2rem,var(--max-width));
  margin:0 auto;
}

.narrow{
  max-width:820px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:
    linear-gradient(180deg,rgba(11,31,75,0.98),rgba(17,42,99,0.96)),
    repeating-linear-gradient(45deg,rgba(255,255,255,0.06) 0 10px,transparent 10px 20px);
  color:white;
  border-bottom:3px solid var(--primary);
  box-shadow:0 6px 18px rgba(0,0,0,0.25);
}

.header-inner{
  display:grid;
  grid-template-columns:1fr;
  align-items:center;
  padding:0.85rem 0 0.7rem;
  gap:0.75rem;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
  width:fit-content;
  font-weight:700;
  text-decoration:none;
  color:white;
  text-shadow:0 1px 0 rgba(0,0,0,0.25);
}

.brand::before{
  content:"★";
  color:#ffffff;
  font-size:1rem;
  line-height:1;
}

.nav{
  display:flex;
  gap:0.85rem;
  flex-wrap:wrap;
  align-items:center;
}

section[id]{
  scroll-margin-top:7.5rem;
}

.nav a{
  color:#ffe9d6;
  text-decoration:none;
  font-weight:700;
  padding:0.25rem 0.2rem;
  border-bottom:2px solid transparent;
  transition:border-color 160ms ease, transform 160ms ease, color 160ms ease;
}

.nav a:hover,
.nav a:focus-visible{
  color:#ffffff;
  border-color:#ffffff;
  transform:translateY(-1px);
}

.hero{
  --hero-star-left:1rem;
  --hero-star-top:1rem;
  --hero-star-size:clamp(6rem,11vw,9.5rem);
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(140deg,rgba(11,31,75,0.95),rgba(17,42,99,0.9)),
    repeating-linear-gradient(45deg,rgba(255,255,255,0.03) 0 8px,transparent 8px 16px);
  color:white;
  padding:5rem 0;
}

.hero::after{
  content:"★";
  position:absolute;
  left:var(--hero-star-left);
  top:var(--hero-star-top);
  font-size:var(--hero-star-size);
  line-height:1;
  color:#ffffff;
  text-shadow:none;
  filter:none;
  pointer-events:none;
}

.hero-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:2rem;
  align-items:start;
}

.hero-copy{
  position:relative;
  z-index:1;
  padding-top:calc(var(--hero-star-top) + var(--hero-star-size) + 0.15rem);
}

.eyebrow,
.section-kicker{
  margin:0 0 0.75rem;
  font-size:0.9rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--primary);
}

.section-kicker-light{
  color:#ffe4ea;
}

.hero h1{
  font-size:2.5rem;
  margin:0;
  line-height:1.15;
  text-wrap:balance;
}

.hero-text{
  margin-top:1.25rem;
  max-width:760px;
}

.hero-actions{
  margin-top:2rem;
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}

.hero-points{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  list-style:none;
  padding:0;
  margin:1.5rem 0 0;
  font-weight:700;
}

.hero-points li{
  background:rgba(255,255,255,0.12);
  padding:0.3rem 0.65rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.22);
}

.hero-card{
  background:rgba(255,255,255,0.12);
  padding:1.5rem;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(2px);
}

.hero-card h2{
  margin-top:0;
}

.card-link{
  display:inline-block;
  margin-top:0.5rem;
  color:#ffe4ea;
  font-weight:700;
  text-decoration:none;
}

.section{
  padding:4rem 0;
}

.section-alt{
  background:var(--bg-alt);
  border-top:1px solid rgba(140,90,40,0.15);
  border-bottom:1px solid rgba(140,90,40,0.15);
}

.section-accent{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  color:white;
}

.section h2{
  margin:0 0 1rem;
  font-size:2rem;
  line-height:1.2;
}

.two-col{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:2rem;
  align-items:start;
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2rem;
}

.info-card{
  background:var(--card);
  padding:1.5rem;
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--shadow-soft);
  transition:transform 180ms ease, box-shadow 180ms ease;
}

.info-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(44,31,18,0.18);
}

.info-card h3{
  margin-top:0;
}

.event-banner{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:1.5rem;
  background:var(--bg-light);
  border:1px solid var(--border);
  border-radius:12px;
  padding:1.5rem;
  box-shadow:var(--shadow-soft);
}

.event-copy h2{
  margin-bottom:0.75rem;
}

.event-details{
  display:flex;
  flex-direction:column;
  gap:0.9rem;
  justify-content:center;
  background:white;
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.25rem;
}

.event-detail{
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}

.event-label{
  font-size:0.85rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--text-muted);
}

.petition-wrap{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:2rem;
  align-items:start;
}

.petition-box{
  background:rgba(255,255,255,0.15);
  padding:1.5rem;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.3);
}

.petition-box h3{
  margin-top:0;
}

.signature-tracker{
  margin-top:1.5rem;
  padding:1rem 1.25rem;
  border:1px solid rgba(255,255,255,0.35);
  border-radius:10px;
  background:rgba(255,255,255,0.08);
}

.signature-tracker h3{
  margin:0;
  font-size:1.1rem;
}

.signature-progress{
  margin:0.35rem 0;
  font-size:1.8rem;
  font-weight:700;
  line-height:1.1;
}

.signature-progress-bar{
  position:relative;
  height:1.1rem;
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.45);
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,0.14) 0 14px,rgba(255,255,255,0.06) 14px 28px),
    rgba(11,31,75,0.45);
  box-shadow:inset 0 1px 4px rgba(0,0,0,0.35);
}

.signature-progress-fill{
  width:0%;
  height:100%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-right:0.5rem;
  border-radius:999px;
  background:linear-gradient(90deg,#ffffff 0%, #ffd7df 25%, #bf0a30 68%, #8f0f2e 100%);
  transition:width 420ms ease;
}

.signature-progress-stars{
  font-size:0.62rem;
  letter-spacing:0.1em;
  color:rgba(255,255,255,0.92);
  white-space:nowrap;
}

.signature-progress-label{
  margin:0.45rem 0 0;
  font-weight:700;
  color:#fff4f7;
  font-size:0.9rem;
}

.signature-note{
  margin:0.45rem 0 0;
  color:#ffe4ea;
}

.btn{
  padding:0.8rem 1.2rem;
  border-radius:8px;
  text-decoration:none;
  font-weight:700;
  display:inline-block;
  border:none;
  cursor:pointer;
  font-size:1rem;
  transition:transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.btn:hover,
.btn:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(0,0,0,0.2);
  filter:saturate(1.08);
}

.btn-primary{
  background:var(--primary);
  color:white;
}

.btn-secondary{
  background:white;
  color:var(--bg-dark);
}

.btn-light{
  background:white;
  color:var(--primary-dark);
}

.war-room-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-top:1.5rem;
}

.war-room-card{
  background:white;
  border:1px solid var(--border);
  border-radius:10px;
  padding:1.5rem;
  box-shadow:var(--shadow-soft);
}

.war-room-card h3{
  margin-top:0;
}

.war-room-meta{
  color:var(--text-muted);
  font-size:0.95rem;
  margin:0;
}

.issue-summary-list{
  margin:0.75rem 0 0;
  padding-left:1.1rem;
}

.issue-summary-list li + li{
  margin-top:0.6rem;
}

.volunteer-form{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.volunteer-form label{
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  font-weight:600;
}

.volunteer-form input,
.volunteer-form textarea{
  padding:0.7rem;
  border-radius:6px;
  border:1px solid var(--border);
  font-size:1rem;
  width:100%;
  font-family:inherit;
  background:#fffdf9;
}

.volunteer-form textarea{
  min-height:90px;
  resize:vertical;
}

.volunteer-form button{
  margin-top:0.5rem;
  width:fit-content;
}

.site-footer{
  border-top:3px solid var(--primary);
  background:linear-gradient(90deg,#fff 0 66%,#f4f7ff 66%);
  padding:2rem 0;
}

.footer-inner{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
}

.footer-copy,
.footer-meta p{
  margin:0.35rem 0 0;
}

.admin-title{
  margin:0;
  font-size:2.2rem;
  line-height:1.2;
}

.admin-subtitle{
  margin:0.75rem 0 0;
  color:var(--text-muted);
}

.admin-metric-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0.75rem;
}

.admin-metric-grid p{
  margin:0;
}

.admin-list{
  display:grid;
  gap:1rem;
}

.admin-signature-card{
  border-top:6px solid var(--primary);
}

.signature-stats-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0.75rem;
  margin-top:0.75rem;
}

.admin-stat-label{
  margin:0;
  color:var(--text-muted);
  font-size:0.85rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
}

.admin-stat-value{
  margin:0.2rem 0 0;
  font-size:1.8rem;
  line-height:1.1;
  font-weight:700;
}

.signature-note-dark{
  margin:0.85rem 0 0;
  color:var(--text-muted);
}

.admin-highlight-card{
  border:2px solid var(--primary);
  box-shadow:0 14px 28px rgba(191,10,48,0.18);
}

.admin-issue-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}

.table-wrap{
  overflow-x:auto;
}

.admin-table{
  width:100%;
  border-collapse:collapse;
  margin-top:0.75rem;
}

.admin-table th,
.admin-table td{
  border:1px solid var(--border);
  padding:0.65rem;
  text-align:left;
}

.admin-table th{
  background:var(--bg-alt);
}

@media(max-width:900px){
  .hero-grid,
  .petition-wrap,
  .card-grid,
  .two-col,
  .event-banner,
  .war-room-grid,
  .admin-metric-grid,
  .signature-stats-grid,
  .admin-issue-grid{
    grid-template-columns:1fr;
  }

  .hero h1{
    font-size:2rem;
  }

  .hero{
    --hero-star-left:0.75rem;
    --hero-star-top:0.85rem;
    --hero-star-size:clamp(4.8rem,22vw,6.6rem);
  }

  .hero-copy{
    padding-top:calc(var(--hero-star-top) + var(--hero-star-size) + 0.08rem);
  }

  .site-header{
    background:var(--bg-dark);
  }

  .nav a{
    color:#fff;
  }
}
