/* Blaha Labs garage HUD: graphite bay, cyan phosphor, tight mono chrome. */
.page-home {
  background: #05090d;
  color: #e4eef2;
  --font-display: 'Space Grotesk', sans-serif;
  --lab-cyan: #42f2ff;
  --lab-ink: #e4eef2;
  --lab-muted: #8ea8b2;
  --lab-panel: #101b22;
}
.page-home .content-wrapper,
.page-home .page { width: 100%; max-width: none; margin: 0; padding: 0; }
.garage {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #05090d;
  isolation: isolate;
}

.neon-header,
.neon-footer {
  position: absolute;
  left: 2.8%;
  right: 2.8%;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font: 13px 'IBM Plex Mono', monospace;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.neon-header { top: 22px; }
.neon-header h1 {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  font: inherit;
  font-weight: 600;
  letter-spacing: .34em;
  color: #d8faff;
  text-shadow: 0 0 18px #42f2ff42;
}
.neon-header h1 span {
  display: inline;
  color: #42f2ff99;
  letter-spacing: .2em;
  font-weight: 400;
}
.neon-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--lab-cyan);
  box-shadow: 0 0 10px #42f2ff, 0 0 22px #42f2ff88;
  animation: neon-pulse 2.4s ease-in-out infinite;
}
@keyframes neon-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .45; }
}
.neon-header button,
.neon-footer button {
  padding: 10px 0;
  border: 0;
  background: none;
  color: #aebfc7;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  transition: color .2s ease, text-shadow .2s ease;
}
.neon-header button:hover,
.neon-footer button:hover {
  color: #fff;
  text-shadow: 0 0 12px #42f2ff;
}

