@charset "UTF-8";
/**
 * Reset some basic elements
 */
@import url("https://fonts.googleapis.com/css2?family=Anton&display=swap");
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
  margin: 0;
  padding: 0;
}

/**
 * Basic styling
 */
body {
  font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  color: #111;
  background-color: #fdfdfd;
  -webkit-text-size-adjust: 100%;
  -webkit-font-feature-settings: "kern" 1;
  -moz-font-feature-settings: "kern" 1;
  -o-font-feature-settings: "kern" 1;
  font-feature-settings: "kern" 1;
  font-kerning: normal;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

/**
 * Set `margin-bottom` to maintain vertical rhythm
 */
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
.highlight {
  margin-bottom: 15px;
}

/**
 * `main` element
 */
main {
  display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */
}

/**
 * Images
 */
img {
  max-width: 100%;
  vertical-align: middle;
}

/**
 * Figures
 */
figure > img {
  display: block;
}

figcaption {
  font-size: 14px;
}

/**
 * Lists
 */
ul, ol {
  margin-left: 30px;
}

li > ul,
li > ol {
  margin-bottom: 0;
}

/**
 * Headings
 */
h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
}

/**
 * Links
 */
a {
  color: #2a7ae2;
  text-decoration: none;
}
a:visited {
  color: rgb(22.9483471074, 86.2541322314, 168.5516528926);
}
a:hover {
  color: #111;
  text-decoration: underline;
}
.social-media-list a:hover {
  text-decoration: none;
}
.social-media-list a:hover .username {
  text-decoration: underline;
}

/**
 * Blockquotes
 */
blockquote {
  color: #828282;
  border-left: 4px solid #e8e8e8;
  padding-left: 15px;
  font-size: 18px;
  letter-spacing: -1px;
  font-style: italic;
}
blockquote > :last-child {
  margin-bottom: 0;
}

/**
 * Code formatting
 */
pre,
code {
  font-size: 15px;
  border: 1px solid #e8e8e8;
  border-radius: 3px;
  background-color: #eef;
}

code {
  padding: 1px 5px;
}

pre {
  padding: 8px 12px;
  overflow-x: auto;
}
pre > code {
  border: 0;
  padding-right: 0;
  padding-left: 0;
}

/**
 * Wrapper
 */
.wrapper {
  max-width: -webkit-calc(800px - (30px * 2));
  max-width: calc(800px - 30px * 2);
  margin-right: auto;
  margin-left: auto;
  padding-right: 30px;
  padding-left: 30px;
}
@media screen and (max-width: 800px) {
  .wrapper {
    max-width: -webkit-calc(800px - (30px));
    max-width: calc(800px - (30px));
    padding-right: 15px;
    padding-left: 15px;
  }
}

/**
 * Clearfix
 */
.footer-col-wrapper:after, .wrapper:after {
  content: "";
  display: table;
  clear: both;
}

/**
 * Icons
 */
.svg-icon {
  width: 16px;
  height: 16px;
  display: inline-block;
  fill: #828282;
  padding-right: 5px;
  vertical-align: text-top;
}

.social-media-list li + li {
  padding-top: 5px;
}

/**
 * Tables
 */
table {
  margin-bottom: 30px;
  width: 100%;
  text-align: left;
  color: rgb(62.9, 62.9, 62.9);
  border-collapse: collapse;
  border: 1px solid #e8e8e8;
}
table tr:nth-child(even) {
  background-color: rgb(247.3, 247.3, 247.3);
}
table th, table td {
  padding: 9.999999999px 15px;
}
table th {
  background-color: rgb(239.65, 239.65, 239.65);
  border: 1px solid rgb(221.8, 221.8, 221.8);
  border-bottom-color: rgb(201.4, 201.4, 201.4);
}
table td {
  border: 1px solid #e8e8e8;
}

/**
 * Site header
 */
.site-header {
  border-top: 5px solid rgb(66.25, 66.25, 66.25);
  border-bottom: 1px solid #e8e8e8;
  min-height: 55.95px;
  position: relative;
}

.site-title {
  font-size: 26px;
  font-weight: 300;
  line-height: 54px;
  letter-spacing: -1px;
  margin-bottom: 0;
  float: left;
}
.site-title, .site-title:visited {
  color: rgb(66.25, 66.25, 66.25);
}

.site-nav {
  float: right;
  line-height: 54px;
}
.site-nav .nav-trigger {
  display: none;
}
.site-nav .menu-icon {
  display: none;
}
.site-nav .page-link {
  color: #111;
  line-height: 1.5;
}
.site-nav .page-link:not(:last-child) {
  margin-right: 20px;
}
@media screen and (max-width: 600px) {
  .site-nav {
    position: absolute;
    top: 9px;
    right: 15px;
    background-color: #fdfdfd;
    border: 1px solid #e8e8e8;
    border-radius: 5px;
    text-align: right;
  }
  .site-nav label[for=nav-trigger] {
    display: block;
    float: right;
    width: 36px;
    height: 36px;
    z-index: 2;
    cursor: pointer;
  }
  .site-nav .menu-icon {
    display: block;
    float: right;
    width: 36px;
    height: 26px;
    line-height: 0;
    padding-top: 10px;
    text-align: center;
  }
  .site-nav .menu-icon > svg {
    fill: rgb(66.25, 66.25, 66.25);
  }
  .site-nav input ~ .trigger {
    clear: both;
    display: none;
  }
  .site-nav input:checked ~ .trigger {
    display: block;
    padding-bottom: 5px;
  }
  .site-nav .page-link {
    display: block;
    margin-left: 20px;
    padding: 5px 10px;
  }
  .site-nav .page-link:not(:last-child) {
    margin-right: 0;
  }
}

/**
 * Site footer
 */
.site-footer {
  border-top: 1px solid #e8e8e8;
  padding: 30px 0;
}

.footer-heading {
  font-size: 18px;
  margin-bottom: 15px;
}

.contact-list,
.social-media-list {
  list-style: none;
  margin-left: 0;
}

.footer-col-wrapper {
  font-size: 15px;
  color: #828282;
  margin-left: -15px;
}

.footer-col {
  float: left;
  margin-bottom: 15px;
  padding-left: 15px;
}

.footer-col-1 {
  width: -webkit-calc(35% - (30px / 2));
  width: calc(35% - 30px / 2);
}

.footer-col-2 {
  width: -webkit-calc(20% - (30px / 2));
  width: calc(20% - 30px / 2);
}

.footer-col-3 {
  width: -webkit-calc(45% - (30px / 2));
  width: calc(45% - 30px / 2);
}

