@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap");

/* ============================================================
   WordFindLab — Shared Stylesheet
   Clean light theme, minimal, tool-focused
============================================================ */

/* ---------- Tokens ---------- */
:root {
  --bg:        #f4f6f9;
  --surface:   #ffffff;
  --border:    #e2e6ed;
  --ink:       #1a1d2e;
  --ink-2:     #4a5068;
  --muted:     #8891a8;
  --accent:    #2563eb;
  --accent-h:  #1d4ed8;
  --accent-2:  #059669;
  --warn:      #d97706;
  --danger:    #dc2626;
  --good:      #059669;
  --nav-bg:    #1a1d2e;
  --nav-ink:   #c8cde0;
  --nav-active:#ffffff;
  --radius:    10px;
  --radius-sm: 6px;
  --shadow:    0 1px 3px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.06);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.06);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }

/* ---------- Nav ---------- */
.site-nav {
  background: var(--nav-bg);
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}
.nav-inner::-webkit-scrollbar { display: none; }

.nav-logo {
  font-weight: 800;
  font-size: 16px;
  color: #fff;
  white-space: nowrap;
  padding: 15px 16px 15px 0;
  margin-right: 8px;
  text-decoration: none;
  letter-spacing: -.3px;
  border-right: 1px solid rgba(255,255,255,.12);
}
.nav-logo:hover { color: #fff; text-decoration: none; }

.nav-links { display: flex; }
.nav-links a {
  color: var(--nav-ink);
  font-size: 13.5px;
  font-weight: 500;
  padding: 15px 13px;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  text-decoration: none;
  transition: color .15s, border-color .15s;
}
.nav-links a:hover { color: #fff; text-decoration: none; }
.nav-links a.active { color: #fff; border-bottom-color: var(--accent); }

/* ---------- Page shell ---------- */
.page-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 20px 40px;
  display: grid;
  grid-template-columns: 1fr 300px;
  grid-template-rows: auto;
  gap: 24px;
  align-items: start;
}
.page-main { min-width: 0; }
.page-sidebar { min-width: 0; }

/* ---------- Page header ---------- */
.page-header {
  margin-bottom: 16px;
}
.page-header h1 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  margin: 0 0 6px;
  color: var(--ink);
  letter-spacing: -.5px;
}
.page-header p {
  margin: 0;
  color: var(--ink-2);
  font-size: 14.5px;
}

/* ---------- Card ---------- */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: var(--shadow);
  margin-bottom: 16px;
}
.card:last-child { margin-bottom: 0; }

/* ---------- Forms ---------- */
label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-2);
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

input[type="text"],
input[type="number"],
select {
  width: 100%;
  background: var(--surface);
  border: 1.5px solid var(--border);
  color: var(--ink);
  padding: 11px 14px;
  border-radius: var(--radius-sm);
  font-size: 15px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
input[type="text"]:focus,
input[type="number"]:focus,
select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
select option { background: var(--surface); }

.input-letters {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-align: center;
  padding: 14px 16px;
  background: #f8faff;
  border-color: #c7d2fe;
}
.input-letters:focus {
  background: var(--surface);
  border-color: var(--accent);
}

.row { display: flex; flex-wrap: wrap; gap: 10px; }
.col { flex: 1 1 140px; }

/* ---------- Advanced filters ---------- */
details.advanced {
  margin-top: 12px;
  border-top: 1px solid var(--border);
  padding-top: 2px;
}
details.advanced summary {
  cursor: pointer;
  color: var(--accent);
  padding: 8px 0;
  font-size: 13px;
  font-weight: 600;
  list-style: none;
  user-select: none;
}
details.advanced summary::-webkit-details-marker { display: none; }
details.advanced summary::before { content: "▸ "; font-size: 10px; }
details.advanced[open] summary::before { content: "▾ "; }

/* ---------- Buttons ---------- */
.btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  padding: 12px 28px;
  border-radius: var(--radius-sm);
  transition: background .15s, transform .05s;
  letter-spacing: .01em;
}
.btn:hover  { background: var(--accent-h); }
.btn:active { transform: translateY(1px); }

.btn.ghost {
  background: transparent;
  border: 1.5px solid var(--border);
  color: var(--ink-2);
}
.btn.ghost:hover { border-color: var(--accent); color: var(--accent); }

.btn.green {
  background: var(--accent-2);
}
.btn.green:hover { background: #047857; }

.actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
  align-items: center;
}
.hint { font-size: 12.5px; color: var(--muted); }

/* ---------- Status ---------- */
.status {
  margin-top: 8px;
  font-size: 13px;
  color: var(--muted);
  min-height: 18px;
}
.status.good  { color: var(--good); }
.status.warn  { color: var(--warn); }
.status.error { color: var(--danger); }

/* ---------- Results header ---------- */
.results-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.results-head h2 { margin: 0; font-size: 17px; font-weight: 700; }
.meta { color: var(--muted); font-size: 13px; }

