:root { color-scheme: dark; }
body { margin: 0; }
.public-page { min-height: 100vh; background: #101c30; color: #f7f3eb; font: 16px/1.65 Inter, system-ui, sans-serif; }
.public-page * { box-sizing: border-box; }
.public-page a { color: inherit; }
.public-header, .public-footer { max-width: 1100px; margin: auto; padding: 22px 32px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.public-header { border-bottom: 1px solid #ffffff25; }
.public-brand { font-weight: 700; font-size: 1.25rem; text-decoration: none; white-space: nowrap; }
.public-header nav { display: flex; align-items: center; gap: 24px; }
.public-header nav a, .public-footer a { text-decoration: none; }
.public-header nav a:hover, .public-footer a:hover { text-decoration: underline; }
.public-button { display: inline-block; background: #a2c4ee; color: #112037 !important; padding: 12px 24px; border-radius: 8px; font-weight: 700; text-decoration: none; }
.public-button:hover { background: #c3d9f5; text-decoration: none !important; }
.public-button-small { padding: 8px 16px; }
.public-hero { max-width: 850px; margin: auto; text-align: center; padding: 100px 24px 90px; }
.public-eyebrow { text-transform: uppercase; letter-spacing: .16em; color: #c6d8ec; font-size: .8rem; font-weight: 700; }
.public-hero h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1.12; margin: 18px 0 24px; }
.public-hero > p:not(.public-eyebrow) { color: #d0dbea; font-size: 1.16rem; margin: 0 auto 32px; max-width: 680px; }
.public-features { background: #f8f5ee; color: #17283e; padding: 64px 32px 88px; }
.public-features > h2 { text-align: center; font-size: 2rem; margin: 0 0 32px; }
.public-grid { max-width: 1100px; margin: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.public-grid article { background: white; border: 1px solid #e0e5e8; border-radius: 12px; padding: 24px; }
.public-grid h3 { margin-top: 0; }
.public-grid p { color: #445469; margin-bottom: 0; }
.public-footer { flex-wrap: wrap; color: #cbd7e6; font-size: .9rem; }
.public-policy { max-width: 800px; margin: auto; padding: 70px 32px; }
.public-policy h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.2; margin-bottom: 8px; }
.public-lead { color: #cad8e8; font-size: 1.2rem; }
.public-policy section { margin-top: 40px; }
.public-policy h2 { font-size: 1.4rem; }
.public-policy li { margin: 8px 0; }
@media (max-width: 700px) {
  .public-header, .public-footer { padding: 18px 20px; }
  .public-header nav { gap: 12px; font-size: .85rem; }
  .public-hero { padding: 70px 20px; }
  .public-grid { grid-template-columns: 1fr; }
}