/* Brillenmanufaktur Quast. Seitenstil. Die Engine-Klassen (.sc-*, [data-sc-*])
   bleiben unangetastet; hier stehen Marke, Bühnen, Tafeln und die Unschärfe.
   Radien: Flächen 10px, Knöpfe und Wahlchips als Pille, Probegläser rund. */
:root {
  --sc-canvas:     #EDEFEA;
  --sc-surface:    #E3E6E0;
  --sc-ink:        #14181C;
  --sc-ink-soft:   #46505A;
  --sc-accent:     #1D6A4B;
  --sc-accent-ink: #F3F5F1;
  --sc-font-display: "Lexend", system-ui, sans-serif;
  --sc-font-text:    "Lexend", system-ui, sans-serif;
  --sc-font-mono:    "Lexend", system-ui, sans-serif;
  --sc-shadow-color: 150 12% 30%;
  --nacht: #101416;
  --kreide: #EDEFEA;
  --rad: 10px;
  /* Der Seitenzustand. quast.js setzt sie bei jeder Raste neu. */
  --u: 9.6px;        /* Unschärfe für Tafeln */
  --u-bild: 6px;     /* Unschärfe für Fotos und Fassungen */
  --geist: 3.9px;    /* Versatz des Doppelrands an Überschriften */
  color-scheme: light;
}
html { background: var(--sc-canvas); scrollbar-color: #9aa39d var(--sc-canvas); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { font-family: var(--sc-font-text); font-weight: 350; background: var(--sc-canvas); color: var(--sc-ink); }
::selection { background: var(--sc-accent); color: var(--sc-accent-ink); }
:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; border-radius: 4px; }
input, button { caret-color: var(--sc-accent); font: inherit; }
b, .tab { font-variant-numeric: tabular-nums; }

/* ---------- Die Unschärfe ----------
   Nur Tafeln, Fotos und Fassungen werden weich. Lesetext nie. Überschriften
   bekommen höchstens einen schwachen Doppelrand, der Text selbst bleibt scharf. */
.weich { filter: blur(var(--u)); transition: filter 200ms var(--sc-ease-out); }
.weich-bild { filter: blur(var(--u-bild)); transition: filter 200ms var(--sc-ease-out); }
.doppelt { text-shadow: var(--geist) calc(var(--geist) * -0.35) 0 color-mix(in oklab, currentColor 16%, transparent); transition: text-shadow 200ms var(--sc-ease-out); }
@media (prefers-reduced-motion: reduce) {
  .weich, .weich-bild { filter: none; }
  .doppelt { text-shadow: none; }
}

/* ---------- Typografie: die Sehprobe ----------
   Überschriften werden von Akt zu Akt kleiner, wie die Zeilen einer Tafel. */
.titel {
  font-family: var(--sc-font-display); font-weight: 600;
  letter-spacing: -0.022em; line-height: 1.04; text-wrap: balance; margin: 0;
}
.titel--1 { font-size: clamp(2.6rem, 1.3rem + 4.6vw, 5.6rem); letter-spacing: -0.03em; line-height: 1; }
.titel--2 { font-size: clamp(2.1rem, 1.2rem + 2.8vw, 3.6rem); }
.titel--3 { font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3rem); }
.titel--4 { font-size: clamp(1.8rem, 1.2rem + 1.9vw, 2.6rem); }
.titel--5 { font-size: clamp(1.5rem, 1.1rem + 1.3vw, 2.2rem); }
.titel--6 { font-size: clamp(1.4rem, 1.1rem + 0.9vw, 1.9rem); letter-spacing: -0.015em; }
.titel--7 { font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.6rem); letter-spacing: -0.01em; }
.sc-body { color: var(--sc-ink-soft); font-size: var(--sc-t-base); line-height: 1.62; max-width: 52ch; }

.akt { position: relative; }
.akt--hell { background: var(--kreide); }
.akt--grau { background: var(--sc-surface); }
/* Dunkler Raum: Tokens neu setzen UND Farbe neu schreiben (Re-ink-Falle).
   Heller Text auf dunkel: etwas mehr Zeilenabstand, Laufweite, Gewicht. */
