/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1iIq129k.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1isq129k.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1iAq129k.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgtIU.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgtIU.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgtIU.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19-7DRs5.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19a7DRs5.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1967DRs5.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19G7DRs5.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1927DRs5.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19y7DRs5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19K7DQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19-7DRs5.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19a7DRs5.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1967DRs5.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19G7DRs5.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1927DRs5.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19y7DRs5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19K7DQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19-7DRs5.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19a7DRs5.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1967DRs5.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19G7DRs5.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1927DRs5.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19y7DRs5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19K7DQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19-7DRs5.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19a7DRs5.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1967DRs5.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19G7DRs5.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-1927DRs5.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19y7DRs5.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ieVl2ZhZI2eCN5jzbjEETS9weq8-19K7DQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --paper: #f2efe8;
  --ink: #030303;
  --line: rgba(255,255,255,.14);
  --muted: #77736d;
  --red: #ff3022;
  --green: #16c846;
  --mono: "IBM Plex Mono", monospace;
  --display: "Roboto Condensed", "Arial Narrow", sans-serif;
  --editorial-body-size: 1.0625rem;
  --editorial-body-line: 1.75;
  --editorial-label-size: .875rem;
  --editorial-section-gap: clamp(48px, 4.5vw, 68px);
  --editorial-opening-height: 100svh;
  --utility-control-inset: clamp(24px, 2.4vw, 34px);
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: var(--ink); color: var(--paper); }
body { font-family: var(--mono); -webkit-font-smoothing: antialiased; }
button, input, textarea { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.grain {
  position: fixed;
  z-index: 80;
  inset: 0;
  pointer-events: none;
  opacity: .065;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

main, .scene { position: absolute; inset: 0; }
.scene { z-index: 0; visibility: hidden; overflow: hidden; opacity: 0; transition: opacity .2s ease; }
.scene.is-active { z-index: 1; visibility: visible; opacity: 1; }
.scene-opening { position: relative; min-height: 100vh; overflow: hidden; }
.lobby-image, .lobby-shade, .scene-image, .scene-shade, .lab-field { position: absolute; inset: 0; }
.lobby-image { z-index: 0; background: url('/assets/elevator-reference-clean.webp') center top / auto 100% no-repeat; filter: contrast(1.03) saturate(.92); }
.lift-cabin-wide { position: absolute; z-index: 1; top: 17.5vh; left: calc(50vw - 27.5vh); width: 55vh; height: 75.25vh; overflow: hidden; background-image: url('/assets/elevator-reference-clean.webp'); background-repeat: no-repeat; background-size: 284.2vh 100vh; background-position: -114.5vh -17.5vh; filter: contrast(1.03) saturate(.92); }
.lobby-shade { z-index: 2; background: linear-gradient(90deg, rgba(0,0,0,.08), transparent 45%, rgba(0,0,0,.08)); pointer-events: none; }
.lobby-shade::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 48.8vh;
  left: calc(50vw - 70.8vh);
  width: 14.8vh;
  height: 10.8vh;
  background: #010101;
  box-shadow: 0 0 1.5vh 1vh #010101;
}
.lobby-shade::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 8.5vh;
  background: linear-gradient(180deg, #010101 0%, #010101 78%, rgba(1,1,1,.94) 88%, transparent 100%);
}
.lift-levels {
  position: absolute;
  z-index: 4;
  top: 31.7vh;
  left: calc(50vw + 27.8vh);
  width: 7.1vh;
  height: 40.1vh;
  display: grid;
  grid-template-rows: repeat(6, 1fr);
  place-items: center;
  padding: 1.4vh 0;
  background: linear-gradient(90deg, #070707, #0a0908 52%, #050505);
  border: 1px solid rgba(174,137,90,.08);
  box-shadow: inset 0 0 2.2vh rgba(0,0,0,.88), 0 0 1.2vh rgba(0,0,0,.76);
}
.lift-levels :is(button, a) {
  width: 100%;
  height: 100%;
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.lift-levels :is(button, a) b {
  width: clamp(30px, 3.2vh, 38px);
  height: clamp(30px, 3.2vh, 38px);
  display: grid;
  place-items: center;
  border: 1px solid rgba(208,168,111,.48);
  border-radius: 50%;
  color: #9f978b;
  background: radial-gradient(circle at 39% 32%, rgba(255,255,255,.065), rgba(7,4,2,.4) 68%);
  box-shadow: inset 0 0 9px rgba(0,0,0,.76), 0 1px rgba(255,255,255,.035);
  font-family: var(--display);
  font-size: clamp(13px, 1.45vh, 17px);
  font-weight: 300;
  line-height: 1;
  transition: border-color .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.lift-levels :is(button, a):hover b,
.lift-levels :is(button, a):focus-visible b,
.lift-levels :is(button, a).is-linked b {
  border-color: rgba(208,168,111,.82);
  color: #ddd1c0;
  transform: translateY(-1px);
}
.lift-levels :is(button, a).is-active b,
.lift-levels :is(button, a).is-selected b {
  border-color: rgba(255,48,34,.92);
  color: var(--red);
  background: radial-gradient(circle, rgba(255,48,34,.18), rgba(3,2,1,.38) 70%);
  box-shadow: 0 0 12px rgba(255,48,34,.44), inset 0 0 8px rgba(255,48,34,.14);
  text-shadow: 0 0 7px rgba(255,48,34,.7);
  transform: none;
}
.ground-positioning {
  position: absolute;
  z-index: 4;
  top: 29vh;
  left: calc(50vw - 73.5vh);
  width: 37vh;
  text-align: center;
}

.scene-image { background-repeat: no-repeat; background-position: center; background-size: cover; filter: contrast(1.06) saturate(.78); }
.scene-image--about { background-image: url('/assets/about-founder-whiteboard.png'); background-position: center; filter: none; }
.scene-image--lab { background-image: url('/assets/lab-workshop-new.png'); filter: none; }
.scene-image--work { background-image: url('/assets/work-with-me-collaboration.png'); background-position: center; filter: none; }
.scene-image--contact { background-image: url('/assets/contact-place-at-table.png'); background-position: center; filter: none; }
.scene-image--rooftop {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #030303 url('/assets/rooftop-after-hours-poster.jpg') center / cover no-repeat;
  filter: none;
}
.rooftop-video--mobile { display: none; }
.scene-shade { background: linear-gradient(90deg, rgba(2,2,2,.96), rgba(2,2,2,.58) 48%, rgba(2,2,2,.18) 70%, rgba(2,2,2,.76)); }

.scene--about { overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #5b3423 #090806; scrollbar-width: thin; }
.scene--about .scene-opening::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(90deg, rgba(3,3,3,.58) 0%, rgba(3,3,3,.18) 32%, transparent 57%);
  pointer-events: none;
}
.about-opening-title {
  position: absolute;
  z-index: 3;
  top: 13vh;
  left: max(142px, 7vw);
  width: min(46vw, 760px);
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(42px, 4.1vw, 68px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .88;
  text-transform: uppercase;
  text-shadow: 0 3px 22px rgba(0,0,0,.7), 0 0 18px rgba(255,48,34,.12);
}
.about-opening-title > span { display: block; }
.about-opening-title__mobile-line { display: none !important; }
.scene-scroll-hint {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: rgba(242,239,232,.72);
  font-size: 12px;
  letter-spacing: .16em;
  transform: translateX(-50%);
  text-shadow: 0 2px 12px #000;
}
.scene-scroll-hint span { width: 1px; height: 28px; background: linear-gradient(var(--red), transparent); animation: story-scroll 1.8s ease-in-out infinite; }
@keyframes story-scroll { 0%, 100% { opacity: .35; transform: scaleY(.55); transform-origin: top; } 50% { opacity: 1; transform: scaleY(1); transform-origin: top; } }

.floor-story {
  position: relative;
  z-index: 5;
  min-height: 100vh;
  padding: clamp(72px, 10vh, 108px) max(6vw, 40px) clamp(82px, 12vh, 120px);
  overflow: hidden;
  color: #d8d1c6;
  background:
    radial-gradient(circle at 82% 9%, rgba(120,68,35,.12), transparent 31%),
    linear-gradient(180deg, #0b0907 0%, #060504 62%, #090705 100%);
  box-shadow: 0 -28px 70px rgba(0,0,0,.65);
}
.story-section {
  position: relative;
  width: min(100%, 800px);
  margin: 0;
  color: #aaa39b;
  font-family: var(--mono);
  font-size: var(--editorial-body-size);
  font-weight: 400;
  line-height: var(--editorial-body-line);
}
.story-section + .story-section { margin-top: var(--editorial-section-gap); }
.story-eyebrow {
  margin: 0 0 24px;
  color: var(--red);
  font-family: var(--mono);
  font-size: var(--editorial-label-size);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 1.5;
}
.story-section p { margin: 0 0 1.1em; }
.story-section p:last-child { margin-bottom: 0; }
.story-lead {
  max-width: 700px;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(28px, 2.6vw, 42px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.05;
}
.story-section--body p:nth-child(2) {
  margin: 1.25em 0;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(26px, 2.2vw, 34px);
  font-weight: 300;
  letter-spacing: -.02em;
  line-height: 1.15;
}
.story-closing-title {
  margin: 0;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(32px, 3vw, 46px);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: .98;
}
.story-lines {
  margin: 22px 0 0;
  padding-left: 1.1em;
  color: #eee8df;
  font-family: var(--mono);
  font-size: var(--editorial-body-size);
  line-height: var(--editorial-body-line);
}
.story-lines li { margin: 8px 0; padding-left: 5px; }
.story-lines li::marker { color: var(--red); }
.next-floor {
  position: relative;
  width: min(100%, 800px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 24px;
  align-items: center;
  margin: clamp(64px, 8vh, 84px) 0 0;
  padding: 27px 0 0;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.2);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.next-floor span { color: #eee8df; font-family: var(--display); font-size: clamp(27px, 2.4vw, 36px); font-weight: 300; line-height: 1.1; }
.next-floor b { grid-row: 1 / span 2; grid-column: 2; color: var(--red); font-size: clamp(28px, 2.8vw, 42px); font-weight: 300; transition: transform .2s ease; }
.next-floor small { grid-column: 1; color: #918a81; font-size: .8125rem; letter-spacing: .06em; }
.next-floor:hover b { transform: translateY(-7px); }

.floor-directory {
  position: fixed;
  z-index: 72;
  top: 33.6vh;
  left: calc(50vw + 37.2vh + clamp(32px, 2.5vw, 50px));
  right: auto;
  width: 37.4vh;
  min-height: 35.4vh;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255,255,255,.16);
  background: #020202;
  box-shadow: 0 20px 60px rgba(0,0,0,.48), inset 0 0 35px rgba(0,0,0,.7);
}
.directory-title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height: 50px;
  margin: 0;
  padding: 0 24px;
  border-bottom: 1px solid var(--line);
  color: var(--red);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .05em;
  text-shadow: 0 0 12px rgba(255,48,34,.22);
}
.directory-list { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 14px 24px 16px; }
.directory-list :is(button, a) {
  width: 100%;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) max-content;
  column-gap: 8px;
  align-items: center;
  min-height: 37px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.directory-list :is(button, a) b { color: #85817a; font-size: 12px; font-weight: 400; transition: color .18s ease; }
.directory-list :is(button, a) span { white-space: nowrap; font-size: 14px; letter-spacing: .025em; transition: color .18s ease; }
.directory-list :is(button, a) em { white-space: nowrap; color: #68645d; font-size: 10px; font-style: normal; transition: color .18s ease; }
.directory-list :is(button, a):hover b,
.directory-list :is(button, a):hover span,
.directory-list :is(button, a).is-linked b,
.directory-list :is(button, a).is-linked span { color: var(--red); }
.directory-list :is(button, a).is-active b, .directory-list :is(button, a).is-active span { color: var(--red); }
.directory-list :is(button, a).is-active em { color: var(--green); }

.floor-directory {
  transition: opacity .25s ease, visibility 0s linear 0s;
}
body:not([data-floor="ground"]) .floor-directory {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, visibility 0s linear .18s;
}
.call-lift {
  position: fixed;
  z-index: 72;
  top: var(--utility-control-inset);
  right: auto;
  bottom: auto;
  left: var(--utility-control-inset);
  width: 72px;
  min-width: 72px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 7px;
  min-height: 70px;
  padding: 0;
  border: 0;
  color: #b7aea1;
  background: transparent;
  box-shadow: none;
  font-size: .6875rem;
  letter-spacing: .1em;
  cursor: pointer;
  opacity: 1;
  transform: translateY(0);
  transition: color .18s ease, opacity .2s ease, transform .2s ease, visibility 0s linear 0s;
}
.call-lift__light { display: none; }
.call-lift > span:nth-child(2) {
  display: block;
  color: #b8b0a6;
  white-space: nowrap;
  text-shadow: 0 2px 10px rgba(0,0,0,.92);
}
.call-lift b {
  order: -1;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(208,168,111,.6);
  border-radius: 50%;
  color: var(--red);
  background: radial-gradient(circle at 38% 30%, rgba(255,255,255,.07), rgba(8,5,3,.9) 68%);
  box-shadow: inset 0 0 12px rgba(0,0,0,.78), 0 0 16px rgba(0,0,0,.52);
  font-family: var(--display);
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-shadow: 0 0 8px rgba(255,48,34,.58);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.call-lift:hover { color: var(--paper); }
.call-lift:hover b { border-color: rgba(255,48,34,.9); box-shadow: inset 0 0 12px rgba(0,0,0,.78), 0 0 14px rgba(255,48,34,.24); }
body[data-floor="ground"] .call-lift {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.room-copy { position: absolute; z-index: 3; top: 18vh; left: 5vw; width: min(67vw, 940px); }
.floor-code { margin: 0 0 24px; color: var(--red); font-size: 9px; letter-spacing: .16em; }
.floor-code .live { display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 12px var(--green); }
:is(h1, :where([data-page-heading])) { margin: 0; font-family: var(--display); font-size: clamp(68px, 8vw, 132px); font-weight: 600; letter-spacing: -.055em; line-height: .82; }
:is(h1, :where([data-page-heading])) em { color: var(--red); font-style: normal; }
.room-lead { margin: 34px 0 0; font-family: var(--display); font-size: clamp(23px, 2.2vw, 34px); font-weight: 300; }
.room-note { max-width: 480px; margin: 18px 0 0; color: #99958f; font-size: 11px; line-height: 1.7; }

.scene--work {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #070503;
  scrollbar-color: #6a3e25 #0a0806;
  scrollbar-width: thin;
}
.work-opening::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(3,3,3,.04) 42%, rgba(3,3,3,.48) 100%),
    linear-gradient(90deg, rgba(3,3,3,.08), transparent 30%, transparent 76%, rgba(3,3,3,.1));
  pointer-events: none;
}
.work-opening-marker {
  position: absolute;
  z-index: 3;
  right: max(42px, 5vw);
  bottom: 42px;
  display: flex;
  align-items: baseline;
  gap: 18px;
  color: #e2d8ca;
  font-size: .75rem;
  letter-spacing: .16em;
  text-shadow: 0 2px 12px rgba(0,0,0,.9);
}
.work-opening-marker strong { color: var(--red); font-weight: 500; }
.work-story {
  position: relative;
  z-index: 5;
  min-height: 100svh;
  padding: clamp(66px, 7vw, 96px) max(6vw, 40px) clamp(92px, 11vw, 140px);
  color: #d8d1c6;
  background:
    radial-gradient(circle at 82% 5%, rgba(145,81,41,.12), transparent 30%),
    linear-gradient(180deg, #0b0806 0%, #050403 62%, #090604 100%);
  box-shadow: 0 -24px 64px rgba(0,0,0,.42);
}
.work-section {
  width: min(100%, 900px);
  margin: 0;
}
.work-section + .work-section { margin-top: clamp(60px, 6vw, 86px); }
.work-story-title {
  width: min(100%, 980px);
  margin: 0 0 clamp(52px, 5vw, 70px);
  color: #eee8df;
  font-size: clamp(48px, 4.3vw, 68px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .88;
  text-transform: uppercase;
}
.work-story-title span { display: block; white-space: nowrap; }
.work-label {
  margin: 0 0 24px;
  color: var(--red);
  font-size: var(--editorial-label-size);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 1.5;
}
.work-lead {
  max-width: 760px;
  margin: 0 0 28px;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(31px, 3vw, 46px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.06;
}
.work-prose {
  max-width: 800px;
  color: #aaa39b;
  font-family: var(--mono);
  font-size: var(--editorial-body-size);
  line-height: var(--editorial-body-line);
}
.work-prose p { margin: 0 0 1.1em; }
.work-prose p:last-child { margin-bottom: 0; }
.work-emphasis,
.work-prose .work-emphasis {
  margin-top: 30px;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(31px, 2.8vw, 43px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.08;
}
.work-capabilities { max-width: 820px; }
.work-capability + .work-capability { margin-top: clamp(48px, 5vw, 68px); }
.work-capability > span {
  display: block;
  margin-bottom: 9px;
  color: var(--red);
  font-size: .8125rem;
  letter-spacing: .14em;
}
.work-capability h2 {
  margin: 0 0 24px;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: .96;
  text-transform: uppercase;
}
.work-question,
.work-prose .work-question {
  margin-top: 28px;
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(29px, 2.7vw, 41px);
  font-weight: 300;
  letter-spacing: -.02em;
  line-height: 1.18;
}
.work-useful-list {
  max-width: 840px;
  margin: 0;
  padding: 0;
  color: #d3ccc2;
  font-family: var(--display);
  font-size: clamp(27px, 2.6vw, 39px);
  font-weight: 300;
  letter-spacing: -.02em;
  line-height: 1.12;
  list-style: none;
}
.work-useful-list li { position: relative; margin: 0 0 22px; padding-left: 26px; }
.work-useful-list li:last-child { margin-bottom: 0; }
.work-useful-list li::before { content: "-"; position: absolute; top: 0; left: 0; color: var(--red); font-family: var(--mono); }
.work-process { max-width: 980px; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.2); list-style: none; }
.work-process li {
  display: grid;
  grid-template-columns: 56px minmax(230px, .72fr) minmax(300px, 1fr);
  gap: 22px;
  align-items: center;
  min-height: 96px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.work-process b { color: var(--red); font-size: .8125rem; font-weight: 400; }
.work-process span { color: #eee8df; font-family: var(--display); font-size: clamp(24px, 2.3vw, 34px); line-height: 1.05; }
.work-process small { color: #aaa39b; font-size: 1rem; line-height: 1.6; }
.work-section--model .work-lead { margin-bottom: 22px; }
.work-section--closing { width: min(100%, 980px); }
.work-contact-cta {
  width: min(100%, 820px);
  display: block;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.work-contact-heading {
  display: block;
  margin-bottom: 24px;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(52px, 5.4vw, 78px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .9;
  text-transform: uppercase;
}
.work-contact-title {
  display: block;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(28px, 2.6vw, 38px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.1;
}
.work-contact-action {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 300;
  white-space: nowrap;
}
.work-contact-action b { color: var(--red); font-size: 1.45em; font-weight: 300; transition: transform .2s ease; }
.work-contact-cta:hover .work-contact-action { color: #eee8df; }
.work-contact-cta:hover .work-contact-action b { transform: translateY(-6px); }

.scene--contact {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #070503;
  scrollbar-color: #6a3e25 #0a0806;
  scrollbar-width: thin;
}
.contact-opening::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(3,3,3,.02) 45%, rgba(3,3,3,.48) 100%),
    linear-gradient(90deg, rgba(3,3,3,.08), transparent 28%, transparent 76%, rgba(3,3,3,.08));
  pointer-events: none;
}
.contact-opening-marker {
  position: absolute;
  z-index: 3;
  right: max(42px, 5vw);
  bottom: 42px;
  display: flex;
  align-items: baseline;
  gap: 18px;
  color: #e2d8ca;
  font-size: .75rem;
  letter-spacing: .16em;
  text-shadow: 0 2px 12px rgba(0,0,0,.9);
}
.contact-opening-marker strong { color: var(--red); font-weight: 500; }
.contact-story {
  position: relative;
  z-index: 5;
  min-height: 100svh;
  padding: clamp(66px, 7vw, 96px) max(6vw, 40px) clamp(92px, 11vw, 140px);
  color: #d8d1c6;
  background:
    radial-gradient(circle at 82% 7%, rgba(145,81,41,.12), transparent 30%),
    linear-gradient(180deg, #0b0806 0%, #050403 72%, #090604 100%);
  box-shadow: 0 -24px 64px rgba(0,0,0,.42);
}
.contact-intro { width: min(100%, 900px); }
.contact-label {
  margin: 0 0 24px;
  color: var(--red);
  font-size: var(--editorial-label-size);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 1.5;
}
.contact-intro :is(h1, :where([data-page-heading])) {
  width: min(100%, 920px);
  color: #eee8df;
  font-size: clamp(54px, 5.6vw, 86px);
  letter-spacing: -.05em;
  line-height: .88;
  text-transform: uppercase;
}
.contact-lead {
  max-width: 760px;
  margin: 42px 0 0;
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(29px, 2.8vw, 42px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.08;
}
.contact-copy {
  max-width: 720px;
  margin: 24px 0 0;
  color: #aaa39b;
  font-size: var(--editorial-body-size);
  line-height: var(--editorial-body-line);
}
.contact-form {
  width: min(100%, 820px);
  margin-top: clamp(64px, 7vw, 92px);
}
.contact-field {
  position: relative;
  display: block;
  margin-bottom: 38px;
  border-bottom: 1px solid rgba(255,255,255,.2);
  transition: border-color .18s ease;
}
.contact-field:focus-within { border-color: var(--red); }
.contact-field > span {
  display: block;
  margin-bottom: 12px;
  color: var(--red);
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .16em;
  line-height: 1.5;
}
.contact-field input,
.contact-field textarea {
  width: 100%;
  display: block;
  padding: 5px 0 17px;
  border: 0;
  outline: 0;
  color: #eee8df;
  background: transparent;
  font-family: var(--display);
  font-size: clamp(25px, 2.2vw, 34px);
  font-weight: 300;
  line-height: 1.2;
}
.contact-field textarea {
  min-height: 150px;
  resize: vertical;
}
.contact-field textarea::placeholder { color: #6f6a64; opacity: 1; }
.contact-field input:focus-visible,
.contact-field textarea:focus-visible { outline: 0; }
.contact-submit {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-top: 8px;
  padding: 0;
  border: 0;
  color: var(--red);
  background: transparent;
  font-family: var(--display);
  font-size: clamp(26px, 2.5vw, 36px);
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}
.contact-submit b { font-size: 1.42em; font-weight: 300; transition: transform .2s ease; }
.contact-submit:hover { color: #eee8df; }
.contact-submit:hover b { color: var(--red); transform: translateY(-6px); }
.contact-form-note {
  margin: 17px 0 0;
  color: #77716a;
  font-size: .8125rem;
  line-height: 1.55;
}
.contact-direct {
  width: min(100%, 820px);
  margin-top: clamp(64px, 7vw, 92px);
}
.contact-direct p {
  margin: 0 0 18px;
  color: #77716a;
  font-size: .8125rem;
  letter-spacing: .16em;
  line-height: 1.5;
}
.contact-direct a {
  color: #eee8df;
  font-family: var(--display);
  font-size: clamp(27px, 2.6vw, 39px);
  font-weight: 300;
  letter-spacing: -.02em;
  line-height: 1.1;
  text-decoration: none;
}
.contact-direct a span { color: var(--red); }
.contact-direct a:hover { color: var(--red); }

.scene--lab {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #050403;
  scrollbar-color: #5b3423 #090806;
  scrollbar-width: thin;
}
.lab-view[hidden] { display: none; }
.editorial-opening,
.lab-opening {
  position: relative;
  min-height: 0;
  height: var(--editorial-opening-height);
  overflow: hidden;
  background: #050403;
}
.lab-opening::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(180deg, rgba(2,2,2,.05) 45%, rgba(2,2,2,.78) 100%);
  pointer-events: none;
}
.lab-opening-marker {
  position: absolute;
  z-index: 3;
  right: max(42px, 5vw);
  bottom: 42px;
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding-top: 0;
  color: #c9c1b7;
  font-size: 10px;
  letter-spacing: .16em;
}
.lab-opening-marker strong { color: var(--red); font-weight: 500; }
.lab-index {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(480px, 1.1fr);
  gap: clamp(64px, 9vw, 150px);
  align-items: start;
  padding: clamp(56px, 5vw, 76px) max(48px, 7vw) clamp(110px, 13vw, 190px);
  background:
    radial-gradient(circle at 12% 4%, rgba(91,45,22,.2), transparent 34%),
    linear-gradient(180deg, #080604, #030303 72%);
}
.lab-kicker,
.lab-section-label {
  margin: 0 0 24px;
  color: var(--red);
  font-size: var(--editorial-label-size);
  font-weight: 500;
  letter-spacing: .18em;
  line-height: 1.5;
}
.lab-index :is(h1, :where([data-page-heading])) {
  font-size: clamp(72px, 8.2vw, 130px);
  line-height: .78;
}
.lab-index-lead {
  max-width: 620px;
  margin: 44px 0 0;
  font-family: var(--display);
  font-size: clamp(28px, 2.6vw, 42px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.05;
}
.lab-index-copy {
  max-width: 660px;
  margin: 28px 0 0;
  color: #aaa39b;
  font-size: var(--editorial-body-size);
  line-height: var(--editorial-body-line);
}
.lab-index-note { margin: 42px 0 0; color: #8b857d; font-size: .8125rem; letter-spacing: .06em; }
.lab-experiment-list { border-top: 1px solid rgba(255,255,255,.25); }
.lab-experiment {
  width: 100%;
  min-height: 132px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 170px 24px;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.17);
  color: var(--paper);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background .2s ease, padding .2s ease;
}
.lab-experiment:hover { padding-right: 14px; padding-left: 14px; background: rgba(255,255,255,.035); }
.lab-experiment-number { color: var(--red); font-size: .8125rem; }
.lab-experiment-name { font-family: var(--display); font-size: clamp(28px, 2.35vw, 40px); font-weight: 400; letter-spacing: -.025em; line-height: 1; }
.lab-experiment-status { color: #9a948c; font-size: .8125rem; line-height: 1.5; text-transform: uppercase; }
.lab-experiment-arrow { justify-self: end; color: var(--red); font-size: 20px; }

.lab-case { min-height: 100%; background: linear-gradient(180deg, #080604, #030303 26%); }
.lab-case-shell { width: min(1180px, calc(100% - 112px)); margin: 0 auto; padding: 44px 0 110px; }
.lab-back,
.lab-case-footer :is(button, a) {
  padding: 0;
  border: 0;
  color: #a39c93;
  background: transparent;
  font-size: .8125rem;
  letter-spacing: .14em;
  cursor: pointer;
}
.lab-back:hover,
.lab-case-footer :is(button, a):hover { color: var(--red); }
.lab-case-header { padding: clamp(46px, 4.5vw, 68px) 0 clamp(48px, 4.5vw, 68px); }
.lab-case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-bottom: 30px;
  color: #7d7770;
  font-size: .8125rem;
  letter-spacing: .13em;
}
.lab-case-meta span:first-child { color: var(--red); }
.lab-case-header :is(h1, :where([data-page-heading])) {
  max-width: 1000px;
  font-size: clamp(76px, 9.7vw, 154px);
  line-height: .77;
}
.lab-case-question {
  max-width: 840px;
  margin: 42px 0 0;
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(33px, 4.2vw, 62px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}
.lab-case-section {
  padding: clamp(48px, 4.5vw, 68px) 0;
}
.lab-case-section h2:not(.lab-section-label) {
  max-width: 900px;
  margin: 0 0 30px;
  font-family: var(--display);
  font-size: clamp(38px, 4vw, 60px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: .94;
}
.lab-two-column { display: block; }
.lab-two-column .lab-section-label { margin: 0 0 28px; }
.lab-prose { max-width: 800px; color: #aaa39b; font-family: var(--mono); font-size: var(--editorial-body-size); font-weight: 400; line-height: var(--editorial-body-line); }
.lab-prose--wide { max-width: 800px; }
.lab-prose p { margin: 0 0 1.1em; }
.lab-prose p:last-child { margin-bottom: 0; }
.lab-pull {
  color: var(--paper);
  font-family: var(--display);
  font-size: clamp(32px, 3.1vw, 47px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.12;
}
.lab-closing-line {
  padding-top: 18px;
  color: var(--red);
  font-family: var(--display);
  font-size: clamp(30px, 2.8vw, 43px);
  font-weight: 300;
  letter-spacing: -.025em;
  line-height: 1.12;
}
.lab-brief blockquote,
.lab-statement {
  max-width: 980px;
  margin: 0;
  color: var(--paper);
  font-family: var(--display);
  font-size: clamp(45px, 5.7vw, 86px);
  font-weight: 300;
  letter-spacing: -.04em;
  line-height: .98;
}
.lab-workflow { margin: 40px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.2); list-style: none; }
.lab-workflow li {
  display: grid;
  grid-template-columns: 56px minmax(260px, .72fr) minmax(300px, 1fr);
  gap: 22px;
  align-items: center;
  min-height: 96px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.lab-workflow b { color: var(--red); font-size: .8125rem; font-weight: 400; }
.lab-workflow span { font-family: var(--display); font-size: clamp(23px, 2.2vw, 33px); line-height: 1.05; }
.lab-workflow small { color: #aaa39b; font-size: 1rem; line-height: 1.6; }
.lab-statement { margin-top: 52px; color: var(--red); }
.lab-principles { max-width: 980px; display: flex; flex-direction: column; gap: 28px; }
.lab-principles > div { display: grid; grid-template-columns: 48px minmax(180px, 250px) minmax(0, 1fr); gap: 24px; align-items: start; padding: 0; }
.lab-principles b { color: var(--red); font-size: .8125rem; font-weight: 400; line-height: 2; }
.lab-principles h3 { margin: 0; font-family: var(--display); font-size: 30px; font-weight: 400; line-height: 1.05; }
.lab-principles p { margin: 0; color: #aaa39b; font-size: 1rem; line-height: 1.65; }
.lab-principles--recommendation > div { grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); }
.lab-sample { padding-right: clamp(32px, 5vw, 76px); padding-left: clamp(32px, 5vw, 76px); background: #0c0907; border: 1px solid rgba(196,151,92,.22); }
.lab-sample-meta { display: flex; flex-wrap: wrap; gap: 12px 24px; color: #a39c93; font-size: .8125rem; letter-spacing: .1em; }
.lab-sample-meta span:nth-child(2),
.lab-sample-meta span:nth-child(3) { color: var(--red); }
.lab-sample h2:not(.lab-section-label) { margin-top: 58px; }
.lab-sample-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px 80px; }
.lab-sample-grid h3 { margin: 0 0 14px; color: var(--red); font-size: .875rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.lab-sample-grid p { margin: 0; color: #bbb4ab; font-size: 1rem; line-height: 1.7; }
.lab-inline-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 42px; }
.lab-inline-list span { padding: 0; color: #b8b1a8; font-family: var(--mono); font-size: .8125rem; letter-spacing: .12em; }
.lab-inline-list span + span::before { content: "/"; margin-right: 9px; color: var(--red); }
.lab-case-footer { display: flex; justify-content: space-between; gap: 30px; padding-top: 36px; }
.lab-case-footer :is(button, a):last-child { color: var(--paper); text-align: right; }

/* The door assembly fills the complete bronze-framed opening. */
.lift-doors { position: fixed; z-index: 100; top: 17.5vh; left: calc(50vw - 27.5vh); width: 55vh; height: 75.25vh; overflow: hidden; visibility: hidden; pointer-events: none; box-shadow: inset 0 0 24px rgba(0,0,0,.82); transition: top .3s ease, left .3s ease, width .3s ease, height .3s ease, box-shadow .3s ease; }
.lift-doors.is-fullscreen { top: 0; left: 0; width: 100vw; height: 100vh; box-shadow: none; }
.door {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50.2%;
  overflow: hidden;
  background-color: #251a0d;
  background-image:
    linear-gradient(180deg, rgba(4,2,1,.18) 0%, rgba(4,2,1,.025) 19%, rgba(200,157,105,.018) 48%, rgba(3,2,1,.12) 78%, rgba(2,1,0,.38) 100%),
    repeating-linear-gradient(0deg, rgba(241,221,175,.02) 0, rgba(241,221,175,.02) 1px, rgba(0,0,0,.018) 2px, transparent 3px),
    linear-gradient(90deg, #1b1309 0%, #251a0d 15%, #4b351e 33%, #87623b 47%, #b38959 55%, #87623b 63%, #4b351e 77%, #251a0d 91%, #1b1309 100%);
  background-size: 100% 100%;
  background-position: center;
  box-shadow: inset 0 0 5vh rgba(5,3,1,.34), inset 0 1px rgba(200,157,105,.12);
  transition: transform 1.25s cubic-bezier(.58,0,.18,1);
}
.door::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,231,174,.012), transparent 28%, rgba(0,0,0,.045)); }
.door span { position: absolute; top: 0; bottom: 0; width: 1px; background: #b38959; box-shadow: 0 0 4px rgba(179,137,89,.26); }
.door--left { left: 0; transform: translateX(-102%); border-right: 0; }
.door--left span { right: 0; }
.door--right {
  right: 0;
  transform: translateX(102%);
  border-left: 0;
  background-image:
    linear-gradient(180deg, rgba(4,2,1,.18) 0%, rgba(4,2,1,.025) 19%, rgba(200,157,105,.018) 48%, rgba(3,2,1,.12) 78%, rgba(2,1,0,.38) 100%),
    repeating-linear-gradient(0deg, rgba(241,221,175,.02) 0, rgba(241,221,175,.02) 1px, rgba(0,0,0,.018) 2px, transparent 3px),
    linear-gradient(90deg, #1b1309 0%, #251a0d 9%, #4b351e 23%, #87623b 37%, #b38959 45%, #87623b 53%, #4b351e 67%, #251a0d 85%, #1b1309 100%);
}
.door--right span { left: 0; }
.lift-doors.is-active { visibility: visible; }
.lift-doors.is-closing .door { transform: translateX(0); transition-duration: .85s; }
.lift-doors.is-opening .door { transition-duration: 1.45s; }
.lift-doors.is-opening .door--left { transform: translateX(-102%); }
.lift-doors.is-opening .door--right { transform: translateX(102%); }
.lift-doors.is-fullscreen.is-opening .door { transition-duration: .78s; }
.lift-doors.is-intro .travel-display { display: none; }
:is(.mobile-lift-ui, .mobile-entrance-ui),
:is(.mobile-floor-indicator, .mobile-entrance-indicator),
.travel-destination,
.mobile-ground-intro,
.mobile-ground-reveal,
.mobile-door-stage { display: none; }
.travel-display { position: absolute; z-index: 2; top: 50%; left: 50%; display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 15px 24px; border: 1px solid #050505; background: #020202; opacity: 0; transform: translate(-50%,-50%); transition: opacity .2s .5s; box-shadow: 0 0 40px #000; }
.lift-doors.is-closing .travel-display { opacity: 1; }
.travel-display small { color: #555; font-size: 7px; letter-spacing: .15em; }
.travel-display strong { color: var(--red); font-size: 33px; font-weight: 400; text-shadow: 0 0 18px var(--red); }
.travel-display div { display: flex; gap: 5px; }
.travel-display div i { width: 4px; height: 4px; border-radius: 50%; background: #333; }
.lift-doors.is-travelling .travel-display div i { animation: travel-dot .75s infinite; }
.lift-doors.is-travelling .travel-display div i:nth-child(2) { animation-delay: .15s; }
.lift-doors.is-travelling .travel-display div i:nth-child(3) { animation-delay: .3s; }
@keyframes travel-dot { 50% { background: var(--red); box-shadow: 0 0 8px var(--red); } }

@media (max-width: 1050px) {
  .floor-directory { top: 30vh; left: auto; right: 16px; width: 310px; max-width: calc(100vw - 32px); min-width: 0; min-height: 40vh; }
  .room-copy { width: calc(100vw - 320px); }
  .ground-positioning { top: 24vh; left: 20px; width: min(310px, calc(100vw - 360px)); }
  .floor-story { padding-right: 6vw; padding-left: 6vw; }
  .lab-index { grid-template-columns: 1fr; }
  .lab-experiment-list { margin-top: 20px; }
}

@media (min-width: 761px) and (max-width: 900px) {
  .floor-story { padding-top: clamp(64px, 9vh, 86px); }
}

@media (max-height: 720px) and (min-width: 761px) {
  .floor-story { padding-top: 58px; padding-bottom: 68px; }
}

@media (max-width: 760px) {
  .rooftop-video--desktop { display: none; }
  .scene-image--rooftop.rooftop-video--mobile { display: block; }
  .scene { overflow-y: auto; padding-bottom: 220px; }
  .scene--ground { overflow: hidden; padding-bottom: 0; }
  .scene-opening { min-height: 100svh; }
  .scene--about .scene-opening::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -24px;
    background: url('/assets/about-founder-whiteboard.png') 58% center / cover no-repeat;
    filter: blur(18px) brightness(.42) saturate(.72);
    transform: scale(1.06);
  }
  .scene--about .scene-image--about {
    z-index: 1;
    background-position: 58% center;
    background-size: 195% auto;
  }
  .lobby-image {
    inset: auto;
    top: 50%;
    left: 50%;
    width: max(100vw, calc(100svh * .44949));
    height: max(100svh, calc(100vw * 2.22474));
    background: url('/assets/mobile-ground-open-v39.png') center / 100% 100% no-repeat;
    background: image-set(url('/assets/mobile-ground-open-v39-420.webp') 1x, url('/assets/mobile-ground-open-v39-640.webp') 1.5x, url('/assets/mobile-ground-open-v39-841.webp') 2x) center / 100% 100% no-repeat;
    filter: none;
    transform: translate(-50%, -50%);
  }
  .lift-cabin-wide,
  .lobby-shade,
  .lift-levels { display: none; }
  .mobile-ground-intro {
    position: fixed; z-index: 104; inset: 0; display: block;
    background: #030303; opacity: 1; pointer-events: none;
    transition: opacity .15s ease;
  }
  body.mobile-intro-opening .mobile-ground-intro { opacity: 0; }
  .mobile-ground-base { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .mobile-ground-reveal {
    position: fixed; z-index: 103; inset: 0; display: block;
    opacity: 1; pointer-events: none;
  }
  body:not(.is-entering) :is(.mobile-ground-intro, .mobile-ground-reveal),
  body:not([data-floor="ground"]) :is(.mobile-ground-intro, .mobile-ground-reveal) { display: none; }
  /* Crossfade the animated scene over a continuously painted initial image. */
  .mobile-ground-reveal::before {
    content: ""; position: absolute; top: 50%; left: 50%;
    width: max(100vw, calc(100svh * .44949));
    height: max(100svh, calc(100vw * 2.22474));
    transform: translate(-50%, -50%);
    background: image-set(url('/assets/mobile-ground-open-v39-420.webp') 1x, url('/assets/mobile-ground-open-v39-640.webp') 1.5x, url('/assets/mobile-ground-open-v39-841.webp') 2x) center / 100% 100% no-repeat;
  }
  .mobile-ground-reveal::after {
    content: ""; position: absolute; inset: 0; opacity: .065;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  }
  /* This wrapper stays full-screen on mobile. Only its child doors move. */
  .lift-doors { transition: none; }
  .mobile-door-stage {
    position: fixed;
    z-index: 101;
    top: calc(50% + max(3.34svh, 7.43vw));
    left: calc(50% - max(3.45svh, 7.67vw));
    width: max(68.5vw, 30.79svh);
    height: max(70.76svh, 157.42vw);
    display: block;
    visibility: visible;
    overflow: hidden;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }
  body:not(.is-entering) .mobile-door-stage,
  body:not([data-floor="ground"]) .mobile-door-stage {
    visibility: hidden;
  }
  .mobile-door-panel {
    position: absolute;
    inset: 0;
    overflow: hidden;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    backface-visibility: hidden;
  }
  .mobile-door-panel--left { clip-path: inset(0 50% 0 0); }
  .mobile-door-panel--right { clip-path: inset(0 0 0 50%); }
  .mobile-door-panel::before {
    content: "";
    background: image-set(url('/assets/mobile-ground-closed-door-420.webp') 1x, url('/assets/mobile-ground-closed-door-640.webp') 1.5x, url('/assets/mobile-ground-closed-door-864.webp') 2x) center / 100% 100% no-repeat;
    position: absolute;
    top: -57.75%;
    left: -37.25%;
    width: 174.9%;
    height: 188.12%;
    max-width: none;
    object-fit: fill;
    user-select: none;
    pointer-events: none;
  }
  .mobile-door-stage.is-open .mobile-door-panel--left,
  .mobile-door-stage.is-opening-fallback .mobile-door-panel--left {
    transform: translate3d(-50.5%, 0, 0);
  }
  .mobile-door-stage.is-open .mobile-door-panel--right,
  .mobile-door-stage.is-opening-fallback .mobile-door-panel--right {
    transform: translate3d(50.5%, 0, 0);
  }
  .mobile-door-stage.is-opening-fallback .mobile-door-panel {
    transition: transform .65s cubic-bezier(.76, 0, .24, 1);
  }
  .floor-directory { display: none; }
  :is(.mobile-lift-ui, .mobile-entrance-ui) {
    position: fixed;
    z-index: 72;
    top: 50%;
    left: 50%;
    width: max(100vw, calc(100svh * .44949));
    height: max(100svh, calc(100vw * 2.22474));
    display: block;
    opacity: 1;
    transform: translate(-50%, -50%);
    pointer-events: none;
    transition: opacity .15s ease, visibility 0s linear 0s;
  }
  body:not([data-floor="ground"]) :is(.mobile-lift-ui, .mobile-entrance-ui) {
    visibility: hidden;
    opacity: 0;
  }
  .mobile-lift-controls {
    position: absolute;
    top: 29.2%;
    left: 75.6%;
    width: 16.1%;
    height: 43.8%;
    display: grid;
    grid-template-rows: repeat(6, 1fr);
    opacity: 1;
    pointer-events: auto;
    transition: opacity .18s ease, visibility 0s linear 0s;
  }
  .mobile-lift-controls :is(button, a) {
    min-width: 44px;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0;
    border: 0;
    color: #8f877b;
    background: transparent;
    cursor: pointer;
  }
  .mobile-lift-controls :is(button, a) b {
    width: clamp(28px, 7.1vw, 34px);
    height: clamp(28px, 7.1vw, 34px);
    display: grid;
    place-items: center;
    border: 1px solid rgba(208,168,111,.54);
    border-radius: 50%;
    color: #aea497;
    background: radial-gradient(circle at 39% 32%, rgba(255,255,255,.07), rgba(7,4,2,.38) 68%);
    box-shadow: inset 0 0 8px rgba(0,0,0,.72), 0 1px rgba(255,255,255,.04);
    font-family: var(--display);
    font-size: clamp(11px, 2.9vw, 14px);
    font-weight: 300;
    line-height: 1;
  }
  .mobile-lift-controls :is(button, a) span {
    color: #968c7d;
    font-size: clamp(6.5px, 1.75vw, 8px);
    letter-spacing: .02em;
    line-height: 1.08;
    text-align: center;
    white-space: nowrap;
  }
  .mobile-lift-controls :is(button, a).is-active b,
  .mobile-lift-controls :is(button, a).is-selected b {
    border-color: rgba(255,48,34,.92);
    color: var(--red);
    background: radial-gradient(circle, rgba(255,48,34,.18), rgba(3,2,1,.38) 70%);
    box-shadow: 0 0 12px rgba(255,48,34,.44), inset 0 0 8px rgba(255,48,34,.14);
    text-shadow: 0 0 7px rgba(255,48,34,.7);
  }
  .mobile-lift-controls :is(button, a).is-active span,
  .mobile-lift-controls :is(button, a).is-selected span {
    color: var(--red);
    text-shadow: 0 0 7px rgba(255,48,34,.35);
  }
  .room-copy { position: relative; inset: auto; width: auto; min-height: calc(100vh - 210px); padding: 43vh 18px 250px; }
  :is(h1, :where([data-page-heading])) { font-size: clamp(52px, 17vw, 78px); }
  .room-lead { margin-top: 24px; font-size: 22px; }
  .room-note { font-size: 10px; }
  .work-steps { width: 100%; }
  .scene--about { padding-bottom: 0; overflow-x: hidden; overflow-y: auto; scroll-padding-top: 68px; }
  .scene--about .scene-opening {
    min-height: 0;
    height: clamp(370px, 52svh, 480px);
  }
  .scene--about .scene-opening::before { background-position: 58% center; }
  .scene--about .scene-opening::after {
    background: linear-gradient(180deg, rgba(3,3,3,.08) 42%, rgba(3,3,3,.78) 100%);
  }
  .scene--about .scene-image--about { background-size: 195% auto; }
  .about-opening-title {
    top: auto;
    right: 18px;
    bottom: 22px;
    left: 18px;
    width: auto;
    font-size: clamp(34px, 9.6vw, 42px);
    line-height: .94;
  }
  .about-opening-title__desktop-line { display: none !important; }
  .about-opening-title__mobile-line { display: block !important; }
  .scene--about .scene-scroll-hint { display: none; }
  .scene--lab .scene-scroll-hint { display: none; }
  .scene--contact { padding-bottom: 0; overflow-x: hidden; overflow-y: auto; }
  .scene--rooftop { padding-bottom: 0; overflow: hidden; }
  .scene--work { padding-bottom: 0; overflow-x: hidden; overflow-y: auto; }
  .scene-image--about, .scene-image--contact, .scene-image--rooftop { background-position: center; }
  .scene--lab { padding-bottom: 0; }
  .editorial-opening,
  .lab-opening { min-height: 0; height: clamp(390px, 58svh, 540px); }
  .lab-opening .scene-image--lab { background-position: 61% center; }
  .lab-opening::after { background: linear-gradient(180deg, transparent 44%, rgba(2,2,2,.78) 100%); }
  .lab-opening-marker {
    right: 18px;
    bottom: 18px;
    left: 18px;
    justify-content: flex-end;
    padding-top: 0;
    font-size: 8px;
  }
  .lab-index {
    min-height: 0;
    display: block;
    padding: 60px 20px 92px;
  }
  .lab-index :is(h1, :where([data-page-heading])) { font-size: clamp(57px, 18.5vw, 82px); line-height: .8; }
  .lab-index-lead { margin-top: 34px; font-size: clamp(29px, 8.2vw, 36px); }
  .lab-index-copy { margin-top: 22px; }
  .lab-index-note { margin-top: 30px; font-size: .75rem; }
  .lab-experiment-list { margin-top: 52px; }
  .lab-experiment {
    min-height: 116px;
    grid-template-columns: 34px minmax(0, 1fr) 18px;
    gap: 12px;
    padding: 20px 0;
  }
  .lab-experiment:hover { padding-right: 0; padding-left: 0; background: transparent; }
  .lab-experiment-name { font-size: clamp(27px, 7.6vw, 34px); }
  .lab-experiment-status { grid-column: 2; margin-top: -4px; font-size: .75rem; }
  .lab-experiment-arrow { grid-column: 3; grid-row: 1 / span 2; }
  .lab-case-shell { width: auto; margin: 0; padding: 82px 20px 72px; }
  .lab-back { margin-top: 2px; }
  .lab-case-header { padding: 52px 0 48px; }
  .lab-case-meta { display: grid; gap: 8px; margin-bottom: 26px; font-size: .75rem; }
  .lab-case-header :is(h1, :where([data-page-heading])) { font-size: clamp(57px, 17.5vw, 78px); line-height: .8; }
  .lab-case-question { margin-top: 34px; font-size: clamp(34px, 9.3vw, 42px); line-height: .98; }
  .lab-case-section { padding: 44px 0; }
  .lab-case-section h2:not(.lab-section-label) { margin-bottom: 30px; font-size: clamp(36px, 10vw, 46px); }
  .lab-two-column { display: block; }
  .lab-two-column .lab-section-label { margin-bottom: 25px; }
  .lab-prose { font-size: var(--editorial-body-size); line-height: var(--editorial-body-line); }
  .lab-pull { font-size: clamp(30px, 8.5vw, 38px); }
  .lab-closing-line { font-size: clamp(29px, 8vw, 36px); }
  .lab-brief blockquote,
  .lab-statement { font-size: clamp(41px, 11.5vw, 54px); }
  .lab-workflow { margin-top: 30px; }
  .lab-workflow li {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px 14px;
    min-height: 0;
    padding: 23px 0;
  }
  .lab-workflow span { font-size: clamp(23px, 6.8vw, 29px); }
  .lab-workflow small { grid-column: 2; font-size: .9375rem; line-height: 1.6; }
  .lab-statement { margin-top: 42px; }
  .lab-principles,
  .lab-principles--recommendation { gap: 30px; }
  .lab-principles > div,
  .lab-principles > div + div {
    display: block;
    min-height: 0;
    padding: 0;
    border: 0;
  }
  .lab-principles h3,
  .lab-principles--recommendation h3 { margin: 8px 0 12px; font-size: 27px; }
  .lab-principles p { font-size: .9375rem; }
  .lab-sample { margin-right: -20px; margin-left: -20px; padding: 44px 20px; border-right: 0; border-left: 0; }
  .lab-sample h2:not(.lab-section-label) { margin-top: 42px; }
  .lab-sample-grid { grid-template-columns: 1fr; gap: 32px; }
  .lab-inline-list { gap: 7px; margin-top: 32px; }
  .lab-case-footer { align-items: flex-end; padding-top: 32px; }
  .lab-case-footer :is(button, a) { max-width: 48%; font-size: .75rem; line-height: 1.55; }
  .work-opening {
    min-height: 0;
    height: clamp(490px, 64svh, 590px);
  }
  .work-opening .scene-image--work { background-position: center center; }
  .work-opening::after {
    background: linear-gradient(180deg, rgba(3,3,3,.04) 40%, rgba(3,3,3,.58) 100%);
  }
  .work-opening-marker {
    right: 18px;
    bottom: 18px;
    left: 18px;
    justify-content: flex-end;
    gap: 13px;
    font-size: .5rem;
  }
  .scene--work .scene-scroll-hint { display: none; }
  .work-story { padding: 56px 20px 88px; }
  .work-section { width: 100%; }
  .work-section + .work-section { margin-top: 58px; }
  .work-story-title { margin-bottom: 46px; font-size: clamp(42px, 12vw, 54px); line-height: .88; }
  .work-story-title span { white-space: normal; }
  .work-label { margin-bottom: 20px; }
  .work-lead { margin-bottom: 23px; font-size: clamp(29px, 8.2vw, 36px); }
  .work-prose { font-size: var(--editorial-body-size); line-height: var(--editorial-body-line); }
  .work-emphasis,
  .work-prose .work-emphasis { margin-top: 25px; font-size: clamp(29px, 8vw, 36px); }
  .work-capability + .work-capability { margin-top: 52px; }
  .work-capability h2 { margin-bottom: 20px; font-size: clamp(37px, 10.5vw, 46px); }
  .work-question,
  .work-prose .work-question { margin-top: 24px; font-size: clamp(29px, 8vw, 36px); }
  .work-useful-list { font-size: clamp(27px, 7.7vw, 34px); }
  .work-useful-list li { margin-bottom: 20px; padding-left: 23px; }
  .work-process li {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px 14px;
    min-height: 0;
    padding: 23px 0;
  }
  .work-process span { font-size: clamp(24px, 7vw, 30px); }
  .work-process small { grid-column: 2; font-size: .9375rem; line-height: 1.6; }
  .work-contact-cta {
    width: 100%;
    padding: 0;
  }
  .work-contact-heading {
    margin-bottom: 20px;
    font-size: clamp(44px, 12vw, 56px);
    line-height: .9;
  }
  .work-contact-title { font-size: clamp(27px, 7vw, 32px); line-height: 1.1; }
  .work-contact-action {
    margin-top: 20px;
    font-size: 24px;
  }
  .contact-opening {
    min-height: 0;
    height: clamp(440px, 62svh, 560px);
  }
  .contact-opening .scene-image--contact { background-position: center center; }
  .contact-opening::after { background: linear-gradient(180deg, rgba(3,3,3,.02) 42%, rgba(3,3,3,.62) 100%); }
  .contact-opening-marker {
    right: 18px;
    bottom: 18px;
    left: 18px;
    justify-content: flex-end;
    gap: 13px;
    font-size: .5rem;
  }
  .scene--contact .scene-scroll-hint { display: none; }
  .contact-story { min-height: 0; padding: 56px 20px 88px; }
  .contact-label { margin-bottom: 20px; }
  .contact-intro :is(h1, :where([data-page-heading])) { font-size: clamp(45px, 13vw, 60px); line-height: .88; }
  .contact-lead { margin-top: 32px; font-size: clamp(28px, 8vw, 35px); }
  .contact-copy { margin-top: 21px; font-size: var(--editorial-body-size); line-height: var(--editorial-body-line); }
  .contact-form { margin-top: 58px; }
  .contact-field { margin-bottom: 34px; }
  .contact-field input,
  .contact-field textarea { font-size: clamp(25px, 7vw, 30px); }
  .contact-field textarea { min-height: 132px; }
  .contact-submit { font-size: 27px; }
  .contact-direct { margin-top: 60px; }
  .contact-direct a { font-size: clamp(27px, 7.7vw, 34px); overflow-wrap: anywhere; }
  .call-lift {
    top: max(14px, env(safe-area-inset-top));
    right: auto;
    bottom: auto;
    left: max(14px, env(safe-area-inset-left));
    width: 58px;
    min-width: 58px;
    min-height: 64px;
    flex-direction: column;
    justify-content: flex-start;
    gap: 5px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .call-lift > span:nth-child(2) { display: block; color: #b8b0a6; font-size: .5625rem; letter-spacing: .1em; white-space: nowrap; }
  .call-lift b { width: 44px; height: 44px; color: var(--red); font-size: 16px; }
  .ground-positioning {
    display: none;
  }
  .lift-doors:not(.is-intro) {
    top: 0;
    left: 0;
    width: 100vw;
    height: 100svh;
    box-shadow: none;
  }
  body[data-floor="ground"] .lift-doors.is-intro {
    visibility: hidden !important;
  }
  .lift-doors.is-intro {
    top: calc(50% + max(3.34svh, 7.43vw));
    left: calc(50% - max(3.45svh, 7.67vw));
    width: max(68.5vw, 30.79svh);
    height: max(70.76svh, 157.42vw);
    box-shadow: none;
    transform: translate(-50%, -50%);
    transition: none;
  }
  .lift-doors.is-intro .door {
    background-color: #100702;
    background-image:
      linear-gradient(180deg, rgba(70,35,11,.16) 0%, rgba(30,13,3,.035) 40%, rgba(3,1,0,.54) 100%),
      repeating-linear-gradient(90deg, rgba(224,176,108,.01) 0, rgba(224,176,108,.01) 1px, transparent 1px, transparent 4px),
      linear-gradient(90deg, #090401 0%, #160902 16%, #2a1305 37%, #351a07 52%, #1b0b02 74%, #070301 100%);
    box-shadow: inset 0 0 10vh rgba(2,1,0,.76), inset 0 1px rgba(128,72,27,.12);
  }
  .lift-doors.is-intro .door--right {
    background-image:
      linear-gradient(180deg, rgba(70,35,11,.16) 0%, rgba(30,13,3,.035) 40%, rgba(3,1,0,.54) 100%),
      repeating-linear-gradient(90deg, rgba(224,176,108,.01) 0, rgba(224,176,108,.01) 1px, transparent 1px, transparent 4px),
      linear-gradient(90deg, #070301 0%, #180a02 23%, #361a07 47%, #291205 63%, #160902 85%, #090401 100%);
  }
  .lift-doors.is-intro .door::before { animation: intro-door-light 1.8s ease-in-out both; }
  .lift-doors.is-intro .door::after {
    content: "";
    position: absolute;
    inset: 0 0 62%;
    background: linear-gradient(180deg, rgba(255,48,34,.13), rgba(255,48,34,.035) 38%, transparent);
    opacity: .12;
    mix-blend-mode: screen;
    pointer-events: none;
  }
  .lift-doors.is-intro::after {
    content: "";
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: linear-gradient(transparent 2%, #e2a86a 24%, #ffe0a2 50%, #a76338 78%, transparent 98%);
    opacity: .18;
    box-shadow: 0 0 5px rgba(255,192,118,.24);
    transform: translateX(-50%);
    transition: opacity .32s ease, box-shadow .32s ease;
  }
  .lift-doors.is-intro.is-intro-ready::after {
    opacity: .95;
    box-shadow: 0 0 7px rgba(255,204,133,.78), 0 0 24px rgba(255,128,65,.3);
  }
  .lift-doors.is-intro.is-opening::after {
    opacity: 0;
    box-shadow: none;
  }
  body.mobile-intro-opening.is-entering[data-floor="ground"] :is(.mobile-lift-ui, .mobile-entrance-ui) {
    visibility: visible;
    opacity: 1;
  }
  body.is-entering[data-floor="ground"] .mobile-lift-controls {
    pointer-events: none;
  }
  :is(.mobile-floor-indicator, .mobile-entrance-indicator) {
    position: absolute;
    top: 16.55%;
    left: 42.63%;
    width: 39.1%;
    height: 1.95%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(10px, 2.6vw, 15px);
    border: 0;
    color: #aaa195;
    background: transparent;
    box-shadow: none;
    transform: translate(-50%, -50%);
    pointer-events: none;
    transition: opacity .2s ease, visibility 0s linear 0s;
  }
  :is(.mobile-floor-indicator, .mobile-entrance-indicator) strong {
    color: var(--red);
    font-family: var(--display);
    font-size: clamp(11px, 2.9vw, 14px);
    font-weight: 400;
    line-height: 1;
    text-shadow: 0 0 8px rgba(255,48,34,.6);
  }
  :is(.mobile-floor-indicator, .mobile-entrance-indicator) span {
    flex: 0 1 auto;
    overflow: visible;
    color: #d0c5b7;
    font-size: clamp(8px, 2.15vw, 10px);
    letter-spacing: .12em;
    line-height: 1;
    white-space: nowrap;
  }
  .travel-destination {
    display: block;
    max-width: 150px;
    overflow: hidden;
    color: #aaa39a;
    font-size: 9px;
    letter-spacing: .13em;
    line-height: 1.3;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .scene-scroll-hint { bottom: max(24px, env(safe-area-inset-bottom)); font-size: 11px; }
  :root {
    --editorial-body-size: 1rem;
    --editorial-body-line: 1.7;
    --editorial-section-gap: 44px;
  }
  .floor-story { padding: 48px 22px 78px; }
  .story-section { width: 100%; }
  .story-eyebrow { margin-bottom: 20px; }
  .story-section p { margin-bottom: 1.1em; }
  .story-lead { font-size: clamp(29px, 8.2vw, 36px); }
  .story-section--body p:nth-child(2) { font-size: clamp(27px, 7.6vw, 34px); }
  .story-closing-title { font-size: clamp(32px, 8.8vw, 40px); }
  .story-lines { margin-top: 18px; }
  .story-lines li { margin: 7px 0; }
  .next-floor { margin-top: 56px; padding-top: 23px; }
  .next-floor span { font-size: clamp(27px, 7.7vw, 32px); }

  @keyframes intro-door-light {
    0% { opacity: .54; transform: translateX(-2%); }
    55% { opacity: .88; transform: translateX(1.5%); }
    100% { opacity: .66; transform: translateX(0); }
  }
}

@media (max-width: 350px) {
  .scene--about .scene-image--about {
    background-size: 205% auto;
    background-position: 59% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Pre-launch usability pass. Version 72 remains the saved rollback point. */
:root { --nav-height: 64px; }
.text-action { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; margin-top: 24px; padding: 8px 0; border: 0; background: transparent; color: #f2efe8; font: 500 1rem/1.45 var(--mono); text-align: left; cursor: pointer; text-decoration: underline; text-underline-offset: 6px; }
.text-action span { color: var(--red); text-decoration: none; }
.text-action:hover { color: #ff766b; }
.floor-directory { left: auto; right: 24px; width: min(350px, calc(50vw - 36vh - 48px)); min-width: 250px; }
.directory-list { padding: 10px 20px 14px; }
.directory-list :is(button, a) { min-height: 48px; grid-template-columns: 28px minmax(0, 1fr); }
.directory-list :is(button, a) span { font-size: 15px; }
.directory-list :is(button, a) b { font-size: 14px; }
.directory-list :is(button, a) em { display: none; }
.directory-title { padding: 0 20px; }

.story-section, .work-prose, .lab-index-copy, .lab-prose, .contact-copy { color: #c3bbb0; }
.story-lead { line-height: 1.2; }
.story-section--experience { padding: 36px 0; border-top: 1px solid #574333; border-bottom: 1px solid #574333; }
.proof-context { color: #c3b6a6; font: 400 .875rem/1.65 var(--mono); }
.story-section .proof-context { margin-top: 24px; }
.work-story-title { margin-bottom: 30px; line-height: 1.03; }
.work-capability + .work-capability { padding-top: 36px; border-top: 1px solid #44372b; }
.engagement-result { color: #e5d8c6; }
.work-opening { min-height: 0; height: 55svh; }
.lab-opening { min-height: 0; height: 55svh; }
.work-opening-marker, .lab-opening-marker, .contact-opening-marker { font-size: .875rem; }
.lab-index :is(h1, :where([data-page-heading])), .lab-case-header :is(h1, :where([data-page-heading])) { line-height: .92; }
.lab-index-lead { margin-top: 28px; }
.lab-index-note { margin-top: 22px; color: #c3b6a6; font-size: .875rem; }
.lab-proof { grid-column: 1 / -1; width: min(100%, 920px); padding: 40px 0; margin-top: 24px; border-top: 1px solid #67513d; border-bottom: 1px solid #44372b; }
.lab-proof h2 { margin: 0; max-width: 760px; color: #eee8df; font: 400 clamp(30px, 3vw, 44px)/1.12 var(--display); }
.proof-role { margin: 28px 0 20px; color: #eee8df; font-size: 18px; }
.proof-extract { margin: 0; }
.proof-extract > div { display: grid; grid-template-columns: 180px 1fr; gap: 28px; padding: 16px 0; }
.proof-extract dt { color: #e0c5a6; font-size: .9375rem; line-height: 1.6; }
.proof-extract dd { margin: 0; color: #c3bbb0; font-size: 1rem; line-height: 1.7; }
.lab-next { grid-column: 1 / -1; margin-top: 20px; }
.lab-back, .lab-case-footer :is(button, a) { min-height: 44px; font-size: .875rem; }
.lab-case-meta { color: #c3b6a6; font-size: .875rem; }
.case-contact { margin: 24px 0; }

.scene--contact { display: grid; grid-template-columns: 42% 58%; align-items: start; }
.contact-opening { position: sticky; top: 0; height: calc(100svh - var(--nav-height)); min-height: 0; }
.contact-opening-marker { left: 24px; right: 24px; bottom: 28px; justify-content: center; }
.contact-story { min-height: calc(100svh - var(--nav-height)); padding: 48px clamp(28px, 4vw, 64px) 80px; box-shadow: none; }
.contact-intro :is(h1, :where([data-page-heading])) { font-size: clamp(40px, 4vw, 60px); line-height: 1.03; }
.contact-lead { margin-top: 28px; font-size: 30px; line-height: 1.2; }
.contact-copy { margin-top: 18px; }
.contact-direct { margin-top: 28px; }
.contact-direct a { display: inline-flex; align-items: center; gap: 18px; min-height: 48px; font-size: 32px; text-decoration: underline; text-underline-offset: 8px; }
.contact-direct .contact-address { color: #d0c5b6; font-size: 1rem; letter-spacing: 0; text-transform: none; margin: 18px 0 6px; overflow-wrap: anywhere; }
.copy-email { min-height: 44px; padding: 8px 0; border: 0; color: #e0c5a6; background: none; font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.copy-status { min-height: 24px; margin: 0; color: #d0c5b6; font-size: .875rem; }
.contact-draft { margin-top: 24px; border-top: 1px solid #574333; padding-top: 12px; }
.contact-draft summary { padding: 16px 0; font-size: 1rem; line-height: 1.5; cursor: pointer; }
.contact-draft > p, .contact-form-note { color: #c3b6a6; font-size: .875rem; line-height: 1.7; }
.contact-form { margin-top: 28px; }
.contact-field input, .contact-field textarea { font-size: 20px; }
.contact-submit { min-height: 48px; font-size: 26px; }
.contact-field > span { color: #ff766b; font-size: .875rem; }

@media (max-width: 760px) {
  :root { --nav-height: 64px; }
  .story-lead { font-size: 29px; line-height: 1.2; }
  .story-section--experience { padding: 28px 0; }
  .work-opening, .lab-opening { height: 40svh; }
  .work-opening-marker, .lab-opening-marker { font-size: .8125rem; bottom: 20px; right: 20px; }
  .work-story { padding-top: 36px; }
  .work-story-title { font-size: 40px; line-height: 1.03; margin-bottom: 28px; }
  .work-lead { font-size: 28px; }
  .work-capability h2 { font-size: 34px; line-height: 1.06; }
  .work-contact-heading { font-size: 38px; line-height: 1.05; }
  .work-section + .work-section { margin-top: 44px; }
  .lab-index { gap: 36px; padding-top: 36px; }
  .lab-index :is(h1, :where([data-page-heading])) { font-size: 60px; line-height: .94; }
  .lab-index-lead { margin-top: 24px; font-size: 28px; }
  .lab-index-copy { margin-top: 18px; }
  .lab-experiment-status { color: #c3b6a6; font-size: .875rem; }
  .lab-proof { margin-top: 4px; padding: 28px 0; }
  .proof-extract > div { grid-template-columns: 1fr; gap: 8px; }
  .lab-proof .lab-kicker { font-size: .8125rem; letter-spacing: .08em; }
  .lab-case-header :is(h1, :where([data-page-heading])) { font-size: clamp(44px, 13.5vw, 64px); line-height: .96; overflow-wrap: anywhere; }
  .lab-case-question { font-size: 32px; line-height: 1.08; }
  .lab-case-footer { gap: 20px; flex-wrap: wrap; }
  .scene--contact { display: block; }
  .contact-opening { position: relative; height: 22svh; min-height: 150px; }
  .contact-opening-marker { display: none; }
  .contact-story { min-height: 0; padding: 28px 20px 64px; }
  .contact-label { font-size: .8125rem; margin-bottom: 16px; }
  .contact-intro :is(h1, :where([data-page-heading])) { font-size: 38px; line-height: 1.03; }
  .contact-lead { font-size: 25px; margin-top: 20px; }
  .contact-copy { font-size: 1rem; line-height: 1.6; margin-top: 14px; }
  .contact-direct { margin-top: 18px; }
  .contact-direct a { font-size: 30px; }
  .contact-direct .contact-address { font-size: .9375rem; }
  .contact-draft { margin-top: 12px; }
}

@media (min-width: 761px) {
  .scene--about .scene-opening { min-height: 0; height: 76svh; }
}

/* Focused revision. Saved version 76 is the rollback point. */
a { color: inherit; }
a[data-floor], a[data-experiment], a[data-lab-back] { text-decoration: none; }
a.text-action { text-decoration: underline; }
.ground-positioning { left: max(24px, calc(50vw - 73.5vh)); width: min(37vh, calc(50vw - 32vh - 48px)); }
.ground-positioning p { margin: 0; color: #c7b293; font: 400 clamp(14px, 1.65vh, 18px)/1.9 var(--mono); }
.floor-nav { position: absolute; z-index: 10; inset: 0 0 auto; display: flex; align-items: center; gap: 28px; height: 88px; padding: 0 32px; background: linear-gradient(180deg, rgba(0,0,0,.72), transparent); text-shadow: 0 2px 8px #000, 0 1px 3px #000; }
.nav-brand { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; color: #ffb49a; font: 400 17px/1 var(--mono); letter-spacing: .11em; text-shadow: 0 0 3px #ff482c, 0 0 13px #ed311d, 0 2px 6px #000; white-space: nowrap; }
.nav-brand span { font-size: 24px; }
.nav-current { color: #e1d6c7; font: 400 12px/1.4 var(--mono); letter-spacing: .08em; }
.nav-actions { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.nav-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; font-size: 14px; color: #f2efe8; }
.nav-lift { gap: 9px; }
.nav-lift b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid #ac8c62; background: radial-gradient(circle at 35% 25%, #493723, #0b0805 75%); color: var(--red); font-size: 13px; font-weight: 400; box-shadow: inset 0 0 5px #000, 0 1px 4px #000; }
.nav-contact { text-decoration: underline!important; text-underline-offset: 5px; }
.nav-actions a:hover { color: #ffb49a; }
.scene:not(.scene--ground) { top: 0; }
.story-section--experience h2 { margin-top: 0; color: var(--paper); font-family: var(--display); font-weight: 300; }
.lab-case-shell { padding-top: 108px; }
.contact-story { padding-top: 110px; }
.contact-opening { height: 100svh; }
.lab-built { grid-column: 1 / -1; min-width: 0; padding-top: 48px; border-top: 1px solid #493b2e; }
.lab-built-caption { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-bottom: 32px; }
.lab-built h2 { margin: 0; font: 300 clamp(36px, 4vw, 58px)/1.04 var(--display); letter-spacing: -.015em; }
.lab-built-caption p:not(.lab-kicker) { margin: 0; color: #c3bbb0; font-size: 16px; line-height: 1.75; }
.lab-built .lab-kicker { margin-bottom: 16px; color: #ff766b; }
.lab-built .text-action { margin-top: 10px; font-size: 14px; }
.lab-built video, .lab-built img { display: block; width: 100%; height: auto; border: 0; border-radius: 0; background: #000; }
.lab-system-image, .lab-output-image { display: block; margin: 0; }
.lab-system-image { margin-top: 24px; }
.studio-footer { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; grid-column: 1 / -1; margin: 0 max(24px, 7vw); padding: 20px 0 max(24px, env(safe-area-inset-bottom)); border-top: 1px solid #3e3329; color: #c3b6a6; font-size: 12px; }
.studio-footer nav { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.studio-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-brand { letter-spacing: .08em; }
@media (max-width: 1100px) and (min-width: 761px) {
  .floor-directory { right: 16px; width: 210px; min-width: 0; }
  .directory-list { padding: 8px 12px; }
  .directory-list a span { font-size: 12px; }
  .directory-title { padding: 0 12px; font-size: 12px; }
}
@media (max-width: 760px) {
  .ground-positioning { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .mobile-lift-controls { display: grid; }
  .mobile-lift-controls a span { color: #d7c5aa; }
  .floor-nav { height: 76px; padding: 0 18px; gap: 8px; }
  .nav-brand { font-size: 13px; letter-spacing: .07em; gap: 5px; }
  .nav-brand span { font-size: 20px; }
  .nav-current { display: none; }
  .nav-actions { gap: 16px; }
  .nav-actions a { font-size: 12px; }
  .nav-lift { gap: 6px; }
  .nav-lift b { width: 28px; height: 28px; }
  .contact-story { padding-top: 28px; }
  .contact-opening { height: 22svh; }
  .lab-case-shell { padding-top: 100px; }
  .lab-built { padding-top: 28px; }
  .lab-built-caption { grid-template-columns: 1fr; gap: 20px; margin-bottom: 24px; }
  .lab-built h2 { font-size: 38px; }
  .lab-built video, .lab-built > a { width: calc(100% + 40px); max-width: none; margin-left: -20px; }
  .lab-system-image { margin-top: 12px; }
  .studio-footer { margin: 0 20px; gap: 0; }
  .studio-footer nav { gap: 0 20px; width: 100%; }
}
@media (max-width: 360px) { .nav-actions { gap: 10px; } }
@media (max-width: 760px) {
  .scene--lab .floor-nav { background: linear-gradient(180deg, rgba(0,0,0,.97), rgba(0,0,0,.9) 62%, transparent); }
  .lab-built { margin-top: 48px; }
}
.media-caption { display: block; padding: 12px 0; color: #c3b6a6; font-size: 12px; text-align: right; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 760px) { .media-caption { padding-right: 20px; min-height: 44px; } }
.nav-lift { min-width: 44px; }

/* Career Scout: supplied mockup, natural proportions and a closer onward link. */
.lab-built--scout .lab-output-image { width: 100%; margin: 0; }
.lab-built--scout .lab-output-image img { width: 100%; height: auto; margin: 0; }
@media (min-width: 761px) {
  .lab-built--scout + .lab-next { margin-top: calc(48px - clamp(64px, 9vw, 150px)); }
}
@media (max-width: 760px) {
  .lab-built--scout + .lab-next { margin-top: 32px; }
}

/* Focused hero and operating-model refinements. */
.nav-actions .nav-lift { color: var(--red); }
@media (min-width: 761px) {
  .scene-scroll-hint { display: none; }
  .about-opening-title { left: 4vw; top: max(104px, 12vh); width: 36vw; font-size: clamp(34px, 3.4vw, 60px); }
}
.lab-operating-model { margin-top: 48px; }
.lab-operating-copy { max-width: 800px; margin-bottom: 32px; }
.lab-operating-copy h3 { margin: 0 0 24px; color: var(--paper); font: 300 clamp(30px, 3vw, 44px)/1.12 var(--display); }
.lab-operating-copy p { margin: 0; color: #c3bbb0; font-size: 16px; line-height: 1.75; }
.lab-operating-copy p + p { margin-top: 16px; }
@media (max-width: 760px) {
  .lab-operating-model { margin-top: 36px; }
  .lab-operating-copy { margin-bottom: 24px; }
  .lab-operating-model > img { width: calc(100% + 40px); max-width: none; margin-left: -20px; }
}

/* Resume Operator uses the existing case-study rows for its expanded copy. */
[data-lab-view="resume-operator-au"] .lab-workflow h3 { margin: 0; font-family: var(--display); font-size: clamp(23px, 2.2vw, 33px); font-weight: 400; line-height: 1.05; }
[data-lab-view="resume-operator-au"] .lab-workflow li { align-items: start; }
[data-lab-view="resume-operator-au"] .lab-workflow .lab-prose { font-size: 1rem; line-height: 1.6; }
@media (max-width: 760px) {
  [data-lab-view="resume-operator-au"] .lab-workflow h3 { font-size: clamp(23px, 6.8vw, 29px); }
  [data-lab-view="resume-operator-au"] .lab-workflow .lab-prose { grid-column: 2; }
}

[data-lab-view="resume-operator-au"] .lab-principles .lab-prose p + p { margin-top: 1.1em; }

/* Rooftop-only sound and the existing desktop destination row. */
.rooftop-sound { position: absolute; z-index: 3; right: 32px; bottom: max(24px, env(safe-area-inset-bottom)); min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid #a89482; background: transparent; color: var(--paper); font: 400 12px/1.4 var(--mono); letter-spacing: .08em; cursor: pointer; text-shadow: 0 1px 5px #000; }
.rooftop-sound[aria-pressed="true"] { color: #d994a5; }
.rooftop-sound:focus-visible { outline: 1px solid var(--paper); outline-offset: 5px; }
@media (min-width: 761px) {
  .directory-list [data-floor="rooftop"] .rooftop-after-hours { color: #d38b9f; font-size: 11px; white-space: nowrap; text-shadow: 0 0 7px #ae516d55; }
  .directory-list [data-floor="rooftop"] .after-hours-glow { font-size: inherit; color: #e89fb4; text-shadow: 0 0 8px #c3698470, 0 0 15px #ae516d38; }
}
@media (max-width: 760px) { .rooftop-sound { right: 20px; bottom: max(20px, env(safe-area-inset-bottom)); } }

/* Focused mobile Contact refinements. */
@media (max-width: 760px) {
  .contact-opening { height: 40svh; min-height: 0; }
  .contact-direct a { font-size: 25px; }
  .contact-direct a span { font-family: Arial, sans-serif; font-variant-emoji: text; }
}

/* Keep Contact inputs dark through focus and browser autofill. */
.contact-field input, .contact-field textarea { color-scheme: dark; background: transparent; color: var(--paper); caret-color: var(--red); }
.contact-field input:focus, .contact-field textarea:focus { background: transparent; border-bottom-color: var(--red); outline: none; }
.contact-field input:-webkit-autofill, .contact-field input:-webkit-autofill:hover, .contact-field input:-webkit-autofill:focus, .contact-field textarea:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px #080604 inset !important; -webkit-text-fill-color: #f2efe8 !important; caret-color: var(--red); }
.contact-field input:autofill, .contact-field textarea:autofill { box-shadow: 0 0 0 1000px #080604 inset; color: #f2efe8; }
.contact-submit:disabled { opacity: .6; cursor: wait; }

.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); pointer-events: none; }
.contact-privacy-note { grid-column: 1 / -1; margin: 0; color: #c3b6a6; font-size: .75rem; line-height: 1.7; }
.contact-privacy-note a { text-decoration: underline; text-underline-offset: 3px; }
html:has(body.privacy-page), body.privacy-page { height: auto; min-height: 100vh; overflow: auto; }
.privacy-page .floor-nav { position: relative; }
.privacy-page main { position: relative; max-width: 900px; margin: 0 auto; padding: 65px max(24px, 5vw) 80px; }
.privacy-page h1 { font-size: clamp(46px, 7vw, 80px); line-height: 1; margin: 0 0 30px; }
.privacy-page h2 { font: 400 clamp(24px, 3vw, 32px)/1.2 var(--display); margin: 38px 0 16px; }
.privacy-page p, .privacy-page li { color: #c3b6a6; font-size: 1rem; line-height: 1.8; }
.privacy-page main a { color: var(--red); text-decoration: underline; overflow-wrap: anywhere; }

/* Off-floor artwork is activated on route entry or navigation intent only. */
.scene:not([data-media-ready]) .scene-image,
.scene:not([data-media-ready]) .lobby-image,
.scene:not([data-media-ready]) .lift-cabin-wide,
.scene:not([data-media-ready]) .scene-opening::before { background-image: none !important; }
body:not([data-floor="ground"]) .mobile-ground-intro { background-image: none; }
@media (min-width: 421px) and (max-width: 760px) {
 .lobby-image, .mobile-ground-reveal::before { background-image: image-set(url('/assets/mobile-ground-open-v39-640.webp') 1x, url('/assets/mobile-ground-open-v39-841.webp') 2x); }
}

@media (min-width: 421px) and (max-width: 760px) {
 .mobile-door-panel::before { background-image: image-set(url('/assets/mobile-ground-closed-door-640.webp') 1x, url('/assets/mobile-ground-closed-door-864.webp') 2x); }
}
