body:is([data-page="home"], [data-page="public-schedule"], [data-page="publications-catalogue"]) {
  margin: 0;
  font-family: Inter, "Segoe UI", sans-serif;
}
.public-portal-heading h1 {
  margin: 0;
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
}
.public-portal-header a { text-decoration: none; }
.public-portal-header button { cursor: pointer; }
.public-portal-header :is(a,button):focus-visible,
.home-mobile-menu :is(a,button):focus-visible { outline: 3px solid var(--portal-primary); outline-offset: 3px; }
.glass {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(255, 255, 255, 0.16));
            backdrop-filter: blur(18px) saturate(180%);
            -webkit-backdrop-filter: blur(18px) saturate(180%);
            border: 1px solid rgba(255, 255, 255, 0.28);
            box-shadow:
                0 24px 48px rgba(15, 23, 42, 0.16),
                inset 0 1px 0 rgba(255, 255, 255, 0.48),
                inset 0 -1px 0 rgba(148, 163, 184, 0.14);
        }
        .dark .glass {
            background: linear-gradient(180deg, rgba(15, 23, 42, 0.56), rgba(15, 23, 42, 0.24));
            border: 1px solid rgba(255, 255, 255, 0.12);
            box-shadow:
                0 24px 52px rgba(2, 6, 23, 0.34),
                inset 0 1px 0 rgba(255, 255, 255, 0.14),
                inset 0 -1px 0 rgba(15, 23, 42, 0.28);
        }
        .portal-home-nav {
            position: relative;
            overflow: hidden;
            border-radius: 4rem;
            background: rgba(10, 18, 32, 0.28);
            border: 1px solid rgba(255, 255, 255, 0.42);
            backdrop-filter: blur(18px) saturate(155%);
            -webkit-backdrop-filter: blur(18px) saturate(155%);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.75),
                0 0 12px rgba(0, 0, 0, 0.14),
                0 18px 38px rgba(15, 23, 42, 0.16),
                0 3px 10px rgba(15, 23, 42, 0.12);
            transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, color 220ms ease;
        }
        .portal-home-nav::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.58), rgba(255, 255, 255, 0.08) 36%, transparent 68%);
            pointer-events: none;
            opacity: 0.72;
        }
        .portal-home-nav::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            pointer-events: none;
            background: linear-gradient(225deg, rgba(255, 255, 255, 0.28), transparent 35%, transparent 65%, rgba(255, 255, 255, 0.18));
            opacity: 0.52;
        }
        .portal-home-nav__link,
        .portal-home-nav__cta,
        .portal-home-nav__menu {
            position: relative;
            z-index: 1;
            overflow: hidden;
            isolation: isolate;
        }
        .portal-home-nav__cluster {
            position: relative;
            display: inline-flex;
            align-items: center;
            overflow: hidden;
            border-radius: 1rem;
            border: 1px solid rgba(255, 255, 255, 0.42);
            background: rgba(255, 255, 255, 0.025);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.72),
                0 0 10px rgba(0, 0, 0, 0.16),
                0 3px 10px rgba(15, 23, 42, 0.12);
        }
        .portal-home-nav__cluster::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.58), transparent 40%, rgba(255, 255, 255, 0.16));
            opacity: 0.58;
            pointer-events: none;
        }
        .portal-home-nav__link::before,
        .portal-home-nav__cta::before,
        .portal-home-nav__menu::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.64), transparent 38%, rgba(255, 255, 255, 0.14));
            opacity: 0.54;
            pointer-events: none;
            z-index: -1;
        }
        .portal-home-nav__link::after,
        .portal-home-nav__cta::after,
        .portal-home-nav__menu::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(225deg, rgba(255, 255, 255, 0.22), transparent 40%, transparent 68%, rgba(255, 255, 255, 0.16));
            opacity: 0.46;
            pointer-events: none;
            z-index: -1;
        }
        .portal-home-nav__brand {
            position: relative;
            z-index: 1;
            color: rgba(248, 250, 252, 0.98);
            font-weight: 900;
            letter-spacing: -0.02em;
            text-shadow: 0 1px 14px rgba(15, 23, 42, 0.35);
            transition: color 220ms ease, text-shadow 220ms ease;
        }
        .portal-home-nav__link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2.85rem;
            padding: 0.72rem 1.15rem;
            color: rgba(248, 250, 252, 0.9);
            text-shadow: 0 1px 10px rgba(15, 23, 42, 0.35);
            transition: color 220ms ease, text-shadow 220ms ease;
        }
        .portal-home-nav__link + .portal-home-nav__link {
            border-left: 1px solid rgba(255, 255, 255, 0.22);
        }
        .portal-home-nav__link:hover {
            color: white;
            background: rgba(255, 255, 255, 0.14);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
        }
        .portal-home-nav__cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.18);
            border: 1px solid rgba(255, 255, 255, 0.3);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.22),
                0 12px 24px rgba(0, 120, 212, 0.2);
            transition: transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease, color 220ms ease;
        }
        .portal-home-nav__cta:hover {
            transform: translateY(-1px);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.34),
                0 16px 28px rgba(0, 120, 212, 0.24);
        }
        .portal-home-nav__menu {
            position: relative;
            z-index: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.95rem;
            height: 2.95rem;
            min-width: 2.95rem;
            border-radius: 1rem;
            border: 1px solid rgba(255, 255, 255, 0.36);
            background: rgba(255, 255, 255, 0.08);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.74),
                0 0 10px rgba(0, 0, 0, 0.16),
                0 3px 10px rgba(15, 23, 42, 0.12);
            color: rgba(248, 250, 252, 0.94);
            transition: color 220ms ease;
        }
        .portal-home-nav__menu:hover {
            color: white;
            background: rgba(255, 255, 255, 0.14);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.82),
                0 0 12px rgba(0, 0, 0, 0.16),
                0 4px 12px rgba(15, 23, 42, 0.16);
        }
        html.dark .portal-home-nav {
            background: linear-gradient(180deg, rgba(2, 6, 23, 0.88), rgba(2, 6, 23, 0.68));
            border-color: rgba(255, 255, 255, 0.08);
            box-shadow:
                0 24px 56px rgba(2, 6, 23, 0.42),
                inset 0 1px 0 rgba(255, 255, 255, 0.1),
                inset 0 -1px 0 rgba(15, 23, 42, 0.24);
        }
        .public-portal-shell .portal-home-nav {
        background: rgba(255, 255, 255, 0.24);
        border-color: rgba(255, 255, 255, 0.58);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.82),
          0 0 12px rgba(15, 23, 42, 0.08),
          0 18px 38px rgba(15, 23, 42, 0.12),
          0 3px 10px rgba(15, 23, 42, 0.08);
      }

      .public-portal-shell .portal-home-nav__brand {
        color: rgb(15, 23, 42);
        text-shadow: none;
      }

      .public-portal-shell .portal-home-nav__link,
      .public-portal-shell .portal-home-nav__menu {
        color: rgba(15, 23, 42, 0.82);
        text-shadow: none;
      }

      .public-portal-shell .portal-home-nav__cluster {
        background: rgba(255, 255, 255, 0.18);
        border-color: rgba(255, 255, 255, 0.56);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.82),
          0 0 10px rgba(15, 23, 42, 0.06),
          0 3px 10px rgba(15, 23, 42, 0.08);
      }

      .public-portal-shell .portal-home-nav__link:hover,
      .public-portal-shell .portal-home-nav__menu:hover {
        color: rgb(2, 132, 199);
      }

      .public-portal-shell .portal-home-nav__link + .portal-home-nav__link {
        border-left-color: rgba(71, 85, 105, 0.14);
      }

      .public-portal-shell .portal-home-nav__cta {
        background: linear-gradient(180deg, rgba(2, 132, 199, 0.96), rgba(3, 105, 161, 0.92));
        border-color: rgba(255, 255, 255, 0.34);
        color: rgb(255, 255, 255);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.28),
          0 12px 24px rgba(3, 105, 161, 0.24);
      }

      .public-portal-shell .portal-home-nav__cta:hover {
        color: rgb(255, 255, 255);
        background: linear-gradient(180deg, rgba(14, 165, 233, 0.98), rgba(2, 132, 199, 0.94));
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.34),
          0 16px 28px rgba(3, 105, 161, 0.28);
      }

      .public-portal-shell {
        min-height: 100vh;
        background:
          radial-gradient(circle at top left, rgba(14, 165, 233, 0.16), transparent 32%),
          radial-gradient(circle at top right, rgba(20, 184, 166, 0.16), transparent 28%),
          linear-gradient(180deg, rgba(248, 250, 252, 1), rgba(241, 245, 249, 1));
      }

      html.dark .public-portal-shell {
        background:
          radial-gradient(circle at top left, rgba(14, 165, 233, 0.22), transparent 32%),
          radial-gradient(circle at top right, rgba(20, 184, 166, 0.2), transparent 28%),
          linear-gradient(180deg, rgb(2, 6, 23), rgb(15, 23, 42));
      }

      .public-portal-stage {
        padding-top: 7rem;
        padding-bottom: 5rem;
      }

      .public-portal-heading {
        width: min(100%, 48rem);
        margin: 0 auto 1.75rem;
        padding: 0 1.5rem;
        text-align: center;
      }

      .public-portal-nav__links {
        display: none;
        align-items: center;
        gap: 1rem;
        flex: 0 0 auto;
      }

      .public-portal-nav__menu-button {
        display: inline-flex;
        flex: 0 0 auto;
      }

      .schedule-public-calendar {
        width: 100%;
        margin-top: 0;
        overflow: hidden;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
      }

      .home-mobile-menu[hidden] {
        display: none;
      }

      .home-mobile-menu {
        position: fixed;
        inset: 0;
        z-index: 60;
      }

      .home-mobile-menu__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(15, 23, 42, 0.5);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
      }

      .home-mobile-menu__panel {
        position: relative;
        margin-left: auto;
        width: min(100%, 24rem);
        min-height: 100%;
        padding: 1.5rem;
        background: linear-gradient(180deg, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.9));
        color: white;
        box-shadow: -24px 0 48px rgba(2, 6, 23, 0.24);
      }

      .home-mobile-menu__header,
      .home-mobile-menu__section,
      .home-mobile-menu__actions {
        position: relative;
        z-index: 1;
      }

      .home-mobile-menu__header {
        display: flex;
        align-items: start;
        justify-content: space-between;
        gap: 1rem;
        margin-bottom: 1.5rem;
      }

      .home-mobile-menu__eyebrow {
        margin: 0;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(148, 163, 184, 0.9);
      }

      .home-mobile-menu__title {
        margin-top: 0.45rem;
        font-size: 1.4rem;
        font-weight: 700;
      }

      .home-mobile-menu__close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.8rem;
        height: 2.8rem;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, 0.14);
        background: rgba(255, 255, 255, 0.08);
      }

      .home-mobile-menu__section {
        display: grid;
      }

      .home-mobile-menu__link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 1rem 0;
        font-weight: 600;
        color: rgba(241, 245, 249, 0.96);
      }

      .home-mobile-menu__link + .home-mobile-menu__link {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
      }

      .home-mobile-menu__actions {
        margin-top: 1.5rem;
      }

      html.dark .public-portal-shell .portal-home-nav {
        background: linear-gradient(180deg, rgba(2, 6, 23, 0.88), rgba(2, 6, 23, 0.68));
        border-color: rgba(255, 255, 255, 0.08);
        box-shadow:
          0 24px 56px rgba(2, 6, 23, 0.42),
          inset 0 1px 0 rgba(255, 255, 255, 0.1),
          inset 0 -1px 0 rgba(15, 23, 42, 0.24);
      }

      html.dark .public-portal-shell .portal-home-nav__brand {
        color: rgba(248, 250, 252, 0.98);
        text-shadow: 0 1px 14px rgba(15, 23, 42, 0.35);
      }

      html.dark .public-portal-shell .portal-home-nav__link,
      html.dark .public-portal-shell .portal-home-nav__menu {
        color: rgba(248, 250, 252, 0.9);
        text-shadow: 0 1px 10px rgba(15, 23, 42, 0.35);
      }

      html.dark .public-portal-shell .portal-home-nav__cluster {
        background: rgba(255, 255, 255, 0.025);
        border-color: rgba(255, 255, 255, 0.42);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.72),
          0 0 10px rgba(0, 0, 0, 0.16),
          0 3px 10px rgba(15, 23, 42, 0.12);
      }

      html.dark .public-portal-shell .portal-home-nav__link + .portal-home-nav__link {
        border-left-color: rgba(255, 255, 255, 0.22);
      }

      @media (max-width: 767px) {
        .public-portal-stage {
          padding-top: 6rem;
          padding-bottom: 3rem;
        }

        .public-portal-heading {
          margin-bottom: 1.25rem;
          padding: 0 1rem;
        }
      }

      @media (min-width: 1100px) {
        .public-portal-nav__links {
          display: flex;
        }

        .public-portal-nav__menu-button {
          display: none;
        }
      }
