:root {
    --public-ink: #001D39;
    --public-navy: #0A4174;
    --public-steel: #49769F;
    --public-teal: #4E8EA2;
    --public-sky: #7BBDE8;
    --public-ice: #BDD8E9;
    --public-line: rgba(255, 255, 255, 0.34);
    --public-soft-line: rgba(189, 216, 233, 0.24);
    --public-glass: linear-gradient(145deg, rgba(255, 255, 255, 0.26), rgba(189, 216, 233, 0.14));
    --public-glass-hover: linear-gradient(145deg, rgba(255, 255, 255, 0.34), rgba(189, 216, 233, 0.2));
    --public-panel: rgba(214, 227, 237, 0.84);
    --public-panel-strong: rgba(228, 238, 246, 0.9);
    --public-input: rgba(244, 249, 252, 0.72);
    --public-shadow: 0 24px 70px rgba(0, 29, 57, 0.28);
    --public-shadow-strong: 0 32px 90px rgba(0, 29, 57, 0.34);
}

.public-glass-page {
    font-family: 'Manrope', 'Inter', system-ui, sans-serif !important;
    color: #EAF6FC;
    background:
        radial-gradient(circle at 16% 12%, rgba(123, 189, 232, 0.48), transparent 26rem),
        radial-gradient(circle at 88% 8%, rgba(78, 142, 162, 0.54), transparent 28rem),
        radial-gradient(circle at 52% 74%, rgba(10, 65, 116, 0.72), transparent 34rem),
        linear-gradient(145deg, #BDD8E9 0%, #7BBDE8 18%, #49769F 42%, #0A4174 68%, #001D39 100%) !important;
    background-attachment: fixed;
    min-height: 100vh;
}

.public-glass-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background:
        linear-gradient(115deg, rgba(255, 255, 255, 0.28), transparent 24%, rgba(255, 255, 255, 0.08) 46%, transparent 70%),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.25), transparent 34rem);
    mix-blend-mode: soft-light;
}

.public-page-shell {
    position: relative;
    overflow: hidden;
}

.public-page-shell::before,
.public-page-shell::after {
    content: "";
    position: absolute;
    width: 26rem;
    height: 26rem;
    border-radius: 999px;
    filter: blur(30px);
    opacity: 0.26;
    pointer-events: none;
    z-index: 0;
}

.public-page-shell::before {
    top: 6rem;
    left: -10rem;
    background: #7BBDE8;
}

.public-page-shell::after {
    right: -11rem;
    top: 22rem;
    background: #4E8EA2;
}

.public-page-shell > * {
    position: relative;
    z-index: 1;
}

.public-glass-nav {
    background: rgba(0, 29, 57, 0.42) !important;
    border-bottom: 1px solid rgba(189, 216, 233, 0.24);
    box-shadow: 0 12px 40px rgba(0, 29, 57, 0.18);
    backdrop-filter: blur(28px) saturate(1.4);
    -webkit-backdrop-filter: blur(28px) saturate(1.4);
}

.public-glass-nav h1,
.public-glass-nav a,
.public-glass-nav button,
.public-glass-nav span {
    color: #F4FBFF !important;
}

.public-nav-link {
    border: 1px solid transparent;
    border-radius: 999px !important;
    color: rgba(221, 238, 247, 0.88) !important;
    transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.public-nav-link:hover {
    background: rgba(189, 216, 233, 0.14) !important;
    border-color: rgba(189, 216, 233, 0.22) !important;
    color: white !important;
    transform: translateY(-1px);
}

.public-nav-link-active {
    background: rgba(189, 216, 233, 0.24) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: white !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 12px 30px rgba(0, 29, 57, 0.18);
}

.public-glass-panel,
.public-glass-card,
.public-glass-modal {
    background: var(--public-glass) !important;
    border: 1px solid var(--public-line) !important;
    box-shadow: var(--public-shadow) !important;
    backdrop-filter: blur(30px) saturate(1.25);
    -webkit-backdrop-filter: blur(30px) saturate(1.25);
    position: relative;
    overflow: hidden;
}

.public-glass-panel::before,
.public-glass-card::before,
.public-glass-modal::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(130deg, rgba(255, 255, 255, 0.38), transparent 32%, rgba(255, 255, 255, 0.08));
    opacity: 0.82;
    pointer-events: none;
}

.public-glass-card:hover {
    background: var(--public-glass-hover) !important;
    box-shadow: var(--public-shadow-strong) !important;
    transform: translateY(-6px);
}

