/* =========================================================
   AX PROFIL — MEMORY MONOLITH V2
   ========================================================= */

/* Design Tokens */
:root {
  --bg: #090909;
  --bg-soft: #101010;
  --paper: #e8e0d3;
  --muted: #8e8a83;
  --line: rgba(232, 224, 211, .16);
  --amber: #d88d45;
  --amber-soft: rgba(216, 141, 69, .2);
  --cold: #9fb7c9;
  --font-serif: "Bodoni Moda", serif;
  --font-body: "Manrope", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;
  --wrap: min(92vw, 1500px);
  --ease: cubic-bezier(.2,.8,.2,1);
  --section: clamp(8rem, 14vw, 14rem);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  background: var(--bg);
  scroll-behavior: auto;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--paper);
  background:
    radial-gradient(circle at 30% 10%, rgba(216,141,69,.05), transparent 30rem),
    var(--bg);
  font-family: var(--font-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

body.is-locked { overflow: hidden; }

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display:block; width:100%; }
::selection { background: var(--amber); color: #120b05; }

.skip-link {
  position: fixed;
  top: -10rem;
  left: 1rem;
  z-index: 5000;
  padding: .7rem 1rem;
  background: var(--paper);
  color: var(--bg);
}
.skip-link:focus { top: 1rem; }

.micro-label {
  margin: 0 0 1.2rem;
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.stage {
  position: relative;
  isolation: isolate;
}

h1, h2, h3, p { text-wrap: balance; }
h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(3rem, 7.2vw, 8rem);
  font-weight: 400;
  line-height: .92;
  letter-spacing: -.045em;
}
h2 em {
  color: var(--amber);
  font-style: italic;
}

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

#dust-canvas {
  position: fixed;
  inset: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.film-burn {
  position: fixed;
  z-index: -3;
  width: 30rem;
  aspect-ratio: 1;
  border-radius: 50%;
  filter: blur(100px);
  opacity: .05;
  pointer-events: none;
}
.film-burn--a { top: 4%; left: -12rem; background: var(--amber); }
.film-burn--b { bottom: 8%; right: -12rem; background: var(--cold); }

/* Prelude */
.prelude {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: grid;
  place-items: center;
  background: #050505;
}
.prelude__signal {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, transparent 49.8%, rgba(232,224,211,.08) 50%, transparent 50.2%),
    linear-gradient(transparent 49.8%, rgba(232,224,211,.08) 50%, transparent 50.2%);
}
.prelude__type {
  position:relative;
  display:grid;
  justify-items:center;
  gap:.8rem;
}
.prelude__type span,
.prelude__type small {
  color: var(--muted);
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.prelude__type strong {
  font-family:var(--font-serif);
  font-size:clamp(5rem,16vw,12rem);
  font-weight:400;
  line-height:.7;
}
.prelude__bar {
  position:absolute;
  left:10%;
  right:10%;
  bottom:8%;
  height:1px;
  background:rgba(255,255,255,.08);
}
.prelude__bar i {
  display:block;
  width:0;
  height:100%;
  background:var(--amber);
  box-shadow:0 0 20px var(--amber);
}

/* System UI */
.system-header {
  position:fixed;
  inset:0 0 auto;
  z-index:1200;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.1rem clamp(1rem,3vw,3rem);
  pointer-events:none;
}
.system-header > * { pointer-events:auto; }

.system-mark {
  position:relative;
  display:grid;
  width:3.2rem;
  aspect-ratio:1;
  place-items:center;
  border:1px solid var(--line);
  background:rgba(9,9,9,.45);
  backdrop-filter:blur(12px);
}
.system-mark span {
  font-family:var(--font-serif);
  font-size:1rem;
}
.system-mark i {
  position:absolute;
  inset:-.35rem;
  border:1px solid rgba(216,141,69,.3);
  transform:rotate(45deg);
}

.archive-trigger {
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.7rem .85rem;
  border:1px solid var(--line);
  background:rgba(9,9,9,.45);
  backdrop-filter:blur(12px);
  cursor:pointer;
}
.archive-trigger span {
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.14em;
}
.archive-trigger b {
  display:block;
  width:.9rem;
  height:1px;
  background:currentColor;
  transition:transform .35s var(--ease);
}
.archive-trigger b:last-child { margin-left:-1.6rem; transform:rotate(90deg); }
.archive-trigger[aria-expanded="true"] b:first-of-type { transform:rotate(45deg); }
.archive-trigger[aria-expanded="true"] b:last-child { transform:rotate(-45deg); }

.memory-meter {
  position:fixed;
  top:50%;
  right:1rem;
  display:grid;
  justify-items:center;
  gap:.45rem;
  transform:translateY(-50%);
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.55rem;
}
.memory-meter div {
  position:relative;
  width:1px;
  height:8rem;
  background:rgba(255,255,255,.09);
}
.memory-meter div i {
  position:absolute;
  inset:0;
  background:var(--amber);
  transform:scaleY(0);
  transform-origin:top;
}

/* Archive Map */
.archive-map {
  position:fixed;
  inset:0;
  z-index:1800;
  visibility:hidden;
  pointer-events:none;
}
.archive-map[aria-hidden="false"] {
  visibility:visible;
  pointer-events:auto;
}
.archive-map__veil {
  position:absolute;
  inset:0;
  opacity:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(16px);
}
.archive-map__panel {
  position:absolute;
  inset:0 0 0 auto;
  display:flex;
  width:min(100%,720px);
  padding:clamp(6rem,10vw,8rem) clamp(2rem,6vw,5rem) 2rem;
  flex-direction:column;
  background:
    radial-gradient(circle at 100% 0, rgba(216,141,69,.14), transparent 30rem),
    #0c0c0c;
  border-left:1px solid var(--line);
  transform:translateX(100%);
}
.archive-map nav {
  display:grid;
  gap:.25rem;
}
.archive-map nav a {
  display:flex;
  align-items:baseline;
  gap:1rem;
  overflow:hidden;
  font-family:var(--font-serif);
  font-size:clamp(2.1rem,5vw,4.8rem);
  line-height:1.05;
}
.archive-map nav a span {
  color:var(--amber);
  font-family:var(--font-mono);
  font-size:.55rem;
}
.archive-map__foot {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.6rem;
}

/* Origin */
.origin {
  min-height:100svh;
  overflow:hidden;
}
#monolith-stage {
  position:absolute;
  inset:0;
  z-index:-2;
}
.origin::after {
  position:absolute;
  inset:auto 0 0;
  height:30%;
  content:"";
  background:linear-gradient(transparent,var(--bg));
}
.origin__frame {
  position:relative;
  width:var(--wrap);
  min-height:100svh;
  margin:auto;
  padding:clamp(7rem,13vh,10rem) 0 3rem;
}
.origin__serial {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.15em;
}
.origin__copy {
  position:absolute;
  left:0;
  right:0;
  bottom:9vh;
  z-index:2;
}
.origin h1 {
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(5rem,17vw,17rem);
  font-weight:400;
  line-height:.67;
  letter-spacing:-.07em;
}
.origin__name,
.origin__surname {
  display:block;
}
.origin__surname {
  margin-left:12vw;
  color:transparent;
  -webkit-text-stroke:1px rgba(232,224,211,.5);
}
.origin__role {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:2rem;
  margin-top:3rem;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
}
.origin__role span {
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.64rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.origin__role p {
  max-width:40rem;
  margin:0 0 0 auto;
  font-size:clamp(1.1rem,2.1vw,1.9rem);
}
.origin__portal {
  position:absolute;
  right:1vw;
  top:36%;
  display:grid;
  width:8rem;
  aspect-ratio:1;
  place-items:center;
  border:1px solid var(--line);
  transform:rotate(45deg);
}
.origin__portal span {
  max-width:4rem;
  transform:rotate(-45deg);
  text-align:center;
  font-family:var(--font-mono);
  font-size:.52rem;
  letter-spacing:.12em;
}
.origin__portal i {
  position:absolute;
  inset:22%;
  border:1px solid rgba(216,141,69,.5);
  animation:portal 6s linear infinite;
}
@keyframes portal { to { transform:rotate(360deg); } }

.origin__coordinates {
  position:absolute;
  right:-1.5rem;
  bottom:2rem;
  display:flex;
  gap:1rem;
  color:rgba(232,224,211,.36);
  font-family:var(--font-mono);
  font-size:.5rem;
}

/* Fragment */
.fragment {
  min-height:120svh;
  padding:var(--section) 0;
  overflow:hidden;
}
.fragment__grid {
  position:absolute;
  inset:0;
  background:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:9vw 9vw;
  opacity:.2;
  mask-image:linear-gradient(transparent,black 18%,black 82%,transparent);
}
.fragment__content {
  position:relative;
  width:var(--wrap);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  gap:clamp(3rem,7vw,8rem);
  align-items:center;
}
.fragment__portrait-wrap {
  position:relative;
}
.fragment__portrait {
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5.4;
  clip-path:polygon(10% 0,100% 6%,90% 100%,0 91%);
  background:#111;
  transform-style:preserve-3d;
}
.fragment__portrait img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.1);
}
.fragment__cut {
  position:absolute;
  inset:auto 0;
  height:12%;
  border-top:1px solid rgba(255,255,255,.28);
  border-bottom:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.025);
  backdrop-filter:blur(2px);
}
.fragment__cut--1 { top:18%; transform:translateX(-5%); }
.fragment__cut--2 { top:48%; transform:translateX(6%); }
.fragment__cut--3 { top:72%; transform:translateX(-3%); }
.fragment__caption {
  display:flex;
  justify-content:space-between;
  margin-top:1rem;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.58rem;
}
.fragment__statement h2 {
  font-size:clamp(3rem,6.8vw,7.4rem);
}
.fragment__statement > p:not(.micro-label) {
  max-width:38rem;
  margin-top:2rem;
  color:var(--muted);
  font-size:1.05rem;
}
.fragment__facts {
  position:absolute;
  inset:0;
  pointer-events:none;
}
.identity-fact {
  position:absolute;
  max-width:15rem;
  padding:.85rem 1rem;
  border:1px solid var(--line);
  background:rgba(9,9,9,.7);
  backdrop-filter:blur(12px);
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.08em;
  pointer-events:auto;
  cursor:pointer;
}
.identity-fact strong {
  display:block;
  color:var(--paper);
  font-family:var(--font-body);
  font-size:.9rem;
  letter-spacing:0;
}
.identity-fact span {
  display:block;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:.4s var(--ease);
}
.identity-fact.is-open span {
  max-height:6rem;
  margin-top:.5rem;
  opacity:1;
}

