/* engine.css - shared OnlyEngines stylesheet */
:root {
  --ink:#17202d;
  --muted:#5d6b7e;
  --blue:#0d57c8;
  --gold:#d49a36;
  --gold-soft:#ffe4a0;
  --line:#dbe4ef;
  --soft-blue:#eef4fb;
  --danger-heading:#8a1d15;
  --footer-bg:#142034;
  --card-radius:14px;
  --shadow:0 8px 20px rgba(9,18,34,.10);
  --wrap:min(1180px,92vw);
  --header-bg:linear-gradient(90deg,#fff3c7 0%,#dff1ff 25%,#cfe9ff 55%,#e8f7ff 75%,#fff7d9 100%);
  --mobile-header-bg:#cfe9ff;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 18% 0%,rgba(214,159,66,.10),transparent 30%),
    radial-gradient(circle at 92% 12%,rgba(84,118,157,.12),transparent 34%),
    linear-gradient(180deg,#eef3f8 0%,#e6edf4 45%,#dde6ef 100%);
  font-size:16px;
  line-height:1.55;
}
a {
  color:var(--blue);
  text-decoration:none;
}
a:hover {
  text-decoration:underline;
}
img {
  max-width:100%;
  height:auto;
}
.wrap {
  width:var(--wrap);
  margin:0 auto;
}
.hidden {
  display:none!important;
}
.skip {
  position:absolute;
  left:-999px;
  top:auto;
}
.skip:focus {
  left:1rem;
  top:1rem;
  z-index:99;
  padding:.7rem 1rem;
  background:#fff;
  border-radius:10px;
}

/* Header / logo / nav */
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--header-bg);
  border-bottom:1px solid rgba(184,198,216,.72);
}
.topbar {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:clamp(1.2rem,8vw,10.25rem);
  padding-top:5px;
}
.logo-wrap {
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.logo-wrap img {
  display:block;
  width:132px;
  height:auto;
}
.sublogo {
  display:inline-block;
  padding:2px 11px 3px;
  border:1px solid rgba(75,110,170,.35);
  border-radius:16px;
  background:rgba(255,255,255,.18);
  box-shadow:0 1px 3px rgba(0,0,0,.08);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:-.35px;
  line-height:1;
  white-space:nowrap;
}
.sublogo a,.sublogo a:hover {
  text-decoration:none;
  color:#123d9a;
}
.sublogo a span {
  color:#c00;
  font-weight:700;
}
.sublogo sup {
  margin-left:1px;
  margin-right:-2px;
  font-size:.6em;
}
.nav {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.54rem;
}
.nav a,.nav-toggle {
  font-size:.84rem;
  line-height:1.08;
  border-radius:999px;
}
.nav a {
  color:#26364c;
  font-weight:750;
  padding:.18rem .40rem;
}
.nav a:hover {
  background:#edf3fb;
  text-decoration:none;
}
.nav .cta {
  order:-1;
  color:#fff!important;
  background:linear-gradient(135deg,#94311c,#d0872e);
  box-shadow:0 7px 16px rgba(155,54,29,.22);
}
.nav .cta:hover {
  color:#fff!important;
  background:linear-gradient(135deg,#7e2716,#b66d21);
}
.nav-menu {
  position:relative;
  display:inline-flex;
  align-items:center;
  order:-1;
}
.nav-toggle {
  appearance:none;
  border:0;
  cursor:pointer;
  font-family:inherit;
  padding:.18rem .52rem;
  font-weight:850;
}
.nav-toggle::after {
  content:" ▾";
  font-size:.72em;
  font-weight:900;
}
.nav-dropdown {
  position:absolute;
  top:calc(100% + .42rem);
  left:0;
  z-index:35;
  width:min(315px,86vw);
  padding:.42rem;
  background:#fffdf8;
  border:1px solid rgba(176,123,38,.42);
  border-radius:14px;
  box-shadow:0 12px 26px rgba(9,18,34,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.nav-menu:hover .nav-dropdown,.nav-menu:focus-within .nav-dropdown {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.nav-dropdown a {
  display:block;
  color:#23364f;
  background:#f6f9fd;
  border:1px solid #e2ebf5;
  border-radius:10px;
  padding:.52rem .62rem;
  font-size:.8rem;
  font-weight:800;
  line-height:1.22;
  white-space:normal;
}
.nav-dropdown a+a {
  margin-top:.36rem;
}
.nav-dropdown a:hover {
  background:#fff4d8;
  border-color:rgba(176,123,38,.55);
  text-decoration:none;
}
@media (min-width:1001px) {
  .logo-wrap {
    flex-direction:column;
    align-items:flex-start;
  }
  .sublogo {
    margin-top:-2px;
    margin-bottom:6px;
  }
}

/* Hero */
.hero {
  position:relative;
  overflow:hidden;
  color:#fff;
  background:radial-gradient(circle at 18% 0,rgba(212,154,54,.26),transparent 26%),radial-gradient(circle at 80% 0,rgba(32,89,150,.28),transparent 28%),linear-gradient(135deg,#172337 0%,#233d5b 58%,#5c482b 100%);
}
.hero::after {
  content:"§";
  position:absolute;
  top:-.8rem;
  right:4vw;
  font-family:Georgia,serif;
  font-size:7.2rem;
  line-height:1;
  opacity:.045;
}
.hero-inner {
  position:relative;
  z-index:1;
  display:block;
  padding:1rem 0 1.2rem;
}
.tagline {
  display:block;
  margin:0 0 .55rem;
  color:var(--gold-soft);
  font-size:clamp(.88rem,1.7vw,1.12rem);
  font-weight:900;
  line-height:1.55;
  letter-spacing:.005em;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.hero h1 {
  margin:0 0 .5rem;
  font-size:clamp(1.42rem,3vw,2.28rem);
  line-height:1.16;
  letter-spacing:-.035em;
}
.hero p:not(.tagline) {
  max-width:1040px;
  margin:0 0 .62rem;
  color:#edf3fb;
  font-size:.94rem;
  line-height:1.62;
}
.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.44rem;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.42rem .68rem;
  border:1px solid transparent;
  border-radius:999px;
  font-size:.82rem;
  font-weight:850;
}
.button:hover {
  transform:translateY(-1px);
  text-decoration:none;
}
.button.primary {
  background:#fff;
  color:#182538;
}

/* Search / jumps */
.search-dock {
  position:sticky;
  top:var(--sticky-header-offset,0px);
  z-index:19;
  padding:.42rem 0 .52rem;
  background:linear-gradient(180deg,rgba(250,244,225,.96) 0%,rgba(238,243,248,.92) 100%);
  border-top:1px solid rgba(255,255,255,.78);
  border-bottom:1px solid rgba(184,198,216,.82);
  box-shadow:0 6px 16px rgba(20,31,50,.07);
}
.quick-jump {
  display:flex;
  align-items:center;
  gap:.45rem;
  overflow:auto;
  margin:0 0 .42rem;
  padding:.18rem .08rem .42rem;
  border-bottom:1px solid rgba(214,177,90,.52);
  scrollbar-width:thin;
}
.quick-jump strong {
  flex:0 0 auto;
  color:#45546a;
  font-size:.78rem;
  white-space:nowrap;
}
.quick-jump a {
  flex:0 0 auto;
  color:#23364f;
  background:var(--soft-blue);
  border:1px solid #dce7f5;
  border-radius:999px;
  padding:.25rem .47rem;
  font-size:.76rem;
  font-weight:750;
  white-space:nowrap;
}
.quick-jump a:hover {
  background:#e3edf9;
  text-decoration:none;
}
.tools {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:1rem;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.searchbox {
  display:flex;
  align-items:center;
  gap:.7rem;
  border-radius:14px;
  padding:.46rem .65rem;
  background:rgba(255,255,255,.96);
  border:2px solid #2d7dff;
  box-shadow:0 0 0 3px rgba(45,125,255,.22),var(--shadow);
}
.searchbox input {
  width:100%;
  background:transparent;
  border:0;
  outline:0;
  font:inherit;
  font-size:.88rem;
}
.no-results {
  grid-column:1/-1;
  padding:.8rem;
  color:var(--muted);
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  font-size:.9rem;
}

/* Main sections */
.main {
  padding:.75rem 0 1.7rem;
}
.section-heading {
  margin:0 0 .48rem;
}
.section-heading span {
  display:inline-block;
  color:#8b631d;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.section-heading h2 {
  margin:.18rem 0 0;
  color:#23364f;
  font-size:clamp(1.18rem,2.2vw,1.55rem);
  line-height:1.1;
  letter-spacing:-.045em;
}
.resource-section,.news-section {
  scroll-margin-top:calc(var(--sticky-header-offset,0px) + var(--sticky-dock-offset,118px) + 16px);
}
.resource-section {
  margin-bottom:1.45rem;
}
.resource-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.72rem;
}
.resource-card {
  padding:.78rem;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(216,226,238,.95);
  border-radius:var(--card-radius);
  box-shadow:var(--shadow);
}
.resource-card h3 {
  margin:0 0 .48rem;
  color:var(--danger-heading);
  font-size:.91rem;
  line-height:1.15;
  letter-spacing:-.02em;
}
.resource-card ul {
  margin:0;
  padding:0;
  list-style:none;
}
.resource-card li {
  break-inside:avoid;
  margin:.22rem 0;
}
.resource-card li a {
  display:flex;
  align-items:flex-start;
  gap:.42rem;
  padding:.13rem .05rem;
  color:#153f84;
  border-radius:8px;
  font-size:.84rem;
  font-weight:650;
  line-height:1.23;
}
.resource-card li a::before {
  content:"•";
  color:var(--gold);
  font-weight:900;
}
.resource-card li a:hover {
  color:#0d4fb9;
  background:#f1f6fd;
  text-decoration:none;
}
.resource-card li.featured-link a {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  width:auto;
  max-width:fit-content;
  padding:.13rem .45rem .13rem .05rem;
  background:linear-gradient(90deg,#fff8df,#fff);
  border:1px solid rgba(212,154,54,.75);
  box-shadow:inset 3px 0 0 #d0872e;
  border-radius:999px;
}
.resource-card li.featured-link a::after {
  content:"FEATURED";
  margin-left:5px;
  padding:.08rem .32rem;
  color:#fff;
  background:#9b2f18;
  border-radius:999px;
  font-size:.52rem;
  font-weight:900;
  line-height:1;
  letter-spacing:.03em;
}

/* News */
.news-section {
  max-width:940px;
  margin:0 auto;
}
.news-grid {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.62rem;
  max-width:940px;
  margin:0 auto 1.15rem;
}
.news-card {
  flex:1 1 360px;
  max-width:455px;
  min-height:168px;
  padding:.72rem;
  overflow:hidden;
  color:#f5f8fb;
  background:linear-gradient(155deg,#162f39 0%,#244653 58%,#5d4023 100%);
  border:1px solid rgba(255,216,140,.32);
  border-radius:14px;
  box-shadow:0 10px 22px rgba(8,17,28,.16);
}
.news-card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}
.news-card-top span {
  display:inline-block;
  padding:.16rem .38rem;
  color:#452800;
  background:#ffd77f;
  border-radius:999px;
  font-size:.61rem;
  font-weight:900;
  text-transform:uppercase;
}
.news-card-top strong {
  color:#cde2ea;
  font-size:.66rem;
  text-align:right;
}
.news-card h3 {
  margin:.32rem 0 .24rem;
  color:#fff8df;
  font-size:.82rem;
  font-weight:850;
  line-height:1.16;
}
.feed-list {
  height:126px;
  overflow:auto;
  padding-right:.25rem;
  scrollbar-width:thin;
  scrollbar-color:#ffd77f rgba(255,255,255,.12);
}
.feed-list a {
  display:block;
  margin:.48rem 0 .12rem;
  color:#f7fbff;
  font-size:.78rem;
  font-weight:780;
  line-height:1.2;
}
.feed-list a:hover {
  color:#ffe09a;
  text-decoration:none;
}
.feed-list time,.loading {
  color:#c1d3dc;
  font-size:.62rem;
}

/* State directory */
.state-directory-card {
  grid-column:1/-1;
}
.card-note {
  margin:-.15rem 0 .65rem;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}
.state-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.35rem .85rem;
}
.state-list li {
  display:grid;
  grid-template-columns:8.6rem 1fr;
  align-items:start;
  gap:.5rem;
  margin:0;
  padding:.32rem .45rem;
  background:#f6f9fd;
  border:1px solid #e2ebf5;
  border-radius:9px;
}
.state-list li strong {
  color:#26364c;
  font-size:.78rem;
  line-height:1.2;
}
.state-list li span {
  display:flex;
  flex-wrap:wrap;
  gap:.25rem .42rem;
}
.state-list li a {
  display:inline-flex;
  gap:0;
  padding:0;
  color:#153f84;
  font-size:.76rem;
  line-height:1.2;
  font-weight:720;
}
.state-list li a::before {
  content:none;
}
.state-list li a:hover {
  background:transparent;
  text-decoration:underline;
}

/* Favorites */
.favorites-section {
  position:sticky;
  top:calc(var(--sticky-header-offset,0px) + var(--sticky-dock-offset,118px));
  z-index:18;
  padding:.55rem 0 .35rem;
  background:linear-gradient(180deg,#fff8e6 0%,#eef4fb 100%);
  border-bottom:1px solid #dbe4ef;
}
.favorites-section h2 {
  margin:0 0 .25rem;
  color:#23364f;
  font-size:1rem;
}
#favoritesList {
  margin:0;
  padding:.65rem;
  list-style:none;
  background:#fff;
  border:2px solid #20c94b;
  border-radius:14px;
  box-shadow:0 0 0 3px rgba(32,201,75,.22),var(--shadow);
}
#favoritesList li {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.30rem 0;
}
#favoritesList.favorites-collapsed {
  display:none;
}
.favorite-add {
  margin:0 .10rem;
  width:16px;
  height:16px;
  border:1px solid #d6b15a;
  border-radius:50%;
  background:#fff8df;
  color:#8a1d15;
  font-size:.62rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  padding:0;
}
.favorite-add:hover {
  background:#ffeab3;
}
.favorite-remove {
  border:0;
  border-radius:50%;
  width:20px;
  height:20px;
  background:#f1f6fd;
  color:#8a1d15;
  font-weight:900;
  cursor:pointer;
}
.favorites-help-strip {
  max-width:720px;
  margin:.35rem auto 1.15rem;
  padding:.55rem .8rem;
  color:#23364f;
  background:linear-gradient(180deg,#fff8df 0%,#fff 100%);
  border:1px solid rgba(212,154,54,.75);
  border-radius:999px;
  box-shadow:0 6px 14px rgba(9,18,34,.07);
  text-align:center;
  font-size:.84rem;
  font-weight:750;
}
.favorites-toggle {
  width:100%;
  margin:0 0 .25rem;
  padding:0;
  border:0;
  background:transparent;
  color:#23364f;
  font:inherit;
  font-size:1rem;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}

/* Engine family footer */
.engine-family-section {
  max-width:800px;
  margin:3.5rem auto 3.25rem;
  padding:.25rem .5rem .5rem;
  background:var(--header-bg);
  border-top:1px solid #d6b15a;
  border-bottom:1px solid #b9cce2;
  text-align:center;
  border-radius:10px;
}
.engine-family-inner {
  max-width:980px;
  margin:0 auto;
  padding:0 50px;
  box-sizing:border-box;
}
.engine-family-title {
  margin:0 0 1.2rem;
  color:#23364f;
  font-size:.85rem;
  font-weight:750;
}
.engine-family-title strong {
  color:#b47b26;
  letter-spacing:.04em;
}
.engine-family-title a {
  color:#0b6f8a;
  font-weight:950;
  text-decoration:none;
}
.engine-family-title a:hover {
  text-decoration:underline;
}
.onlyengines-icon {
  width:18px;
  height:18px;
  vertical-align:-.18em;
}
.engine-family-links {
  display:grid;
  grid-template-columns:repeat(4,max-content);
  justify-content:center;
  gap:.7rem 1rem;
}
.engine-family-links a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.34rem;
  color:#153f84;
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(232,202,137,.42));
  border:1px solid rgba(176,123,38,.55);
  border-radius:999px;
  padding:.42rem 10px;
  font-size:.74rem;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(20,33,52,.08);
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.engine-family-links a:hover {
  background:linear-gradient(135deg,#fffdf7,#e8c989);
  border-color:rgba(176,123,38,.8);
  transform:translateY(-2px);
  text-decoration:none;
}
.engine-icon {
  width:13px;
  height:13px;
  object-fit:contain;
  flex:0 0 auto;
  opacity:.82;
  transform:translateY(-1px);
  transition:transform .18s ease,opacity .18s ease;
}
.engine-family-links a:hover .engine-icon {
  opacity:1;
  transform:translateY(-1px) scale(1.08);
}

/* Footer / utility */
.footer {
  padding:1rem 0;
  color:#d9e2ef;
  background:var(--footer-bg);
  text-align:center;
  font-size:.72rem;
  line-height:1.45;
}
.footer p {
  max-width:850px;
  margin:.35rem auto;
}
.footer a {
  color:#fff;
  text-decoration:underline;
}

/* Keep Engine Family colors when that block sits inside the footer */
.footer .engine-family-title a {
  color:#0b6f8a;
  text-decoration:none;
}
.footer .engine-family-title a:hover {
  text-decoration:underline;
}
.footer .engine-family-links a {
  color:#153f84;
  text-decoration:none;
}
.footer .engine-family-links a:hover {
  color:#153f84;
  text-decoration:none;
}
.back-top {
  position:fixed;
  right:1rem;
  bottom:1rem;
  padding:.48rem .62rem;
  color:#fff;
  background:#172a45;
  border-radius:999px;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  font-size:.88rem;
}

/* Bottom promo */
.engine-bottom-promo {
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:40;
  display:block;
  padding:.24rem 1rem .66rem;
  background:linear-gradient(180deg,#137173,#0b5e60,#084849);
  border-top:1px solid rgba(255,215,120,.45);
  box-shadow:0 -5px 20px rgba(0,0,0,.35);
  color:#fff4c8;
  font-weight:700;
  letter-spacing:.03em;
  text-shadow:0 1px 0 rgba(0,0,0,.75),0 2px 5px rgba(0,0,0,.45);
  text-align:center;
  font-size:clamp(.82rem,1.55vw,.95rem);
  text-decoration:none;
  transform:translateY(120%);
  opacity:0;
  visibility:hidden;
  transition:transform .28s ease,opacity .28s ease,visibility .28s ease;
}
.engine-bottom-promo strong,.engine-bottom-promo .promo-number {
  color:#ffd34d;
  font-weight:900;
}
.engine-bottom-promo .promo-number {
  font-size:1.08em;
  font-weight:950;
}
.engine-bottom-promo sup {
  font-size:.52em;
  line-height:0;
  vertical-align:super;
  margin-left:.06em;
}
.promo-engine-icon {
  width:16px;
  height:16px;
  vertical-align:-3px;
  margin:0 6px 0 3px;
}
.promo-arrow {
  display:inline-block;
  margin:0 1rem;
  color:#fff4c8;
  font-size:1.35em;
  position:relative;
  top:2px;
}
.engine-bottom-promo.is-visible {
  transform:translateY(0);
  opacity:1;
  visibility:visible;
}
body.has-engine-bottom-promo {
  padding-bottom:2.7rem;
}
body.has-engine-bottom-promo .back-top {
  bottom:3.7rem;
}
.engine-bottom-promo:hover,.engine-bottom-promo:focus,.engine-bottom-promo:focus-visible {
  text-decoration:underline;
  text-decoration-color:#ffd34d;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
@media (max-width:1000px) {
  .resource-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .logo-wrap {
    flex-direction:row;
    gap:.45rem;
  }
  .sublogo {
    font-size:.66rem;
    padding:2px 8px;
    margin:0;
  }
}
@media (max-width:760px) {
  .site-header {
    background:var(--mobile-header-bg);
  }
  .topbar {
    align-items:center;
    flex-direction:column;
    min-height:auto;
    padding:5px 0 0;
    gap:0;
    box-shadow:inset 0 -1px 0 rgba(20,33,52,.10);
  }
  .logo-wrap img {
    width:108px;
    padding-bottom:2px;
    border-bottom:1px solid #dbe4ef;
  }
  .nav {
    position:relative;
    justify-content:center;
    width:100%;
    margin-top:0;
    padding:0 .34rem .08rem;
    background:#f3f7fc;
    border-top:1px solid #fff;
    border-bottom:1px solid #d9e4f0;
    border-radius:12px;
    box-shadow:-3px -3px 3px #aaa,3px -3px 3px #aaa;
  }
  .nav a,.nav-toggle {
    padding:.29rem .42rem;
    font-size:.78rem;
    background:rgba(255,255,255,.72);
    border:1px solid #e0e9f4;
  }
  .nav-menu {
    width:auto;
    position:static;
  }
  .nav-dropdown {
    left:.34rem;
    right:.34rem;
    width:auto;
    max-width:none;
    transform:translateY(-4px);
  }
  .nav-menu:hover .nav-dropdown,.nav-menu:focus-within .nav-dropdown {
    transform:translateY(0);
  }
  .nav .cta {
    border-color:rgba(148,49,28,.22);
  }
  .hero {
    border-top:1px solid rgba(255,255,255,.18);
    border-bottom:3px solid rgba(212,154,54,.55);
  }
  .hero-inner {
    padding:.88rem 0 .82rem;
  }
  .hero p:not(.tagline) {
    font-size:.86rem;
  }
  .quick-jump {
    margin:0 0 .48rem;
    padding:.36rem 0 .48rem;
    border-top:1px solid rgba(255,255,255,.72);
    border-bottom:1px solid rgba(124,91,29,.26);
  }
  .search-dock {
    background:linear-gradient(180deg,#fff3c7 0%,#eef4fb 100%);
    border-top:2px solid rgba(139,99,29,.22);
    border-bottom:2px solid rgba(35,54,79,.16);
  }
  .tools,.resource-grid {
    grid-template-columns:1fr;
  }
  .news-section {
    max-width:100%;
  }
  .news-grid {
    gap:.46rem;
  }
  .news-card {
    min-height:132px;
    padding:.48rem;
    border-radius:12px;
  }
  .news-card-top {
    align-items:flex-start;
  }
  .news-card-top span {
    padding:.12rem .3rem;
    font-size:.54rem;
  }
  .news-card-top strong {
    font-size:.56rem;
    line-height:1.1;
  }
  .news-card h3 {
    margin:.28rem 0 .18rem;
    font-size:.72rem;
    line-height:1.12;
  }
  .feed-list {
    height:96px;
    max-height:96px;
  }
  .feed-list a {
    margin:.38rem 0 .08rem;
    font-size:.68rem;
    line-height:1.16;
  }
  .feed-list time {
    font-size:.56rem;
  }
  .state-list {
    grid-template-columns:1fr;
  }
  .state-list li {
    grid-template-columns:7.4rem 1fr;
    gap:.42rem;
  }
  .resource-card li.featured-link a::after {
    font-size:.48rem;
    padding:.07rem .25rem .08rem;
  }
  .favorites-section {
    top:calc(var(--sticky-header-offset,0px) + var(--sticky-dock-offset,145px));
  }
  .engine-family-section {
    margin:2.5rem auto;
    padding:0 15px 10px;
    max-width:85%;
  }
  .engine-family-links {
    grid-template-columns:repeat(2,max-content);
  }
  .footer {
    font-size:.62rem;
  }
  .engine-bottom-promo {
    padding:.40rem .01rem .72rem;
    font-size:.76rem;
    letter-spacing:.01em;
    line-height:1.3;
  }
  .promo-engine-icon {
    display:none;
  }
  .promo-arrow {
    margin:0 .55rem;
  }
  body.has-engine-bottom-promo {
    padding-bottom:2.55rem;
  }
}
@media (max-width:480px) {
  .topbar {
    padding-top:0;
    padding-bottom:0;
  }
  .logo-wrap img {
    width:100px;
    height:auto;
    object-fit:contain;
    padding:0;
    border-bottom:0;
  }
  .nav {
    padding-top:.08rem;
    padding-bottom:0;
    gap:.38rem;
  }
  .nav a,.nav-toggle {
    padding:.23rem .38rem;
    font-size:.74rem;
  }
}
@media (max-width:430px) {
  .promo-intro {
    display:none;
  }
  .engine-bottom-promo {
    font-size:.74rem;
  }
  .promo-arrow {
    margin:0 .42rem;
  }
}