:root {
  --ink: #050505;
  --paper: #e9e7e1;
  --silver: #b9b9b5;
  --line: rgba(255,255,255,.16);
  --muted: rgba(255,255,255,.58);
  --ease: cubic-bezier(.2,.75,.25,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); overflow-x: clip; }
body {
  margin: 0;
  color: var(--paper);
  background: var(--ink);
  font-family: "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  cursor: none;
}
body.is-intro { overflow: hidden; }
a, button { color: inherit; }
button { font: inherit; }
::selection { background: var(--paper); color: var(--ink); }

.grain {
  position: fixed; inset: -70%; z-index: 50; pointer-events: none; opacity: .11;
  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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
  animation: grain .2s steps(2) infinite;
}
@keyframes grain { 0%{transform:translate(0)} 25%{transform:translate(3%,-2%)} 50%{transform:translate(-2%,4%)} 75%{transform:translate(4%,2%)} 100%{transform:translate(-3%,-4%)} }

.cursor {
  position: fixed; left: 0; top: 0; width: 34px; height: 34px; z-index: 100;
  border: 1px solid rgba(255,255,255,.55); border-radius: 50%; pointer-events: none;
  transform: translate(-50%,-50%); transition: width .25s, height .25s, background .25s, border-color .25s;
  mix-blend-mode: difference;
}
.cursor span { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: white; inset: 50%; transform: translate(-50%,-50%); }
.cursor.is-active { width: 62px; height: 62px; background: white; border-color: white; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 60; height: 78px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 3.4vw; border-bottom: 1px solid rgba(255,255,255,.1); mix-blend-mode: difference;
  opacity: 0; visibility: hidden; transform: translateY(-16px);
  transition: opacity 1.1s var(--ease), transform 1.1s var(--ease), visibility 1.1s;
}
.is-revealed .site-header { opacity: 1; visibility: visible; transform: none; transition-delay: .85s; }
.wordmark { text-decoration: none; font-size: 12px; letter-spacing: .6em; font-weight: 500; }
.header-meta { display: flex; align-items: center; gap: 2rem; font-size: 9px; letter-spacing: .24em; text-transform: uppercase; }
.header-meta a { text-decoration: none; }
.gateway-link {
  position:relative;
  min-width:132px;
  height:34px;
  padding:0 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.025);
  overflow:hidden;
  transition:border-color .45s,background .45s,transform .45s var(--ease);
}
.gateway-link:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 22%,rgba(255,255,255,.13) 48%,transparent 72%);
  transform:translateX(-130%);
  animation:gateway-glint 5.8s var(--ease) infinite;
}
.gateway-link > span:first-child { position:relative; z-index:1; }
.gateway-link__rail { position:relative; z-index:1; width:23px; height:1px; background:rgba(255,255,255,.28); }
.gateway-link__rail i { position:absolute; top:50%; left:0; width:3px; height:3px; margin-top:-1px; border-radius:50%; background:var(--paper); box-shadow:0 0 9px rgba(255,255,255,.8); animation:gateway-node 2.8s var(--ease) infinite; }
.gateway-link:hover { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.08); transform:translateY(-1px); }

