@font-face {
    font-family: "Aptos";
    src: url("/assets/brand/fonts/Aptos.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: optional;
}
@font-face {
    font-family: "Aptos";
    src: url("/assets/brand/fonts/Aptos-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: optional;
}
@font-face {
    font-family: "Aptos Display";
    src: url("/assets/brand/fonts/Aptos-Display.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: optional;
}
@font-face {
    font-family: "Aptos Display";
    src: url("/assets/brand/fonts/Aptos-Display-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: optional;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: "Aptos", "Segoe UI", sans-serif;
    color: var(--ink);
    background:
        radial-gradient(circle at top left, rgba(255,97,15,0.14), transparent 22%),
        radial-gradient(circle at top right, rgba(5,191,224,0.16), transparent 26%),
        radial-gradient(circle at 20% 100%, rgba(79,23,168,0.10), transparent 24%),
        linear-gradient(180deg, #ffffff 0%, var(--bg) 42%, var(--bg-strong) 100%);
}
a { color: var(--primary); text-decoration: none; }
img { max-width: 100%; display: block; }
.main { padding: 28px; min-width: 0; }
.topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom: 24px; }
.topbar-clock {
    text-align: right;
    min-width: 240px;
    padding: 10px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(79,23,168,0.10);
    box-shadow: 0 10px 24px rgba(79,23,168,0.06);
}
.topbar-clock strong {
    display:block;
    font-size: 1rem;
    font-family: "Aptos Display", "Aptos", sans-serif;
}
.topbar-clock .small {
    margin-top: 4px;
}
@media (max-width: 1100px) {
    .now-card-inline-media {
        grid-template-columns: 96px minmax(0, 1fr);
    }
    .now-card-type-product .now-card-inline-media {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 14px;
    }
}
@media (max-width: 1100px) {
    .marketing-hero, .participant-hero, .participant-grid, .hero, .grid-2, .grid-3, .catalog-grid, .now-grid, .member-spotlight-stage, .offer-grid, .fresh-grid { grid-template-columns: 1fr; }
    .newsletter-shell { grid-template-columns: 1fr; }
    .hero-stat-grid { grid-template-columns: 1fr; }
    .now-primary {
        max-width: none;
        height: auto;
        min-height: 0;
    }
    .content-page-card-body {
        padding: 24px;
    }
    .content-prose {
        font-size: 16px;
        line-height: 1.8;
    }
    .now-primary-shell {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .event-card-support {
        grid-template-columns: 1fr;
    }
    .event-registration-rail.compact {
        margin-top: 0;
    }
    .start-strip {
        grid-template-columns: 1fr;
    }
    .feature-nav-row {
        align-items: stretch;
    }
    .feature-nav-chip {
        width: 48px;
        height: 48px;
    }
    .now-primary-head {
        flex-direction: column;
        align-items:flex-start;
    }
    .now-primary-nav {
        width:100%;
        justify-content:flex-start;
    }
    .event-date-card {
        max-width: 200px;
    }
    .start-strip-item {
        border-left: 0;
        border-top: 1px solid rgba(79,23,168,0.10);
    }
    .public-nav {
        grid-template-columns: 1fr;
        align-items:flex-start;
    }
    .public-menu-wrap {
        width:100%;
        justify-content:flex-start;
    }
    .public-menu {
        flex-wrap:wrap;
        justify-content:flex-start;
        overflow-x: auto;
        overflow-y: visible;
        padding-bottom: 4px;
        scrollbar-width: thin;
    }
    .public-menu-group { width:100%; }
    .public-menu-trigger { width:100%; min-width:0; }
    .public-menu-panel {
        position: static;
        width: 100%;
        margin-top: 10px;
        transform: none;
        box-shadow: none;
    }
    .public-actions {
        flex-wrap:wrap;
        justify-content:flex-start;
    }
    .public-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 960px) {
    .shell { grid-template-columns: 1fr; }
    .shell.is-collapsed { grid-template-columns: 1fr; }
    .sidebar {
        position: static;
        height: auto;
        padding-bottom: 10px;
    }
    .sidebar-toggle { display: none; }
    .nav-group-panel { display: none !important; }
    .nav-group-meta,
    .nav-footer-meta { display: block; }
    .nav-group-toggle::after { display: block !important; }
    .nav-group-items { display: none; }
    .nav-group.is-open .nav-group-items { display: block; }
    .main, .public-shell, .participant-shell { padding: 18px; }
    .public-nav {
        display:flex;
        align-items:flex-start;
        flex-direction:column;
        position: static;
        top: auto;
        left: auto;
        transform: none;
        width: auto;
        padding: 0 0 18px;
        margin-bottom: 18px;
        background: transparent;
        border: 0;
        border-radius: 0;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: none;
    }
    .public-nav-offset {
        display: none;
    }
    .public-menu-wrap { width:100%; align-items:flex-start; }
    .public-menu { width:100%; flex-direction:column; align-items:stretch; }
    .public-menu-group { width:100%; }
    .public-menu-trigger { width:100%; justify-content:space-between; }
    .public-menu-panel {
        position:static;
        display:grid;
        margin-top:10px;
        min-width:0;
        box-shadow:none;
        border-radius:20px;
    }
    .public-menu-group:hover .public-menu-panel,
    .public-menu-group:focus-within .public-menu-panel {
        display:grid;
    }
    .public-actions { width:100%; justify-content:flex-start; }
    .brand-badge { width: 148px; min-width: 148px; height: 64px; }
    .member-spotlight {
        padding: 28px;
    }
    .newsletter-band {
        padding: 40px 24px;
    }
    .newsletter-panel-card {
        padding: 22px;
    }
    .newsletter-panel-card strong {
        font-size: 26px;
    }
    .public-footer-grid {
        grid-template-columns: 1fr;
    }
}
