@charset "UTF-8";
@-webkit-viewport { width: device-width; }
@-moz-viewport { width: device-width; }
@-ms-viewport { width: device-width; }
@-o-viewport { width: device-width; }
@viewport { width: device-width; }
@font-face { font-family: 'Sneak'; src: url("/fonts/Sneak-Light.woff2") format("woff2"), url("/fonts/Sneak-Light.woff") format("woff"); font-weight: 300; font-style: normal; }
@font-face { font-family: 'Sneak'; src: url("/fonts/Sneak-Medium.woff2") format("woff2"), url("/fonts/Sneak-Medium.woff") format("woff"); font-weight: 600; font-style: normal; }
@font-face { font-family: 'Sneak'; src: url("/fonts/Sneak-Light-Italic.woff2") format("woff2"), url("/fonts/Sneak-Light-Italic.woff") format("woff"); font-weight: 300; font-style: italic; }
@media screen, projection { :root { --text_color: #111; --text_color_rgb: 17, 17, 17; --bg_color: #fff; --bg_color_rgb: 255, 255, 255; --emaf_color: #e83e3f; --fill: 0.5rem; --fill_init: .25rem; --nvcn: 52px; --nav_pad: 6rem; --scroll_margin: 3.5rem ; }
  .dark { --text_color: #e9ecef; --text_color_rgb: 235, 235, 235; --bg_color: #25292e; --bg_color_rgb: 37, 41, 46; } }
@media screen and (prefers-color-scheme: dark), projection and (prefers-color-scheme: dark) { :root { --text_color: #e9ecef; --text_color_rgb: 235, 235, 235; --bg_color: #25292e; --bg_color_rgb: 37, 41, 46; }
  body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } }
@media screen, projection { html { box-sizing: border-box; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; line-height: 1.15; scroll-behavior: smooth; }
  *, *::before, *::after { box-sizing: inherit; }
  body { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23e83e3f' d='M0 0h20v20H0z'/%3E%3C/svg%3E") 10 10, auto; position: relative; margin: 0; padding: 0.5rem; padding: var(--fill); color: var(--text_color); font-family: "Sneak", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; font-size: 125%; line-height: 1.25; background: var(--bg_color); -webkit-font-feature-settings: 'tnum' 1, 'lnum' 1, 'liga' 1; -moz-font-feature-settings: 'tnum' 1, 'lnum' 1, 'liga' 1; font-feature-settings: 'tnum' 1, 'lnum' 1, 'liga' 1; overscroll-behavior: none; }
  body:after { content: ''; position: fixed; display: block; top: 0; left: 0; right: 0; height: var(--fill); background: var(--bg_color); }
  ::-moz-selection { background: var(--emaf_color); }
  ::selection { background: var(--emaf_color); }
  article, aside, footer, header, nav, section, figcaption, figure, main, details, summary { display: block; }
  audio, video { display: inline-block; }
  h1 { margin: 1.333em 0 .67em 0; font-size: 150%; font-weight: 300; line-height: 1.125; }
  h2 { margin: 1.5em 0 .5em; font-size: 125%; font-weight: 300; line-height: 1.2; }
  h3, h4, h5, h6 { margin: 1em 0 0; font-size: 100%; font-weight: 300; }
  h3 { margin-bottom: .5rem; }
  h3 + * { margin-top: 0; }
  h4 + *, h5 + * { margin-top: 0; }
  a { color: inherit; background-color: transparent; text-underline-offset: .1em; }
  a:hover { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; }
  b, strong { font-weight: bolder; }
  img { max-width: 100%; height: auto; border: 0; -ms-interpolation-mode: bicubic; }
  img:not([alt]) { filter: grayscale(100%); }
  svg:not(:root) { overflow: hidden; }
  audio { max-width: 100%; }
  figure { margin-left: auto; margin-right: auto; }
  figure img { vertical-align: top; }
  hr { height: 0; margin: 1.25em auto; color: inherit; border: none; border-top: 1px solid; }
  *:focus:not(:focus-visible) { outline: none; }
  [id] { scroll-margin-top: var(--scroll_margin); }
  html[lang="de"] [lang="en"], html[lang="en"] [lang="de"] { display: none !important; }
  button, input, optgroup, select, textarea { font: inherit; line-height: 1.15; margin: 0; }
  textarea { resize: vertical; }
  button, input { overflow: visible; }
  button, select { text-transform: none; }
  button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
  button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
  button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
  fieldset { padding: 0; margin: 0; border: none; }
  button, summary { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  [hidden] { display: none; }
  .visually_hidden, .vh { position: absolute; clip: rect(0 0 0 0); overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; }
  /* NAV */
  #navicon { cursor: inherit; position: fixed; z-index: 11; left: 0; bottom: 0; right: 0; width: 100%; height: 44px; height: var(--nvcn, 44px); display: -ms-flexbox; display: flex; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-align: center; align-items: center; margin: 0; padding: var(--fill); color: var(--bg_color); background: var(--text_color); border: none; outline: none; }
  #navicon:before { content: attr(aria-label); display: block; font-size: 120%; }
  #navicon svg { display: none; max-width: 100%; height: auto; }
  #navicon:hover { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; }
  .icn, .icn:before, .icn:after { height: 2px; width: 44px; background: var(--bg_color); border-radius: 2px; transition-timing-function: ease-in-out; }
  .icn { position: relative; z-index: 1; display: inline-block; vertical-align: middle; transition-duration: .1s; transition-delay: 0; transition-property: background; }
  .icn:before, .icn:after { content: ''; position: absolute; left: 0; transition-duration: .1s, .1s; transition-delay: .1s, 0; }
  .icn:before { top: -10px; transition-property: top, transform; }
  .icn:after { bottom: -10px; transition-property: bottom, transform; }
  #navicon[aria-expanded="true"] .icn { background-color: transparent; }
  #navicon[aria-expanded="true"] .icn:before, #navicon[aria-expanded="true"] .icn:after { transition-delay: 0, .1s; }
  #navicon[aria-expanded="true"] .icn:before { top: 0; transform: rotate(45deg); }
  #navicon[aria-expanded="true"] .icn:after { bottom: 0; transform: rotate(-45deg); }
  nav ul { margin: 0; padding: 0; list-style: none; }
  nav a { text-decoration: none; }
  #nav { width: 100%; height: 100vh; height: calc(var(--vh, 1vh) * 100); display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; padding: var(--fill); padding-bottom: calc(44px + 1em); padding-bottom: calc(var(--nvcn, 44px) + 1em); background: var(--bg_color); scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; transform: translate3d(100%, 0, 0); transition: transform .4s; }
  #nav::-webkit-scrollbar { display: none; }
  #menu { margin-bottom: 1.25em; border-bottom: 1px solid; }
  #menu a { display: block; padding: .5rem 0; font-size: 125%; line-height: 1.2; letter-spacing: -0.4px; }
  #menu a:not([href]) { opacity: .3; }
  #menu li { position: relative; }
  #menu li:before { z-index: -1; position: absolute; display: block; top: var(--fill); top: 0; padding-top: .5rem; font-size: 75%; border-top: 1px solid; right: 0; }
  #menu li:nth-child(1):before { content: 'Festival'; }
  #menu li:nth-child(7):before { content: 'Info'; }
  #menu li + li a { border-top: 1px solid; }
  @supports (padding: var(--nav_pad)) { #menu { padding-left: var(--nav_pad); }
    #menu li:before { left: calc(var(--nav_pad) * -1); } }
  #meta { margin-top: auto; display: -ms-flexbox; display: flex; -ms-flex-align: end; align-items: flex-end; -ms-flex-pack: justify; justify-content: space-between; font-size: 75%; }
  #meta p { margin: 0 1.25em 0 0; }
  .lselect { display: -ms-flexbox; display: flex; text-transform: uppercase; list-style: none; margin: 0; padding: 0; }
  .lselect li { width: 3em; text-align: center; }
  .lselect a { display: block; padding: .25em .5em; text-decoration: none; border: 1px solid var(--text_color); }
  .lselect a:hover { border-radius: 999px; }
  .lselect span { position: absolute; clip: rect(0 0 0 0); overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; }
  [lang="de"] .lselect li:first-child a, [lang="en"] .lselect li:last-child a { pointer-events: none; color: var(--bg_color); background: var(--text_color); }
  #backdrop { display: none; position: fixed; z-index: 8; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0); }
  .js #nav { position: fixed; overflow-y: auto; z-index: 10; top: 0; right: -100%; }
  .js #nav.expanded { right: 0%; transform: translate3d(0%, 0, 0); }
  .js #nav.expanded ~ #backdrop { display: block; }
  .js #nav.closing { right: 0%; transform: translate3d(100%, 0, 0); }
  #toc { display: none; position: fixed; overflow: hidden; top: var(--fill); left: var(--fill); right: var(--fill); z-index: 8; font-size: 75%; min-height: calc(2.5em + 2px); background: var(--bg_color); border: 1px solid; }
  #toc.ready { display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; }
  #toc > * { position: relative; max-height: 0; padding: 0 .75em; line-height: 2.5; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: var(--bg_color); transition: border-radius .25s, color .25s, background .25s, max-height .2s; }
  #toc a + a:before { content: ''; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid transparent; }
  #toc .current { max-height: 3em; }
  #toc.open { border-radius: 1em; }
  #toc.open a { max-height: 3em; }
  #toc.open a + a:before { border-top-color: var(--text_color_); }
  #toc.open a:first-child { border-top: 0; }
  #filter { position: relative; overflow: visible; }
  #filter.filtered { border-radius: 999px; }
  #filter legend { display: block; width: 100%; }
  #filter legend:hover { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; }
  #filter div { display: none; position: absolute; z-index: 2; top: 2.5em; left: -1px; right: -1px; line-height: 1.25; text-align: left; background: var(--bg_color); border: 1px solid; border-top: none; border-radius: 0 0 1rem 1rem; }
  #filter:hover { transition: none !important; }
  #filter.open { border-radius: 1em 1em 0 0 !important; }
  #filter.open:hover { border-radius: 1em 1em 0 0; }
  #filter.open div { display: block; }
  #filter ul { margin: 0; padding: var(--fill); list-style: none; }
  #filter ul + ul { border-top: 1px solid; }
  #filter ul ul { padding-top: .125em; padding-bottom: .125em; padding-left: 1.5em; }
  #filter p { margin: 0; padding: var(--fill); }
  #filter p + p { border-top: 1px solid; }
  #filter label { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; display: block; max-width: 100%; margin: .25em 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #filter input { -webkit-appearance: none; position: relative; display: inline-block; vertical-align: text-bottom; background: var(--bg_color); border: 1px solid; box-shadow: none; padding: .5em; border-radius: 0; }
  #filter input:hover { border-radius: 999px; }
  #filter input:checked { background: var(--text_color); border-radius: 999px; }
  #filter button { cursor: pointer; display: block; width: 100%; margin: 0; padding: .5em 1em; color: var(--text_color); text-align: center; background: var(--bg_color); border: 0; border-top: 1px solid; border-radius: 0 0 1rem 1rem; }
  #filter button:hover, #filter button:focus { color: var(--bg_color); background-color: var(--text_color); cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; border-top: 0; border-radius: 1rem; box-shadow: 0 0 0 1px var(--text_color); }
  /* HEADER */
  header { position: -webkit-sticky; position: sticky; top: calc(1.5em + var(--fill) + 2px); z-index: -1; }
  header h1 { margin: 0 0 0; padding: 1.5rem; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; min-height: 62vh; min-height: calc(var(--vh, 1vh) * 62); font-size: 280%; font-size: min(max(2.8em, 14vw), 12rem); letter-spacing: -.075em; text-align: center; border: 1px solid; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; }
  .home header { z-index: 0; }
  #toc:empty + header h1 { border-top-width: 1px; }
  /* HOME */
  .home:after { content: none; }
  .home #toc { display: none; }
  .home header { position: relative; top: 0; margin-top: calc(var(--fill) * -1); margin-left: calc(var(--fill) * -1); margin-right: calc(var(--fill) * -1); }
  @keyframes fadein { 0% { opacity: 0; }
    100% { opacity: 1; } }
  @keyframes fadeout { 0% { opacity: 1; }
    100% { opacity: 0; } }
  #frontispiece { position: relative; position: -webkit-sticky; position: sticky; z-index: 0; top: 0; overflow: hidden; display: grid; place-items: center; padding: var(--fill); height: calc(100vh - 3rem - var(--nvcn)); height: calc((var(--vh, 1vh) * 100) - 3rem - var(--nvcn)); background: #b5cdc5; }
  #frontispiece img { width: 100%; height: 100%; -o-object-fit: contain; object-fit: contain; }
  #frontispiece svg { width: 100%; height: 100%; -o-object-fit: contain; object-fit: contain; }
  #frontispiece span { position: absolute; width: var(--r, 0); height: var(--r, 0); background: #E83E3F; border-radius: 999px; backface-visibility: hidden; animation: fadein .2s; transition: width .2s, height .2s; }
  #frontispiece .leaving { animation: fadeout .2s; }
  .globaltitle { position: relative; z-index: 2; padding: 0 var(--fill); background: var(--bg_color); transform: translateZ(0); }
  .globaltitle h1 { position: relative; z-index: 2; min-height: auto; padding: 0.25rem; -ms-flex-pack: start; justify-content: flex-start; font-size: 1rem; text-align: left; line-height: 2.5; letter-spacing: initial; background: var(--bg_color); border: none; }
  .globaltitle h1 * { margin-left: auto; font-style: normal; }
  .globaltitle h1 .lselect { font-size: 70%; line-height: 1.25; }
  .globaltitle:after { content: ''; display: block; position: relative; height: 62vh; height: calc(var(--vh, 1vh) * 62); border: 1px solid; border-right-width: 0; border-bottom-width: 0; background: var(--bg_color); }
  /* MAIN */
  main { position: relative; background: var(--bg_color); border-top: 1px solid; }
  main > * { grid-column: 2; margin: 0; padding: 1rem 0; padding: var(--fill) 0; padding-top: var(--fill_init); }
  main p > audio:only-child + p { margin-top: 0; }
  main ul + p { margin-top: var(--fill); }
  main > a { padding: 0; }
  main small { font-size: 75%; }
  main > *:last-child { border-bottom: 0; }
  main:after { content: ''; display: block; grid-column: 1 / -1; height: 15em; background: var(--bg_color); border-top: 1px solid; }
  .mrgn { grid-column: 1 / -1; height: 7.5em; padding: 0; background: var(--bg_color); border-top: 1px solid; border-bottom: 1px solid; }
  main > .mrgn:first-child { display: none; }
  .copy { padding-bottom: 3.75em; }
  .copy > * { margin: var(--fill) 0; }
  .copy > p:first-child { margin-top: 0; }
  .copy ul { padding-left: 1em; }
  .colophon { font-size: 75%; }
  .section_headline, .section_start { grid-column: 1; margin-bottom: 2.5em; padding-top: var(--fill); padding-bottom: var(--fill); padding-left: 0; }
  .subsection_headline { width: 100%; margin: 0; padding-top: var(--fill_init); padding-left: 0; padding-bottom: 3em; grid-column: 1 / -1; font-size: 75%; font-weight: bold; background: var(--bg_color); border-top: 1px solid; border-bottom: 1px solid; }
  main > ul:not([id]), main > ul:not([class]) { list-style-position: inside; padding: 0 0 0 1ch; margin-bottom: var(--fill); }
  main > ul:not([id]) ::marker, main > ul:not([class]) ::marker { content: '⟼ '; }
  .full { width: 100%; grid-column: 1 / -1; padding-left: 0; padding-right: 0; background: var(--bg_color); }
  .full p { font-size: 75%; }
  .full > *:first-child { margin-top: 0; }
  .full > *:last-child { margin-bottom: 0; }
  .full.transparent { background: transparent; }
  .full > img { width: 100%; vertical-align: bottom; }
  .full > img:only-child { margin-top: calc(var(--fill_init) * -1); margin-bottom: calc(var(--fill) * -1); border-radius: 11px; }
  .notes { padding-top: 0; }
  .notes.big { padding-bottom: 6rem; }
  .notes + .mrgn { border-top: 0; }
  .notes > * { font-size: 75%; }
  .notes h3 { margin-bottom: 0; }
  .notes h3 + p { margin-top: 0; }
  .notes h2 { font-weight: 600; margin-bottom: 0; }
  .notes:last-child { margin-bottom: -1px; border-bottom-color: var(--color_bg); }
  .notes.pp h2 + p { margin-top: var(--fill); }
  .notes ul { padding-left: 18px; list-style: initial; }
  hr { position: relative; width: 100%; margin: 0; padding: 0; grid-column: 1 / -1; height: 12em; background: linear-gradient(to bottom, var(--bg_color), var(--bg_color) calc(100% - var(--fill)), transparent calc(100% - var(--fill)), transparent); background: var(--bg_color); border: none; border-top: 1px solid; border-bottom: 1px solid; }
  hr.fill { grid-column: 2; border: none; }
  hr.fill:after { content: none; }
  hr.line { height: 0; border-bottom: none; }
  div.line { grid-column: 1 / -1; padding: 0; border-top: 1px solid; }
  .fill { height: 2.5em; background: transparent; }
  .btn p { margin: 0; }
  .btn a { display: block; padding: .25em 2em; text-align: center; font-size: 80%; line-height: 2; text-decoration: none; border: 1px solid; transition: border-radius .25s; }
  .btn a:hover { border-radius: 999px; transition: border-radius 1s; }
  .full .btn a { padding-top: 0.5em; padding-bottom: 0.5em; }
  .yt_wrap { position: relative; padding-bottom: 56.25%; }
  .yt_wrap iframe { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; }
  /* Details */
  main details { padding: 0; border-top: 1px solid; }
  main details figcaption { margin-top: var(--fill_init); font-size: 75%; }
  summary { position: relative; min-height: .5em; padding: .75em 0; cursor: pointer; list-style-image: none; font-size: 75%; outline: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
  summary:hover { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; }
  summary:after { content: '↧'; display: block; position: absolute; top: var(--fill_init); right: 0; transform-origin: center; transition: transform .1s; }
  summary > * { margin: 0; font-size: inherit; }
  summary + div { padding: 0 0 var(--fill); }
  summary + div > *:first-child { margin-top: 0; }
  summary + div > *:last-child { margin-bottom: 0; }
  summary + div > .btn:last-child { margin-bottom: 3.75em; }
  summary::-webkit-details-marker { display: none; }
  details[open] summary:after { transform: rotate(180deg); }
  details::-webkit-scrollbar { display: none; }
  .post summary h2 { width: calc(100% - 2em); margin: 0; display: -ms-flexbox; display: flex; }
  .post summary h2 strong { position: relative; padding-right: 1.5em; }
  .post summary .pubdate { -ms-flex: 0 0 auto; flex: 0 0 auto; width: 24%; margin: 0; }
  .post summary:hover .pubdate:before { content: ' '; }
  .post summary:hover strong { padding-right: 0; padding-left: 1.5em; }
  .post summary:hover strong:before { content: '↳ '; position: absolute; left: 0; }
  .post figure { margin: 0 0 1em; }
  .post figure img { width: 100%; }
  .post p { margin: var(--fill) 0; }
  /* SLIDER */
  .slider { position: relative; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; transform: translateZ(0); }
  .slider button { display: none; cursor: pointer; position: absolute; z-index: 2; top: 0; bottom: 0; width: 50%; padding: 0; background: transparent; border: none; outline: none; }
  .mm .slider button { display: block; }
  .slider .prv { left: 0; cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='20' viewBox='0 0 22 20'%3E %3Cpath fill='%23e83e3f' d='M22 20L0 10 22 0z'/%3E%3C/svg%3E") 10 10, auto; }
  .slider .nxt { right: 0; cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='20' viewBox='0 0 22 20'%3E %3Cpath fill='%23e83e3f' d='M0 0l22 10L0 20z'/%3E%3C/svg%3E") 10 10, auto; }
  .slider[data-state="start"] .prv { opacity: .8; }
  .slider[data-state="end"] .nxt { opacity: .8; }
  .slider { padding-top: 0; padding-bottom: 0; }
  .slider > div { min-width: 100%; display: -ms-flexbox; display: flex; overflow: hidden; overflow-x: scroll; margin: 0; padding: 0; list-style: none; scrollbar-width: none; -ms-overflow-style: none; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
  .slider figure { position: relative; scroll-snap-align: center; -ms-flex: 0 0 100%; flex: 0 0 100%; width: 100%; height: 30vw; min-height: 16em; max-height: 80vh; margin: 0; }
  .slider figure > div { width: 100%; height: auto; }
  .slider img, .slider video { -o-object-fit: cover; object-fit: cover; width: 100%; height: 100%; }
  .slider figcaption { position: absolute; left: 0; bottom: 0; right: 0; padding: 0 var(--fill); font-size: 75%; background: rgba(var(--bg_color_rgb), .4); }
  .ready figcaption { visibility: hidden; }
  .slider > div::-webkit-scrollbar { display: none; }
  .solo button { display: none !important; }
  .caption { font-size: 70%; }
  .full .slider { margin-top: calc(var(--fill_init) * -1); margin-bottom: calc(var(--fill) * -1); }
  .full .slider figure { height: 46vw; }
  .full + .caption { grid-column: 1; padding-left: 0; }
  /* TIMETABLES */
  #timetable .section_headline span { display: block; }
  .day { padding-top: 0; padding-bottom: 0; }
  .day + .mrgn { height: 10em; }
  .item { padding: var(--fill_init) 0 0; border-bottom: 1px solid; }
  .item a { display: inline-block; text-decoration: none; }
  .item:first-child { border-top: 1px solid; }
  .item:last-child { border-bottom: none; }
  .item_header { position: relative; }
  .item_header:after { content: '↧'; display: block; position: absolute; top: 0; right: 0; line-height: 1; transform-origin: center; transition: transform .1s; }
  .open .item_header:after { transform: rotate(180deg); }
  .item_data { display: grid; grid-template-columns: 36% 1fr; row-gap: 1rem; font-size: 75%; }
  .item_time { grid-column: 1; }
  .allday { opacity: .2; }
  .item_location { grid-row: 1; grid-column: 2; }
  .item_location a { position: relative; z-index: 0; white-space: nowrap; }
  .item_location a:before { content: '● '; display: inline-block; line-height: .8; vertical-align: middle; font-size: 70%; }
  .item_location a:hover:before { font-size: 100%; }
  .item_type { grid-column: 1; }
  .item_title { font-size: 125%; padding-bottom: var(--fill_init); }
  .item_title a { display: block; position: relative; padding-right: 1.5em; }
  .item_title a:after { content: ''; position: absolute; z-index: 0; top: 0; left: 0; right: 0; bottom: 0; }
  .item:not(.solitary) .item_title { cursor: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle fill='%23e83e3f' cx='10' cy='10' r='9' /%3E%3C/svg%3E") 10 10, auto; }
  .item.solitary .item_header:after { opacity: 0; }
  .item:not(.solitary) .item_header:hover .item_title a { padding-right: 0; padding-left: 1.5em; }
  .item:not(.solitary) .item_header:hover .item_title a:before { content: '↳ '; position: absolute; left: 0; }
  .reduced { display: grid; grid-template-columns: 36% 1fr; gap: var(--fill_init); font-size: 75%; }
  .reduced .item_title { font-size: 100%; grid-row: 2; grid-column: 1/-1; font-weight: 600; }
  .reduced ~ .item_details .item_parts { padding-bottom: 2.5em; }
  .item:not(.continuous) + .continuous { margin-top: 3.75em; border-top: 1px solid; }
  .item_details { overflow: hidden; max-height: 0; transition: max-height .4s; }
  .open .item_details { max-height: 100em; }
  .item_images:empty { display: none; }
  .item_parts { padding-bottom: 5em; }
  .item_parts:empty { display: none; }
  .item_part { position: relative; padding: var(--fill_init) 0; display: -ms-flexbox; display: flex; -ms-flex-pack: justify; justify-content: space-between; font-size: 70%; border-top: 1px solid; }
  .item_part:last-child { border-bottom: 1px solid; }
  .item_part:hover { padding-left: var(--fill_init); padding-right: var(--fill_init); }
  .item_part_title a:after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
  .item_part_name:before { content: '⟼ '; }
  /* INDEX */
  #index { grid-column: 1 / -1; padding: 0; background: var(--bg_color); }
  #index.loading { pointer-events: none; }
  #index.loading table { opacity: .3; }
  #index table { opacity: 1; width: 100%; padding: 0; border: 0; border-collapse: collapse; transition: opacity .2s; }
  #index thead { display: none; }
  #index td { display: block; font-size: 75%; line-height: 1.2; }
  #index .index_director { padding: var(--fill_init) 0 0; }
  #index .index_title { font-size: 125%; line-height: 1.125; padding: 0 0 1.25em; border-bottom: 1px solid; }
  #index .index_title span { display: block; pointer-events: none; }
  #index .index_title a { display: block; position: relative; padding-right: 1.5em; text-decoration: none; }
  #index .index_section { display: none; }
  #index tr:hover .index_title a { padding-right: 0; padding-left: 1.5em; }
  #index tr:hover .index_title a > span:first-child:before { content: '↳ '; position: absolute; left: 0; }
  /* POPUP */
  @keyframes spin { from { transform: rotate(0deg); }
    to { transform: rotate(359deg); } }
  #spinner { display: none; position: fixed; z-index: 8; top: 0; left: 0; right: 0; bottom: 0; background: rgba(var(--text_color_rgb), .1); }
  .loading #spinner { display: -ms-flexbox; display: flex; }
  #spinner span { width: 3em; height: 3em; margin: auto; border: 0.5em solid var(--text_color); border-top-color: rgba(var(--text_color_rgb), .4); border-radius: 999px; animation: spin .8s infinite ease-in-out; }
  #popup_backdrop { display: none; }
  #popup { position: fixed; z-index: 11; z-index: 8; top: 0; left: -200%; width: 100%; max-width: 54ch; bottom: 0; padding: var(--fill); padding-right: 0; font-size: 80%; color: var(--bg_color); background: var(--text_color); transform: translate3d(-100%, 0, 0); transition: transform .4s; backface-visibility: hidden; }
  #popup.show { left: 0; transform: translate3d(0, 0, 0); }
  #popup.closing { left: 0%; transform: translate3d(-100%, 0, 0); }
  #popup_content { height: 100%; overflow: auto; padding-right: var(--fill); padding-bottom: calc(1rem + var(--nvcn, 44px)); scrollbar-width: none; scrollbar-width: thin; scrollbar-color: var(--bg_color) transparent; }
  /* Works on Chrome/Edge/Safari */
  #popup_content::-webkit-scrollbar { width: 12px; height: 0px; }
  #popup_content::-webkit-scrollbar-track { background: transparent; }
  #popup_content::-webkit-scrollbar-thumb { background-color: var(--bg_color); border-radius: 20px; border: 3px solid var(--text_color); }
  #popup_close { position: absolute; top: var(--fill); right: var(--fill); width: 32px; height: 32px; padding: 0; background: transparent; border: none; }
  #popup_close svg { color: var(--bg_color); width: 28px; height: 28px; transition: transform .5s; transform-origin: 50%; }
  #popup_close:hover svg { transform: rotate(180deg); }
  .popup_header { margin-bottom: var(--fill); padding-right: calc(44px + 1em); }
  .popup_header h2 { margin: 0; font-size: 125%; }
  .popup_header h3 { margin: 0; font-size: 125%; font-weight: 300; font-style: normal; }
  .popup_header address { font-size: 125%; font-weight: 300; font-style: normal; }
  .popup_header address:before { content: '↳ '; }
  .popup_img { width: 100%; margin: var(--fill) 0; }
  .popup_img iframe { width: 100%; height: 40vh; min-height: 18em; border: 0; }
  .popup_main { margin-top: var(--fill); }
  .work h2 { font-style: italic; }
  .work .popup_main { font-size: 80%; }
  .work .av_section { border-top: 1px solid; }
  .av_section { margin: 1em 0; padding: 1em 0; text-indent: 0; }
  #popup ul { padding-left: 0; list-style: none; }
  #popup ul li:before { content: '⟼ '; }
  .location .popup_desc { font-size: 80%; }
  .location .popup_desc > * { margin: 1.25em 0; }
  /* MISC */
  main dl { padding: 0; font-size: 75%; }
  main dl dt { display: block; padding: 0.5em var(--fill) 0.5em 0; font-weight: bold; }
  main dl dd { display: block; position: relative; margin: 0; padding: .5em 0; }
  main dl dt { display: block; position: relative; }
  main dl dt:before { content: ''; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid; }
  dl:first-child { margin-top: -1px; }
  .logos { display: grid; grid-gap: var(--fill); grid-template-columns: repeat(auto-fill, minmax(8em, 1fr)); }
  .logos img { width: auto; transition: transform .2s; }
  .logos img:hover { transform: scale(1.1); }
  .listitem { padding: var(--fill) 0; grid-template-columns: calc(50% - var(--fill)) 50%; grid-gap: var(--fill); font-size: 75%; border-top: 1px solid; }
  .listitem h3 { font-weight: bold; grid-column: 1; margin: 0; }
  .listitem h3 + * { margin-top: 0; }
  .listitem * { grid-column: 2; }
  .listitem p, .listitem ul, .listitem ol, .listitem dl { margin: 0; }
  .listitem p + p { text-indent: 0; }
  .listitem hr { height: 0; margin: var(--fill) 0; border-top: none; }
  .listitem ul { padding: 0 0 0; list-style: none; }
  .listitem ul li { padding: 0 0 0 2ch; }
  .listitem ul li:before { content: '⟼ '; display: inline-block; width: 1.6ch; margin: 0 .4ch 0 -2ch; }
  .linklist { padding: 0; }
  .linklist ul { margin: 0; padding: 0; list-style: none; }
  .linklist a { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; padding: var(--fill) 0; font-size: 75%; text-decoration: none; border-bottom: 1px solid; }
  .linklist a > span:nth-child(2) { -ms-flex-order: 3; order: 3; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .linklist a > span:last-child { margin-left: auto; padding-left: 1em; }
  .linklist li:hover a > span:first-child:before { content: ' '; display: inline; }
  .linklist li:hover a > span:nth-child(2):before { content: '↳ '; }
  .linklist li:last-child a { border-bottom: 0; }
  main ul.downloads { padding: 0; font-size: 75%; list-style: none; }
  main ul.downloads li { position: relative; padding: var(--fill) 0; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; }
  main ul.downloads li:before { content: 'Download'; width: 8em; }
  main ul.downloads li + li { border-top: 1px solid; }
  main ul.downloads a { display: block; text-decoration: none; }
  main ul.downloads a:after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
  main ul.downloads li:hover:before { content: ' Download'; }
  main ul.downloads li:hover a:before { content: '↳ '; }
  main ul.downloads span { margin-left: auto; }
  /* FOOTER */
  footer { position: relative; padding-top: var(--fill); padding-bottom: var(--nvcn); display: -ms-flexbox; display: flex; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-align: end; align-items: flex-end; border-top: 1px solid; }
  footer p { margin: 0; }
  footer p a { font-size: 150%; line-height: 1; }
  footer ul { margin: 0; padding: 0; list-style: none; text-align: right; }
  footer ul li { display: inline-block; }
  footer ul svg { width: 1.5em; vertical-align: bottom; }
  footer a { text-decoration: none; } }
@media only screen and (min-width: 24em) { :root { --mq: '24'; }
  main dl { display: grid; grid-template-columns: 50% 50%; }
  main dl dt { padding: 0.5em var(--fill) 0.5em 0; }
  main dl dd { grid-column: 2; }
  main dl dd:before { content: ''; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid; }
  main dl dt { position: relative; }
  main dl dt:before { content: ''; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid; }
  dl:first-child { margin-top: -1px; } }
@media only screen and (min-width: 32em) { :root { --mq: '32'; --fill: .75rem; --fill_init: .5rem; --nvcn: 68px; --nav_pad: 8rem; }
  .listitem { display: grid; } }
@media only screen and (min-width: 35em) { :root { --mq: '35'; }
  body { padding-right: calc(var(--fill) + var(--nvcn)); }
  #frontispiece { height: calc(100vh - 3rem); height: calc((var(--vh, 1vh) * 100) - 3rem); }
  .globaltitle h1 { padding: .25rem 0; padding: 0; font-size: 1.25rem; }
  #navicon { top: 0; bottom: 0; left: auto; right: 0; width: 44px; width: var(--nvcn, 44px); height: auto; -ms-flex-direction: column; flex-direction: column; -ms-flex-pack: justify; justify-content: space-between; transition: transform .2s ease-out; backface-visibility: hidden; box-shadow: calc(var(--fill) / 2) 0 0 var(--text_color); }
  #navicon:before { content: none; }
  #navicon svg { display: block; }
  .icn, .icn:before, .icn:after { width: 100%; }
  .icn { top: -12px; margin-top: auto; }
  #nav { padding-bottom: var(--fill); border-left: 1px solid; }
  .js #nav { width: 50%; min-width: 20em; padding-right: calc(var(--fill) + var(--nvcn)); }
  #toc { right: calc(var(--nvcn) + var(--fill)); }
  .mrgn { height: 7.5em; }
  .copy { padding-bottom: 7.5em; }
  .popup_main { display: -ms-flexbox; display: flex; }
  .popup_main > * { -ms-flex: 1; flex: 1; margin: 0; }
  .popup_main > div:first-child { -ms-flex: 0 0 auto; flex: 0 0 auto; width: 16em; padding-right: var(--fill); }
  .popup_main div > *:first-child { margin-top: 0; }
  .location .popup_desc { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-pack: justify; justify-content: space-between; }
  .location .popup_desc > * { -ms-flex: 1; flex: 1; margin: 0; }
  .location .popup_desc > *:nth-child(1) { -ms-flex: 0 0 auto; flex: 0 0 auto; width: 16em; }
  #popup_backdrop { position: fixed; z-index: 10; z-index: 7; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0); }
  #popup.show ~ #popup_backdrop { display: block; }
  footer { padding-bottom: 0; } }
@media only screen and (min-width: 42em) { :root { --mq: '42'; }
  #toc { overflow: initial; position: -webkit-sticky; position: sticky; left: auto; right: auto; background: transparent; border: none; }
  #toc.ready { -ms-flex-direction: row; flex-direction: row; }
  #toc > * { -ms-flex-positive: 1; flex-grow: 1; max-height: none; border: 1px solid; border-radius: 0px; }
  #toc > *:hover { border-radius: 999px; transition: border-radius 1s; }
  #toc a + a { margin-left: -1px; border-top: 1px solid; }
  #toc .current { max-height: none; color: var(--bg_color); border-color: var(--text_color); background: var(--text_color); border-radius: 99px; transition: border-radius 1s; }
  #toc.open { border-radius: 0; }
  #toc.open a:first-child { border-top: 1px solid; }
  #filter { min-width: 12em; margin-right: -1px; }
  #menu a { font-size: 150%; } }
@media only screen and (min-width: 46em) { :root { --mq: '46'; }
  #frontispiece { height: calc(100vh - 3.75rem); height: calc((var(--vh, 1vh) * 100) - 3.75rem); }
  .home #navicon { padding-bottom: 1rem; }
  .globaltitle h1 { padding: 1rem 0; font-size: 1.8rem; line-height: 1; }
  .globaltitle h1 .lselect { font-size: 50%; }
  #toc { min-height: calc(2em + 2px); }
  #toc > * { line-height: 2; }
  #filter { width: 33.333%; -ms-flex-positive: 0; flex-grow: 0; -ms-flex-negative: 0; flex-shrink: 0; }
  #filter div { top: 2em; }
  main { position: relative; display: grid; grid-template-columns: 33.333% 1fr; grid-template-rows: minmax(min-content, max-content); background-repeat: repeat-y; background-position: 33.333% top; background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'%3E%3Crect width='1' height='1' fill='currentColor' /%3E%3C/svg%3E"); background-size: 1px; }
  main > * { padding-left: var(--fill); padding-right: var(--fill); }
  main .maps { padding-right: 0; }
  .section_start { margin-bottom: 0; }
  .section_headline { padding-top: var(--fill_init); margin-bottom: 0; }
  main > .section_headline:first-child { margin-top: 0; }
  .section_headline + * { border-top: 0; }
  .section_headline + dl dt:first-child:before, .section_headline + dl dd:nth-child(2):before { content: none; }
  .btn a { line-height: 1.25; }
  .mrgn, .fill { height: 6.25em; }
  summary { padding: var(--fill_init) 0 var(--fill_init) var(--fill); }
  summary + div { padding: 0 0 var(--fill) var(--fill); }
  dl { grid-template-columns: 1fr 1fr; }
  main dl dt { padding: 0.5em var(--fill); }
  .listitem { padding: var(--fill_init) var(--fill); }
  .listitem hr { margin: 0; }
  .linklist a { padding-left: var(--fill); -ms-flex-wrap: initial; flex-wrap: initial; }
  .linklist a > span:first-child { width: 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; }
  .linklist a > span:nth-child(2) { -ms-flex-order: initial; order: initial; width: auto; }
  main ul.downloads li { padding-left: var(--fill); } }
@media only screen and (min-width: 46em) and (prefers-color-scheme: dark) { main { background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'%3E%3Crect width='1' height='1' fill='%23e9ecef' /%3E%3C/svg%3E") !important; } }
@media only screen and (min-width: 48em) { :root { --mq: '48'; }
  .day { padding-right: 0; }
  .item { margin-left: calc(var(--fill) * -1); padding-left: var(--fill); padding-bottom: 0; }
  .item:first-child { border-top: none; }
  .item.continuous { padding-left: 0; margin-left: 0; }
  .item_data { grid-template-columns: 20% 55% 25%; -moz-column-gap: var(--fill_init); column-gap: var(--fill_init); }
  .item_title { margin: var(--fill_init) 0 0 calc(20% + var(--fill_init)); padding-bottom: var(--fill_init); }
  .item_time { grid-column: 1; }
  .item_location { grid-column: 3; grid-row: 1; }
  .item_type { grid-column: 2; grid-row: 1; }
  .reduced { grid-template-columns: 20% 55% 25%; row-gap: 0; -moz-column-gap: var(--fill_init); column-gap: var(--fill_init); font-size: 70%; }
  .reduced .item_title { grid-row: 1; grid-column: 2; margin: 0; }
  .reduced .item_location { grid-column: 3; grid-row: 1; }
  #index th { position: -webkit-sticky; position: sticky; top: var(--fill); z-index: 1; padding: 0; font-size: 75%; background: var(--bg_color); }
  #index th span { display: block; position: relative; padding: 0 1em; line-height: 2; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: var(--bg_color); border: 1px solid; transition: border-radius .25s, color .25s, background .25s, max-height .2s; }
  #index th span:hover { border-radius: 999px; transition: border-radius 1s; }
  #index th span:empty { display: none; }
  #index tr th + th span { margin-left: -1px; }
  #index [data-sorted-direction="ascending"] span { color: var(--bg_color); border-color: var(--text_color); background: var(--text_color); }
  #index tr > td { display: table-cell; vertical-align: top; padding: var(--fill_init) 1em var(--fill_init) 0 !important; border-bottom: 1px solid; }
  #index .index_section { display: table-cell; }
  #index .index_director, #index .index_section { width: 20%; }
  .index_title { font-size: 150%; }
  .index_title a { min-height: 2.5rem; }
  .location_info h2 { font-size: 150%; }
  .location_info address { font-size: 150%; } }
@media only screen and (min-width: 62em) { :root { --mq: '62'; --fill: 1rem; --fill_init: .75rem; --nvcn: 74px; --scroll_margin: 3.75rem ; }
  #meta p a:before { content: '↳ '; } }
@media only screen and (min-width: 65em) { :root { --mq: '65'; }
  #menu a:hover:before { content: '↳ '; }
  #popup { width: 50%; max-width: none; } }
@media only screen and (min-width: 72em) { :root { --mq: '72'; }
  body { font-size: 150%; }
  #frontispiece { height: calc(100vh - 4.25rem); height: calc((var(--vh, 1vh) * 100) - 4.25rem); }
  .globaltitle h1 { font-size: 150%; }
  .home #navicon { padding-bottom: 1.25rem; }
  .mrgn { height: 10em; } }
@media only screen and (min-width: 86em) { :root { --mq: '86'; } }
/* IE 10+ */
@media print { * { color: #000 !important; text-shadow: none !important; background-color: transparent !important; }
  body { margin: 1cm; font: 12pt/1.2 'Helvetica Neue',sans-serif; }
  h1 { font-size: 125%; }
  h2 { font-size: 112.5%; }
  h3, h4, h5, h6 { font-size: 100%; margin: 0; }
  h2, h3 { page-break-after: avoid; }
  p, h2, h3 { orphans: 3; widows: 3; }
  ul, ol { page-break-inside: avoid; }
  li { margin: 0 0 0 1em; padding: 0; }
  a, a:visited { text-decoration: underline; }
  img { max-width: 100% !important; height: auto; page-break-inside: avoid; }
  pre, blockquote { padding: 1em; border: 1px solid #999; page-break-inside: avoid; }
  hr { margin: 2em 0; border: 0; border-bottom: 1px solid #000; }
  table { page-break-inside: auto; }
  tr { page-break-inside: avoid; page-break-after: auto; }
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  /* #divs { display : none; } */ }
.dev body:before { content: var(--mq); position: fixed; z-index: 1000; bottom: 10px; left: 10px; padding: .5em 2em; color: #fff; background: rgba(0, 0, 0, 0.7); -webkit-font-smoothing: antialiased; }
