:root {
  --coal: #030302;
  --ink: #0a0908;
  --paper: #cfc4ad;
  --paper-dim: #8d826f;
  --rust: #7b3f2a;
  --wound: #8e211c;
  --blue: #60777a;
  --line: rgba(207, 196, 173, 0.18);
  --mx: 0px;
  --my: 0px;
  --spot-x: 50vw;
  --spot-y: 48vh;
  --mouse-x: 50vw;
  --mouse-y: 48vh;
  --cursor-x: 50vw;
  --cursor-y: 50vh;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  cursor: url("../ui/cursor-amelia.png") 4 4, auto;
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--coal);
  color: var(--paper);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.55;
}

body.intro-open {
  overflow: hidden;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 87;
  pointer-events: none;
}

body::before {
  opacity: 0.14;
  background:
    linear-gradient(101deg, transparent 0 18%, rgba(207,196,173,0.12) 18.08%, transparent 18.28%),
    linear-gradient(83deg, transparent 0 69%, rgba(96,119,122,0.1) 69.08%, transparent 69.24%),
    linear-gradient(92deg, transparent 0 42%, rgba(142,33,28,0.08) 42.08%, transparent 42.22%);
  mix-blend-mode: screen;
  transform: translate3d(calc(var(--mx) * 0.08), calc(var(--my) * 0.08), 0);
  animation: hairline-tremble 17s steps(6) infinite;
}

body::after {
  opacity: 0.075;
  background:
    url("../ui/sombra-arquivo.png"),
    url("../ui/poeira-memoria.png"),
    repeating-linear-gradient(0deg, transparent 0 5px, rgba(207,196,173,0.035) 5px 6px, transparent 6px 13px),
    radial-gradient(circle at 16% 74%, rgba(207,196,173,0.12), transparent 0.12rem),
    radial-gradient(circle at 87% 19%, rgba(96,119,122,0.12), transparent 0.1rem);
  background-position: -8vw 18vh, 76vw 54vh, 0 0, 0 0, 0 0;
  background-repeat: no-repeat, no-repeat, repeat, repeat, repeat;
  background-size: min(44vw, 28rem), min(36vw, 22rem), auto, 21rem 17rem, 29rem 31rem;
  mix-blend-mode: soft-light;
  filter: saturate(0.38) contrast(1.08) brightness(0.74);
  transform: translate3d(calc(var(--mx) * -0.05), calc(var(--my) * -0.05), 0);
  animation: surface-flicker 13s steps(5) infinite;
}

button { color: inherit; font: inherit; }
img { display: block; max-width: 100%; }

.grain,
.breathing-light,
.rare-drops,
.memory-cursor {
  position: fixed;
  pointer-events: none;
}

.memory-cursor {
  display: none;
}

.grain {
  inset: -12%;
  z-index: 90;
  opacity: 0.24;
  background:
    radial-gradient(circle at 12% 18%, rgba(207,196,173,0.05), transparent 0.18rem),
    radial-gradient(circle at 73% 42%, rgba(255,255,255,0.035), transparent 0.14rem),
    radial-gradient(circle at 41% 78%, rgba(0,0,0,0.18), transparent 0.2rem),
    repeating-linear-gradient(91deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(2deg, rgba(0,0,0,0.18) 0 2px, transparent 2px 9px);
  background-size: 17rem 19rem, 23rem 29rem, 13rem 11rem, auto, auto;
  mix-blend-mode: overlay;
  animation: grain-drift 9s steps(8) infinite, grain-pulse 7s ease-in-out infinite alternate;
}

.breathing-light {
  z-index: 4;
  border-radius: 999px;
  filter: blur(42px);
  mix-blend-mode: screen;
  opacity: 0.28;
  translate: calc(var(--mx) * 0.16) calc(var(--my) * 0.16);
}

.breathing-light--one {
  width: 18rem;
  height: 24rem;
  left: -8rem;
  top: 18vh;
  background: rgba(123,63,42,0.34);
  animation: light-breath 26s ease-in-out infinite alternate;
}

.breathing-light--two {
  width: 22rem;
  height: 18rem;
  right: -10rem;
  bottom: 8vh;
  background: rgba(96,119,122,0.2);
  animation: light-breath 31s ease-in-out 2s infinite alternate-reverse;
}

.rare-drops {
  inset: 0;
  z-index: 88;
  opacity: 0.24;
  background:
    radial-gradient(ellipse at 28% -8%, transparent 0 63%, rgba(207,196,173,0.32) 64%, transparent 66%),
    radial-gradient(ellipse at 71% -12%, transparent 0 70%, rgba(142,33,28,0.2) 71%, transparent 73%),
    radial-gradient(ellipse at 48% -10%, transparent 0 78%, rgba(96,119,122,0.16) 79%, transparent 81%);
  animation: drops-fall 23s ease-in-out infinite;
}

@media (pointer: fine) {
  body,
  a,
  button,
  .series-grid li,
  .series-grid button,
  .entry-object:disabled {
    cursor: none !important;
  }

  .memory-cursor {
    left: 0;
    top: 0;
    z-index: 160;
    display: block;
    width: 2rem;
    height: 2.72rem;
    border: 0;
    opacity: 0;
    background: url("../ui/cursor-amelia.png") 0 0 / contain no-repeat;
    transform: translate3d(var(--cursor-x), var(--cursor-y), 0) translate(-9%, -6%);
    transition: width 260ms ease, height 260ms ease, opacity 380ms ease, filter 260ms ease;
    filter: drop-shadow(0 0 0.45rem rgba(207,196,173,0.18)) drop-shadow(0 0.3rem 0.55rem rgba(0,0,0,0.48));
    mix-blend-mode: screen;
  }

  body.has-memory-cursor .memory-cursor {
    opacity: 0.86;
  }

  body.is-cursor-action .memory-cursor {
    width: 2.28rem;
    height: 3.1rem;
    opacity: 0.96;
    filter: brightness(1.12) drop-shadow(0 0 0.75rem rgba(207,196,173,0.22)) drop-shadow(0 0.35rem 0.65rem rgba(0,0,0,0.52));
  }
}

@keyframes grain-drift {
  0%, 100% { transform: translate3d(0,0,0); }
  35% { transform: translate3d(-1.2%,0.8%,0); }
  70% { transform: translate3d(1.1%,-1.3%,0); }
}

@keyframes grain-pulse {
  from { opacity: 0.15; filter: contrast(0.9); }
  to { opacity: 0.31; filter: contrast(1.22); }
}

@keyframes light-breath {
  from { transform: translate3d(0,0,0) scale(0.92); opacity: 0.11; }
  to { transform: translate3d(1.8rem,1.3rem,0) scale(1.16); opacity: 0.34; }
}

@keyframes drops-fall {
  0%, 88%, 100% { transform: translateY(-18%); opacity: 0; }
  92% { opacity: 0.26; }
  98% { transform: translateY(22%); opacity: 0; }
}

@keyframes hairline-tremble {
  0%, 100% { opacity: 0.06; clip-path: inset(0 0 0 0); }
  28% { opacity: 0.12; clip-path: inset(0 0 4% 0); }
  63% { opacity: 0.08; clip-path: inset(3% 0 0 0); }
}

@keyframes surface-flicker {
  0%, 100% { opacity: 0.06; }
  37% { opacity: 0.14; }
  71% { opacity: 0.09; }
}

.intro-screen {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 68%, rgba(28,18,13,0.16), transparent 26rem),
    #000;
  transition: opacity 1400ms ease, visibility 1400ms ease;
}

.intro-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  opacity: 0.04;
  background:
    url("../ui/simbolo-entrada.png"),
    url("../ui/mancha-luz.png"),
    url("../ui/poeira-memoria.png");
  background-position: calc(var(--spot-x) - 5rem) calc(var(--spot-y) - 6rem), calc(var(--spot-x) - 9rem) calc(var(--spot-y) - 7rem), 72vw 18vh;
  background-repeat: no-repeat;
  background-size: 10rem auto, 18rem auto, min(34vw, 20rem) auto;
  filter: saturate(0.42) contrast(1.1) brightness(0.58);
  mix-blend-mode: soft-light;
  animation: intro-ghost-cycle 14800ms ease-in-out infinite alternate;
  transition: opacity 700ms ease;
}

.intro-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 7;
  background:
    radial-gradient(circle 18rem at var(--spot-x) var(--spot-y), transparent 0 34%, rgba(0,0,0,0.62) 64%, #000 100%),
    #000;
  animation: first-darkness 3200ms ease forwards;
}

.intro-screen.is-hidden { opacity: 0; visibility: hidden; }

.intro-screen.is-inspecting::after {
  opacity: 0.46;
}

.intro-screen__image,
.intro-layer,
.intro-material,
.intro-asset-layer,
.intro-screen__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.intro-screen__image {
  object-fit: cover;
  opacity: 1;
  filter: contrast(1.08) brightness(0.86) saturate(0.8);
  transform: scale(1.01);
  animation: none;
}