/* ---------- Word groups ---------- */
.group { margin-bottom: 20px; }
.group:last-child { margin-bottom: 0; }
.group h3 {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.group h3::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.words { display: flex; flex-wrap: wrap; gap: 6px; }

.word {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--bg);
  border: 1.5px solid var(--border);
  padding: 7px 12px;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  color: var(--ink);
  transition: border-color .12s, background .12s, transform .1s;
  user-select: none;
}
.word:hover {
  border-color: var(--accent);
  background: #eff6ff;
  color: var(--accent);
  transform: translateY(-1px);
}
.word .pts {
  font-size: 10px;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0;
  background: var(--border);
  padding: 1px 5px;
  border-radius: 4px;
}
.word .pts-high { background: #fef3c7; color: var(--warn); }

.empty {
  padding: 32px 20px;
  text-align: center;
  color: var(--muted);
  font-size: 14px;
}

/* ---------- Dictionary widgets ---------- */
.meaningful-toggle {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #f8faff;
  color: var(--ink-2);
  font-size: 13px;
}
.meaningful-toggle input {
  width: auto;
  flex: 0 0 auto;
  margin-top: 2px;
  accent-color: var(--accent);
}
.meaningful-toggle strong {
  display: block;
  color: var(--ink);
  font-size: 13px;
  margin-bottom: 2px;
}
.meaningful-toggle .toggle-copy {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.wotd-widget {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wotd-widget .wotd-label {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.wotd-widget .wotd-date {
  font-size: 12px;
  color: var(--muted);
}
.wotd-widget .wotd-word {
  margin: 0;
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.05;
  color: var(--ink);
  font-weight: 800;
  letter-spacing: -.03em;
}
.wotd-widget .wotd-phonetic {
  margin: 0;
  color: var(--accent);
  font-weight: 600;
  font-size: 13px;
}
.wotd-widget .wotd-pos {
  display: inline-flex;
  align-self: flex-start;
  padding: 3px 10px;
  border-radius: 999px;
  background: #eff6ff;
  color: var(--accent);
  border: 1px solid #c7d2fe;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.wotd-widget .wotd-definition,
.wotd-widget .wotd-example {
  margin: 0;
  color: var(--ink-2);
  font-size: 13.5px;
  line-height: 1.6;
}
.wotd-widget .wotd-example {
  font-style: italic;
}
.wotd-widget .wotd-synonyms {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.wotd-widget .wotd-state {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.homepage-wotd {
  max-width: none;
}
.wotd-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 600;
}
.wotd-widget--compact .wotd-word {
  font-size: 22px;
}
.wotd-widget--compact .wotd-definition,
.wotd-widget--compact .wotd-example {
  font-size: 13px;
}

.homepage-wotd--featured {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border-radius: 28px;
  border: 1px solid rgba(148,163,184,.18);
  background:
    radial-gradient(circle at 8% 0%, rgba(59,130,246,.12), transparent 24%),
    radial-gradient(circle at 92% 8%, rgba(34,197,94,.10), transparent 20%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 54%, #eef4ff 100%);
  box-shadow: 0 18px 44px rgba(15,23,42,.07);
}
.homepage-wotd--featured::before {
  content: "";
  position: absolute;
  inset: auto auto -80px -80px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(37,99,235,.14) 0%, rgba(37,99,235,0) 72%);
  pointer-events: none;
}
.homepage-wotd--featured::after {
  content: "";
  position: absolute;
  inset: 18px 18px auto auto;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(251,191,36,.12) 0%, rgba(251,191,36,0) 68%);
  pointer-events: none;
}
.wotd-featured-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 18px;
  align-items: stretch;
  padding: 22px;
}
.wotd-featured-main {
  min-width: 0;
}
.wotd-featured-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 12px 0 14px;
}
.wotd-featured-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.wotd-featured-aside {
  display: flex;
  min-width: 0;
}
.wotd-featured-panel {
  width: 100%;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(191,219,254,.95);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 14px 30px rgba(37,99,235,.08);
}
.wotd-featured-panel-title {
  color: #0f172a;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.03em;
}
.wotd-featured-copy {
  margin: 8px 0 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.6;
}
.wotd-featured-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.wotd-featured-list li {
  position: relative;
  padding-left: 26px;
  color: #334155;
  font-size: 14px;
  line-height: 1.5;
}
.wotd-featured-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #22c55e, #4ade80);
  box-shadow: 0 0 0 3px rgba(34,197,94,.14);
}
.wotd-featured-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.wotd-featured-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 8px 16px rgba(37,99,235,.08);
}
.wotd-featured-links a:hover {
  background: #dbeafe;
  text-decoration: none;
}

.definition-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.definition-panel[hidden] {
  display: none !important;
}
.definition-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.definition-label {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.definition-word {
  margin: 0;
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.05;
  color: var(--ink);
  letter-spacing: -.03em;
}
.definition-phonetic {
  margin: 6px 0 0;
  color: var(--accent);
  font-weight: 600;
}
.definition-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.definition-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.definition-pos {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  background: #eff6ff;
  color: var(--accent);
  border: 1px solid #c7d2fe;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.definition-source {
  font-size: 12px;
  color: var(--muted);
}
.definition-primary,
.definition-example,
.definition-note {
  margin: 0;
  color: var(--ink-2);
  line-height: 1.7;
}
.definition-example {
  font-style: italic;
}
.definition-sections {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.definition-section {
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.definition-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 8px;
}
.definition-list {
  margin: 0;
  padding-left: 18px;
  color: var(--ink-2);
}
.definition-list li + li {
  margin-top: 6px;
}
.definition-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.definition-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #f8faff;
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 600;
}
.definition-note {
  color: var(--muted);
  font-size: 12.5px;
}

/* ---------- Loader ---------- */
.loader {
  display: inline-block;
  width: 13px; height: 13px;
  border: 2px solid var(--border);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin .8s linear infinite;
  vertical-align: middle;
  margin-right: 5px;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Sidebar ---------- */
.ad-slot {
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
  margin-bottom: 16px;
}
.ad-slot-banner  { height: 90px; }
.ad-slot-rect    { height: 250px; }
.ad-slot-wide    { min-height: 60px; }
.ad-slot-sidebar { min-height: 160px; height: auto; }

/* ---------- Adsterra slots ---------- */
.adsterra-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.adsterra-shell {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}
.AdsterraDesktopBanner,
.AdsterraMobileBanner,
.AdsterraSidebarBanner,
.AdsterraSkyBanner,
.AdsterraBoxAd,
.AdsterraNativeBanner {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  margin: 0 auto;
}
.AdsterraDesktopBanner {
  max-width: 728px;
  min-height: 90px;
}
.AdsterraMobileBanner {
  max-width: 320px;
  min-height: 50px;
}
.AdsterraSidebarBanner {
  max-width: 300px;
  min-height: 160px;
}
.AdsterraSkyBanner {
  max-width: 160px;
  min-height: 600px;
}
.AdsterraBoxAd {
  max-width: 300px;
  min-height: 250px;
}
.AdsterraNativeBanner {
  max-width: 100%;
  min-height: 90px;
}
.AdsterraMobileStickyBanner {
  max-width: 320px;
  min-height: 50px;
}
@media (max-width: 767px) {
  .AdsterraDesktopBanner { display: none !important; }
}
@media (min-width: 768px) {
  .AdsterraMobileBanner { display: none !important; }
}
@media (max-width: 767px) {
  .ad-slot-wide,
  .ad-slot-sidebar {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .ad-mobile-bottom { display: none !important; }
}
@media (max-width: 767px) {
  .ad-slot-mobile-bottom,
  .AdsterraMobileStickyBanner {
    display: flex !important;
  }
  .ad-mobile-bottom {
    display: flex;
    align-items: center;
    position: sticky;
    bottom: 8px;
    z-index: 120;
    margin: 16px auto 28px;
  }
  .ad-mobile-bottom .ad-label {
    align-self: center;
  }
}

/* ---------- Tool links widget ---------- */
.tools-widget .tools-widget-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  margin: 0 0 10px;
}
.tools-widget-links {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tools-widget-links a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  color: var(--ink-2);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none;
  transition: background .12s, color .12s;
}
.tools-widget-links a:hover { background: #eff6ff; color: var(--accent); text-decoration: none; }
.tools-widget-links a.active { background: #eff6ff; color: var(--accent); font-weight: 700; }
.tools-widget-links a .ico { font-size: 16px; width: 22px; text-align: center; }

/* ---------- Mini running announcement bar ---------- */
.mini-announce-bar {
  display: block;
  width: 100%;
  height: 32px;
  line-height: 32px;
  overflow: hidden;
  white-space: nowrap;
  text-decoration: none;
  background: linear-gradient(90deg, #fff7ed, #ffedd5, #fef3c7);
  border-bottom: 1px solid rgba(251, 146, 60, 0.28);
  box-shadow: 0 1px 8px rgba(251, 146, 60, 0.08);
  position: relative;
  z-index: 20;
}

.mini-announce-track {
  display: flex;
  width: max-content;
  animation: miniTickerMove 24s linear infinite;
}

.mini-announce-track span {
  display: inline-block;
  padding-right: 64px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1px;
  color: #7c2d12;
}

.mini-announce-bar:hover .mini-announce-track {
  animation-play-state: paused;
}

@keyframes miniTickerMove {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 640px) {
  .mini-announce-bar {
    height: 28px;
    line-height: 28px;
  }

  .mini-announce-track span {
    font-size: 12px;
    padding-right: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mini-announce-track {
    animation: none;
  }
}

/* ---------- SEO content ---------- */
.seo-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: var(--shadow);
  margin-bottom: 16px;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.75;
}
.seo-section h2 {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
}
.seo-section h2:not(:first-child) { margin-top: 20px; }
.seo-section p { margin: 0 0 10px; }
.seo-section ul { padding-left: 18px; margin: 0 0 10px; }
.seo-section li { margin-bottom: 4px; }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--nav-bg);
  color: #8891a8;
  font-size: 13px;
  padding: 32px 20px;
  margin-top: 40px;
}
.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-bottom: 16px;
}
.footer-links a { color: #8891a8; }
.footer-links a:hover { color: #fff; }
.footer-copy { color: #555d7a; font-size: 12px; }

/* ---------- Wordle grid ---------- */
.clue-grid { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.clue-row { display: flex; gap: 8px; align-items: flex-start; }
.clue-row-label {
  font-size: 11px; color: var(--muted); width: 52px;
  flex-shrink: 0; padding-top: 14px; text-align: right; font-weight: 600;
  text-transform: uppercase; letter-spacing: .05em;
}
.clue-cells { display: flex; gap: 8px; }
.clue-cell-wrap { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.clue-input {
  width: 50px; height: 50px;
  background: var(--bg);
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 22px; font-weight: 800;
  text-align: center; text-transform: uppercase;
  color: var(--ink); outline: none;
  transition: border-color .12s, background .12s;
}
.clue-input:focus { border-color: var(--accent); background: var(--surface); }
.clue-input.green  { border-color: #16a34a; background: #dcfce7; color: #15803d; }
.clue-input.yellow { border-color: #d97706; background: #fef3c7; color: #b45309; }
.clue-input.gray   { border-color: #9ca3af; background: #f3f4f6; color: #6b7280; }
.state-bar { display: flex; gap: 3px; }
.state-dot {
  width: 14px; height: 14px; border-radius: 3px; cursor: pointer;
  border: 1px solid var(--border); transition: transform .1s;
}
.state-dot:hover { transform: scale(1.2); }
.state-dot.green-dot  { background: #16a34a; border-color: #16a34a; }
.state-dot.yellow-dot { background: #d97706; border-color: #d97706; }
.state-dot.gray-dot   { background: #9ca3af; border-color: #9ca3af; }
.state-dot.active-dot { outline: 2px solid var(--ink); outline-offset: 1px; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .page-wrap {
    grid-template-columns: 1fr;
  }
  .page-sidebar {
    display: none; /* hide sidebar on mobile — show inline ad slots instead */
  }
}
@media (max-width: 600px) {
  .page-wrap { padding: 14px 14px 30px; gap: 14px; }
  .card { padding: 14px; }
  .input-letters { font-size: 20px; letter-spacing: .1em; }
  .page-header h1 { font-size: 22px; }
}

/* ============================================================
   WordFindLab — UI/UX Upgrade v2
   Production-safe additions. All new classes — nothing removed.
============================================================ */

/* ─── Contrast improvements ─── */
.page-header p { color: #3a4160; }
.seo-section    { color: #3a4160; }
.seo-section h2 { color: #1a1d2e; }
.group h3       { color: #4a5068; }
.meta           { color: #555e7a; }
.hint           { color: #555e7a; }

/* ─── Site Hero — 3D Edition ─── */
.site-hero {
  background:
    linear-gradient(135deg,
      #0B1220 0%,
      #111827 45%,
      #312E81 100%);
  padding: 54px 20px 68px;   /* extra bottom padding so search card overlaps */
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 0 -1px 0 rgba(255,255,255,.04),
    0 24px 60px rgba(0,0,0,.65);
}

/* Ambient glow blobs */
.site-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 18% 55%, rgba(56,189,248,.22) 0%, transparent 48%),
    radial-gradient(ellipse at 80% 20%, rgba(167,139,250,.20) 0%, transparent 42%),
    radial-gradient(ellipse at 50% 88%, rgba(34,197,94,.12) 0%, transparent 38%);
  pointer-events: none;
  z-index: 0;
}

/* Perspective grid — vanishing-point feel */
.site-hero::after {
  content: "";
  position: absolute;
  bottom: 0; left: -20%; right: -20%;
  height: 55%;
  background-image:
    linear-gradient(rgba(59,130,246,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,.09) 1px, transparent 1px);
  background-size: 52px 52px;
  transform: perspective(360px) rotateX(32deg);
  transform-origin: bottom center;
  mask-image: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 100%);
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* ─── Floating letter tiles (3D) ─── */
.hero-tiles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.htile-wrap {
  position: absolute;
  animation: htileFloat 8s ease-in-out infinite;
}
.htile-wrap:nth-child(2) { animation-duration: 9.5s;  animation-delay: -2s;   }
.htile-wrap:nth-child(3) { animation-duration: 7s;    animation-delay: -3.8s; }
.htile-wrap:nth-child(4) { animation-duration: 11s;   animation-delay: -5s;   }
.htile-wrap:nth-child(5) { animation-duration: 6.5s;  animation-delay: -.9s;  }
.htile-wrap:nth-child(6) { animation-duration: 8.5s;  animation-delay: -4.2s; }
.htile {
  width: 46px;
  height: 46px;
  background: linear-gradient(145deg, #faf2df 0%, #e9c96e 55%, #c8920e 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 20px;
  color: #2a1400;
  box-shadow:
    4px 8px 20px rgba(0,0,0,.65),
    1px 2px 5px  rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -2px 0 rgba(0,0,0,.4);
  opacity: .5;
}
@keyframes htileFloat {
  0%,100% { transform: translateY(0px);   }
  50%      { transform: translateY(-13px); }
}

/* ─── Hero inner content ─── */
.hero-inner {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.hero-label {
  display: inline-block;
  background: rgba(56,189,248,.14);
  border: 1px solid rgba(56,189,248,.45);
  color: #7dd3fc;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  padding: 4px 16px;
  border-radius: 999px;
  margin-bottom: 18px;
  box-shadow: 0 0 20px rgba(56,189,248,.18);
}
.hero-title {
  font-size: clamp(32px, 6.5vw, 58px);
  font-weight: 900;
  color: #fff;
  line-height: 1.07;
  letter-spacing: -.6px;
  margin: 0 0 14px;
  text-shadow:
    0 1px 0  rgba(255,255,255,.12),
    0 2px 8px  rgba(0,0,0,.7),
    0 12px 32px rgba(0,0,0,.45);
}
.hero-title .accent {
  color: #38BDF8;
  text-shadow:
    0 0 28px rgba(56,189,248,.6),
    0 2px 8px  rgba(0,0,0,.6);
}
.hero-sub {
  font-size: clamp(14.5px, 2.2vw, 17px);
  color: #9fb3cc;
  margin: 0 auto 24px;
  line-height: 1.68;
  max-width: 500px;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.trust-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}
.trust-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: #c1d5e8;
  font-weight: 600;
  letter-spacing: .01em;
}
.trust-check {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(34,197,94,.28);
  border: 1px solid rgba(34,197,94,.5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  color: #4ade80;
  flex-shrink: 0;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 0 8px rgba(34,197,94,.25);
}

/* ─── Hero search wrap (rises up into hero) ─── */
.hero-search-wrap {
  background: linear-gradient(to bottom, #1a1760 0%, var(--bg) 56px);
  padding: 0 20px 0;
  position: relative;
  z-index: 10;
}
.hero-search-box {
  max-width: 740px;
  margin: 0 auto;
  background: var(--surface);
  border-radius: 18px;
  padding: 26px 28px 20px;
  box-shadow:
    0 -6px 0 rgba(59,130,246,.08),
    0 0 0 1px rgba(0,0,0,.07),
    0 4px 6px  rgba(0,0,0,.04),
    0 12px 32px rgba(0,0,0,.14),
    inset 0 1px 0 rgba(255,255,255,.9);
  transform: translateY(-38px);
  margin-bottom: -38px;    /* collapse the gap caused by translateY */
}
.hero-search-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink-2);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.hero-search-label .hsl-hint {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  color: var(--muted);
}
.hero-search-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.hero-search-row .input-letters {
  flex: 1;
  font-size: 22px;
  letter-spacing: .15em;
}
.hero-search-row .btn {
  padding: 12px 26px;
  flex-shrink: 0;
  font-size: 15px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.hero-search-box .status { margin-top: 8px; }
.hero-search-box .demo-box { margin-top: 12px; }

/* Mobile adjustments for hero */
@media (max-width: 600px) {
  .site-hero        { padding: 40px 16px 62px; }
  .hero-search-box  { padding: 18px 16px 16px; border-radius: 14px; transform: translateY(-32px); margin-bottom: -32px; }
  .hero-search-row  { flex-wrap: wrap; }
  .hero-search-row .input-letters { flex: 1 1 100%; font-size: 18px; }
  .hero-search-row .btn-cta { flex: 1; }
  .hero-search-row .btn.ghost { flex: 0 0 auto; }
  .htile            { width: 36px; height: 36px; font-size: 16px; }
}

/* ─── Tool Cards grid ─── */
.tool-cards-section { margin-bottom: 20px; }
.section-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-label::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}
.tool-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.tool-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-decoration: none;
  color: var(--ink);
  transition: border-color .15s, transform .15s, box-shadow .15s;
  box-shadow: var(--shadow-sm);
}
.tool-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 18px rgba(37,99,235,.12);
  text-decoration: none;
  color: var(--ink);
}
.tool-card-icon { font-size: 20px; line-height: 1.3; }
.tool-card-name { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.tool-card-desc { font-size: 12px; color: var(--ink-2); line-height: 1.45; }
.tool-card-cta  { font-size: 12px; font-weight: 700; color: var(--accent); margin-top: 5px; }
.tool-card-cta::after { content: " →"; }

@media (max-width: 720px) {
  .tool-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
  .tool-cards { grid-template-columns: 1fr; }
  .tool-card {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }
  .tool-card-icon { font-size: 24px; flex-shrink: 0; margin-top: 2px; }
}

/* ─── Demo example chips (inside tool cards) ─── */
.demo-box {
  background: #f8faff;
  border: 1px dashed #c7d2fe;
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-top: 14px;
}
.demo-box-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 0 0 8px;
}
.demo-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.demo-chip {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--accent);
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  cursor: pointer;
  transition: border-color .12s, background .12s, box-shadow .12s, transform .12s;
  user-select: none;
  text-transform: uppercase;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.demo-chip:hover {
  border-color: rgba(37,99,235,.28);
  background: #eff6ff;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(37,99,235,.10);
}

/* ─── Ad label wrapper (AdSense-safe) ─── */
.ad-wrap { margin-bottom: 16px; }
.ad-label {
  display: block;
  font-size: 10px;
  font-weight: 500;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  text-align: center;
  margin-bottom: 3px;
  opacity: .75;
}
.ad-wrap .ad-slot { margin-bottom: 0; }
.ad-wrap.is-fallback {
  margin-bottom: 18px;
}
.ad-wrap.is-fallback .ad-label {
  display: block;
  opacity: 1;
  color: #0f172a;
  margin-bottom: 8px;
}
.ad-wrap.is-fallback .ad-slot {
  border: 0;
  background: transparent;
  min-height: 0;
}
.ad-wrap.is-fallback .ad-slot > .MonetizationSlot {
  width: 100%;
}

.MonetizationSlot {
  width: 100%;
  display: flex;
  justify-content: center;
}
.MonetizationSlot-card {
  width: 100%;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
  padding: 16px;
  color: #0f172a;
}
.MonetizationSlot-eyebrow {
  color: #2563eb;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.MonetizationSlot-title {
  margin: 6px 0 8px;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.MonetizationSlot-copy {
  margin: 0 0 12px;
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}
.MonetizationSlot-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.MonetizationSlot-links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 12px;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid rgba(191,219,254,.85);
  color: #1d4ed8;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}
.MonetizationSlot-links a:hover {
  background: #dbeafe;
  text-decoration: none;
}
.MonetizationSlot--mid .MonetizationSlot-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.MonetizationSlot--lower .MonetizationSlot-links,
.MonetizationSlot--mobile-bottom .MonetizationSlot-links {
  grid-template-columns: 1fr;
}
.MonetizationSlot--mobile-bottom .MonetizationSlot-card {
  padding: 14px;
}
@media (max-width: 640px) {
  .MonetizationSlot-card {
    padding: 14px;
    border-radius: 18px;
  }
  .MonetizationSlot-title {
    font-size: 16px;
  }
  .MonetizationSlot-links {
    gap: 6px;
  }
  .MonetizationSlot-links a {
    padding: 8px 10px;
    font-size: 12.5px;
  }
}

/* ─── Related tools strip (bottom of tool pages) ─── */
.related-tools {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.related-tools-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin: 0 0 8px;
}
.related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.related-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ink-2);
  text-decoration: none;
  transition: border-color .12s, color .12s, background .12s;
}
.related-link:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: #eff6ff;
  text-decoration: none;
}

/* ─── Bingo / high-score result badges ─── */
.badge-bingo {
  display: inline-block;
  background: #dcfce7;
  color: #15803d;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: 3px;
  vertical-align: middle;
}
.badge-best {
  display: inline-block;
  background: #fef3c7;
  color: #92400e;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: 3px;
  vertical-align: middle;
}

/* ─── Mobile nav (hamburger) ─── */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 14px 16px;
  color: var(--nav-ink);
  font-size: 20px;
  line-height: 1;
  margin-left: auto;
  flex-shrink: 0;
  align-items: center;
}
@media (max-width: 760px) {
  .nav-toggle { display: flex; }
  .nav-links {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--nav-bg);
    z-index: 300;
    box-shadow: 0 6px 20px rgba(0,0,0,.35);
    padding: 6px 0;
  }
  .nav-links.nav-open { display: flex; }
  .nav-links a {
    padding: 13px 20px;
    border-bottom: 1px solid rgba(255,255,255,.06);
    font-size: 14.5px;
    border-bottom-color: rgba(255,255,255,.05);
  }
  .nav-links a:last-child { border-bottom: none; }
  .nav-links a.active {
    border-left: 3px solid var(--accent);
    background: rgba(37,99,235,.08);
  }
  .nav-inner { position: relative; }
  .site-nav  { overflow: visible; }
}

/* ─── WWF teal button fix ─── */
.btn.teal            { background: var(--accent-2); color: #fff; }
.btn.teal:hover      { background: #047857; }

/* ─── Mobile hero / cards ─── */
@media (max-width: 600px) {
  .site-hero        { padding: 36px 16px 30px; }
  .hero-chips       { gap: 6px; }
  .hero-chip        { font-size: 12px; padding: 6px 12px; }
  .trust-badges     { gap: 10px; }
  .tool-cards-section { margin-bottom: 14px; }
}

/* ============================================================
   Visual Upgrade v3 — Announcement bar, CTA buttons, accents
============================================================ */

/* ─── Top announcement bar ─── */
a.announce-bar {
  display: block;
  background: linear-gradient(90deg, #F59E0B 0%, #F97316 100%);
  color: #111827;
  text-align: center;
  padding: 11px 24px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: .01em;
  position: relative;
  z-index: 200;
  box-shadow: 0 2px 12px rgba(249,115,22,.35);
  transition: filter .18s, box-shadow .18s;
  line-height: 1.4;
}
a.announce-bar:hover {
  filter: brightness(1.07);
  box-shadow: 0 4px 20px rgba(249,115,22,.5);
  text-decoration: none;
  color: #111827;
}
a.announce-bar .bar-arrow {
  display: inline-block;
  margin-left: 6px;
  transition: transform .18s;
}
a.announce-bar:hover .bar-arrow {
  transform: translateX(4px);
}
@media (max-width: 520px) {
  a.announce-bar { font-size: 12.5px; padding: 10px 14px; }
}

/* ─── Green CTA button (primary action) ─── */
.btn-cta {
  background: linear-gradient(90deg, #22C55E 0%, #16A34A 100%);
  color: #fff !important;
  border: none;
  font-weight: 800;
  box-shadow: 0 2px 14px rgba(34,197,94,.38), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .14s, box-shadow .14s, filter .14s;
}
.btn-cta:hover {
  filter: brightness(1.08);
  box-shadow: 0 5px 22px rgba(34,197,94,.52);
  transform: translateY(-1px) scale(1.02);
  color: #fff !important;
}
.btn-cta:active {
  transform: translateY(0) scale(.99);
}

/* ─── Outline/secondary button ─── */
.btn-outline {
  background: transparent;
  color: #38BDF8 !important;
  border: 1.5px solid #38BDF8;
  box-shadow: none;
  transition: background .15s, box-shadow .15s, transform .14s;
}
.btn-outline:hover {
  background: rgba(56,189,248,.08);
  box-shadow: 0 0 14px rgba(56,189,248,.22);
  transform: translateY(-1px);
}

/* ─── Accent color helpers ─── */
.text-sky   { color: #38BDF8; }
.text-green { color: #22C55E; }

/* ─── Hero sub-text contrast boost ─── */
.hero-sub {
  color: #afc5db;
}

/* ─── Search box Find Words button glow ─── */
.hero-search-row .btn-cta {
  box-shadow: 0 3px 16px rgba(34,197,94,.42), inset 0 1px 0 rgba(255,255,255,.18);
  font-size: 16px;
  letter-spacing: .01em;
}

/* ─── Clear button inside hero search row ─── */
.hero-search-row .btn.ghost {
  flex-shrink: 0;
  padding: 12px 18px;
  font-size: 14px;
  white-space: nowrap;
}

/* ─── Results wrap (sits between hero-search-wrap and page-wrap) ─── */
.results-wrap {
  max-width: 780px;
  margin: 16px auto 0;
  padding: 0 20px;
}
.results-wrap .card {
  border-radius: 14px;
  box-shadow: 0 4px 24px rgba(0,0,0,.09);
}
.results-wrap .ad-wrap {
  margin-top: 16px;
}

@media (max-width: 600px) {
  .results-wrap { padding: 0 12px; }
  .hero-search-row .btn.ghost { padding: 12px 12px; font-size: 13px; }
}

/* ─── Tool card CTA link — use sky blue ─── */
.tool-card-cta { color: #2563eb; }
.tool-card:hover .tool-card-cta { color: #38BDF8; }

/* ============================================================
   Premium homepage refresh
   These overrides keep the current layout but raise the polish
   for the homepage hero, navbar, CTA, and announcement bar.
============================================================ */

.site-nav {
  background: rgba(10, 10, 20, .72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 8px 30px rgba(2,6,23,.32);
}
.nav-inner {
  min-height: 66px;
}
.nav-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px 0 0;
}
.nav-logo-mark {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #38BDF8 0%, #2563EB 100%);
  color: #fff;
  font-size: 12px;
  letter-spacing: .02em;
  box-shadow: 0 10px 24px rgba(37,99,235,.35), inset 0 1px 0 rgba(255,255,255,.2);
  flex-shrink: 0;
}
.nav-logo-text {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -.35px;
}
.nav-links a {
  padding: 17px 13px 15px;
  transition: color .15s, border-color .15s, text-shadow .15s;
}
.nav-links a.active {
  text-shadow: 0 0 12px rgba(56,189,248,.25);
}
.nav-toggle {
  color: #dbe7ff;
}
@media (max-width: 760px) {
  .nav-links {
    background: rgba(10, 10, 20, .95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 12px 32px rgba(0,0,0,.38);
  }
  .nav-logo-mark {
    width: 30px;
    height: 30px;
    font-size: 11px;
  }
  .nav-logo-text {
    font-size: 15px;
  }
}

a.announce-bar {
  background: linear-gradient(90deg, #f59e0b 0%, #fb923c 55%, #f97316 100%);
  padding: 8px 20px;
  font-size: 12.9px;
  line-height: 1.25;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 2px 14px rgba(249,115,22,.24);
}
a.announce-bar:hover {
  box-shadow: 0 4px 20px rgba(249,115,22,.32);
}
@media (max-width: 520px) {
  a.announce-bar {
    font-size: 11.9px;
    padding: 7px 12px;
  }
}

.site-hero {
  padding: 50px 20px 60px;
}
.hero-inner {
  max-width: 720px;
  animation: heroFadeIn .6s ease-out both;
}
.hero-points {
  list-style: none;
  padding: 0;
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  max-width: 520px;
}
.hero-points li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(15, 23, 42, .28);
  color: #d7e7f5;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
.trust-badges--compact {
  margin-top: 12px;
  gap: 10px 14px;
}
.trust-badges--compact .trust-badge {
  font-size: 12px;
}

.hero-search-wrap {
  background:
    radial-gradient(circle at 50% 0%, rgba(56,189,248,.12) 0%, transparent 36%),
    linear-gradient(to bottom, #171347 0%, var(--bg) 58px);
  position: relative;
}
.hero-search-wrap::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -20px;
  width: min(760px, 92vw);
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(56,189,248,.16) 0%, transparent 72%);
  filter: blur(10px);
  pointer-events: none;
}
.hero-search-box {
  border-radius: 20px;
  box-shadow:
    0 -6px 0 rgba(56,189,248,.08),
    0 0 0 1px rgba(0,0,0,.07),
    0 4px 6px  rgba(0,0,0,.04),
    0 16px 42px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.9);
  animation: heroFadeIn .75s ease-out .04s both;
}
.btn-cta {
  background: linear-gradient(135deg, #38BDF8 0%, #2563EB 100%);
  box-shadow: 0 2px 16px rgba(37,99,235,.34), inset 0 1px 0 rgba(255,255,255,.18);
}
.btn-cta:hover {
  box-shadow: 0 5px 22px rgba(37,99,235,.48);
}
.hero-search-row .btn-cta {
  box-shadow: 0 3px 16px rgba(37,99,235,.36), inset 0 1px 0 rgba(255,255,255,.18);
  font-size: 16px;
}

@keyframes heroFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 600px) {
  .site-hero {
    padding: 32px 16px 46px;
  }
  .hero-label {
    margin-bottom: 14px;
  }
  .hero-points {
    margin-top: 14px;
    gap: 8px;
  }
  .hero-points li {
    padding: 7px 10px;
    font-size: 12px;
  }
  .hero-search-box {
    padding: 18px 16px 16px;
    border-radius: 14px;
    transform: translateY(-32px);
    margin-bottom: -32px;
  }
  .hero-search-row {
    flex-wrap: wrap;
  }
  .hero-search-row .input-letters {
    flex: 1 1 100%;
    font-size: 18px;
  }
  .hero-search-row .btn-cta {
    flex: 1;
  }
  .hero-search-row .btn.ghost {
    flex: 0 0 auto;
  }
  .trust-badges--compact {
    gap: 8px 10px;
  }
  .trust-badges--compact .trust-badge {
    font-size: 11.5px;
  }
  .htile {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
}

/* ============================================================
   Premium cleanup pass
   Low-noise icons, calmer glow, stronger CTA, cleaner mobile.
============================================================ */

.icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.ui-icon {
  width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
}

.site-hero {
  padding: 46px 20px 56px;
}
.site-hero::before {
  background:
    radial-gradient(ellipse at 18% 55%, rgba(56,189,248,.14) 0%, transparent 48%),
    radial-gradient(ellipse at 80% 20%, rgba(99,102,241,.12) 0%, transparent 42%),
    radial-gradient(ellipse at 50% 88%, rgba(34,197,94,.06) 0%, transparent 38%);
}
.site-hero::after {
  opacity: .6;
}
.hero-tiles .htile-wrap:nth-child(n+4) {
  display: none;
}
.htile {
  opacity: .35;
  box-shadow:
    3px 7px 16px rgba(0,0,0,.5),
    1px 2px 4px  rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.68),
    inset 0 -2px 0 rgba(0,0,0,.34);
}

.hero-inner {
  max-width: 700px;
}
.hero-label {
  background: rgba(56,189,248,.12);
  border-color: rgba(56,189,248,.28);
  color: #93c5fd;
}
.hero-title {
  text-shadow:
    0 1px 0 rgba(255,255,255,.08),
    0 2px 8px rgba(0,0,0,.5),
    0 10px 22px rgba(0,0,0,.35);
}
.hero-title .accent {
  text-shadow:
    0 0 22px rgba(56,189,248,.36),
    0 2px 8px rgba(0,0,0,.5);
}
.hero-points {
  max-width: 620px;
  gap: 12px 14px;
  margin-top: 16px;
}
.hero-points li {
  background: rgba(15,23,42,.30);
  border-color: rgba(255,255,255,.06);
  color: #e2e8f0;
  box-shadow: 0 10px 22px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.04);
}
.hero-points li::before {
  content: none !important;
  display: none !important;
}
.hero-point-icon {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(34,197,94,.16);
  color: #5eead4;
  box-shadow: 0 0 0 1px rgba(34,197,94,.15);
}
.hero-point-icon .ui-icon {
  width: 11px;
  height: 11px;
}
.trust-badges--compact {
  margin-top: 10px;
  gap: 10px 12px;
}
.trust-badge {
  color: #dbe7f5;
}
.trust-check {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(34,197,94,.16);
  border: 1px solid rgba(34,197,94,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #5eead4;
  box-shadow: 0 0 0 1px rgba(34,197,94,.08);
}
.trust-check .ui-icon {
  width: 11px;
  height: 11px;
}

.announce-bar {
  min-height: 48px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(90deg, #f59e0b 0%, #fb923c 100%);
  color: #111827;
  font-size: 13px;
  letter-spacing: .01em;
  box-shadow: 0 2px 12px rgba(249,115,22,.18);
}
.announce-bar .bar-arrow {
  width: 14px;
  height: 14px;
  display: inline-flex;
  color: #111827;
}
.announce-bar:hover {
  filter: brightness(1.05);
  box-shadow: 0 4px 16px rgba(249,115,22,.24);
}

.hero-search-wrap {
  background:
    radial-gradient(circle at 50% 0%, rgba(56,189,248,.08) 0%, transparent 34%),
    linear-gradient(to bottom, #171347 0%, var(--bg) 58px);
}
.hero-search-wrap::before {
  opacity: .55;
}
.hero-search-box {
  border: 1px solid rgba(148,163,184,.10);
  box-shadow:
    0 -6px 0 rgba(56,189,248,.06),
    0 0 0 1px rgba(0,0,0,.05),
    0 10px 28px rgba(15,23,42,.10),
    inset 0 1px 0 rgba(255,255,255,.84);
}
.hero-search-label {
  color: #44506a;
}
.hero-search-label .hsl-hint {
  color: #7c88a1;
}
.hero-search-row .input-letters {
  background: linear-gradient(180deg, rgba(15,23,42,.97) 0%, rgba(30,41,59,.92) 100%);
  border: 1px solid rgba(56,189,248,.18);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    inset 0 -1px 0 rgba(0,0,0,.30);
}
.hero-search-row .input-letters::placeholder {
  color: #94a3b8;
}
.hero-search-row .input-letters:focus {
  border-color: rgba(56,189,248,.55);
  box-shadow: 0 0 0 4px rgba(56,189,248,.16), inset 0 1px 0 rgba(255,255,255,.04);
}
.btn-cta,
.hero-search-row .btn-cta {
  background: linear-gradient(135deg, #2563EB 0%, #0EA5E9 100%);
  box-shadow:
    0 6px 18px rgba(37,99,235,.34),
    0 0 0 1px rgba(255,255,255,.04),
    inset 0 1px 0 rgba(255,255,255,.16);
  animation: ctaPulse 4.2s ease-in-out infinite;
}
.btn-cta:hover,
.hero-search-row .btn-cta:hover {
  filter: brightness(1.08);
  box-shadow:
    0 8px 22px rgba(56,189,248,.42),
    0 0 0 1px rgba(255,255,255,.05),
    inset 0 1px 0 rgba(255,255,255,.16);
}

.tool-card-icon {
  width: 24px;
  height: 24px;
  color: #38BDF8;
  margin-bottom: 8px;
}
.related-link-icon {
  width: 14px;
  height: 14px;
  color: #60a5fa;
  margin-right: 6px;
  display: inline-flex;
  vertical-align: -2px;
}

@keyframes ctaPulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

@media (max-width: 600px) {
  .site-hero {
    padding: 32px 16px 42px;
  }
  .hero-points {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .hero-points li {
    justify-content: flex-start;
    padding: 8px 12px;
    font-size: 12.5px;
  }
  .hero-search-box {
    padding: 18px 14px 16px;
    border-radius: 16px;
  }
  .hero-search-row {
    gap: 8px;
  }
  .hero-search-row .input-letters {
    font-size: 17px;
  }
  .hero-search-row .btn-cta {
    flex: 1;
  }
  .hero-search-row .btn.ghost {
    padding: 12px 14px;
  }
}

/* ============================================================
   Reference-style homepage refresh
   White premium header, split hero, feature band, proof panel.
============================================================ */

html, body {
  background:
    radial-gradient(circle at top, rgba(37,99,235,.08), transparent 30%),
    radial-gradient(circle at 85% 6%, rgba(251,191,36,.08), transparent 26%),
    linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%);
  color: #0f172a;
}

.site-nav {
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
  backdrop-filter: blur(18px);
}
.nav-inner {
  max-width: 1360px;
  padding: 14px 24px;
  gap: 16px;
  align-items: center;
}
.nav-logo {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  margin-right: 4px;
  border-right: 0;
  color: #0f172a;
}
.nav-logo:hover { color: #0f172a; }
.nav-logo-mark {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #2563eb 0%, #3b82f6 55%, #0ea5e9 100%);
  color: #fff;
  font-weight: 900;
  font-size: 21px;
  box-shadow: 0 14px 28px rgba(37,99,235,.28);
}
.nav-logo-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.nav-logo-text {
  display: block;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.04em;
  line-height: 1;
}
.nav-logo-sub {
  display: block;
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
  line-height: 1.1;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: 18px;
}
.nav-links a {
  color: #334155;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 12px;
  border-bottom: 0;
  border-radius: 999px;
}
.nav-links a:hover {
  color: #0f172a;
  background: rgba(37,99,235,.06);
}
.nav-links a.active {
  color: #0f172a;
  background: rgba(37,99,235,.08);
  border-bottom: 0;
}
.nav-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 6px;
  vertical-align: middle;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: .75;
}
.nav-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}
.nav-action {
  min-height: 42px;
  padding: 0 18px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.nav-action--ghost {
  border: 1px solid #d8e0ee;
  background: #fff;
  color: #24324a;
  box-shadow: 0 8px 20px rgba(15,23,42,.05);
}
.nav-action--primary {
  background: linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 12px 24px rgba(37,99,235,.26);
}
.nav-action--primary:hover {
  text-decoration: none;
  filter: brightness(1.04);
}
.nav-toggle {
  margin-left: 8px;
  color: #0f172a;
}

a.announce-bar {
  min-height: 50px;
  background: linear-gradient(90deg, #f7e5bf 0%, #f5dba8 100%);
  color: #111827;
  border-bottom: 1px solid rgba(148,163,184,.15);
  font-size: 14px;
  letter-spacing: 0;
  justify-content: center;
  gap: 10px;
}
a.announce-bar .bar-arrow {
  color: #2563eb;
  width: 14px;
  height: 14px;
}
a.announce-bar:hover {
  background: linear-gradient(90deg, #f8e7c1 0%, #f3d08e 100%);
}

.hero-shell {
  position: relative;
  overflow: hidden;
  padding: 28px 24px 14px;
}
.hero-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(37,99,235,.10), transparent 24%),
    radial-gradient(circle at 82% 22%, rgba(96,165,250,.10), transparent 22%),
    radial-gradient(circle at 50% 100%, rgba(251,191,36,.08), transparent 20%);
  pointer-events: none;
}
.hero-shell__inner {
  position: relative;
  z-index: 1;
  max-width: 1360px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr);
  gap: 26px;
  align-items: center;
}
.hero-copy {
  min-width: 0;
}
.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 12px 26px rgba(15,23,42,.06);
  color: #1d4ed8;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}
.hero-kicker-icon {
  width: 18px;
  height: 18px;
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hero-title {
  margin: 18px 0 14px;
  font-size: clamp(58px, 6.9vw, 92px);
  line-height: .92;
  letter-spacing: -.07em;
  color: #0f172a;
  text-shadow: none;
}
.hero-title .accent {
  color: #2563eb;
  text-shadow: 0 0 18px rgba(37,99,235,.12);
}
.hero-subcopy {
  margin: 0 0 20px;
  max-width: 640px;
  color: #475569;
  font-size: clamp(18px, 1.8vw, 26px);
  line-height: 1.35;
  font-weight: 600;
}
.hero-feature-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 20px;
}
.hero-feature {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 14px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 20px;
  box-shadow: 0 14px 32px rgba(15,23,42,.06);
}
.hero-feature-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex: none;
  box-shadow: 0 10px 20px rgba(0,0,0,.10);
}
.hero-feature--green .hero-feature-icon { background: linear-gradient(135deg, #22c55e, #16a34a); }
.hero-feature--gold .hero-feature-icon { background: linear-gradient(135deg, #f59e0b, #f97316); }
.hero-feature--violet .hero-feature-icon { background: linear-gradient(135deg, #8b5cf6, #6d28d9); }
.hero-feature--blue .hero-feature-icon { background: linear-gradient(135deg, #2563eb, #0ea5e9); }
.hero-feature h3 {
  margin: 0;
  color: #0f172a;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}
.hero-feature p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
}
.hero-search-card {
  padding: 18px 18px 16px;
  border-radius: 28px;
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 24px 56px rgba(15,23,42,.08);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(14px);
}
.hero-search-label {
  font-size: 11px;
  font-weight: 800;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.hero-search-label .hsl-hint {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  color: #94a3b8;
}
.hero-search-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
}
.hero-search-row .input-letters {
  flex: 1;
  height: 58px;
  background: #f8fbff;
  border: 1px solid #d8e1f0;
  border-radius: 16px;
  color: #0f172a;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
  font-size: 18px;
  letter-spacing: .18em;
}
.hero-search-row .input-letters::placeholder {
  color: #94a3b8;
}
.hero-search-row .input-letters:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 4px rgba(56,189,248,.14), inset 0 1px 0 rgba(255,255,255,.92);
  background: #fff;
}
.hero-search-row .btn {
  height: 58px;
  padding: 0 22px;
  border-radius: 16px;
}
.hero-search-row .btn-cta {
  min-width: 182px;
  background: linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%);
  box-shadow: 0 12px 26px rgba(37,99,235,.24);
}
.hero-search-row .btn-cta:hover {
  background: linear-gradient(135deg, #1d4ed8 0%, #0891b2 100%);
  box-shadow: 0 14px 30px rgba(56,189,248,.30);
}
.hero-search-row .btn.ghost {
  background: #fff;
  border-color: #d8e1f0;
  color: #334155;
}
.hero-enter-hint {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #64748b;
}
.trust-badges--compact {
  margin-top: 12px;
  justify-content: flex-start;
  gap: 10px 14px;
}
.trust-badge {
  color: #334155;
}
.trust-check {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(34,197,94,.14);
  border: 1px solid rgba(34,197,94,.14);
  box-shadow: 0 0 0 1px rgba(34,197,94,.07);
}
.trust-check .ui-icon {
  width: 11px;
  height: 11px;
}

.hero-visual {
  position: relative;
  min-height: 790px;
}
.hero-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 44%, rgba(37,99,235,.10), transparent 32%),
    radial-gradient(circle at 68% 20%, rgba(251,191,36,.12), transparent 10%),
    radial-gradient(circle at 90% 74%, rgba(37,99,235,.14), transparent 11%);
  pointer-events: none;
}
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 18px 0 0;
  background:
    linear-gradient(rgba(148,163,184,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,163,184,.06) 1px, transparent 1px);
  background-size: 120px 120px, 120px 120px;
  mask-image: radial-gradient(circle at 50% 46%, rgba(0,0,0,.84), transparent 76%);
  opacity: .36;
  pointer-events: none;
}
.hero-orb {
  position: absolute;
  border-radius: 999px;
  filter: blur(0);
  box-shadow: 0 18px 40px rgba(37,99,235,.18);
}
.hero-orb--one {
  width: 18px;
  height: 18px;
  left: 24px;
  top: 102px;
  background: radial-gradient(circle at 30% 30%, #fff, #c7d2fe 55%, #60a5fa 100%);
}
.hero-orb--two {
  width: 16px;
  height: 16px;
  right: 26px;
  top: 60px;
  background: radial-gradient(circle at 30% 30%, #fff, #93c5fd 55%, #3b82f6 100%);
}
.hero-orb--three {
  width: 22px;
  height: 22px;
  right: 24px;
  bottom: 120px;
  background: radial-gradient(circle at 30% 30%, #fff, #fbbf24 45%, #f59e0b 100%);
}
.hero-tile {
  position: absolute;
  width: 70px;
  height: 70px;
  border-radius: 18px;
  background: linear-gradient(180deg, #f6d9a9 0%, #fddcae 44%, #f3c881 100%);
  box-shadow: 0 18px 32px rgba(15,23,42,.16), inset 0 1px 0 rgba(255,255,255,.72);
  color: #0f172a;
  font-size: 30px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-style: preserve-3d;
}
.hero-tile span {
  position: absolute;
  right: 10px;
  bottom: 8px;
  font-size: 12px;
  font-weight: 800;
}
.hero-tile--w { left: 64px; top: 28px; transform: rotate(-12deg); }
.hero-tile--k { left: 246px; bottom: 42px; transform: rotate(-7deg); }
.hero-tile--q { right: 18px; top: 70px; transform: rotate(13deg); }
.hero-tile--z { right: 52px; bottom: 38px; transform: rotate(-10deg); }

.hero-board {
  position: absolute;
  right: 76px;
  top: 42px;
  width: min(430px, 100%);
  padding: 18px;
  border-radius: 34px;
  background: linear-gradient(180deg, #eef3ff 0%, #ffffff 18%, #eef4ff 100%);
  border: 10px solid #3b4f91;
  box-shadow: 0 24px 70px rgba(15,23,42,.15);
  transform: rotate(-6deg);
}
.hero-board-top,
.hero-board-subtop,
.hero-sidecard-title {
  color: #0f172a;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}
.hero-letter-row {
  display: flex;
  gap: 8px;
  margin: 12px 0 16px;
  flex-wrap: wrap;
}
.hero-letter-row span {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 8px rgba(15,23,42,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #334155;
  font-weight: 900;
  font-size: 14px;
}
.hero-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 36px;
  border-radius: 10px;
  padding: 0 12px;
  color: #fff;
  margin: 8px 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
}
.hero-result span {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .01em;
}
.hero-result strong {
  font-size: 14px;
  font-weight: 900;
}
.hero-result--a { background: linear-gradient(90deg, #65c55a 0%, #86d66f 100%); }
.hero-result--b { background: linear-gradient(90deg, #3fbf6f 0%, #7ad78b 100%); }
.hero-result--c { background: linear-gradient(90deg, #40c1b5 0%, #6ed8c5 100%); }
.hero-result--d { background: linear-gradient(90deg, #51b6e5 0%, #79c8ff 100%); }
.hero-result--e { background: linear-gradient(90deg, #4d99f3 0%, #74b5ff 100%); }
.hero-board-link,
.hero-sidecard-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 800;
  color: #165dff;
  text-decoration: none;
}
.hero-sidecard {
  position: absolute;
  right: -6px;
  top: 260px;
  width: 286px;
  padding: 16px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 18px 48px rgba(15,23,42,.10);
}
.hero-wordle-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin: 14px 0 12px;
}
.hero-wordle-grid span {
  aspect-ratio: 1;
  border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
}
.hero-wordle-grid .g-green { background: #89ca76; }
.hero-wordle-grid .g-yellow { background: #efcf69; }
.hero-wordle-grid .g-gray { background: #c6cfde; }
.hero-sidecard-subtitle {
  color: #0f172a;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 10px;
}
.hero-sidecard-tags {
  display: grid;
  gap: 8px;
}
.hero-sidecard-tags span {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 800;
  color: #0f172a;
}
.hero-sidecard-tags span:nth-child(1) { background: linear-gradient(90deg, #7bd46d, #5fb85a); }
.hero-sidecard-tags span:nth-child(2) { background: linear-gradient(90deg, #ffcc52, #f7b930); }
.hero-sidecard-tags span:nth-child(3) { background: linear-gradient(90deg, #86d26d, #6fc45d); }
.hero-playbook {
  position: absolute;
  left: 24px;
  top: 214px;
  width: 274px;
  padding: 18px 18px 16px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.98) 100%);
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 18px 48px rgba(15,23,42,.10);
  backdrop-filter: blur(10px);
}
.hero-playbook-eyebrow {
  color: #2563eb;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-playbook-title {
  margin-top: 6px;
  color: #0f172a;
  font-size: 18px;
  line-height: 1.15;
  font-weight: 900;
}
.hero-playbook-step {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: start;
  margin-top: 14px;
}
.hero-playbook-step span {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #2563eb, #3b82f6);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 10px 20px rgba(37,99,235,.22);
}
.hero-playbook-step strong {
  display: block;
  color: #0f172a;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
}
.hero-playbook-step p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
  line-height: 1.35;
}
.hero-playbook-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.hero-playbook-meta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 800;
}
.hero-lens {
  position: absolute;
  right: -18px;
  bottom: 20px;
  width: 82px;
  height: 82px;
  border-radius: 999px;
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, #cbd5e1 34%, #8fb4ff 35%, #2f5bcb 68%, #1d4ed8 100%);
  box-shadow: 0 18px 36px rgba(15,23,42,.16);
  border: 10px solid rgba(255,255,255,.94);
}

.hero-mini-elements {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero-mini-chip {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: 0 12px 24px rgba(15,23,42,.08);
  color: #0f172a;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  opacity: .82;
}

.hero-mini-chip--quiz { left: 36px; top: 160px; color: #1d4ed8; }
.hero-mini-chip--jazz { left: 210px; top: 82px; transform: rotate(-8deg); color: #7c3aed; }
.hero-mini-chip--train { right: 288px; top: 168px; transform: rotate(7deg); color: #166534; }
.hero-mini-chip--rating { right: 330px; bottom: 118px; color: #0f766e; }
.hero-mini-chip--stair { right: 96px; bottom: 78px; color: #b45309; }

.hero-trending-card {
  position: absolute;
  right: 18px;
  bottom: 110px;
  width: 270px;
  padding: 16px 16px 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 18px 48px rgba(15,23,42,.10);
  backdrop-filter: blur(16px);
  animation: heroFloat 10s ease-in-out infinite;
  animation-delay: -2s;
}

.hero-trending-kicker {
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.hero-trending-card h3 {
  margin: 4px 0 12px;
  color: #0f172a;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -.02em;
}

.hero-trending-list {
  display: grid;
  gap: 8px;
}

.hero-trending-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f8fbff;
  border: 1px solid rgba(191,219,254,.70);
  color: #1d4ed8;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(15,23,42,.04);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.hero-trending-list a::after {
  content: "→";
  color: #38bdf8;
  font-weight: 900;
}

.hero-trending-list a:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(37,99,235,.12);
  background: #eff6ff;
}

.hero-trust-row {
  position: absolute;
  left: 24px;
  right: 312px;
  bottom: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}

.hero-trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(148,163,184,.16);
  color: #334155;
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
  animation: heroFloat 11s ease-in-out infinite;
}

.hero-trust-row span:nth-child(2) { animation-delay: -1.5s; }
.hero-trust-row span:nth-child(3) { animation-delay: -3s; }
.hero-trust-row span:nth-child(4) { animation-delay: -4.5s; }

.hero-trust-row .ui-icon {
  width: 14px;
  height: 14px;
  color: #16a34a;
}

.hero-stat-badge {
  position: absolute;
  left: 24px;
  top: 20px;
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(14,165,233,.18));
  border: 1px solid rgba(59,130,246,.18);
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .03em;
  box-shadow: 0 12px 24px rgba(37,99,235,.08);
  animation: heroFloat 11s ease-in-out infinite;
  animation-delay: -1s;
}

@keyframes heroFloat {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
}

.page-wrap {
  max-width: 1360px;
  padding: 20px 24px 44px;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 324px;
}
.page-main {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.feature-hub {
  margin-top: 2px;
}
.feature-hub-title {
  font-size: clamp(22px, 2.1vw, 28px);
  font-weight: 900;
  letter-spacing: -.03em;
  color: #0f172a;
  text-align: center;
  margin-bottom: 16px;
}
.feature-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}
.feature-card {
  background: #fff;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 24px;
  padding: 16px;
  min-height: 186px;
  box-shadow: 0 16px 34px rgba(15,23,42,.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #0f172a;
  text-decoration: none;
}
.feature-card:hover {
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 22px 44px rgba(37,99,235,.12);
}
.feature-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  box-shadow: 0 14px 24px rgba(0,0,0,.10);
}
.feature-icon--blue { background: linear-gradient(135deg, #2563eb, #0ea5e9); }
.feature-icon--violet { background: linear-gradient(135deg, #8b5cf6, #6d28d9); }
.feature-icon--green { background: linear-gradient(135deg, #22c55e, #16a34a); }
.feature-icon--gold { background: linear-gradient(135deg, #f59e0b, #f97316); }
.feature-icon--red { background: linear-gradient(135deg, #fb7185, #ef4444); }
.feature-icon--all { background: linear-gradient(135deg, #2563eb, #3b82f6); }
.feature-card-title {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -.02em;
}
.feature-card-copy {
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
  flex: 1;
}
.feature-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #165dff;
  font-size: 13px;
  font-weight: 800;
}
.feature-card--all {
  background: linear-gradient(180deg, #eff6ff 0%, #ffffff 74%);
}

.stats-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid rgba(148,163,184,.16);
  background: rgba(255,255,255,.95);
  box-shadow: 0 16px 36px rgba(15,23,42,.06);
}
.stats-item {
  padding: 20px 20px;
  text-align: center;
}
.stats-item + .stats-item {
  border-left: 1px solid rgba(148,163,184,.18);
}
.stats-item strong {
  display: block;
  color: #0f172a;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.03em;
}
.stats-item span {
  display: block;
  margin-top: 3px;
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
}

.homepage-wotd {
  margin-top: 2px;
}
.homepage-wotd .wotd-label {
  margin-bottom: 6px;
}

.proof-panel {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: 0 16px 34px rgba(15,23,42,.06);
}
.proof-panel-title {
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1.25;
  color: #0f172a;
}
.proof-avatar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 18px 0 12px;
  flex-wrap: wrap;
}
.proof-avatar {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #1d4ed8;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 10px 18px rgba(15,23,42,.08);
}
.proof-avatar--one { background: linear-gradient(135deg, #bfdbfe, #dbeafe); }
.proof-avatar--two { background: linear-gradient(135deg, #c4b5fd, #ddd6fe); }
.proof-avatar--three { background: linear-gradient(135deg, #f9c9a3, #fee2b5); }
.proof-avatar--four { background: linear-gradient(135deg, #c7f9d4, #dcfce7); }
.proof-avatar--five { background: linear-gradient(135deg, #fed7aa, #ffe4e6); }
.proof-pill {
  margin-left: auto;
  padding: 8px 14px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 14px;
  font-weight: 900;
}
.proof-stars {
  color: #f59e0b;
  font-size: 20px;
  letter-spacing: 2px;
}
.proof-rating {
  margin-top: 8px;
  color: #334155;
  font-size: 14px;
  font-weight: 700;
}

.tools-widget {
  background: #fff;
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: 0 16px 34px rgba(15,23,42,.06);
}
.tools-widget-title {
  font-size: 14px;
  letter-spacing: .06em;
  color: #64748b;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.tools-widget-links a {
  background: #f8fbff;
  border: 1px solid rgba(148,163,184,.14);
  color: #334155;
}
.tools-widget-links a.active {
  background: #eff6ff;
  border-color: rgba(37,99,235,.2);
  color: #1d4ed8;
}

.wotd-widget {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: 0 16px 34px rgba(15,23,42,.06);
}

.footer-inner {
  max-width: 1360px;
}

@media (max-width: 1180px) {
  .hero-shell__inner {
    grid-template-columns: 1fr;
  }
  .hero-visual {
    min-height: 760px;
  }
  .hero-board {
    right: 72px;
    top: 26px;
  }
  .hero-sidecard {
    right: 10px;
    top: 266px;
  }
  .hero-playbook {
    left: 18px;
    top: 224px;
  }
  .hero-mini-chip--quiz { left: 18px; top: 152px; }
  .hero-mini-chip--jazz { left: 188px; top: 72px; }
  .hero-mini-chip--train { right: 216px; top: 154px; }
  .hero-mini-chip--rating { right: 258px; bottom: 104px; }
  .hero-mini-chip--stair { right: 26px; bottom: 66px; }
  .hero-trending-card {
    right: 18px;
    bottom: 108px;
    width: 246px;
  }
  .hero-trust-row {
    left: 16px;
    right: 286px;
    bottom: 18px;
  }
  .hero-stat-badge {
    left: 18px;
    top: 16px;
  }
  .feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .page-wrap {
    grid-template-columns: 1fr;
  }
  .page-sidebar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .page-sidebar > * {
    margin-bottom: 0;
  }
}

@media (max-width: 760px) {
  .nav-inner {
    padding: 12px 16px;
  }
  .nav-logo-mark {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 18px;
  }
  .nav-logo-text {
    font-size: 20px;
  }
  .nav-logo-sub {
    display: none;
  }
  .nav-links,
  .nav-actions {
    display: none;
  }
  .nav-toggle {
    display: flex;
  }
  .hero-shell {
    padding: 20px 16px 10px;
  }
  .hero-title {
    font-size: clamp(42px, 12vw, 58px);
  }
  .hero-subcopy {
    font-size: 16px;
  }
  .hero-visual {
    display: none;
  }
  .homepage-wotd--featured {
    border-radius: 22px;
  }
  .wotd-featured-layout {
    grid-template-columns: 1fr;
    padding: 16px;
  }
  .wotd-featured-panel {
    border-radius: 20px;
  }
  .wotd-featured-links {
    gap: 8px;
  }
  .wotd-featured-links a {
    width: 100%;
  }
  .hero-feature-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hero-search-row {
    flex-wrap: wrap;
  }
  .hero-search-row .input-letters {
    flex: 1 1 100%;
    letter-spacing: .14em;
    font-size: 16px;
  }
  .hero-search-row .btn {
    flex: 1 1 0;
  }
  .hero-visual {
    min-height: 460px;
  }
  .hero-board {
    right: 12px;
    left: 12px;
    width: auto;
    top: 24px;
    transform: rotate(-4deg);
  }
  .hero-sidecard {
    right: 12px;
    width: auto;
    left: 34px;
    top: 260px;
  }
  .hero-tile--w { left: 16px; top: 8px; }
  .hero-tile--k { left: 32px; bottom: 12px; }
  .hero-tile--q { right: 10px; top: 20px; }
  .hero-tile--z { right: 18px; bottom: 16px; }
  .page-sidebar {
    grid-template-columns: 1fr;
  }
  .feature-grid,
  .stats-strip {
    grid-template-columns: 1fr 1fr;
  }
  .stats-item + .stats-item {
    border-left: 0;
    border-top: 1px solid rgba(148,163,184,.18);
  }
  .proof-pill {
    margin-left: 0;
  }
}

@media (max-width: 520px) {
  .feature-grid,
  .stats-strip {
    grid-template-columns: 1fr;
  }
  .stats-item + .stats-item {
    border-top: 1px solid rgba(148,163,184,.18);
  }
  .hero-feature-row {
    grid-template-columns: 1fr;
  }
  .hero-search-card {
    border-radius: 22px;
    padding: 16px 14px 14px;
  }
  .hero-board {
    border-width: 8px;
  }
  .hero-sidecard {
    top: 250px;
    left: 20px;
  }
}

@media (max-width: 760px) {
  html, body {
    background: #f8fafc;
  }
  .site-nav {
    background: rgba(255,255,255,.98);
    box-shadow: 0 4px 12px rgba(15,23,42,.06);
    backdrop-filter: none;
  }
  .announce-bar {
    min-height: 44px;
    font-size: 13px;
    padding: 0 14px;
  }
  .hero-shell {
    padding: 16px 14px 8px;
  }
  .hero-shell::before {
    opacity: .24;
  }
  .hero-kicker {
    padding: 9px 12px;
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
  }
  .hero-title {
    font-size: clamp(36px, 11vw, 48px);
    line-height: .95;
  }
  .hero-subcopy {
    font-size: 16px;
    line-height: 1.45;
    margin-bottom: 16px;
  }
  .hero-feature-row {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 16px;
  }
  .hero-feature {
    padding: 12px;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 4px 12px rgba(15,23,42,.05);
  }
  .hero-feature-icon {
    width: 38px;
    height: 38px;
  }
  .hero-search-card {
    padding: 14px;
    border-radius: 22px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(15,23,42,.05);
  }
  .hero-search-row {
    flex-direction: column;
    gap: 10px;
  }
  .hero-search-row .input-letters {
    width: 100%;
    height: 54px;
    background: #fff;
    border: 2px solid #cbd5e1;
    color: #0f172a;
    letter-spacing: .08em;
    font-size: 16px;
  }
  .hero-search-row .input-letters::placeholder {
    color: #94a3b8;
  }
  .hero-search-row .btn {
    width: 100%;
    height: 52px;
    min-width: 0;
    border-radius: 16px;
  }
  .hero-search-row .btn-cta {
    box-shadow: 0 8px 20px rgba(59,130,246,.25);
  }
  .hero-search-row .btn.ghost {
    border-color: #cbd5e1;
    background: #fff;
    color: #334155;
  }
  .hero-enter-hint {
    margin-top: 10px;
    color: #64748b;
    font-size: 12px;
  }
  .trust-badges--compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .trust-badge {
    width: 100%;
    justify-content: flex-start;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 4px 12px rgba(15,23,42,.05);
  }
  .trust-check {
    background: #dcfce7;
    border-color: #bbf7d0;
    color: #16a34a;
  }
  .demo-box {
    background: #fff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(15,23,42,.05);
  }
  .demo-chip {
    padding: 9px 13px;
    font-size: 12px;
  }
  .feature-hub-title {
    text-align: left;
    font-size: 20px;
  }
  .feature-grid {
    grid-template-columns: 1fr;
  }
  .feature-card {
    min-height: 0;
    padding: 14px;
  }
  .stats-strip {
    grid-template-columns: 1fr;
  }
  .stats-item + .stats-item {
    border-left: 0;
    border-top: 1px solid #e2e8f0;
  }
  .stats-item {
    padding: 16px;
  }
  .page-wrap {
    padding: 14px 14px 30px;
    gap: 14px;
  }
  .page-sidebar {
    grid-template-columns: 1fr;
  }
  .proof-panel,
  .tools-widget,
  .wotd-widget,
  .card {
    border-radius: 20px;
    border-color: #e2e8f0;
    box-shadow: 0 4px 12px rgba(15,23,42,.05);
  }
  .proof-panel-title {
    font-size: 16px;
  }
  .proof-avatar-row {
    margin-top: 14px;
  }
  .proof-pill {
    margin-left: 0;
  }
  .tools-widget-title {
    color: #64748b;
  }
  .wotd-widget {
    padding: 16px;
  }
  .seo-section,
  #why-wordfindlab,
  .related-tools,
  .blog-section {
    border-radius: 20px;
  }
  .site-footer {
    background: #fff;
  }
  .footer-copy {
    color: #64748b;
  }
  .hero-visual {
    display: none !important;
  }
}

/* ─── Sticky sidebar — high viewability ad ─────────────────────────────────
   Keeps the sidebar ad in the viewport as the user scrolls through long
   results lists. align-self:start is required for sticky inside a grid.
   scrollbar-width:none hides the internal scroll track on Firefox/Chrome.
───────────────────────────────────────────────────────────────────────────── */
@media (min-width: 901px) {
  .page-sidebar {
    position: sticky;
    top: 70px;
    align-self: start;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    scrollbar-width: none;
  }
  .page-sidebar::-webkit-scrollbar { display: none; }
}

/* ─── Mid-content ad (between results and strategy) ─────────────────────── */
.ad-mid-content {
  margin: 8px 0 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ad-mid-content .ad-slot {
  width: 100%;
  max-width: 336px;
  height: 280px;
}

/* ---------- Programmatic SEO pages ---------- */
.programmatic-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px;
  align-items: start;
}
.programmatic-main {
  min-width: 0;
}
.programmatic-hero {
  padding: 24px;
}
.programmatic-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #eff6ff;
  color: var(--accent);
  border: 1px solid #c7d2fe;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 14px;
}
.programmatic-hero h1 {
  margin: 0 0 10px;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.05;
  letter-spacing: -.05em;
}
.programmatic-hero .lede {
  margin: 0;
  font-size: 16px;
  color: var(--ink-2);
  max-width: 72ch;
}
.programmatic-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.summary-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid var(--border);
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 600;
}
.programmatic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.programmatic-grid .card {
  margin-bottom: 0;
}
.pattern-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pattern-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink-2);
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: none;
}
.pattern-link:hover {
  background: #eff6ff;
  color: var(--accent);
  text-decoration: none;
  border-color: #bfdbfe;
}
.programmatic-sidebar .card {
  margin-bottom: 16px;
}
.programmatic-faq .faq-item {
  padding: 12px 0;
}
@media (max-width: 900px) {
  .programmatic-shell {
    grid-template-columns: 1fr;
  }
  .programmatic-grid {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
   WORD OF THE DAY — page styles
   ============================================================ */

/* Single-column layout override (no sidebar) */
.page-wrap.single-col {
  display: block;
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 16px 48px;
}

/* WOTD card */
.wotd-card {
  padding: 32px 28px;
  margin-bottom: 24px;
}

/* Header */
.wotd-header {
  text-align: center;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--border, #e2e8f0);
}
.wotd-date {
  font-size: 0.85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted, #64748b);
  margin: 0 0 8px;
}
.wotd-word {
  font-size: clamp(2.4rem, 6vw, 3.6rem);
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 10px;
  color: var(--accent, #f59e0b);
  letter-spacing: -.02em;
}
.wotd-pos {
  display: inline-block;
  font-style: italic;
  color: var(--muted, #64748b);
  font-size: 1.05rem;
  background: var(--surface-2, #f1f5f9);
  padding: 2px 12px;
  border-radius: 20px;
}

/* Sections */
.wotd-section {
  margin-bottom: 28px;
}
.wotd-section h2 {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted, #64748b);
  margin: 0 0 10px;
}
.wotd-section p {
  font-size: 1.05rem;
  line-height: 1.7;
  margin: 0;
}

/* Example blockquote */
.wotd-quote {
  margin: 0;
  padding: 14px 20px;
  border-left: 4px solid var(--accent, #f59e0b);
  background: var(--surface-2, #f8fafc);
  border-radius: 0 8px 8px 0;
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.65;
  color: var(--text, #1e293b);
}

/* Scrabble tiles */
.scrabble-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.tile {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 48px;
  background: var(--accent, #f59e0b);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 800;
  border-radius: 6px;
  position: relative;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
}
.tile sub {
  font-size: 0.55rem;
  font-weight: 700;
  position: absolute;
  bottom: 4px;
  right: 5px;
  color: rgba(255,255,255,.85);
}
.score-total {
  font-size: 1rem;
  color: var(--muted, #64748b);
  margin: 0;
}
.score-number {
  color: var(--accent, #f59e0b);
  font-size: 1.15rem;
}

/* Synonym tags */
.syn-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.syn-tag {
  display: inline-block;
  padding: 5px 14px;
  background: var(--surface-2, #f1f5f9);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 20px;
  font-size: 0.9rem;
  color: var(--text, #1e293b);
  text-decoration: none;
  transition: background .15s, border-color .15s;
}
.syn-tag:hover {
  background: var(--accent-light, #fef3c7);
  border-color: var(--accent, #f59e0b);
}

/* Tool links */
.wotd-tool-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Day navigation */
.wotd-day-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
}
.nav-btn {
  display: inline-block;
  padding: 9px 18px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--surface-2, #f1f5f9);
  color: var(--text, #1e293b);
  border: 1px solid var(--border, #e2e8f0);
  transition: background .15s;
}
.nav-btn:hover { background: var(--accent-light, #fef3c7); border-color: var(--accent, #f59e0b); }
.nav-btn.hub { background: var(--accent, #f59e0b); color: #fff; border-color: transparent; }
.nav-btn.hub:hover { background: #d97706; }
.nav-btn.disabled { opacity: 0; pointer-events: none; }

/* Hub page */
.wotd-hub-intro { margin-bottom: 16px; }
.wotd-hub-links {
  margin-bottom: 16px;
}
.wotd-hub-links p {
  margin: 0 0 14px;
  color: var(--muted, #64748b);
  font-size: 14px;
  line-height: 1.6;
}
.wotd-hub-link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.wotd-hub-link {
  display: block;
  padding: 14px 16px;
  border-radius: 16px;
  text-decoration: none;
  background: #eff6ff;
  border: 1px solid rgba(37,99,235,.10);
  box-shadow: 0 8px 18px rgba(15,23,42,.04);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.wotd-hub-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(37,99,235,.08);
  border-color: rgba(37,99,235,.18);
  text-decoration: none;
}
.wotd-hub-link strong {
  display: block;
  color: var(--ink-2, #0f172a);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
}
.wotd-hub-link span {
  display: block;
  margin-top: 4px;
  color: var(--muted, #64748b);
  font-size: 12px;
  line-height: 1.45;
}
.wotd-hub-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.hub-item {
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color .15s, box-shadow .15s;
}
.hub-item:hover { border-color: var(--accent, #f59e0b); box-shadow: 0 2px 8px rgba(245,158,11,.12); }
.hub-item a { text-decoration: none; display: flex; flex-direction: column; gap: 2px; margin-bottom: 6px; }
.hub-word { font-size: 1.1rem; font-weight: 700; color: var(--text, #1e293b); }
.hub-date { font-size: 0.78rem; color: var(--muted, #64748b); }
.hub-snippet { font-size: 0.83rem; color: var(--muted, #64748b); margin: 0; line-height: 1.45; }

/* Responsive */
@media (max-width: 600px) {
  .wotd-card { padding: 20px 16px; }
  .wotd-day-nav { gap: 6px; }
  .nav-btn { padding: 8px 12px; font-size: 0.82rem; }
  .tile { width: 38px; height: 42px; font-size: 1.1rem; }
}
