:root {
    --royal: #1647d8;
    --royal-deep: #0b2171;
    --azure: #14a8ff;
    --cornflower: #89aaff;
    --yellow: #ffd51f;
    --ink: #101526;
    --paper: #f5f5ef;
    --white: #ffffff;
    --line: rgba(16, 21, 38, .18);
    --radius: 1.5rem;
    --wrap: min(92vw, 1440px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    line-height: 1.55;
    overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
::selection { color: var(--ink); background: var(--yellow); }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.skip-link {
    position: fixed;
    z-index: 9999;
    top: 1rem;
    left: 1rem;
    padding: .75rem 1rem;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-200%);
}
.skip-link:focus { transform: none; }

.wrap { width: var(--wrap); margin-inline: auto; }
.section { padding: clamp(5rem, 9vw, 9rem) 0; }
.section--tight { padding: clamp(3.5rem, 6vw, 6rem) 0; }
.section--royal { color: var(--white); background: var(--royal); }
.section--ink { color: var(--white); background: var(--ink); }
.section--yellow { background: var(--yellow); }
.section--white { background: var(--white); }
.section-header {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, .65fr);
    gap: 3rem;
    align-items: end;
    margin-bottom: clamp(3rem, 6vw, 6rem);
}
.section-header > :last-child { margin-bottom: .45rem; }

.eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.25rem;
    font-family: "Manrope", sans-serif;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.eyebrow::before {
    width: 2rem;
    height: .62rem;
    border-radius: 999px;
    background: var(--yellow);
    content: "";
}
.eyebrow--light { color: var(--cornflower); }
.eyebrow--blue::before { background: var(--royal); }
.display,
.page-title,
.section-title,
.card-title {
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-weight: 800;
    letter-spacing: -.065em;
    line-height: .92;
}
.display { font-size: clamp(4rem, 9.7vw, 10rem); }
.page-title { max-width: 12ch; font-size: clamp(4rem, 8.6vw, 9rem); }
.section-title { font-size: clamp(3rem, 6.2vw, 6.5rem); }
.card-title { font-size: clamp(2rem, 3vw, 3.4rem); }
.lead {
    max-width: 34rem;
    margin: 0;
    font-size: clamp(1.2rem, 1.7vw, 1.6rem);
    line-height: 1.5;
}
.body-large { font-size: clamp(1.35rem, 2.2vw, 2.15rem); line-height: 1.38; }
.muted { color: #5c6271; }
.light { color: rgba(255, 255, 255, .72); }

.button {
    display: inline-flex;
    min-height: 3.8rem;
    gap: .85rem;
    align-items: center;
    justify-content: center;
    padding: .9rem 1.45rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    transition: transform .2s ease, color .2s ease, background .2s ease;
}
.button span { font-size: 1.25em; }
.button:hover { transform: translateY(-3px); }
.button--small { min-height: 3.15rem; padding: .65rem 1.15rem; }
.button--yellow { color: var(--ink); background: var(--yellow); }
.button--blue { color: var(--white); background: var(--royal); }
.button--ink { color: var(--white); background: var(--ink); }
.button--outline { border-color: currentColor; background: transparent; }
.text-link {
    display: inline-flex;
    gap: .75rem;
    align-items: center;
    padding-bottom: .25rem;
    border-bottom: 2px solid currentColor;
    font-weight: 700;
    text-decoration: none;
}

/* Header */
.site-header {
    position: fixed;
    z-index: 1000;
    top: 1rem;
    left: 50%;
    display: flex;
    width: min(96vw, 1500px);
    min-height: 5rem;
    align-items: center;
    justify-content: space-between;
    padding: .75rem .85rem .75rem 1.35rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    color: var(--white);
    background: rgba(11,33,113,.78);
    box-shadow: 0 12px 40px rgba(9,20,62,.15);
    backdrop-filter: blur(18px);
    transform: translateX(-50%);
    transition: background .25s ease, top .25s ease;
}
.site-header.is-scrolled { top: .5rem; background: rgba(11,33,113,.94); }
.brand { display: flex; gap: .9rem; align-items: center; color: inherit; text-decoration: none; }
.brand__mark {
    font-family: "Manrope", sans-serif;
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -.06em;
}
.brand__accent { color: var(--yellow); }
.brand__name { font-size: .7rem; font-weight: 700; line-height: 1.05; text-transform: uppercase; }
.site-nav { display: flex; gap: clamp(.5rem, 2vw, 2.2rem); align-items: center; }
.site-nav__link {
    position: relative;
    padding: .9rem .25rem;
    font-size: .95rem;
    font-weight: 600;
    text-decoration: none;
}
.site-nav__link::after {
    position: absolute;
    right: .25rem;
    bottom: .65rem;
    left: .25rem;
    height: 2px;
    background: var(--yellow);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .22s ease;
}
.site-nav__link:hover::after,
.site-nav__link.is-active::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; }