.intro-layer,
.intro-material {
  z-index: 2;
  object-fit: cover;
  opacity: 0;
  mix-blend-mode: screen;
  pointer-events: none;
  filter: saturate(0.5) contrast(1.22) brightness(0.26);
  transition: transform 180ms ease-out;
  translate: calc(var(--mx) * 0.04) calc(var(--my) * 0.04);
  mask-image: radial-gradient(circle 8rem at var(--spot-x) var(--spot-y), #000 0 28%, rgba(0,0,0,0.76) 44%, transparent 78%);
  animation: none;
}

.intro-layer--room {
  clip-path: polygon(0 16%, 100% 4%, 100% 88%, 0 100%);
  opacity: 0;
  transform: scale(1.11) translate3d(-2%, 1%, 0);
  animation-delay: 1600ms;
}

.intro-layer--machine {
  left: auto;
  right: -10vw;
  top: 12vh;
  width: min(58vw, 34rem);
  height: 62vh;
  opacity: 0;
  transform: rotate(-3deg) scale(1.05);
  animation-delay: 3200ms;
}

.intro-layer--door {
  left: -9vw;
  top: 17vh;
  width: min(52vw, 30rem);
  height: 68vh;
  opacity: 0;
  transform: rotate(2deg) scale(1.04);
  animation-delay: 4800ms;
}

.intro-layer--glass {
  left: 31vw;
  top: 4vh;
  width: min(54vw, 36rem);
  height: 72vh;
  opacity: 0;
  transform: rotate(-1deg) scale(1.12);
  clip-path: polygon(9% 0, 100% 12%, 87% 78%, 22% 100%);
  mix-blend-mode: lighten;
  animation-delay: 6200ms;
}

.intro-layer--water {
  left: 16vw;
  top: 45vh;
  width: min(70vw, 48rem);
  height: 42vh;
  opacity: 0;
  transform: rotate(1deg) scale(1.18);
  clip-path: polygon(0 34%, 100% 8%, 93% 100%, 8% 82%);
  mix-blend-mode: screen;
  animation-delay: 7600ms;
}

.intro-layer--mask {
  left: auto;
  right: 12vw;
  top: 17vh;
  width: min(36vw, 24rem);
  height: 52vh;
  opacity: 0;
  transform: rotate(4deg) scale(1.1);
  clip-path: circle(42% at 54% 46%);
  mix-blend-mode: color-dodge;
  animation-delay: 9000ms;
}

.intro-material {
  z-index: 4;
  object-fit: contain;
  mix-blend-mode: screen;
}

.intro-asset-layer {
  z-index: 2;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  mix-blend-mode: screen;
  filter: saturate(0.62) contrast(1.14) brightness(0.72);
  transition: opacity 520ms ease, filter 520ms ease, transform 420ms ease-out;
  will-change: opacity;
}

.intro-asset-layer--dawn {
  z-index: 2;
  opacity: 0;
  mix-blend-mode: soft-light;
  filter: saturate(0.34) contrast(1.04) brightness(0.52);
  animation: none;
}

.intro-asset-layer--dust {
  z-index: 7;
  opacity: 0.24;
  mix-blend-mode: soft-light;
  filter: saturate(0.38) contrast(1.04) brightness(0.54);
  animation: dust-random-fade 33700ms ease-in-out infinite, cloud-orbit-soft 46300ms ease-in-out 2100ms infinite;
}

.intro-asset-layer--glass {
  z-index: 3;
  opacity: 0.18;
  mix-blend-mode: lighten;
  animation: asset-random-breath 36400ms ease-in-out 1200ms infinite alternate;
}

.intro-asset-layer--wires {
  z-index: 4;
  opacity: 0.22;
  mix-blend-mode: screen;
  transform: translate3d(calc(var(--mx) * 0.05), calc(var(--my) * 0.05), 0);
  animation: wires-almost-still 38900ms ease-in-out 2300ms infinite alternate, cloud-orbit-wide 52100ms ease-in-out 700ms infinite;
}

.intro-asset-layer--fragments-one,
.intro-asset-layer--fragments-two {
  z-index: 5;
  opacity: 0.18;
  mix-blend-mode: lighten;
  filter: saturate(0.42) contrast(1.08) brightness(0.62);
}

.intro-asset-layer--fragments-one {
  animation: fragments-random-visit 34000ms ease-in-out 4200ms infinite, cloud-orbit-soft 48700ms ease-in-out 5400ms infinite reverse;
}

.intro-asset-layer--fragments-two {
  animation: fragments-random-visit 38000ms ease-in-out 9600ms infinite reverse, cloud-orbit-wide 55800ms ease-in-out 9300ms infinite reverse;
}

.intro-asset-layer--wait,
.intro-asset-layer--button-active,
.intro-asset-layer--misclick {
  z-index: 8;
  opacity: 0;
}

.intro-asset-layer--button-active {
  filter: saturate(0.72) contrast(1.1) brightness(0.86);
}

.intro-asset-layer--misclick {
  filter: saturate(0.56) contrast(1.16) brightness(0.92);
  mix-blend-mode: lighten;
}

.intro-asset-layer--lantern {
  z-index: 8;
  opacity: 0;
  mix-blend-mode: screen;
  filter: saturate(0.86) contrast(1.08) brightness(1.08);
  mask-image:
    radial-gradient(ellipse 28rem 21rem at calc(var(--mouse-x) + 0.42rem) calc(var(--mouse-y) - 0.28rem), #000 0 22%, rgba(0,0,0,0.82) 48%, rgba(0,0,0,0.36) 78%, transparent 96%),
    radial-gradient(ellipse 22rem 25rem at calc(var(--mouse-x) - 0.74rem) calc(var(--mouse-y) + 0.52rem), rgba(0,0,0,0.5) 0 32%, transparent 84%);
  -webkit-mask-image:
    radial-gradient(ellipse 28rem 21rem at calc(var(--mouse-x) + 0.42rem) calc(var(--mouse-y) - 0.28rem), #000 0 22%, rgba(0,0,0,0.82) 48%, rgba(0,0,0,0.36) 78%, transparent 96%),
    radial-gradient(ellipse 22rem 25rem at calc(var(--mouse-x) - 0.74rem) calc(var(--mouse-y) + 0.52rem), rgba(0,0,0,0.5) 0 32%, transparent 84%);
  mask-composite: intersect;
  -webkit-mask-composite: source-in;
}

.intro-screen.is-entry-hover .intro-asset-layer--button-active {
  opacity: 0.58;
  mix-blend-mode: screen;
}

.intro-screen.is-inspecting .intro-asset-layer--lantern {
  opacity: 0.88;
  transition-duration: 160ms;
}

.intro-screen.is-waiting .intro-asset-layer--wait,
.intro-screen.intro-idle .intro-asset-layer--wait {
  opacity: 0.22;
  transition-duration: 1400ms;
  animation: wait-layer-listens 13000ms ease-in-out infinite alternate;
}

.intro-screen.intro-idle .intro-asset-layer--dust,
.intro-screen.is-waiting .intro-asset-layer--dust {
  opacity: 0.32;
  transition-duration: 1600ms;
}

.intro-screen.is-misclicking .intro-asset-layer--misclick,
.intro-screen.intro-misclick .intro-asset-layer--misclick {
  opacity: 0.48;
  animation: machine-nervous-answer 720ms ease-out both;
}

.intro-screen.is-misclicking,
.intro-screen.intro-misclick {
  animation: intro-micro-shiver 260ms ease-out both;
}

.intro-material--paper {
  left: 8vw;
  top: 12vh;
  width: min(38vw, 18rem);
  height: min(42vh, 23rem);
  opacity: 0.22;
  transform: rotate(-11deg);
  animation-delay: 2400ms;
}

.intro-material--stain {
  left: auto;
  right: 12vw;
  top: 42vh;
  width: min(42vw, 22rem);
  height: min(36vh, 18rem);
  opacity: 0.2;
  filter: saturate(0.48) contrast(1.18) brightness(0.36);
  animation-delay: 5200ms;
}

.intro-screen__shade {
  z-index: 5;
  background:
    radial-gradient(circle 12rem at var(--spot-x) var(--spot-y), rgba(238,218,170,0.16), rgba(126,95,61,0.06) 44%, transparent 76%),
    radial-gradient(circle at 48% 72%, rgba(207,196,173,0.08), transparent 12rem),
    radial-gradient(circle at 50% 50%, rgba(142,33,28,0.08), transparent 28rem),
    linear-gradient(180deg, rgba(0,0,0,0.46), rgba(0,0,0,0.72) 46%, rgba(0,0,0,0.5));
  animation: none;
}

.intro-screen.is-inspecting .intro-layer,
.intro-screen.is-inspecting .intro-material,
.intro-screen.is-inspecting .intro-layer--machine,
.intro-screen.is-inspecting .intro-layer--door {
  opacity: 0.12;
  filter: saturate(0.5) contrast(1.1) brightness(0.42);
}

.intro-screen.is-secret .intro-layer--glass,
.intro-screen.is-secret .intro-layer--water,
.intro-screen.is-secret .intro-layer--mask {
  z-index: 8;
  opacity: 0.12 !important;
  filter: saturate(0.46) contrast(1.08) brightness(0.58);
  mask-image: none;
  animation: secret-listen 1800ms ease both;
}

.intro-screen.is-entry-hover .intro-layer--room,
.intro-screen.is-entry-hover .intro-layer--glass {
  z-index: 5;
  opacity: 0.04;
  filter: saturate(0.48) contrast(1.06) brightness(0.48);
}

.intro-screen.is-entry-hover .intro-layer--machine,
.intro-screen.is-entry-hover .intro-layer--mask {
  z-index: 4;
  opacity: 0.03;
}

.intro-screen.is-opening .intro-screen__shade {
  opacity: 0;
  animation: none;
  transition: opacity 320ms ease;
}

.intro-screen.is-opening::before,
.intro-screen.is-opening::after {
  opacity: 0;
  animation: none;
  transition: opacity 340ms ease;
}

.intro-screen.is-opening .intro-screen__image {
  animation: none;
  filter: contrast(1.38) brightness(1.34) saturate(1.18);
  transform: scale(1.024);
  transition: filter 820ms ease, transform 820ms ease;
}

.intro-screen.is-opening .intro-layer,
.intro-screen.is-opening .intro-material,
.intro-screen.is-opening .intro-asset-layer,
.intro-screen.is-opening .intro-ritual,
.intro-screen.is-opening .intro-flash,
.intro-screen.is-opening .trembling-line {
  opacity: 0 !important;
  filter: saturate(0.42) contrast(1.02) brightness(0.38);
  animation: none !important;
  transition: opacity 260ms ease, filter 260ms ease, transform 260ms ease;
}

.intro-screen.is-opening .intro-entry {
  opacity: 0;
  transform: translateX(-50%) translateY(0.45rem) scale(0.96);
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms ease;
}

.intro-screen.is-opening .intro-title {
  z-index: 22;
  animation: title-leaves 2400ms ease both;
}

.intro-flash {
  position: absolute;
  z-index: 8;
  width: 19rem;
  height: 19rem;
  border-radius: 999px;
  filter: blur(38px);
  opacity: 0;
  mix-blend-mode: screen;
  pointer-events: none;
}

.intro-flash--one {
  left: 8%;
  top: 22%;
  background: rgba(96,119,122,0.34);
  animation: wet-flash 6400ms ease-in-out infinite;
}

.intro-flash--two {
  right: 8%;
  bottom: 18%;
  background: rgba(123,63,42,0.4);
  animation: wet-flash 8200ms ease-in-out 1400ms infinite;
}

.trembling-line {
  position: absolute;
  z-index: 9;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--wound), var(--paper), transparent);
  transform-origin: left center;
  animation: line-draw 4300ms steps(18) 2300ms both, line-shake 760ms steps(3) 7200ms infinite;
}

.trembling-line--intro {
  left: 50%;
  top: 58%;
  width: min(19rem, 70vw);
  transform: translateX(-50%);
}

.intro-ritual,
.intro-title,
.intro-entry {
  position: relative;
  z-index: 10;
}

.intro-ritual {
  z-index: 11;
  width: min(72vw, 26rem);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  opacity: 0;
  animation: ritual-arrival 3200ms ease 3900ms forwards;
}

.intro-ritual--assets {
  width: min(104vw, 54rem);
  height: min(64vh, 38rem);
  opacity: 1;
  overflow: visible;
  mix-blend-mode: lighten;
  pointer-events: none;
  filter: saturate(0.42) contrast(1.04) brightness(0.5);
  mask-image: radial-gradient(ellipse 64% 43% at 50% 52%, #000 0 38%, rgba(0,0,0,0.72) 56%, rgba(0,0,0,0.24) 74%, transparent 92%);
  -webkit-mask-image: radial-gradient(ellipse 64% 43% at 50% 52%, #000 0 38%, rgba(0,0,0,0.72) 56%, rgba(0,0,0,0.24) 74%, transparent 92%);
}

.intro-ritual__asset {
  position: absolute;
  inset: -28%;
  width: 156%;
  height: 156%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  transform-origin: 52% 48%;
}

.intro-ritual__asset--visible {
  opacity: 0;
  animation: center-layer-fade 23600ms ease-in-out 3900ms infinite, cloud-orbit-center 31800ms ease-in-out 3900ms infinite;
}

.intro-ritual__asset--click {
  mix-blend-mode: soft-light;
  filter: saturate(0.34) contrast(1.08) brightness(0.5);
}

.intro-ritual__asset--lantern {
  opacity: 0.1;
  filter: saturate(0.42) contrast(1.04) brightness(0.48);
  mask-image: radial-gradient(ellipse 7.8rem 6.6rem at 51% 49%, #000 0 16%, rgba(0,0,0,0.54) 39%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 7.8rem 6.6rem at 51% 49%, #000 0 16%, rgba(0,0,0,0.54) 39%, transparent 78%);
}

.intro-screen.is-misclicking .intro-ritual__asset--click {
  animation: center-click-fade 760ms ease-out both;
}

.intro-screen.is-entry-hover .intro-ritual__asset--visible {
  opacity: 0;
}

.intro-title {
  position: absolute;
  z-index: 12;
  left: 50%;
  top: 47%;
  margin: 0;
  transform: translate(-50%, -50%);
  width: min(72vw, 42rem);
  filter: drop-shadow(0 0 1.4rem rgba(207,196,173,0.22)) drop-shadow(0 0 4rem rgba(142,33,28,0.24));
  opacity: 0;
  animation: title-wakes 9800ms ease 1200ms both, title-breath 6400ms ease-in-out 11000ms infinite alternate;
}

.intro-title img {
  width: 100%;
  height: auto;
  opacity: 0.78;
  filter: contrast(1.12) brightness(0.98);
}

.intro-entry {
  position: absolute;
  z-index: 12;
  left: 50%;
  bottom: 8vh;
  transform: translateX(-50%);
}

.ritual-core,
.ritual-orbit,
.ritual-drawer {
  position: absolute;
  display: block;
  pointer-events: none;
}

.ritual-core {
  width: 5.4rem;
  height: 5.4rem;
  border: 1px solid rgba(207,196,173,0.28);
  border-radius: 44% 56% 48% 52%;
  background:
    radial-gradient(circle at 42% 44%, rgba(207,196,173,0.38), transparent 19%),
    radial-gradient(circle at 52% 54%, rgba(142,33,28,0.5), transparent 52%),
    rgba(3,3,2,0.24);
  box-shadow: 0 0 2.4rem rgba(142,33,28,0.38);
  animation: core-breath 4200ms ease-in-out infinite alternate;
}

.ritual-orbit {
  border: 1px solid rgba(207,196,173,0.2);
  border-radius: 50%;
  transform-origin: center;
}

.ritual-orbit--one {
  width: 16rem;
  height: 16rem;
  animation: orbit-turn 18000ms linear infinite;
}

.ritual-orbit--two {
  width: 11rem;
  height: 19rem;
  border-color: rgba(96,119,122,0.24);
  animation: orbit-turn 24000ms linear infinite reverse;
}

.ritual-drawer {
  width: 5.8rem;
  height: 1.7rem;
  border: 1px solid rgba(207,196,173,0.18);
  background: rgba(8,7,6,0.52);
  box-shadow: inset 0 0 1rem rgba(207,196,173,0.08), 0 0.8rem 1.8rem rgba(0,0,0,0.32);
  animation: drawer-memory 6200ms ease-in-out infinite;
}

.ritual-drawer--one {
  left: 9%;
  top: 34%;
  transform: rotate(-7deg);
}

.ritual-drawer--two {
  right: 7%;
  top: 50%;
  animation-delay: 1400ms;
  transform: rotate(5deg);
}

.ritual-drawer--three {
  left: 37%;
  bottom: 14%;
  animation-delay: 2600ms;
  transform: rotate(2deg);
}

.intro-screen h1,
.room-copy h1,
.universe-copy h2,
.portfolio-copy h2,
.series-head h2,
.contact-copy h2 {
  margin: 0;
  line-height: 0.98;
  letter-spacing: 0;
}

.entry-object {
  display: grid;
  place-items: center;
  width: clamp(9.4rem, 22vw, 13.5rem);
  min-height: 4.4rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: transparent;
  box-shadow: none;
  cursor: pointer;
  opacity: 0;
  transform: translateY(0.8rem) rotate(-8deg) scale(0.92);
  pointer-events: none;
  animation: entry-drift 5200ms ease-in-out infinite alternate;
}

.entry-label-image {
  width: 100%;
  height: auto;
  opacity: 1;
  filter: brightness(0.96) drop-shadow(0 1rem 1.6rem rgba(0,0,0,0.62)) drop-shadow(0 0 1.4rem rgba(142,33,28,0.22));
  transition: filter 420ms ease, transform 420ms ease;
}

.intro-screen.is-awake .entry-object {
  opacity: 1;
  transform: translateY(0) rotate(-8deg) scale(1);
  pointer-events: auto;
  transition: opacity 620ms ease, transform 620ms ease;
}

.intro-screen.is-awake .entry-label-image {
  filter: brightness(1.14) drop-shadow(0 1rem 1.6rem rgba(0,0,0,0.62)) drop-shadow(0 0 2rem rgba(207,196,173,0.22));
}

.entry-object:disabled { cursor: wait; filter: grayscale(0.35) brightness(0.78); }

.entry-object:hover,
.entry-object:focus-visible {
  outline: none;
}

.entry-object:hover .entry-label-image,
.entry-object:focus-visible .entry-label-image {
  filter: brightness(1.22) drop-shadow(0 1.1rem 1.7rem rgba(0,0,0,0.64)) drop-shadow(0 0 2.4rem rgba(207,196,173,0.34));
  transform: translateY(-0.08rem) rotate(1deg);
}

@keyframes first-darkness {
  0% { opacity: 1; }
  48% { opacity: 0.98; }
  76% { opacity: 0.54; }
  100% { opacity: 0; }
}
@keyframes machine-wakes {
  0% { opacity: 0.26; filter: contrast(1.08) brightness(0.015) saturate(0.28); transform: scale(1.08); }
  42% { opacity: 0.32; filter: contrast(1.1) brightness(0.03) saturate(0.32); }
  72% { opacity: 0.38; filter: contrast(1.13) brightness(0.065) saturate(0.36); }
  100% { opacity: 0.44; filter: contrast(1.14) brightness(0.12) saturate(0.42); transform: scale(1.01); }
}
@keyframes intro-bg-wakes {
  0% { filter: contrast(1.04) brightness(0.28) saturate(0.54); transform: scale(1.04); }
  48% { filter: contrast(1.08) brightness(0.48) saturate(0.64); }
  100% { filter: contrast(1.1) brightness(0.68) saturate(0.74); transform: scale(1.01); }
}
@keyframes machine-glow {
  from { filter: contrast(1.12) brightness(0.48) saturate(0.64); }
  to { filter: contrast(1.18) brightness(0.86) saturate(0.78); }
}
@keyframes machine-tremor { 0%, 100% { margin-left: 0; } 50% { margin-left: 1px; } }
@keyframes search-light {
  from { opacity: 0.58; transform: translate3d(-2%,0,0); }
  to { opacity: 0.96; transform: translate3d(2%,0,0); }
}
@keyframes dawn-inside {
  0% { filter: brightness(0.62); }
  58% { filter: brightness(0.82); }
  100% { filter: brightness(1.12); }
}
@keyframes wet-flash {
  0%, 82%, 100% { opacity: 0; transform: scale(0.8); }
  88% { opacity: 0.48; transform: scale(1.14); }
}
@keyframes secret-listen {
  0% { opacity: 0; transform: scale(1.01) rotate(-0.2deg); filter: saturate(0.36) contrast(1.02) brightness(0.42); }
  38% { opacity: 0.12; transform: scale(1.035) rotate(0.18deg); filter: saturate(0.5) contrast(1.08) brightness(0.62); }
  100% { opacity: 0; transform: scale(1.02) rotate(0); filter: saturate(0.38) contrast(1.02) brightness(0.46); }
}
@keyframes machine-opens {
  0% {
    opacity: 0.38;
    filter: brightness(0.9);
  }
  18% {
    opacity: 0.14;
    filter: brightness(1.07);
  }
  48% {
    opacity: 0.08;
    filter: brightness(1.1);
  }
  100% {
    opacity: 0.05;
    filter: brightness(1.04);
  }
}
@keyframes intro-open-illumination {
  0% { filter: contrast(1.08) brightness(0.82) saturate(0.78); transform: scale(1.01); }
  18% { filter: contrast(1.08) brightness(0.94) saturate(0.8); transform: scale(1.007); }
  48% { filter: contrast(1.09) brightness(1.04) saturate(0.82); transform: scale(1.003); }
  100% { filter: contrast(1.09) brightness(1.06) saturate(0.83); transform: scale(1); }
}
@keyframes room-dawn-brighten {
  0% {
    filter: saturate(0.5) contrast(1.08) brightness(0.48);
    transform: scale(1.065);
  }
  28% {
    filter: saturate(0.62) contrast(1.12) brightness(0.68);
    transform: scale(1.048);
  }
  68% {
    filter: saturate(0.82) contrast(1.2) brightness(1.16);
    transform: scale(1.025);
  }
  100% {
    filter: saturate(0.9) contrast(1.22) brightness(1.28);
    transform: scale(1.015);
  }
}

@keyframes room-vignette-open {
  0% { opacity: 0.98; }
  36% { opacity: 0.9; }
  100% { opacity: 0.56; }
}
@keyframes intro-ghost-cycle {
  0%, 100% { opacity: 0.07; filter: saturate(0.35) contrast(1.08) brightness(0.58); }
  38% { opacity: 0.19; filter: saturate(0.44) contrast(1.14) brightness(0.8); }
  64% { opacity: 0.04; filter: saturate(0.28) contrast(1.04) brightness(0.48); }
}
@keyframes intro-layer-haunt {
  from { opacity: 0.04; filter: saturate(0.36) contrast(1.1) brightness(0.16); }
  42% { opacity: 0.28; }
  72% { opacity: 0.12; }
  to { opacity: 0.34; filter: saturate(0.72) contrast(1.24) brightness(0.58); }
}
@keyframes intro-dawn-slow {
  from { opacity: 0.04; filter: saturate(0.34) contrast(1.02) brightness(0.46); }
  52% { opacity: 0.105; }
  to { opacity: 0.15; filter: saturate(0.58) contrast(1.04) brightness(0.62); }
}
@keyframes dawn-random-drift {
  0% { opacity: 0.08; transform: translate3d(-0.4rem,0.2rem,0) scale(1.01); }
  23% { opacity: 0.16; transform: translate3d(0.25rem,-0.15rem,0) scale(1.025); }
  51% { opacity: 0.06; transform: translate3d(-0.15rem,-0.25rem,0) scale(1.015); }
  78% { opacity: 0.2; transform: translate3d(0.38rem,0.18rem,0) scale(1.03); }
  100% { opacity: 0.1; transform: translate3d(0,0,0) scale(1.01); }
}
@keyframes asset-random-breath {
  0%, 100% { opacity: 0.18; transform: scale(1.001) translate3d(0,0,0); }
  19% { opacity: 0.38; transform: scale(1.004) translate3d(0.05rem,-0.03rem,0); }
  46% { opacity: 0.22; transform: scale(1.003) translate3d(-0.03rem,0.05rem,0); }
  73% { opacity: 0.48; transform: scale(1.006) translate3d(0.06rem,0.02rem,0); }
}
@keyframes dust-wanders {
  from { transform: translate3d(-0.35rem,0.2rem,0); opacity: 0.05; }
  to { transform: translate3d(0.5rem,-0.24rem,0); opacity: 0.14; }
}
@keyframes dust-random-fade {
  0%, 100% { opacity: 0.22; }
  11% { opacity: 0.42; }
  27% { opacity: 0.26; }
  44% { opacity: 0.58; }
  58% { opacity: 0.3; }
  73% { opacity: 0.48; }
  88% { opacity: 0.32; }
}
@keyframes cloud-orbit-soft {
  0%, 100% { transform: translate3d(-0.18rem,0.08rem,0) rotate(-0.2deg) scale(1.01); }
  18% { transform: translate3d(0.28rem,-0.16rem,0) rotate(0.18deg) scale(1.018); }
  39% { transform: translate3d(0.18rem,0.26rem,0) rotate(-0.08deg) scale(1.012); }
  63% { transform: translate3d(-0.3rem,0.14rem,0) rotate(0.16deg) scale(1.022); }
  84% { transform: translate3d(-0.08rem,-0.22rem,0) rotate(-0.12deg) scale(1.014); }
}
@keyframes cloud-orbit-wide {
  0%, 100% { transform: translate3d(0.12rem,-0.18rem,0) rotate(0.08deg) scale(1.018); }
  21% { transform: translate3d(0.42rem,0.08rem,0) rotate(-0.16deg) scale(1.026); }
  47% { transform: translate3d(-0.06rem,0.36rem,0) rotate(0.2deg) scale(1.014); }
  72% { transform: translate3d(-0.44rem,-0.04rem,0) rotate(-0.1deg) scale(1.028); }
  91% { transform: translate3d(-0.16rem,-0.32rem,0) rotate(0.14deg) scale(1.02); }
}
@keyframes wires-almost-still {
  0% { opacity: 0.22; filter: saturate(0.34) brightness(0.46); transform: translate3d(-0.05rem,0.02rem,0); }
  24% { opacity: 0.48; filter: saturate(0.48) brightness(0.6); transform: translate3d(0.06rem,-0.03rem,0); }
  53% { opacity: 0.26; filter: saturate(0.38) brightness(0.5); transform: translate3d(-0.02rem,-0.04rem,0); }
  79% { opacity: 0.58; filter: saturate(0.52) brightness(0.64); transform: translate3d(0.04rem,0.03rem,0); }
  100% { opacity: 0.3; filter: saturate(0.42) brightness(0.52); transform: translate3d(0.01rem,0,0); }
}
@keyframes fragments-random-visit {
  0%, 100% { opacity: 0.18; transform: translate3d(0,0,0) scale(1); }
  17% { opacity: 0.38; transform: translate3d(-0.08rem,0.04rem,0) scale(1.004); }
  34% { opacity: 0.22; }
  59% { opacity: 0.52; transform: translate3d(0.12rem,-0.06rem,0) scale(1.008); }
  81% { opacity: 0.28; transform: translate3d(-0.04rem,-0.03rem,0) scale(1.003); }
}
@keyframes wait-layer-listens {
  from { opacity: 0.04; filter: saturate(0.28) brightness(0.38); }
  46% { opacity: 0.16; }
  to { opacity: 0.09; filter: saturate(0.42) brightness(0.48); }
}
@keyframes machine-nervous-answer {
  0% { transform: scale(0.985) translate3d(0,0,0) rotate(0deg); filter: contrast(1) brightness(0.82); }
  18% { transform: scale(1.018) translate3d(-0.18rem,0.08rem,0) rotate(-0.28deg); filter: contrast(1.16) brightness(0.98); }
  36% { transform: scale(0.992) translate3d(0.14rem,-0.09rem,0) rotate(0.24deg); filter: contrast(1.22) brightness(1.04); }
  58% { transform: scale(1.035) translate3d(-0.1rem,-0.04rem,0) rotate(-0.16deg); filter: contrast(1.14) brightness(0.96); }
  82% { transform: scale(1.006) translate3d(0.05rem,0.03rem,0) rotate(0.08deg); filter: contrast(1.08) brightness(0.88); }
  100% { transform: scale(1) translate3d(0,0,0) rotate(0deg); filter: contrast(1) brightness(0.82); }
}
@keyframes center-layer-fade {
  0%, 100% { opacity: 0.22; transform: scale(0.994) rotate(-0.16deg) translate3d(-0.04rem,0.02rem,0); }
  13% { opacity: 0.42; }
  31% { opacity: 0.26; transform: scale(1.004) rotate(0.08deg) translate3d(0.05rem,-0.03rem,0); }
  57% { opacity: 0.58; transform: scale(1.008) rotate(-0.04deg) translate3d(-0.03rem,0.05rem,0); }
  74% { opacity: 0.3; }
  89% { opacity: 0.46; transform: scale(1.003) rotate(0.05deg) translate3d(0.03rem,-0.02rem,0); }
}
@keyframes cloud-orbit-center {
  0%, 100% { transform: translate3d(-0.7rem,0.18rem,0) rotate(-0.42deg) scale(1.06); }
  16% { transform: translate3d(0.34rem,-0.34rem,0) rotate(0.3deg) scale(1.08); }
  33% { transform: translate3d(0.82rem,0.08rem,0) rotate(-0.12deg) scale(1.065); }
  51% { transform: translate3d(0.22rem,0.48rem,0) rotate(0.24deg) scale(1.09); }
  74% { transform: translate3d(-0.62rem,0.34rem,0) rotate(-0.28deg) scale(1.075); }
  88% { transform: translate3d(-0.38rem,-0.28rem,0) rotate(0.18deg) scale(1.07); }
}
@keyframes center-click-fade {
  0% { opacity: 0; transform: scale(0.985) translate3d(0.05rem,-0.03rem,0); }
  22% { opacity: 0.24; transform: scale(0.998) translate3d(-0.12rem,0.07rem,0); }
  48% { opacity: 0.46; transform: scale(1.028) translate3d(0.11rem,-0.07rem,0); }
  76% { opacity: 0.18; transform: scale(1.01) translate3d(-0.04rem,0.03rem,0); }
  100% { opacity: 0; transform: scale(1.002) translate3d(0,0,0); }
}
@keyframes intro-micro-shiver {
  0%, 100% { transform: translate3d(0,0,0); }
  38% { transform: translate3d(0.35px,-0.35px,0); }
  68% { transform: translate3d(-0.25px,0.25px,0); }
}
@keyframes ritual-arrival { from { opacity: 0; transform: scale(0.86) rotate(-4deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes title-wakes {
  from { opacity: 0.34; filter: blur(0.18rem) brightness(0.62); }
  54% { opacity: 0.68; }
  to { opacity: 1; filter: blur(0) brightness(1); }
}
@keyframes title-leaves {
  from { opacity: 0.98; filter: blur(0) brightness(1.08); transform: translate(-50%, -50%) scale(1.01); }
  44% { opacity: 0.8; filter: blur(0.015rem) brightness(1.04); transform: translate(-50%, -50%) scale(1.006); }
  78% { opacity: 0.34; filter: blur(0.08rem) brightness(0.94); transform: translate(-50%, -50%) scale(0.996); }
  to { opacity: 0; filter: blur(0.18rem) brightness(0.76); transform: translate(-50%, -50%) scale(0.985); }
}
@keyframes title-breath { from { opacity: 0.78; } to { opacity: 0.96; } }
@keyframes core-breath { from { transform: scale(0.92); opacity: 0.62; } to { transform: scale(1.08); opacity: 1; } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@keyframes drawer-memory {
  0%, 100% { opacity: 0.2; translate: 0 0; }
  44% { opacity: 0.8; translate: 0.7rem -0.2rem; }
  62% { opacity: 0.34; translate: -0.3rem 0.1rem; }
}
@keyframes entry-drift { from { filter: brightness(0.72); } to { filter: brightness(1.08); } }
@keyframes intro-rise { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes line-draw { from { opacity: 0; transform: translateX(-50%) scaleX(0); } to { opacity: 0.9; transform: translateX(-50%) scaleX(1); } }
@keyframes line-shake { 0%,100% { margin-left: 0; } 50% { margin-left: 2px; } }

.atelier-shell {
  position: relative;
  z-index: 5;
  min-height: 100vh;
}

.atelier-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 4rem;
  padding: 0.8rem 1rem;
  background: linear-gradient(180deg, rgba(3,3,2,0.92), rgba(3,3,2,0.06));
}

.brand,
.atelier-nav a {
  color: inherit;
  text-decoration: none;
}

.brand { font-size: 1.08rem; }

.atelier-nav {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.atelier-nav a {
  padding: 0.38rem 0.45rem;
  color: rgba(207,196,173,0.7);
  font-family: Arial, sans-serif;
  font-size: 0.7rem;
}

.atelier-nav a.is-current { color: var(--paper); }

.atelier-stage {
  position: relative;
  min-height: 100vh;
}

.room {
  position: relative;
  display: none;
  min-height: 100vh;
  padding: 5rem 1rem 6rem;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0,1.4rem,0);
  transition: opacity 900ms ease, visibility 900ms ease, transform 900ms ease;
}

.room::before,
.room::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
}

.room::before {
  opacity: 0.19;
  background:
    url("../ui/risco-01.png"),
    url("../ui/fio-tremido.png"),
    linear-gradient(103deg, transparent 0 24%, rgba(207,196,173,0.16) 24.2%, transparent 24.6%),
    linear-gradient(77deg, transparent 0 57%, rgba(96,119,122,0.12) 57.2%, transparent 57.6%),
    linear-gradient(94deg, transparent 0 81%, rgba(142,33,28,0.12) 81.1%, transparent 81.4%);
  background-position: 8vw 24vh, 68vw 72vh, 0 0, 0 0, 0 0;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: min(32vw, 22rem) auto, min(38vw, 28rem) auto, auto, auto, auto;
  mix-blend-mode: screen;
  animation: scratch-wander 15s steps(6) infinite;
}

.room::after {
  opacity: 0.085;
  background:
    url("../ui/mancha-luz.png"),
    url("../ui/fragmento-papel.png"),
    radial-gradient(circle at 18% 32%, rgba(207,196,173,0.16), transparent 0.18rem),
    radial-gradient(circle at 82% 66%, rgba(96,119,122,0.14), transparent 0.16rem),
    radial-gradient(circle at 58% 18%, rgba(142,33,28,0.12), transparent 0.14rem),
    linear-gradient(90deg, transparent 0 46%, rgba(207,196,173,0.12) 46.1%, transparent 46.3%);
  background-position: 4vw 62vh, 78vw 12vh, 0 0, 0 0, 0 0, 0 0;
  background-repeat: no-repeat, no-repeat, repeat, repeat, repeat, no-repeat;
  background-size: min(38vw, 24rem), min(34vw, 21rem), 19rem 23rem, 31rem 17rem, 13rem 29rem, auto;
  mix-blend-mode: soft-light;
  filter: saturate(0.34) contrast(1.08) brightness(0.68);
  translate: calc(var(--mx) * 0.06) calc(var(--my) * 0.06);
  animation: depth-fragments 18s ease-in-out infinite alternate;
}

.room.is-active {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translate3d(0,0,0);
}

.room-bg,
.fragment,
.room-vignette {
  position: absolute;
  pointer-events: none;
}

.room-bg {
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.5) contrast(1.08) brightness(0.48);
  transform: scale(1.065);
  animation: room-image-breath 11s ease-in-out infinite alternate;
}

.room.is-pre-dawn .room-bg {
  filter: saturate(0.5) contrast(1.08) brightness(0.48);
  transform: scale(1.065);
  animation: none;
}

.room.is-dawning .room-bg {
  animation: room-dawn-brighten 4800ms ease both;
}

.room-bg--series {
  filter: saturate(0.58) contrast(1.12) brightness(0.25);
}

.room-vignette {
  inset: 0;
  z-index: 4;
  background:
    radial-gradient(circle at 44% 44%, transparent, rgba(0,0,0,0.68) 58%),
    linear-gradient(90deg, rgba(3,3,2,0.95), rgba(3,3,2,0.38), rgba(3,3,2,0.88));
  animation: room-breath 9s ease-in-out infinite alternate;
}

.room.is-pre-dawn .room-vignette {
  opacity: 0.98;
  animation: none;
}

.room.is-dawning .room-vignette {
  animation: room-vignette-open 4800ms ease both;
}

.room-vignette--series {
  background:
    radial-gradient(circle at 70% 34%, rgba(0,0,0,0.2), rgba(0,0,0,0.72) 46%),
    linear-gradient(90deg, rgba(3,3,2,0.96), rgba(3,3,2,0.58));
}

.fragment {
  z-index: 3;
  object-fit: cover;
  filter: saturate(0.58) contrast(1.12) brightness(0.5);
  opacity: 0.34;
  mix-blend-mode: screen;
  translate: calc(var(--mx) * 0.03) calc(var(--my) * 0.03);
  animation: fragment-drift 19s ease-in-out infinite alternate, fragment-vanish 15s ease-in-out infinite alternate;
}

.fragment--corridor {
  left: -9rem;
  bottom: -4rem;
  width: min(88vw, 42rem);
  height: 52vh;
}

.fragment--map {
  right: -8rem;
  top: 8vh;
  width: min(86vw, 40rem);
  height: 70vh;
}

.fragment--machine {
  left: -6rem;
  bottom: 5vh;
  width: min(62vw, 27rem);
  height: 34vh;
  opacity: 0.25;
}

.fragment--door {
  right: -5rem;
  bottom: 0;
  width: min(76vw, 32rem);
  height: 78vh;
  opacity: 0.52;
}

@keyframes fragment-drift {
  from { margin-top: 0; }
  to { margin-top: -0.55rem; }
}
@keyframes fragment-vanish {
  from { opacity: 0.18; filter: saturate(0.5) contrast(1.08) brightness(0.44); }
  to { opacity: 0.44; filter: saturate(0.68) contrast(1.16) brightness(0.6); }
}
@keyframes room-breath { from { opacity: 0.82; } to { opacity: 0.98; } }
@keyframes room-image-breath { from { transform: scale(1.02); } to { transform: scale(1.062); } }
@keyframes scratch-wander {
  0%, 100% { transform: translate3d(0,0,0); opacity: 0.1; }
  31% { transform: translate3d(0.45rem,-0.22rem,0); opacity: 0.23; }
  67% { transform: translate3d(-0.28rem,0.34rem,0); opacity: 0.14; }
}
@keyframes depth-fragments {
  from { transform: translate3d(-0.35rem,0.22rem,0); opacity: 0.1; }
  to { transform: translate3d(0.48rem,-0.28rem,0); opacity: 0.22; }
}

.room-copy,
.universe-copy,
.portfolio-copy,
.series-head,
.series-grid,
.contact-copy {
  position: relative;
  z-index: 10;
}

.room-copy--entry {
  width: min(100%, 42rem);
  margin-top: 46vh;
}

.room-copy h1 {
  max-width: 9ch;
  font-size: clamp(3rem, 13vw, 7rem);
}

.room-copy p,
.universe-copy p,
.portfolio-copy p,
.series-head p,
.contact-copy p {
  color: rgba(207,196,173,0.78);
}

.eyebrow {
  margin: 0 0 0.7rem;
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.object-link {
  position: absolute;
  z-index: 20;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 46% 54% 42% 58%;
  background: transparent;
  color: rgba(207,196,173,0.84);
  cursor: pointer;
  animation: hotspot-breathe 7600ms ease-in-out infinite alternate;
}

.object-mark {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  filter: drop-shadow(0 0 1.4rem rgba(207,196,173,0.22)) drop-shadow(0 1rem 2rem rgba(0,0,0,0.58));
  transform-origin: 50% 52%;
  transition: transform 300ms ease, filter 420ms ease;
}

.object-orb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  opacity: 0;
  transition: opacity 360ms ease, filter 420ms ease;
}

.object-orb--base {
  opacity: 0.84;
}

.object-orb--pulse {
  opacity: 0.14;
  animation: orb-pulse 8200ms ease-in-out infinite alternate;
}

.object-link[data-state="idle"] .object-orb--base {
  opacity: 0.86;
}

.object-link[data-state="hover"] .object-orb--pulse,
.object-link:hover .object-orb--pulse,
.object-link:focus-visible .object-orb--pulse {
  opacity: 0.1;
}

.object-link[data-state="hover"] .object-orb--hover,
.object-link:hover .object-orb--hover,
.object-link:focus-visible .object-orb--hover {
  opacity: 0.46;
}

.object-link[data-state="active"] .object-mark,
.object-link:active .object-mark {
  transform: scale(0.965);
  filter: drop-shadow(0 0 1.1rem rgba(207,196,173,0.16)) drop-shadow(0 0.8rem 1.8rem rgba(0,0,0,0.62));
}

.object-link[data-state="active"] .object-orb--pulse,
.object-link:active .object-orb--pulse {
  opacity: 0.08;
}

.object-link[data-state="active"] .object-orb--active,
.object-link:active .object-orb--active {
  opacity: 0.38;
  transition-duration: 300ms;
}

.object-link[data-state="error"] .object-orb--hover,
.object-link[data-state="error"] .object-orb--active {
  opacity: 0;
}

body.intro-machine-reacts .room.is-active .object-link--universe .object-orb--pulse,
.intro-screen.is-misclicking ~ .atelier-shell .room.is-active .object-link--universe .object-orb--pulse,
.object-link[data-state="error"] .object-orb--pulse {
  opacity: 0.08;
}

body.intro-machine-reacts .room.is-active .object-link--universe .object-orb--base,
.intro-screen.is-misclicking ~ .atelier-shell .room.is-active .object-link--universe .object-orb--base,
.object-link[data-state="error"] .object-orb--base {
  opacity: 0.82;
}

body.intro-machine-reacts .room.is-active .object-link--universe .object-orb--fracture,
.intro-screen.is-misclicking ~ .atelier-shell .room.is-active .object-link--universe .object-orb--fracture,
.object-link[data-state="error"] .object-orb--fracture {
  opacity: 0.52;
  animation: orb-fracture-blink 720ms ease both;
}

.object-link--universe {
  right: 6vw;
  bottom: 9vh;
  width: 9.5rem;
  height: 9.5rem;
}

.object-link--portfolio {
  right: 8vw;
  bottom: 11vh;
  width: 10rem;
  height: 10rem;
}

@keyframes hotspot-breathe { from { transform: scale(0.982); opacity: 0.66; } to { transform: scale(1.018); opacity: 0.88; } }
@keyframes orb-pulse { from { opacity: 0.07; transform: scale(0.982); } to { opacity: 0.18; transform: scale(1.028); } }
@keyframes orb-fracture-blink {
  0%, 100% { opacity: 0; transform: scale(1); filter: brightness(0.72); }
  36% { opacity: 0.46; transform: scale(1.006) rotate(-0.3deg); filter: brightness(0.92); }
  68% { opacity: 0.18; transform: scale(0.998) rotate(0.2deg); filter: brightness(0.76); }
}

.universe-copy {
  display: grid;
  gap: 1.2rem;
  width: min(100%, 50rem);
  margin-top: 18vh;
}

.universe-copy::before {
  content: "";
  position: absolute;
  inset: -2rem -1rem;
  z-index: -1;
  opacity: 0.28;
  pointer-events: none;
  background:
    url("../ui/risco-02.png") 6% 18% / min(46vw, 26rem) auto no-repeat,
    url("../ui/mancha-luz.png") 82% 58% / min(36vw, 20rem) auto no-repeat;
  mix-blend-mode: soft-light;
  filter: saturate(0.42) contrast(1.08) brightness(0.76);
}

.universe-copy section {
  padding-left: 1rem;
  border-left: 1px solid rgba(207,196,173,0.16);
  text-shadow: 0 0.2rem 1rem rgba(0,0,0,0.78);
}

.universe-copy h2,
.portfolio-copy h2,
.series-head h2,
.contact-copy h2 {
  font-size: clamp(2rem, 8vw, 4.8rem);
}

.portfolio-copy {
  display: grid;
  align-content: start;
  gap: 0.82rem;
  width: min(100%, 42rem);
  margin-top: 17vh;
  text-shadow: 0 0.28rem 1.1rem rgba(0,0,0,0.86);
}

.portfolio-copy h2 {
  max-width: 10ch;
  font-size: clamp(3.1rem, 9vw, 6.4rem);
  font-weight: 400;
  line-height: 0.86;
  color: rgba(231,220,194,0.92);
}

.portfolio-note {
  width: min(100%, 34rem);
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: clamp(0.86rem, 1.35vw, 1rem);
  line-height: 1.65;
  color: rgba(207,196,173,0.74);
}

.series-entry {
  display: grid;
  grid-template-columns: 6.8rem minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
  width: min(100%, 20rem);
  min-height: 8.1rem;
  margin: 0.85rem 0 1.4rem;
  padding: 0.55rem;
  border: 1px solid rgba(207,196,173,0.2);
  background: rgba(3,3,2,0.58);
  color: var(--paper);
  cursor: pointer;
  text-align: left;
  position: relative;
  overflow: hidden;
  z-index: 0;
}

.series-entry::before {
  content: "";
  position: absolute;
  inset: -18%;
  z-index: 0;
  opacity: 0;
  pointer-events: none;
  background: url("../ui/sombra-arquivo.png") center / cover no-repeat;
  filter: saturate(0.28) contrast(1.12) brightness(0.54);
  mix-blend-mode: soft-light;
  transition: opacity 420ms ease;
}

.series-entry > * {
  position: relative;
  z-index: 1;
}

.series-entry:hover::before {
  opacity: 0.52;
}

.series-entry img {
  width: 6.8rem;
  aspect-ratio: 1 / 1.1;
  object-fit: cover;
  filter: saturate(0.68) contrast(1.12) brightness(0.78);
}

.series-entry span {
  font-family: Arial, sans-serif;
  font-size: clamp(0.84rem, 1.8vw, 1.18rem);
  line-height: 1.12;
  text-transform: uppercase;
}

.series-head {
  width: min(100%, 64rem);
  margin: 0 auto 1rem;
  padding-top: 1rem;
}

.series-grid {
  display: grid;
  gap: 0.8rem;
  width: min(100%, 72rem);
  margin: 0 auto;
  padding: 0 0 4rem;
  list-style: none;
}

.series-grid li {
  display: grid;
  grid-template-columns: 5.6rem 1fr;
  gap: 0.75rem;
  align-items: start;
  min-height: 7rem;
  padding: 0.55rem;
  border: 1px solid rgba(207,196,173,0.14);
  background: rgba(6,6,5,0.66);
  box-shadow: 0 1rem 2rem rgba(0,0,0,0.34);
  cursor: zoom-in;
  position: relative;
  overflow: hidden;
}

.series-grid li::after {
  content: "";
  position: absolute;
  inset: auto -8% 0 18%;
  height: 2.7rem;
  opacity: 0;
  pointer-events: none;
  background: url("../ui/fio-tremido.png") center / contain no-repeat;
  mix-blend-mode: screen;
  filter: saturate(0.35) brightness(0.74);
  transition: opacity 260ms ease, transform 260ms ease;
}

.series-grid button {
  display: contents;
  color: inherit;
  cursor: zoom-in;
}

.series-grid img {
  width: 5.6rem;
  aspect-ratio: 1 / 1.18;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.12) brightness(0.74);
  transform: rotate(-1deg);
  transition: transform 260ms ease, filter 260ms ease;
}

.series-grid li:hover img {
  transform: translate3d(0.2rem,-0.15rem,0) rotate(0.5deg);
  filter: saturate(0.92) contrast(1.16) brightness(0.84);
}

.series-grid li:hover::after {
  opacity: 0.34;
  transform: translate3d(0.2rem,-0.1rem,0);
}

.series-number {
  color: var(--wound);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
}

.series-grid strong {
  display: block;
  font-weight: 400;
}

.work-lightbox {
  position: fixed;
  inset: 0;
  z-index: 130;
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr) minmax(16rem, 22rem) 3.5rem;
  place-items: center;
  gap: 1rem;
  padding: 1rem;
  background:
    radial-gradient(circle at 44% 44%, rgba(142,33,28,0.14), transparent 22rem),
    radial-gradient(circle at 78% 22%, rgba(96,119,122,0.08), transparent 18rem),
    rgba(0,0,0,0.965);
  opacity: 0;
  visibility: hidden;
  transition: opacity 260ms ease, visibility 260ms ease;
}

.work-lightbox::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.12;
  background:
    url("../ui/sombra-arquivo.png") -8vw 16vh / min(38vw, 25rem) auto no-repeat,
    url("../ui/poeira-memoria.png") 86vw 48vh / min(32vw, 20rem) auto no-repeat,
    linear-gradient(91deg, transparent 0 14%, rgba(207,196,173,0.08) 14.1%, transparent 14.35%),
    linear-gradient(78deg, transparent 0 82%, rgba(96,119,122,0.08) 82.1%, transparent 82.38%);
  filter: saturate(0.36) contrast(1.08) brightness(0.64);
  mix-blend-mode: soft-light;
  transform: translate3d(calc(var(--mx) * -0.04), calc(var(--my) * 0.04), 0);
  animation: lightbox-side-memory 16s ease-in-out infinite alternate;
}

.work-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.work-lightbox[hidden] {
  display: none;
}

.lightbox-figure {
  position: relative;
  z-index: 2;
  width: 100%;
  height: min(82vh, 52rem);
  margin: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
}

.lightbox-figure img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: saturate(0.82) contrast(1.08) brightness(0.88);
  box-shadow: 0 1.4rem 4rem rgba(0,0,0,0.78);
}

.lightbox-figure figcaption {
  width: min(100%, 48rem);
  margin-top: 0.75rem;
  color: rgba(207,196,173,0.84);
  text-align: center;
}

.lightbox-figure figcaption span {
  display: block;
  color: var(--wound);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
}

.lightbox-figure figcaption strong {
  display: block;
  font-weight: 400;
}

.lightbox-figure figcaption p {
  margin: 0.45rem auto 0;
  max-width: 44rem;
  color: rgba(207,196,173,0.68);
  font-family: Arial, sans-serif;
  font-size: 0.78rem;
}

.lightbox-details {
  position: relative;
  z-index: 3;
  width: 100%;
  align-self: center;
  padding: 1rem;
  border-left: 1px solid rgba(207,196,173,0.16);
  background: rgba(3,3,2,0.18);
}

.lightbox-description-panel {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(207,196,173,0.14);
}

.lightbox-description-panel strong {
  display: block;
  font-weight: 400;
  line-height: 1.15;
}

.lightbox-description-panel p:last-child {
  margin: 0.55rem 0 0;
  color: rgba(207,196,173,0.68);
  font-family: Arial, sans-serif;
  font-size: 0.78rem;
}

.lightbox-sizes {
  display: grid;
  gap: 0.55rem;
}

.size-option {
  padding: 0.65rem;
  border: 1px solid rgba(207,196,173,0.1);
  background: rgba(6,6,5,0.26);
}

.size-option span,
.size-option em {
  display: block;
  font-family: Arial, sans-serif;
  font-size: 0.68rem;
  font-style: normal;
  color: rgba(207,196,173,0.58);
}

.size-option strong {
  display: block;
  margin: 0.12rem 0;
  font-weight: 400;
}

.order-button {
  width: 100%;
  min-height: 3.6rem;
  margin-top: 0.8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: transparent;
  cursor: pointer;
}

.order-button img,
.archive-order-link img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0.7rem 1.2rem rgba(0,0,0,0.48));
}