/* Beliefs */
.beliefs {
  min-height:110svh;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.beliefs__backdrop {
  position:absolute;
  inset:0;
}
.beliefs__circle {
  position:absolute;
  left:50%;
  top:50%;
  border:1px solid var(--line);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.beliefs__circle--1 { width:65vw; aspect-ratio:1; }
.beliefs__circle--2 { width:42vw; aspect-ratio:1; border-style:dashed; }
.beliefs__circle--3 { width:18vw; aspect-ratio:1; border-color:rgba(216,141,69,.35); }
.beliefs__content {
  position:relative;
  z-index:2;
  width:var(--wrap);
}
.beliefs__lines {
  display:grid;
  gap:1rem;
}
.beliefs__lines p {
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(2.6rem,7.2vw,7.8rem);
  line-height:.9;
  letter-spacing:-.045em;
}
.beliefs__lines p:nth-child(even) {
  margin-left:auto;
  color:transparent;
  -webkit-text-stroke:1px rgba(232,224,211,.45);
}
.beliefs__index {
  position:absolute;
  left:2rem;
  bottom:2rem;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.55rem;
}

/* Works */
.works {
  padding:var(--section) 0;
}
.works__intro {
  width:var(--wrap);
  margin:0 auto 7rem;
}
.works__intro h2 {
  max-width:13ch;
}
.memory-rooms {
  display:grid;
  gap:18vh;
}
.memory-room {
  position:relative;
  width:var(--wrap);
  min-height:78svh;
  margin:auto;
}
.memory-room__portal {
  position:absolute;
  inset:0;
  overflow:hidden;
  clip-path:polygon(0 7%,96% 0,100% 94%,4% 100%);
  border:1px solid var(--line);
  background:#111;
}
.memory-room:nth-child(even) .memory-room__portal {
  clip-path:polygon(5% 0,100% 8%,95% 100%,0 92%);
}
.memory-room__portal img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.7) contrast(1.07);
  transition:transform 1s var(--ease), filter .5s ease;
}
.memory-room__portal::after {
  position:absolute;
  inset:0;
  content:"";
  background:
    linear-gradient(180deg,transparent 20%,rgba(0,0,0,.9)),
    linear-gradient(110deg,var(--room-tint),transparent 44%);
}
.memory-room__content {
  position:absolute;
  inset:auto 4% 5%;
  z-index:2;
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:end;
}
.memory-room__meta {
  display:flex;
  gap:1rem;
  color:rgba(255,255,255,.6);
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.12em;
}
.memory-room h3 {
  margin:.6rem 0 0;
  font-family:var(--font-serif);
  font-size:clamp(3.2rem,8vw,8rem);
  font-weight:400;
  line-height:.8;
  letter-spacing:-.05em;
}
.memory-room button {
  display:grid;
  width:6rem;
  aspect-ratio:1;
  place-items:center;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  cursor:pointer;
}
.memory-room:hover img {
  transform:scale(1.05);
  filter:saturate(1);
}