.neon-stage {
  height: 100svh;
  position: relative;
  overflow: hidden;
}
.neon-stage::before,
.neon-stage::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 2;
}
.neon-stage::before {
  top: 0;
  height: 110px;
  background: linear-gradient(to bottom, #05090df2, transparent);
}
.neon-stage::after {
  bottom: 0;
  height: 130px;
  background: linear-gradient(to top, #05090de8, transparent);
}
.neon-stage .garage-canvas { position: relative; z-index: 0; }
.neon-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(ellipse at 50% 42%, transparent 46%, rgba(5, 9, 13, .38) 100%);
}
.garage-canvas {
  display: block;
  width: 100%;
  height: 100%;
  touch-action: none;
  outline: none;
  cursor: grab;
}
.garage-canvas:active { cursor: grabbing; }
.garage-canvas:focus,
.garage-canvas:focus-visible { outline: none; }

.scene-status {
  position: absolute;
  left: 50%;
  top: 48%;
  transform: translate(-50%, -50%);
  font: 13px 'IBM Plex Mono', monospace;
  color: #a2e8ee;
  letter-spacing: .16em;
  text-align: center;
  pointer-events: none;
}
.scene-tooltip {
  position: absolute;
  left: 50%;
  bottom: 110px;
  transform: translateX(-50%);
  padding: 8px 14px;
  background: #101b22ed;
  border: 1px solid #42f2ff55;
  color: #dffcff;
  font: 12px 'IBM Plex Mono', monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 4;
  box-shadow: 0 0 24px #42f2ff1f, inset 0 0 18px #42f2ff0c;
}

.scene-access {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.scene-access:focus-within {
  clip-path: none;
  width: auto;
  height: auto;
  left: 20px;
  top: 80px;
  display: flex;
  flex-direction: column;
  padding: 16px;
  background: #101b22;
  z-index: 20;
  gap: 8px;
}
.scene-access button,
.scene-access a {
  background: none;
  border: 1px solid #42f2ff55;
  color: #e4eef2;
  padding: 10px;
  text-align: left;
}

.camera-controls {
  position: absolute;
  left: 50%;
  bottom: 83px;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 5;
}
.garage.is-arcade .camera-controls,
.garage.is-arcade .neon-explore { display: none; }
.camera-controls button {
  border: 1px solid #9aafba40;
  background: #101b22de;
  color: #c3d3db;
  border-radius: 4px;
  padding: 8px 12px;
  font: 11px 'IBM Plex Mono', monospace;
  cursor: pointer;
}
.camera-controls button:hover {
  border-color: #72e6ff;
  color: white;
  box-shadow: 0 0 16px #42f2ff26;
}

.arcade-hud {
  position: absolute;
  left: 50%;
  bottom: 78px;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: min(540px, calc(100% - 32px));
  pointer-events: none;
}
@media (min-width: 721px) { .arcade-hud { display: none !important; } }
.arcade-hud[hidden] { display: none; }
.arcade-hud__status {
  margin: 0;
  padding: 8px 14px;
  border: 1px solid #42f2ff66;
  background: #101b22eb;
  color: #d8fbff;
  font: 700 12px 'IBM Plex Mono', monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}
.arcade-hud__grid {
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
  pointer-events: auto;
}
.arcade-hud__grid button {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid #42f2ff55;
  border-radius: 5px;
  background: #101b22e6;
  color: #e4eef2;
  font: 700 13px 'IBM Plex Mono', monospace;
  text-align: left;
}
.arcade-hud.is-holo .arcade-hud__status { color: #42f2ff; }
.arcade-hud__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  pointer-events: auto;
}
.arcade-hud__row button {
  border: 1px solid #42f2ff66;
  background: #101b22;
  color: #d8fbff;
  border-radius: 4px;
  padding: 8px 12px;
  min-height: 44px;
  font: 700 11px 'IBM Plex Mono', monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.arcade-hud__row button:hover,
.arcade-hud__row button:focus-visible,
.arcade-hud__grid button:hover,
.arcade-hud__grid button:focus-visible {
  background: #16323a;
  color: #fff;
  border-color: #42f2ff;
}
.arcade-hud.is-holo .arcade-hud__grid { opacity: .55; }

.garage button:focus-visible,
.garage a:focus-visible { outline: 2px solid #80edff; outline-offset: 3px; }

.neon-footer { bottom: 32px; font-size: 12px; letter-spacing: .18em; }
.neon-explore { text-align: center; }
.neon-mobile { display: none; }

@media (max-width: 720px) {
  .neon-header { top: 15px; left: 22px; right: 22px; font-size: 10px; letter-spacing: .09em; }
  .neon-header h1 { letter-spacing: .22em; }
  .neon-header h1 span { display: none; }
  .neon-stage { height: 65svh; min-height: 420px; padding: 0; }
  .neon-stage::before { height: 72px; }
  .neon-stage::after { height: 64px; }
  .camera-controls { top: calc(65svh - 45px); bottom: auto; }
  .scene-tooltip { bottom: 60px; max-width: 90%; font-size: 11px; }
  .arcade-hud { top: calc(65svh - 100px); bottom: auto; width: min(420px, calc(100% - 24px)); }
  .arcade-hud__grid { display: grid; }
  .neon-footer {
    position: relative;
    left: auto;
    right: auto;
    margin: 0 24px;
    bottom: auto;
    justify-content: space-between;
    font-size: 10px;
  }
  .neon-explore { display: none; }
  .neon-mobile { display: block; padding: 28px 25px 36px; }
  .neon-mobile__eyebrow {
    font: 10px 'IBM Plex Mono', monospace;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: #7fd7e0;
  }
  .neon-mobile h2 {
    font: 500 38px/1.05 'Space Grotesk', sans-serif;
    letter-spacing: -.04em;
    margin: 16px 0;
    color: #e8f7fb;
  }
  .neon-mobile p:not(.neon-mobile__eyebrow) { color: #8ea8b2; font-size: 14px; }
  .neon-mobile > button {
    width: 100%;
    padding: 16px;
    border: 1px solid #42f2ff66;
    background: #101b22;
    color: #fff;
    font: 14px 'Space Grotesk', sans-serif;
    margin: 8px 0;
    border-radius: 4px;
  }
  .neon-mobile > button + button { margin-bottom: 22px; }
  .neon-mobile nav { display: flex; justify-content: space-between; }
  .neon-mobile nav button,
  .neon-mobile nav a {
    padding: 8px 0;
    border: 0;
    background: none;
    color: #aebfc7;
    font: 12px 'IBM Plex Mono', monospace;
  }
}
@media (prefers-reduced-motion: reduce) {
  .neon-pulse { animation: none; }
}

.garage-panel,
.garage-drawer,
.garage-info {
  position: fixed;
  inset: 0;
  z-index: 100;
}
.garage-panel[hidden],
.garage-drawer[hidden],
.garage-info[hidden] { display: none; }

.garage-panel__backdrop,
.garage-drawer__backdrop,
.garage-info__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(5, 9, 13, .78);
  cursor: default;
}

.garage-panel__sheet,
.garage-info__sheet {
  position: absolute;
  right: clamp(20px, 4vw, 64px);
  top: 50%;
  width: min(430px, calc(100vw - 40px));
  max-height: 90svh;
  overflow: auto;
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid rgba(66, 242, 255, .28);
  border-radius: 5px;
  background: #101b22;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .6);
  transform: translateY(-50%);
}
.garage-panel__sheet::before,
.garage-info__sheet::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 100%;
  background: #42f2ff;
}

.garage-panel__close,
.garage-drawer__close,
.garage-info__close {
  border: 1px solid rgba(66, 242, 255, .28);
  border-radius: 3px;
  background: transparent;
  color: #aebfc7;
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}
.garage-panel__close,
.garage-info__close { float: right; padding: 7px 9px; }

.garage-panel__kicker,
.garage-drawer__kicker,
.garage-info__kicker {
  margin: 0 0 12px;
  color: #42f2ff;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.garage-info__sheet h2,
.garage-drawer__head h2 {
  margin: 0;
  color: #e8f7fb;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.garage-info__sheet > p:not(.garage-info__kicker) {
  margin: 24px 0;
  color: rgba(228, 238, 242, .74);
  font-size: 1rem;
  line-height: 1.65;
}

.garage-drawer__full,
.garage-info__contact a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 13px 16px;
  border-radius: 2px;
  background: #42f2ff;
  color: #05090d;
  font-family: var(--font-mono);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.garage-drawer__sheet {
  position: absolute;
  right: 0;
  top: 0;
  width: min(660px, 100vw);
  height: 100%;
  overflow-y: auto;
  padding: clamp(26px, 4vw, 50px);
  border-left: 1px solid rgba(66, 242, 255, .28);
  background: #0c151c;
  box-shadow: -28px 0 80px rgba(0, 0, 0, .55);
}
.garage-drawer__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.garage-drawer__head h2 { font-size: clamp(2.5rem, 5vw, 4.8rem); }
.garage-drawer__close { padding: 9px 11px; }
.garage-drawer__intro {
  max-width: 46ch;
  margin: 20px 0 26px;
  color: rgba(228, 238, 242, .65);
}
.garage-drawer__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 26px;
}
.garage-drawer__filters button {
  padding: 8px 11px;
  border: 1px solid rgba(228, 238, 242, .22);
  border-radius: 2px;
  background: transparent;
  color: rgba(228, 238, 242, .72);
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
}
.garage-drawer__filters button.is-active {
  border-color: #42f2ff;
  background: #42f2ff;
  color: #05090d;
  font-weight: 800;
}

.garage-inventory {
  display: grid;
  gap: 0;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(228, 238, 242, .14);
}
.garage-inventory__item[hidden] { display: none; }
.garage-inventory__item a,
.garage-inventory__item button {
  display: grid;
  grid-template-columns: 82px 1fr auto;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 16px 6px;
  border: 0;
  border-bottom: 1px solid rgba(228, 238, 242, .14);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .2s ease, padding .2s ease;
}
.garage-inventory__item a:hover,
.garage-inventory__item a:focus-visible,
.garage-inventory__item button:hover,
.garage-inventory__item button:focus-visible {
  padding-left: 13px;
  background: rgba(66, 242, 255, .08);
}
.garage-inventory__thumb {
  width: 82px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid rgba(66, 242, 255, .18);
  border-radius: 3px;
  background: #101b22;
}
.garage-inventory__thumb img { width: 100%; height: 100%; object-fit: cover; }
.garage-inventory__copy { min-width: 0; }
.garage-inventory__copy > strong {
  display: block;
  color: #e8f7fb;
  font-size: 1rem;
  line-height: 1.25;
}
.garage-inventory__copy > span:last-child {
  display: -webkit-box;
  margin-top: 5px;
  overflow: hidden;
  color: rgba(228, 238, 242, .56);
  font-size: .78rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.garage-inventory__meta {
  display: flex;
  gap: 9px;
  margin-bottom: 5px;
  color: #42f2ff;
  font-family: var(--font-mono);
  font-size: .61rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.garage-inventory__arrow { color: #65eaff; }
.garage-info__contact {
  padding-top: 22px;
  border-top: 1px solid rgba(228, 238, 242, .16);
}
.garage-info__contact a { margin-top: 14px; }

.garage-noscript {
  padding: 32px;
  background: #101b22;
  color: #e4eef2;
}

body.garage-lock { overflow: hidden; }

@media (max-width: 540px) {
  .garage-inventory__item a,
  .garage-inventory__item button { grid-template-columns: 56px 1fr; gap: 12px; }
  .garage-inventory__thumb { width: 56px; }
  .garage-inventory__arrow { display: none; }
  .garage-drawer__sheet { padding: 25px; }
  .garage-drawer__head h2 { font-size: 36px; }
}

html:has(.page-home) { scrollbar-color: #1a3a44 #05090d; }
html:has(.page-home)::-webkit-scrollbar-thumb { background: #1a3a44; }
.scene-unavailable .scene-access {
  clip-path: none;
  width: auto;
  height: auto;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 24px;
}
.scene-unavailable .scene-status { width: 80%; text-align: center; }

@media (max-width: 720px) {
  .garage.is-arcade .arcade-hud {
    position: relative;
    left: auto;
    top: auto;
    bottom: auto;
    transform: none;
    width: auto;
    margin: 12px 20px 28px;
    gap: 12px;
  }
  .garage.is-arcade .neon-mobile { display: none; }
  .garage.is-arcade .arcade-hud__row { width: 100%; }
  .garage.is-arcade .arcade-hud__row button { flex: 1; }
}



/* Tiny planet: the world is the navigation. */
.is-planet.garage,.is-planet .neon-stage { background: #03070d; }
.is-planet .neon-stage { height: 100svh; min-height: 620px; }
.is-planet .neon-vignette,.is-planet .neon-stage::before,.is-planet .neon-stage::after { display: none; }
.is-planet .neon-mobile { display: none; }
.neon-header { top: 24px; left: 32px; right: 32px; letter-spacing: .02em; text-transform: none; }
.neon-header h1 { letter-spacing: .02em; font-size: 14px; }
.neon-header h1 span { letter-spacing: .02em; color: #96a0ad; }
.neon-pulse { display: none !important; }
.planet-destinations { position: absolute; z-index: 5; bottom: 91px; left: 50%; transform: translateX(-50%); display: flex; gap: 24px; align-items: center; white-space: nowrap; }
.planet-destinations button { padding: 9px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: #a9bacb; font: 12px 'IBM Plex Mono',monospace; cursor: pointer; }
.planet-destinations button:nth-child(1) { color: #65edff; }.planet-destinations button:nth-child(2) { color: #ff91c5; }.planet-destinations button:nth-child(3) { color: #ffcc79; }.planet-destinations button:nth-child(4) { color: #cfa1ff; }
.planet-destinations button:hover { border-color: currentColor; }
.garage:not(.is-planet) .planet-destinations { display: none; }
.neon-footer { bottom: 27px; left: 32px; right: 32px; font-size: 11px; letter-spacing: .02em; text-transform: none; pointer-events: none; }
.neon-footer p { margin: 0; }.neon-footer>span { position: absolute; left: 50%; transform: translateX(-50%); color: #96a0ad; white-space: nowrap; }
.is-planet .camera-controls { right: 32px; bottom: 23px; top: auto; }
.camera-controls button { background: transparent; border-color: #647383; }
.back-planet { position: absolute; z-index: 10; top: 70px; left: 32px; color: #b7eefa; font: 12px monospace; }.back-planet[hidden] { display: none; }
.planet-dialog { width: min(480px,calc(100vw - 40px)); padding: 32px; border: 1px solid #566779; border-radius: 12px; background: #0b1420; color: #e4eef2; box-shadow: 0 20px 100px #000; }
.planet-dialog::backdrop { background: #02071188; backdrop-filter: blur(8px); }.planet-dialog form { text-align: right; }.planet-dialog button { background: transparent; border: 0; color: #b0c4d5; cursor: pointer; font: 13px monospace; }.planet-dialog h2 { font-size: 30px; margin: 20px 0; }.planet-dialog p { line-height: 1.8; color: #a8bbcb; }.planet-dialog a { color: #65edff; font-size: 13px; }
.is-planet button:focus-visible,.garage-canvas:focus-visible { outline: 2px solid #65edff; outline-offset: 5px; }
@media(max-width:720px) {
  .is-planet .neon-stage { height: 100svh; min-height: 600px; }
  .neon-header { top: 20px; left: 20px; right: 20px; }.neon-header h1 { font-size: 12px; }.neon-header h1 span { display: none; }.neon-header>button { font-size: 11px; }
  .is-planet .neon-footer { display: flex; bottom: 22px; left: 20px; right: 20px; font-size: 10px; }.neon-footer>span { bottom: 124px; font-size: 10px; }
  .is-planet .camera-controls { bottom: 65px; right: 50%; transform: translateX(50%); }
  .planet-destinations { bottom: 111px; width: calc(100% - 32px); gap: 16px; justify-content: center; flex-wrap: wrap; }.planet-destinations button { font-size: 11px; }.planet-destinations button:last-child { display: none; }
  .is-planet .scene-tooltip { bottom: 178px; }
}
.is-planet .camera-controls { left: auto; transform: none; }
@media(max-width:720px) { .is-planet .camera-controls { left: auto; transform: translateX(50%); } }
@media(max-width:720px) { .planet-destinations { gap: 12px; }.planet-destinations button:last-child { display: inline-block; } }

/* Outside-left project cabinet: physical specimens + an accessible field notebook. */
.cabinet-ui[hidden] { display: none; }
.cabinet-ui { position: absolute; inset: 0; z-index: 6; pointer-events: none; }
.cabinet-back { position: absolute; top: 79px; left: 32px; pointer-events: auto; padding: 11px 16px; border: 1px solid #9e8456; border-radius: 3px; background: #172020ed; color: #f0e4cb; font: 12px 'IBM Plex Mono',monospace; cursor: pointer; }
.cabinet-file { position: absolute; right: 3.2%; top: 15%; width: min(31%,410px); max-height: 76%; overflow-y: auto; pointer-events: auto; color: #382d24; background: #ede1c8; border: 5px double #997c4c; border-radius: 3px; padding: clamp(20px,2vw,32px); box-shadow: 0 12px 60px #0009,inset 0 0 30px #a88b5430; scrollbar-width: thin; scrollbar-color: #9e8864 #ede1c8; }
.cabinet-file::before,.cabinet-file::after { content: ''; position: absolute; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: #795a31; box-shadow: inset 0 1px 1px #e5c589; }.cabinet-file::before { left: 8px; }.cabinet-file::after { right: 8px; }
.cabinet-file__meta { display: flex; justify-content: space-between; gap: 10px; color: #6b5941; font: 10px 'IBM Plex Mono',monospace; text-transform: uppercase; letter-spacing: .06em; }
.cabinet-file__heading>p { margin: 24px 0 8px; font: 9px 'IBM Plex Mono',monospace; letter-spacing: .15em; color: #7c6b50; }
.cabinet-file h2 { margin: 0 0 18px; color: #282820; font: 500 clamp(23px,2.1vw,34px)/1.10 Georgia,serif; letter-spacing: -.035em; }
.cabinet-file__photo { margin: 0 0 18px; padding: 5px; background: #f5ebd7; border: 1px solid #c7b89b; box-shadow: 1px 3px 5px #48321917; transform: rotate(-1deg); }.cabinet-file__photo[hidden] { display: none; }.cabinet-file__photo img { width: 100%; height: 132px; display: block; object-fit: contain; background: #ddd1b9; }
.cabinet-file__summary { font: 13px/1.75 'IBM Plex Mono',monospace; color: #554a37; margin: 0 0 17px; }
.cabinet-file__tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 22px; padding: 0; }.cabinet-file__tags li { background: #ded0b5; padding: 5px 8px; border-radius: 2px; font: 10px 'IBM Plex Mono',monospace; }
.cabinet-file__read { display: flex; justify-content: space-between; align-items: center; padding: 13px 15px; background: #1a2829; border: 1px solid #8a7148; outline: 2px solid #c1a475; outline-offset: 2px; border-radius: 2px; color: #f7efd9; text-decoration: none; font: 12px 'IBM Plex Mono',monospace; }
.cabinet-file__read:hover { background: #2e4542; color: #fff; }
.cabinet-file__paging { display: flex; gap: 12px; margin: 17px 0; }.cabinet-file__paging button { flex: 1; background: transparent; border: 1px solid #bda986; padding: 10px 5px; border-radius: 3px; color: #55442e; font: 11px 'IBM Plex Mono',monospace; cursor: pointer; }
.cabinet-file__numbers { display: flex; flex-wrap: wrap; gap: 5px; justify-content: space-between; }.cabinet-file__numbers button { background: none; border: 0; border-bottom: 1px solid transparent; padding: 7px 2px; color: #806e52; font: 10px 'IBM Plex Mono',monospace; cursor: pointer; }.cabinet-file__numbers button[aria-current="true"] { color: #164c49; border-color: #164c49; font-weight: 700; }
.cabinet-hint { position: absolute; bottom: 29px; left: 5%; color: #c4c3b5; font: 11px 'IBM Plex Mono',monospace; letter-spacing: .03em; }
.cabinet-announcement { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.is-cabinet .planet-destinations,.is-cabinet .camera-controls,.is-cabinet .neon-footer { display: none; }
.is-cabinet .scene-tooltip { left: 33%; bottom: 70px; }
.cabinet-ui :focus-visible { outline: 2px solid #297e75; outline-offset: 4px; }
@media(max-width:720px) {
  .cabinet-back { left: 20px; top: 62px; padding: 9px 12px; font-size: 10px; }
  .cabinet-file { top: auto; bottom: 20px; left: 16px; right: 16px; width: auto; max-height: 47%; padding: 19px; }
  .cabinet-file h2 { font-size: 25px; margin-bottom: 12px; }.cabinet-file__heading>p { margin-top: 15px; }.cabinet-file__summary { font-size: 11px; line-height: 1.65; }.cabinet-file__photo { float: right; width: 31%; margin: 0 0 10px 13px; }.cabinet-file__photo img { height: 79px; }.cabinet-file__tags { margin-bottom: 15px; }.cabinet-file__read { clear: both; }
  .cabinet-hint { display: none; }.is-cabinet .scene-tooltip { display: none; }
}
@media(prefers-reduced-motion:reduce) { .cabinet-file__photo { transform: none; } }

/* Camp stations remain non-modal: the landscape can still be explored. */
.build-reader__tags { display: flex; flex-wrap: wrap; gap: 8px 12px; margin: 16px 0; }
.build-reader__tags > span { display: inline-block; }
.neon-header>button[data-camp-free] { margin-left:auto; margin-right:20px; }
.camp-panel[hidden] { display:none; }
.camp-panel { position:absolute; z-index:7; right:3%; top:18%; width:min(330px,32vw); padding:26px; background:#13232deb; border:1px solid #59777b; box-shadow:0 18px 60px #0005; color:#e7e2d3; backdrop-filter:blur(10px); }
.camp-panel h2 { font:500 32px Georgia,serif; margin:25px 0 15px; color:#f4ead6; }
.camp-panel p { font:13px/1.8 'IBM Plex Mono',monospace; }
.camp-panel button { background:none;border:0;color:#87e2d7;font:12px 'IBM Plex Mono',monospace;cursor:pointer; }
.camp-empty { border-top:1px solid #45606a;padding-top:16px;color:#aebec5; }
.camp-post { display:block;padding:16px 0;border-top:1px solid #45606a;color:#f1e9d8;text-decoration:none; }.camp-post time { display:block;font:10px monospace;color:#94b8be;margin-bottom:8px; }
@media(max-width:720px) {
  .neon-header>button[data-camp-free] { min-height: 44px; font-size: 11px; margin-right: 10px; }
  .camp-panel { right: 16px; left: 16px; top: auto; bottom: 212px; width: auto; max-height: 40svh; overflow: auto; padding: 18px; }
  .camp-panel h2 { font-size: 26px; margin: 15px 0; }
  .planet-destinations { gap: 4px; }
  .planet-destinations button { min-height: 44px; padding: 8px; font-size: 12px; }
  .is-planet .neon-footer>span { bottom: 220px; }
}
.camp-panel.is-habitat{top:10%;width:min(390px,36vw);max-height:76%;overflow:auto;border-radius:12px;background:#10212cef;border-color:#74b7b780}.habitat-profile[hidden]{display:none}.habitat-profile h3{font:500 24px 'Space Grotesk',sans-serif;margin:18px 0 12px}.habitat-profile .habitat-profile__id{font-size:9px;letter-spacing:.12em;color:#edaa79}.habitat-contact{border-top:1px solid #779c9c55;margin-top:22px;padding-top:10px}.habitat-contact a{display:block;color:#9be5d8;font:12px/1.8 'IBM Plex Mono',monospace;overflow-wrap:anywhere;margin:14px 0;text-underline-offset:4px}.habitat-contact small{font:10px monospace;color:#92a8b5}.camp-panel.is-habitat>h2{font:500 30px 'Space Grotesk',sans-serif;margin-bottom:10px}.camp-panel.is-habitat>[data-camp-copy]{display:none}@media(max-width:720px){.camp-panel.is-habitat{top:auto;bottom:105px;max-height:43svh;width:auto;right:12px;left:12px;padding:18px}.habitat-profile h3{font-size:20px}}
.habitat-modal{width:min(580px,calc(100vw - 32px));max-height:86svh;overflow:auto;margin:auto;padding:36px;border:1px solid #8bc7c680;border-radius:18px;background:radial-gradient(ellipse at top right,#244750,#101d2b 65%);color:#e9ece5;box-shadow:0 25px 100px #000a}.habitat-modal::backdrop{background:#020b16a6;backdrop-filter:blur(5px)}.habitat-modal form{margin:0}.habitat-modal__close{display:block;margin-left:auto;background:transparent;border:1px solid #769c9c66;border-radius:6px;color:#b5e4df;padding:8px 12px;cursor:pointer}.habitat-modal h2{font:500 42px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.04em;margin:20px 0}.habitat-modal p{font:14px/1.85 'IBM Plex Mono',monospace;color:#c4d0d5}.habitat-modal .habitat-profile__id{color:#edaa79;font-size:10px;letter-spacing:.12em}.habitat-modal .habitat-contact h3{font-size:26px}.habitat-modal__return{margin-top:24px;padding:13px 18px;border:1px solid #8bc7c6;border-radius:6px;background:#88d6cd;color:#10212c;font:13px 'IBM Plex Mono',monospace;cursor:pointer}.habitat-modal button:focus-visible,.habitat-modal a:focus-visible{outline:2px solid #edaa79;outline-offset:4px}@media(max-width:600px){.habitat-modal{padding:24px}.habitat-modal h2{font-size:34px}.habitat-modal p{font-size:12px}}