.lightbox-close,
.lightbox-nav {
  position: relative;
  z-index: 3;
  border: 1px solid rgba(207,196,173,0.2);
  background: rgba(6,6,5,0.36);
  cursor: pointer;
}

.lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
}

.lightbox-close::before,
.lightbox-close::after {
  content: "";
  position: absolute;
  left: 30%;
  right: 30%;
  top: 50%;
  height: 1px;
  background: rgba(207,196,173,0.72);
}

.lightbox-close::before { transform: rotate(45deg); }
.lightbox-close::after { transform: rotate(-45deg); }

.lightbox-nav {
  width: 3.2rem;
  height: 5rem;
  border-radius: 48% 52% 42% 58%;
}

.lightbox-nav::before {
  content: "";
  position: absolute;
  inset: 38% 32%;
  border-top: 1px solid rgba(207,196,173,0.74);
  border-left: 1px solid rgba(207,196,173,0.74);
}

.lightbox-nav--prev::before { transform: rotate(-45deg); }
.lightbox-nav--next::before { transform: rotate(135deg); }

.contact-copy {
  width: min(100%, 72rem);
  margin-top: 28vh;
}

.contact-copy h2 {
  max-width: 13ch;
  font-size: clamp(2.1rem, 4.6vw, 3.4rem);
}