.akt--dunkel {
  --sc-ink: #E9ECE7; --sc-ink-soft: #AEB7B2; --sc-accent: #6FC39B; --sc-accent-ink: #0E1512;
  background: var(--nacht); color: var(--sc-ink);
}
.akt--dunkel .sc-body { font-weight: 380; letter-spacing: .01em; line-height: 1.68; }
.akt--dunkel .titel { letter-spacing: -0.012em; }

/* ---------- Knopf ---------- */
.knopf {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 28px; border-radius: 999px; border: 0; cursor: pointer;
  font: 500 1rem/1 var(--sc-font-text); letter-spacing: .01em; text-decoration: none; white-space: nowrap;
  transition: transform 140ms var(--sc-ease-out), background-color 160ms var(--sc-ease-out);
}
.knopf:active { transform: translateY(1px) scale(.98); }
.knopf--voll {
  position: relative; overflow: hidden; isolation: isolate;
  color: var(--sc-accent-ink); background: var(--sc-accent);
  box-shadow: 0 1px 0 rgb(255 255 255 / .18) inset, 0 6px 16px -6px rgb(20 24 28 / .3);
}
/* Feines Mosaik im Knopf, ein Lichtstreif läuft alle paar Sekunden darüber. */
.knopf--voll::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(105deg, transparent 35%, rgb(255 255 255 / .22) 50%, transparent 65%) -200% 0 / 200% 100% no-repeat,
    repeating-linear-gradient(90deg, rgb(255 255 255 / .06) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(0deg, rgb(255 255 255 / .06) 0 1px, transparent 1px 6px);
  animation: streif 4.8s var(--sc-ease-in-out) infinite;
}
@keyframes streif { 0%, 55% { background-position: -200% 0, 0 0, 0 0; } 100% { background-position: 200% 0, 0 0, 0 0; } }
@media (hover: hover) and (pointer: fine) { .knopf--voll:hover { background: #17583E; } }
@media (prefers-reduced-motion: reduce) { .knopf--voll::before { animation: none; } }

/* ---------- Probeglaskasten (Navigation) ---------- */
.kasten {
  position: fixed; left: max(14px, calc(var(--sc-gutter) * .5)); bottom: max(14px, env(safe-area-inset-bottom));
  z-index: var(--sc-z-chrome);
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 16px;
  padding: 12px 16px 12px 18px; border-radius: var(--rad);
  background: #F6F7F3; color: #14181C;
  border: 1px solid rgb(20 24 28 / .1);
  box-shadow: inset 0 1px 0 #fff, 0 2px 4px hsl(150 12% 30% / .12), 0 14px 30px -12px hsl(150 12% 20% / .3);
  isolation: isolate;
}
.kasten::before { /* Punktraster im Kasten, nach rechts ausgeblendet */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image: radial-gradient(rgb(20 24 28 / .07) 1px, transparent 1.3px); background-size: 9px 9px;
  mask-image: linear-gradient(100deg, transparent 30%, #000); border-radius: inherit;
}
.kasten::after { /* ein langsam wanderndes Licht */
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: radial-gradient(closest-side, rgb(255 255 255 / .75), transparent) -40% 50% / 45% 160% no-repeat;
  animation: kastenlicht 11s var(--sc-ease-in-out) infinite alternate;
}
@keyframes kastenlicht { to { background-position: 140% 50%; } }
@media (prefers-reduced-motion: reduce) { .kasten::after { animation: none; } }
.kasten__marke {
  grid-row: 1 / 3; align-self: stretch; display: grid; place-items: center;
  padding-right: 14px; border-right: 1px solid rgb(20 24 28 / .12);
  font: 650 1.05rem/1 var(--sc-font-display); letter-spacing: .14em; text-transform: uppercase;
  color: #14181C; text-decoration: none;
}
.kasten__wert { margin: 0; font-size: .8rem; line-height: 1.2; color: #46505A; white-space: nowrap; }
.kasten__wert b { font-weight: 600; font-size: 1rem; color: #14181C; display: inline-block; min-width: 3.4em; }
.kasten__wert small { font-size: .74rem; }
.kasten.klick .kasten__wert b { animation: klick 200ms var(--sc-ease-out); }
@keyframes klick { from { transform: translateY(-3px); opacity: .4; } }
.kasten__glaeser { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.kasten__glaeser a {
  position: relative; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  text-decoration: none; color: #14181C;
}
.kasten__glaeser i {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid #8C958F; background: radial-gradient(circle at 35% 30%, #fff, #DDE2DC 70%);
  transition: transform 220ms var(--sc-ease-out), border-color 160ms var(--sc-ease-out);
}
.kasten__glaeser a[aria-current] i { border-color: var(--sc-accent); transform: scale(1.18); box-shadow: 0 0 0 3px rgb(29 106 75 / .16); }
.kasten__glaeser span {
  position: absolute; left: 50%; bottom: calc(100% + 8px); translate: -50% 0;
  padding: 4px 8px; border-radius: 6px; background: #14181C; color: #F3F5F1;
  font-size: .78rem; font-weight: 450; white-space: nowrap; opacity: 0; pointer-events: none;
  transition: opacity 160ms var(--sc-ease-out);
}
.kasten__glaeser a:focus-visible span { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .kasten__glaeser a:hover span { opacity: 1; }
  .kasten__glaeser a:hover i { border-color: #14181C; }
}
@media (max-width: 560px) {
  .kasten { left: 10px; right: 10px; padding: 8px 12px; gap: 4px 12px; }
  .kasten__marke { font-size: .92rem; padding-right: 10px; }
  .kasten__glaeser { justify-content: space-between; }
  .kasten__glaeser a { width: 30px; height: 30px; }
  .kasten__glaeser i { width: 18px; height: 18px; }
}

/* ---------- Bühnen ---------- */
.buehne { background: inherit; }

/* Sehtafel: echte Buchstaben, Größe nimmt Zeile für Zeile ab. */
.tafel {
  display: flex; flex-direction: column; align-items: center; gap: .32em;
  font-family: var(--sc-font-display); font-weight: 600; color: #191D22; line-height: 1;
  user-select: none;
}
.tafel .z { display: block; white-space: nowrap; }

/* 1 · Tafel */
.tafel-raum {
  position: absolute; inset: 0; display: grid; place-items: start center;
  padding-top: clamp(4rem, 9vh, 7rem); padding-left: 34vw;
}
.buehne--tafel .tafel { font-size: clamp(14px, 1.15vw, 18px); }
.buehne--tafel .z1 { font-size: 9.5em; }
.buehne--tafel .z2 { font-size: 6em; letter-spacing: .1em; }
.buehne--tafel .z3 { font-size: 4.2em; }
.buehne--tafel .z4 { font-size: 2.9em; }
.buehne--tafel .z5 { font-size: 2em; }
.buehne--tafel .z6 { font-size: 1.4em; }
.brille-fest {
  position: absolute; left: 50%; bottom: 9vh; translate: -50% 0; margin: 0; z-index: 3;
  width: min(54vw, 760px); padding-left: 0;
}
.buehne--tafel .brille-fest { left: calc(50% + 17vw); width: min(46vw, 700px); }
.brille-fest img { width: 100%; height: auto; display: block; filter: drop-shadow(0 18px 22px hsl(150 15% 20% / .26)); }
.held {
  position: absolute; z-index: var(--sc-z-copy);
  left: var(--sc-gutter); top: clamp(6rem, 18vh, 11rem); width: min(32vw, 34rem);
}
.held .titel--1 { max-width: 9ch; }
.held__sub { margin-top: var(--sc-5); max-width: 34ch; }
.held .knopf { margin-top: var(--sc-6); }
@media (max-width: 860px) {
  .tafel-raum { padding-left: 0; padding-top: 0; place-items: start center; top: 37%; }
  .buehne--tafel .tafel { font-size: clamp(9px, 2.4vw, 13px); }
  .held { top: clamp(1.6rem, 6vh, 3.5rem); width: auto; right: var(--sc-gutter); }
  .held .titel--1 { font-size: clamp(2.3rem, 1rem + 6vw, 3.2rem); max-width: 11ch; }
  .held__sub { margin-top: var(--sc-4); font-size: 1rem; }
  .held .knopf { margin-top: var(--sc-5); }
  .buehne--tafel .brille-fest { left: 50%; width: 80vw; bottom: calc(70px + 5vh); }
}
@media (max-width: 860px) and (max-height: 700px) {
  .held__sub { display: none; }
  .buehne--tafel .brille-fest { width: 70vw; bottom: 15vh; }
}

/* 2 · Block */
.block { padding-block: clamp(5rem, 10vw, 10rem) clamp(5rem, 9vw, 9rem); }
.block__raster {
  display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--sc-6) var(--sc-5); align-items: start;
}
.block__gross { grid-column: 1 / 7; grid-row: 1 / 3; margin: 0; }
.block__gross img, .block__klein img { width: 100%; height: auto; display: block; border-radius: var(--rad); }
.block__text { grid-column: 8 / 13; grid-row: 1; padding-top: var(--sc-7); }
.block__klein { grid-column: 9 / 13; grid-row: 2; margin: 0; margin-top: var(--sc-4); }
.block__klein figcaption { margin-top: var(--sc-3); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); max-width: 34ch; }
.daten { margin: var(--sc-6) 0 0; display: grid; gap: 0; border-top: 1px solid rgb(20 24 28 / .14); }
.daten div { display: grid; grid-template-columns: 7.5rem 1fr; gap: var(--sc-4); padding: 12px 0; border-bottom: 1px solid rgb(20 24 28 / .14); }
.daten dt { font-weight: 550; font-size: var(--sc-t-sm); }
.daten dd { margin: 0; color: var(--sc-ink-soft); font-size: var(--sc-t-sm); }
@media (max-width: 860px) {
  .block__raster { grid-template-columns: 1fr; }
  .block__gross, .block__text, .block__klein { grid-column: 1; grid-row: auto; }
  .block__text { padding-top: 0; }
  .block__klein { width: 72%; justify-self: end; }
}

/* 3 · Fassungen (pan) */
.buehne--rail { display: grid; align-items: center; }
.rail { display: flex; align-items: center; gap: clamp(2.5rem, 6vw, 7rem); padding-inline: var(--sc-gutter); width: max-content; }
.rail__kopf { width: clamp(17rem, 30vw, 27rem); flex: none; }
.rail__kopf .sc-body { margin-top: var(--sc-5); }
.fassung { flex: none; width: clamp(17rem, 38vw, 34rem); margin: 0; }
.fassung img { width: 100%; height: auto; display: block; filter: blur(var(--u-bild)) drop-shadow(0 16px 18px hsl(150 15% 25% / .22)); }
.fassung h3 { margin: var(--sc-6) 0 0; font: 600 clamp(1.3rem, 1rem + 1vw, 1.8rem)/1.1 var(--sc-font-display); letter-spacing: -0.015em; }
.fassung p { margin: var(--sc-2) 0 0; color: var(--sc-ink-soft); font-size: var(--sc-t-sm); max-width: 30ch; }
.rail__notiz { flex: none; width: clamp(16rem, 24vw, 22rem); padding-left: var(--sc-5); border-left: 1px solid rgb(20 24 28 / .18); }
@media (prefers-reduced-motion: reduce) { .fassung img { filter: drop-shadow(0 16px 18px hsl(150 15% 25% / .22)); } }

/* 4 · Stille */
.stille { padding-block: clamp(7rem, 22vh, 14rem) clamp(4rem, 12vh, 8rem); }
.stille__inhalt { max-width: 52rem; margin-left: 0; padding-left: max(var(--sc-gutter), 8vw); }
.stille .sc-body { margin-top: var(--sc-5); }

/* 5 · Phoropter (Höhepunkt) */
.buehne--phoropter { background: var(--nacht); }
.projektion {
  position: absolute; left: 50%; top: 5vh; translate: -50% 0;
  width: min(40vw, 580px); height: 76vh; border-radius: var(--rad);
  background: radial-gradient(120% 90% at 50% 30%, #F4F6F1, #DCE1DA 80%);
  box-shadow: 0 0 0 1px rgb(255 255 255 / .05), 0 40px 120px -30px rgb(220 235 225 / .22);
  display: grid; place-items: start center; padding-top: 4vh;
}
.tafel--projektion { font-size: clamp(12px, 1.5vh, 16px); color: #15191D; }
.tafel--projektion .z1 { font-size: 9em; }
.tafel--projektion .z2 { font-size: 6em; letter-spacing: .14em; }
.tafel--projektion .z3 { font-size: 4.4em; letter-spacing: .14em; }
.tafel--projektion .z4 { font-size: 3.2em; letter-spacing: .14em; }
.tafel--projektion .z5 { font-size: 2.4em; letter-spacing: .14em; }
.pointe {
  position: absolute; z-index: 2; left: 50%; translate: -50% 0; top: calc(5vh + 76vh - 10vh);
  width: min(34vw, 500px); margin: 0; text-align: center;
  font-weight: 500; font-size: clamp(13px, 1.05vw, 15px); line-height: 1.4; color: #15191D; letter-spacing: .02em;
}
.mitte {
  position: absolute; z-index: 3; left: 50%; top: 45%; translate: -50% -50%;
  width: min(56vw, 800px); aspect-ratio: 1948 / 737;
}
.mitte img { width: 100%; height: 100%; display: block; filter: drop-shadow(0 30px 40px rgb(0 0 0 / .5)); }
/* Probegläser auf den gemessenen Linsenmitten (roh/linsen.json). */
.probeglas {
  position: absolute; width: 36%; aspect-ratio: 1; translate: -50% -50%; pointer-events: none;
  --dreh: 0deg;
}
.probeglas--l { left: 25.15%; top: 49.6%; }
.probeglas--r { left: 74.38%; top: 49.4%; }
.probeglas svg { width: 100%; height: 100%; overflow: visible; rotate: var(--dreh); transition: rotate 240ms var(--sc-ease-out); }
.pg__rand { fill: none; stroke: #9DA6A1; stroke-width: 5; }
.pg__innen { fill: rgb(200 225 215 / .05); stroke: rgb(233 236 231 / .35); stroke-width: 1; }
.pg__teilung line { stroke: rgb(233 236 231 / .45); stroke-width: 1.4; }
.pg__lasche rect { fill: #E9ECE7; }
.pg__lasche text { font: 600 13px var(--sc-font-text); fill: #101416; text-anchor: middle; font-variant-numeric: tabular-nums; }
.probeglas.blitz .pg__innen { animation: blitz 260ms var(--sc-ease-out); }
@keyframes blitz { from { fill: rgb(220 240 230 / .32); } }

.frage {
  position: absolute; z-index: 4; left: var(--sc-gutter); top: clamp(5rem, 14vh, 8rem);
  display: grid; gap: 10px;
}
.frage__glas {
  display: inline-flex; align-items: center; gap: 12px; width: max-content;
  font: 500 clamp(1rem, .9rem + .4vw, 1.25rem)/1 var(--sc-font-text); color: #AEB7B2;
  padding: 8px 16px 8px 8px; border-radius: 999px; border: 1px solid rgb(233 236 231 / .16);
  transition: color 160ms var(--sc-ease-out), background-color 160ms var(--sc-ease-out), border-color 160ms var(--sc-ease-out);
}
.frage__glas b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid currentColor; font-weight: 600; }
.frage__glas.an { color: #0E1512; background: #E9ECE7; border-color: #E9ECE7; }
.frage__glas.an b { background: #6FC39B; border-color: #6FC39B; }

.phoropter__text {
  position: absolute; z-index: 4; right: var(--sc-gutter); bottom: clamp(3rem, 8vh, 6rem);
  width: min(21rem, calc(28vw - var(--sc-gutter))); display: grid;
}
.phoropter__text > * { grid-area: 1 / 1; }
.phoropter__text .sc-body { margin-top: var(--sc-4); font-size: var(--sc-t-sm); }
/* Schmale Bildschirme: Frage oben, Tafel, Brille, Text unten im eigenen Band. */
@media (max-width: 1100px) {
  .projektion { width: min(64vw, 600px); height: 64vh; }
  .pointe { width: min(56vw, 540px); top: calc(5vh + 64vh - 9vh); }
  .phoropter__text { left: var(--sc-gutter); right: var(--sc-gutter); width: auto; bottom: auto; top: 73vh; }
  .mitte { top: 38%; width: min(80vw, 820px); }
}
@media (max-width: 860px) {
  .frage { top: 1.2rem; left: 50%; translate: -50% 0; display: flex; gap: 8px; }
  .frage__glas { font-size: .92rem; padding: 5px 12px 5px 5px; gap: 8px; }
  .frage__glas b { width: 28px; height: 28px; }
  .projektion { top: 4.6rem; width: calc(100% - 2 * var(--sc-gutter)); height: 50vh; padding-top: 2.5vh; }
  .tafel--projektion { font-size: clamp(9px, 1.25vh, 12px); }
  .pointe { top: calc(4.6rem + 50vh - 8.5vh); width: calc(100% - 3 * var(--sc-gutter)); font-size: 13px; }
  .mitte { top: 38%; width: 94vw; }
  .phoropter__text { top: calc(4.6rem + 50vh + 1.6rem); bottom: auto; }
  .phoropter__text .titel--5 { font-size: 1.35rem; }
  .phoropter__text .sc-body { margin-top: var(--sc-2); font-size: .92rem; line-height: 1.5; }
}
@media (max-width: 860px) and (max-height: 700px) {
  .projektion { height: 44vh; padding-top: 2vh; }
  .tafel--projektion { font-size: clamp(7px, 1.05vh, 10px); }
  .pointe { top: calc(4.6rem + 44vh - 9vh); font-size: 12.5px; }
  .mitte { top: 34%; }
  .phoropter__text { top: calc(4.6rem + 44vh + 1rem); }
  .phoropter__text .titel--5 { font-size: 1.2rem; }
  .phoropter__text .sc-body { font-size: .84rem; line-height: 1.45; }
}

/* 6 · Abgleich */
.abgleich { padding-block: clamp(5rem, 14vh, 9rem) clamp(6rem, 12vw, 10rem); }
.abgleich__raster { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.duo { display: grid; grid-template-columns: 1fr 1fr; aspect-ratio: 5 / 3; border-radius: var(--rad); overflow: hidden; box-shadow: 0 2px 4px hsl(150 12% 30% / .14), 0 24px 50px -20px hsl(150 12% 20% / .35); }
.duo__feld { position: relative; display: grid; place-items: center; overflow: hidden; }
.duo__feld--rot { background: #C9443A; }
.duo__feld--gruen { background: #2F8A55; }
.duo__ringe { position: relative; width: 58%; aspect-ratio: 1; }
.duo__ringe i { position: absolute; inset: 0; border-radius: 50%; border: clamp(5px, .9vw, 11px) solid #0D0F10; }
.duo__ringe i:nth-child(2) { inset: 22%; }
.duo__ringe i:nth-child(3) { inset: 42%; background: #0D0F10; }
.abgleich__text .daten { margin-top: var(--sc-5); }
@media (max-width: 860px) { .abgleich__raster { grid-template-columns: 1fr; } }

/* 7 · Etui (Schluss, hält) */
.buehne--etui { display: grid; place-items: center; }
.etui-raum {
  width: min(100% - 2 * var(--sc-gutter), 72rem);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(2rem, 6vw, 6rem); align-items: center;
  margin-top: -4vh;
}
.wahl .sc-body { margin-top: var(--sc-3); font-size: var(--sc-t-sm); max-width: 40ch; }
.formen { border: 0; padding: 0; margin: var(--sc-5) 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.formen legend { font-size: var(--sc-t-sm); font-weight: 550; margin-bottom: 10px; padding: 0; }
.formen label { position: relative; cursor: pointer; }
.formen input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.formen span {
  display: inline-block; padding: 9px 16px; border-radius: 999px; font-size: .92rem;
  border: 1px solid rgb(20 24 28 / .28); color: #14181C; background: #F4F6F1;
  transition: background-color 160ms var(--sc-ease-out), color 160ms var(--sc-ease-out), border-color 160ms var(--sc-ease-out);
}
.formen input:checked + span { background: #14181C; color: #F3F5F1; border-color: #14181C; }
.formen input:focus-visible + span { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .formen label:hover span { border-color: #14181C; } }
.wahl__grund { margin: var(--sc-4) 0 0; font-size: var(--sc-t-sm); color: var(--sc-ink-soft); min-height: 3.2em; max-width: 42ch; }
.wahl .knopf { margin-top: var(--sc-4); }
.wahl__status { margin: var(--sc-3) 0 0; font-size: .82rem; color: var(--sc-ink-soft); max-width: 42ch; }

.etui { position: relative; display: grid; grid-template-rows: 22% 1fr; aspect-ratio: 16 / 12; }
.etui__deckel {
  border-radius: 46% 46% 10px 10px / 70% 70% 10px 10px;
  background: linear-gradient(#1C2226, #14181C);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .12), 0 -2px 0 #0d1012 inset;
  display: grid; place-items: center;
}
.etui__deckel span { font: 600 .82rem/1 var(--sc-font-display); letter-spacing: .3em; text-transform: uppercase; color: #AEB7B2; translate: 0 18%; }
.etui__schale {
  position: relative; margin-top: 6px; border-radius: 10px 10px 40% 40% / 10px 10px 26% 26%;
  background: #14181C; padding: 4.5% 6% 9%;
  box-shadow: 0 2px 4px hsl(150 12% 30% / .18), 0 30px 60px -24px hsl(150 15% 15% / .5);
  display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 3%; align-items: center; justify-items: center;
  isolation: isolate; overflow: hidden;
}
.etui__schale::before { /* Filz: Flaschengrün mit feinem Faserraster */
  content: ""; position: absolute; inset: 3.2%; z-index: -1; border-radius: inherit;
  background:
    repeating-linear-gradient(35deg, rgb(255 255 255 / .035) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(-35deg, rgb(0 0 0 / .08) 0 1px, transparent 1px 5px),
    radial-gradient(120% 90% at 50% 20%, #23704F, #154632);
}
.etui__schale img { width: auto; height: 100%; max-width: 74%; min-height: 0; object-fit: contain; filter: drop-shadow(0 8px 8px rgb(0 0 0 / .35)); transition: opacity 220ms var(--sc-ease-out), transform 220ms var(--sc-ease-out); }
.etui__schale img.wechsel { opacity: 0; transform: translateY(6px) scale(.97); }
.fuss {
  position: absolute; left: var(--sc-gutter); right: var(--sc-gutter); bottom: 18px;
  display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 24px; padding-left: 360px;
  font-size: .78rem; color: var(--sc-ink-soft);
}
@media (max-width: 860px) {
  .etui-raum { grid-template-columns: 1fr; gap: var(--sc-5); margin-top: -6vh; }
  .etui { width: min(100%, 22rem); justify-self: center; order: -1; }
  .wahl .sc-body { display: none; }
  .wahl__grund { min-height: 0; }
  .fuss { display: none; }
}
@media (max-width: 860px) and (max-height: 700px) {
  .etui { width: 12.5rem; }
  .etui-raum { margin-top: -10vh; gap: var(--sc-4); }
  .wahl__grund { display: none; }
  .formen { margin-top: var(--sc-3); }
  .formen legend { margin-bottom: 6px; }
  .formen span { padding: 7px 11px; font-size: .84rem; }
  .wahl .knopf { min-height: 46px; }
}