.lead-dock {
    position: fixed;
    z-index: 950;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: .65rem .7rem .65rem 1.15rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 999px;
    color: var(--white);
    background: rgba(11,33,113,.94);
    box-shadow: 0 15px 45px rgba(9,20,62,.28);
    backdrop-filter: blur(14px);
    text-decoration: none;
}
.lead-dock__prompt { color: rgba(255,255,255,.72); font-size: .78rem; }
.lead-dock strong {
    display: flex;
    gap: .55rem;
    align-items: center;
    padding: .65rem .9rem;
    border-radius: 999px;
    color: var(--ink);
    background: var(--yellow);
    font-size: .84rem;
    white-space: nowrap;
    transition: transform .2s ease;
}
.lead-dock:hover strong { transform: translateX(3px); }
.cta-row { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; margin-top: 2rem; }
.cta-row--center { justify-content: center; }

/* Custom cursor */
.cursor-orb {
    position: fixed;
    z-index: 3000;
    top: 0;
    left: 0;
    display: grid;
    width: 10px;
    height: 10px;
    border: 1px solid rgba(16,21,38,.55);
    border-radius: 50%;
    place-items: center;
    color: var(--ink);
    background: var(--yellow);
    box-shadow: 0 0 0 3px rgba(255,213,31,.14);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .08em;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.7);
    transition: width .16s ease, height .16s ease, opacity .16s ease, transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
}
.cursor-orb span { opacity: 0; transform: scale(.6); transition: opacity .12s ease, transform .16s ease; }
.cursor-orb.is-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.cursor-orb.is-hovering {
    width: 32px;
    height: 32px;
    border: 2px solid #a87900;
    background: var(--yellow);
    box-shadow: 0 0 0 2px rgba(255,213,31,.12);
    opacity: .9;
}
.cursor-orb.is-hovering span { opacity: 1; transform: scale(.9); }
.cursor-trail {
    position: fixed;
    z-index: 2999;
    inset: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    opacity: 0;
    transition: opacity .16s ease;
}
.cursor-trail.is-visible { opacity: .9; }
@media (pointer: fine) {
    html.cursor-enabled,
    html.cursor-enabled body,
    html.cursor-enabled a,
    html.cursor-enabled button,
    html.cursor-enabled input,
    html.cursor-enabled select,
    html.cursor-enabled textarea { cursor: none !important; }
}