.contact-links {
  display: grid;
  grid-template-columns: minmax(0, 18rem) minmax(0, 18rem);
  align-items: start;
  justify-content: space-between;
  gap: 1rem clamp(3rem, 20vw, 16rem);
  width: min(100%, 66rem);
  margin: 1.2rem 0 0.85rem;
}

.contact-group {
  display: grid;
  gap: 0.42rem;
  padding-left: 0.75rem;
  border-left: 1px solid rgba(207,196,173,0.16);
}

.contact-group:nth-child(2) {
  justify-self: end;
  padding-left: 0;
  padding-right: 0.75rem;
  border-left: 0;
  border-right: 1px solid rgba(207,196,173,0.16);
  text-align: right;
}

.contact-group__title {
  margin: 0 0 0.24rem;
  color: rgba(224,211,184,0.9);
  font-family: "Brush Script MT", "Segoe Script", "Lucida Handwriting", Georgia, serif;
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.soon-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.56rem 0.72rem;
  margin: 1rem 0;
}

.contact-links a,
.soon-links span,
.archive-order-link {
  position: relative;
  padding: 0.12rem 0;
  border-top: 1px solid rgba(207,196,173,0.08);
  border-bottom: 1px solid rgba(207,196,173,0.16);
  color: rgba(207,196,173,0.66);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
  line-height: 1.4;
  text-decoration: none;
}