.hero { min-height: 100svh; position: relative; display: grid; place-items: center; overflow: hidden; background: #020202; }
.film-stage { position: absolute; inset: 0; z-index: 0; display: grid; place-items: center; background: #000; transition: opacity 1.8s var(--ease), transform 2.2s var(--ease), visibility 1.8s; }
.hero-film { display: block; width: 100%; height: 100%; object-fit: contain; object-position: 50% 50%; filter: contrast(1.02) brightness(.9); transform: none; }
.film-shade { position: absolute; inset: 0; z-index: 1; pointer-events:none; background: linear-gradient(180deg, rgba(0,0,0,.32), transparent 22%, transparent 76%, rgba(0,0,0,.38)); transition: opacity 1.6s var(--ease); }
.film-vignette { position:absolute; inset:0; z-index:1; pointer-events:none; box-shadow: inset 0 0 13vw 4vw rgba(0,0,0,.34); transition:opacity 1.6s var(--ease); }
.film-meta { position:absolute; z-index:3; inset:auto 3.4vw 3.2vw; display:flex; justify-content:space-between; font-size:8px; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.62); transition:opacity .8s var(--ease); }
.is-revealed .film-stage { opacity:0; visibility:hidden; transform:scale(1.012); }
.is-revealed .film-shade, .is-revealed .film-vignette, .is-revealed .film-meta { opacity:0; visibility:hidden; }

.sound-gate { position:relative; z-index:10; width:180px; height:180px; border:0; border-radius:50%; color:var(--paper); background:rgba(5,5,5,.72); cursor:pointer; text-transform:uppercase; font-size:9px; letter-spacing:.28em; backdrop-filter:blur(18px); }
.sound-gate-orbit { position:absolute; inset:0; border:1px solid rgba(255,255,255,.34); border-radius:50%; animation:gate-orbit 6s linear infinite; }
.sound-gate-orbit:after { content:""; position:absolute; width:5px; height:5px; top:-3px; left:50%; border-radius:50%; background:white; box-shadow:0 0 18px white; }
@keyframes gate-orbit { to { transform:rotate(360deg); } }

.hero-after { position:absolute; inset:0; z-index:2; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); align-items:center; gap:clamp(2rem,6vw,8rem); padding:clamp(6rem,9vw,9rem) 6vw 5vw; opacity:0; visibility:hidden; background:radial-gradient(circle at 28% 48%, #1a1a1a 0, #080808 38%, #020202 75%); will-change:transform,opacity; }
.is-revealed .hero-after { opacity:1; visibility:visible; transition:opacity 1.7s var(--ease),visibility 1.7s; }
.hero-emblem { margin:0; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.1); box-shadow:0 35px 90px rgba(0,0,0,.45); opacity:0; transform:scale(.965); }
.hero-emblem img { display:block; width:100%; aspect-ratio:1; object-fit:cover; filter:grayscale(1) contrast(1.04); }
.hero-emblem:after { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 38%,rgba(255,255,255,.08) 50%,transparent 62%); transform:translateX(-120%); }
.hero-after-copy { max-width:610px; }
.eyebrow, .section-no, .kicker { font-size: 9px; letter-spacing: .34em; text-transform: uppercase; color: var(--muted); }
.hero-after-copy > * { opacity:0; transform:translateY(24px); }
.is-revealed .hero-emblem { animation:emblem-in 1.8s var(--ease) .24s forwards; }
.is-revealed .hero-emblem:after { animation:emblem-light 2.4s var(--ease) 1.25s forwards; }
.is-revealed .hero-after-copy > * { animation:copy-in 1.35s var(--ease) calc(.45s + var(--reveal-order,0) * .14s) forwards; }
.hero-after h1 { margin:clamp(1.6rem,4vh,3rem) 0 1.8rem; font-size:clamp(3.3rem,6.2vw,7.8rem); line-height:.84; letter-spacing:-.065em; font-weight:200; }
.hero-after h1 em { font-family:Georgia,serif; font-weight:400; color:#8f8e89; }
.hero-statement { max-width:540px; color:#a9a8a4; line-height:1.72; font-size:clamp(.95rem,1.1vw,1.15rem); }
.hero-actions { display:flex; align-items:center; gap:clamp(1.5rem,3vw,3rem); margin-top:clamp(2rem,5vh,4.5rem); }
.hero-actions .portal-link { margin:0; width:min(330px,100%); }
@keyframes emblem-in { to { opacity:1; transform:none; } }
@keyframes emblem-light { to { transform:translateX(120%); } }
@keyframes copy-in { to { opacity:1; transform:none; } }

.scroll-cue { display:flex; align-items:center; gap:1rem; text-decoration:none; font-size:9px; letter-spacing:.3em; text-transform:uppercase; }
.scroll-cue i { display:block; width:55px; height:1px; background:currentColor; position:relative; overflow:hidden; }
.scroll-cue i:after { content:""; position:absolute; width:45%; height:1px; background:#777; animation:signal 1.8s ease-in-out infinite; }
@keyframes signal { from{transform:translateX(-120%)} to{transform:translateX(250%)} }
.after-film { opacity:0; visibility:hidden; }
.is-revealed .after-film { opacity:1; visibility:visible; transition:opacity 1.2s var(--ease) 1.05s,visibility 1.2s 1.05s; }

.manifesto { min-height: 110vh; padding: 15vh 6vw 12vh; display:grid; grid-template-columns: .6fr 1.4fr 1fr; gap:5vw; align-items:start; }
.manifesto-copy { padding-top: 14vh; }
.manifesto h2 { margin:1.6rem 0 3rem; font-family:Georgia, serif; font-size:clamp(3rem,6.5vw,7.5rem); font-weight:400; line-height:.92; letter-spacing:-.055em; }
.manifesto h2 span { display:block; }
.manifesto h2 span:last-child { color:#72726f; font-style:italic; }
.body-copy { max-width:560px; margin-left:auto; font-size:clamp(1rem,1.45vw,1.4rem); line-height:1.7; color:#a9a8a4; }
.mark-frame { margin:0; position:sticky; top:14vh; overflow:hidden; }
.mark-frame:after { content:""; position:absolute; inset:0; border:1px solid rgba(255,255,255,.13); pointer-events:none; }
.mark-frame img { display:block; width:100%; aspect-ratio:1; object-fit:cover; filter:grayscale(1) contrast(1.06); transition: transform 1.2s var(--ease); }
.mark-frame:hover img { transform:scale(1.035); }
.mark-frame figcaption { display:flex; justify-content:space-between; padding:.85rem .2rem; font-size:8px; letter-spacing:.28em; color:#777; }

.principles { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); margin:0 3.4vw; }
.principles article { min-height:38vh; padding:3rem; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid var(--line); transition:background .5s,color .5s; }
.principles article:last-child { border-right:0; }
.principles article:hover { background:var(--paper); color:var(--ink); }
.principles span { font-size:9px; letter-spacing:.25em; }
.principles h3 { margin:auto 0 1rem; font-family:Georgia,serif; font-size:clamp(2rem,3.6vw,4.5rem); font-weight:400; }
.principles p { color:#777; margin:0; }

.worlds {
  min-height:112svh;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:15vh 3.4vw 13vh;
  background:#050505;
}
.worlds:before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background:
    radial-gradient(circle at 50% 44%,rgba(200,181,143,.075),transparent 23%),
    radial-gradient(circle at 16% 68%,rgba(233,231,225,.045),transparent 19%),
    linear-gradient(180deg,#050505 0,#090908 48%,#030303 100%);
}
.worlds-field { position:absolute; inset:0; z-index:-2; pointer-events:none; opacity:.72; }
.worlds-field i { position:absolute; left:50%; top:52%; width:min(78vw,1060px); aspect-ratio:1; border:1px solid rgba(233,231,225,.075); border-radius:50%; transform:translate(-50%,-50%) rotateX(68deg); }
.worlds-field i:nth-child(2) { width:min(58vw,780px); transform:translate(-50%,-50%) rotateY(66deg); }
.worlds-field i:nth-child(3) { width:min(38vw,520px); transform:translate(-50%,-50%) rotate(42deg) scaleY(.36); border-color:rgba(200,181,143,.11); }
.worlds-heading { display:grid; grid-template-columns:.72fr 1.35fr .9fr; gap:4vw; align-items:end; margin-bottom:clamp(4rem,9vh,7rem); }
.worlds-heading h2 { margin:0; font-size:clamp(3.2rem,6.2vw,7.6rem); line-height:.84; letter-spacing:-.065em; font-weight:200; }
.worlds-heading h2 em { font-family:Georgia,serif; font-weight:400; color:#898781; }
.worlds-heading > p:last-child { max-width:360px; margin:0 0 .4rem; color:#898884; line-height:1.7; }
.worlds-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(233,231,225,.16); border-left:1px solid rgba(233,231,225,.16); }
.world-gate {
  --phase:0s;
  min-height:clamp(230px,27vw,380px);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(1.7rem,3vw,3rem);
  color:var(--paper);
  text-decoration:none;
  border-right:1px solid rgba(233,231,225,.16);
  border-bottom:1px solid rgba(233,231,225,.16);
  background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.004));
  transition:background .8s var(--ease),color .8s var(--ease),box-shadow .8s var(--ease);
  will-change:transform,opacity;
}
.world-gate:before {
  content:"";
  position:absolute;
  inset:-45%;
  z-index:-2;
  background:conic-gradient(from 90deg,transparent 0 68%,rgba(233,231,225,.11) 74%,rgba(200,181,143,.18) 77%,transparent 84% 100%);
  animation:world-orbit 15s linear infinite;
  animation-delay:var(--phase);
  opacity:.55;
}
.world-gate:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(circle at 82% 72%,rgba(233,231,225,.12),transparent 8%,transparent 42%);
  opacity:.34;
  transform:scale(.72);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.world-gate__trail { position:absolute; inset:0; pointer-events:none; border:1px solid transparent; }
.world-gate__trail:before { content:""; position:absolute; top:-1px; left:-22%; width:22%; height:1px; background:linear-gradient(90deg,transparent,#ece8de,transparent); box-shadow:0 0 18px rgba(233,231,225,.34); animation:world-trail 8.5s var(--ease) infinite; animation-delay:var(--phase); }
.world-gate__meta { display:flex; justify-content:space-between; align-items:center; font-size:8px; letter-spacing:.3em; text-transform:uppercase; color:rgba(233,231,225,.48); }
.world-gate__meta b { font-weight:400; }
.world-gate__meta i { font-family:Georgia,serif; font-style:italic; letter-spacing:.12em; text-transform:none; }
.world-gate__title { margin:auto 0 1rem; max-width:80%; font-size:clamp(2.2rem,4.5vw,5.6rem); line-height:.86; letter-spacing:-.055em; font-weight:200; transition:transform .85s var(--ease),letter-spacing .85s var(--ease); }
.world-gate__note { max-width:68%; color:rgba(233,231,225,.46); font-family:Georgia,serif; font-size:clamp(.82rem,1.1vw,1.05rem); font-style:italic; line-height:1.5; transition:color .7s ease,transform .85s var(--ease); }
.world-gate__aperture { position:absolute; right:clamp(1.5rem,3vw,3rem); bottom:clamp(1.5rem,3vw,3rem); width:58px; aspect-ratio:1; border:1px solid rgba(233,231,225,.25); border-radius:50%; display:grid; place-items:center; transition:transform .9s var(--ease),border-color .7s ease,background .7s ease; }
.world-gate__aperture:before,.world-gate__aperture:after { content:""; position:absolute; inset:8px; border:1px solid rgba(233,231,225,.13); border-radius:50%; }
.world-gate__aperture:after { inset:17px; border-color:rgba(200,181,143,.32); }
.world-gate__aperture i { width:11px; height:1px; background:rgba(233,231,225,.7); box-shadow:0 0 10px rgba(233,231,225,.38); transition:width .8s var(--ease); }
.world-gate__aperture b { position:absolute; width:4px; aspect-ratio:1; border-radius:50%; background:#ece8de; box-shadow:0 0 14px #ece8de; animation:world-breathe 3.8s var(--ease) infinite; animation-delay:var(--phase); }
.world-gate:hover,.world-gate:focus-visible { outline:none; background:rgba(233,231,225,.065); box-shadow:inset 0 0 70px rgba(233,231,225,.025); }
.world-gate:hover:after,.world-gate:focus-visible:after { opacity:1; transform:scale(1.1); }
.world-gate:hover .world-gate__title,.world-gate:focus-visible .world-gate__title { transform:translateX(10px); letter-spacing:-.035em; }
.world-gate:hover .world-gate__note,.world-gate:focus-visible .world-gate__note { color:rgba(233,231,225,.8); transform:translateX(10px); }
.world-gate:hover .world-gate__aperture,.world-gate:focus-visible .world-gate__aperture { transform:rotate(135deg) scale(1.08); border-color:rgba(233,231,225,.7); background:rgba(233,231,225,.045); }
.world-gate:hover .world-gate__aperture i,.world-gate:focus-visible .world-gate__aperture i { width:27px; }
.worlds-axis { position:relative; width:min(620px,78vw); height:1px; margin:clamp(3rem,7vh,6rem) auto 0; background:linear-gradient(90deg,transparent,rgba(233,231,225,.22),transparent); }
.worlds-axis:before,.worlds-axis:after { content:""; position:absolute; top:50%; width:5px; aspect-ratio:1; border-radius:50%; background:#c8b58f; box-shadow:0 0 14px rgba(200,181,143,.65); transform:translateY(-50%); }
.worlds-axis:before { left:22%; }
.worlds-axis:after { right:22%; }
.worlds-axis i { position:absolute; left:50%; top:50%; width:9px; aspect-ratio:1; border:1px solid rgba(233,231,225,.5); border-radius:50%; transform:translate(-50%,-50%); }
@keyframes world-orbit { to { transform:rotate(360deg); } }
@keyframes world-trail { 0%,12% { transform:translateX(0); opacity:0; } 20% { opacity:1; } 72% { opacity:.4; } 82%,100% { transform:translateX(650%); opacity:0; } }
@keyframes world-breathe { 0%,100% { opacity:.28; transform:scale(.65); } 50% { opacity:1; transform:scale(1.35); } }

.portal { min-height:100svh; position:relative; display:grid; place-items:center; overflow:hidden; isolation:isolate; }
.portal:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 50%, #252525 0, #0b0b0b 34%, #020202 72%); z-index:-2; }
.portal-orbit { position:absolute; width:min(74vw,900px); aspect-ratio:1; display:grid; place-items:center; z-index:-1; }
.portal-orbit i { position:absolute; inset:10%; border:1px solid rgba(255,255,255,.18); border-radius:50%; transform:rotateX(68deg); animation:orbit 14s linear infinite; }
.portal-orbit i:nth-child(2){ inset:20%; transform:rotateY(65deg); animation-duration:20s; animation-direction:reverse; }
.portal-orbit i:nth-child(3){ inset:32%; transform:rotate(45deg) scaleY(.35); animation-duration:9s; }
@keyframes orbit { to { transform:rotate(360deg) rotateX(68deg); } }
.portal-copy { text-align:center; width:min(900px,90vw); }
.portal h2 { margin:2rem 0 1.5rem; font-size:clamp(5rem,16vw,14rem); line-height:.69; letter-spacing:-.08em; font-weight:200; }
.portal h2 em { font-family:Georgia,serif; font-weight:400; }
.portal-copy > p:not(.section-no) { color:#8a8985; font-family:Georgia,serif; font-style:italic; font-size:clamp(1rem,1.4vw,1.3rem); }
.portal-link { width:min(430px,88vw); margin:4rem auto 0; padding:1.35rem 1.5rem; display:flex; justify-content:space-between; align-items:center; text-decoration:none; border:1px solid rgba(255,255,255,.35); border-radius:999px; font-size:10px; letter-spacing:.3em; text-transform:uppercase; transition:background .45s,color .45s,transform .45s var(--ease); }
.gateway-button {
  position:relative;
  min-height:72px;
  padding:0 25px;
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  border-color:rgba(255,255,255,.25);
  box-shadow:0 14px 50px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.025);
}
.gateway-button:before {
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-2;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from 220deg,transparent 0 64%,rgba(233,231,225,.9) 72%,transparent 80% 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  animation:gateway-border 7s linear infinite;
  opacity:.72;
}
.gateway-button:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.09) 49%,transparent 72%);
  transform:translateX(-125%);
  animation:gateway-glint 5.8s var(--ease) 1.1s infinite;
}
.gateway-button__field { position:absolute; inset:0; pointer-events:none; opacity:.42; }
.gateway-button__field i { position:absolute; left:8%; right:8%; top:50%; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent); transform:scaleX(.35); transition:transform .75s var(--ease),opacity .75s; }
.gateway-button__field i:last-child { transform:rotate(180deg) scaleX(.18); opacity:.45; }
.gateway-button__label { position:relative; z-index:2; padding-left:7px; }
.gateway-button__status { position:relative; z-index:2; display:flex; align-items:center; gap:9px; font-size:7px; letter-spacing:.23em; color:rgba(255,255,255,.52); }
.gateway-button__status b { width:5px; height:5px; border-radius:50%; background:var(--paper); box-shadow:0 0 0 0 rgba(233,231,225,.4); animation:gateway-pulse 2.8s var(--ease) infinite; }
.gateway-button__status em { font-style:normal; white-space:nowrap; }
.gateway-button:hover { color:var(--paper); background:rgba(255,255,255,.075); border-color:rgba(255,255,255,.52); transform:scale(1.018); }
.gateway-button:hover .gateway-button__field i { transform:scaleX(1); opacity:.85; }
.gateway-button:hover .gateway-button__field i:last-child { transform:rotate(180deg) scaleX(.75); }
@keyframes gateway-border { to { transform:rotate(360deg); } }
@keyframes gateway-glint { 0%,58% { transform:translateX(-130%); } 78%,100% { transform:translateX(130%); } }
@keyframes gateway-node { 0%,100% { transform:translateX(0); opacity:.35; } 50% { transform:translateX(20px); opacity:1; } }
@keyframes gateway-pulse { 0%,100% { opacity:.38; box-shadow:0 0 0 0 rgba(233,231,225,.32); } 50% { opacity:1; box-shadow:0 0 0 7px rgba(233,231,225,0); } }
.cosmic-signal {
  position:relative;
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  color:var(--paper);
  border:1px solid rgba(233,231,225,.24);
  border-radius:50%;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 50%, rgba(233,231,225,.13) 0 8%, transparent 34%),
    rgba(255,255,255,.025);
  box-shadow:0 0 0 1px rgba(255,255,255,.025) inset, 0 0 22px rgba(205,221,215,.08);
  animation:signal-breathe 3.8s var(--ease) infinite;
  transition:color .45s, border-color .45s, background .45s, box-shadow .45s;
  will-change:transform,opacity;
}
.cosmic-signal:before,
.cosmic-signal:after {
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.cosmic-signal:before {
  inset:3px;
  border:1px solid transparent;
  border-top-color:rgba(233,231,225,.72);
  border-right-color:rgba(233,231,225,.12);
  animation:signal-orbit 5.4s linear infinite;
}
.cosmic-signal:after {
  inset:9px;
  background:radial-gradient(circle, currentColor 0 5%, transparent 18%);
  opacity:.7;
  animation:signal-core 2.4s steps(1,end) infinite;
}
.cosmic-signal svg { width:34px; height:34px; overflow:visible; position:relative; z-index:2; }
.cosmic-signal__ring,
.cosmic-signal__infinity {
  fill:none;
  stroke:currentColor;
  vector-effect:non-scaling-stroke;
}
.cosmic-signal__ring { stroke-width:.55; stroke-dasharray:1 5; opacity:.48; animation:signal-ring 9s linear infinite reverse; transform-origin:center; }
.cosmic-signal__infinity { stroke-width:.92; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 4px rgba(233,231,225,.58)); animation:signal-flicker 3.2s steps(1,end) infinite; }
.cosmic-signal__matrix { fill:currentColor; opacity:.42; animation:matrix-flicker 1.9s steps(1,end) infinite; }
.cosmic-signal__node { fill:currentColor; filter:drop-shadow(0 0 4px currentColor); }
.cosmic-signal__node--a { animation:node-pulse 1.45s ease-in-out infinite; }
.cosmic-signal__node--b { animation:node-pulse 1.45s ease-in-out .72s infinite; }
.cosmic-signal__scan {
  position:absolute;
  z-index:3;
  width:76%;
  height:1px;
  top:12%;
  left:12%;
  background:linear-gradient(90deg, transparent, currentColor 44% 56%, transparent);
  opacity:0;
  filter:drop-shadow(0 0 5px currentColor);
  animation:signal-scan 3.7s cubic-bezier(.25,.8,.35,1) infinite;
}
.portal-link:hover .cosmic-signal {
  color:var(--ink);
  border-color:rgba(5,5,5,.34);
  background:radial-gradient(circle at 50% 50%, rgba(5,5,5,.13) 0 8%, transparent 34%);
  box-shadow:0 0 0 1px rgba(5,5,5,.035) inset, 0 0 20px rgba(5,5,5,.1);
}
@keyframes signal-orbit { to { transform:rotate(360deg); } }
@keyframes signal-ring { to { transform:rotate(360deg); } }
@keyframes signal-breathe {
  0%,100% { transform:scale(.96); opacity:.68; }
  46% { transform:scale(1.04); opacity:1; }
  52% { transform:scale(1); opacity:.78; }
  58% { transform:scale(1.03); opacity:1; }
}
@keyframes signal-core { 0%,38%,44%,100% { opacity:.22; } 40%,42%,66% { opacity:.9; } }
@keyframes signal-flicker { 0%,31%,36%,74%,100% { opacity:.9; } 33%,35%,76% { opacity:.28; } }
@keyframes matrix-flicker { 0%,19%,23%,61%,65%,100% { opacity:.2; } 20%,22%,62%,64% { opacity:.88; } }
@keyframes node-pulse { 0%,100% { opacity:.18; transform:scale(.68); transform-origin:center; } 50% { opacity:1; transform:scale(1.35); transform-origin:center; } }
@keyframes signal-scan { 0%,28% { transform:translateY(0); opacity:0; } 32% { opacity:.72; } 68% { opacity:.26; } 74%,100% { transform:translateY(26px); opacity:0; } }

footer { min-height:170px; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; padding:3rem 3.4vw; border-top:1px solid var(--line); font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:#777; }
footer a { text-decoration:none; color:var(--paper); letter-spacing:.55em; } footer p { text-align:center; } footer span { text-align:right; }

.reveal { opacity:0; transform:translateY(26px); }
.in-view { opacity:1; transform:translateY(0); transition:opacity 1.2s var(--ease),transform 1.2s var(--ease); }

/* Cinematic continuum transitions. JS adds these only when GSAP is available. */
.manifesto, .principles, .worlds, .portal { position:relative; isolation:isolate; }
.continuum-seam {
  position:absolute;
  z-index:5;
  left:6vw;
  right:6vw;
  top:0;
  height:1px;
  pointer-events:none;
  transform-origin:center;
  background:linear-gradient(90deg,transparent 0%,rgba(233,231,225,.1) 18%,rgba(233,231,225,.72) 50%,rgba(233,231,225,.1) 82%,transparent 100%);
  box-shadow:0 0 24px rgba(220,225,220,.14);
  opacity:0;
  will-change:transform,opacity;
}
.continuum-seam:after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  border:1px solid rgba(233,231,225,.72);
  border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 18px rgba(233,231,225,.32);
}
.scene-veil {
  position:absolute;
  z-index:4;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  opacity:0;
  background:radial-gradient(ellipse at 50% 20%,rgba(233,231,225,.065),transparent 58%);
  will-change:transform,opacity;
}
.scene-veil:before {
  content:"";
  position:absolute;
  top:-22%;
  left:-25%;
  width:58%;
  height:145%;
  background:linear-gradient(104deg,transparent 15%,rgba(233,231,225,.085) 50%,transparent 82%);
  transform:skewX(-12deg);
}
.motion-ready .mark-frame,
.motion-ready .manifesto-copy > *,
.motion-ready .body-copy,
.motion-ready .principles article,
.motion-ready .worlds-heading > *,
.motion-ready .world-gate,
.motion-ready .portal-copy > * { will-change:transform,opacity; }
.motion-ready .mark-frame img { will-change:transform; }

@media (max-width: 900px) {
  .continuum-seam { left:20px; right:20px; }
  .scene-veil:before { width:85%; left:-46%; opacity:.62; }
}

@media (prefers-reduced-motion: reduce) {
  .continuum-seam, .scene-veil { display:none !important; }
}

@media (max-width: 900px) {
  body { cursor:auto; }
  .cursor { display:none; }
  .site-header { height:64px; padding:0 20px; }
  .header-meta > span { display:none; }
  .hero-after { grid-template-columns:1fr; align-content:center; gap:1.8rem; padding:88px 20px 32px; overflow-y:auto; }
  .hero-emblem { width:min(58vw,380px); justify-self:center; }
  .hero-after-copy { text-align:center; justify-self:center; }
  .hero-after h1 { font-size:clamp(3.2rem,13vw,6rem); }
  .hero-statement { max-width:34rem; }
  .hero-actions { flex-direction:column; gap:1.4rem; }
  .manifesto { grid-template-columns:1fr; padding:13vh 20px 10vh; }
  .manifesto-copy { padding-top:4vh; }
  .body-copy { margin-left:0; }
  .mark-frame { position:relative; top:auto; width:100%; max-width:620px; margin:3rem auto 0; }
  .principles { grid-template-columns:1fr; margin:0 20px; }
  .principles article { min-height:250px; border-right:0; border-bottom:1px solid var(--line); padding:2rem; }
  .principles article:last-child { border-bottom:0; }
  .worlds { min-height:auto; padding:13vh 20px 11vh; }
  .worlds-heading { grid-template-columns:1fr; gap:1.5rem; margin-bottom:3.5rem; }
  .worlds-heading h2 { font-size:clamp(3.2rem,14vw,5.5rem); }
  .worlds-heading > p:last-child { max-width:30rem; }
  .worlds-grid { grid-template-columns:1fr; }
  .world-gate { min-height:190px; padding:1.6rem; }
  .world-gate__title { max-width:76%; font-size:clamp(2.35rem,10vw,4.4rem); }
  .world-gate__note { max-width:68%; }
  .world-gate__aperture { right:1.5rem; bottom:1.5rem; width:52px; }
  .worlds-field i { width:150vw; }
  .worlds-field i:nth-child(2) { width:112vw; }
  .worlds-field i:nth-child(3) { width:76vw; }
  footer { grid-template-columns:1fr; gap:1.4rem; align-items:start; }
  footer p, footer span { text-align:left; }
}

@media (max-width: 520px) {
  .hero-film { object-position:center; filter:contrast(1.02) brightness(.96); }
  .film-vignette { box-shadow:inset 0 0 17vw 3vw rgba(0,0,0,.24); }
  .film-meta { inset:auto 18px 22px; font-size:7px; }
  .sound-gate { width:148px; height:148px; }
  .hero-after {
    align-content:start;
    justify-content:center;
    gap:1.65rem;
    padding:64px 0 32px;
  }
  .hero-emblem {
    width:100vw;
    max-width:none;
    justify-self:center;
    border-left:0;
    border-right:0;
    box-shadow:0 38px 100px rgba(0,0,0,.58);
  }
  .hero-emblem img { width:100vw; }
  .hero-after-copy {
    width:100%;
    padding:0 24px;
  }
  .hero-after h1 { margin:1.25rem 0 1.2rem; font-size:clamp(3rem,14vw,4.8rem); }
  .hero-statement { font-size:.92rem; line-height:1.6; }
  .scroll-cue span { display:none; }
  .manifesto h2 { font-size:clamp(3rem,15vw,5rem); }
  .portal h2 { font-size:clamp(4.7rem,27vw,8rem); }
  .portal-orbit { width:125vw; }
  .portal-link { margin-top: 3rem; letter-spacing: .22em; }
  .gateway-button { min-height:68px; padding:0 20px; }
  .gateway-button__status em { display:none; }
  .gateway-link { min-width:118px; height:32px; padding:0 11px; gap:10px; }
  .gateway-link__rail { width:18px; }
  .world-gate { min-height:172px; }
  .world-gate__title { font-size:clamp(2rem,9vw,3.3rem); }
  .world-gate__note { max-width:72%; font-size:.78rem; }
  .world-gate__meta i { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *:before, *:after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .film-stage, .film-shade, .film-vignette, .film-meta { display:none; }
  .hero-after { opacity:1; visibility:visible; }
  .after-film, .site-header { opacity:1; visibility:visible; transform:none; }
  .world-gate:before,.world-gate__trail,.worlds-field { animation:none !important; }
}