/* Hero */
.hero {
    position: relative;
    display: grid;
    min-height: 100svh;
    overflow: hidden;
    color: var(--white);
    background:
        radial-gradient(circle at 84% 20%, rgba(20,168,255,.92), transparent 32%),
        linear-gradient(130deg, var(--royal-deep) 0%, var(--royal) 58%, #3385ff 100%);
}
.hero::after {
    position: absolute;
    right: -9vw;
    bottom: -20vw;
    width: 52vw;
    height: 52vw;
    border: clamp(2rem, 6vw, 7rem) solid rgba(255,255,255,.12);
    border-radius: 50%;
    content: "";
}
.hero__content {
    position: relative;
    z-index: 2;
    display: grid;
    width: var(--wrap);
    margin: auto;
    padding: 10rem 0 5rem;
}
.hero__kicker { margin-bottom: 1.5rem; }
.hero__title { max-width: 10ch; }
.hero__title .accent { display: inline-block; color: var(--yellow); transform: rotate(-2deg); }
.hero__bottom {
    display: grid;
    grid-template-columns: 1fr minmax(280px, .52fr);
    gap: 2rem;
    align-items: end;
    margin-top: clamp(3.5rem, 6vh, 7rem);
}
.hero__scroll { display: flex; gap: .8rem; align-items: center; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.hero__scroll::before { width: 3.5rem; height: 1px; background: currentColor; content: ""; }
.hero__lead { max-width: 34rem; margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.75rem); line-height: 1.45; }
.hero__ticker {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
    display: flex;
    width: 36vw;
    min-width: 390px;
    padding: 1rem 0;
    overflow: hidden;
    color: var(--ink);
    background: var(--yellow);
    transform: rotate(-3deg) translateX(2rem);
}
.hero__ticker-track { display: flex; flex: none; animation: ticker 18s linear infinite; }
.hero__ticker span { padding: 0 1.2rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
@keyframes ticker { to { transform: translateX(-50%); } }

.page-hero {
    position: relative;
    padding: clamp(11rem, 17vw, 16rem) 0 clamp(5rem, 9vw, 9rem);
    overflow: hidden;
    color: var(--white);
    background: var(--royal);
}
.page-hero::after {
    position: absolute;
    top: 16%;
    right: -8rem;
    width: clamp(18rem, 35vw, 38rem);
    height: clamp(18rem, 35vw, 38rem);
    border: clamp(2rem, 4vw, 5rem) solid rgba(255,213,31,.9);
    border-radius: 50%;
    content: "";
}
.page-hero__inner { position: relative; z-index: 2; }
.page-hero__lead { max-width: 38rem; margin: 2.5rem 0 0 auto; }

/* Homepage sections */
.intro-grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr);
    gap: clamp(3rem, 8vw, 9rem);
    align-items: start;
}
.intro-grid__sticky { position: sticky; top: 8rem; }
.intro-list { border-top: 1px solid var(--line); }
.intro-item {
    display: grid;
    grid-template-columns: 3rem 1fr;
    gap: 1.25rem;
    padding: 2rem 0;
    border-bottom: 1px solid var(--line);
}
.intro-item__number { color: var(--royal); font-weight: 800; }
.intro-item h3 { margin: 0 0 .6rem; font-family: "Manrope", sans-serif; font-size: 1.45rem; line-height: 1.2; }
.intro-item p { margin: 0; color: #5c6271; }

.impact-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(255,255,255,.3);
    border-bottom: 1px solid rgba(255,255,255,.3);
}
.impact-stat { min-height: 17rem; padding: 2.4rem; border-right: 1px solid rgba(255,255,255,.3); }
.impact-stat:last-child { border-right: 0; }
.impact-stat strong { display: block; margin-bottom: 2rem; color: var(--yellow); font-family: "Manrope", sans-serif; font-size: clamp(3.4rem, 7vw, 7rem); line-height: 1; letter-spacing: -.08em; }
.impact-stat p { max-width: 17rem; margin: 0; font-size: 1.1rem; }

.community-feature {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .65fr);
    min-height: 42rem;
    overflow: hidden;
    border-radius: var(--radius);
    color: var(--white);
    background: var(--ink);
}
.community-feature__image {
    position: relative;
    min-height: 28rem;
    overflow: hidden;
}
.community-feature__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.community-feature:hover img { transform: scale(1.04); }
.community-feature__image::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 50%, rgba(16,21,38,.4)); content: ""; }
.community-feature__content { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 5vw, 5rem); }
.community-feature__content p { max-width: 28rem; }

.domain-cloud { display: flex; flex-wrap: wrap; gap: .65rem; margin: 2.5rem 0; }
.domain-cloud a {
    padding: .72rem 1rem;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    transition: color .2s ease, background .2s ease;
}
.domain-cloud a:hover { color: var(--ink); background: var(--yellow); }

.slide-cards { display: grid; grid-template-columns: repeat(4, minmax(280px, 1fr)); gap: 1rem; }
.slide-card {
    display: flex;
    min-height: 34rem;
    flex-direction: column;
    justify-content: space-between;
    padding: 2rem;
    border-radius: var(--radius);
    color: var(--white);
    background: var(--royal);
}
.slide-card:nth-child(2) { color: var(--ink); background: var(--yellow); }
.slide-card:nth-child(3) { background: var(--azure); }
.slide-card:nth-child(4) { background: var(--ink); }
.slide-card__number { font-size: .78rem; font-weight: 800; letter-spacing: .14em; }
.slide-card__graphic {
    display: block;
    width: 100%;
    max-height: 17rem;
    margin: 1.5rem 0;
    border-radius: calc(var(--radius) * .55);
    object-fit: cover;
    aspect-ratio: 1;
}
.slide-card__content { margin-top: auto; }
.slide-card h3 { margin: 0 0 1.5rem; font-family: "Manrope", sans-serif; font-size: clamp(2rem, 3vw, 3.2rem); letter-spacing: -.06em; line-height: 1; }
.slide-card p { margin: 0; }