.contact-links a::before,
.soon-links span::before,
.archive-order-link::before {
  content: "";
  position: absolute;
  left: -0.24rem;
  top: 50%;
  width: 0.12rem;
  height: 0.12rem;
  border-radius: 999px;
  background: rgba(142,33,28,0.74);
}

.contact-group:nth-child(2) a::before {
  left: auto;
  right: -0.24rem;
}

.contact-links a:hover,
.archive-order-link:hover {
  color: rgba(230,218,190,0.9);
  border-bottom-color: rgba(207,196,173,0.32);
}

.archive-order-link {
  display: block;
  width: min(15rem, 76vw);
  margin: 1rem auto 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: transparent;
  text-decoration: none;
  box-shadow: none;
}

.archive-order-link::before {
  display: none;
}

.soon-links {
  align-items: baseline;
  opacity: 0.78;
}

.soon-links .eyebrow {
  flex-basis: 100%;
  margin-bottom: 0;
}

.room--contact::after {
  background:
    url("../ui/mancha-luz.png"),
    url("../ui/poeira-memoria.png"),
    radial-gradient(circle at 18% 32%, rgba(207,196,173,0.16), transparent 0.18rem),
    radial-gradient(circle at 82% 66%, rgba(96,119,122,0.14), transparent 0.16rem);
  background-position: 62vw 58vh, 8vw 18vh, 0 0, 0 0;
  background-repeat: no-repeat, no-repeat, repeat, repeat;
  background-size: min(38vw, 24rem), min(44vw, 28rem), 19rem 23rem, 31rem 17rem;
  opacity: 0.12;
  animation-duration: 26s;
}

