/* SHOWROOM · page layer. Engine stays untouched; this file themes and lays out. */
:root {
  --sc-canvas: #0a0b0c;
  --sc-surface: #0c0d0f;
  --sc-ink: #f1f2f4;
  --sc-ink-soft: #969ba1;          /* Nebelgrau */
  --sc-accent: #cfd6de;            /* Kühles Silber, the one accent */
  --sc-accent-ink: #0a0b0c;
  --sc-font-display: "Archivo", Helvetica, Arial, sans-serif;
  --sc-font-text: "Archivo", Helvetica, Arial, sans-serif;
  --sc-font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --sc-r-sm: 0; --sc-r-md: 0; --sc-r-lg: 0; --sc-r-pill: 0;
  --mute: #8d9298;
  --faint: #6b7075;
  --line: rgba(255, 255, 255, 0.08);
  --line-2: rgba(255, 255, 255, 0.14);
  /* status colours: muted, used only for state (always with a label), never for decoration */
  --ok: #6f9f7d;
  --warn: #cf9750;
  --crit: #cc6658;
  --pad-x: clamp(20px, 5vw, 72px);
  --maxw: 1560px;
}

body { font-weight: 300; background: var(--sc-canvas); }
a { color: #d3d9e0; text-decoration: none; }
a:hover { color: #fff; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--sc-accent); color: var(--sc-accent-ink); padding: 10px 14px; font: 500 11px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.skip:focus { top: 12px; }
[data-sc-progress] { height: 1px; }

/* ------------------------------------------------------------- header -- */
.bar {
  position: fixed; inset: 0 0 auto 0; z-index: 70;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 20px var(--pad-x);
  background: rgba(10, 11, 12, 0.72); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.mark { font: 600 15px/1 var(--sc-font-display); letter-spacing: .42em; text-transform: uppercase; color: var(--sc-ink); }
.mark--sm { font-size: 12px; letter-spacing: .4em; color: #9a9ea4; }
.nav { display: flex; gap: clamp(14px, 2.4vw, 34px); align-items: center; font: 400 11px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.nav a { color: #9a9ea4; }
.nav a:hover { color: #fff; }
.nav .nav__cta {
  padding: 11px 18px; background: #fff; color: #0a0b0c; border: 0; border-radius: 0; font-weight: 500;
  box-shadow: 0 0 22px rgba(255, 255, 255, .28), 0 0 2px rgba(255, 255, 255, .6);
  transition: box-shadow .3s ease;
}
.nav .nav__cta:hover { color: #0a0b0c; box-shadow: 0 0 30px rgba(255, 255, 255, .42), 0 0 2px rgba(255, 255, 255, .8); }
@media (max-width: 640px) { .mark { font-size: 13px; letter-spacing: .34em; } }

/* ============================================================ JOURNEY == */
.journey { position: relative; background: var(--sc-canvas); }
.j-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; }
.j-view { position: absolute; inset: 0; transform-origin: 50% 50%; will-change: transform; }
.j-layer { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform, opacity; max-width: none; }
.j-video { background: var(--sc-canvas); }
.j-flur, .j-office, .j-var { opacity: 0; }
.j-flur .j-img, .j-office .j-img, .j-var .j-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.j-flur .floor-stone, .st__still--flur .floor-stone {
  opacity: 0;
  -webkit-mask: url(assets/floor-mask-a.png) 0 0 / 100% 100% no-repeat;
          mask: url(assets/floor-mask-a.png) 0 0 / 100% 100% no-repeat;
}
.j-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to top, rgba(10,11,12,.78) 0%, rgba(10,11,12,.32) 26%, rgba(10,11,12,0) 46%),
    linear-gradient(to bottom, rgba(10,11,12,.55) 0%, rgba(10,11,12,0) 16%);
}

/* --------------------------------------------------- laptop screen -- */
.screen { position: absolute; left: 0; top: 0; width: 1280px; height: 850px; transform-origin: 0 0; background: #0f1113; overflow: hidden; }

/* ------------------------------------------------------- hotspots -- */
.j-hotspots { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.hs {
  position: absolute; left: 0; top: 0; pointer-events: auto;
  display: flex; align-items: flex-start; gap: 0;
  padding: 0; border: 0; background: none; cursor: pointer; color: var(--sc-ink);
  opacity: 0; visibility: hidden; will-change: transform, opacity;
}
.hs.is-on { visibility: visible; }
.hs__dot { position: relative; flex: none; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--sc-accent); }
/* stable hit area around the dot; the pulse ring is decoration and never part of the target */
.hs__dot::before { content: ""; position: absolute; inset: -14px; border-radius: 50%; }
.hs__dot::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid var(--sc-accent); animation: pulse 2.4s ease-out infinite; pointer-events: none; }
@keyframes pulse { 0% { transform: scale(.5); opacity: .9; } 70%, 100% { transform: scale(1.9); opacity: 0; } }
.hs__line { flex: none; width: 34px; height: 1px; margin-top: -1px; background: rgba(207, 214, 222, .7); transform-origin: 0 0; transform: rotate(-32deg); }
.hs__label {
  margin: -38px 0 0 -4px; padding: 7px 10px; white-space: nowrap;
  background: rgba(10, 11, 12, .74); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(207, 214, 222, .22);
  font: 400 10.5px/1.25 var(--sc-font-mono); letter-spacing: .12em; text-transform: uppercase; color: #e3e7eb;
}
.hs__more { display: none; margin-top: 6px; text-transform: none; letter-spacing: .02em; color: var(--sc-ink-soft); white-space: normal; max-width: 24ch; }
.hs[aria-expanded="true"] .hs__more { display: block; }
.hs:focus-visible { outline: none; }
.hs:focus-visible .hs__label { outline: 2px solid var(--sc-accent); outline-offset: 2px; }
.hs--left { flex-direction: row-reverse; }
.hs--left .hs__line { transform-origin: 100% 0; transform: rotate(32deg); }
.hs--left .hs__label { margin: -38px -4px 0 0; }
.hs--left .hs__dot { margin: -6px -6px 0 0; }

/* -------------------------------------------------------- stations -- */
.stations { position: absolute; inset: 0; pointer-events: none; z-index: 8; }
.st { position: absolute; opacity: 0; visibility: hidden; will-change: opacity, transform; }
.st.is-on { visibility: visible; }
.st > * { pointer-events: auto; }
.st__still { display: none; margin: 0; }
.st--hero { left: var(--pad-x); right: var(--pad-x); bottom: clamp(48px, 13vh, 150px); }
.st__h1 { margin: 0; font: 300 clamp(42px, 8.2vw, 132px)/.96 var(--sc-font-display); letter-spacing: -0.035em; text-wrap: balance; max-width: 12em; }
.st--hero .st__copy { display: inline-block; max-width: 100%; }
.st__row { display: flex; justify-content: space-between; gap: 24px; margin-top: clamp(18px, 3vh, 30px); }
.st__sub { margin: 0; font: 400 11px/1 var(--sc-font-mono); letter-spacing: .2em; text-transform: uppercase; color: #c4cad1; }
.st__by { text-align: right; }
.st--lead { left: var(--pad-x); bottom: clamp(44px, 12vh, 140px); max-width: min(40rem, 70vw); }
.st--trail { right: var(--pad-x); bottom: clamp(44px, 12vh, 140px); max-width: min(40rem, 70vw); text-align: right; }
.st__line { margin: 0; font: 300 clamp(28px, 3.6vw, 58px)/1.08 var(--sc-font-display); letter-spacing: -0.025em; text-wrap: balance; }

.floor-ctl { margin-top: clamp(18px, 3vh, 28px); display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.switch { display: inline-flex; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(10, 11, 12, .7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(207, 214, 222, .35); cursor: pointer; font: 400 11px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #9a9ea4; }
.switch__label { color: var(--sc-ink-soft); }
.switch__opt { transition: color .3s ease; }
.switch[aria-checked="false"] .switch__opt[data-o="eiche"], .switch[aria-checked="true"] .switch__opt[data-o="stein"] { color: var(--sc-ink); }
.switch__track { position: relative; width: 34px; height: 14px; border: 1px solid rgba(207, 214, 222, .55); }
.switch__track span { position: absolute; top: 2px; left: 2px; width: 14px; height: 8px; background: var(--sc-accent); transition: transform .35s var(--sc-ease-out); }
.switch[aria-checked="true"] .switch__track span { transform: translateX(14px); }
/* kitchen / living room: as built or alternative; one attribute on the journey drives scene, station still and switch */
.var-alt { opacity: 0; transition: opacity .6s ease; }
.journey[data-kueche="alt"] :is(.j-kueche, [data-st="kueche"]) .var-alt,
.journey[data-wohnzimmer="alt"] :is(.j-wohnzimmer, [data-st="wohnzimmer"]) .var-alt { opacity: 1; }
.var-ctl { margin-top: clamp(14px, 2.4vh, 22px); display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.switch--var[aria-checked="false"] .switch__opt[data-o="bestand"], .switch--var[aria-checked="true"] .switch__opt[data-o="alt"] { color: var(--sc-ink); }
.var-sum { margin: 0; min-height: 1.5em; font: 400 12px/1.5 var(--sc-font-mono); letter-spacing: .04em; color: #c4cad1; }
.var-sum small { margin-left: 10px; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: #75797e; }
.hc-var figure[role="button"] { cursor: pointer; }
.hc-var figure[role="button"]:hover { color: #cfd6de; }
.hc-var figure[role="button"]:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: -2px; }
.floor-note { margin: 0; min-height: 1.4em; max-width: 34ch; font: 400 12px/1.5 var(--sc-font-mono); letter-spacing: .04em; color: #c4cad1; }

/* corridor: material comparison */
.st--flur { max-width: none; right: var(--pad-x); display: grid; grid-template-columns: minmax(0, 34rem) minmax(0, 30rem); justify-content: space-between; align-items: end; column-gap: 40px; }
.st--flur > .st__line, .st--flur > .floor-ctl { grid-column: 1; }
.st--flur > .cmp { position: static; grid-column: 2; grid-row: 1 / span 2; }
.cmp { background: rgba(10, 11, 12, .78); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(207, 214, 222, .18); }
.cmp__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255, 255, 255, .07); }
.cmp__col { background: #0c0d0f; padding: 10px 10px 14px; border: 1px solid transparent; transition: border-color .3s ease; }
.cmp__col img { width: 100%; height: auto; aspect-ratio: 8 / 3; object-fit: cover; }
.cmp__col h3 { margin: 12px 4px 6px; font: 300 17px/1.2 var(--sc-font-display); color: #f1f2f4; }
.cmp__col p { margin: 0 4px 10px; font-size: 12.5px; line-height: 1.5; color: var(--sc-ink-soft); }
.cmp__col dl { display: flex; gap: 12px; align-items: baseline; margin: 0 4px; }
.cmp__col dt { font: 400 10px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #75797e; }
.cmp__col dd { margin: 0; font-size: 14px; color: #e3e7eb; }
.journey[data-floor="eiche"] .cmp__col[data-o="eiche"], .journey[data-floor="stein"] .cmp__col[data-o="stein"] { border-color: rgba(207, 214, 222, .55); }
.cmp__hint { margin: 0; padding: 9px 14px; font: 400 10px/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #75797e; }

/* hotspot preview card (layout of the tour's material card) */
.hcard { position: absolute; z-index: 9; width: min(400px, calc(100vw - 32px)); background: rgba(14, 15, 17, .94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .09); color: #c9ced4; pointer-events: auto; }
.hcard[hidden] { display: none; }
.hc-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; border-bottom: 1px solid rgba(255, 255, 255, .07); font: 400 10px/1 var(--sc-font-mono); letter-spacing: .2em; text-transform: uppercase; color: #8d9298; }
.hc-var { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255, 255, 255, .07); border-bottom: 1px solid rgba(255, 255, 255, .07); }
.hc-var figure { margin: 0; display: flex; flex-direction: column; gap: 6px; padding: 8px; background: #0f1012; border: 1px solid transparent; font-size: 12px; color: #9a9ea4; }
.hc-var figure.on { border-color: rgba(207, 214, 222, .35); color: #cfd6de; }
.hc-var img, .hc-ph { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.hc-ph { display: grid; place-items: center; padding: 8px; background: #969ba1; color: #0a0b0c; text-align: center; font: 400 9.5px/1.3 var(--sc-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.hc-tag { font: 400 9px/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #6b7075; }
.hc-det { padding: 12px 14px 14px; font-size: 13px; line-height: 1.5; }
.hc-det h3 { margin: 0 0 8px; font: 300 19px/1.2 var(--sc-font-display); color: #f1f2f4; }
.hc-det dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 14px; margin: 0 0 10px; }
.hc-det dt { font: 400 10px/1.6 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #75797e; }
.hc-det dd { margin: 0; color: #d7dce1; }
.hc-det dd.sum { color: #fff; font-weight: 400; }
.hc-det p { margin: 0; color: #a9aeb4; }
.hc-hint { margin-top: 10px !important; font: 400 10px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #6b7075 !important; }

.st--desk { left: 0; right: 0; bottom: clamp(24px, 7vh, 70px); display: flex; flex-direction: column; align-items: center; gap: 14px; }
.look { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.look__btn, .tourctl__btn {
  padding: 12px 18px; background: rgba(10, 11, 12, .72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(207, 214, 222, .35); color: #d7dde4; cursor: pointer;
  font: 400 11px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase;
}
.look__btn:hover, .tourctl__btn:hover { border-color: rgba(207, 214, 222, .7); color: #fff; }
.look__btn[aria-pressed="true"] { background: var(--sc-accent); color: var(--sc-accent-ink); border-color: var(--sc-accent); }

/* ---------------------------------------------- look left / right -- */
.side {
  position: absolute; top: 0; bottom: 0; z-index: 7; width: min(36vw, 520px);
  padding: calc(84px + 3vh) clamp(20px, 2.6vw, 40px) 32px;
  background: rgba(12, 13, 15, .94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  overflow: auto; transition: transform .7s var(--sc-ease-out), visibility 0s linear .7s; visibility: hidden;
}
.side--left { left: 0; border-right: 1px solid var(--line); transform: translateX(-101%); }
.side--right { right: 0; border-left: 1px solid var(--line); transform: translateX(101%); }
.journey[data-look="-1"] .side--left, .journey[data-look="1"] .side--right { transform: none; visibility: visible; transition: transform .7s var(--sc-ease-out), visibility 0s; }
.side__k { margin: 0 0 18px; font: 400 10.5px/1 var(--sc-font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--sc-accent); }
.side__k--sub { margin-top: 28px; color: var(--mute); }
.side__note { margin: 22px 0 0; font: 400 11px/1.55 var(--sc-font-mono); color: var(--faint); }
.side { width: min(40vw, 560px); }
.side--left { width: min(66vw, 980px); }
.side__note a { color: #cfd6de; text-decoration: underline; text-underline-offset: .2em; }

/* status chips (dossier, reporting, cards) */
.st-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px; border: 1px solid currentColor; font: 400 10px/1 var(--sc-font-mono); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.st-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.st-chip--ok { color: var(--ok); } .st-chip--warn { color: var(--warn); } .st-chip--crit { color: var(--crit); }
.tag { font: 400 9.5px/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #8d9298; }

/* ------------------------------------------------- dossier: the book -- */
.book { position: relative; perspective: 2200px; outline: none; }
.book:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 6px; }
.book__spread { position: relative; display: grid; grid-template-columns: 1fr 1fr; aspect-ratio: 1.48; cursor: pointer; transform-style: preserve-3d; }
.book--single .book__spread { grid-template-columns: 1fr; aspect-ratio: 0.74; }
.book__half { position: relative; overflow: hidden; }
.book__half--l { background: linear-gradient(90deg, #e9e7e2 0%, #f1efea 92%, #dcd9d2 100%); }
.book__half--r { background: linear-gradient(90deg, #d9d6cf 0%, #efede8 7%, #f3f1ec 100%); }
.book--single .book__half--r { background: #f3f1ec; }
.book__leaf { position: absolute; top: 0; bottom: 0; width: 50%; transform-style: preserve-3d; z-index: 3; pointer-events: none; }
.book--single .book__leaf { width: 100%; }
.book__leaf--r { left: 50%; transform-origin: 0 50%; }
.book--single .book__leaf--r { left: 0; }
.book__leaf--l { left: 0; transform-origin: 100% 50%; }
.book__face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: #f3f1ec; overflow: hidden; }
.book__face--back { transform: rotateY(180deg); }
.book__face::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.10), rgba(0,0,0,0) 18%); }
.book__face--back::after { background: linear-gradient(270deg, rgba(0,0,0,.10), rgba(0,0,0,0) 18%); }
.book__nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 14px; }
.book__btn { width: 42px; height: 38px; background: none; border: 1px solid rgba(207, 214, 222, .35); color: #e3e7eb; cursor: pointer; font-size: 15px; }
.book__btn:hover:not(:disabled) { border-color: var(--sc-accent); }
.book__btn:disabled { opacity: .3; cursor: default; }
.book__pos { min-width: 15ch; text-align: center; font: 400 10.5px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #9a9ea4; }

/* a page: big image, few words */
.pg { position: absolute; inset: 0; display: flex; flex-direction: column; color: #1b1d20; padding: 7% 8% 8%; gap: 5%; }
.pg--blank { background: none; }
.pg__img { margin: 0; flex: 1 1 58%; min-height: 0; overflow: hidden; background: #d9d6cf; }
.pg__img img { width: 100%; height: 100%; object-fit: cover; }
.pg__art { flex: 1 1 58%; min-height: 0; display: grid; place-items: center; color: #4a4e53; }
.pg__plan { width: 100%; height: 100%; }
.pg__txt { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pg__k { font: 400 clamp(7.5px, .62vw, 9.5px)/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #6b7075; }
.pg h3 { margin: 0; font: 300 clamp(14px, 1.5vw, 24px)/1.12 var(--sc-font-display); letter-spacing: -0.02em; color: #121416; text-wrap: balance; }
.pg p { margin: 0; font-size: clamp(9.5px, .78vw, 12.5px); line-height: 1.5; color: #4a4e53; }
.pg__no { position: absolute; bottom: 3.2%; right: 8%; font: 400 8.5px/1 var(--sc-font-mono); color: #8d9298; }
.pg__tag { font: 400 8px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #8d9298; }
.pg__note { font: 400 clamp(8px, .66vw, 10px)/1.3 var(--sc-font-mono); color: #4a4e53; }
.pg .st-chip { padding: 4px 7px; font-size: 8.5px; background: rgba(255, 255, 255, .55); }
.pg .st-chip--ok { color: #4c7a5a; } .pg .st-chip--warn { color: #9a6726; } .pg .st-chip--crit { color: #a4473b; }
.pg__facts { display: flex; gap: 16px; margin: 4px 0 0; }
.pg__facts dt { font: 400 7.5px/1.4 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #8d9298; }
.pg__facts dd { margin: 0; font-size: clamp(11px, .9vw, 14px); color: #1b1d20; }
.pg--cover .pg__img { flex-basis: 68%; }
.pg--cover h3 { font-size: clamp(18px, 2vw, 32px); }
.pg--mat .pg__art { place-items: stretch; }
.pg__mats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; align-content: start; }
.pg__mats li { display: flex; flex-direction: column; gap: 3px; font-size: clamp(8.5px, .7vw, 11px); color: #4a4e53; }
.pg__mats b { font-weight: 400; color: #1b1d20; }
/* "Gewählte Ausstattung": one row per item, as built left, selection right */
.pg--sel { gap: 3%; padding-top: 6%; }
.pg--sel .pg__art { flex: 1 1 auto; place-items: stretch; overflow: hidden; }
.pg--sel .pg__txt { gap: 4px; }
.sel { display: flex; flex-direction: column; gap: 4px; min-height: 0; font-size: clamp(7.5px, .62vw, 10px); line-height: 1.3; color: #4a4e53; }
.sel__head { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-bottom: 4px; border-bottom: 1px solid #d3d0c9; font: 400 clamp(6.5px, .52vw, 8.5px)/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #8d9298; }
.sel__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(4px, .55vw, 8px); }
.sel__row { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 8px; }
.sel__what { grid-column: 1 / -1; font: 400 clamp(6.5px, .52vw, 8.5px)/1.2 var(--sc-font-mono); letter-spacing: .12em; text-transform: uppercase; color: #6b7075; }
.sel__what i { font-style: normal; color: #9a6726; }
.sel__cell { display: grid; grid-template-columns: 34% 1fr; gap: 6px; align-items: start; }
.sel__cell img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: #d9d6cf; }
.sel__cell b { display: block; font-weight: 400; color: #1b1d20; }
.sel__cell.is-same { opacity: .55; }
.sel__sums { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 2px 0 0; }
.sel__sums dt { font: 400 7.5px/1.4 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #8d9298; }
.sel__sums dd { margin: 0; font-size: clamp(10px, .82vw, 13px); color: #1b1d20; }
.sel__diff.is-warn dd { color: #9a6726; } .sel__diff.is-ok dd { color: #4c7a5a; }
.pg__sw { display: grid; place-items: center; aspect-ratio: 16 / 10; background: #969ba1; }
.pg__sw { position: relative; overflow: hidden; }
.pg__sw img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pg__sw img + i { position: relative; padding: 3px 5px; background: rgba(241, 242, 244, .88); }
.pg__sw i {font: 400 8px/1 var(--sc-font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: #0a0b0c; }
.pg__delta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: clamp(9px, .74vw, 11.5px) !important; }
.pg--contact .pg__img { flex-basis: 40%; filter: grayscale(.4); }
.pg__contact { font-family: var(--sc-font-mono) !important; letter-spacing: .04em; }

/* ------------------------------------------- reporting: start page -- */
.rp { display: flex; flex-direction: column; gap: 16px; }
.rp__hero { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--line); }
.rp__hero img { width: 100%; height: 100%; object-fit: cover; }
.rp__hero figcaption { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; display: flex; flex-direction: column; gap: 6px; background: linear-gradient(to top, rgba(10,11,12,.9), rgba(10,11,12,0)); }
.rp__hero strong { font: 300 clamp(20px, 1.9vw, 28px)/1.1 var(--sc-font-display); color: #f1f2f4; }
.rp__hero figcaption > span:last-child { font: 400 10.5px/1.3 var(--sc-font-mono); color: #a9aeb4; }
.rp__kpi { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.rp__kpi div { background: #0c0d0f; padding: 12px 14px; transition: background .25s ease; }
.rp__kpi div:hover { background: #131518; }
.rp__kpi dt { font: 400 9.5px/1.3 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #75797e; }
.rp__kpi dd { margin: 6px 0 0; font: 300 24px/1 var(--sc-font-display); color: #f1f2f4; }
.rp__status { margin: 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 13px; color: #a9aeb4; }
.rp__login { display: grid; gap: 10px; }
.rp__login label { display: grid; gap: 5px; font: 400 9.5px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #75797e; }
.rp__login input { background: transparent; border: 1px solid var(--line-2); color: #e3e7eb; padding: 11px 12px; font: 400 12px/1 var(--sc-font-mono); }
.rp__login input:focus { outline: none; border-color: var(--sc-accent); }

/* hotspot card: price difference */
.hc-delta { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 12.5px; color: #c9ced4; }


@media (max-width: 760px) {
  .st--lead, .st--trail { left: 20px; right: 20px; max-width: none; text-align: left; bottom: clamp(36px, 9vh, 80px); }
  .var-ctl { align-items: flex-start; }
  .var-ctl .switch { padding: 10px 12px; }
  .st__line { font-size: clamp(28px, 8.4vw, 40px); }
  .st__h1 { font-size: clamp(44px, 13vw, 64px); }
  .st__row { gap: 12px; }
  .st--hero .st__sub { font-size: 9.5px; letter-spacing: .12em; white-space: nowrap; }
  .hs--desk-only { display: none; }
  .hs__label { white-space: normal; width: max-content; max-width: 38vw; }
  .st--flur { top: calc(76px + 2vh); bottom: auto; display: block; }
  .st--flur .floor-ctl { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .st--flur .floor-note { flex-basis: 100%; }
  .cmp { margin-top: 12px; }
  .cmp__col { padding: 6px 6px 8px; }
  .cmp__col img { aspect-ratio: 3 / 1; }
  .cmp__col h3 { margin: 6px 2px 4px; font-size: 13px; }
  .cmp__col p { display: none; }
  .cmp__col dl { margin: 0 2px; }
  .cmp__col dd { font-size: 12px; }
  .cmp__hint { padding: 6px 8px; }
  .hcard { left: 16px !important; right: 16px; width: auto; max-height: calc(100svh - 110px); overflow: auto; }
  .hc-var figure { padding: 6px; font-size: 11px; }
  .hc-det { padding: 10px 12px 12px; }
  .side { width: 100%; padding-top: 76px; padding-bottom: 150px; }
  .st--desk { bottom: 20px; }
  .look__btn { padding: 11px 12px; }
}

/* ------------------------------------------ reduced motion: stills -- */
.journey.is-static .j-stage { position: relative; height: auto; overflow: visible; }
.journey.is-static .j-view, .journey.is-static .j-scrim, .journey.is-static .j-hotspots { display: none; }
.journey.is-static .stations { position: relative; inset: auto; display: grid; gap: clamp(56px, 10vh, 120px); padding: calc(84px + 6vh) var(--pad-x) clamp(40px, 8vh, 90px); max-width: var(--maxw); margin: 0 auto; }
.journey.is-static .st { position: relative; inset: auto; opacity: 1; visibility: visible; max-width: none; text-align: left; transform: none !important; }
.journey.is-static .var-ctl { align-items: flex-start; }
.journey.is-static .st__still { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; margin-bottom: 20px; border: 1px solid var(--line); }
.journey.is-static .st__still > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.journey.is-static .st__still--desk { aspect-ratio: 2400 / 1340; }
.journey.is-static .st--hero .st__still { margin-bottom: 28px; }
.journey.is-static .st--desk { align-items: stretch; }
.journey.is-static .side { position: relative; transform: none; visibility: visible; width: auto; padding: 24px; display: none; }
.journey.is-static[data-look="-1"] .side--left, .journey.is-static[data-look="1"] .side--right { display: block; }
.journey.is-static .floor-stone { transition: opacity .3s ease; }
.journey.is-static .hs { position: absolute; opacity: 1; visibility: visible; }
.journey.is-static .hs--left { transform: translateX(-100%); }
@media (max-width: 760px) { .journey.is-static .hcard { position: fixed; } }
@media (prefers-reduced-motion: reduce) { .hs__dot::after { animation: none; opacity: 0; } }

/* ======================================================= PAGE BODY == */
.wrap { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad-x); }
.sec { padding-block: clamp(60px, 12vh, 160px); }
.eyebrow { margin: 0 0 22px; font: 400 11px/1.4 var(--sc-font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--mute); }
.h2 { margin: 0; font: 300 clamp(28px, 3.6vw, 58px)/1.08 var(--sc-font-display); letter-spacing: -0.025em; max-width: 20ch; text-wrap: balance; }
.h2--c { margin: 0 auto; font-size: clamp(26px, 3.4vw, 54px); line-height: 1.16; max-width: 26ch; }
.h2--xl { font-size: clamp(34px, 5.6vw, 92px); line-height: 1.02; letter-spacing: -0.035em; max-width: 14ch; }
.lede { margin: 0; max-width: 46ch; font-size: clamp(15px, 1.25vw, 19px); line-height: 1.62; color: #a9aeb4; text-wrap: pretty; }
.lede--c { margin: 34px auto 0; max-width: 58ch; font-size: 16px; line-height: 1.65; color: #a2a7ad; }
.meta { font: 400 10px/1.5 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #75797e; }

.intro { padding-block: clamp(80px, 14vh, 170px) clamp(40px, 6vh, 70px); }
.intro__h { margin: 0; font: 300 clamp(42px, 8.2vw, 132px)/.96 var(--sc-font-display); letter-spacing: -0.035em; max-width: 14em; text-wrap: balance; }
.intro__row { display: flex; flex-wrap: wrap; gap: clamp(24px, 5vw, 80px); align-items: flex-end; justify-content: space-between; margin-top: clamp(32px, 6vh, 64px); }
.ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.btn { display: inline-block; padding: 15px 26px; border: 1px solid rgba(255, 255, 255, .16); background: none; font: 400 11px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: #cfd6de; cursor: pointer; }
.btn:hover { border-color: rgba(207, 214, 222, .6); color: #fff; }
.btn--solid { background: #e7eaee; border-color: #e7eaee; color: #0a0b0c; }
.btn--solid:hover { background: #fff; color: #0a0b0c; }

.split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(32px, 5vw, 90px); align-items: start; }
.split--end { align-items: end; }
.prob__top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 110px); align-items: start; }
.prob__h { font-size: clamp(32px, 4.4vw, 72px); max-width: 15ch; }
.prob__text p { margin: 0 0 18px; max-width: 46ch; font-size: clamp(15px, 1.15vw, 17.5px); line-height: 1.65; color: #a9aeb4; }
.prob__text p:last-child { margin-bottom: 0; }
.prob__points { list-style: none; margin: clamp(48px, 9vh, 110px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); }
.prob__points li { border-top: 1px solid var(--line-2); padding-top: 18px; }
.prob__points h3 { margin: 12px 0 0; font: 400 clamp(16px, 1.3vw, 20px)/1.3 var(--sc-font-display); letter-spacing: -0.01em; color: #eceef1; max-width: 18ch; }
.no { font: 400 10px/1 var(--sc-font-mono); color: #5f6469; letter-spacing: .14em; }
.prob__key { margin: clamp(56px, 10vh, 130px) 0 0 auto; max-width: 26ch; font: 300 clamp(24px, 2.8vw, 44px)/1.18 var(--sc-font-display); letter-spacing: -0.02em; color: #f1f2f4; text-wrap: balance;
  padding-left: clamp(18px, 2vw, 30px); border-left: 1px solid var(--sc-accent); }
@media (max-width: 860px) {
  .prob__top { grid-template-columns: 1fr; }
  .prob__points { grid-template-columns: 1fr 1fr; row-gap: 28px; }
  .prob__key { margin-left: 0; }
}
.card p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--sc-ink-soft); max-width: 52ch; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1px; margin-top: clamp(34px, 6vh, 70px); }
.card { background: var(--sc-surface); outline: 1px solid var(--line); padding: clamp(24px, 2.6vw, 42px); display: flex; flex-direction: column; gap: 14px; min-height: 420px; transition: background .4s ease; }
.card:hover { background: #121416; }
.ph { aspect-ratio: 4 / 3; margin-bottom: 8px; background: repeating-linear-gradient(135deg, #16181a 0 12px, #1a1d1f 12px 24px); display: flex; align-items: flex-end; padding: 12px; }
.ph span, .ba span { font: 400 9.5px/1.4 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--faint); }
.kicker { font: 400 10px/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--sc-accent); }
.card h3 { margin: 0; font: 300 clamp(22px, 2vw, 30px)/1.15 var(--sc-font-display); letter-spacing: -0.02em; }

.note { padding-block: clamp(20px, 4vh, 40px); }
.note > * { max-width: 62ch; }
.note__k { margin: 0 0 10px; font: 400 10.5px/1.4 var(--sc-font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--sc-accent); }
.note p { margin: 0; padding-left: 18px; border-left: 1px solid rgba(207, 214, 222, .35); font-size: 15px; line-height: 1.6; color: #a9aeb4; }

.contact { padding-block: clamp(70px, 14vh, 180px) clamp(40px, 8vh, 90px); }
.contact .lede { margin-top: 26px; font-size: 16px; max-width: 48ch; color: #a2a7ad; }
.form { display: flex; flex-direction: column; gap: 14px; }
.form__row { display: flex; gap: 12px; flex-wrap: wrap; }
.form label { flex: 1 1 140px; min-width: 0; }
.form input { width: 100%; background: transparent; border: 1px solid var(--line-2); color: var(--sc-ink); padding: 15px 16px; font: 400 12px/1.2 var(--sc-font-mono); }
.form input::placeholder { color: #75797e; }
.form input:focus { outline: none; border-color: var(--sc-accent); }
.form .btn { padding: 16px 26px; }
.form .meta { margin: 6px 0 0; letter-spacing: .1em; text-transform: none; color: var(--faint); }

.legal { padding-block: 28px; border-top: 1px solid rgba(255, 255, 255, .05); }
.legal__h { margin: 0 0 8px; font: 400 11px/1.4 var(--sc-font-mono); letter-spacing: .18em; text-transform: uppercase; color: #9a9ea4; }
.legal p { margin: 0; max-width: 70ch; font-size: 13.5px; line-height: 1.6; color: var(--faint); }

.foot { border-top: 1px solid rgba(255, 255, 255, .07); padding: 28px var(--pad-x); display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; font: 400 10px/1.5 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.foot a { color: inherit; }
.foot a:hover { color: #fff; }

/* core functions: real previews instead of placeholders */
.feat { position: relative; display: block; margin: 0 0 8px; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--line); background: #111315; }
.feat img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--sc-ease-out); }
.feat .tag, .feat figcaption { position: absolute; left: 10px; bottom: 10px; padding: 6px 8px; background: rgba(10, 11, 12, .78); }
.feat--link:hover img { transform: scale(1.03); }
.feat--link:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
.feat--thread { padding: 14px; display: flex; flex-direction: column; gap: 10px; overflow: auto; }
.feat--thread > .tag { position: static; padding: 0; background: none; }
.c { padding: 10px 12px; background: #15181b; border: 1px solid var(--line); }
.c p { margin: 4px 0 6px; font-size: 13.5px; line-height: 1.45; color: #e3e7eb; }
.c__meta, .c__who { font: 400 9.5px/1.3 var(--sc-font-mono); letter-spacing: .1em; text-transform: uppercase; color: #8d9298; }
.c--reply { margin-left: 18px; border-left: 1px solid var(--sc-accent); }
.c--done { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: none; }
.feat--thread { aspect-ratio: auto; min-height: 0; overflow: visible; }

/* ------------------------------------------- panels: open / close -- */
.side__bar { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.side__bar .side__k { margin: 0 auto 0 0; }
.back, .swap, .edge {
  padding: 10px 14px; background: rgba(10, 11, 12, .8); border: 1px solid rgba(207, 214, 222, .4); color: #e3e7eb; cursor: pointer;
  font: 400 10.5px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap;
}
.back { background: #fff; color: #0a0b0c; border-color: #fff; }
.back:hover { box-shadow: 0 0 18px rgba(255, 255, 255, .3); }
.swap:hover, .edge:hover { border-color: var(--sc-accent); color: #fff; }
.swap { display: none; }
/* while a panel is open the desk buttons step aside: no control ever sits on top of a panel */
.journey:is([data-look="-1"], [data-look="1"]) .look,
.journey:is([data-look="-1"], [data-look="1"]) .tourctl { visibility: hidden; opacity: 0; }
.edge { position: absolute; top: 50%; z-index: 9; transform: translateY(-50%); visibility: hidden; opacity: 0; transition: opacity .4s ease; }
.edge--l { left: 20px; } .edge--r { right: 20px; }
.journey[data-look="1"] .edge--l, .journey[data-look="-1"] .edge--r { visibility: visible; opacity: 1; }
/* embedded reporting demo replaces the start page inside the right panel */
.rp-embed { position: absolute; top: 0; right: 0; bottom: 0; z-index: 7; width: min(74vw, 1180px); display: flex; flex-direction: column;
  padding: calc(84px + 2vh) clamp(16px, 2vw, 28px) 20px; background: rgba(12, 13, 15, .97); border-left: 1px solid var(--line); }
.rp-embed[hidden] { display: none; }
.rp-embed__bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.rp-embed__bar .tag { margin-right: auto; }
.rp-embed__bar .btn { padding: 10px 14px; font-size: 10.5px; }
.rp-embed__frame { flex: 1; width: 100%; border: 1px solid var(--line); background: #0a0b0c; }
.journey[data-embed="1"] .side--right { visibility: hidden !important; }
@media (max-width: 760px) {
  .side { padding-bottom: 28px; }
  .side__bar { flex-wrap: wrap; }
  .swap { display: inline-block; }
  .edge { display: none; }
  .rp-embed { width: 100%; padding-top: 72px; }
  .rp-embed__bar .tag { flex-basis: 100%; }
}
.journey.is-static .rp-embed { position: relative; width: auto; height: 80vh; padding-top: 16px; }

/* problem: picture beside the key sentence */
.prob__bottom { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 90px); align-items: end; margin-top: clamp(56px, 10vh, 130px); }
.prob__img { margin: 0; position: relative; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--line); }
.prob__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }
.prob__img figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 8px; background: rgba(10, 11, 12, .78); }
.prob__bottom .prob__key { margin: 0; }
@media (max-width: 860px) { .prob__bottom { grid-template-columns: 1fr; } }
/* short screens (laptops): keep the reporting start page, login included, on one screen */
@media (max-height: 820px) and (min-width: 761px) {
  .side { padding-top: calc(76px + 1.5vh); }
  .side__bar { margin-bottom: 12px; }
  .rp { gap: 10px; }
  .rp__hero { aspect-ratio: 21 / 8; }
  .rp__kpi { grid-template-columns: repeat(4, 1fr); }
  .rp__kpi div { padding: 9px 10px; }
  .rp__kpi dd { font-size: 19px; margin-top: 4px; }
  .rp__login { grid-template-columns: 1fr 1fr; gap: 8px; }
  .rp__login button { grid-column: 1 / -1; }
  .rp__login input { padding: 9px 10px; }
}

/* brand line under the wordmark: same voice everywhere (nav, dossier inside cover) */
.brand { display: flex; flex-direction: column; gap: 5px; }
.by, .pg__by { font: 400 8px/1 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #969ba1; }
/* dossier inside cover */
/* light paper like the other pages, dark wordmark; the brand line one step darker than Nebelgrau so it stays legible on paper */
.pg--mark { justify-content: center; align-items: center; gap: 12px; }
.pg__wm { font: 600 clamp(13px, 1.25vw, 19px)/1 var(--sc-font-display); letter-spacing: .42em; margin-right: -.42em; color: #1b1d20; }
.pg--mark .pg__by { font-size: clamp(6.5px, .5vw, 8px); color: #7a7f85; }

/* problem: key sentence centred on the picture, balanced gap */
.prob__bottom { align-items: center; gap: clamp(40px, 6vw, 104px); }


/* ------------------------------------------------ the tour on the laptop -- */
.screen__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #0a0b0c; opacity: 0; pointer-events: none; transition: opacity .6s ease; }
.screen:is([data-state="active"], [data-state="full"]) .screen__frame { opacity: 1; pointer-events: auto; }
/* the start page mirrors the tour's own start screen, in the screen's 1280 × 850 space */
.screen__start { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 22%; gap: 26px; background: #0a0b0c; transition: opacity .5s ease; }
.screen:is([data-state="active"], [data-state="full"]) .screen__start { opacity: 0; pointer-events: none; }
.screen__mark { font: 600 22px/1 var(--sc-font-display); letter-spacing: .42em; color: #f1f2f4; margin-bottom: 26px; }
.screen__title { font: 300 64px/1.05 var(--sc-font-display); letter-spacing: -.03em; color: #f1f2f4; max-width: 12em; }
.screen__meta { font: 400 16px/1 var(--sc-font-mono); letter-spacing: .2em; text-transform: uppercase; color: #75797e; }
.screen__bar { display: block; height: 2px; background: rgba(255, 255, 255, .14); }
.screen__bar i { display: block; height: 100%; width: 0; background: var(--sc-accent); transition: width .25s ease; }
.screen__enter, .screen__retry { align-self: flex-start; margin-top: 10px; padding: 20px 30px; background: #e7eaee; color: #0a0b0c; border: 0; cursor: pointer;
  font: 500 17px/1 var(--sc-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.screen__enter:hover, .screen__retry:hover { background: #fff; box-shadow: 0 0 24px rgba(255, 255, 255, .25); }
.screen__enter:disabled { background: #2a2e32; color: #9a9ea4; cursor: progress; box-shadow: none; }
.screen__enter:focus-visible, .screen__retry:focus-visible { outline: 3px solid var(--sc-accent); outline-offset: 4px; }
.screen__err, .screen__retry { display: none; }
.screen[data-state="error"] .screen__err { display: block; font: 300 30px/1.3 var(--sc-font-display); color: #e3c08f; }
.screen[data-state="error"] .screen__retry { display: block; }
.screen[data-state="error"] :is(.screen__enter, .screen__bar) { display: none; }

/* controls while the tour runs: where the desk buttons were, never on the screen itself */
.tourctl { display: none; gap: 10px; }
.journey:is([data-tour="active"], [data-tour="full"]) .tourctl { display: flex; }
.journey:is([data-tour="loading"], [data-tour="active"], [data-tour="full"]) .look { visibility: hidden; opacity: 0; }
.tourctl__back { background: #fff; color: #0a0b0c; border-color: #fff; }
.tour-full .tourctl__full { display: none; }
/* bottom left is the one corner the tour's own UI leaves free, in the laptop and in full screen */
.screen__demo { position: absolute; left: 18px; bottom: 18px; z-index: 3; pointer-events: none; padding: 9px 12px; background: rgba(10, 11, 12, .82); border: 1px solid rgba(255, 255, 255, .18); font: 400 13px/1 var(--sc-font-mono); letter-spacing: .18em; text-transform: uppercase; color: #e7eaee; }

/* full window: the same iframe (no reload, the visitor keeps their room and material) leaves its 3D frame */
.tour-full .bar, .tour-full [data-sc-progress], .tour-full .j-hotspots, .tour-full .hcard { display: none !important; }
.tour-full :is(.j-view, .j-office, .st--desk) { transform: none !important; will-change: auto !important; }
.tour-full .j-office { z-index: 9; }
/* entering browser full screen resizes the window and shifts the scroll progress; the scroll fades must not dim the tour */
.tour-full :is(.j-office, .st--desk) { opacity: 1 !important; visibility: visible !important; }
.tour-full .stations { z-index: 10; }
.tour-full .screen { position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100vh !important; height: 100dvh !important; transform: none !important; z-index: 95; }
.tour-full .tourctl { position: fixed; top: calc(14px + env(safe-area-inset-top)); right: 14px; z-index: 96; }
.tour-full .st--desk { position: static; }
@media (prefers-reduced-motion: reduce) { .screen__frame, .screen__start { transition: none; } }
/* image layers never catch clicks (an invisible hero above the laptop swallowed them); only the visible office does */
.j-layer { pointer-events: none; }
.j-office.is-on, .journey.is-static .j-office { pointer-events: auto; }

/* ------------------------------------------------------ languages -- */
.i18n-wait body { visibility: hidden; }   /* until the language file is in (max 2.5 s), no flash of the wrong language */
.nav { gap: clamp(10px, 1.6vw, 22px); }
.lang { display: inline-flex; align-items: center; gap: 2px; font: 400 11px/1 var(--sc-font-mono); letter-spacing: .14em; color: #6b7075; }
.lang button { padding: 8px 6px; background: none; border: 0; border-radius: 0; color: #8d9298; font: inherit; letter-spacing: inherit; cursor: pointer; }
.lang button:hover { color: #fff; }
.lang button[aria-pressed="true"] { color: #fff; box-shadow: inset 0 -1px 0 #fff; }
@media (max-width: 640px) {
  .nav .nav__cta { padding: 10px 12px; font-size: 10px; letter-spacing: .1em; }
  .lang { font-size: 10px; letter-spacing: .08em; }
  .lang button { padding: 8px 4px; }
}
@media (max-width: 380px) { .brand .by { display: none; } }
.form__err { margin: 0; min-height: 0; font: 400 12px/1.4 var(--sc-font-mono); color: var(--warn); }
.form__err:empty { display: none; }
.form input[aria-invalid="true"] { border-color: var(--warn); }

/* ------------------------------------------------- privacy page (datenschutz/) -- */
.lg { max-width: 720px; margin: 0 auto; padding: clamp(120px, 16vh, 168px) 20px clamp(72px, 10vh, 120px); }
.lg__back, .lg__k, .lg__n, .lg__prevails { font: 400 11px/1.4 var(--sc-font-mono); letter-spacing: .16em; text-transform: uppercase; }
.lg__back { display: inline-block; margin-bottom: 48px; color: #9a9ea4; }
.lg__back::before { content: "\2190\00a0\00a0"; }
.lg__back:hover { color: #fff; }
.lg__k { margin: 0 0 14px; color: var(--sc-ink-soft); }
.lg__h { margin: 0 0 clamp(40px, 7vh, 64px); font: 300 clamp(34px, 5vw, 52px)/1.08 var(--sc-font-display); letter-spacing: -.01em; color: var(--sc-accent); }
.lg__sec { padding-top: 32px; margin-top: 32px; border-top: 1px solid var(--line); }
.lg__sec h2 { display: flex; gap: 18px; align-items: baseline; margin: 0 0 14px; font: 400 clamp(19px, 2.2vw, 22px)/1.3 var(--sc-font-display); color: var(--sc-accent); }
.lg__n { flex: none; color: var(--sc-ink-soft); }
.lg__sec p { margin: 0 0 14px; font-size: 16px; line-height: 1.8; color: var(--sc-ink-soft); }
.lg__ph { font: 400 .86em/1 var(--sc-font-mono); color: var(--sc-accent); background: rgba(207, 214, 222, .1); padding: 2px 4px; }
.lg__prevails { margin: 48px 0 0; padding-top: 24px; border-top: 1px solid var(--line); color: var(--sc-accent); }