/* Trajectory */
.trajectory {
  padding:var(--section) 0;
  overflow:hidden;
}
.trajectory__head {
  width:var(--wrap);
  margin:auto;
}
.trajectory__head h2 {
  max-width:14ch;
}
.trajectory__map {
  position:relative;
  min-height:110svh;
  margin-top:6rem;
}
#trajectory-canvas {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.trajectory__entries {
  position:relative;
  width:var(--wrap);
  min-height:110svh;
  margin:auto;
}
.trajectory-entry {
  position:absolute;
  width:min(28vw,320px);
  padding:1rem;
  border:1px solid var(--line);
  background:rgba(9,9,9,.78);
  backdrop-filter:blur(12px);
}
.trajectory-entry::before {
  position:absolute;
  left:-.35rem;
  top:1rem;
  width:.7rem;
  aspect-ratio:1;
  content:"";
  background:var(--amber);
  transform:rotate(45deg);
  box-shadow:0 0 18px rgba(216,141,69,.5);
}
.trajectory-entry span {
  color:var(--amber);
  font-family:var(--font-mono);
  font-size:.56rem;
}
.trajectory-entry h3 {
  margin:.4rem 0;
  font-family:var(--font-serif);
  font-size:1.9rem;
  font-weight:400;
}
.trajectory-entry p {
  margin:0;
  color:var(--muted);
  font-size:.82rem;
}