@media screen and (max-width: 800px) {
  .footer-col-1,
  .footer-col-2 {
    width: -webkit-calc(50% - (30px / 2));
    width: calc(50% - 30px / 2);
  }
  .footer-col-3 {
    width: -webkit-calc(100% - (30px / 2));
    width: calc(100% - 30px / 2);
  }
}
@media screen and (max-width: 600px) {
  .footer-col {
    float: none;
    width: -webkit-calc(100% - (30px / 2));
    width: calc(100% - 30px / 2);
  }
}
/**
 * Page content
 */
.page-content {
  padding: 30px 0;
  flex: 1;
}

.page-heading {
  font-size: 32px;
}

.post-list-heading {
  font-size: 28px;
}

.post-list {
  margin-left: 0;
  list-style: none;
}
.post-list > li {
  margin-bottom: 30px;
}

.post-meta {
  font-size: 14px;
  color: #828282;
}

.post-link {
  display: block;
  font-size: 24px;
}

/**
 * Posts
 */
.post-header {
  margin-bottom: 30px;
}

.post-title {
  font-size: 42px;
  letter-spacing: -1px;
  line-height: 1;
}
@media screen and (max-width: 800px) {
  .post-title {
    font-size: 36px;
  }
}

.post-content {
  margin-bottom: 30px;
}
.post-content h2 {
  font-size: 32px;
}
@media screen and (max-width: 800px) {
  .post-content h2 {
    font-size: 28px;
  }
}
.post-content h3 {
  font-size: 26px;
}
@media screen and (max-width: 800px) {
  .post-content h3 {
    font-size: 22px;
  }
}
.post-content h4 {
  font-size: 20px;
}
@media screen and (max-width: 800px) {
  .post-content h4 {
    font-size: 18px;
  }
}

/**
 * Syntax highlighting styles
 */
.highlight {
  background: #fff;
}
.highlighter-rouge .highlight {
  background: #eef;
}
.highlight .c {
  color: #998;
  font-style: italic;
}
.highlight .err {
  color: #a61717;
  background-color: #e3d2d2;
}
.highlight .k {
  font-weight: bold;
}
.highlight .o {
  font-weight: bold;
}
.highlight .cm {
  color: #998;
  font-style: italic;
}
.highlight .cp {
  color: #999;
  font-weight: bold;
}
.highlight .c1 {
  color: #998;
  font-style: italic;
}
.highlight .cs {
  color: #999;
  font-weight: bold;
  font-style: italic;
}
.highlight .gd {
  color: #000;
  background-color: #fdd;
}
.highlight .gd .x {
  color: #000;
  background-color: #faa;
}
.highlight .ge {
  font-style: italic;
}
.highlight .gr {
  color: #a00;
}
.highlight .gh {
  color: #999;
}
.highlight .gi {
  color: #000;
  background-color: #dfd;
}
.highlight .gi .x {
  color: #000;
  background-color: #afa;
}
.highlight .go {
  color: #888;
}
.highlight .gp {
  color: #555;
}
.highlight .gs {
  font-weight: bold;
}
.highlight .gu {
  color: #aaa;
}
.highlight .gt {
  color: #a00;
}
.highlight .kc {
  font-weight: bold;
}
.highlight .kd {
  font-weight: bold;
}
.highlight .kp {
  font-weight: bold;
}
.highlight .kr {
  font-weight: bold;
}
.highlight .kt {
  color: #458;
  font-weight: bold;
}
.highlight .m {
  color: #099;
}
.highlight .s {
  color: #d14;
}
.highlight .na {
  color: #008080;
}
.highlight .nb {
  color: #0086B3;
}
.highlight .nc {
  color: #458;
  font-weight: bold;
}
.highlight .no {
  color: #008080;
}
.highlight .ni {
  color: #800080;
}
.highlight .ne {
  color: #900;
  font-weight: bold;
}
.highlight .nf {
  color: #900;
  font-weight: bold;
}
.highlight .nn {
  color: #555;
}
.highlight .nt {
  color: #000080;
}
.highlight .nv {
  color: #008080;
}
.highlight .ow {
  font-weight: bold;
}
.highlight .w {
  color: #bbb;
}
.highlight .mf {
  color: #099;
}
.highlight .mh {
  color: #099;
}
.highlight .mi {
  color: #099;
}
.highlight .mo {
  color: #099;
}
.highlight .sb {
  color: #d14;
}
.highlight .sc {
  color: #d14;
}
.highlight .sd {
  color: #d14;
}
.highlight .s2 {
  color: #d14;
}
.highlight .se {
  color: #d14;
}
.highlight .sh {
  color: #d14;
}
.highlight .si {
  color: #d14;
}
.highlight .sx {
  color: #d14;
}
.highlight .sr {
  color: #009926;
}
.highlight .s1 {
  color: #d14;
}
.highlight .ss {
  color: #990073;
}
.highlight .bp {
  color: #999;
}
.highlight .vc {
  color: #008080;
}
.highlight .vg {
  color: #008080;
}
.highlight .vi {
  color: #008080;
}
.highlight .il {
  color: #099;
}

/* ================================
   Design tokens & global polish
================================ */
:root {
  --brand-1: #2c3e50;
  --brand-2: #4ca1af;
  --brand-3: #ffdd57;
  --ink: #0f172a;
  --muted: #64748b;
  --radius: 14px;
  --shadow: 0 10px 25px rgba(0,0,0,.08);
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-6: 3rem;
}

/* ===== Sticky footer + no white band ===== */
html {
  height: 100%;
  background: #243544;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  line-height: 1.6;
  background: #243544;
  overflow-x: hidden;
}

@supports (height: 100dvh) {
  body {
    min-height: 100dvh;
  }
}
.page-content {
  flex: 1 0 auto;
  background: #ffffff;
}

.site-footer.h-card {
  margin-top: auto;
  display: flow-root;
}

.site-footer .wrapper > *:last-child {
  margin-bottom: 0 !important;
}

.wrapper {
  max-width: 900px;
  padding: 0 18px;
  margin: 0 auto;
}

p {
  margin: 0 0 var(--space-2);
}

h1, h2, h3 {
  line-height: 1.25;
  letter-spacing: 0.2px;
}

h1 {
  font-weight: 800;
  font-size: clamp(1.9rem, 2.5vw + 1rem, 2.6rem);
}

h2 {
  font-size: clamp(1.5rem, 1.5vw + 1rem, 2rem);
}

a {
  color: #4ca1af;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.section {
  padding: var(--space-6) 0;
}

.section--tight {
  padding: var(--space-4) 0;
}

