/* Futuristic layer: the established palette with subtle pointer and scroll motion. */
.v-public .hero-shell { position: relative; isolation: isolate; background: var(--ink); color: var(--paper); overflow: clip; margin-top: 24px; }
.v-public .signal-grid { position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: linear-gradient(#d7ed8a08 1px, transparent 1px), linear-gradient(90deg, #d7ed8a08 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, transparent, #000 70%); }
.v-public .hero-shell::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #d7ed8a50; }
.v-public .hero { padding-block: 66px 70px; }
.v-public .hero-copy > .eyebrow { color: #d0dbbf; font-family: ui-monospace, monospace; }
.v-public .hero .small-rule { background: var(--lime); height: 3px; width: 26px; }
.v-public .hero h1 { font-weight: 500; letter-spacing: -5px; }
.v-public .hero h1 em { font-family: inherit; font-style: normal; font-weight: 450; color: var(--lime); font-size: .8em; letter-spacing: -3.8px; }
.v-public .hero-description, .v-public .hero .search-note { color: #c7d0c0; }
.v-public .hero .search-field { border-color: #738365; background: #2a362d; }
.v-public .hero .search-field input { color: var(--paper); }
.v-public .hero .search-field input::placeholder { color: #bdc9b0; }
.v-public .hero .search-submit { background: var(--lime); color: var(--ink); }
.v-public .hero .search-form label { color: #eef2e5; }
.v-public .hero .text-link { color: var(--paper); }
.v-public .hero .photo-label { color: #c9d5bc; font-family: ui-monospace, monospace; }
.v-public .hero-figure figcaption .eyebrow { color: var(--lime); }
.v-public .hero .round-link { border-color: #708163; color: var(--lime); }
.v-public .signal-stage { position: relative; perspective: 1000px; }
.v-public .signal-frame { position: relative; border-radius: 10px; overflow: hidden; border: 1px solid #adc48c88; box-shadow: 0 0 0 7px #d7ed8a06, 0 24px 70px #0003; transform-origin: center; }
.v-public .signal-frame .hero-photo { border-radius: 0; object-position: 42% center; }
.v-public .hero-shell :is(a, button, input):focus-visible { outline-color: var(--lime); }
.v-public h2 em { font-family: inherit; font-style: normal; font-weight: 450; }
.v-public .principles p span, .v-public .task-number, .v-public .step-number { font-variant-numeric: tabular-nums; }
.v-public .task-row { position: relative; }
.v-public .task-row::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: left; }
.v-public .process { background: var(--ink); color: var(--paper); position: relative; }
.v-public .process .eyebrow, .v-public .process .step-number, .v-public .process .text-link { color: var(--lime); }
.v-public .process .steps li { border-color: #708163; }
.v-public .process .steps p { color: #c7d0c0; }
.v-public .step-number { display: inline-block; }
.v-public .provider-details p::before { content: '+'; color: var(--rust-text); font-family: ui-monospace, monospace; margin-right: 14px; }
.v-public .closing { position: relative; overflow: hidden; }
.v-public .closing::after { content: ''; position: absolute; width: 500px; height: 500px; border: 1px solid #202b2518; border-radius: 50%; right: -150px; top: -270px; pointer-events: none; }
.v-public .closing h2 em { font-weight: 450; }
.v-public .motion-target { transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out); }
.v-public .motion-target[data-reveal='pending'] { opacity: 0; transform: translateY(20px); }
.v-public .motion-target:focus-within { opacity: 1; transform: none; transition: none; }
.v-public[data-motion='paused'] .motion-target, .v-public[data-input='keyboard'] .motion-target { opacity: 1; transform: none; transition: none; }
.v-public[data-input='keyboard'] :is(.button, .search-submit, .round-link) { transition: none; }
@media (hover: hover) and (pointer: fine) {
    .v-public .task-row::after { transition: transform 240ms var(--ease-out); }
    .v-public .task-row:hover::after { transform: scaleX(1); }
    .v-public .task-row:hover .task-number { color: var(--ink); }
    .v-public .hero .search-submit:hover { background: #e4f4b2; }
    .v-public .hero .round-link:hover { background: var(--lime); color: var(--ink); }
    .v-public .hero .text-link:hover { color: var(--lime); }
    .v-public .process .text-link:hover { color: #f3f8e7; }
}
@media (max-width: 1150px) { .v-public .hero h1 { letter-spacing: -3.6px; }.v-public .hero h1 em { letter-spacing: -2.6px; } }
@media (max-width: 900px) { .v-public .hero h1 { letter-spacing: -3px; }.v-public .hero h1 em { letter-spacing: -2px; }.v-public .hero { padding-block: 46px; } }
@media (max-width: 650px) {
    .v-public .hero-shell { margin-top: 16px; }
    .v-public .hero { padding-block: 38px 36px; gap: 34px; }
    .v-public .hero h1 { font-size: clamp(45px, 12.9vw, 77px); letter-spacing: -2.8px; }
    .v-public .hero h1 em { font-size: .8em; letter-spacing: -1.8px; }
    .v-public .hero-figure figcaption p { font-size: 18px; }
    .v-public .hero-figure figcaption .eyebrow { font-size: 7px; letter-spacing: .7px; }
    .v-public .signal-grid { background-size: 48px 48px; }
}
@media (prefers-reduced-motion: reduce) {
    .v-public .motion-target, .v-public .motion-target[data-reveal='pending'] { opacity: 1; transform: none; transition: none; }
    .v-public .signal-frame { transform: none !important; }
}
