@font-face {
  font-family: "Hallmann";
  src: url("assets/jakarta-800.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #f7f7f4;
  --pink: #e52369;
  --card-height: clamp(260px, calc(100svh - 206px), 720px);
  --card-width: calc(var(--card-height) * .5625);
  font-family: Arial, Helvetica, sans-serif;
  background: var(--paper);
  color: #171717;
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; }
a, button { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { font: inherit; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, .carousel:focus-visible { outline: 3px solid var(--pink); outline-offset: 5px; }
.masthead { padding: 22px 22px 15px; display: flex; justify-content: center; }
.brands { display: flex; align-items: center; justify-content: center; gap: 26px; }
.brands a { display: flex; text-decoration: none; }
.nora-brand img { display: block; width: 187px; height: auto; }
.brand-cross { color: #9b9b95; font-size: 27px; font-weight: 300; }
.hallmann-brand { gap: 5px; align-items: center; }
.hallmann-brand img { width: 41px; height: 41px; }
.hallmann-brand span { font-family: "Hallmann", Arial, sans-serif; font-size: 17px; font-weight: 800; letter-spacing: -.04em; color: #111214; }
main { width: 100%; padding: 0 0 20px; text-align: center; }
.preview-label { display: block; margin: 0 auto 6px; padding: 7px 16px; color: #85857f; font-size: 10px; line-height: 1.2; letter-spacing: .13em; background: transparent; border: 0; }
.carousel { max-width: 1080px; margin: 0 auto; outline: none; touch-action: pan-y; }
.carousel-window { overflow: hidden; padding: 18px 0 25px; }
.stage { position: relative; height: var(--card-height); width: 100%; perspective: 1200px; touch-action: pan-y; }
.music-button { position: absolute; left: 50%; bottom: 25px; transform: translateX(-50%); z-index: 5; display: flex; align-items: center; justify-content: center; gap: 12px; width: min(340px, calc(var(--card-width) - 28px)); min-height: 60px; padding: 15px 12px; border: 2px solid #ffffffb3; border-radius: 14px; background: #d91e60; color: #fff; font-size: clamp(13px, 4vw, 17px); font-weight: 700; line-height: 1.2; box-shadow: 0 10px 30px #b9145452, 0 0 0 5px #ffffff66; cursor: pointer; }
.music-button:hover { background: #cb1a5b; }
.music-button:active { transform: translateX(-50%) scale(.98); }
.music-button svg { width: 23px; height: 23px; flex: 0 0 auto; fill: currentColor; }
.music-button .sound-waves { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.slide { position: absolute; top: 0; left: 50%; width: var(--card-width); height: var(--card-height); transform-origin: center; transition: transform 800ms cubic-bezier(.22,.7,.23,1), opacity 800ms ease, filter 800ms ease; will-change: transform; }
.slide.is-active { transform: translateX(-50%) rotateY(0deg) scale(1); opacity: 1; z-index: 3; filter: none; cursor: pointer; }
.slide.is-left { transform: translateX(calc(-50% - var(--card-width) * .94)) rotateY(30deg) scale(.81); opacity: .38; z-index: 1; filter: saturate(.7); cursor: pointer; }
.slide.is-right { transform: translateX(calc(-50% + var(--card-width) * .94)) rotateY(-30deg) scale(.81); opacity: .38; z-index: 1; filter: saturate(.7); cursor: pointer; }
.slide:not(.is-active):hover { opacity: .65; }
.slide-screen { width: 100%; height: 100%; position: relative; overflow: hidden; background: #fff; border-radius: 12px; box-shadow: 0 14px 28px -12px #00000024, 0 0 0 1px #00000004; }
.slide-poster, video { display: block; width: 100%; height: 100%; object-fit: contain; }
.slide-poster { position: absolute; inset: 0; }
video { position: relative; z-index: 1; background: #fff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 700px) {
  :root { --card-height: clamp(240px, min(calc(100svh - 180px), calc((100vw - 86px) / .5625)), 640px); }
  .masthead { padding: 18px 15px 10px; }
  .brands { gap: 17px; }
  .nora-brand img { width: clamp(128px, 36vw, 164px); }
  .hallmann-brand img { width: 34px; height: 34px; }
  .hallmann-brand span { font-size: 14px; }
  .brand-cross { font-size: 22px; }
  main { padding-bottom: 18px; }
  .carousel-window { padding-top: 15px; padding-bottom: 22px; }
  .slide.is-left { transform: translateX(calc(-50% - var(--card-width) * .78)) rotateY(35deg) scale(.79); }
  .slide.is-right { transform: translateX(calc(-50% + var(--card-width) * .78)) rotateY(-35deg) scale(.79); }
  .slide-screen { border-radius: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