/* ================================
   Header: logo (left), title under logo, nav (right)
================================ */
.site-header {
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  padding: 0.75rem 0 0;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

/* Row layout: logo stack on the left, nav on the right */
.site-header .wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

/* Logo + title column */
.site-logo-container {
  display: flex;
  flex-direction: column; /* title sits below logo */
  align-items: flex-start; /* align to left edge of the logo */
  gap: 0.5rem;
  margin: 0; /* remove earlier centering */
}

.site-logo {
  display: block;
  max-width: 100%;
  height: auto;
  width: auto;
  max-height: 76px; /* controls vertical size on desktop */
  object-fit: contain; /* keeps proportions */
}

/* Tweak for mobile screens */
@media (max-width: 600px) {
  .site-logo {
    max-height: 64px; /* slightly smaller on phones */
  }
}
.site-title-full {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* If Minima’s .site-title link ever renders */
.site-header .site-title {
  font-family: Georgia, Cambria, "Times New Roman", Times, serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.site-header .site-title:hover {
  color: var(--brand-3);
  transition: color 0.2s ease;
}

/* ================================
   Nav (desktop)
================================ */
.site-nav {
  display: flex;
  align-items: center;
  margin-left: auto; /* push nav to right side */
  text-align: left;
}

/* Hide Minima’s checkbox by default (still accessible) */
#nav-trigger, .nav-trigger {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Container for top-level links on desktop */
.site-nav .trigger {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

/* Links and dropdown buttons */
.site-nav .page-link,
.site-nav .dropbtn {
  display: inline-block;
  color: #fff !important;
  padding: 8px 12px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.2s ease, color 0.2s ease;
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
}

.site-nav .page-link:hover,
.site-nav .dropbtn:hover {
  background: rgba(255, 255, 255, 0.12);
}

.site-nav .page-link[aria-current=page] {
  background: rgba(255, 255, 255, 0.18);
  font-weight: 700;
}

/* Dropdown */
.site-nav .dropdown {
  position: relative;
}

.site-nav .dropdown > .dropbtn::after {
  content: " ▾";
  font-size: 0.9em;
  opacity: 0.85;
}

.site-nav .dropdown-content {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}

.site-nav .dropdown-content a {
  display: block;
  padding: 8px 12px;
  text-decoration: none;
  color: #333 !important;
  white-space: nowrap;
}

.site-nav .dropdown:hover .dropdown-content,
.site-nav .dropdown:focus-within .dropdown-content {
  display: block;
}

/* Desktop: hide hamburger button */
@media (min-width: 601px) {
  .site-nav .menu-icon {
    display: none !important;
  }
}
/* ================================
   Mobile nav (≤ 600px)
   - hamburger at top-right
   - animated slide/fade panel
   - dropdowns toggle with `.is-open`
================================ */
@media (max-width: 600px) {
  .site-header .wrapper {
    flex-direction: column; /* logo stack on top, menu below */
    align-items: stretch;
    gap: 0.5rem;
  }
  /* Hamburger button */
  .site-nav .menu-icon {
    position: absolute;
    top: 2px;
    right: 10px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
    line-height: 0;
    box-sizing: border-box;
    z-index: 1100;
  }
  .site-nav .menu-icon svg {
    width: 22px;
    height: 18px;
    display: block;
  }
  /* Collapsible panel (closed by default) */
  .site-nav .trigger {
    position: static;
    background: #ffffff;
    color: #333;
    border-radius: 12px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
    margin: 0 16px; /* no vertical gap when closed */
    padding: 10px 12px;
    width: calc(100% - 32px);
    box-sizing: border-box;
    text-align: left !important;
    /* animation + closed state */
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: max-height 240ms ease, opacity 180ms ease, transform 240ms ease, margin-top 0ms linear 240ms;
    display: block; /* override desktop flex */
  }
  /* Open via checkbox */
  .site-nav input[type=checkbox]:checked ~ .trigger {
    margin: 46px 16px 12px 16px; /* room under the 40px button */
    max-height: 80vh !important;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition: max-height 260ms ease, opacity 200ms ease, transform 260ms ease, margin-top 0ms;
  }
  /* Top-level rows */
  .site-nav .trigger > .page-link,
  .site-nav .dropbtn {
    display: block !important;
    text-align: left !important;
    padding: 12px 10px !important;
    margin: 4px 0 !important;
    border-radius: 8px;
    color: #333 !important;
    background: transparent;
  }
  /* Dropdown container & animation */
  .site-nav .dropdown {
    display: block;
  }
  .site-nav .dropdown .dropdown-content {
    display: block !important; /* enable transition */
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    background: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0;
    transition: max-height 220ms ease, opacity 180ms ease, transform 220ms ease;
  }
  .site-nav .dropdown.is-open .dropdown-content {
    max-height: 500px;
    opacity: 1;
    transform: translateY(0);
  }
  /* Caret rotation on open */
  .site-nav .dropdown > .dropbtn::after {
    content: " ▾";
    display: inline-block;
    transition: transform 220ms ease;
    transform: rotate(0deg);
  }
  .site-nav .dropdown.is-open > .dropbtn::after {
    transform: rotate(180deg);
  }
  /* Child rows with dash + indent */
  .site-nav .dropdown-content a {
    position: relative;
    display: block;
    padding: 12px 10px 12px 30px !important;
    margin: 4px 0 !important;
    color: #333 !important;
    border-radius: 8px;
  }
  .site-nav .dropdown-content a::before {
    content: "–";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.55;
    line-height: 1;
  }
  /* Slightly smaller base text on very small screens */
  body {
    font-size: 15px;
  }
}
/* Reduce Motion */
@media (prefers-reduced-motion: reduce) {
  .site-nav .trigger,
  .site-nav .dropdown .dropdown-content,
  .site-nav .dropdown > .dropbtn::after {
    transition: none !important;
    transform: none !important;
  }
}
@media (prefers-reduced-motion: reduce) and (max-width: 600px) {
  .site-nav .trigger {
    max-height: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .site-nav input[type=checkbox]:not(:checked) ~ .trigger {
    max-height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
/* ================================
   Optional page hero
================================ */
.page-hero {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.06));
  padding: var(--space-3) 0;
}

.page-hero h1 {
  color: #fff;
  margin: 0;
}

/* ================================
   Footer
================================ */
.site-footer.h-card {
  background: #243544;
  color: #eef3f7;
  padding: 2rem 0;
  border-top: 3px solid rgba(255, 255, 255, 0.08);
  margin: 0;
}

.site-footer .footer-col,
.site-footer .footer-col-1,
.site-footer .footer-col-2,
.site-footer .footer-col-3 {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  min-width: 0;
}

.site-footer .footer-col-wrapper {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.2fr) minmax(100px, 0.5fr) minmax(260px, 1.2fr);
  column-gap: 1.5rem;
  row-gap: 1rem;
}

.footer-col-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem 2rem;
  align-items: start;
}

.site-footer .footer-heading {
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.site-footer .contact-list, .site-footer p {
  color: #eef3f7;
  margin: 0;
}

.site-footer .p-name {
  font-weight: 600;
}

.site-footer a {
  color: var(--brand-3);
  text-decoration: none;
}

.site-footer a:hover {
  text-decoration: underline;
}

.site-footer .social-media-list a {
  color: #eef3f7;
}

.site-footer .social-media-list a:hover {
  color: var(--brand-3);
}

.site-footer .wrapper {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 15px;
}

.site-footer .footer-meta {
  margin-top: 1.25rem;
  font-size: 0.9rem;
  opacity: 0.85;
}

@media (max-width: 800px) {
  .site-footer .footer-col-wrapper, .footer-col-wrapper {
    grid-template-columns: 1fr;
  }
  .site-footer .footer-heading {
    text-align: center;
  }
  .site-footer .contact-list, .site-footer .social-media-list, .site-footer .footer-col-3 {
    text-align: center;
  }
}
/* ================================
   Components
================================ */
.card {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: var(--space-3);
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.btn {
  display: inline-block;
  padding: 0.625rem 1rem;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 700;
  border: 1px solid transparent;
  transition: transform 0.06s ease, background 0.2s ease, border-color 0.2s ease;
}

.btn:active {
  transform: translateY(1px);
}

.btn--primary {
  background: var(--brand-2);
  color: #0b1320;
  border-color: rgba(0, 0, 0, 0.05);
}

.btn--primary:hover {
  background: #78bcc6;
}

.btn--ghost {
  background: transparent;
  color: var(--brand-2);
  border-color: currentColor;
}

ul, ol {
  padding-left: 1.25rem;
}

li {
  margin-bottom: 0.4rem;
}

table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--space-3) 0;
  border: 1px solid rgba(2, 6, 23, 0.08);
  border-radius: 12px;
  overflow: hidden;
}

th, td {
  padding: 0.75rem 0.9rem;
}

thead th {
  background: #f8fafc;
  font-weight: 700;
  text-align: left;
  border-bottom: 1px solid rgba(2, 6, 23, 0.08);
}

tbody tr + tr td {
  border-top: 1px solid rgba(2, 6, 23, 0.06);
}

pre, code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

pre {
  background: #0b1220;
  color: #e6edf3;
  border-radius: 12px;
  padding: 1rem;
  overflow: auto;
  box-shadow: var(--shadow);
}

/* ================================
   Accessibility
================================ */
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
}

.skip-link:focus {
  left: 12px;
  top: 12px;
  z-index: 10000;
  background: #fff;
  color: #000;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  box-shadow: var(--shadow);
}

/* ================================
   Nav font + spacing polish
================================ */
.site-nav {
  font-size: 0.95rem; /* slightly smaller than body text */
}

.site-nav .trigger {
  gap: 0.75rem; /* tighter spacing between links */
}

.site-nav .page-link,
.site-nav .dropbtn {
  padding: 6px 10px; /* less “pill” space */
  margin: 0; /* remove extra margins that caused smoosh */
  font-weight: 500;
  white-space: nowrap; /* keep each link from breaking to two lines */
}

.site-nav .dropdown-content a {
  font-size: 0.9rem; /* slightly smaller inside dropdown */
  padding: 6px 10px;
}

/* ================================
   Fix mobile burger card + title sizing
================================ */
@media (max-width: 600px) {
  /* Burger button alignment (nudge up) */
  .site-nav .menu-icon {
    top: 4px !important; /* adjust until card aligns with header top */
    right: 10px !important;
  }
}
/* Title under logo: smaller, single-line */
.site-title-full {
  font-size: 0.8rem; /* smaller but still strong */
  font-weight: 700;
  white-space: nowrap; /* force one line */
  text-overflow: ellipsis; /* optional: adds "…" if container too small */
  overflow: hidden;
  margin-bottom: 0.8rem;
}

/* ================================
   Center the whole header contents
================================ */
.site-header .wrapper {
  max-width: 1100px; /* adjust width to taste */
  margin: 0 auto; /* center horizontally */
  justify-content: flex-start; /* keep items grouped on the left */
  gap: 2rem; /* spacing between logo/title block and nav */
}

.page-title,
.page-header h1,
.post-title {
  font-style: italic;
  font-weight: 700; /* stays bold-ish */
  color: var(--brand-1); /* dark slate blue */
}

h1 {
  font-weight: 800;
  font-size: clamp(1.6rem, 2vw + 0.8rem, 2.2rem);
}

/* ================================
   Mobile fixes: burger position + panel growth
================================ */
@media (max-width: 600px) {
  /* Make the header a positioning context */
  .site-header .wrapper {
    position: relative;
  }
  /* Burger card: nudge up/left and respect iOS safe areas */
  .site-nav .menu-icon {
    position: absolute;
    top: max(4px, env(safe-area-inset-top));
    right: max(10px, env(safe-area-inset-right));
    /* keeps your existing width/height/box styles */
  }
  /* Closed state (unchanged visuals, just geometry) */
  .site-nav .trigger {
    margin: 0 16px; /* no gap when closed */
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
  }
  /* OPEN: panel grows enough for dropdown children and can scroll if needed */
  .site-nav input[type=checkbox]:checked ~ .trigger {
    margin: calc(46px + env(safe-area-inset-top)) 16px 12px 16px; /* 40px button + 6px gap */
    max-height: calc(100dvh - (56px + env(safe-area-inset-top))); /* roomy yet bounded */
    overflow: auto; /* let long menus scroll */
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  /* CRITICAL: dropdown children must be in-flow so they add height to the panel */
  .site-nav .dropdown .dropdown-content {
    position: static !important; /* no absolute overlap */
    background: transparent;
    box-shadow: none;
    padding: 0;
    margin: 0;
    /* animated expand/collapse */
    display: block !important; /* allow transition */
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height 220ms ease, opacity 180ms ease, transform 220ms ease;
  }
  .site-nav .dropdown.is-open .dropdown-content {
    max-height: 600px; /* big enough for typical lists */
    opacity: 1;
    transform: translateY(0);
  }
  /* Keep row spacing tidy */
  .site-nav .trigger > .page-link,
  .site-nav .dropbtn,
  .site-nav .dropdown-content a {
    display: block !important;
    padding: 12px 10px !important;
    margin: 4px 0 !important;
    border-radius: 8px;
    line-height: 1.25;
    text-align: left !important;
  }
  /* Child rows: indent + dash */
  .site-nav .dropdown-content a {
    position: relative;
    padding-left: 30px !important;
  }
  .site-nav .dropdown-content a::before {
    content: "–";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.55;
  }
}
/* ================================
   Burger = card (one element), perfectly centered
================================ */
@media (max-width: 600px) {
  :root {
    --burger: 40px;
  } /* overall button size */
  /* The label IS the button AND the card */
  .site-nav .menu-icon {
    position: absolute;
    inset-block-start: max(6px, env(safe-area-inset-top)); /* top, notch-safe */
    inset-inline-end: max(10px, env(safe-area-inset-right)); /* right, notch-safe */
    width: var(--burger);
    aspect-ratio: 1/1; /* perfect square (prevents off-by-1px) */
    display: flex; /* dead-center the svg */
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
    box-sizing: border-box; /* include border in size */
    padding: 0; /* no extra padding that shifts the svg */
    line-height: 0; /* no inline layout quirks */
    z-index: 1100;
    -webkit-tap-highlight-color: transparent;
  }
  /* Scale the burger bars relative to the square; keep it visually centered */
  .site-nav .menu-icon svg {
    width: calc(var(--burger) * 0.55);
    height: calc(var(--burger) * 0.45);
    display: block; /* strip inline svg whitespace */
  }
}
/* If you want the desktop size to match, you can set --burger outside the media query */
/* =========================================================
   OVERRIDES: burger alignment + mobile logo/title
========================================================= */
@media (max-width: 600px) {
  :root {
    --burger: 40px;
  }
  /* Logo centered, hide site title under logo */
  .site-logo-container {
    align-items: center !important;
    text-align: center;
  }
  .site-title-full {
    display: none !important;
  }
  .site-logo {
    max-height: 72px;
  }
  /* Burger = card (always aligned) */
  .site-nav .menu-icon {
    position: absolute;
    inset-block-start: max(6px, env(safe-area-inset-top));
    inset-inline-end: max(10px, env(safe-area-inset-right));
    width: var(--burger);
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
    box-sizing: border-box;
    z-index: 1100;
  }
  .site-nav .menu-icon svg {
    width: calc(var(--burger) * 0.55);
    height: calc(var(--burger) * 0.45);
    display: block;
  }
}
/* =========================================================
   ULTRA-LOCKED BURGER: card == button, perfectly centered
   Works even if earlier rules exist. Paste at the very bottom.
========================================================= */
@media (max-width: 600px) {
  /* 1) Anchor the absolute positioning to the HEADER itself */
  header.site-header {
    position: relative !important;
  }
  /* (and avoid competing anchors) */
  header.site-header .wrapper {
    position: static !important;
  }
  /* 2) Single size token for both square + SVG scaling */
  :root {
    --burger: 40px;
  }
  /* 3) The label IS the button AND the card */
  header.site-header nav.site-nav .menu-icon {
    position: absolute !important;
    /* notch-safe anchors */
    top: max(6px, env(safe-area-inset-top)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
    /* square card */
    width: var(--burger) !important;
    height: var(--burger) !important; /* use height not aspect-ratio for older iOS */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    /* kill layout gremlins */
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12) !important;
    box-sizing: border-box !important;
    line-height: 0 !important;
    -webkit-tap-highlight-color: transparent;
    /* subpixel rendering stability on some phones */
    transform: translateZ(0);
    will-change: transform;
    z-index: 1100 !important;
  }
  /* 4) SVG bars centered inside the square */
  header.site-header nav.site-nav .menu-icon svg {
    display: block !important;
    width: calc(var(--burger) * 0.56) !important;
    height: calc(var(--burger) * 0.46) !important;
    /* safety if your SVG had inline width/height attributes */
    max-width: 100% !important;
    max-height: 100% !important;
  }
  /* 5) If your SVG lacks a proper viewBox, give it one safely */
  header.site-header nav.site-nav .menu-icon svg:not([viewBox]) {
    /* This doesn’t change markup; it just keeps layout sane */
    overflow: visible; /* avoids weird intrinsic sizing */
  }
  /* 6) Optional micro-nudges if your phone shows a half-px drift */
  /* header.site-header nav.site-nav .menu-icon svg { transform: translateY(-0.5px); } */
}
/* BONUS: Center logo & hide title on mobile without touching desktop */
@media (max-width: 600px) {
  .site-logo-container {
    align-items: center !important;
    text-align: center !important;
  }
  .site-title-full {
    display: none !important;
  }
  .site-logo {
    max-height: 72px !important;
  }
}
/* === Warm palette overrides (append at bottom) ==================== */
:root {
  /* Brick → Orange → Amber */
  --brand-1: #8e1313; /* deep brick red (used in gradients/titles) */
  --brand-2: #ff6a3d; /* vibrant orange (buttons/accents) */
  --brand-3: #ffd166; /* warm amber (hover/secondary links) */
}

/* Replace the blue page edge/background with a deep warm tone */
html {
  background: #2a1410;
}

body {
  background: #2a1410;
}

/* Content links inside posts/pages */
a {
  color: #e25822;
} /* warm link color on white content */
a:hover {
  color: #ba3f12;
} /* slightly darker on hover */
/* Primary button hover used to be blue; warm it up */
.btn--primary:hover {
  background: #ff8a5c;
}

/* Footer background + contrast stays warm */
.site-footer.h-card {
  background: #2a1410; /* matches page edge */
  color: #ffeede;
}

.site-footer .footer-heading {
  color: #fff;
}

.site-footer a {
  color: var(--brand-3);
}

.site-footer .social-media-list a:hover {
  color: var(--brand-3);
}

/* Optional: hero text stays readable over warm gradients */
.page-hero {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
}

/* Titles that use --brand-1 already shift warm via the token: no change needed */
/* =========================================
   WAVE HEADER EFFECT
   -----------------------------------------
   Creates a curved bottom edge for the banner
========================================= */
header.site-header {
  position: relative;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  height: 180px; /* adjust for desired banner height */
  overflow: hidden; /* hides overflow outside the curve */
  border-bottom: none;
}

/* white "wave" curve at the bottom of the header */
header.site-header::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 70px; /* how tall the wave shape is */
  background: #fff; /* color of the curve (matches page bg) */
  border-radius: 100% 100% 0 0/40% 40% 0 0; /* the curve shape */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  z-index: -1; /* <-- pushes the wave behind header content */
  pointer-events: none; /* <-- never intercepts clicks/hover */
}

/* Make header a stacking context and don't clip dropdowns */
header.site-header {
  position: relative;
  z-index: 0; /* establishes a stacking context */
  isolation: isolate; /* contains z-index to the header */
  overflow: visible; /* dropdowns won't be clipped */
}

.site-nav .dropdown-content {
  position: absolute;
  z-index: 1000;
}

/* 1) Header container: no forced stacking context, don't clip */
header.site-header {
  position: relative;
  overflow: visible; /* dropdowns can escape */
  z-index: auto; /* important: do NOT set a number here */
  border-bottom: none;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  height: 180px;
}

/* 2) Wave = bottom layer (L1) */
header.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -26px; /* how far the wave dips into the page */
  width: 100%;
  height: 70px;
  background: #fff;
  border-radius: 100% 100% 0 0/40% 40% 0 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  z-index: 0; /* L1: below body + header content */
  pointer-events: none;
}

/* 3) Header content wrapper = top layer (L3) */
header.site-header .wrapper {
  position: relative;
  z-index: 3; /* L3: above body and wave */
}

/* 4) Body content = middle layer (L2) */
.page-content {
  position: relative;
  z-index: 1; /* L2: above the wave, below header content */
  /* Pull the section up so the page starts at the wave's highest point */
  margin-top: -26px; /* match the wave's dip (same as ::after bottom) */
}

/* Keep dropdown panels above everything */
.site-nav .dropdown-content {
  position: absolute;
  z-index: 1000;
}

/* =========================================
   Layered header/banner/body relationship
========================================= */
header.site-header {
  --header-h: 160px; /* banner height */
  --wave-h: 60px; /* curve height */
  --overlap: 26px; /* dip into page center */
  position: relative;
  height: var(--header-h);
  background: transparent; /* banner now drawn separately */
  border-bottom: none;
  overflow: visible; /* allow dropdowns to escape */
  z-index: 30; /* top layer for nav content */
}

/* Header content sits above everything */
header.site-header .wrapper {
  position: relative;
  z-index: 3;
}

/* Banner gradient and wave drawn BELOW everything else */
header.site-header::before,
header.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  pointer-events: none;
}