/* Apparatus */
.apparatus {
  min-height:120svh;
  padding:var(--section) 0;
  overflow:hidden;
}
.apparatus__intro {
  width:var(--wrap);
  margin:auto;
}
.apparatus__machine {
  position:relative;
  width:min(86vw,1000px);
  aspect-ratio:1;
  margin:5rem auto 0;
}
.apparatus__core {
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  width:10rem;
  aspect-ratio:1;
  place-items:center;
  border:1px solid var(--line);
  background:#0d0d0d;
  transform:translate(-50%,-50%) rotate(45deg);
}
.apparatus__core span {
  transform:rotate(-45deg);
  font-family:var(--font-serif);
  font-size:2.4rem;
}
.apparatus__core i {
  position:absolute;
  inset:18%;
  border:1px solid rgba(216,141,69,.45);
  animation:portal 8s linear infinite reverse;
}
.apparatus-arm {
  position:absolute;
  width:min(22vw,260px);
  padding:1.2rem;
  border:1px solid var(--line);
  background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
}
.apparatus-arm::after {
  position:absolute;
  content:"";
  height:1px;
  width:120px;
  background:linear-gradient(90deg,var(--amber),transparent);
  transform-origin:left;
}
.apparatus-arm h3 {
  margin:0 0 .6rem;
  font-family:var(--font-serif);
  font-size:1.7rem;
  font-weight:400;
}
.apparatus-arm p {
  margin:0;
  color:var(--muted);
  font-size:.78rem;
}

