:root {
  color-scheme: dark;
  --ink: #1a1210;
  --paper: #f1dfc0;
  --orange: #c4602d;
  --orange-deep: #8d311c;
  --sand: #d49558;
  --line: rgba(241, 223, 192, 0.22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: "DM Mono", monospace;
}

a { color: inherit; }
.masthead {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid rgba(241, 223, 192, 0.24);
  background: rgba(26, 18, 16, 0.72);
  backdrop-filter: blur(15px);
}
.wordmark {
  font-family: "Archivo Black", sans-serif;
  font-size: clamp(1rem, 2vw, 1.35rem);
  letter-spacing: -0.04em;
  text-decoration: none;
}
.signal {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: rgba(241, 223, 192, 0.7);
  font-size: 0.6rem;
  letter-spacing: 0.09em;
}
.signal-dot {
  width: 0.46rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #f08a4f;
  box-shadow: 0 0 0 0 rgba(240, 138, 79, 0.55);
  animation: pulse 2.4s infinite;
}

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 8rem 5vw 5vw;
}
.hero-art {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18, 11, 10, 0.18), transparent 60%),
    url("/assets/kangarubin-hero.png?v=bright-original") center / cover no-repeat;
  filter: saturate(0.93) contrast(1.04);
  transform: scale(1.01);
}
.hero-grain {
  position: absolute;
  inset: 0;
  opacity: 0.18;
  pointer-events: none;
  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='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
.hero-copy { position: relative; z-index: 2; width: min(690px, 92vw); }
.eyebrow {
  margin: 0 0 1rem;
  font-size: 0.66rem;
  letter-spacing: 0.13em;
}
h1, h2 {
  margin: 0;
  font-family: "Archivo Black", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.075em;
}
h1 {
  max-width: 8ch;
  font-size: clamp(4.6rem, 11.5vw, 10.5rem);
  line-height: 0.72;
  text-shadow: 0 4px 30px rgba(26, 18, 16, 0.25);
}
h1 em { color: #dc743f; font-style: normal; }
.hero-note {
  width: min(36rem, 78vw);
  margin: 2rem 0 1.6rem;
  font-size: clamp(0.72rem, 1.1vw, 0.9rem);
  line-height: 1.65;
}
.down {
  display: inline-flex;
  gap: 0.8rem;
  align-items: center;
  text-decoration: none;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
}
.down span { font-size: 1.2rem; }

.rooms {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(400px, 1.6fr);
  gap: 8vw;
  padding: clamp(5rem, 10vw, 10rem) 5vw;
  background: var(--paper);
  color: var(--ink);
}
.section-intro { position: sticky; top: 7rem; align-self: start; }
.section-intro h2 { font-size: clamp(2.9rem, 5vw, 5.5rem); line-height: 0.88; }
.section-intro > p:last-child { max-width: 31rem; margin-top: 2rem; line-height: 1.7; font-size: 0.8rem; }
.room-list { border-top: 2px solid var(--ink); }
.room {
  position: relative;
  display: grid;
  grid-template-columns: 2.6rem 1fr auto;
  grid-template-areas: "no name arrow" ". desc arrow";
  gap: 0.3rem 1rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid rgba(26, 18, 16, 0.42);
  text-decoration: none;
  transition: padding 180ms ease, color 180ms ease;
}
.room::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  transform: scaleX(0);
  transform-origin: right;
  background: var(--orange);
  transition: transform 220ms ease;
}
.room:hover::before, .room:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.room > span { position: relative; z-index: 1; }
.room:hover, .room:focus-visible { padding-inline: 1rem; color: #fff1da; outline: none; }
.room-no { grid-area: no; font-size: 0.64rem; padding-top: 0.45rem; }
.room-name { grid-area: name; font-family: "Archivo Black", sans-serif; font-size: clamp(1.8rem, 4vw, 4.2rem); letter-spacing: -0.06em; }
.room-desc { grid-area: desc; font-size: 0.68rem; opacity: 0.72; }
.room-arrow { grid-area: arrow; align-self: center; font-size: 1.7rem; }

.interlude {
  min-height: 70svh;
  display: grid;
  place-content: center;
  padding: 5rem 2rem;
  background: var(--orange-deep);
  font-family: "Archivo Black", sans-serif;
  font-size: clamp(2.7rem, 8vw, 8rem);
  letter-spacing: -0.07em;
  line-height: 0.86;
  text-align: center;
}
.interlude p { margin: 0; }
.interlude p:nth-child(2) { color: var(--sand); }

footer {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.4rem;
  font-size: 0.58rem;
  letter-spacing: 0.08em;
}

@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(240, 138, 79, 0); } 100% { box-shadow: 0 0 0 0 rgba(240, 138, 79, 0); } }
@media (max-width: 760px) {
  .signal { display: none; }
  .hero { min-height: 92svh; padding-inline: 1.25rem; }
  .hero-art { background-position: 62% center; }
  .hero-art::after { content: ""; position: absolute; inset: 0; background: rgba(20, 11, 8, 0.25); }
  h1 { font-size: clamp(4.3rem, 21vw, 7rem); }
  .rooms { grid-template-columns: 1fr; padding-inline: 1.25rem; }
  .section-intro { position: static; }
  .room { grid-template-columns: 2rem 1fr auto; }
  footer { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