/* Gradient banner (base background) */
header.site-header::before {
  top: 0;
  height: var(--header-h);
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  z-index: -1; /* lowest layer */
}

/* White wave with BOTTOM fade only (no side fade) */
header.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(-1 * var(--overlap, 26px)); /* keep your overlap value */
  width: 100%;
  height: var(--wave-h, 70px);
  background: #fff; /* wave color */
  border-radius: 100% 100% 0 0/40% 40% 0 0; /* wave shape */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  /* —— Bottom fade only ————————————————————— */
  /* How tall the fade is from the bottom up */
  --fade-depth: 30px; /* tweak: 12–32px looks nice */
  /* Standard mask */
  mask-image: linear-gradient(to bottom, #000 calc(100% - var(--fade-depth)), transparent 100%);
  mask-mode: alpha;
  /* Safari/WebKit mask */
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - var(--fade-depth)), transparent 100%);
  -webkit-mask-repeat: no-repeat;
  z-index: 1; /* below body (z=2), above banner (z=0/::before) */
  pointer-events: none;
}

/* Body content sits above the wave but under nav */
.page-content {
  position: relative;
  z-index: 2; /* above wave */
  margin-top: calc(-1 * var(--overlap)); /* start at wave's peak */
}

/* Keep dropdowns above everything */
.site-nav .dropdown-content {
  position: absolute;
  z-index: 9999;
}