.logo-marquee { overflow: hidden; padding: 1.25rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.logo-marquee__track { display: flex; width: max-content; animation: marquee 32s linear infinite; }
.logo-marquee span { padding: 0 2rem; font-family: "Manrope", sans-serif; font-size: clamp(1.35rem, 2.5vw, 2.25rem); font-weight: 800; letter-spacing: -.04em; white-space: nowrap; }
.logo-marquee i { color: var(--royal); font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Content pages */
.benefit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.benefit-card { min-height: 25rem; padding: clamp(2rem, 4vw, 4rem); border-radius: var(--radius); background: var(--white); }
.benefit-card:nth-child(3) { color: var(--white); background: var(--royal); }
.benefit-card:nth-child(4) { background: var(--yellow); }
.benefit-card__icon { display: grid; width: 4rem; height: 4rem; margin-bottom: 5rem; place-items: center; border-radius: 50%; color: var(--white); background: var(--royal); font-size: 1.5rem; }
.benefit-card:nth-child(3) .benefit-card__icon { color: var(--ink); background: var(--yellow); }
.benefit-card h2 { margin: 0 0 1rem; font-family: "Manrope", sans-serif; font-size: clamp(2rem, 3.5vw, 3.75rem); letter-spacing: -.06em; line-height: 1; }
.benefit-card p { max-width: 31rem; margin: 0; font-size: 1.1rem; }

.steps { counter-reset: steps; }
.step {
    display: grid;
    grid-template-columns: 5rem minmax(0, .65fr) minmax(250px, .5fr);
    gap: 2rem;
    align-items: baseline;
    padding: 2.25rem 0;
    border-top: 1px solid var(--line);
    counter-increment: steps;
}
.step:last-child { border-bottom: 1px solid var(--line); }
.step::before { color: var(--royal); font-weight: 800; content: "0" counter(steps); }
.step h3 { margin: 0; font-family: "Manrope", sans-serif; font-size: clamp(1.75rem, 3vw, 3rem); letter-spacing: -.05em; }
.step p { margin: 0; color: #5c6271; }

.region-list { border-top: 1px solid rgba(255,255,255,.3); }
.region {
    display: grid;
    grid-template-columns: minmax(190px, .5fr) minmax(0, 1fr);
    gap: 2rem;
    padding: 2.25rem 0;
    border-bottom: 1px solid rgba(255,255,255,.3);
}
.region h2 { margin: 0; color: var(--yellow); font-size: .82rem; letter-spacing: .13em; text-transform: uppercase; }
.region__sites { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; }
.region__sites a { font-family: "Manrope", sans-serif; font-size: clamp(1.5rem, 3.2vw, 3.25rem); font-weight: 700; letter-spacing: -.05em; text-decoration: none; }
.region__sites a:hover { color: var(--yellow); }

.community-logo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: clamp(4rem, 7vw, 7rem);
}
.community-logo-card {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    --shine-x: 50%;
    --shine-y: 50%;
    position: relative;
    display: grid;
    min-height: 12rem;
    padding: 1.5rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 1rem;
    place-items: center;
    overflow: hidden;
    background: var(--white);
    box-shadow: 0 15px 40px rgba(0,0,0,.08);
    transform: perspective(850px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    backface-visibility: hidden;
    isolation: isolate;
    will-change: transform;
    transition: transform .25s ease, box-shadow .25s ease;
}
.community-logo-card::before {
    position: absolute;
    z-index: 3;
    top: .8rem;
    right: .8rem;
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    place-items: center;
    color: var(--ink);
    background: var(--yellow);
    box-shadow: 0 8px 18px rgba(16,21,38,.18);
    content: "↗";
    opacity: 0;
    transform: translateY(8px) scale(.7);
    transition: opacity .2s ease, transform .25s ease;
}
.community-logo-card::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: radial-gradient(circle at var(--shine-x) var(--shine-y), rgba(255,213,31,.3), transparent 42%);
    content: "";
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}
.community-logo-card:hover {
    --tilt-x: -2deg;
    --tilt-y: 4deg;
    transform: perspective(850px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-8px) scale(1.015);
    box-shadow: 0 26px 55px rgba(0,0,0,.22);
}
.community-logo-card:nth-child(even):hover { --tilt-y: -4deg; }
.community-logo-card.is-tilting { transition: box-shadow .25s ease; }
.community-logo-card:hover::before { opacity: 1; transform: translateY(0) scale(1); }
.community-logo-card:hover::after { opacity: 1; }
.community-logo-card img {
    position: relative;
    z-index: 1;
    width: 100%;
    max-height: 8rem;
    object-fit: contain;
    transform: scale(1);
    transition: transform .3s ease;
}
.community-logo-card:hover img { transform: scale(1.035); }

.frisco-feature {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr);
    gap: clamp(2rem, 5vw, 6rem);
    min-height: 38rem;
    padding: clamp(2rem, 5vw, 5rem);
    border-radius: var(--radius);
    align-items: center;
    overflow: hidden;
    color: var(--white);
    background: linear-gradient(135deg, var(--royal-deep), var(--royal) 68%, var(--azure));
}
.frisco-feature::after {
    position: absolute;
    right: -8rem;
    bottom: -12rem;
    width: 28rem;
    height: 28rem;
    border: 4.5rem solid rgba(255,213,31,.18);
    border-radius: 50%;
    content: "";
}
.frisco-feature__copy { position: relative; z-index: 2; }
.frisco-feature__copy .lead { margin: 2rem 0; }
.frisco-feature__logo {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: 22rem;
    padding: clamp(2rem, 4vw, 4rem);
    border-radius: 1.25rem;
    place-items: center;
    background: var(--white);
    box-shadow: 0 30px 70px rgba(6,19,74,.32);
    transform: rotate(2deg);
    transition: transform .3s ease;
}
.frisco-feature__logo:hover { transform: rotate(0) scale(1.02); }
.frisco-feature__logo img { width: 100%; }
.minor-network {
    display: flex;
    gap: 1rem 2.5rem;
    align-items: center;
    margin-top: 2.5rem;
    padding: 1.2rem .2rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: #747987;
    font-size: .88rem;
}
.minor-network > span { margin-right: auto; color: var(--ink); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.minor-network p { margin: 0; }
.minor-network a { color: var(--ink); font-weight: 600; text-decoration: none; }
.minor-network a:hover { text-decoration: underline; }

.coverage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.coverage-card { min-height: 20rem; padding: 2rem; border-radius: var(--radius); background: var(--white); }
.coverage-card strong { display: block; margin-bottom: 4rem; color: var(--royal); font-family: "Manrope", sans-serif; font-size: 3.5rem; letter-spacing: -.08em; }
.coverage-card h3 { margin: 0 0 1rem; font-size: 1.4rem; }
.coverage-card p { margin: 0; color: #5c6271; }

.story-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, .65fr); gap: clamp(3rem, 8vw, 9rem); }
.story-grid__image { overflow: hidden; border-radius: var(--radius); }
.story-grid__image img { width: 100%; height: 100%; min-height: 36rem; object-fit: cover; }
.story-copy p { margin: 0 0 1.5rem; }
.membership { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 3rem; }
.membership span { padding: 1rem 1.25rem; border: 1px solid var(--line); border-radius: .75rem; font-weight: 700; }

.principles { display: grid; grid-template-columns: repeat(3, 1fr); }
.principle { min-height: 24rem; padding: 2.5rem; border: 1px solid rgba(255,255,255,.24); border-right: 0; }
.principle:last-child { border-right: 1px solid rgba(255,255,255,.24); }
.principle span { display: block; margin-bottom: 7rem; color: var(--yellow); font-weight: 800; }
.principle h3 { margin: 0 0 1rem; font-family: "Manrope", sans-serif; font-size: 2rem; letter-spacing: -.05em; }
.principle p { margin: 0; color: rgba(255,255,255,.7); }

/* Contact */
.contact-layout { display: grid; grid-template-columns: minmax(0, .7fr) minmax(360px, 1fr); gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.contact-details { position: sticky; top: 8rem; }
.contact-details h1 { margin-bottom: 2rem; }
.contact-details__item { padding: 1.25rem 0; border-top: 1px solid var(--line); }
.contact-details__item strong { display: block; margin-bottom: .35rem; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-details__item a { font-size: 1.2rem; font-weight: 600; text-decoration: none; }
.contact-form { padding: clamp(1.5rem, 4vw, 4rem); border-radius: var(--radius); color: var(--white); background: var(--royal); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.field { display: grid; gap: .55rem; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.field input,
.field select,
.field textarea {
    width: 100%;
    min-height: 3.7rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: .6rem;
    color: var(--white);
    background: rgba(255,255,255,.09);
    outline: none;
}
.field select option { color: var(--ink); }
.field textarea { min-height: 9rem; resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(255,213,31,.2); }
.field input::placeholder,
.field textarea::placeholder { color: rgba(255,255,255,.6); }
.honeypot { position: absolute; left: -9999px; }
.captcha-placeholder { display: flex; gap: 1rem; align-items: center; padding: 1rem; border: 1px dashed rgba(255,255,255,.4); border-radius: .6rem; color: rgba(255,255,255,.75); }
.captcha-placeholder__box { width: 1.7rem; height: 1.7rem; border: 2px solid currentColor; border-radius: .2rem; }
.form-note { margin: 1rem 0 0; color: rgba(255,255,255,.65); font-size: .8rem; }
.form-alert { margin-bottom: 1.5rem; padding: 1rem; border-radius: .6rem; color: var(--ink); background: var(--yellow); }
.success-panel { padding: 2rem; border-radius: 1rem; color: var(--ink); background: var(--yellow); }
.success-panel h2 { margin-top: 0; font-family: "Manrope", sans-serif; font-size: 2rem; letter-spacing: -.05em; }

.next-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.next-step { padding: 2rem; border: 1px solid var(--line); border-radius: 1rem; }
.next-step span { display: block; margin-bottom: 3rem; color: var(--royal); font-weight: 800; }
.next-step h3 { margin: 0 0 .8rem; font-size: 1.35rem; }
.next-step p { margin: 0; color: #5c6271; }

/* Footer */
.site-footer { padding: clamp(5rem, 9vw, 9rem) 0 2rem; color: var(--white); background: var(--royal-deep); }
.site-footer__top { display: grid; grid-template-columns: 1fr minmax(300px, .42fr); gap: 4rem; padding-bottom: 5rem; }
.footer-callout { position: relative; display: inline-block; font-family: "Manrope", sans-serif; font-size: clamp(3.5rem, 8vw, 8rem); font-weight: 800; letter-spacing: -.075em; line-height: .9; text-decoration: none; }
.footer-callout span { position: absolute; top: 0; right: -1.2em; color: var(--yellow); font-size: .45em; }
.footer-contact { display: grid; gap: 1.5rem; align-content: end; }
.footer-contact p { margin: 0; color: rgba(255,255,255,.72); }
.footer-contact strong { color: var(--yellow); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-contact a { color: var(--white); text-decoration: none; }
.site-footer__bottom { display: grid; grid-template-columns: auto 1fr auto; gap: 3rem; align-items: center; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.2); }
.footer-links { display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; }
.footer-links a { text-decoration: none; }
.site-footer__bottom p { margin: 0; color: rgba(255,255,255,.6); font-size: .8rem; }

.reveal { opacity: 0; transform: translateY(32px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.community-logo-card.reveal {
    transform: perspective(850px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(32px);
}
.community-logo-card.reveal.is-visible {
    transform: perspective(850px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
}
.community-logo-card.reveal.is-visible:hover {
    transform: perspective(850px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-8px) scale(1.015);
}

@media (max-width: 1050px) {
    .site-nav { gap: .7rem; }
    .slide-cards { display: flex; width: calc(100vw - 4vw); padding-right: 4vw; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .slide-card { min-width: min(78vw, 390px); scroll-snap-align: start; }
    .coverage-grid { grid-template-columns: 1fr 1fr; }
    .community-logo-grid { grid-template-columns: repeat(2, 1fr); }
    .frisco-feature { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    :root { --wrap: 90vw; }
    .cursor-orb, .cursor-trail { display: none; }
    .site-header { top: .6rem; min-height: 4.4rem; padding-left: 1rem; }
    .brand__name { display: none; }
    .site-nav {
        position: fixed;
        z-index: 1;
        top: 5.55rem;
        right: .7rem;
        left: .7rem;
        display: flex;
        max-height: calc(100svh - 6.5rem);
        padding: 1.6rem;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        overflow-y: auto;
        border: 1px solid rgba(255,255,255,.28);
        border-radius: 1.35rem;
        color: var(--white);
        background: var(--royal-deep);
        box-shadow: 0 24px 55px rgba(6,19,74,.42), 0 5px 18px rgba(6,19,74,.24);
        backdrop-filter: blur(18px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-12px) scale(.985);
        transform-origin: top center;
        transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
    }
    .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
    .site-nav__link { display: block; padding: .55rem .2rem; font-family: "Manrope", sans-serif; font-size: clamp(2rem, 9vw, 3rem); font-weight: 800; letter-spacing: -.06em; line-height: 1; }
    .site-nav__link.is-active::after { bottom: calc(.65rem - 4px); }
    .site-nav .button { margin-top: .9rem; }
    .menu-toggle {
        position: relative;
        z-index: 2;
        display: grid;
        width: 3.1rem;
        height: 3.1rem;
        padding: .8rem;
        border: 0;
        border-radius: 50%;
        place-content: center;
        color: var(--ink);
        background: var(--yellow);
    }
    .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .menu-toggle i { display: block; width: 1.25rem; height: 2px; margin: 2px 0; background: currentColor; transition: transform .2s ease; }
    .menu-toggle[aria-expanded="true"] i:first-of-type { transform: translateY(3px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] i:last-of-type { transform: translateY(-3px) rotate(-45deg); }
    .lead-dock { right: .7rem; bottom: .7rem; padding: .45rem; }
    .lead-dock__prompt { display: none; }
    .lead-dock strong { padding: .65rem .85rem; }

    .section-header,
    .intro-grid,
    .community-feature,
    .story-grid,
    .contact-layout,
    .site-footer__top { grid-template-columns: 1fr; }
    .section-header { align-items: start; gap: 1.5rem; }
    .intro-grid__sticky,
    .contact-details { position: static; }
    .hero__content { padding-top: 8rem; }
    .hero__bottom { grid-template-columns: 1fr; }
    .hero__ticker { right: -2rem; bottom: 0; width: 68vw; min-width: 330px; }
    .page-hero::after { top: auto; right: -10rem; bottom: -10rem; }
    .page-hero__lead { margin-left: 0; }
    .impact-strip { grid-template-columns: 1fr; }
    .impact-stat { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.3); }
    .impact-stat:last-child { border-bottom: 0; }
    .community-feature__content { min-height: 30rem; }
    .benefit-grid,
    .coverage-grid,
    .next-steps { grid-template-columns: 1fr; }
    .benefit-card { min-height: 22rem; }
    .step { grid-template-columns: 3rem 1fr; }
    .step p { grid-column: 2; }
    .region { grid-template-columns: 1fr; gap: 1rem; }
    .community-logo-grid { gap: .7rem; }
    .community-logo-card { min-height: 8.5rem; padding: .75rem; }
    .community-logo-card img { max-height: 6rem; }
    .frisco-feature__logo { min-height: 15rem; }
    .minor-network { align-items: flex-start; flex-direction: column; gap: .45rem; }
    .minor-network > span { margin: 0 0 .35rem; }
    .principles { grid-template-columns: 1fr; }
    .principle { min-height: auto; border-right: 1px solid rgba(255,255,255,.24); border-bottom: 0; }
    .principle:last-child { border-bottom: 1px solid rgba(255,255,255,.24); }
    .principle span { margin-bottom: 3rem; }
    .form-grid { grid-template-columns: 1fr; }
    .field--full { grid-column: auto; }
    .site-footer__bottom { grid-template-columns: 1fr; gap: 1.5rem; text-align: left; }
    .footer-links { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}
.captcha-field {
    overflow-x: auto;
    padding: .25rem 0;
}
