/* Kultur 1.14: editorial rhythm, accessible type and local SVG navigation. */
.public-site {
 --paper:#f7f8fc; --ink:#192338; --muted:#586276; --line:#dde2ed;
 --blue:#8b294a; --soft:#f2e9ee; --max:1320px; --gutter:clamp(20px,4vw,64px);
 background:var(--paper); color:var(--ink); font-size:1rem;
}
.public-site ::selection {background:#e9d5df; color:#192338}
.culture-icon {display:inline-block; flex:none; vertical-align:middle}
.public-site h1,.public-site h2,.public-site h3 {font-weight:700; letter-spacing:-.045em; text-wrap:balance}
.public-site h2 {font-size:clamp(1.9rem,3.2vw,2.9rem); line-height:1.12}
.public-site p {line-height:1.75}
.public-site .eyebrow {color:#8b294a; font-size:.72rem; line-height:1.5; letter-spacing:.12em; font-weight:750}
.public-site .muted,.public-site .event-meta {color:var(--muted)}
.public-site .section {padding-block:clamp(48px,6vw,86px)}
.public-site .button {gap:18px; border-radius:13px; padding:14px 22px; min-height:50px; font-size:.9rem; font-weight:700}
.public-site .primary {background:#8b294a; border-color:#8b294a; color:#fff; box-shadow:0 6px 16px #8b294a12}
.public-site .primary:hover {background:#6d203b; border-color:#6d203b}
.public-site .secondary {background:#fff; border-color:#c9d1df; color:#25344e}
.public-site .text-link {font-size:.9rem; font-weight:650; gap:18px; min-height:44px}
.public-site .text-link:hover {color:#8b294a}
.public-site .section-heading {margin-bottom:30px}
.public-site .section-heading>div {gap:24px; align-items:end}
.public-site .section-heading>div>p {font-size:1rem; max-width:380px; color:var(--muted)}
.public-site .section-heading>.eyebrow {margin-bottom:14px}

/* One header, one navigation landmark. No separate social bar. */
.public-site .site-header {position:sticky; top:0; z-index:60; width:100%; max-width:none; height:auto; min-height:88px; padding:16px var(--gutter); gap:22px; background:#ffffffed; border-bottom:1px solid #e0e4ee; backdrop-filter:blur(18px)}
.public-site .site-header.scrolled {box-shadow:0 5px 24px #1524420a}
.public-site .site-header .brand {gap:10px}
.public-site .site-header .wordmark b {font-size:26px; color:#192338}
.public-site .site-header .wordmark small {font-size:8px; color:#596377}
.public-site .site-header .brand-crest {width:29px; height:36px}
.public-site .site-header>nav {flex:1; min-width:0; gap:6px; flex-wrap:wrap; margin-left:0; justify-content:flex-end}
.public-site .site-header nav>a:not(.button) {gap:7px; min-height:44px; font-size:.8rem; font-weight:600; padding:10px 9px; border-radius:9px; color:#49536a; white-space:nowrap}
.public-site .site-header nav>a:not(.button):hover,.public-site .site-header nav>a[aria-current] {background:#f1e8ee; color:#7a2543}
.public-site .site-header nav>a[aria-current] {box-shadow:inset 0 -2px #8b294a}
.public-site .site-header nav .culture-icon {width:17px; height:17px; color:inherit}
.public-site .site-header nav .button {font-size:.79rem; padding:12px 16px; min-height:44px; margin:0 0 0 6px; gap:8px}
.public-site .site-header>.ticket-shop-button {margin-left:auto; margin-right:0; width:152px; height:48px; font-size:.93rem; padding:0 20px}
.public-site .menu-button {border-radius:10px; color:#192338; background:#f2f5fb; border:1px solid #d9e0ec}
.public-site [id] {scroll-margin-top:116px}

/* Main editorial opening. The next event stays a genuine, live link. */
.public-site .welcome {grid-template-columns:minmax(0,1fr) minmax(0,1.06fr); gap:clamp(32px,4.5vw,68px); padding-block:56px 40px; align-items:center}
.public-site .welcome-copy {padding:0; min-width:0}
.public-site .welcome-copy .eyebrow {display:inline-flex; padding:8px 12px; border:1px solid #e5d9e1; border-radius:7px; background:#fff; margin-bottom:25px; font-size:.69rem; letter-spacing:.1em}
.public-site .status-dot {background:#a23c61; width:7px; height:7px}
.public-site .welcome h1 {font-size:clamp(3rem,5.7vw,5.4rem); line-height:1.01; font-weight:750; letter-spacing:-.065em; max-width:650px; text-wrap:balance; overflow-wrap:anywhere}
.public-site .welcome h1 span {color:#8b294a}
.public-site .welcome-copy>p:not(.eyebrow) {max-width:475px; margin-top:26px; font-size:1.08rem; line-height:1.7; color:var(--muted)}
.public-site .welcome-actions {gap:13px 20px; margin-top:30px; align-items:center}
.public-site .welcome-actions .text-link {font-size:.86rem}
.public-site .ticket-shop-hero {width:182px; height:55px; font-size:1rem}
.public-site .welcome-media {position:relative; isolation:isolate; padding:0 0 16px; border-radius:24px; min-width:0}
.public-site .welcome-media::before {display:block; content:""; position:absolute; z-index:-1; inset:28px -12px 0 24px; background:#e8d9e2; border-radius:24px; transform:rotate(2deg)}
.public-site .welcome-media figure {border-radius:24px; background:#dbe0e8; overflow:hidden}
.public-site .welcome-media figure>img {height:510px; width:100%; object-fit:cover; object-position:52% 38%}
.public-site .welcome-media figcaption {top:16px; left:16px; max-width:calc(100% - 130px); background:#fffffff2; color:#3d4352; font-size:.66rem; padding:7px 11px; border-radius:7px; backdrop-filter:none}
.public-site .welcome-media figcaption:empty {display:none}
.welcome-stamp {position:absolute; z-index:2; right:-13px; top:-18px; display:grid; grid-template-columns:1fr 22px; align-items:end; gap:12px; padding:17px 18px; background:#e9f2b0; color:#29340e; font-size:.73rem; line-height:1.15; font-weight:800; letter-spacing:.05em; border-radius:9px; transform:rotate(5deg); box-shadow:0 5px 12px #19233812}
.public-site .welcome-media .next-event {left:18px; right:18px; bottom:34px; padding:20px 22px; border:1px solid #ffffff35; border-radius:15px; background:#192338f5; color:#fff; box-shadow:0 10px 24px #0b183333; gap:7px; transition:background .2s}
.public-site .next-event:hover {background:#283b5b}
.public-site .next-label {color:#e9f2b0; font-size:.67rem; font-weight:700; letter-spacing:.13em}
.public-site .next-event strong {color:#fff; font-size:clamp(1.2rem,2vw,1.6rem); letter-spacing:-.025em; line-height:1.2; overflow-wrap:anywhere}
.public-site .next-date {color:#fff; font-size:.84rem; font-weight:600}
.public-site .next-place {color:#d1daeb; font-size:.78rem}
.public-site .format-strip {padding-block:18px; gap:9px; border-top:0; border-bottom:1px solid var(--line); scrollbar-width:thin}
.public-site .format-strip>span {font-size:.8rem; font-weight:600; color:#5a6375; margin-right:10px}
.public-site .format-strip a {display:inline-flex; gap:9px; align-items:center; padding:11px 16px; min-height:46px; border:1px solid #dce1eb; background:#fff; border-radius:100px; font-size:.82rem; font-weight:600}
.public-site .format-strip a:hover {background:#192338; color:#fff; border-color:#192338}
.public-site .format-strip .culture-icon {width:18px; height:18px}

/* Programme cards fill the available space, including one or two dates. */
.public-site .program {padding-top:48px}
.public-site .event-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px}
.public-site .event-grid[data-count="2"] {grid-template-columns:repeat(2,minmax(0,1fr))}
.public-site .event-grid[data-count="1"] {grid-template-columns:minmax(0,1fr)}
.public-site .event-card {background:#fff; border:1px solid #dde2ec; border-radius:19px; box-shadow:0 7px 18px #1d2a4604; transition:transform .2s,box-shadow .2s,border-color .2s}
.public-site .event-card:hover {transform:translateY(-4px); border-color:#cbb6c1; box-shadow:0 14px 28px #28344a12}
.public-site .event-card-link {display:flex; flex-direction:column; padding:0; gap:0; min-width:0}
.public-site .event-image {aspect-ratio:1.55; border-radius:0; width:100%; min-width:0; background:#e6e9f1}
.public-site .event-image img {width:100%; height:100%; object-fit:cover}
.public-site .event-grid[data-count="2"] .event-image {aspect-ratio:1.95}
.public-site .event-image>span:not(:empty) {font-size:.68rem; padding:4px 8px; background:#172338e6; color:#fff; border-radius:5px}
.public-site .event-card time {top:15px; left:15px; padding:11px 13px; border-radius:11px; background:#fff; color:#192338; box-shadow:0 3px 15px #1923381c}
.public-site .event-card time b {font-size:1.9rem; line-height:1; font-weight:750; letter-spacing:-.04em}
.public-site .event-card time>span {font-size:.62rem; letter-spacing:.03em; margin-top:6px}
.public-site .event-card-copy {padding:25px 25px 35px; min-width:0}
.public-site .event-category {display:inline-block; font-size:.67rem; font-weight:750; letter-spacing:.08em; color:#8b294a}
.public-site .event-card h3 {font-size:clamp(1.4rem,2.2vw,1.8rem); line-height:1.2; letter-spacing:-.035em; margin:10px 0 13px; text-wrap:pretty}
.public-site .event-meta {font-size:.86rem; line-height:1.65; padding-right:22px; overflow-wrap:anywhere}
.public-site .event-arrow {right:18px; bottom:18px; width:35px; height:35px; background:#f5edf1; color:#8b294a; border-radius:50%; font-size:24px}
.public-site .event-placeholder {display:flex; justify-content:space-between; align-items:end; height:100%; min-height:200px; padding:30px; font-size:1.5rem; background:#e6eafa; color:#334a86}
.public-site .event-placeholder b {font-size:3rem}
.public-site .event-grid[data-count="1"] .event-card-link {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch}
.public-site .event-grid[data-count="1"] .event-image {height:100%; min-height:280px; aspect-ratio:1.7; grid-row:1; grid-column:1}
.public-site .event-grid[data-count="1"] .event-card-copy {grid-column:2; grid-row:1; align-self:center; padding:40px}

/* A small culture magazine: photographs plus intentionally graphic formats. */
.public-site .experiences {background:#192338; color:#fff; margin:0; border-radius:0; padding-block:70px}
.public-site .experiences .eyebrow {color:#e9f2b0}
.public-site .experiences .section-heading>div>p {color:#c7d1e2}
.public-site .experience-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px}
.public-site .experience {display:flex; flex-direction:column; min-width:0; color:#fff; border-bottom:1px solid #ffffff26; padding-bottom:24px}
.public-site .experience-image {border-radius:15px; aspect-ratio:1.15; position:relative; overflow:hidden; background:#34405a}
.public-site .experience-image img {width:100%; height:100%; aspect-ratio:auto; object-fit:cover; transition:transform .35s}
.public-site .experience:hover .experience-image img {transform:scale(1.035)}
.public-site .experience-music .experience-image img {object-position:50% 24%; transform:scale(1.12)}
.public-site .experience-music:hover .experience-image img {transform:scale(1.16)}
.public-site .experience .image-label {display:block; bottom:10px; left:10px; right:10px; max-width:max-content; padding:4px 7px; font-size:.64rem; background:#192338e8; color:#fff; border-radius:5px}
.public-site .experience-title {display:flex; align-items:start; justify-content:space-between; gap:10px; margin-top:22px}
.public-site .experience-title h3 {font-size:clamp(1.2rem,1.8vw,1.5rem); line-height:1.22; letter-spacing:-.03em}
.public-site .experience-title>span {color:#e9f2b0; font-size:23px}
.public-site .experience>p {font-size:.68rem; color:#e9f2b0; margin-top:11px; letter-spacing:.08em}
.public-site .experience-copy {display:block; font-size:.88rem; line-height:1.7; color:#c8d2e4; margin-top:13px; max-width:none}
.public-site .experience-art {display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:20px; padding:18px; background:#dce7ff; color:#24468e}
.public-site .experience-dance .experience-art {background:#f2c9b5; color:#70371f}
.experience-art>.culture-icon {width:74px; height:74px; stroke-width:1.1; transform:rotate(-8deg)}
.experience-dance .experience-art>.culture-icon {transform:rotate(9deg)}
.art-number {align-self:flex-start; font-size:.62rem; letter-spacing:.12em; font-weight:750}
.art-caption {font-size:1.15rem; font-weight:750; letter-spacing:-.04em; line-height:1.1; align-self:flex-start}
.public-site .experiences .scene-note {font-size:.76rem; color:#bdc9dd; margin-top:25px}
.public-site .experiences .more-formats {border:0; margin-top:24px; padding-top:0; gap:18px; align-items:center}
.public-site .more-formats>p {color:#bdc9dd; font-size:.86rem}
.public-site .more-formats a {display:flex; align-items:center; justify-content:space-between; gap:15px; background:#ffffff0a; border:1px solid #ffffff2e; border-radius:12px; padding:15px 19px; font-size:.94rem; min-height:52px}
.public-site .more-formats a:hover {background:#ffffff18; border-color:#e9f2b0}
.public-site .more-formats a>span {color:#e9f2b0}

.public-site .digital-learning-heading h2 {font-size:clamp(1.9rem,3.2vw,2.9rem)}
.public-site .digital-learning-copy h3 {font-size:1.55rem}
.public-site .digital-learning-figure img {border-radius:20px}
.public-site .digital-learning-topics li::before {color:#2853a8}
.public-site .digital-learning-trainer {background:#eaf0fc; border:0; padding:18px 20px; border-radius:12px}
.public-site .venue-section {padding-bottom:28px}
.public-site .venue-section .section-heading h2 {font-size:clamp(1.8rem,2.8vw,2.6rem)}
.public-site .venue-gallery {gap:24px; grid-template-columns:1.2fr 1fr}
.public-site .venue-gallery img {height:250px; width:100%; object-fit:cover; border-radius:18px}
.public-site .venue-gallery figcaption {font-size:.76rem; color:#5b6578; padding-top:12px}
.public-site .manifesto {display:grid; grid-template-columns:1fr 1fr; gap:10px 65px; padding:45px 0 55px; margin-block:10px 45px; border:0; border-bottom:1px solid var(--line); background:none}
.public-site .manifesto>.eyebrow {grid-column:1/-1; margin-bottom:10px}
.public-site .manifesto h2 {font-size:clamp(2.4rem,4.5vw,4.1rem); line-height:1.06; font-weight:750}
.public-site .manifesto-bottom {margin:0; min-width:0; align-items:center}
.public-site .manifesto-bottom>div {width:auto; min-width:0}
.public-site .manifesto-bottom p {font-size:1rem; line-height:1.8; color:#586276}
.public-site .manifesto-bottom .text-link {margin-top:20px}
.public-site .future {background:#e7edfa; padding:clamp(28px,4vw,50px); border-radius:24px; gap:45px; grid-template-columns:1fr 1fr; overflow:hidden}
.public-site .future>div {min-width:0}
.public-site .future h2 {font-size:clamp(2rem,3.6vw,3.3rem); line-height:1.08; margin:22px 0}
.public-site .future p:not(.eyebrow) {font-size:1rem; color:#53617b; line-height:1.7}
.public-site .future .text-link {margin-top:18px}
.public-site .future-poster {display:flex; flex-direction:column; justify-content:space-between; min-height:350px; padding:32px; gap:30px; border-radius:17px; background:#294f9c; color:#fff; transform:rotate(-2deg)}
.public-site .future-poster>span {display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.68rem; letter-spacing:.13em; color:#dce7ff}
.public-site .future-poster>span>b {font-size:30px; color:#e9f2b0}
.public-site .future .future-poster>p {font-size:clamp(2.1rem,3.7vw,3.5rem); font-weight:750; color:#fff; line-height:1.02; letter-spacing:-.055em; margin:0}
.public-site .future-poster>b {font-size:.72rem; color:#e9f2b0; border-top:1px solid #ffffff45; padding-top:17px; font-weight:600}
.public-site .join {padding-block:70px}
.public-site .join h2 {font-size:clamp(2.4rem,4.3vw,3.8rem); line-height:1.08}
.public-site .join>div {gap:40px; align-items:center}
.public-site .join>div>div {width:400px; max-width:100%; flex-shrink:0}
.public-site .join p:not(.eyebrow) {font-size:1rem; color:#586276}
.public-site .join .button {width:max-content; min-width:230px}

/* A homepage entry only exists when a public, playable film exists. */
.home-cinema {display:grid; grid-template-columns:.9fr 1.1fr; gap:45px; align-items:center; background:#e9f0b9; border:1px solid #d7dfa5; border-radius:24px; padding:42px; margin-bottom:20px; overflow:hidden}
.public-site .home-cinema .eyebrow {color:#4b5623}
.public-site .home-cinema h2 {font-size:clamp(2.2rem,4vw,3.7rem); margin:20px 0; line-height:1.05}
.public-site .home-cinema-copy>p:not(.eyebrow) {font-size:1rem; color:#4e5835; max-width:430px}
.public-site .home-cinema .button {margin-top:25px; background:#192338; border-color:#192338}
.public-site .home-cinema .button:hover {background:#2b3c5b}
.home-cinema-feature {display:flex; position:relative; isolation:isolate; flex-direction:column; justify-content:space-between; gap:45px; min-width:0; min-height:330px; padding:28px; border-radius:17px; background:#192338; color:#fff; overflow:hidden}
.home-cinema-feature::after {content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#111d3220 0%,#111d3299 45%,#111d32 100%)}
.home-cinema-feature>img {position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .3s}
.home-cinema-feature:hover>img {transform:scale(1.035)}
.home-cinema-play {display:grid; place-items:center; width:62px; height:62px; border-radius:50%; background:#e9f0b9; color:#192338; box-shadow:0 0 0 8px #ffffff20}
.home-cinema-play .culture-icon {width:27px; height:27px}
.home-cinema-caption {display:grid; gap:9px}
.home-cinema-caption small {font-size:.73rem; color:#e2e7f1}
.home-cinema-caption strong {font-size:clamp(1.4rem,2.2vw,1.9rem); line-height:1.2; letter-spacing:-.035em; overflow-wrap:anywhere}
.home-cinema-caption>span {display:flex; align-items:center; gap:12px; font-size:.83rem; color:#e9f0b9; margin-top:4px}
.public-site .retrospective-home>.section-heading {display:flex; justify-content:space-between; align-items:end}
.public-site .retrospective-home>.section-heading h2 {font-size:clamp(1.9rem,3.2vw,2.9rem)}
.public-site .retrospective-card {border-radius:22px; padding:24px; border-color:#dfe4ee; gap:34px}
.public-site .retrospective-copy h3 {font-size:clamp(1.5rem,2.5vw,2.1rem); line-height:1.18; margin:15px 0}
.public-site .retrospective-copy>p:not(.eyebrow) {font-size:.96rem; line-height:1.75}
.public-site .retrospective-home .retrospective-copy>p:not(.eyebrow) {display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden}
.public-site .retrospective-home .retrospective-copy .text-link {margin-top:7px}
.public-site .retrospective-gallery {border-color:#dce2ee; border-radius:14px; background:#eef1f7}
.public-site .retrospective-controls {border-color:#e1e5ee}
.public-site .social-section {padding:32px 0 45px; border-color:#dce2ed}
.public-site .social-section h2 {font-size:1.9rem; line-height:1.2; margin:10px 0}
.public-site .social-section p:not(.eyebrow) {font-size:.94rem; color:var(--muted)}
.public-site .social-links a {border-color:#d3dbe8; color:#2c4774; border-radius:10px; font-size:.85rem; min-height:48px}
.public-site .social-links a:hover {background:#eaf0fb}
.public-site .site-footer {width:100%; max-width:none; background:#edf0f7; border-top:1px solid #dce2ed; padding:34px var(--gutter) 35px; border-radius:0}
.public-site .association-footer {max-width:640px; margin:0 auto 26px; border-radius:12px; width:100%; height:auto}
.public-site .footer-top {max-width:1320px; margin:auto; padding:23px 0; border-top:1px solid #d6dfed}
.public-site .footer-top>p {font-size:.92rem; color:#536179}
.public-site .footer-social {max-width:1320px; margin:auto; border-color:#d6dfed}
.public-site .footer-social>p {font-size:.88rem}
.public-site .footer-bottom {max-width:1320px; margin:20px auto 0; border-color:#d6dfed; color:#526079; font-size:.75rem; line-height:1.7; align-items:center}
.public-site .footer-bottom>div {gap:8px 17px}
.public-site .footer-bottom a {display:inline-flex; align-items:center; min-height:44px}
.public-site .article h1,.public-site .event-page>h1,.public-site .membership-page h1 {font-size:clamp(2.3rem,4.5vw,4rem); line-height:1.08}
.public-site .article .prose h2 {font-size:clamp(1.5rem,2.5vw,2.1rem); line-height:1.25}
.public-site .article .prose h3 {font-size:1.4rem; line-height:1.3}
.public-site .panel {border-color:#dce2ed; border-radius:17px}
.public-site .accessibility-launcher {background:#213e72; border-color:#fff; color:#fff; box-shadow:0 4px 18px #19233825}
.public-site .accessibility-launcher:hover {background:#172d55}

@media(max-width:1280px) {
 .public-site .site-header {min-height:80px; padding-block:12px}
 .public-site .menu-button {display:flex; align-items:center; justify-content:center; gap:13px; margin-left:0; min-height:46px; padding:10px 15px; flex:none}
 .public-site .menu-button i,.public-site .menu-button i::after {display:block; width:19px; height:2px; background:currentColor; position:relative}
 .public-site .menu-button i::after {content:""; position:absolute; top:6px}
 .public-site .menu-button[aria-expanded=true] i {transform:rotate(45deg)}
 .public-site .menu-button[aria-expanded=true] i::after {transform:rotate(-90deg); top:0}
 .public-site .site-header>nav {display:none; position:absolute; top:100%; left:0; right:0; padding:18px var(--gutter) 25px; background:#fff; border-bottom:1px solid #dce2ed; max-height:calc(100dvh - 100px); overflow-y:auto; box-shadow:0 15px 25px #19233812; margin:0}
 .public-site .site-header>nav.open {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px}
 .public-site .site-header nav>a:not(.button) {font-size:1rem; min-height:50px; padding:12px 15px; gap:13px; border:0; white-space:normal}
 .public-site .site-header nav .culture-icon {width:21px; height:21px}
 .public-site .site-header nav .button {margin:0; font-size:.92rem; justify-content:flex-start; gap:13px; padding:13px 15px}
 html:not(.js) .public-site .site-header {flex-wrap:wrap}
 html:not(.js) .public-site .site-header>nav {display:flex; flex-basis:100%; position:static; max-height:none; padding:0; border:0; box-shadow:none; justify-content:flex-start}
 html:not(.js) .public-site .menu-button {display:none}
 .public-site .welcome {gap:35px}
 .public-site .welcome-media figure>img {height:480px}
}
@media(max-width:999px) {
 .public-site .welcome {grid-template-columns:1fr; padding-top:35px; gap:38px}
 .public-site .welcome h1 {font-size:clamp(3.3rem,8vw,5rem); max-width:760px}
 .public-site .welcome-copy>p:not(.eyebrow) {max-width:600px; margin-top:22px}
 .public-site .welcome-media figure>img {height:430px; object-position:50% 35%}
 .public-site .welcome-media .next-event {max-width:560px}
 .public-site .experience-grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 22px}
 .public-site .experience-image {aspect-ratio:1.45}
 .public-site .experience-art {padding:22px}
 .public-site .experience-title h3 {font-size:1.5rem}
 .public-site .event-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .public-site .event-grid[data-count="3"] .event-card:last-child {grid-column:1/-1; max-width:calc((100% - 24px)/2)}
 .public-site .manifesto {gap:15px 35px}
 .public-site .future {gap:28px}
 .public-site .future-poster {min-height:320px; padding:25px}
 .public-site .join>div {gap:30px}
 .public-site .join>div>div {width:320px}
 .home-cinema {gap:28px; padding:30px}
 .home-cinema-feature {min-height:340px; padding:23px}
}
@media(max-width:700px) {
 .public-site .section-heading>div {display:grid; gap:16px}
 .public-site .section-heading>div>p {max-width:100%; margin:0}
 .public-site .section-heading .text-link {margin:0; justify-self:start}
 .public-site .welcome-media figure>img {height:385px}
 .public-site .event-grid,.public-site .event-grid[data-count="2"] {grid-template-columns:1fr}
 .public-site .event-grid[data-count="3"] .event-card:last-child {grid-column:auto; max-width:none}
 .public-site .event-image,.public-site .event-grid[data-count="2"] .event-image {aspect-ratio:1.65}
 .public-site .event-grid[data-count="1"] .event-card-link {display:flex}
 .public-site .event-grid[data-count="1"] .event-image {min-height:0; height:auto; aspect-ratio:1.65}
 .public-site .event-grid[data-count="1"] .event-card-copy {align-self:stretch; padding:24px 24px 35px}
 .public-site .event-card h3 {font-size:1.55rem}
 .public-site .manifesto {grid-template-columns:1fr; gap:22px; padding:30px 0 40px; margin-bottom:35px}
 .public-site .manifesto>.eyebrow {margin:0}
 .public-site .manifesto h2 {font-size:2.7rem}
 .public-site .future {grid-template-columns:1fr; padding:27px; gap:30px}
 .public-site .future-poster {min-height:290px; transform:rotate(-1.5deg)}
 .public-site .future .future-poster>p {font-size:2.8rem}
 .public-site .join>div {display:grid; gap:25px}
 .public-site .join>div>div {width:auto; margin-top:0}
 .public-site .join h2 {font-size:clamp(2.2rem,7.5vw,3.1rem)}
 .public-site .venue-gallery {grid-template-columns:1fr; gap:22px}
 .public-site .venue-gallery img {height:auto; max-height:360px; aspect-ratio:1.7}
 .home-cinema {grid-template-columns:1fr; padding:27px; gap:28px}
 .home-cinema-feature {min-height:290px}
 .public-site .retrospective-home>.section-heading {display:block}
 .public-site .retrospective-home>.section-heading>.text-link {margin-top:15px}
 .public-site .retrospective-card {grid-template-columns:1fr; gap:23px; padding:18px}
 .public-site .social-section {display:block}
 .public-site .social-section .social-links {margin-top:22px}
}
@media(max-width:560px) {
 .public-site {--gutter:20px}
 .public-site .site-header {padding:11px 15px; min-height:73px; gap:9px}
 .public-site .site-header .wordmark b {font-size:21px}
 .public-site .site-header .wordmark small {font-size:6.5px}
 .public-site .site-header .brand-crest {width:25px; height:31px}
 .public-site .site-header .brand {gap:7px}
 .public-site .site-header>.ticket-shop-button {width:130px; height:46px; padding:0 17px; font-size:.81rem; gap:6px; margin-left:auto}
 .public-site .site-header>.menu-button {width:44px; height:44px; min-height:44px; flex:0 0 44px; padding:10px}
 .public-site .menu-button>span {display:none}
 .public-site .site-header>nav.open {grid-template-columns:1fr; padding:14px 18px 22px; max-height:calc(100dvh - 90px)}
 .public-site .site-header nav .button {margin-top:5px}
 .public-site .welcome {padding-block:30px 22px; gap:33px}
 .public-site .welcome-copy .eyebrow {font-size:.63rem; margin-bottom:20px; padding:8px 10px}
 .public-site .welcome h1 {font-size:clamp(2.65rem,10vw,3.65rem); line-height:1.04; letter-spacing:-.06em}
 .public-site .welcome-copy>p:not(.eyebrow) {font-size:1rem; margin-top:21px}
 .public-site .welcome-actions {gap:12px; margin-top:24px}
 .public-site .welcome-actions .button {font-size:.82rem; padding:13px 15px; gap:14px}
 .public-site .ticket-shop-hero {width:160px; height:50px; font-size:.94rem; padding-inline:20px}
 .public-site .welcome-actions .text-link {flex-basis:100%; min-height:44px}
 .public-site .welcome-media {padding-bottom:10px}
 .public-site .welcome-media::before {inset:20px -5px 0 12px; border-radius:19px}
 .public-site .welcome-media figure {border-radius:19px}
 .public-site .welcome-media figure>img {height:360px}
 .welcome-stamp {right:4px; top:-14px; font-size:.63rem; padding:13px; gap:7px}
 .public-site .welcome-media figcaption {font-size:.62rem; left:12px; top:14px; max-width:calc(100% - 125px); padding:6px 8px}
 .public-site .welcome-media .next-event {left:12px; right:12px; bottom:23px; padding:17px; border-radius:12px}
 .public-site .next-event strong {font-size:1.28rem}
 .public-site .next-date {font-size:.8rem}
 .public-site .next-place {font-size:.74rem}
 .public-site .format-strip {flex-wrap:wrap; overflow:visible; padding-block:15px 22px; gap:8px}
 .public-site .format-strip>span {flex-basis:100%; margin:0 0 3px; font-size:.8rem}
 .public-site .format-strip a {font-size:.78rem; padding:10px 13px; gap:7px; min-height:44px}
 .public-site .program {padding-top:40px}
 .public-site .event-card-copy {padding:23px 23px 35px}
 .public-site .event-card time b {font-size:1.85rem}
 .public-site .event-card time>span {font-size:.6rem}
 .public-site .experiences {padding-block:48px}
 .public-site .experience-grid {grid-template-columns:1fr; gap:30px}
 .public-site .experience {display:grid; grid-template-columns:110px minmax(0,1fr); column-gap:18px; padding-bottom:25px; align-content:start}
 .public-site .experience-image {grid-column:1; grid-row:1/4; aspect-ratio:auto; height:156px; border-radius:13px; align-self:start}
 .public-site .experience-image img {height:100%; object-fit:cover}
 .public-site .experience .image-label {display:none}
 .public-site .experience-title {grid-column:2; margin:0; gap:9px; align-items:start}
 .public-site .experience-title h3 {font-size:1.3rem; line-height:1.2}
 .public-site .experience-title>span {font-size:20px}
 .public-site .experience>p {grid-column:2; font-size:.63rem; margin-top:8px; line-height:1.6}
 .public-site .experience-copy {grid-column:2; font-size:.84rem; margin-top:10px; line-height:1.65}
 .public-site .experience-art {padding:12px; justify-content:center; gap:16px}
 .experience-art>.culture-icon {width:55px; height:55px}
 .art-number {display:none}
 .art-caption {font-size:.78rem; line-height:1.15}
 .public-site .experiences .more-formats {display:grid; grid-template-columns:1fr; gap:12px}
 .public-site .more-formats>p {margin:0 0 3px}
 .public-site .more-formats a {font-size:.9rem; padding:13px 16px}
 .public-site .section {padding-block:47px}
 .public-site .venue-section {padding-bottom:20px}
 .public-site .manifesto {padding-block:26px 35px}
 .public-site .join {padding-block:50px}
 .public-site .join .button {width:100%; justify-content:space-between}
 .public-site .future {padding:24px}
 .public-site .future .future-poster>p {font-size:clamp(2rem,9vw,2.8rem)}
 .public-site .future-poster {padding:23px; min-height:280px}
 .home-cinema {padding:24px}
 .home-cinema-feature {min-height:275px; padding:22px}
 .public-site .home-cinema h2 {font-size:2.5rem}
 .public-site .home-cinema .button {width:100%; padding-inline:17px; gap:12px}
 .public-site .social-section h2 {font-size:1.7rem}
 .public-site .site-footer {padding-bottom:95px}
 .public-site .footer-top {display:flex; flex-wrap:wrap; gap:12px}
 .public-site .footer-bottom {font-size:.76rem; gap:12px}
 .public-site .footer-bottom>div {gap:5px 14px}
 .public-site .mobile-dock {display:flex; gap:8px; padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px)); background:#fffffff5; border-top:1px solid #dce2ed; z-index:55}
 .public-site .mobile-dock>a {flex:1; justify-content:center; gap:7px; min-height:48px; padding:11px 7px; font-size:.75rem; font-weight:650; border-radius:11px; border-color:#dce2ed; background:#f3f5fa; color:#243451}
 .public-site .mobile-dock>a:first-child {background:#8b294a; color:#fff; border-color:#8b294a}
 .public-site .mobile-dock .culture-icon {width:18px; height:18px}
 .public-site .accessibility-launcher {bottom:calc(84px + env(safe-area-inset-bottom,0px)); left:12px}
}
@media(max-width:360px) {
 .public-site .site-header {padding-inline:10px; gap:7px}
 .public-site .site-header .brand-crest {width:21px; height:27px}
 .public-site .site-header .wordmark b {font-size:18px}
 .public-site .site-header .wordmark small {font-size:6px}
 .public-site .site-header>.ticket-shop-button {width:118px; padding:0 15px; font-size:.75rem}
 .public-site .experience {grid-template-columns:88px minmax(0,1fr); gap:0 14px}
 .public-site .experience-image {height:145px}
 .public-site .mobile-dock>a {gap:5px; font-size:.7rem}
 .public-site .mobile-dock .culture-icon {width:16px; height:16px}
 .public-site .welcome-actions>.button {flex:1; justify-content:space-between}
}

/* User-selected reading preferences always take priority over presentation. */
html[data-font=large] .public-site .site-header,html[data-font=larger] .public-site .site-header {flex-wrap:wrap; position:relative}
html[data-font=large] .public-site .site-header>nav,html[data-font=larger] .public-site .site-header>nav {display:flex; position:static; flex-basis:100%; flex-wrap:wrap; max-height:none; padding:12px 0 0; box-shadow:none; border:0; background:transparent; justify-content:flex-start}
html[data-font=large] .public-site .menu-button,html[data-font=larger] .public-site .menu-button {display:none}
html[data-font=large] .public-site .site-header nav>a,html[data-font=larger] .public-site .site-header nav>a {font-size:.9rem; white-space:normal}
html[data-font=larger] .public-site .welcome,html[data-font=larger] .public-site .event-grid,html[data-font=larger] .public-site .experience-grid,html[data-font=larger] .public-site .manifesto,html[data-font=larger] .public-site .future,html[data-font=larger] .home-cinema {grid-template-columns:1fr}
html[data-font=larger] .public-site .event-card-link {display:flex!important}
html[data-font=larger] .public-site .event-card {max-width:none!important}
html[data-font=larger] .public-site .experience {display:flex}
html[data-font=larger] .public-site .experience-image {height:220px; width:100%}
html[data-font=larger] .public-site .experience-title {margin-top:18px}
html[data-font=larger] .public-site .mobile-dock {position:static; flex-wrap:wrap}
html[data-font=larger] .public-site .accessibility-launcher {bottom:20px}
.high-contrast .public-site .next-event,.high-contrast .home-cinema-feature,.high-contrast .public-site .future-poster {background:#fff!important; color:#000!important; border:2px solid #000}
.high-contrast .home-cinema-feature::after {background:#fff}
.high-contrast .public-site .next-event *,.high-contrast .home-cinema-caption *,.high-contrast .public-site .future-poster *,.high-contrast .public-site .experiences * {color:#000!important}
.high-contrast .public-site .experience-art,.high-contrast .home-cinema-play,.high-contrast .public-site .more-formats a,.high-contrast .public-site .format-strip a,.high-contrast .public-site .site-header>nav {background:#fff!important; border:1px solid #000; color:#000!important}
.high-contrast .public-site .experience {border-color:#000}
.high-contrast .public-site .mobile-dock>a:first-child {background:#fff!important; color:#000!important; border:2px solid #000}
.public-site [hidden] {display:none!important}
@media(prefers-reduced-motion:reduce) {
 .public-site *, .public-site *::before,.public-site *::after {animation:none!important; transition:none!important; scroll-behavior:auto!important}
 .public-site .event-card:hover,.public-site .experience-image img,.public-site .home-cinema-feature:hover>img {transform:none}
}
@media print {
 .public-site .site-header,.public-site .mobile-dock,.public-site .welcome-stamp,.public-site .home-cinema,.public-site .site-footer {display:none!important}
 .public-site .welcome-media::before {display:none}
 .public-site .experiences,.public-site .future-poster,.public-site .next-event {background:#fff!important; color:#000!important}
 .public-site .experiences *,.public-site .future-poster *,.public-site .next-event * {color:#000!important}
 .public-site .welcome h1 {font-size:36pt}
 .public-site .welcome-media figure>img {height:240px}
 .public-site .section {padding-block:25px}
}

/* 1.14.1: photographic illustrations instead of the two graphic tiles. */
.public-site .experience-reading .experience-image img {object-position:50% 58%}
.public-site .experience-dance .experience-image img {object-position:50% 48%}
.public-site .experience .image-label.ai-disclosure {display:block; font-size:.62rem; line-height:1.35; padding:4px 6px; background:#192338ed; color:#fff; max-width:calc(100% - 16px); left:8px; right:auto; bottom:8px; overflow-wrap:anywhere}
@media(max-width:560px) {
 .public-site .experience .image-label.ai-disclosure {font-size:.55rem; padding:3px 4px; left:5px; bottom:5px; max-width:calc(100% - 10px)}
}
.high-contrast .public-site .experience .image-label.ai-disclosure {background:#fff!important; color:#000!important; border:1px solid #000}

/* Technische Umsetzung: Sven Moss · Moss Büro- und Informationstechnik · https://www.mbi-infotec.de/ */
.public-site .footer-implementation{max-width:1320px;margin:16px auto 0;padding-top:12px;border-top:1px solid #d6dfed;color:#526079;font-size:.78rem;line-height:1.7;text-align:center;overflow-wrap:anywhere}
.public-site .footer-implementation a{display:inline-block;max-width:100%;min-height:44px;padding:10px 0;color:#2c4774;font-weight:650;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.public-site .footer-implementation a:hover{color:#1768e8}
.public-site .footer-implementation a:focus-visible{outline:3px solid #1768e8;outline-offset:4px;border-radius:2px}