@keyframes lightbox-side-memory {
  from { opacity: 0.08; filter: saturate(0.3) contrast(1.04) brightness(0.52); }
  48% { opacity: 0.18; }
  to { opacity: 0.12; filter: saturate(0.44) contrast(1.12) brightness(0.76); }
}

.atelier-status {
  position: fixed;
  z-index: 70;
  left: 1rem;
  bottom: 1rem;
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  color: rgba(207,196,173,0.62);
  font-family: Arial, sans-serif;
  font-size: 0.72rem;
}

.status-light {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--wound);
  box-shadow: 0 0 1rem var(--wound);
  animation: status-breathe 1200ms ease-in-out infinite alternate;
}

@keyframes status-breathe { from { opacity: 0.2; transform: scale(0.8); } to { opacity: 1; transform: scale(1.12); } }

@media (min-width: 760px) {
  .atelier-header { padding-inline: 1.5rem; }
  .room { padding: 5.5rem 2rem 4rem; }
  .room-copy--entry,
  .portfolio-copy,
  .contact-copy { margin-left: 5vw; }
  .universe-copy { margin-left: 7vw; grid-template-columns: 1fr 1fr; }
  .universe-copy section:first-child { grid-row: span 2; }
  .series-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1120px) {
  .series-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  body::before {
    opacity: 0.045 !important;
    animation-duration: 22s !important;
  }
  body::after {
    opacity: 0.025 !important;
    animation-duration: 20s !important;
    background-size: 58vw, 48vw, auto, 21rem 17rem, 29rem 31rem;
  }
  .grain { opacity: 0.16; animation-duration: 12s, 10s; }
  .rare-drops { opacity: 0.13; animation-duration: 34s; }
  .breathing-light { opacity: 0.18; filter: blur(34px); }
  .room::before {
    opacity: 0.05 !important;
    animation-duration: 28s !important;
  }
  .room::after {
    opacity: 0.024 !important;
    animation-duration: 30s !important;
  }
  .room::after {
    background-size: 52vw, 44vw, 19rem 23rem, 31rem 17rem, 13rem 29rem, auto;
  }
  .intro-screen::after,
  .universe-copy::before,
  .series-entry::before,
  .series-grid li::after,
  .work-lightbox::before {
    display: none;
  }
  .fragment { opacity: 0.22; }

  .atelier-header {
    align-items: flex-start;
    gap: 0.5rem;
  }

  .atelier-nav a { font-size: 0.66rem; }

  .series-entry {
    grid-template-columns: 5.4rem minmax(0, 1fr);
    width: min(100%, 18rem);
    min-height: 6.7rem;
  }

  .series-entry img { width: 5.4rem; }

  .object-link--universe,
  .object-link--portfolio {
    width: 7.8rem;
    height: 7.8rem;
  }

  .work-lightbox {
    grid-template-columns: 1fr;
    align-content: start;
    gap: 0.5rem;
    padding: 4.4rem 0.8rem 1rem;
    overflow: auto;
  }

  .lightbox-nav {
    position: fixed;
    top: 48%;
    width: 2.8rem;
    height: 4rem;
  }

  .lightbox-nav--prev { left: 0.5rem; }
  .lightbox-nav--next { right: 0.5rem; }

  .lightbox-figure {
    height: auto;
    min-height: 0;
  }

  .lightbox-figure img {
    max-height: 58vh;
  }

  .lightbox-details {
    border-left: 0;
    border-top: 1px solid rgba(207,196,173,0.16);
  }

  .contact-links,
  .soon-links {
    gap: 0.65rem;
  }

  .contact-links {
    grid-template-columns: 1fr;
  }

  .portfolio-copy {
    margin-top: 18vh;
  }

  .portfolio-copy h2 {
    font-size: clamp(2.8rem, 15vw, 4.4rem);
  }
}

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

  .grain,
  .rare-drops,
  body::before,
  body::after,
  .room::before,
  .room::after {
    opacity: 0.02 !important;
    animation: none !important;
  }

  .work-lightbox::before {
    opacity: 0.02 !important;
    animation: none !important;
  }

  .breathing-light,
  .fragment,
  .intro-layer,
  .intro-material,
  .intro-asset-layer {
    opacity: 0.08 !important;
    animation: none !important;
    transform: none !important;
    translate: 0 0 !important;
  }

  .intro-asset-layer--dust,
  .intro-asset-layer--glass,
  .intro-asset-layer--wires,
  .intro-asset-layer--fragments-one,
  .intro-asset-layer--fragments-two {
    opacity: 0.12 !important;
  }

  .intro-asset-layer--dawn {
    opacity: 0 !important;
  }

  .intro-asset-layer--wait,
  .intro-asset-layer--button-active,
  .intro-asset-layer--misclick,
  .intro-ritual__asset--click {
    opacity: 0 !important;
  }

  .intro-screen.is-inspecting .intro-asset-layer--lantern {
    opacity: 0.11 !important;
  }

  .intro-asset-layer--lantern {
    opacity: 0 !important;
    mask-image: radial-gradient(ellipse 8rem 6.8rem at 50vw 48vh, rgba(0,0,0,0.68), transparent 76%) !important;
    -webkit-mask-image: radial-gradient(ellipse 8rem 6.8rem at 50vw 48vh, rgba(0,0,0,0.68), transparent 76%) !important;
  }

  .intro-ritual__asset {
    animation: none !important;
    transform: none !important;
  }

  .intro-ritual__asset--visible {
    opacity: 0.04 !important;
  }

  .room-bg,
  .room-vignette,
  .status-light,
  .object-link,
  .object-link::before,
  .object-link::after,
  .entry-object,
  .ritual-core,
  .ritual-orbit,
  .ritual-drawer,
  .intro-title {
    animation: none !important;
  }

  .intro-title {
    opacity: 0.86 !important;
    filter: none !important;
  }

  .intro-screen__image {
    filter: contrast(1.1) brightness(0.62) !important;
  }

  .object-orb--base {
    opacity: 0.84 !important;
  }

  .object-orb--pulse,
  .object-orb--active,
  .object-orb--fracture {
    opacity: 0 !important;
    animation: none !important;
  }

  .object-link:hover .object-orb--hover,
  .object-link:focus-visible .object-orb--hover,
  .object-link[data-state="hover"] .object-orb--hover {
    opacity: 0.28 !important;
  }
}

.intro-screen.is-inspecting > .intro-asset-layer--lantern {
  opacity: 0.88;
}

.intro-screen.is-misclicking > .intro-asset-layer--misclick,
.intro-screen.intro-misclick > .intro-asset-layer--misclick {
  opacity: 0.48;
}

.intro-screen.is-entry-hover > .intro-asset-layer--button-active {
  opacity: 0.58;
}

.intro-screen.is-opening > .intro-asset-layer,
.intro-screen.is-opening > .intro-asset-layer--lantern,
.intro-screen.is-opening > .intro-asset-layer--misclick,
.intro-screen.is-opening > .intro-asset-layer--button-active,
.intro-screen.is-opening .intro-ritual,
.intro-screen.is-opening .intro-entry {
  opacity: 0 !important;
  animation: none !important;
  pointer-events: none;
}
