/* ============================================================================
   V3 glass design system: campus video -> dark navy/violet overlay -> frosted-glass panels.

   Loaded (last) by layouts/v3.blade.php on every V3-shell page that has a page-level
   background video (body.v3-glass). Everything is scoped to body.v3-glass, so legacy-shell
   pages and the homepage's light sections are untouched.

   Reusable building blocks (use these in new views instead of page-specific CSS):
     .v3-video-layer / .v3-video-overlay   the background (partials/v3/video-background)
     .v3-glass-hero     page title panel            .v3-glass-section   a grouped content panel
     .v3-glass-card     a card inside a panel       .v3-glass-meta      small caption / chip
     .v3-glass-list     list of rows                .v3-glass-grid      responsive card grid
     .v3-glass-actions  button row
   Existing V3 primitives (.v3-pagehead, .v3-section, .v3-card, .v3-fact, .v3-tile, ...) are mapped to the
   same look below, so current pages need no markup changes.
   ========================================================================== */

body.v3.v3-glass {
  --v3-glass-bg: linear-gradient(160deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.035));
  --v3-glass-bg-card: rgba(255, 255, 255, 0.07);
  --v3-glass-bg-card-hover: rgba(255, 255, 255, 0.12);
  --v3-glass-border: rgba(255, 255, 255, 0.16);
  --v3-glass-blur: 20px;
  --v3-glass-radius: clamp(22px, 3.2vw, 32px);
  --v3-glass-radius-card: 20px;
  --v3-glass-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 30px 80px -40px rgba(0, 0, 0, 0.8);
  --v3-overlay-dark: rgba(5, 8, 18, 0.66);
  --v3-overlay-violet: rgba(125, 100, 255, 0.16);
  --v3-text-primary: #f2f6fb;
  --v3-text-muted: #aab6c8;
  --v3-accent: #5ad7ff;
  --v3-accent-2: #9b7bff;
  --v3-panel-width: min(1280px, calc(100% - 2 * clamp(1rem, 4vw, 2rem)));
  background: #05070d;
  color: var(--v3-text-primary);
}

/* The content area re-maps the shared V3 colour tokens to their dark-glass values; header, topbar and footer
   keep their own look. */
body.v3-glass #v3-main {
  --v3-text: var(--v3-text-primary);
  --v3-muted: var(--v3-text-muted);
  --v3-soft: #8f9db2;
  --v3-blue: #7cc0ff;
  --v3-topbar: var(--v3-accent);
  --v3-bg: transparent;
  --v3-tint-1: transparent;
  --v3-tint-2: rgba(255, 255, 255, 0.08);
  --v3-gray: rgba(255, 255, 255, 0.06);
  --v3-line: rgba(255, 255, 255, 0.14);
  position: relative;
  isolation: isolate;
  overflow: clip;
  min-height: calc(100vh - 110px);
  color: var(--v3-text-primary);
}

/* ---- the video layer ---------------------------------------------------- */
.v3-video-layer {
  pointer-events: none;
  overflow: hidden;
  background: #05070d var(--v3-poster) center 30% / cover no-repeat;
}
.v3-video-layer--page {
  position: sticky;
  top: 0;
  z-index: -1;
  height: 100vh;
  height: 100svh;
  margin-bottom: -100vh;
  margin-bottom: -100svh;
}
.v3-video-layer--hero {
  position: absolute;
  inset: 0;
  z-index: -1; /* under the hero copy and under the hero's own glow/vignette layers */
}
.v3-video-layer__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
  pointer-events: none;
}
.v3-video-layer__video::-webkit-media-controls,
.v3-video-layer__video::-webkit-media-controls-panel,
.v3-video-layer__video::-webkit-media-controls-start-playback-button { display: none !important; }
.v3-video-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 90% at 50% 45%, rgba(5, 7, 13, 0) 30%, rgba(5, 7, 13, 0.7) 100%),
    linear-gradient(135deg, rgba(76, 141, 255, 0.16), var(--v3-overlay-violet, rgba(125, 100, 255, 0.16)) 60%, rgba(255, 106, 213, 0.08)),
    linear-gradient(180deg, rgba(5, 8, 18, 0.62), rgba(5, 8, 18, 0.74));
}
/* hero mode sits under hero copy and is a bit lighter at the top so the video reads */
.v3-video-layer--hero .v3-video-overlay {
  background:
    radial-gradient(120% 100% at 50% 40%, rgba(5, 7, 13, 0.1) 25%, rgba(5, 7, 13, 0.72) 100%),
    linear-gradient(135deg, rgba(76, 141, 255, 0.2), rgba(125, 100, 255, 0.18)),
    linear-gradient(180deg, rgba(5, 8, 18, 0.5), rgba(5, 8, 18, 0.78));
}

