/* Live instruments: the house frame and type, in the green of working tools. */

.instrument-lobby {
  --lobby-ink: #172039;
  --lobby-rule: #c5d3cc;
  --lobby-live: #1c6653;
  width: min(1180px, calc(100% - 32px));
  margin: 24px auto;
  overflow: hidden;
  background-color: var(--paper);
  border: 1px solid #36455f;
  outline: 1px solid rgba(255, 255, 255, .5);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .35),
    inset 0 -2px rgba(12, 20, 34, .42),
    0 22px 60px rgba(22, 31, 52, .38);
}

.lobby-fresco {
  position: relative;
  padding: 76px clamp(22px, 5vw, 64px) 52px;
  color: #fff;
  background-color: #14352c;
  background-image:
    radial-gradient(120% 90% at 85% 8%, rgba(120, 210, 170, .3), transparent 60%),
    radial-gradient(90% 70% at 8% 100%, rgba(255, 207, 102, .18), transparent 60%),
    linear-gradient(180deg, #2f6b57 0%, #14352c 100%);
}

.lobby-fresco .hierarchy-nav.hierarchy-nav {
  position: absolute;
  top: 22px;
  left: clamp(18px, 3vw, 28px);
  max-width: calc(100% - 56px);
  margin: 0;
}

.lobby-fresco h1 {
  max-width: 18ch;
  margin: 0;
  font: 600 clamp(44px, 7.4vw, 96px)/.94 var(--house-serif);
  letter-spacing: -.012em;
  text-shadow: 0 2px 18px rgba(4, 18, 12, .35);
}

.lobby-deck {
  max-width: 46ch;
  margin: 18px 0 0;
  color: #e6f1ea;
  font: 19px/1.45 var(--house-serif);
}

.lobby-floor {
  padding: 40px clamp(22px, 5vw, 64px) 56px;
  background: linear-gradient(180deg, #e0ebe5 0, var(--pearl) 140px, var(--paper) 100%);
  box-shadow: inset 0 14px 26px -18px rgba(15, 29, 61, .55);
}

.instrument-register { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }

.instrument-record {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) minmax(220px, .65fr);
  gap: 22px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid var(--lobby-rule);
  border-left: 3px solid var(--lobby-live);
  box-shadow: inset 0 1px #fff, 0 6px 16px rgba(22, 31, 52, .1);
}

.instrument-state {
  align-self: start;
  display: inline-block;
  padding: 6px 9px;
  color: #fff;
  background: var(--lobby-live);
  border-radius: 2px;
  font: 700 10px/1.2 var(--house-sans);
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
}

.instrument-copy h3 { margin: 0 0 8px; font: 600 clamp(24px, 2.6vw, 28px)/1.12 var(--house-serif); }
.instrument-invitation { margin: 0; font: italic 18px/1.45 var(--house-serif); }
.instrument-fact { margin: 0; font: 17px/1.5 var(--house-serif); }

.instrument-meta {
  display: grid;
  align-content: start;
  gap: 14px;
  padding-left: 20px;
  border-left: 1px solid var(--lobby-rule);
}

.instrument-command {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  min-height: 40px;
  padding: 9px 16px;
  color: #fff;
  background: linear-gradient(#75aaca, #346c96);
  border: 1px solid #527d9e;
  border-radius: 5px;
  box-shadow: inset 0 1px rgba(255, 255, 255, .46), 0 2px 4px rgba(16, 43, 61, .19);
  font: 700 13px/1.3 var(--house-sans);
  text-decoration: none;
}

.instrument-command:hover,
.instrument-command:focus-visible { color: #fff; background: linear-gradient(#8abbd7, #427da5); }
.instrument-command:active { box-shadow: inset 0 2px 4px rgba(24, 54, 75, .38); transform: translateY(1px); }

.resident-register {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 24px;
  margin-top: 32px;
  padding: 22px 24px;
  background: #e6efe9;
  border-top: 2px solid var(--lobby-live);
}

.resident-register img { width: 160px; height: 160px; max-width: 100%; object-fit: contain; }
.resident-register h2 { margin: 0 0 10px; font: 600 clamp(24px, 2.8vw, 30px)/1.1 var(--house-serif); }
.resident-register p { margin: 0 0 12px; font: 17px/1.55 var(--house-serif); }
.resident-register ul { margin: 0; padding-left: 20px; columns: 2; }
.resident-register li { margin-bottom: 8px; break-inside: avoid; }

@media (max-width: 760px) {
  .instrument-lobby { width: calc(100% - 24px); margin: 12px auto; }
  .lobby-fresco { padding: 84px 20px 38px; }
  .lobby-fresco h1 { font-size: clamp(40px, 13vw, 52px); }
  .lobby-deck { font-size: 17px; }
  .lobby-floor { padding: 30px 16px 40px; }
  .instrument-record, .resident-register { grid-template-columns: 1fr; }
  .instrument-meta { padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--lobby-rule); }
  .instrument-state { justify-self: start; }
  .resident-register ul { columns: 1; }
}

@media (max-width: 520px) {
  .instrument-lobby { width: 100%; margin: 0; border-left: 0; border-right: 0; outline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .instrument-command:active { transform: none; }
}
