:root {
            --public-navy: #0c2854;
            --public-ocean: #0796a6;
            --public-gold: #f5b92d;
            --public-cloud: #f4f8fc;
            --public-text: #10233d;
            --public-text-muted: #607287;
            --public-nav-bg: rgba(255, 255, 255, 0.92);
            --public-border: rgba(12, 40, 84, 0.12);
        }
        body {
            margin: 0;
            background:
                radial-gradient(circle at top left, rgba(7, 150, 166, 0.1), transparent 26%),
                radial-gradient(circle at right 10%, rgba(245, 185, 45, 0.08), transparent 22%),
                linear-gradient(180deg, #f4f8fc 0%, #eef4f7 42%, #ffffff 100%);
            color: var(--public-text);
        }
        html[data-theme="dark"] body,
        body[data-theme="dark"] {
            --public-navy: #dcecff;
            --public-ocean: #52d6dc;
            --public-gold: #f5c14b;
            --public-cloud: #0b1220;
            --public-text: #e2e8f0;
            --public-text-muted: #94a3b8;
            --public-nav-bg: rgba(15, 23, 42, 0.9);
            --public-border: rgba(148, 163, 184, 0.2);
            background:
                radial-gradient(circle at top left, rgba(82, 214, 220, 0.08), transparent 24%),
                radial-gradient(circle at right 10%, rgba(245, 193, 75, 0.06), transparent 20%),
                linear-gradient(180deg, #0b1220 0%, #101d31 44%, #16263d 100%);
            color: var(--public-text);
        }
        a {
            color: var(--public-ocean);
        }
        .public-nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            flex-wrap: wrap;
            padding: 18px 22px;
            border-radius: 999px;
            margin-bottom: 20px;
            background: var(--public-nav-bg) !important;
            border: 1px solid var(--public-border) !important;
        }
        .public-nav-links, .public-nav-meta {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }
        .public-nav-link {
            color: var(--public-text) !important;
            padding: 10px 14px;
            border-radius: 999px;
            font-weight: 600;
        }
        .public-nav-link:hover {
            background: rgba(15, 118, 110, 0.1);
            color: var(--public-ocean);
        }
        .public-brand {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        .public-brand strong {
            font-size: 1rem;
        }
        .public-brand-logo {
            display: block;
            width: 42px;
            height: 42px;
            flex: 0 0 42px;
            object-fit: contain;
            border-radius: 12px;
            background: #fff;
        }
        .public-site .public-nav {
            max-width: 1320px;
            margin: 20px auto 28px;
            border-radius: 18px;
            padding: 16px 20px;
            box-shadow: 0 10px 28px rgba(12, 40, 84, 0.06);
        }
        .public-site .public-nav-links {
            gap: 6px;
        }
        .public-site .public-brand {
            align-items: center;
            flex-direction: row;
            gap: 10px;
        }
        .public-site .public-nav-link {
            padding: 9px 11px;
            border-radius: 10px;
            font-size: .9rem;
            font-weight: 650;
        }
        .public-site .public-nav-link:hover {
            background: rgba(7, 150, 166, .09);
        }
        .public-site .public-nav-meta {
            gap: 8px;
        }
        .public-frame {
            display: grid;
            gap: 20px;
        }
        .public-footer {
            --footer-bg: <?= e($footerBackground) ?>;
            --footer-text: <?= e($footerText) ?>;
            --footer-accent: <?= e($footerAccent) ?>;
            margin-top: 40px;
            padding: 28px;
            border-radius: 28px;
            background:
                linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 42%),
                var(--footer-bg);
            color: var(--footer-text) !important;
            border: 1px solid rgba(255, 255, 255, 0.08);
            box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
        }
        .public-footer-grid {
            display: grid;
            gap: 18px;
            grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(180px, 1fr));
            align-items: start;
        }
        .public-footer-brand {
            display: grid;
            gap: 10px;
        }
        .public-footer-title {
            margin: 0;
            font-size: 1.25rem;
            color: var(--footer-text);
        }
        .public-footer-copy {
            margin: 0;
            color: color-mix(in srgb, var(--footer-text) 78%, transparent);
            line-height: 1.7;
        }
        .public-footer-block {
            display: grid;
            gap: 10px;
        }
        .public-footer-heading {
            margin: 0;
            font-size: 0.95rem;
            font-weight: 700;
            color: var(--footer-text);
        }
        .public-footer-line {
            margin: 0;
            line-height: 1.7;
            color: color-mix(in srgb, var(--footer-text) 80%, transparent);
            overflow-wrap: anywhere;
        }
        .public-footer-line a {
            color: var(--footer-accent);
        }
        .public-footer-bottom {
            margin-top: 20px;
            padding-top: 18px;
            border-top: 1px solid rgba(255, 255, 255, 0.12);
            font-size: 13px;
            color: color-mix(in srgb, var(--footer-text) 76%, transparent);
        }
        html[data-theme="dark"] .public-footer,
        body[data-theme="dark"] .public-footer {
            border-color: rgba(148, 163, 184, 0.12);
            box-shadow: 0 30px 80px rgba(2, 6, 23, 0.42);
        }
        @media (max-width: 860px) {
            .public-footer-grid {
                grid-template-columns: 1fr;
            }
        }
        .locale-switcher {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.72);
            border: 1px solid rgba(148, 163, 184, 0.2);
        }
        html[data-theme="dark"] .locale-switcher,
        body[data-theme="dark"] .locale-switcher {
            background: rgba(15, 23, 42, 0.78);
            border-color: rgba(148, 163, 184, 0.22);
        }
        .locale-switcher__link {
            min-width: 42px;
            padding: 8px 12px;
            border-radius: 999px;
            text-align: center;
            color: #475569;
            font-weight: 700;
            letter-spacing: 0.04em;
        }
        html[data-theme="dark"] .locale-switcher__link,
        body[data-theme="dark"] .locale-switcher__link {
            color: #cbd5e1;
        }
        .locale-switcher__link.is-active {
            background: linear-gradient(135deg, #0f766e, #1d4ed8);
            color: #fff;
        }
        .public-theme-toggle {
            width: 42px;
            height: 42px;
            border: 1px solid rgba(148, 163, 184, 0.2);
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.72);
            color: #334155;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 18px;
        }
        html[data-theme="dark"] .public-theme-toggle,
        body[data-theme="dark"] .public-theme-toggle {
            background: rgba(15, 23, 42, 0.78);
            border-color: rgba(148, 163, 184, 0.22);
            color: #e2e8f0;
        }
        .lunahome-snow-layer {
            position: fixed;
            inset: 0;
            pointer-events: none;
            overflow: hidden;
            z-index: 5;
        }
        .lunahome-snowflake {
            position: absolute;
            top: -16px;
            left: var(--snow-left, 50%);
            width: var(--snow-size, 6px);
            height: var(--snow-size, 6px);
            border-radius: 999px;
            background: rgba(255, 255, 255, var(--snow-opacity, 0.82));
            box-shadow: 0 0 var(--snow-glow, 8px) rgba(255, 255, 255, 0.72);
            animation:
                lunahome-snow-fall var(--snow-duration, 12s) linear var(--snow-delay, 0s) infinite,
                lunahome-snow-sway var(--snow-sway-duration, 4s) ease-in-out var(--snow-delay, 0s) infinite alternate;
        }
        .lunahome-snowflake--star {
            width: auto;
            height: auto;
            border-radius: 0;
            background: transparent;
            color: rgba(255, 255, 255, var(--snow-opacity, 0.86));
            font-size: var(--snow-size, 12px);
            line-height: 1;
            text-shadow: 0 0 var(--snow-glow, 8px) rgba(255, 255, 255, 0.72);
        }
        .lunahome-snowflake--star::before {
            content: "*";
        }
        body[data-snow-effect="nice-snowing"] .lunahome-snowflake--star::before {
            content: "❄";
        }
        @keyframes lunahome-snow-fall {
            to {
                transform: translate3d(var(--snow-drift, 28px), calc(100vh + 40px), 0) rotate(var(--snow-rotate, 180deg));
            }
        }
        @keyframes lunahome-snow-sway {
            from {
                margin-left: calc(var(--snow-sway, 18px) * -1);
            }
            to {
                margin-left: var(--snow-sway, 18px);
            }
        }
        body[data-theme="light"] .lunahome-snowflake {
            background: rgba(148, 163, 184, var(--snow-opacity, 0.82));
            box-shadow: 0 0 var(--snow-glow, 8px) rgba(148, 163, 184, 0.42);
        }
        body[data-theme="light"] .lunahome-snowflake--star {
            color: rgba(100, 116, 139, var(--snow-opacity, 0.82));
            text-shadow: 0 0 var(--snow-glow, 8px) rgba(148, 163, 184, 0.42);
        }
        @media (prefers-reduced-motion: reduce) {
            .lunahome-snow-layer {
                display: none;
            }
        }