/* Metrics */
.metrics {
  min-height:100svh;
  padding:var(--section) 0;
}
.metrics__head {
  width:var(--wrap);
  margin:auto;
}
.metrics__field {
  position:relative;
  width:var(--wrap);
  min-height:65vh;
  margin:4rem auto 0;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at center,rgba(216,141,69,.07),transparent 30rem),
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:auto,7vw 7vw,7vw 7vw;
}
.metric-node {
  position:absolute;
  padding:1rem;
  min-width:10rem;
  border:1px solid var(--line);
  background:rgba(9,9,9,.78);
  backdrop-filter:blur(10px);
}
.metric-node strong {
  display:block;
  font-family:var(--font-serif);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:400;
  line-height:1;
}
.metric-node span {
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.56rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* Echoes */
.echoes {
  padding:var(--section) 0;
  min-height:110svh;
}
.echoes__intro {
  width:var(--wrap);
  margin:auto;
}
.echoes__intro h2 { max-width:13ch; }
.echoes__stack {
  position:relative;
  width:min(88vw,980px);
  min-height:50rem;
  margin:6rem auto 0;
}
.echo-card {
  position:absolute;
  left:50%;
  top:50%;
  width:min(82vw,800px);
  padding:clamp(2rem,5vw,4.5rem);
  border:1px solid var(--line);
  background:rgba(12,12,12,.82);
  backdrop-filter:blur(18px);
  transform:translate(-50%,-50%);
}
.echo-card:not(:first-child) { opacity:0; }
.echo-card blockquote {
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(1.7rem,3.6vw,3.8rem);
  line-height:1.12;
}
.echo-card footer {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-top:2rem;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.58rem;
}

/* Lab */
.lab {
  padding:var(--section) 0;
}
.lab__head {
  width:var(--wrap);
  margin:auto;
}
.lab__stream {
  display:flex;
  width:max-content;
  gap:1rem;
  margin-top:5rem;
  padding-inline:max(4vw,calc((100vw - 1500px)/2));
}
.lab-fragment {
  position:relative;
  width:min(42vw,520px);
  height:60vh;
  overflow:hidden;
  border:1px solid var(--line);
  background:#111;
}
.lab-fragment img {
  height:100%;
  object-fit:cover;
  filter:grayscale(.7) contrast(1.1);
  transition:transform .8s var(--ease);
}
.lab-fragment::after {
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(transparent,rgba(0,0,0,.88));
}
.lab-fragment__copy {
  position:absolute;
  inset:auto 1.3rem 1.3rem;
  z-index:2;
}
.lab-fragment__copy span {
  color:var(--amber);
  font-family:var(--font-mono);
  font-size:.56rem;
}
.lab-fragment h3 {
  margin:.4rem 0 0;
  font-family:var(--font-serif);
  font-size:2.4rem;
  font-weight:400;
}
.lab-fragment:hover img { transform:scale(1.06); }

/* Transmission */
.transmission {
  min-height:125svh;
  padding-top:var(--section);
  overflow:hidden;
}
.transmission__beam {
  position:absolute;
  left:50%;
  top:0;
  width:1px;
  height:60%;
  background:linear-gradient(var(--amber),transparent);
  box-shadow:0 0 30px rgba(216,141,69,.45);
}
.transmission__content {
  position:relative;
  z-index:2;
  width:var(--wrap);
  margin:auto;
  text-align:center;
}
.transmission__content h2 {
  max-width:13ch;
  margin:auto;
}
.transmission__content > p:not(.micro-label) {
  max-width:46rem;
  margin:2rem auto 0;
  color:var(--muted);
}
.transmission__actions {
  display:flex;
  justify-content:center;
  gap:.8rem;
  margin-top:3rem;
}
.signal-button {
  display:flex;
  min-height:3.7rem;
  align-items:center;
  gap:2rem;
  padding:.8rem 1.2rem;
  background:var(--amber);
  color:#130b05;
}
.signal-button--ghost {
  border:1px solid var(--line);
  background:transparent;
  color:var(--paper);
}
.transmission__links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.5rem;
  margin-top:2rem;
}
.transmission__links a {
  padding:.5rem .7rem;
  border:1px solid var(--line);
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.56rem;
}
.closing {
  width:var(--wrap);
  margin:10rem auto 0;
  padding:4rem 0 2rem;
  border-top:1px solid var(--line);
}
.closing__name {
  color:transparent;
  font-family:var(--font-serif);
  font-size:clamp(5rem,17vw,16rem);
  line-height:.7;
  letter-spacing:-.07em;
  text-align:center;
  -webkit-text-stroke:1px rgba(232,224,211,.35);
}
.closing__meta {
  display:flex;
  justify-content:space-between;
  margin-top:3rem;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.56rem;
}