/* ---- glass building blocks -------------------------------------------- */
.v3-glass-hero,
.v3-glass-section {
  width: var(--v3-panel-width, min(1280px, calc(100% - 2rem)));
  margin-inline: auto;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--v3-glass-border, rgba(255, 255, 255, 0.16));
  border-radius: var(--v3-glass-radius, 28px);
  background: var(--v3-glass-bg, rgba(255, 255, 255, 0.07));
  -webkit-backdrop-filter: blur(var(--v3-glass-blur, 20px)) saturate(140%);
  backdrop-filter: blur(var(--v3-glass-blur, 20px)) saturate(140%);
  box-shadow: var(--v3-glass-shadow);
}
.v3-glass-card {
  border: 1px solid var(--v3-glass-border, rgba(255, 255, 255, 0.16));
  border-radius: var(--v3-glass-radius-card, 20px);
  background: var(--v3-glass-bg-card, rgba(255, 255, 255, 0.07));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.v3-glass-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--v3-glass-border, rgba(255, 255, 255, 0.16));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  font-size: 0.8rem;
  color: var(--v3-text-muted, #aab6c8);
}
.v3-glass-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.v3-glass-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.v3-glass-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---- existing V3 primitives mapped to the glass look -------------------- */
/* page title block => one glass hero panel */
body.v3-glass .v3-pagehead { background: transparent; border: 0; padding: clamp(20px, 4vw, 44px) 0 0; }
body.v3-glass .v3-pagehead > .v3-container,
body.v3-glass .v3-section > .v3-container:not(.pv3-wide) {
  width: var(--v3-panel-width);
  max-width: none;
  margin-inline: auto;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--v3-glass-border);
  border-radius: var(--v3-glass-radius);
  background: var(--v3-glass-bg);
  -webkit-backdrop-filter: blur(var(--v3-glass-blur)) saturate(140%);
  backdrop-filter: blur(var(--v3-glass-blur)) saturate(140%);
  box-shadow: var(--v3-glass-shadow);
}
body.v3-glass .v3-section { background: transparent; padding-block: clamp(10px, 2vw, 22px); }
body.v3-glass .v3-section:last-of-type { padding-bottom: clamp(32px, 6vw, 72px); }
body.v3-glass .v3-pagehead__title,
body.v3-glass .v3-h2 {
  background: linear-gradient(100deg, #ffffff 10%, #cfe6ff 50%, #c9b8ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
body.v3-glass .v3-crumbs a { color: var(--v3-accent); }
body.v3-glass .v3-crumbs a:hover { color: #fff; }
body.v3-glass .v3-eyebrow { color: var(--v3-accent); }
body.v3-glass .v3-lead,
body.v3-glass .v3-prose { color: #d3dcea; }
body.v3-glass .v3-h3 { color: var(--v3-text-primary); }

/* cards */
body.v3-glass .v3-card {
  background: var(--v3-glass-bg-card);
  border: 1px solid var(--v3-glass-border);
  border-radius: var(--v3-glass-radius-card);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  color: var(--v3-text-primary);
}
body.v3-glass a.v3-card:hover,
body.v3-glass .v3-card--hover:hover { background: var(--v3-glass-bg-card-hover); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 32px -8px rgba(90, 215, 255, 0.35); }
body.v3-glass .v3-fact dt { color: #93a3ba; }
body.v3-glass .v3-fact dd,
body.v3-glass .v3-tile__title { color: var(--v3-text-primary); }
body.v3-glass .v3-tile__meta { color: var(--v3-text-muted); }
body.v3-glass .v3-link { color: var(--v3-accent); }
body.v3-glass .v3-doc__tag { background: rgba(90, 215, 255, 0.14); color: var(--v3-accent); }
body.v3-glass .v3-note { background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.1); color: #c6d2e4; }
body.v3-glass .v3-note a { color: var(--v3-accent); }
body.v3-glass .v3-pending__badge { justify-self: start; background: rgba(251, 191, 106, 0.14); color: #fbbf6a; }
body.v3-glass .v3-pending__text { color: var(--v3-text-muted); }
body.v3-glass .v3-chips li { background: rgba(255, 255, 255, 0.08); color: #d3dcea; border: 1px solid rgba(255, 255, 255, 0.12); }
body.v3-glass .v3-vision { background: linear-gradient(135deg, rgba(76, 141, 255, 0.18), rgba(155, 123, 255, 0.14)); }
body.v3-glass .v3-vision__text { color: #fff; }
body.v3-glass .v3-mission__no { background: rgba(90, 215, 255, 0.14); color: var(--v3-accent); }
body.v3-glass .v3-mission p,
body.v3-glass .v3-timeline__item p { color: #c9d4e4; }
body.v3-glass .v3-pager { border-top-color: var(--v3-glass-border); }

/* buttons */
body.v3-glass #v3-main .v3-pill--dark {
  background: linear-gradient(100deg, #1f6fe0, #6a4de6 70%, #a645d8);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 10px 34px -12px rgba(106, 77, 230, 0.8);
}
body.v3-glass #v3-main .v3-pill--dark:hover { background: linear-gradient(100deg, #2b7bf0, #7a5cf0 70%, #b552e6); }
body.v3-glass #v3-main .v3-pill--ghost { background: rgba(255, 255, 255, 0.08); border-color: var(--v3-glass-border); color: var(--v3-text-primary); }
body.v3-glass #v3-main .v3-pill--ghost:hover { background: rgba(255, 255, 255, 0.16); }
body.v3-glass #v3-main :focus-visible { outline-color: var(--v3-accent); }

/* ---- staff directory (people slider + profile dialog) ----------------- */
body.v3-glass .pv3-btn { background: rgba(255, 255, 255, 0.1); border-color: var(--v3-glass-border); color: #fff; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
body.v3-glass .pv3-btn:hover { background: rgba(255, 255, 255, 0.2); }
body.v3-glass .pv3-photo--empty { background: rgba(255, 255, 255, 0.06); border-color: var(--v3-glass-border); color: var(--v3-accent); }
body.v3-glass .pv3-dialog {
  background: linear-gradient(160deg, rgba(22, 28, 52, 0.94), rgba(10, 13, 26, 0.96));
  border: 1px solid var(--v3-glass-border);
  color: var(--v3-text-primary);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 40px 120px -30px rgba(0, 0, 0, 0.9);
}
body.v3-glass .pv3-dialog::backdrop { background: rgba(3, 5, 12, 0.7); }
body.v3-glass .pv3-dialog__close { background: rgba(255, 255, 255, 0.1); border-color: var(--v3-glass-border); color: #fff; }
body.v3-glass .pv3-dialog__close:hover { background: rgba(255, 255, 255, 0.2); }
body.v3-glass :is(.pv3-dl, .pv3-flip-hint) { color: #0b1020; }
body.v3-glass .pv3-profile__desc { color: var(--v3-text-muted); }

/* ---- footer: same component, toned for the dark page ------------------- */
body.v3-glass .v3-footer { background: #070a12; border-top: 1px solid rgba(255, 255, 255, 0.08); color: #aab6c8; }
body.v3-glass .v3-footer__name,
body.v3-glass .v3-footer__title { color: #f2f6fb; }
body.v3-glass .v3-footer a:hover { color: #5ad7ff; }
body.v3-glass .v3-footer__bar { border-top-color: rgba(255, 255, 255, 0.08); }
body.v3-glass .v3-footer__contact small { color: #8896ab; }


/* ============================================================================
   Page families that still use their own page stylesheets (programs, information hub, news/agenda
   publications). Their blocks are re-skinned to the same glass look WITHOUT changing markup or content:
   full-bleed light sections become transparent, each section's inner block becomes one glass panel, and
   text/cards/buttons take the dark-glass tokens.
   ========================================================================== */

/* shared: breadcrumb / section-nav strip */
body.v3-glass .site-page-orientation { background: transparent; border-bottom: 0; padding-top: clamp(12px, 2vw, 24px); }
body.v3-glass .site-page-orientation__inner {
  width: var(--v3-panel-width); max-width: none; margin-inline: auto;
  padding: 14px clamp(18px, 3vw, 28px);
  border: 1px solid var(--v3-glass-border); border-radius: 22px;
  background: var(--v3-glass-bg);
  -webkit-backdrop-filter: blur(var(--v3-glass-blur)); backdrop-filter: blur(var(--v3-glass-blur));
  box-shadow: var(--v3-glass-shadow);
}
body.v3-glass .site-breadcrumb__item,
body.v3-glass .site-breadcrumb__separator,
body.v3-glass .site-section-nav__label { color: var(--v3-text-muted); }
body.v3-glass .site-breadcrumb__link,
body.v3-glass .site-section-nav__link { color: var(--v3-accent); }
body.v3-glass .site-breadcrumb__link:hover,
body.v3-glass .site-section-nav__link:hover { color: #fff; }
body.v3-glass .site-breadcrumb__item--current { color: var(--v3-text-primary); }

/* full-bleed section bands => transparent; inner blocks => glass panels */
body.v3-glass.site-program :is(.program-hero, .program-overview, .program-academic-information, .program-map-section, .program-registration, .program-cta, .program-lecturers, .program-section),
body.v3-glass.site-information-page :is(.information-hero, .information-directory, .information-empty-section, .portal-services, .news-featured, .news-discovery, .publication-browser, .publication-latest, .information-feed),
body.v3-glass.announcement-page :is(.announcement-current, .announcement-history) {
  background: transparent; border: 0; box-shadow: none; padding-block: clamp(10px, 2vw, 20px);
}
body.v3-glass.site-program :is(.program-hero__inner, .program-overview__inner, .program-academic-information__inner, .program-map-section__inner, .program-registration__inner, .program-cta__inner, .program-lecturers__inner, .program-section__inner),
body.v3-glass.site-information-page :is(.information-hero__inner, .information-directory__inner, .information-empty-section__inner, .portal-services__inner) {
  width: var(--v3-panel-width); max-width: none; margin-inline: auto;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid var(--v3-glass-border); border-radius: var(--v3-glass-radius);
  background: var(--v3-glass-bg);
  -webkit-backdrop-filter: blur(var(--v3-glass-blur)) saturate(140%); backdrop-filter: blur(var(--v3-glass-blur)) saturate(140%);
  box-shadow: var(--v3-glass-shadow);
}
body.v3-glass.site-program .program-cta::before { display: none; }

/* headings, prose, labels */
body.v3-glass.site-program :is(.program-hero__title, .program-section-header__title, .program-registration__title, .program-identity-card__title, .program-identity-card__value, .program-map__branch-title, .program-academic-feature__title, .program-cta__title, .program-cta__label),
body.v3-glass.site-information-page :is(.information-hero__title, .information-section-header__title, .information-card__title, .portal-card__title, .information-empty-card__status, .information-feed-card__title, .information-card__list-item a, .news-featured-card__title, .news-card__title, .pub-fallback__title, .pub-fallback__link, .pub-empty__status),
body.v3-glass.announcement-page .announcement-card__title { color: var(--v3-text-primary); }
body.v3-glass.site-program :is(.program-hero__text, .program-section-header__text, .program-registration__text, .program-identity-card__label, .program-academic-feature__text, .program-cta__text, .program-cta__meta, .program-map__connector),
body.v3-glass.site-information-page :is(.information-hero__text, .information-section-header__text, .information-card__text, .information-feed-card__text, .information-feed-card__attachments, .news-featured-card__excerpt, .news-card__excerpt, .news-card__meta, .news-discovery__intro, .news-result-count, .pub-result-count, .pub-fallback__intro, .pub-fallback__excerpt, .pub-fallback__meta, .pub-shelf__intro, .pub-shelf__loading, .portal-card__status-label),
body.v3-glass.announcement-page :is(.announcement-card__excerpt, .announcement-card__meta, .announcement-result-count) { color: var(--v3-text-muted); }
body.v3-glass.site-program :is(.program-hero__eyebrow, .program-section-header__label, .program-registration__label),
body.v3-glass.site-information-page :is(.information-hero__eyebrow, .information-section-header__label, .information-feed-card__meta, .pub-fallback__badge) { color: var(--v3-accent); border-top-color: var(--v3-accent); }
body.v3-glass.site-program .program-hero__location,
body.v3-glass.site-information-page :is(.information-card__link, .information-inline-link, .news-toolbar__reset) { color: var(--v3-accent); }
body.v3-glass.site-program .program-hero { text-align: left; }

/* cards */
body.v3-glass.site-program :is(.program-identity-card, .program-map, .program-map__branch, .program-academic-feature, .program-directory-link),
body.v3-glass.site-information-page :is(.information-card, .information-empty-card, .information-feed-card, .portal-card, .news-featured-card, .news-card, .pub-empty, .pub-typeswitch),
body.v3-glass.announcement-page :is(.announcement-current-card, .announcement-history-card, .announcement-empty, .announcement-no-results) {
  background: var(--v3-glass-bg-card); border: 1px solid var(--v3-glass-border); border-top-color: var(--v3-glass-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); color: var(--v3-text-primary);
}
body.v3-glass.site-program .program-map__root { background: linear-gradient(100deg, #1f6fe0, #6a4de6 70%, #a645d8); color: #fff; }
body.v3-glass.site-program .program-map__branches::before,
body.v3-glass.site-program .program-map__branch::before { background: rgba(255, 255, 255, 0.28); }
body.v3-glass.site-program .program-academic-feature__text { border-top-color: var(--v3-glass-border); }
body.v3-glass.site-program .program-academic-feature__summary::after { color: var(--v3-accent); }
body.v3-glass.site-program .program-directory-link { color: var(--v3-accent); }
body.v3-glass.site-program .program-status--available { background: rgba(90, 215, 255, 0.14); color: var(--v3-accent); }
body.v3-glass.site-program .program-status--pending { background: rgba(251, 191, 106, 0.14); color: #fbbf6a; }
body.v3-glass.site-information-page .information-empty-card { border-left-color: var(--v3-accent); }
body.v3-glass.site-information-page a.information-card:hover,
body.v3-glass.site-information-page .information-card:hover { background: var(--v3-glass-bg-card-hover); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 0 32px -8px rgba(90, 215, 255, 0.35); }

/* buttons */
body.v3-glass.site-program :is(.program-registration__button, .program-cta__button--primary),
body.v3-glass.site-information-page :is(.news-toolbar__submit, .pub-shelf__detail-read) {
  background: linear-gradient(100deg, #1f6fe0, #6a4de6 70%, #a645d8); border-color: transparent; color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 10px 34px -12px rgba(106, 77, 230, 0.8);
}
body.v3-glass.site-program .program-cta__button--secondary { background: rgba(255, 255, 255, 0.08); border-color: var(--v3-glass-border); color: #fff; }
body.v3-glass.site-program .program-cta__meta-item:not(:last-child)::after { color: var(--v3-accent); }

/* toolbars / forms / pagination */
body.v3-glass.site-information-page :is(.news-toolbar input, .news-toolbar select) { background: rgba(255, 255, 255, 0.08); border-color: var(--v3-glass-border); color: var(--v3-text-primary); }
body.v3-glass.site-information-page .news-toolbar label { color: var(--v3-text-muted); }
body.v3-glass.site-information-page .news-toolbar { border-bottom-color: var(--v3-glass-border); }
body.v3-glass.site-information-page :is(.news-toolbar input, .news-toolbar select)::placeholder { color: #8f9db2; }
body.v3-glass.site-information-page .pub-typeswitch { border-radius: 999px; }
body.v3-glass.site-information-page .pub-typeswitch__btn { color: var(--v3-text-muted); }
body.v3-glass.site-information-page .pub-typeswitch__btn.is-active { background: linear-gradient(100deg, #1f6fe0, #6a4de6); color: #fff; }
body.v3-glass.site-information-page :is(.information-pagination__link, .information-pagination__page) { background: rgba(255, 255, 255, 0.07); border-color: var(--v3-glass-border); color: var(--v3-text-primary); }
body.v3-glass.site-information-page .information-pagination__link.is-disabled { color: #6c7a90; border-color: rgba(255, 255, 255, 0.08); }
body.v3-glass.site-information-page .information-pagination__page.is-current,
body.v3-glass.site-information-page .information-pagination__page.is-active { background: rgba(90, 215, 255, 0.2); border-color: var(--v3-accent); }
body.v3-glass.site-information-page .information-pagination__status { color: var(--v3-text-muted); }
body.v3-glass.site-information-page .pub-fallback,
body.v3-glass.site-information-page .pub-fallback__item { border-color: var(--v3-glass-border); }

/* publication shelf (news / pengumuman / agenda browser) */
body.v3-glass.site-information-page .pub-shelf__viewport { border-color: var(--v3-glass-border); background: rgba(255, 255, 255, 0.05); box-shadow: var(--v3-glass-shadow); }
/* the illustrated shelf keeps its own (light) artwork; tone it down so it sits in the dark glass panel */
body.v3-glass.site-information-page .pub-shelf__stage { filter: brightness(0.8) saturate(0.88); }
body.v3-glass.site-information-page .pub-shelf__detail { background: rgba(10, 14, 28, 0.82); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 22px 55px -24px rgba(0, 0, 0, 0.7); }
body.v3-glass.site-information-page .pub-shelf__detail-meta { color: var(--v3-text-muted); border-bottom-color: var(--v3-accent); }
body.v3-glass.site-information-page :is(.pub-shelf__detail-kind, .pub-shelf__rail-year) { color: var(--v3-accent); }
body.v3-glass.site-information-page :is(.pub-shelf__detail-title, .pub-shelf__rail-item.is-active .pub-shelf__rail-year) { color: var(--v3-text-primary); }
body.v3-glass.site-information-page .pub-shelf__detail-excerpt { color: #c9d4e4; }
body.v3-glass.site-information-page .pub-shelf__detail-close { color: var(--v3-accent); }
body.v3-glass.site-information-page .pub-shelf__deck-btn { background: rgba(255, 255, 255, 0.1); border-color: var(--v3-glass-border); color: #fff; }
body.v3-glass.site-information-page .pub-shelf__deck-btn:disabled { color: #6c7a90; }
body.v3-glass.site-information-page .pub-shelf__deck-position { color: var(--v3-text-muted); }
body.v3-glass.site-information-page .pub-shelf__rail { border-top-color: var(--v3-glass-border); }
body.v3-glass.site-information-page .pub-shelf__rail-item { border-left-color: var(--v3-glass-border); color: var(--v3-text-muted); }
body.v3-glass.site-information-page .pub-shelf__rail-item.is-active { border-top-color: var(--v3-accent); }
body.v3-glass.site-information-page .pub-shelf__rail-count { color: #8f9db2; }

/* ---- phones: darker overlay, lighter blur ------------------------------ */
@media (max-width: 720px) {
  body.v3-glass { --v3-glass-blur: 12px; --v3-glass-radius: 24px; }
  .v3-video-overlay {
    background:
      radial-gradient(130% 90% at 50% 40%, rgba(5, 7, 13, 0.1) 20%, rgba(5, 7, 13, 0.8) 100%),
      linear-gradient(135deg, rgba(76, 141, 255, 0.18), rgba(155, 123, 255, 0.18)),
      linear-gradient(180deg, rgba(5, 8, 18, 0.7), rgba(5, 8, 18, 0.82));
  }
  body.v3-glass .v3-pagehead > .v3-container,
  body.v3-glass .v3-section > .v3-container:not(.pv3-wide) { padding: 22px 18px; }
}

/* ---- reduced motion: no moving background, poster stays, layout unchanged - */
@media (prefers-reduced-motion: reduce) {
  .v3-video-layer__video { display: none; }
}
