/* Shared interactions load after each immutable theme renderer. */
/* Home modules never paint a second full-width surface behind their cards. */
body[data-theme][data-renderer] .home-section,
body[data-theme][data-renderer] .home-section:nth-child(n),
body[data-theme][data-renderer] .home-content-body,
body[data-theme][data-renderer] [data-theme-renderer] > section:not([data-slider-root]) {
    background:transparent !important;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
}
body[data-theme][data-renderer] .home-content-body { padding:0; }
body[data-theme][data-renderer] .home-section::before,
body[data-theme][data-renderer] .home-section::after { content:none !important; }
.social-network-icon {
    display:inline-block; width:1.5rem; height:1.5rem; flex:0 0 1.5rem;
    background-color:currentColor; mask:center / contain no-repeat var(--social-icon);
    -webkit-mask:center / contain no-repeat var(--social-icon);
}
.social-network-icon--facebook { --social-icon:url("vendor/social-icons/facebook.svg"); color:#1877F2; }
.social-network-icon--instagram { --social-icon:url("vendor/lucide-0.468.0/instagram.svg"); color:#E4405F; }
.social-network-icon--youtube { --social-icon:url("vendor/lucide-0.468.0/youtube.svg"); color:#FF0000; }
.social-network-icon--linkedin { --social-icon:url("vendor/lucide-0.468.0/linkedin.svg"); color:#0A66C2; }
.social-network-icon--link { --social-icon:url("vendor/lucide-0.468.0/link.svg"); }
.footer-identity__social a { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; }
/* Official network marks keep their identity even when the site palette changes. */
body[data-theme][data-renderer] .social-network-icon { background-color:currentColor; }
body[data-theme][data-renderer] :is(.social-network-icon--facebook,.social-network-icon--instagram,.social-network-icon--youtube,.social-network-icon--linkedin) { color:var(--social-brand-color); }
body[data-theme][data-renderer] .social-network-icon--facebook { --social-brand-color:#1877F2; }
body[data-theme][data-renderer] .social-network-icon--instagram { --social-brand-color:#E4405F; }
body[data-theme][data-renderer] .social-network-icon--youtube { --social-brand-color:#FF0000; }
body[data-theme][data-renderer] .social-network-icon--linkedin { --social-brand-color:#0A66C2; }
/* Theme footers provide the shape, but the network surface keeps its official brand colour. */
body[data-theme][data-renderer] :is([class$="-footer__social-icon"]):has(.social-network-icon--facebook) { background:#1877F2 !important; }
body[data-theme][data-renderer] :is([class$="-footer__social-icon"]):has(.social-network-icon--instagram) { background:#E4405F !important; }
body[data-theme][data-renderer] :is([class$="-footer__social-icon"]):has(.social-network-icon--youtube) { background:#FF0000 !important; }
body[data-theme][data-renderer] :is([class$="-footer__social-icon"]):has(.social-network-icon--linkedin) { background:#0A66C2 !important; }
body[data-theme][data-renderer] :is([class$="-footer__social-icon"]):has(.social-network-icon--facebook,.social-network-icon--instagram,.social-network-icon--youtube,.social-network-icon--linkedin) .social-network-icon { color:#fff !important; }
/* Anchor portraits to the source's top edge rather than cropping above faces. */
body[data-theme][data-renderer] :is(
    .staff-card__portrait img,
    .zvezdichka-staff-card__photo img,
    .bes-yildiz-staff-card__photo img
) { object-position:50% 0% !important; }
/* These reading roles bind ink to its actual surface, independent of theme hue. */
body[data-theme][data-renderer] :is(.card-link,.text-link) { color:var(--reading-link) !important; }
body[data-theme][data-renderer] :is(.cookie-notice a,.contact-panel .eyebrow,.contact-list a,.rich-text a) { color:var(--reading-link); }
/* A fade that exposes the artwork also fades text, so scrollable rows stay unmasked. */
body[data-theme][data-renderer] [data-row-track] { mask-image:none !important; }
body[data-theme][data-renderer] .hero-slide--with-copy .hero-copy {
    background:transparent; padding:0; border:0; border-radius:0; box-shadow:none;
    outline:0; clip-path:none; backdrop-filter:none;
}
body[data-theme][data-renderer] .hero-slide--with-copy .hero-copy :is(h2,p) {
    color:#fff; opacity:1; text-shadow:0 1px 3px var(--slider-shade);
}
/* One continuous, palette-derived reading layer, never a separate caption panel. */
body[data-theme][data-renderer] .hero-slider .hero-slide__media::after { content:none; display:none; }
body[data-theme][data-renderer] .hero-slider .hero-slide--with-copy::after {
    content:""; display:block; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(90deg,
        color-mix(in srgb,var(--slider-shade) 84%,transparent) 0%,
        color-mix(in srgb,var(--slider-shade) 84%,transparent) 28%,
        color-mix(in srgb,var(--slider-shade) 36%,transparent) 42%,
        transparent 50%);
}
@media(max-width:56rem) {
    body[data-theme][data-renderer] .hero-slider .hero-slide--with-copy::after {
        background:linear-gradient(180deg,
            color-mix(in srgb,var(--slider-shade) 84%,transparent) 0% 28%,
            color-mix(in srgb,var(--slider-shade) 36%,transparent) 42%,
            transparent 50%);
    }
}
body[data-theme][data-renderer] :is(.content-section,.content-card,.group-card,.staff-card,.gallery-card,.related-content,.contact-panel,.page-lead,[class$="-staff-card"],[class$="-panel"]) {
    color:var(--reading-text);
}
/* The title and player share one card. Its enclosing home section stays clear;
   the figure inside does not paint a second surface. */
body[data-theme][data-renderer] .content-section.content-section--video {
    padding:clamp(1rem,2.5vw,2rem);
    background:color-mix(in srgb,var(--surface) var(--card-surface-opacity),transparent) !important;
    border:1px solid var(--border);
    outline:0;
    border-radius:var(--radius-lg);
    box-shadow:none;
    transform:none;
    color:var(--reading-text);
}
body[data-theme][data-renderer] .content-section--video .video-block {
    margin:0;
    padding:0;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
}
body[data-theme][data-renderer] .content-section--video .video-block__player-frame,
body[data-theme][data-renderer] .content-section--video .video-block__frame {
    background:transparent;
    border-radius:var(--radius-md);
}
body[data-theme][data-renderer] .content-section--video .video-block figcaption {
    color:var(--reading-muted);
}
body[data-theme][data-renderer] .home-staff-eyebrow {
    display:table;
    max-width:100%;
    padding:.5rem 1rem;
    background:var(--surface);
    color:var(--reading-surface-ink);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    letter-spacing:0;
    overflow-wrap:anywhere;
}
body[data-theme][data-renderer] .home-staff-link {
    flex-shrink:0;
    max-width:100%;
    white-space:normal;
    text-align:center;
    text-decoration:none;
}
/* The home roster is intentionally image-only. Four equal slots stay centered
   on wide screens, while the flex wrap keeps smaller viewports balanced. */
body[data-theme][data-renderer] .zvezdichka-staff-grid--all {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:clamp(1rem,2.2vw,1.75rem);
    max-width:62rem;
    margin-inline:auto;
}
body[data-theme][data-renderer] .zvezdichka-staff-grid--all .zvezdichka-staff-card--portrait-only {
    display:grid;
    flex:0 0 14rem;
    justify-items:center;
    min-width:0;
    padding:0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none !important;
    color:inherit;
}
body[data-theme][data-renderer] .zvezdichka-staff-grid--all .zvezdichka-staff-card__photo {
    display:grid;
    place-items:center;
    width:min(100%,14rem);
    aspect-ratio:1;
    overflow:hidden;
    border:.35rem solid #fff;
    border-radius:50%;
    background:color-mix(in srgb,var(--surface) var(--card-surface-opacity),transparent);
    box-shadow:0 .5rem 1.1rem color-mix(in srgb,var(--text) 16%,transparent);
}
body[data-theme][data-renderer] .zvezdichka-staff-grid--all .zvezdichka-staff-card__photo img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
@media (max-width:48rem) {
    body[data-theme][data-renderer] .zvezdichka-staff-grid--all .zvezdichka-staff-card--portrait-only {
        flex-basis:min(42vw,10rem);
    }
    body[data-theme][data-renderer] .zvezdichka-staff-grid--all .zvezdichka-staff-card__photo {
        width:min(100%,10rem);
    }
}
body[data-theme][data-renderer] :is(.content-card__body p,.group-card__summary,.staff-card__copy p,[class$="-staff-card"] p) { color:var(--reading-muted); }
body[data-theme][data-renderer] :is(
    .page-hero h1,.page-hero .eyebrow,.content-section > h1,.content-section > h2,.related-content > h2,.related-content > h3,
    .staff-role-group__heading h2,.staff-role-group__heading h3,.section-heading h2,.group-card__name,.gallery-card__copy strong,
    .content-card__body h3,.content-card__body h3 a,.document-card__title,.staff-card h3,.staff-card h4,[class$="-staff-card"] h3,
    [class$="-panel__head"] h2,[class$="-section__heading"] h2,[class$="-quicklink"]
) { color:var(--reading-heading); }
body[data-theme][data-renderer] :is(.card-date,.card-meta time,.breadcrumbs [aria-current="page"],.book-bar__page) {
    background:var(--secondary); color:var(--on-secondary);
}
/* Breadcrumbs are theme surfaces too; their ink must follow the calculated
   readable roles instead of inheriting a renderer's fixed text colour. */
body[data-theme][data-renderer] .breadcrumbs ol { color:var(--reading-muted); }
body[data-theme][data-renderer] .breadcrumbs li:not(:last-child)::after { color:var(--reading-muted); }
body[data-theme][data-renderer] .breadcrumbs a {
    color:var(--reading-surface-ink) !important;
    background:var(--surface);
}
body[data-theme][data-renderer] .breadcrumbs [aria-current="page"] {
    color:var(--on-secondary) !important;
    background:var(--secondary);
}
body[data-theme][data-renderer] :is(.card-date,.card-meta time) > * { color:inherit; }
body[data-theme][data-renderer] :is(.button,[class*="-button--"],[class$="-chip-link"]) {
    background:var(--surface); color:var(--reading-surface-ink); opacity:1;
    transition-property:transform,box-shadow;
}
body[data-theme][data-renderer] :is(.button--primary,[class$="-button--primary"]) {
    background:var(--primary); color:var(--on-primary);
}
body[data-theme][data-renderer] :is(.button,[class*="-button--"],[class$="-chip-link"]):is(:hover,:focus-visible) {
    background:var(--secondary); color:var(--on-secondary); filter:none;
}
body[data-theme][data-renderer] .site-footer,
body[data-theme][data-renderer] .site-footer :is(a,p,h2,span,small,nav,address) { color:var(--reading-footer-ink); opacity:1; transition-property:transform,box-shadow; }
/* Keep the area above the wave transparent. The wave itself and the band below
   it remain the footer surface; a full-height background here paints a flat
   rectangle over the page artwork above the crest. */
body[data-theme][data-renderer] .site-footer {
    --footer-wave-height:clamp(2.8rem,5.2vw,4.6rem);
    background-color:transparent !important;
    background-image:linear-gradient(var(--reading-footer),var(--reading-footer)) !important;
    background-position:bottom !important;
    background-repeat:no-repeat !important;
    background-size:100% calc(100% - var(--footer-wave-height) + 2px) !important;
}
body[data-theme][data-renderer] .site-footer [class$="-footer__wave-body"] { fill:var(--reading-footer); }
body[data-theme][data-renderer] .site-footer :is([class*="-footer__shell"],[class*="-footer__legal"],[class*="-footer__credit"]) {
    background-color:var(--reading-footer);
    transition-property:transform,box-shadow;
}
/* Footer contrast is a surface contract, not a theme-specific decoration. */
body[data-theme][data-renderer] .site-footer :is([class*="-footer__shell"],[class*="-footer__legal"],[class*="-footer__credit"],[class*="-footer__panel"]) {
    background-color:var(--reading-footer) !important;
    color:var(--reading-footer-ink) !important;
}
body[data-theme][data-renderer] .site-footer {
    background-color:transparent !important;
    color:var(--reading-footer-ink) !important;
}
body[data-theme][data-renderer] .site-footer :is(a,p,h1,h2,h3,h4,h5,h6,span,small,nav,address,li,button) {
    color:inherit !important;
}
/* Use fonts available on the device; the selected weight still controls the UI. */
body[data-theme][data-renderer],
body[data-theme][data-renderer] :is(.site-header,.site-main,.site-footer,.primary-nav,.nav-submenu,.button,button) {
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
    font-weight:var(--site-font-weight,600);
}
body[data-theme][data-renderer] :is(h1,h2,h3,h4,h5,h6,.primary-nav__item > a,.nav-parent-link,.nav-submenu a,.button,button,[class*="-button--"],[class$="-chip-link"],.staff-card h3,.staff-card h4,[class$="-staff-card"] h3) {
    font-family:inherit;
    font-weight:var(--site-font-weight,600) !important;
}
body[data-theme][data-renderer] .nav-submenu { background:var(--surface); }
body[data-theme][data-renderer] .nav-submenu a { color:var(--reading-surface-ink); transition-property:transform,box-shadow; }
body[data-theme][data-renderer] .nav-submenu a:is(:hover,:focus-visible,[aria-current="page"]) { background:var(--primary); color:var(--on-primary); }
body[data-theme][data-renderer][data-menu-colors="single"] .primary-nav__item > :is(a,.nav-group) {
    background:var(--surface); color:var(--reading-menu-ink);
}
body[data-theme][data-renderer][data-menu-colors="single"] .primary-nav__item > .nav-group > :is(a,button) {
    background:transparent; color:inherit;
}
body[data-theme][data-renderer][data-menu-colors="single"] .primary-nav__item:is(.is-current-trail,:hover,:focus-within) > :is(a,.nav-group) {
    background:var(--primary); color:var(--on-primary);
}
/* A single shape family applies to text commands, navigation and icon controls. */
body[data-button-shape] { --action-radius:14px; }
body:is([data-button-shape="soft"],[data-button-shape="leaf"],[data-button-shape="wing"],[data-button-shape="cloud"],[data-button-shape="arch"],[data-button-shape="superellipse"],[data-button-shape="petal"],[data-button-shape="paint-blob"]) { --action-radius:8px; }
body:is([data-button-shape="pill"],[data-button-shape="capsule"],[data-button-shape="candy"],[data-button-shape="ticket"],[data-button-shape="bookmark"]) { --action-radius:999px; }
body[data-theme][data-renderer][data-button-shape] :is(
    .button,button:not(.slider-dot),[class$="-button"],[class*="-button--"],[class$="-chip-link"],
    .primary-nav__item > a,.nav-group,.nav-submenu a,.breadcrumbs a,.breadcrumbs [aria-current="page"]
) { border-radius:var(--action-radius) !important; clip-path:none !important; }
body[data-theme][data-renderer] .nav-group > :is(a,button) { border-radius:0 !important; }
body[data-theme][data-renderer] .nav-group { overflow:visible; }
/* Selection must not reserve space for a missing motif or move adjacent links. */
body[data-theme][data-renderer] .primary-nav__item > a {
    padding-inline: .75rem !important;
}
body[data-theme][data-renderer] .nav-parent-link { padding-inline: .75rem .25rem; }
body[data-theme][data-renderer] .primary-nav__item > a::before {
    content: none !important;
    display: none !important;
}
body[data-theme][data-renderer] .primary-nav__item > a,
body[data-theme][data-renderer] .nav-parent-link {
    font-size: .875rem;
    letter-spacing: 0;
}
@media (min-width: 68.001rem) {
    body[data-theme][data-renderer] .site-header > :is(.shell,.site-header__inner):has(> .brand) {
        display: flex;
        flex-wrap: wrap;
        gap: .5rem 1rem;
    }
    body[data-theme][data-renderer] .site-header .brand { flex: 0 0 auto; }
    body[data-theme][data-renderer] .site-header .primary-nav { flex: 1 1 max-content; max-width: 100%; }
    body[data-theme][data-renderer] .primary-nav__list { flex-wrap: wrap; }
}
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+1) { --nav-color:var(--menu-color-1); --nav-ink:var(--menu-ink-1); }
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+2) { --nav-color:var(--menu-color-2); --nav-ink:var(--menu-ink-2); }
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+3) { --nav-color:var(--menu-color-3); --nav-ink:var(--menu-ink-3); }
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+4) { --nav-color:var(--menu-color-4); --nav-ink:var(--menu-ink-4); }
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+5) { --nav-color:var(--menu-color-5); --nav-ink:var(--menu-ink-5); }
body[data-menu-colors="multi-accessible"] .primary-nav__item:nth-child(6n+6) { --nav-color:var(--menu-color-6); --nav-ink:var(--menu-ink-6); }
body[data-menu-colors="multi-accessible"] .primary-nav__item > :is(a,.nav-group) {
    background:var(--nav-color) !important; color:var(--nav-ink) !important; filter:none !important;
}
body[data-menu-colors="multi-accessible"] .primary-nav__item > .nav-group > :is(a,button) {
    background:transparent !important; color:var(--nav-ink) !important; filter:none !important;
}
/* An expanded mobile group is a layout container, not one tall capsule. */
@media (max-width:68rem) {
    body[data-theme][data-renderer] .primary-nav__item > .nav-group {
        --group-background:var(--surface); --group-ink:var(--reading-menu-ink);
        background:transparent !important;
    }
    body[data-theme][data-renderer][data-menu-colors="single"] .primary-nav__item:is(.is-current-trail,:hover,:focus-within) > .nav-group {
        --group-background:var(--primary); --group-ink:var(--on-primary);
    }
    body[data-theme][data-renderer][data-menu-colors="multi-accessible"] .primary-nav__item > .nav-group {
        --group-background:var(--nav-color); --group-ink:var(--nav-ink);
    }
    body[data-theme][data-renderer] .primary-nav__item > .nav-group > :is(a,button) {
        background:var(--group-background) !important; color:var(--group-ink) !important;
        align-self:stretch; height:auto; min-height:3rem;
    }
    body[data-theme][data-renderer] .primary-nav__item > .nav-group > .nav-parent-link {
        border-radius:var(--action-radius) 0 0 var(--action-radius) !important;
    }
    body[data-theme][data-renderer] .primary-nav__item > .nav-group > .nav-disclosure {
        border-radius:0 var(--action-radius) var(--action-radius) 0 !important;
    }
}
body[data-motion-ready][data-theme][data-card-animation] [data-motion-card]:is(:hover,:focus-within,*) {
    transform:none; translate:none; rotate:none; scale:none; transition:box-shadow .3s ease; will-change:auto;
}
body[data-motion-ready][data-theme][data-card-animation] [data-motion-card] :is(img,.card-media,[class$="__photo"],[class$="__art"]) {
    transform:none !important; scale:none !important; rotate:none !important;
}
body[data-motion-ready] [data-motion-card] { transform-origin:center; }
body[data-motion-ready] [data-motion-card][data-motion-active] { position:relative; z-index:4; }
.slider-motion-canvas { position:absolute; pointer-events:none; z-index:4; border-radius:inherit; }
body [data-slider-root][data-motion-effect] .hero-slide.is-leaving { z-index:5; }
body [data-slider-root][data-motion-effect] .hero-slide.is-entering { z-index:6; }
body [data-slider-root][data-motion-effect] .hero-slide__media { background:transparent !important; box-shadow:none; border-color:transparent; }
body [data-slider-root][data-motion-effect] .hero-slide__media :is(picture,.hero-slide__art) { visibility:hidden; }
body [data-slider-root][data-motion-effect] .slider-controls { z-index:9; }

.card-glow-surface { position:absolute; inset:0; z-index:2; overflow:hidden; border-radius:inherit; pointer-events:none; box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--secondary) 75%,#fff); }
.card-glow-surface > i { position:absolute; inset:0 auto 0 0; width:60%; background:linear-gradient(105deg,transparent 15%,rgb(255 255 255 / .65) 48%,color-mix(in srgb,var(--secondary) 25%,transparent) 65%,transparent 85%); }
body[data-theme][data-renderer] [data-slider-root] {
    box-shadow:0 22px 46px -8px color-mix(in srgb,var(--slider-shade,#17202a) 58%,transparent),
        0 7px 18px color-mix(in srgb,var(--slider-shade,#17202a) 38%,transparent),
        0 0 0 1px color-mix(in srgb,var(--slider-shade,#17202a) 18%,transparent);
}
body [data-slider-root] .hero-slider__viewport { border-radius:inherit; }
body [data-slider-root] .slider-frame { position:absolute; inset:3px; z-index:8; pointer-events:none; border-radius:inherit; box-sizing:border-box; color:#fff; opacity:.8; }
body [data-slider-frame="none"] .slider-frame { display:none; }
body [data-slider-frame="solid"] .slider-frame,
body [data-slider-frame="dashed"] .slider-frame { border:6px solid currentColor; }
body [data-slider-frame="dashed"] .slider-frame { border-style:dashed; }
.slider-frame > i { display:none; position:absolute; width:56px; height:56px; border:0 solid currentColor; }
body [data-slider-frame="corners"] .slider-frame > i,
body [data-slider-frame="two-corners"] .slider-frame > i { display:block; }
.slider-frame [data-corner="top-left"] { top:0; left:0; border-width:7px 0 0 7px; border-top-left-radius:12px; }
.slider-frame [data-corner="top-right"] { top:0; right:0; border-width:7px 7px 0 0; border-top-right-radius:12px; }
.slider-frame [data-corner="bottom-left"] { bottom:0; left:0; border-width:0 0 7px 7px; border-bottom-left-radius:12px; }
.slider-frame [data-corner="bottom-right"] { bottom:0; right:0; border-width:0 7px 7px 0; border-bottom-right-radius:12px; }
body [data-slider-frame="two-corners"] .slider-frame > [data-corner="top-right"],
body [data-slider-frame="two-corners"] .slider-frame > [data-corner="bottom-left"] { display:none; }
body [data-slider-root] .slider-controls { z-index:9; }
body [data-slider-root] :is([data-slider-previous], [data-slider-next]) { opacity:.5; }
body [data-slider-root] .slider-arrow {
    display:grid; place-items:center; width:54px; min-width:54px; height:54px; min-height:54px;
    padding:0; border:2px solid #fff; color:#17202a; background:#fff;
    box-shadow:0 2px 12px #0006,0 0 0 1px #17202a66;
    transition:transform .2s ease,box-shadow .2s ease;
}
body [data-slider-root] .slider-arrow img { display:block; width:28px; height:28px; }
body [data-slider-root] .slider-arrow:hover { transform:translateY(-50%) scale(1.06); box-shadow:0 3px 16px #0008,0 0 0 2px var(--primary); }
body [data-slider-root] .slider-arrow:focus-visible { outline:3px solid #17202a; outline-offset:3px; }
body [data-slider-root] .slider-sound { position:absolute; top:12px; right:12px; z-index:9; display:grid; place-items:center; width:44px; height:44px; padding:0; background:#fff; color:#17202a; border:1px solid #17202a33; border-radius:50%; box-shadow:0 2px 8px #0004; cursor:pointer; }
body [data-slider-root] .slider-sound img { width:22px; height:22px; }
body [data-slider-root] .slider-sound[hidden],body [data-slider-root] .slider-sound img[hidden] { display:none; }
body [data-slider-root] .slider-sound:focus-visible { outline:3px solid #17202a; outline-offset:3px; }
@media(max-width:56rem) {
    body [data-slider-root] .slider-arrow { top:auto; bottom:12px; transform:none; width:48px; min-width:48px; height:48px; min-height:48px; }
    body [data-slider-root] .slider-arrow:hover { transform:scale(1.06); }
    body [data-slider-root] .hero-slide__content.shell { padding-bottom:4.75rem; }
    body [data-slider-root] .slider-dots { bottom:24px; }
}
@media(prefers-reduced-motion:reduce) {
    body [data-slider-root] .slider-arrow { transition:none; }
    body [data-slider-root] .slider-arrow:hover { transform:translateY(-50%); }
}
@media(prefers-reduced-motion:reduce) and (max-width:56rem) {
    body [data-slider-root] .slider-arrow:hover { transform:none; }
}
body [data-slider-root] .hero-slide.is-entering,
body [data-slider-root] .hero-slide.is-leaving,
body [data-slider-root] .hero-slide.is-entering .hero-slide__content {
    animation:none !important; transform:none !important;
}
body [data-slider-root] .hero-slide.is-entering .hero-copy { animation:none !important; }
body [data-slider-root] .hero-slide.is-entering { z-index:2; }
body [data-slider-root] .hero-slide.is-leaving { z-index:1; }
/* Shared sizes preserve each renderer's own motif artwork. */
body[data-theme][data-renderer] :is([class$="-panel__head"], [class$="-section__heading"]) h2::before,
body[data-theme][data-renderer] .page-hero h1::before {
    width:56px; height:48px; flex:0 0 56px;
    margin-inline-end:10px; background-size:contain;
}
body[data-theme][data-renderer] :is(
    .content-section > h1, .content-section > h2, .related-content > h2, .related-content > h3,
    .staff-role-group__heading > h2, .staff-role-group__heading > h3, .contact-panel > h2
)::before {
    width:48px; height:40px; margin-inline-end:10px; vertical-align:middle; background-size:contain;
}
body[data-theme][data-renderer] :is(
    .content-card__copy h3, .group-card__name, .gallery-card__copy strong, .document-card__title,
    .staff-card__copy h2, .staff-card__copy h3, .staff-card__copy h4, [class$="-staff-card"] h3, .book-thumb__title
)::before {
    width:40px; height:32px; margin-inline-end:7px; vertical-align:middle; background-size:contain;
}
body[data-theme][data-renderer] [class*="-quicklink__art"]::after {
    width:48px; height:40px; right:-8px; bottom:-4px; background-size:contain;
}
body[data-theme][data-renderer] .card-date.card-date--full {
    width:56px; min-height:64px; height:auto; gap:2px; padding:6px 4px; line-height:1.1;
}
body[data-theme][data-renderer] .card-date.card-date--full .card-date__year {
    font-size:12px; font-weight:700; line-height:1.2;
}
@media (prefers-reduced-motion:reduce) {
    [data-motion-card], [data-motion-card] > * { animation:none !important; transition:none !important; }
    .slider-motion-canvas { display:none; }
}
/* Staff portraits use the same generous circle in both listing arrangements. */
body[data-theme][data-renderer] .staff-roles .staff-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 20rem));
}
body[data-theme][data-renderer] .staff-grid--centered > .staff-card {
    flex: 0 1 calc((100% - 4.5rem) / 4); width: auto;
}
body[data-theme][data-renderer] .staff-roles .staff-grid--centered {
    display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem;
}
@media (max-width:64rem) {
    body[data-theme][data-renderer] .staff-grid--centered > .staff-card { flex-basis:calc((100% - 1.5rem) / 2); }
}
@media (max-width:36rem) {
    body[data-theme][data-renderer] .staff-grid--centered > .staff-card { flex-basis:100%; }
}
body[data-theme][data-renderer] .staff-roles .staff-card {
    display: flex; flex-direction: column; align-items: center; min-width: 0;
}
body[data-theme][data-renderer] .staff-roles .staff-card__portrait {
    position: relative; inset: auto; width: min(100%, 14rem); height: auto;
    min-height: 0; aspect-ratio: 1; flex: none; border-radius: 50%; overflow: hidden;
    margin-inline: auto; grid-area: auto;
}
body[data-theme][data-renderer] .staff-roles .staff-card__portrait img {
    position: absolute; inset: 0; display: block;
    width: 100%; height: 100%; object-fit: cover; object-position: 50% 0% !important;
    padding:0; box-sizing:border-box;
}
body[data-theme][data-renderer] .home-staff-portraits {
    display:flex; flex-wrap:nowrap; justify-content:safe center; gap:2rem;
    list-style:none; padding:.5rem 0; margin:0; overflow-x:auto;
    scroll-snap-type:x mandatory; scrollbar-width:none;
}
body[data-theme][data-renderer] .home-staff-carousel.is-initialized .home-staff-portraits {
    justify-content:flex-start; gap:0; overflow:visible; scroll-snap-type:none;
}
body[data-theme][data-renderer] .home-staff-portraits::-webkit-scrollbar { display:none; }
body[data-theme][data-renderer] .home-staff-portraits > li {
    flex:0 0 14rem; min-width:0; padding:0; scroll-snap-align:start;
    background:transparent; border:0; box-shadow:none;
}
body[data-theme][data-renderer] .home-staff-carousel {
    position:relative; visibility:visible; margin-inline:auto;
    max-width:calc(var(--staff-count,100) * 16rem - 2rem);
}
body[data-theme][data-renderer] .home-staff-carousel .splide__track { overflow:hidden; }
body[data-theme][data-renderer] .home-staff-carousel.is-initialized .home-staff-portraits > li { flex:0 0 auto; }
body[data-theme][data-renderer] .home-staff-carousel__arrow {
    position:absolute; top:50%; transform:translateY(-50%); z-index:2;
    display:none; place-items:center; width:3rem; height:3rem; padding:0;
    border:1px solid var(--border); border-radius:50%; background:var(--surface,#fff);
    cursor:pointer; box-shadow:0 2px 10px #0002;
}
body[data-theme][data-renderer] .home-staff-carousel__arrow--prev { left:-1rem; }
body[data-theme][data-renderer] .home-staff-carousel__arrow--next { right:-1rem; }
body[data-theme][data-renderer] .home-staff-carousel.is-initialized .home-staff-carousel__arrow { display:grid; }
body[data-theme][data-renderer] .home-staff-carousel__arrow:disabled { opacity:.45; cursor:default; }
body[data-theme][data-renderer] .home-staff-portrait {
    display:grid; place-items:center; width:100%; max-width:14rem;
    aspect-ratio:1; border-radius:50%; overflow:hidden; margin-inline:auto;
    background:var(--surface,#fff); color:var(--text,#222); font-size:3rem;
}
body[data-theme][data-renderer] .home-staff-portrait img {
    display:block; width:100%; height:100%; object-fit:cover;
    object-position:50% 0% !important; padding:0; box-sizing:border-box;
}
@media (max-width:36rem) {
    body[data-theme][data-renderer] .home-staff-portraits > li { flex-basis:12rem; }
}
body[data-theme][data-renderer] .staff-roles .staff-card__copy {
    width: 100%; min-width: 0; grid-area: auto; overflow-wrap: anywhere;
}
/* Every circular card layout uses the same generous portrait size as the
   roster. The rule is deliberately limited to the circular layout so the
   other card arrangements keep their own proportions. */
body[data-theme][data-renderer] :where([data-card-layout="portrait-circle"]) :is(
    .card-media, .gallery-card__media, .staff-card__portrait, .group-card__photo, .group-card > img
) {
    width: min(100%, 14rem); height: auto; min-height: 0; aspect-ratio: 1;
    flex: none; margin-inline: auto; border-radius: 50%; overflow: hidden;
}
body[data-theme][data-renderer] :where([data-card-layout="portrait-circle"]) :is(
    .card-media, .gallery-card__media, .staff-card__portrait, .group-card__photo
) img,
body[data-theme][data-renderer] :where([data-card-layout="portrait-circle"]) .group-card > img {
    display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
/* Video posters remain available to the shared transition compositor. */
.hero-slide-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; visibility: hidden; }
.hero-slide-video.is-playing { visibility: visible; }
.is-entering .hero-slide-video, .is-leaving .hero-slide-video { visibility: hidden; }
[data-slider-video-toggle]:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }

/* Typography is one public contract. Theme renderers contain older, more
   specific weights for individual cards and sections, so the late contract
   deliberately covers every descendant and lets the design-studio value win
   consistently across menus, headings, cards, roles, links and rich text. */
body[data-theme][data-renderer] * {
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif !important;
    font-weight:var(--site-font-weight,600) !important;
}
body[data-theme] [data-slider-root] .hero-slide__media,
body[data-theme] .theme-atmosphere,
body[data-theme] img[src*="/themes/"],
body[data-theme] video { -webkit-touch-callout: none; -webkit-user-drag: none; user-select: none; }
body[data-theme] [data-slider-root] .hero-slide__media img,
body[data-theme] [data-slider-root] video { pointer-events: none; }
body[data-theme] [data-slider-root] .hero-slide__content { pointer-events: none; }
body[data-theme] [data-slider-root] .hero-copy { pointer-events: auto; }