/* Project Room */
.project-room {
  position:fixed;
  inset:0;
  z-index:2100;
  visibility:hidden;
  pointer-events:none;
}
.project-room[aria-hidden="false"] {
  visibility:visible;
  pointer-events:auto;
}
.project-room__veil {
  position:absolute;
  inset:0;
  opacity:0;
  background:rgba(0,0,0,.8);
  backdrop-filter:blur(16px);
}
.project-room__shell {
  position:absolute;
  inset:1.5rem;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  overflow:auto;
  border:1px solid var(--line);
  background:#0b0b0b;
  transform:scale(.86) rotateX(10deg);
  opacity:0;
}
.project-room__close {
  position:absolute;
  top:1rem;
  right:1rem;
  z-index:5;
  padding:.6rem .8rem;
  border:1px solid var(--line);
  background:rgba(0,0,0,.45);
  cursor:pointer;
}
.project-room__media {
  position:sticky;
  top:0;
  min-height:calc(100vh - 3rem);
}
.project-room__media img {
  height:100%;
  object-fit:cover;
}
.project-room__media::after {
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(90deg,transparent 70%,#0b0b0b);
}
.project-room__content {
  align-self:center;
  padding:clamp(2rem,5vw,6rem);
}
.project-room__meta {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.58rem;
}
.project-room h2 {
  margin-top:1rem;
  font-size:clamp(3rem,7vw,7rem);
}
.project-room__content > p { color:var(--muted); }
.project-room dl { margin:3rem 0; }
.project-room dl div {
  display:grid;
  grid-template-columns:6rem 1fr;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.project-room dt {
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:.56rem;
}
.project-room dd { margin:0; }
.project-room__actions {
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}
.project-room__actions a {
  padding:.7rem .9rem;
  border:1px solid var(--line);
}

/* Responsive */
@media (max-width: 980px) {
  .memory-meter { display:none; }
  .fragment__content { grid-template-columns:1fr; }
  .fragment__portrait-wrap { width:min(78vw,520px); margin:auto; }
  .fragment__facts {
    position:relative;
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    margin-top:2rem;
  }
  .identity-fact { position:static !important; }
  .apparatus__machine { aspect-ratio:auto; display:grid; gap:1rem; }
  .apparatus__core { position:relative; left:auto; top:auto; margin:0 auto 2rem; transform:rotate(45deg); }
  .apparatus__arms { display:grid; gap:1rem; }
  .apparatus-arm { position:relative !important; inset:auto !important; width:100%; }
  .apparatus-arm::after { display:none; }
  .lab__stream { width:auto; display:grid; padding-inline:4vw; }
  .lab-fragment { width:100%; }
  .project-room__shell { inset:.6rem; grid-template-columns:1fr; }
  .project-room__media { position:relative; min-height:48vh; }
  .project-room__media::after { background:linear-gradient(transparent 60%,#0b0b0b); }
}

@media (max-width: 720px) {
  .origin__role { grid-template-columns:1fr; }
  .origin__surname { margin-left:0; }
  .origin__portal { display:none; }
  .origin__coordinates { display:none; }
  .memory-room { min-height:68svh; }
  .memory-room__content { grid-template-columns:1fr; }
  .memory-room button { width:4rem; }
  .trajectory__map { min-height:auto; }
  #trajectory-canvas { display:none; }
  .trajectory__entries {
    min-height:auto;
    display:grid;
    gap:1rem;
  }
  .trajectory-entry { position:relative !important; inset:auto !important; width:100%; }
  .metrics__field {
    min-height:auto;
    display:grid;
    gap:1rem;
    padding:1rem;
  }
  .metric-node { position:relative !important; inset:auto !important; }
  .echoes__stack { min-height:40rem; }
  .transmission__actions,
  .closing__meta,
  .archive-map__foot,
  .echo-card footer {
    flex-direction:column;
  }
}

@media (max-width: 520px) {
  .system-header { padding:.8rem; }
  .system-mark { width:2.8rem; }
  .archive-trigger span { display:none; }
  .origin h1 { font-size:clamp(4.6rem,25vw,7rem); }
  .origin__copy { bottom:6vh; }
  .beliefs__circle--1 { width:120vw; }
  .beliefs__circle--2 { width:80vw; }
  .beliefs__circle--3 { width:38vw; }
  .lab-fragment { height:52vh; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  #monolith-stage,#dust-canvas,#trajectory-canvas { display:none !important; }
}