/* =============================
   Board grid (About page)
============================= */
.board-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
  align-items: start;
  margin-top: 2rem;
}

.board-member {
  text-align: center;
}

.board-member img {
  width: 100%;
  max-width: 220px;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  margin-bottom: 1rem;
}

.board-member h3 {
  margin: 0.5rem 0 0.25rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--brand-1);
}

.board-member p {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted);
  max-width: 300px;
  margin: 0 auto;
}

/* ===== FINAL STACKING FIX (append at very bottom) =================
   L3 (top):   header content (logo/nav/dropdowns)
   L2:         page content
   L1 (back):  banner gradient + white wave
   This overrides earlier, conflicting header rules.
=================================================================== */
header.site-header {
  /* knobs */
  --header-h: 180px;
  --wave-h: 70px;
  --overlap: 26px; /* dip of the wave into the page */
  --fade-depth: 30px; /* bottom fade height on the white wave */
  position: relative;
  height: var(--header-h);
  /* header is just a container for content; visuals are on ::before/::after */
  background: transparent !important;
  border-bottom: none;
  overflow: visible !important; /* never clip menus */
  isolation: isolate; /* keep z-index local */
  z-index: 20; /* floats above the page */
}

/* L3: header content above everything visual */
header.site-header .wrapper {
  position: relative;
  z-index: 3;
}