.public-glass-panel > *,
.public-glass-card > *,
.public-glass-modal > * {
    position: relative;
    z-index: 1;
}

.public-panel-title,
.public-glass-panel h1,
.public-glass-panel h2,
.public-glass-panel h3,
.public-glass-card h1,
.public-glass-card h2,
.public-glass-card h3,
.public-glass-modal h1,
.public-glass-modal h2,
.public-glass-modal h3 {
    color: var(--public-ink) !important;
}

.public-panel-copy,
.public-glass-panel p,
.public-glass-panel label,
.public-glass-panel span,
.public-glass-panel li,
.public-glass-card p,
.public-glass-card label,
.public-glass-card span,
.public-glass-card li,
.public-glass-modal p,
.public-glass-modal label,
.public-glass-modal span {
    color: #17324D !important;
}

.public-glass-page .public-heading,
.public-glass-page .public-subheading,
.public-glass-page .public-eyebrow {
    color: #EAF6FC !important;
}

.public-heading {
    text-shadow: 0 10px 30px rgba(0, 29, 57, 0.24);
}

.public-subheading {
    color: rgba(231, 242, 251, 0.88) !important;
}

.public-cta,
.public-glass-page button.bg-gradient-to-r,
.public-glass-page a.bg-gradient-to-r {
    background: linear-gradient(135deg, #7BBDE8, #4E8EA2 55%, #0A4174) !important;
    color: #F7FCFF !important;
    box-shadow: 0 16px 42px rgba(10, 65, 116, 0.3) !important;
}

.public-cta:hover,
.public-glass-page button.bg-gradient-to-r:hover,
.public-glass-page a.bg-gradient-to-r:hover {
    filter: brightness(1.05);
    box-shadow: 0 24px 62px rgba(10, 65, 116, 0.42) !important;
}

.public-secondary-btn {
    background: rgba(189, 216, 233, 0.2) !important;
    color: #0A4174 !important;
    border: 1px solid rgba(255, 255, 255, 0.32) !important;
    backdrop-filter: blur(20px);
}

.public-secondary-btn:hover {
    background: rgba(189, 216, 233, 0.3) !important;
}

.public-glass-page input,
.public-glass-page select,
.public-glass-page textarea {
    background: var(--public-input) !important;
    border: 1px solid rgba(123, 189, 232, 0.34) !important;
    color: #16314B !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.58);
}

.public-glass-page input::placeholder,
.public-glass-page textarea::placeholder {
    color: #5F89A8 !important;
}

.public-glass-page input:focus,
.public-glass-page select:focus,
.public-glass-page textarea:focus {
    outline: none;
    border-color: rgba(78, 142, 162, 0.72) !important;
    box-shadow:
        0 0 0 4px rgba(123, 189, 232, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.62) !important;
}

.public-glass-page .bg-gray-50,
.public-glass-page .bg-blue-50,
.public-glass-page .bg-green-50,
.public-glass-page .bg-white\/80,
.public-glass-page .bg-white\/85,
.public-glass-page .bg-white {
    background: rgba(214, 227, 237, 0.62) !important;
    border-color: var(--public-soft-line) !important;
}

.public-glass-page .text-gray-900,
.public-glass-page .text-gray-800,
.public-glass-page .text-gray-700,
.public-glass-page .text-gray-600,
.public-glass-page .text-gray-500,
.public-glass-page .text-gray-400 {
    color: #17324D !important;
}

.public-glass-footer {
    background: rgba(0, 29, 57, 0.52) !important;
    border-top: 1px solid rgba(189, 216, 233, 0.2) !important;
    backdrop-filter: blur(26px);
    -webkit-backdrop-filter: blur(26px);
}

.public-glass-footer h3,
.public-glass-footer h4,
.public-glass-footer p,
.public-glass-footer a,
.public-glass-footer span {
    color: #EAF6FC !important;
}

.public-glass-footer .border-amber-500,
.public-glass-footer .border-t {
    border-color: rgba(189, 216, 233, 0.24) !important;
}

.public-glass-page .text-amber-100,
.public-glass-page .text-orange-100 {
    color: #BDD8E9 !important;
}

.public-inline-badge {
    background: rgba(189, 216, 233, 0.18) !important;
    border: 1px solid rgba(255, 255, 255, 0.26) !important;
    color: #0A4174 !important;
}

@media (max-width: 768px) {
    .public-glass-page {
        background-attachment: scroll;
    }

    .public-page-shell::before,
    .public-page-shell::after {
        width: 18rem;
        height: 18rem;
        filter: blur(24px);
    }
}