.portal-home-nav__link.is-active { background: rgba(255,255,255,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.78); }

.public-portal-header { position: fixed; inset: 0 0 auto; z-index: 50; padding: 1rem 1.5rem; }
.public-portal-header .portal-home-nav { max-width: 80rem; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.5rem; }
.public-portal-header .portal-home-nav__brand { font-size: 1.125rem; line-height: 1.2; flex-shrink: 0; }
.public-portal-header .public-portal-nav__links { font-size: .875rem; font-weight: 500; gap: .75rem; }
.public-portal-header .portal-home-nav__link { padding-inline: .9rem; }
.public-portal-header .portal-home-nav__cta { padding: .65rem 1.1rem; border-radius: .75rem; }
.public-portal-header .material-icons { line-height: 1; }
.home-mobile-menu__panel { height: 100%; overflow-y: auto; }
.public-portal-footer__inner { max-width: 80rem; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 0 1.5rem; }
.public-portal-footer__inner img { height: 2.5rem; max-width: 9rem; }
.public-portal-footer__inner p { font-size: .875rem; color: #94a3b8; }
.public-portal-footer__links { display: flex; gap: 1.5rem; white-space: nowrap; font-size: .875rem; color: #94a3b8; }
.public-portal-theme-toggle { position: fixed; right: 2rem; bottom: 2rem; z-index: 50; width: 3rem; height: 3rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--portal-primary); }
@media (max-width: 767px) { .public-portal-header { padding-inline: 1rem; } .public-portal-header .portal-home-nav { padding-inline: 1.1rem; } .public-portal-footer__inner { flex-direction: column; text-align: center; } }