/* L1: banner gradient (backdrop) */
header.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  z-index: 0;
  pointer-events: none;
}

/* L1: white wave (with bottom fade), sits behind body */
header.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(-1 * var(--overlap)); /* dip into page */
  width: 100%;
  height: var(--wave-h);
  background: #fff;
  border-radius: 100% 100% 0 0/40% 40% 0 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  /* bottom fade to transparent */
  mask-image: linear-gradient(to bottom, #000 calc(100% - var(--fade-depth)), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - var(--fade-depth)), transparent 100%);
  -webkit-mask-repeat: no-repeat;
  z-index: 0;
  pointer-events: none;
}

/* L2: page content above wave but below header content */
.page-content {
  position: relative;
  z-index: 2;
  margin-top: calc(-1 * var(--overlap)); /* page starts at wave apex */
}

/* Desktop dropdown panel should float above everything */
.site-nav .dropdown-content {
  position: absolute;
  z-index: 9999; /* higher than header + page */
}

/* Mobile panel & its internal dropdowns must stay above banner/wave */
@media (max-width: 600px) {
  .site-nav .trigger {
    position: relative;
    z-index: 9998 !important; /* just under the dropdowns, above wave/page */
    overflow: visible !important;
  }
  /* If you keep the mobile rule that forces position:static, lift it w/ z */
  .site-nav .dropdown .dropdown-content {
    position: relative !important; /* keeps it inside the sliding panel */
    z-index: 9999 !important;
    background: transparent;
    box-shadow: none;
  }
}
/* --- FIX: Ensure the logo is always visible above banner layers --- */
.site-logo {
  position: relative;
  z-index: 4; /* higher than ::before and ::after */
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* ===========================
   MOBILE NAV ALWAYS ABOVE LOGO
   (append at the very bottom)
=========================== */
@media (max-width: 600px) {
  /* keep everything in one local stacking context */
  header.site-header {
    isolation: isolate;
  }
  /* logo sits below the menu card */
  .site-logo {
    position: relative;
    z-index: 2 !important;
  }
  /* raise the nav and, critically, the sliding card */
  .site-nav {
    position: relative;
    z-index: 5000 !important;
  }
  .site-nav .trigger {
    position: relative !important; /* not static, so z-index works */
    z-index: 6000 !important; /* above logo and header visuals */
    overflow: visible !important; /* don’t clip dropdowns */
    background: #fff; /* your card background */
  }
  /* items inside the card */
  .site-nav .dropdown-content {
    position: relative !important; /* lives inside the card */
    z-index: 7000 !important; /* ensure its white backboard is on top */
    background: transparent; /* card already supplies white bg */
    box-shadow: none;
  }
}
/* =========================================
   Mobile header: slimmer + centered logo
   - keeps burger inside the header
   - dropdown stays above logo
   - wave/banner remain behind everything
========================================= */
@media (max-width: 600px) {
  /* Shorter banner + wave and a lighter overlap */
  header.site-header {
    --header-h: 120px; /* was 160–180px */
    --wave-h: 50px; /* slightly shallower curve */
    --overlap: 20px; /* how far the wave dips into page */
  }
  /* Center the logo block */
  .site-logo-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center !important;
    text-align: center !important;
    gap: 0.4rem;
  }
  /* Responsive logo size (no punch-through) */
  .site-logo {
    max-height: 56px; /* tune: 52–64px */
    width: auto;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    position: relative;
    z-index: 2; /* below menu card (which is z 6000 in earlier fix) */
  }
  /* Keep the header content compact and centered */
  .site-header .wrapper {
    justify-content: center;
    gap: 0.6rem;
    padding: 8px 16px 0; /* small top pad so burger doesn't hug the edge */
    position: relative; /* anchor for the burger */
    z-index: 3; /* above visuals */
  }
  /* Burger stays INSIDE the header, top-right, notch safe */
  .site-nav {
    position: absolute;
    top: max(6px, env(safe-area-inset-top));
    right: max(10px, env(safe-area-inset-right));
    z-index: 5000; /* above logo, below the card */
  }
  .site-nav .menu-icon {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 10px;
  }
  /* Slide-out card becomes an overlay below the header bar */
  .site-nav input[type=checkbox]:checked ~ .trigger {
    position: fixed !important;
    top: calc(max(6px, env(safe-area-inset-top)) + 44px); /* 40px button + a bit */
    left: 16px;
    right: 16px;
    z-index: 10000 !important; /* above logo and page */
    max-height: calc(100dvh - 60px); /* scrollable if long */
    overflow: auto;
  }
  /* Inside the overlay card, dropdown sections expand normally */
  .site-nav .dropdown .dropdown-content {
    position: relative !important;
    z-index: 10001 !important; /* its white backboard stays above logo */
    background: transparent; /* the card provides the white BG */
    box-shadow: none;
  }
}
/* =============================
   Home: 3x3 action grid (with fade + centered titles)
============================= */
.home-nav-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 24px 0 8px;
}

.nav-card {
  position: relative;
  display: block;
  height: 120px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.08s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

/* Left 1/3 image */
.nav-card__img {
  position: absolute;
  inset: 0 auto 0 0;
  width: 33.333%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Soft fade to transparent on the right */
  mask-image: linear-gradient(to right, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, #000 60%, transparent 100%);
  -webkit-mask-repeat: no-repeat;
}

/* Optional: subtle overlay fade for more contrast with text */
.nav-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 55%, rgb(255, 255, 255) 100%);
  pointer-events: none;
}

/* Title centered within the white section (right 2/3) */
.nav-card__title {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 33.333%;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--ink);
  font-weight: 800;
  font-size: clamp(1rem, 1.1vw + 0.7rem, 1.25rem);
  line-height: 1.2;
  padding: 0 10px;
}

/* Hover/active polish */
.nav-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
  border-color: rgba(15, 23, 42, 0.12);
}

.nav-card:active {
  transform: translateY(0);
}

.nav-card:hover .nav-card__title {
  color: var(--brand-1);
}

/* Mobile: single column */
@media (max-width: 700px) {
  .home-nav-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .nav-card {
    height: 110px;
    border-radius: 14px;
  }
}
/* ==========================================
   Text-hugging banner with inline polish
   ========================================== */
.bannered {
  display: inline-block; /* background only wraps the text */
  background: var(--brand-1);
  color: #fff;
  font-family: "Playfair Display", "Georgia", serif;
  font-weight: 500;
  text-align: center;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
  box-shadow: var(--shadow);
  padding: 0.5rem 1rem;
  border-radius: 0.75rem;
  margin: 2rem auto; /* centers it within normal flow */
  line-height: 1.3;
  box-sizing: border-box;
  /* keep rounded background on wrapped lines */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.3s ease;
}

.bannered:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  background: color-mix(in srgb, var(--brand-1) 85%, white 15%);
}

/* ======== Inline text elements inside banner ======== */
.bannered strong,
.bannered b {
  font-weight: 900;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  /* Highlighted underline pill */
  background: rgba(255, 255, 255, 0.18);
  padding: 0 0.25em;
  border-radius: 0.25em;
  box-shadow: inset 0 -0.18em 0 rgba(255, 255, 255, 0.35);
  letter-spacing: 0.02em;
}

.bannered em,
.bannered i {
  font-style: italic;
}

.bannered a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.6);
  transition: opacity 0.2s ease;
}

.bannered a:hover {
  opacity: 0.85;
}

/* Underline style for text inside banners */
.bannered .underlined {
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.7);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  font-style: italic;
}

.calendar-embed {
  position: relative;
  width: 100%;
  /* Aspect ratio: taller on small screens */
  padding-top: 75%;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.calendar-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

@media (max-width: 640px) {
  .calendar-embed {
    padding-top: 120%;
  }
}
/* ======================================
   Inline text color utilities
   ====================================== */
.text-blue {
  color: #039BE5;
} /* calendar 1 */
.text-red {
  color: #D81B60;
} /* calendar 2 */
.text-green {
  color: #43A047;
} /* optional calendar 3 */
.text-yellow {
  color: #FBC02D;
} /* optional calendar 4 */
.text-purple {
  color: #8E24AA;
} /* optional calendar 5 */
/* Optional: bold them slightly for visibility */
.text-blue, .text-pink, .text-green, .text-yellow, .text-purple {
  font-weight: 600;
}

.spacer-sm {
  height: 1rem;
}

.spacer-md {
  height: 2rem;
}

.spacer-lg {
  height: 4rem;
}

.form-card .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1rem;
}

.form-card label {
  display: flex;
  flex-direction: column;
  font-weight: 500;
}

.form-card input,
.form-card select,
.form-card textarea {
  margin-top: 0.25rem;
}

/* ==========================================
   Prominent submit button (Join the Coalition)
   ========================================== */
.form-card .btn-primary {
  display: inline-block;
  width: fit-content;
  margin-top: 1rem;
  padding: 0.85rem 1.75rem;
  border: none;
  border-radius: 9999px; /* pill shape */
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.03em;
  cursor: pointer;
  color: #fff;
  /* use your site colors */
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  transition: background 0.3s ease, transform 0.1s ease, box-shadow 0.3s ease;
}

.form-card .btn-primary:hover {
  background: linear-gradient(135deg, color-mix(in srgb, var(--brand-1) 85%, white 15%), color-mix(in srgb, var(--brand-2) 85%, white 15%));
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.25);
  transform: translateY(-2px);
}

.form-card .btn-primary:active {
  transform: translateY(1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.form-card .btn-primary:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--brand-3) 60%, white 40%);
  outline-offset: 2px;
}

.form-card .btn-primary {
  display: block;
  margin: 1.5rem auto 0; /* top, left/right, bottom */
}

.form-card label input:required,
.form-card label textarea:required {
  border-left: 3px solid var(--brand-2);
}

.form-card label::after {
  content: attr(data-required);
  color: var(--brand-2);
  font-weight: bold;
  margin-left: 0.25rem;
}

.form-card label[data-required="*"]::after {
  content: " *";
}

/* ==========================================
   Stylized bullet list (centered & tighter)
   ========================================== */
.fancy-list {
  list-style: none; /* remove default bullets */
  padding-left: 0;
  margin: 1.5rem 0;
}
.fancy-list li {
  position: relative;
  padding-left: 1.4rem; /* reduced space before text */
  margin-bottom: 0.6rem;
  line-height: 1.6;
  display: flex; /* centers bullet and text vertically */
  align-items: flex-start; /* can switch to center if bullets need more alignment */
}
.fancy-list li::before {
  content: "•"; /* or your custom symbol */
  color: var(--brand-2);
  font-size: 1.25em;
  line-height: 1;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin-right: 0.35rem;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
  /* 👇 tweak these to nudge vertically */
  position: relative;
  top: 0.15em; /* increase to move bullet down, decrease to move it up */
}
.fancy-list li:hover::before {
  color: var(--brand-3);
  transform: scale(1.15);
  transition: color 0.2s ease, transform 0.2s ease;
}

strong, b {
  display: inline; /* ensures it stays inline with text */
  white-space: normal;
}

.form-card.form-compact {
  max-width: 520px;
  margin: 1.5rem auto;
  padding: 1.25rem;
}

.form-card .consent {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.95rem;
}

.form-card .consent input {
  margin-top: 0.2rem;
}

/* inline asterisk next to label text (you’re already set up for this pattern) */
.label-text[data-required="*"]::after {
  content: " *";
  color: var(--brand-1);
  font-weight: 700;
  margin-left: 0.15rem;
}

.form-card .consent {
  display: flex;
  align-items: flex-start; /* keeps checkbox top-aligned with text */
  gap: 0.5rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink);
  margin-top: 1rem;
  /* Left-align with form edges */
  justify-content: flex-start;
  text-align: left;
}

.form-card .consent input[type=checkbox] {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.2rem; /* nudges checkbox down a touch for alignment */
  flex-shrink: 0; /* keeps checkbox size consistent */
  accent-color: var(--brand-1); /* optional: matches your brand color */
}

.form-card .checklist.horizontal {
  display: flex;
  flex-wrap: wrap; /* wraps neatly on mobile */
  gap: 1.25rem; /* spacing between options */
  margin-top: 0.35rem;
}

.form-card .checklist.horizontal label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap; /* keeps short options inline */
}

.form-card .checklist.horizontal input[type=checkbox] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--brand-2);
  flex-shrink: 0;
}

.form-card input[type=radio] {
  accent-color: var(--brand-1);
  width: 1.1rem;
  height: 1.1rem;
}

.muted {
  color: var(--muted);
}

.center {
  text-align: center;
}

.form-card.form-compact {
  max-width: 520px;
  margin: 1.5rem auto;
  padding: 1.25rem;
}

.label-text[data-required="*"]::after {
  content: " *";
  color: var(--brand-3);
  font-weight: 700;
  margin-left: 0.15rem;
}

.donate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  max-width: 520px;
  margin: 1rem auto;
  justify-content: center; /* centers smaller grids */
}

.donate-cta {
  display: inline-block;
  text-align: center;
  padding: 0.9rem 1rem;
  border-radius: 9999px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, var(--brand-2), var(--brand-3));
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  user-select: none;
}

.donate-cta.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
  filter: grayscale(20%);
}

.membership-table {
  width: 100%;
  max-width: 640px;
  margin: 2rem auto;
  border-collapse: collapse;
  text-align: center;
}

.membership-table th, .membership-table td {
  border-bottom: 1px solid #e5e7eb;
  padding: 0.75rem;
}

.membership-table tr:hover td {
  background: rgba(76, 161, 175, 0.05);
}

/* Centered headings */
.sponsor-h1, .sponsor-h2 {
  text-align: center;
}

.sponsor-h1 {
  margin: 1.5rem 0 0.75rem;
}

.sponsor-h2 {
  margin: 1.25rem 0 0.75rem;
}

/* Responsive, auto-fit grid */
.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin: 0 auto 2rem;
  max-width: 1000px; /* or var(--content-width, 800px) if you prefer */
}

/* Sponsor card (works for logos or text) */
.sponsor-item {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 3/2; /* consistent tiles */
  text-align: center;
  transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sponsor-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
  border-color: color-mix(in srgb, var(--brand-2) 40%, #e5e7eb 60%);
}

/* Logos scale nicely inside tile */
.sponsor-item img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  filter: saturate(1.05);
}

/* Text-only sponsors */
.sponsor-text {
  font-weight: 700;
  color: var(--ink);
  padding: 0.25rem 0.5rem;
  line-height: 1.25;
}

/* Subtle tier accents (ring color by tier) */
.sponsor-grid.gold .sponsor-item {
  border-color: rgba(227, 179, 65, 0.2);
  box-shadow: 0 6px 16px rgba(227, 179, 65, 0.15);
}

.sponsor-grid.silver .sponsor-item {
  border-color: rgba(191, 196, 202, 0.2);
  box-shadow: 0 6px 16px rgba(191, 196, 202, 0.15);
}

.sponsor-grid.bronze .sponsor-item {
  border-color: rgba(197, 137, 90, 0.2);
  box-shadow: 0 6px 16px rgba(197, 137, 90, 0.15);
}

/* Small screens: give tiles more width */
@media (max-width: 520px) {
  .sponsor-grid {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  }
}
.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 2rem;
  max-width: 1000px; /* or your content width */
  margin: 0 auto 2rem;
  justify-content: center; /* centers when there are “extra” columns */
  align-items: stretch;
}

.sponsor-item {
  width: 100%;
} /* ensure tiles fill the cell */
.btn-primary,
.btn-primary:link,
.btn-primary:visited {
  display: inline-block;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  color: #fff; /* always white text */
  font-weight: 700;
  padding: 0.75rem 1.25rem;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  transition: transform 0.15s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  transform: translateY(-2px);
  opacity: 0.95;
  color: #fff; /* stay white when hovered, active, or focused */
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

/* Title font for pages & posts */
:root {
  --title-font: "Anton", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
}

/* Cover common title classes across layouts/themes */
.page-title,
.post-title,
.entry-title,
.site-title {
  font-family: "Anton", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif !important;
  font-style: normal !important;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  font-size: 3rem; /* 👈 make the title bigger */
  line-height: 1.1; /* 👈 optional: tighten spacing vertically */
}

#impact-list article {
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

#impact-list h2 a {
  font-family: "Anton", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/*# sourceMappingURL=main.css.map */