@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Inter:wght@300;400;500;600&family=Manrope:wght@300;400;500;600&display=swap');

:root {
  --bg: #050307;
  --bg2: #0b0710;
  --ink: #f7f3ff;
  --muted: #aaa0ba;
  --purple: #9f6cff;
  --purple2: #6a36c9;
  --purple3: #d4b5ff;
  --line: rgba(199, 166, 255, .16);
  --glass: rgba(12, 7, 18, .56);
  --soft: rgba(159, 108, 255, .09);
  --ease: cubic-bezier(.2,.75,.2,1);
  --mx: 50vw;
  --my: 50vh;
}

* { box-sizing: border-box; }
html { background: var(--bg); scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 68% -10%, rgba(106,54,201,.18), transparent 34rem),
    radial-gradient(circle at 10% 65%, rgba(159,108,255,.08), transparent 30rem),
    linear-gradient(180deg, #050307 0%, #07040a 48%, #020203 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
  cursor: none;
}

::selection { background: rgba(159,108,255,.35); color: #fff; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a, input, textarea { cursor: none; }

#spaceCanvas, .page-fog, .noise, .grid-plane {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
#spaceCanvas { z-index: -5; }
.page-fog {
  z-index: -4;
  background:
    radial-gradient(36rem 36rem at var(--mx) var(--my), rgba(142, 87, 255, .08), transparent 70%),
    radial-gradient(22rem 12rem at 50% 15%, rgba(217,195,255,.06), transparent 70%);
}
.noise {
  z-index: 80;
  opacity: .06;
  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='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");
}

.cursor-core, .cursor-ring {
  position: fixed;
  left: 0; top: 0;
  pointer-events: none;
  z-index: 120;
  transform: translate(-50%, -50%);
  border-radius: 999px;
}
.cursor-core { width: 5px; height: 5px; background: #fff; box-shadow: 0 0 14px var(--purple3); }
.cursor-ring {
  width: 34px; height: 34px;
  border: 1px solid rgba(212,181,255,.55);
  box-shadow: 0 0 26px rgba(159,108,255,.12), inset 0 0 20px rgba(159,108,255,.05);
  transition: width .25s var(--ease), height .25s var(--ease), border-color .25s, background .25s;
}
body.cursor-active .cursor-ring { width: 58px; height: 58px; border-color: rgba(255,255,255,.62); background: rgba(159,108,255,.06); }

.site-header {
  position: fixed;
  z-index: 60;
  top: 0; left: 0; right: 0;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(22px, 4vw, 66px);
  background: linear-gradient(180deg, rgba(5,3,7,.9), rgba(5,3,7,.54), transparent);
  backdrop-filter: blur(8px);
}
.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font: 500 11px/1 DM Mono, monospace;
}
.brand-mark {
  width: 28px; height: 28px;
  border: 1px solid rgba(212,181,255,.5);
  border-radius: 50%;
  position: relative;
  box-shadow: inset 0 0 14px rgba(159,108,255,.15), 0 0 20px rgba(159,108,255,.08);
}
.brand-mark::before,.brand-mark::after { content:""; position:absolute; inset:5px; border:1px solid rgba(255,255,255,.3); border-radius:50%; transform:scaleY(.36) rotate(25deg); }
.brand-mark::after { transform:scaleY(.36) rotate(-25deg); }

.nav { display: flex; gap: clamp(14px, 2vw, 28px); align-items: center; }
.nav a {
  font: 400 10px/1 DM Mono, monospace;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--muted);
  padding: 11px 0;
  position: relative;
}
.nav a::after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:var(--purple3); transition:right .3s var(--ease); }
.nav a:hover, .nav a.active { color:#fff; }
.nav a:hover::after, .nav a.active::after { right:0; }
.mobile-nav { display:none; background:none; border:0; color:#fff; padding:8px; }

.page {
  min-height: 100vh;
  padding-top: 78px;
  opacity: 0;
  transform: translateY(10px);
  animation: pageIn .9s .08s var(--ease) forwards;
}
body.leaving .page { animation: pageOut .42s var(--ease) forwards; }
@keyframes pageIn { to { opacity:1; transform:none; } }
@keyframes pageOut { to { opacity:0; transform:scale(.995); filter:blur(2px); } }

.eyebrow {
  display: inline-flex;
  gap: 9px;
  align-items: center;
  font: 500 10px/1 DM Mono, monospace;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: var(--purple3);
}
.eyebrow::before { content:""; width:26px; height:1px; background:currentColor; opacity:.6; }

h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family: Manrope, Inter, sans-serif; font-weight:300; letter-spacing:-.035em; }
h1 { font-size: clamp(3.2rem, 8vw, 8rem); line-height:.9; margin-bottom:26px; }
h2 { font-size: clamp(2.2rem, 5vw, 4.6rem); line-height:.97; }
h3 { font-size: clamp(1.15rem, 2vw, 1.55rem); }
p { color: var(--muted); line-height:1.75; }
.serif-ghost { font-family: Georgia, 'Times New Roman', serif; font-style: italic; color:#ddd1ec; }
.mono { font-family: DM Mono, monospace; }
.purple { color: var(--purple3); }

.hero {
  min-height: calc(100vh - 78px);
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(390px, 1.12fr);
  align-items: center;
  gap: clamp(24px, 5vw, 80px);
  max-width: 1500px;
  margin: 0 auto;
  padding: 48px clamp(22px,5vw,78px) 70px;
  position: relative;
}
.hero-copy { position:relative; z-index:4; max-width:690px; }
.hero-copy h1 .line2 { display:block; color:transparent; -webkit-text-stroke:1px rgba(212,181,255,.7); text-shadow:0 0 45px rgba(159,108,255,.08); }
.hero-copy > p { max-width:570px; font-size:clamp(1rem,1.25vw,1.18rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.btn {
  border:1px solid rgba(212,181,255,.25);
  background:rgba(159,108,255,.08);
  color:#fff;
  border-radius:999px;
  padding:14px 18px;
  font:500 10px/1 DM Mono, monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
  transition: transform .25s var(--ease), background .25s, border-color .25s, box-shadow .25s;
  display:inline-flex; align-items:center; gap:10px;
}
.btn::after { content:'↗'; color:var(--purple3); transition:transform .25s; }
.btn:hover { transform:translateY(-2px); background:rgba(159,108,255,.15); border-color:rgba(212,181,255,.55); box-shadow:0 12px 40px rgba(75,39,120,.16); }
.btn:hover::after { transform:translate(2px,-2px); }
.btn.ghost { background:transparent; }

.watch-stage {
  min-height: 620px;
  display:grid;
  place-items:center;
  position:relative;
  perspective: 1100px;
  isolation:isolate;
}
.watch-stage::before {
  content:"";
  position:absolute;
  width:min(74vw,650px); height:min(74vw,650px);
  border-radius:50%;
  background:radial-gradient(circle, rgba(159,108,255,.12), rgba(159,108,255,.04) 28%, transparent 65%);
  filter:blur(18px);
  z-index:-1;
}
.orbit-ring {
  position:absolute;
  width:min(78vw,600px); height:min(78vw,600px);
  border:1px solid rgba(212,181,255,.09);
  border-radius:50%;
  transform:rotateX(70deg) rotateZ(-10deg);
}
.orbit-ring.r2 { width:min(90vw,720px); height:min(90vw,720px); transform:rotateX(66deg) rotateZ(27deg); border-color:rgba(255,255,255,.06); }
.orbit-dot { position:absolute; width:5px; height:5px; border-radius:50%; background:var(--purple3); box-shadow:0 0 12px var(--purple3); left:50%; top:-2px; animation: orbitDot 7s linear infinite; transform-origin: 0 300px; }
@keyframes orbitDot { to { transform:rotate(360deg); } }

.watch {
  width: min(74vw, 500px);
  aspect-ratio: 1;
  position: relative;
  transform-style: preserve-3d;
  transition: transform .18s ease-out;
}
.watch-case {
  position:absolute; inset:0;
  border-radius:50%;
  padding: 23px;
  background:
    linear-gradient(145deg,#8f8a92 0%,#36333a 13%,#b9b5ba 24%,#29272d 42%,#757078 64%,#1d1b20 80%,#aaa5aa 100%);
  box-shadow:
    0 40px 80px rgba(0,0,0,.58),
    0 4px 6px rgba(255,255,255,.15) inset,
    -8px -8px 16px rgba(0,0,0,.65) inset,
    0 0 70px rgba(112,73,174,.13);
}
.watch-case::before {
  content:""; position:absolute; inset:12px; border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 0 0 4px rgba(0,0,0,.24), inset 0 0 14px rgba(255,255,255,.08);
}
.watch-crown {
  position:absolute; right:-18px; top:45%; width:23px; height:48px; border-radius:4px 9px 9px 4px;
  background:repeating-linear-gradient(90deg,#3e3b40 0 2px,#89848a 2px 4px);
  box-shadow:2px 5px 12px rgba(0,0,0,.5);
}
.watch-face {
  position:absolute; inset:24px;
  overflow:hidden;
  border-radius:50%;
  background:
    radial-gradient(circle at 36% 30%, rgba(255,255,255,.10), transparent 13%),
    radial-gradient(circle at 45% 45%, #161519 0%, #0b0b0d 68%, #020203 100%);
  box-shadow: inset 0 0 45px #000, inset 0 0 4px rgba(255,255,255,.2);
}
.watch-glass { position:absolute; inset:0; z-index:15; border-radius:50%; background:linear-gradient(128deg,rgba(255,255,255,.12),transparent 28%,transparent 70%,rgba(142,87,255,.04)); pointer-events:none; }
.watch-brand { position:absolute; top:24%; left:50%; transform:translateX(-50%); text-align:center; z-index:3; }
.watch-brand b { display:block; font:500 clamp(11px,1.8vw,16px)/1 DM Mono,monospace; letter-spacing:.22em; }
.watch-brand span { font:300 8px/1.2 DM Mono,monospace; letter-spacing:.18em; color:#8d8890; }
.watch-date {
  position:absolute; right:18%; top:47%; transform:translateY(-50%); z-index:5;
  width:34px; height:28px; display:grid; place-items:center;
  background:#e9e7e6; color:#111; border:2px solid #777;
  font:500 15px/1 DM Mono, monospace;
  box-shadow:inset 0 0 8px rgba(0,0,0,.25);
}
.watch-date::after { content:"DATE"; position:absolute; top:34px; color:#777; font-size:6px; letter-spacing:.1em; }
.tick { position:absolute; left:50%; top:50%; width:1px; height:46%; transform-origin:50% 0; z-index:2; }
.tick::before { content:""; position:absolute; left:0; bottom:6px; display:block; width:1px; height:9px; background:#d2cfd6; opacity:.75; }
.tick.major::before { width:2px; height:16px; background:#fff; opacity:.9; }
.numeral { position:absolute; z-index:3; color:#eee; font:300 16px/1 DM Mono,monospace; transform:translate(-50%,-50%); text-shadow:0 0 8px rgba(255,255,255,.12); }
.hand { position:absolute; left:50%; top:50%; transform-origin:50% 100%; z-index:8; border-radius:999px; }
.hand.hour { width:6px; height:29%; margin-left:-3px; margin-top:-29%; background:linear-gradient(#ebe8ee,#737078); transform:rotate(219deg); box-shadow:0 0 6px rgba(255,255,255,.15); }
.hand.minute { width:4px; height:39%; margin-left:-2px; margin-top:-39%; background:linear-gradient(#fff,#77727b); transform:rotate(108deg); }
.hand.second { width:1px; height:42%; margin-left:-.5px; margin-top:-42%; background:#bd91ff; box-shadow:0 0 6px rgba(189,145,255,.8); transition:transform .09s cubic-bezier(.3,.8,.3,1); }
.hand.second::after { content:""; position:absolute; bottom:-17%; left:50%; width:1px; height:18%; background:#bd91ff; }
.watch-pin { position:absolute; left:50%; top:50%; width:12px; height:12px; transform:translate(-50%,-50%); z-index:12; border-radius:50%; background:#d5d1d8; box-shadow:0 0 0 3px #343137,0 0 12px rgba(255,255,255,.2); }
.watch-subdial { position:absolute; left:50%; bottom:20%; width:25%; aspect-ratio:1; transform:translateX(-50%); border:1px solid rgba(255,255,255,.2); border-radius:50%; }
.watch-subdial::before,.watch-subdial::after { content:""; position:absolute; left:50%; top:50%; background:#777; transform-origin:50% 100%; }
.watch-subdial::before { width:1px; height:34%; transform:translate(-50%,-100%) rotate(42deg); }
.watch-subdial::after { width:1px; height:28%; transform:translate(-50%,-100%) rotate(166deg); }
.transmission-hud {
  position:absolute; left:0; bottom:7%; z-index:20;
  min-width:min(360px,72vw);
  padding:14px 16px;
  border-left:1px solid rgba(212,181,255,.55);
  background:linear-gradient(90deg,rgba(8,5,12,.72),transparent);
  backdrop-filter:blur(10px);
}
.transmission-hud .label { font:500 8px/1 DM Mono,monospace; letter-spacing:.18em; color:#8f859b; }
.transmission-hud .message { margin:7px 0 4px; font:400 clamp(15px,2vw,21px)/1.2 DM Mono,monospace; letter-spacing:.08em; color:#fff; }
.transmission-hud .morse { font:300 11px/1.5 DM Mono,monospace; color:var(--purple3); max-width:320px; }
.signal-led { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--purple3); margin-right:7px; box-shadow:0 0 14px var(--purple3); }
.signal-led.live { animation: pulse .55s infinite alternate; }
@keyframes pulse { to{opacity:.25; box-shadow:none;} }

.scroll-cue { position:absolute; bottom:24px; left:clamp(22px,5vw,78px); font:400 8px/1 DM Mono,monospace; letter-spacing:.2em; color:#70697c; text-transform:uppercase; display:flex; gap:12px; align-items:center; }
.scroll-cue::before { content:""; width:36px; height:1px; background:#70697c; animation:grow 1.7s infinite; transform-origin:left; }
@keyframes grow { 0%,100%{transform:scaleX(.35)}50%{transform:scaleX(1)} }

.section { max-width:1400px; margin:0 auto; padding:clamp(90px,11vw,160px) clamp(22px,5vw,78px); position:relative; }
.section.narrow { max-width:1050px; }
.section-head { display:grid; grid-template-columns:.65fr 1.35fr; gap:30px; align-items:end; margin-bottom:60px; }
.section-head p { max-width:680px; margin-left:auto; }
.quote-line { border-left:1px solid var(--line); padding:24px 0 24px 28px; font-size:clamp(1.2rem,2vw,1.6rem); max-width:760px; color:#e8e1ef; line-height:1.55; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.card {
  min-height:230px; padding:24px; border:1px solid var(--line); border-radius:18px;
  background:linear-gradient(145deg,rgba(25,15,36,.42),rgba(5,3,7,.38));
  backdrop-filter:blur(14px);
  position:relative; overflow:hidden;
  transition:transform .35s var(--ease), border-color .35s;
}
.card::before { content:""; position:absolute; width:180px;height:180px;border-radius:50%; background:radial-gradient(circle,rgba(159,108,255,.14),transparent 68%); left:var(--card-x,50%); top:var(--card-y,50%); transform:translate(-50%,-50%); opacity:0; transition:opacity .3s; }
.card:hover { transform:translateY(-5px); border-color:rgba(212,181,255,.3); }
.card:hover::before { opacity:1; }
.card .num { font:400 9px/1 DM Mono,monospace; color:var(--purple3); letter-spacing:.18em; }
.card h3 { margin:58px 0 9px; }
.card p { font-size:.92rem; margin-bottom:0; }

.page-hero { max-width:1400px; margin:0 auto; padding:110px clamp(22px,5vw,78px) 55px; position:relative; }
.page-hero h1 { font-size:clamp(3.7rem,9vw,9rem); max-width:1100px; }
.page-hero p { max-width:680px; font-size:1.08rem; }
.page-index { position:absolute; right:clamp(22px,5vw,78px); top:120px; font:300 clamp(3rem,8vw,8rem)/1 DM Mono,monospace; color:rgba(212,181,255,.06); }

/* Transmission */
.transmission-lab { display:grid; grid-template-columns:minmax(0,.82fr) minmax(460px,1.18fr); gap:clamp(24px,5vw,70px); align-items:center; }
.lab-panel { border:1px solid var(--line); border-radius:24px; background:rgba(8,5,12,.62); backdrop-filter:blur(16px); padding:26px; }
.lab-panel textarea {
  width:100%; min-height:145px; resize:vertical; background:#08060b; color:#fff; border:1px solid rgba(212,181,255,.16); border-radius:14px; padding:16px; outline:none;
  font:300 16px/1.6 DM Mono,monospace; transition:border-color .25s, box-shadow .25s;
}
.lab-panel textarea:focus { border-color:rgba(212,181,255,.52); box-shadow:0 0 0 4px rgba(159,108,255,.06); }
.control-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.control-row .btn { border-radius:12px; }
.control-row .btn::after { display:none; }
.signal-readout { margin-top:18px; padding:16px; border-top:1px solid var(--line); }
.signal-readout code { white-space:pre-wrap; word-break:break-word; color:var(--purple3); font:300 13px/1.8 DM Mono,monospace; }
.signal-canvas-wrap { height:160px; margin-top:18px; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#030204; }
#signalCanvas { width:100%; height:100%; display:block; }
.big-watch { max-width:560px; margin:auto; }
.big-watch .watch { width:min(82vw,550px); }

/* Orbit */
.orbit-stage { position:relative; border:1px solid var(--line); border-radius:28px; min-height:650px; overflow:hidden; background:radial-gradient(circle at 50% 50%,rgba(83,49,128,.13),rgba(2,1,3,.9) 60%); }
#orbitCanvas { width:100%; height:650px; display:block; }
.orbit-overlay { position:absolute; inset:0; pointer-events:none; display:flex; justify-content:space-between; align-items:flex-end; padding:26px; }
.orbit-note { max-width:320px; font-size:.88rem; color:#8f859a; }
.orbit-stats { font:300 10px/1.7 DM Mono,monospace; color:#a99ab8; text-align:right; }
.orbit-controls { display:flex; justify-content:center; gap:10px; margin-top:16px; flex-wrap:wrap; }
.orbit-controls button { color:#fff; background:rgba(12,7,18,.6); border:1px solid var(--line); padding:10px 13px; border-radius:999px; font:400 9px/1 DM Mono,monospace; letter-spacing:.1em; text-transform:uppercase; }

/* Archive */
.archive-grid { display:grid; grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr); gap:clamp(32px,7vw,100px); align-items:center; }
.photo-orbit { position:relative; perspective:1200px; }
.photo-frame {
  transform-style:preserve-3d; transition:transform .18s ease-out;
  position:relative; border-radius:24px; overflow:hidden; border:1px solid rgba(212,181,255,.22);
  box-shadow:0 40px 100px rgba(0,0,0,.55), 0 0 90px rgba(92,45,153,.10);
}
.photo-frame img { display:block; width:100%; height:auto; filter:saturate(.82) contrast(1.05); }
.photo-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(130deg,rgba(159,108,255,.14),transparent 28%,transparent 70%,rgba(0,0,0,.28)); pointer-events:none; }
.photo-caption { position:absolute; bottom:14px; left:14px; right:14px; padding:12px 14px; background:rgba(5,3,7,.68); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.1); border-radius:12px; font:300 9px/1.5 DM Mono,monospace; letter-spacing:.08em; color:#d8d1df; }
.photo-orbit::before,.photo-orbit::after { content:""; position:absolute; border:1px solid rgba(212,181,255,.10); border-radius:50%; inset:-12%; transform:rotateX(72deg) rotateZ(17deg); pointer-events:none; }
.photo-orbit::after { inset:-23%; transform:rotateX(68deg) rotateZ(-25deg); }
.memory-stack { display:grid; gap:14px; }
.memory {
  display:grid; grid-template-columns:70px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); align-items:start;
}
.memory .coordinate { font:400 9px/1.5 DM Mono,monospace; color:var(--purple3); letter-spacing:.08em; }
.memory p { margin:0; color:#bcb3c5; }

.constellation-box { min-height:430px; position:relative; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:rgba(3,2,5,.6); }
#memoryCanvas { width:100%; height:430px; display:block; }
.constellation-hint { position:absolute; left:20px; bottom:16px; font:300 9px/1.4 DM Mono,monospace; color:#81778c; letter-spacing:.08em; pointer-events:none; }
.memory-pop { position:absolute; width:min(260px,70vw); padding:12px 14px; border:1px solid rgba(212,181,255,.25); border-radius:12px; background:rgba(6,3,10,.82); backdrop-filter:blur(10px); font-size:.84rem; color:#d8cfe2; pointer-events:none; opacity:0; transform:translateY(6px); transition:.25s var(--ease); }
.memory-pop.show { opacity:1; transform:none; }

/* Tesseract */
.tesseract-stage { position:relative; min-height:690px; border:1px solid var(--line); border-radius:28px; overflow:hidden; background:#030204; }
#tesseractCanvas { width:100%; height:690px; display:block; }
.tesseract-copy { position:absolute; left:clamp(22px,4vw,52px); top:clamp(22px,4vw,52px); max-width:430px; pointer-events:none; }
.tesseract-copy h2 { font-size:clamp(2.4rem,5vw,5rem); }
.tesseract-message {
  position:absolute; right:clamp(22px,4vw,52px); bottom:clamp(22px,4vw,52px); max-width:440px;
  padding:18px 20px; border-left:1px solid rgba(212,181,255,.45); background:linear-gradient(90deg,rgba(5,3,7,.58),transparent); backdrop-filter:blur(8px);
}
.tesseract-message strong { display:block; font:400 13px/1.5 DM Mono,monospace; color:#fff; letter-spacing:.08em; }
.tesseract-message span { font-size:.83rem; color:#897d94; }

/* Footer + Music */
.site-footer { max-width:1400px; margin:0 auto; padding:60px clamp(22px,5vw,78px) 110px; display:flex; justify-content:space-between; gap:30px; color:#706779; font:300 9px/1.6 DM Mono,monospace; text-transform:uppercase; letter-spacing:.12em; border-top:1px solid rgba(212,181,255,.08); }
.music-dock {
  position:fixed; z-index:70; right:18px; bottom:18px; width:min(370px,calc(100vw - 36px));
  background:rgba(8,5,12,.74); border:1px solid rgba(212,181,255,.16); border-radius:16px; backdrop-filter:blur(18px); overflow:hidden;
  box-shadow:0 18px 60px rgba(0,0,0,.35); transition:transform .35s var(--ease), opacity .35s;
}
.music-dock.collapsed { transform:translateY(calc(100% - 44px)); }
.music-top { height:44px; display:flex; align-items:center; padding:0 13px; gap:10px; border-bottom:1px solid var(--line); }
.music-top .eq { display:flex; gap:2px; align-items:flex-end; height:13px; }
.music-top .eq i { display:block;width:2px;height:4px;background:var(--purple3);animation:eq .55s ease-in-out infinite alternate; animation-play-state:paused; }
.music-dock.playing .eq i { animation-play-state:running; }
.music-top .eq i:nth-child(2){animation-delay:.15s;height:8px}.music-top .eq i:nth-child(3){animation-delay:.3s;height:12px}
@keyframes eq { to{height:13px} }
.music-title { flex:1; min-width:0; font:400 8px/1 DM Mono,monospace; letter-spacing:.12em; color:#9d93a8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.music-toggle, .music-collapse { border:0; background:none; color:#fff; padding:6px; font:400 10px/1 DM Mono,monospace; }
.music-body { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:12px 13px 14px; }
.track { font-size:.82rem; color:#dfd7e7; }
.track small { display:block; color:#756c7e; margin-top:4px; font:300 8px/1.4 DM Mono,monospace; text-transform:uppercase; letter-spacing:.08em; }
#youtubePlayer { position:absolute; width:1px; height:1px; left:-9999px; top:-9999px; }

.entry-screen {
  position:fixed; inset:0; z-index:200; display:grid; place-items:center; background:radial-gradient(circle at 50% 50%,#120a1b,#030204 65%);
  transition:opacity .9s var(--ease), visibility .9s;
}
.entry-screen.hidden { opacity:0; visibility:hidden; }
.entry-inner { text-align:center; padding:24px; max-width:680px; }
.entry-ring { width:130px;height:130px;margin:0 auto 28px;border:1px solid rgba(212,181,255,.28);border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:0 0 80px rgba(128,72,202,.13),inset 0 0 50px rgba(128,72,202,.08); }
.entry-ring::before,.entry-ring::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:scaleY(.38) rotate(27deg);animation:spin 8s linear infinite}.entry-ring::after{transform:scaleY(.38) rotate(-27deg);animation-direction:reverse;animation-duration:11s}
@keyframes spin{to{rotate:360deg}}
.entry-ring span { font:400 10px/1 DM Mono,monospace; letter-spacing:.17em; color:#d7c8e9; }
.entry-inner h2 { margin:0 0 14px; font-size:clamp(2.3rem,6vw,5rem); }
.entry-inner p { max-width:530px; margin:0 auto 24px; }
.entry-btn { min-width:220px; justify-content:center; }

.entry-love-line {
  position:absolute;
  left:50%;
  bottom:clamp(28px,6vh,70px);
  width:min(92vw,1100px);
  transform:translateX(-50%);
  margin:0;
  pointer-events:none;
  text-align:center;
  font-family:Iowan Old Style, Baskerville, "Times New Roman", serif;
  font-size:clamp(1.65rem,3.8vw,3.9rem);
  font-weight:400;
  font-style:italic;
  line-height:1.12;
  letter-spacing:.015em;
  color:#f4eaff;
  text-shadow:0 0 18px rgba(212,181,255,.18),0 0 48px rgba(159,108,255,.12);
  opacity:.97;
}
.entry-love-line::before,.entry-love-line::after {
  content:"";
  display:inline-block;
  width:clamp(24px,5vw,74px);
  height:1px;
  margin:0 clamp(10px,2vw,24px) .24em;
  vertical-align:middle;
  background:linear-gradient(90deg,transparent,rgba(212,181,255,.55),transparent);
}
.entry-love-line em {
  font-weight:500;
  color:#fff;
  text-shadow:0 0 16px rgba(255,255,255,.2),0 0 44px rgba(159,108,255,.3);
}
@media (max-width:620px){
  .entry-inner{padding:20px 20px 118px}
  .entry-love-line{bottom:30px;width:90vw;font-size:clamp(1.45rem,7.2vw,2.35rem);line-height:1.16}
  .entry-love-line::before,.entry-love-line::after{display:none}
}

@media (max-width: 980px) {
  body { cursor:auto; } button,a,input,textarea{cursor:auto}.cursor-core,.cursor-ring{display:none}
  .nav { position:fixed; top:68px; left:14px; right:14px; display:grid; gap:0; padding:12px 18px; background:rgba(8,5,12,.95); border:1px solid var(--line); border-radius:16px; backdrop-filter:blur(18px); transform:translateY(-10px); opacity:0; pointer-events:none; transition:.25s var(--ease); }
  .nav.open { transform:none; opacity:1; pointer-events:auto; }
  .nav a { padding:13px 0; }
  .mobile-nav { display:block; }
  .hero { grid-template-columns:1fr; padding-top:55px; }
  .hero-copy { max-width:760px; }
  .watch-stage { min-height:560px; }
  .transmission-hud { left:5%; bottom:2%; }
  .section-head, .transmission-lab, .archive-grid { grid-template-columns:1fr; }
  .section-head p { margin-left:0; }
  .cards { grid-template-columns:1fr; }
  .lab-panel { order:2; }
  .big-watch { order:1; }
  .page-index { opacity:.55; }
}

@media (max-width: 620px) {
  .site-header { height:66px; padding:0 18px; }
  .brand span:last-child { display:none; }
  .page { padding-top:66px; }
  h1{font-size:clamp(3.2rem,17vw,5.8rem)}
  .hero { min-height:auto; padding:54px 18px 95px; }
  .watch-stage { min-height:440px; }
  .watch { width:min(92vw,420px); }
  .watch-case { padding:17px; }
  .watch-face { inset:18px; }
  .watch-crown{right:-13px;width:18px;height:39px}
  .numeral{font-size:12px}.watch-date{width:29px;height:24px;font-size:12px}
  .transmission-hud{min-width:auto;right:4%;left:4%}
  .scroll-cue{display:none}
  .section,.page-hero { padding-left:18px; padding-right:18px; }
  .page-hero { padding-top:76px; }
  .page-index{right:18px;top:82px}
  .orbit-stage,#orbitCanvas { min-height:530px;height:530px }
  .orbit-overlay{padding:14px}.orbit-note{max-width:220px}
  .tesseract-stage,#tesseractCanvas{min-height:580px;height:580px}
  .tesseract-copy{max-width:300px}.tesseract-message{left:18px;right:18px;max-width:none}
  .site-footer{padding:45px 18px 110px;flex-direction:column}
}

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

/* --------------------------------------------------------------------------
   v2 refinements: keep the real system pointer, lift the mission watch,
   persistent soft-navigation, live paired watches, and live-letter telemetry.
   -------------------------------------------------------------------------- */
body { cursor: default; }
a, button { cursor: pointer; }
input, textarea { cursor: text; }
.cursor-core { opacity:.62; mix-blend-mode:screen; }
.cursor-ring { opacity:.82; }

main.page { transition: opacity .22s var(--ease), transform .22s var(--ease), filter .22s var(--ease); }
body.route-changing main.page { opacity:.08; transform:translateY(5px) scale(.998); filter:blur(3px); }

/* Keep the home HUD completely clear of the Hamilton watch. */
.home-watch .watch { top:-62px; }
.home-watch .transmission-hud { bottom:-1%; }

.letter-carrier {
  margin-top:10px; padding-top:9px; border-top:1px solid rgba(212,181,255,.13);
  display:grid; grid-template-columns:auto 34px 1fr; gap:10px; align-items:center;
  font-family:DM Mono,monospace; text-transform:uppercase;
}
.letter-carrier span { font-size:7px; letter-spacing:.16em; color:#756b80; }
.letter-carrier b { font-size:18px; line-height:1; text-align:center; color:#fff; font-weight:400; text-shadow:0 0 16px rgba(212,181,255,.45); }
.letter-carrier em { font-size:8px; letter-spacing:.13em; color:var(--purple3); font-style:normal; }

/* Live pairing control. */
.live-link {
  position:fixed; z-index:92; left:18px; bottom:18px; width:min(390px,calc(100vw - 36px));
  border:1px solid rgba(212,181,255,.17); border-radius:16px; overflow:hidden;
  background:rgba(7,4,11,.79); backdrop-filter:blur(20px); box-shadow:0 20px 70px rgba(0,0,0,.44);
  transform:translateY(calc(100% - 45px)); transition:transform .38s var(--ease), border-color .3s;
}
.live-link.open { transform:none; border-color:rgba(212,181,255,.30); }
.live-link-tab {
  width:100%; height:44px; border:0; background:transparent; color:#cfc5d8;
  display:grid; grid-template-columns:auto 1fr auto; gap:9px; align-items:center; padding:0 13px;
  font:400 8px/1 DM Mono,monospace; letter-spacing:.12em; text-align:left;
}
.live-dot { width:7px;height:7px;border-radius:50%;background:#62586b;box-shadow:0 0 0 3px rgba(255,255,255,.02); }
.live-status { color:#776d81; font-weight:400; font-size:7px; letter-spacing:.13em; }
.live-link[data-status="online"] .live-dot { background:#d4b5ff; box-shadow:0 0 14px #9f6cff; }
.live-link[data-status="online"] .live-status { color:#d4b5ff; }
.live-link[data-status="connecting"] .live-dot { background:#a47be6; animation:pulse .55s infinite alternate; }
.live-link[data-status="error"] .live-dot { background:#df8daf; }
.live-link-panel { border-top:1px solid var(--line); padding:19px 18px 18px; }
.live-link-panel h3 { margin:14px 0 8px; font-size:1.35rem; }
.live-link-panel p { margin:0 0 16px; font-size:.82rem; line-height:1.6; color:#9f94aa; }
.live-link-panel p strong { color:#e8def2; font-weight:500; }
.live-link-panel label { display:block; margin-bottom:7px; color:#7f7488; font:400 7px/1 DM Mono,monospace; letter-spacing:.15em; }
.room-row { display:grid; grid-template-columns:1fr auto; gap:7px; }
.room-row input { width:100%; min-width:0; border:1px solid rgba(212,181,255,.18); border-radius:10px; padding:11px 12px; background:#050308; color:#fff; outline:none; font:400 10px/1 DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase; }
.room-row input:focus { border-color:rgba(212,181,255,.48); box-shadow:0 0 0 3px rgba(159,108,255,.06); }
.room-row button,.live-actions button { border:1px solid rgba(212,181,255,.18); border-radius:10px; padding:10px 11px; background:rgba(159,108,255,.07); color:#d9cbe6; font:400 8px/1 DM Mono,monospace; letter-spacing:.09em; text-transform:uppercase; }
.live-actions { display:grid; grid-template-columns:1fr 1fr 1fr; gap:7px; margin-top:8px; }
.live-actions button:hover,.room-row button:hover { background:rgba(159,108,255,.15); border-color:rgba(212,181,255,.36); }
.live-help { margin-top:12px; padding-top:10px; border-top:1px solid rgba(212,181,255,.09); color:#6f6578; font:300 7px/1.55 DM Mono,monospace; letter-spacing:.05em; }

/* Remote messages appear everywhere, with a tiny synchronized watch. */
.incoming-signal {
  position:fixed; z-index:91; top:92px; right:18px; width:min(370px,calc(100vw - 36px));
  border:1px solid rgba(212,181,255,.24); border-radius:18px; overflow:hidden;
  background:rgba(6,3,10,.88); backdrop-filter:blur(22px); box-shadow:0 26px 90px rgba(0,0,0,.55),0 0 80px rgba(102,49,169,.10);
  opacity:0; visibility:hidden; transform:translateY(-13px) scale(.98); transition:.38s var(--ease);
}
.incoming-signal.show { opacity:1; visibility:visible; transform:none; }
.incoming-head { height:42px; padding:0 12px; display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:center; border-bottom:1px solid var(--line); color:#bdb0c8; font:400 7px/1 DM Mono,monospace; letter-spacing:.12em; }
.incoming-head i { width:7px;height:7px;border-radius:50%;background:var(--purple3);box-shadow:0 0 14px var(--purple); }
.incoming-signal.receiving .incoming-head i { animation:pulse .4s infinite alternate; }
.incoming-close { border:0;background:transparent;color:#776c81;font-size:18px;line-height:1;padding:5px; }
.incoming-body { min-height:156px; display:grid; grid-template-columns:138px 1fr; gap:6px; align-items:center; padding:10px 15px 13px 6px; }
.remote-watch-mini { display:grid; place-items:center; perspective:700px; }
.remote-watch-mini .watch { width:116px; }
.remote-watch-mini .watch-case { padding:8px; box-shadow:0 16px 34px rgba(0,0,0,.58),0 0 34px rgba(112,73,174,.11); }
.remote-watch-mini .watch-case::before { inset:4px; }
.remote-watch-mini .watch-face { inset:9px; }
.remote-watch-mini .watch-crown { right:-7px;width:10px;height:22px; }
.remote-watch-mini .watch-brand,.remote-watch-mini .watch-date::after,.remote-watch-mini .numeral { display:none; }
.remote-watch-mini .watch-date { width:15px;height:12px;right:17%;font-size:7px;border-width:1px; }
.remote-watch-mini .watch-pin { width:5px;height:5px;box-shadow:0 0 0 1px #343137; }
.incoming-copy small { color:#7c7187; font:400 7px/1 DM Mono,monospace; letter-spacing:.16em; }
.incoming-letter { margin-top:5px; font:300 46px/.9 Manrope,sans-serif; color:#fff; text-shadow:0 0 28px rgba(178,125,255,.3); }
.incoming-symbol { margin:6px 0 8px; color:var(--purple3); font:400 8px/1 DM Mono,monospace; letter-spacing:.16em; }
.incoming-message { margin:0; color:#978d9f; font:300 8px/1.5 DM Mono,monospace; letter-spacing:.06em; word-break:break-word; }

/* The hidden YouTube iframe remains alive while route content changes. */
#youtubePlayer iframe { position:absolute; width:2px; height:2px; left:-9999px; top:-9999px; opacity:.01; pointer-events:none; }

@media (max-width: 980px) {
  .home-watch .watch { top:-28px; }
}
@media (max-width: 620px) {
  .home-watch .watch { top:-18px; }
  .live-link { left:10px; bottom:10px; width:min(355px,calc(100vw - 20px)); }
  .music-dock { right:10px; bottom:62px; width:min(355px,calc(100vw - 20px)); }
  .incoming-signal { top:76px; right:10px; width:min(355px,calc(100vw - 20px)); }
  .incoming-body { grid-template-columns:112px 1fr; }
  .remote-watch-mini .watch { width:96px; }
}

/* --------------------------------------------------------------------------
   v3: persistent single-document navigation + real private live chat.
   -------------------------------------------------------------------------- */
.live-link-panel { max-height:min(76vh,720px); overflow:auto; scrollbar-width:thin; scrollbar-color:rgba(212,181,255,.28) transparent; }
.live-chat-log {
  margin-top:14px; min-height:160px; max-height:245px; overflow:auto; padding:12px;
  border:1px solid rgba(212,181,255,.12); border-radius:12px;
  background:linear-gradient(180deg,rgba(10,6,15,.72),rgba(4,3,7,.82));
  scrollbar-width:thin; scrollbar-color:rgba(212,181,255,.24) transparent;
}
.live-chat-empty { min-height:134px; display:grid; place-content:center; text-align:center; padding:16px; }
.live-chat-empty span { color:#cbb8e0; font:500 8px/1 DM Mono,monospace; letter-spacing:.15em; }
.live-chat-empty p { max-width:270px; margin:9px auto 0; color:#706679; font:300 8px/1.55 DM Mono,monospace; }
.live-chat-message { display:flex; flex-direction:column; align-items:flex-start; margin:9px 0; }
.live-chat-message.mine { align-items:flex-end; }
.live-chat-bubble {
  max-width:84%; padding:9px 11px; border-radius:12px 12px 12px 4px;
  border:1px solid rgba(212,181,255,.12); background:rgba(255,255,255,.035);
  color:#ddd5e5; font:300 10px/1.45 DM Mono,monospace; word-break:break-word;
}
.live-chat-message.mine .live-chat-bubble {
  border-radius:12px 12px 4px 12px; border-color:rgba(192,146,255,.25);
  background:linear-gradient(135deg,rgba(151,91,229,.18),rgba(103,59,166,.09)); color:#fff;
}
.live-chat-meta { margin-top:4px; color:#655d6d; font:400 6px/1 DM Mono,monospace; letter-spacing:.1em; }
.live-chat-compose { display:grid; grid-template-columns:1fr auto; gap:7px; margin-top:8px; }
.live-chat-compose input {
  min-width:0; width:100%; border:1px solid rgba(212,181,255,.18); border-radius:10px;
  background:#050308; color:#fff; padding:11px 12px; outline:none;
  font:400 9px/1.2 DM Mono,monospace;
}
.live-chat-compose input:focus { border-color:rgba(212,181,255,.5); box-shadow:0 0 0 3px rgba(159,108,255,.06); }
.live-chat-compose button {
  border:1px solid rgba(212,181,255,.2); border-radius:10px; padding:10px 13px;
  background:rgba(159,108,255,.12); color:#eee5f7; font:500 8px/1 DM Mono,monospace; letter-spacing:.11em;
}

/* Dedicated live-chat route. */
.live-page-hero p { max-width:790px; }
.live-page-grid { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr); gap:clamp(28px,5vw,72px); align-items:center; padding-top:28px; }
.live-page-console {
  border:1px solid rgba(212,181,255,.14); border-radius:22px; padding:clamp(18px,3vw,30px);
  background:linear-gradient(145deg,rgba(16,9,23,.72),rgba(5,3,8,.78));
  box-shadow:0 34px 110px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.025); backdrop-filter:blur(16px);
}
.live-page-topline { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.live-page-topline h3 { margin:14px 0 0; font-size:clamp(2rem,4vw,3.4rem); }
.live-page-status {
  flex:0 0 auto; margin-top:2px; padding:8px 10px; border:1px solid rgba(212,181,255,.14); border-radius:999px;
  color:#736a7a; font:500 7px/1 DM Mono,monospace; letter-spacing:.13em;
}
.live-page-status[data-status="online"] { color:#d9c1ff; border-color:rgba(212,181,255,.36); box-shadow:0 0 24px rgba(144,85,222,.14); }
.live-page-status[data-status="connecting"] { color:#b992f1; }
.live-page-status[data-status="error"] { color:#df8daf; }
.live-room-block { margin:23px 0 16px; padding:16px; border:1px solid rgba(212,181,255,.1); border-radius:14px; background:rgba(3,2,5,.34); }
.live-room-block label { display:block; margin-bottom:8px; color:#7d7287; font:400 7px/1 DM Mono,monospace; letter-spacing:.15em; }
.live-page-room-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; }
.live-page-room-row input {
  min-width:0; border:1px solid rgba(212,181,255,.18); border-radius:10px; background:#050308; color:#fff; padding:12px;
  outline:none; font:400 10px/1 DM Mono,monospace; letter-spacing:.07em; text-transform:uppercase;
}
.live-page-room-row button,.live-page-subactions button {
  border:1px solid rgba(212,181,255,.18); border-radius:10px; background:rgba(159,108,255,.08); color:#ddd0e9;
  padding:10px 12px; font:400 8px/1 DM Mono,monospace; letter-spacing:.08em; text-transform:uppercase;
}
.live-page-subactions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; }
.live-page-subactions span { color:#665d70; font:300 7px/1.4 DM Mono,monospace; }
.live-chat-log-large { min-height:320px; max-height:390px; margin-top:0; padding:16px; }
.live-chat-log-large .live-chat-bubble { font-size:11px; padding:11px 13px; }
.live-chat-compose-large { margin-top:10px; }
.live-chat-compose-large input { padding:14px; font-size:10px; }
.live-chat-compose-large button { padding:12px 16px; }
.live-page-note { margin-top:13px; color:#6f6578; font:300 8px/1.55 DM Mono,monospace; }
.live-linked-watch .watch { top:-24px; }

/* Keep the actual YouTube iframe rendered inside the persistent shell. This is
   more reliable than placing it thousands of pixels off-screen. */
#youtubePlayer { position:absolute; right:2px; bottom:2px; width:2px; height:2px; overflow:hidden; opacity:.001; pointer-events:none; }
#youtubePlayer iframe { position:static; display:block; width:2px; height:2px; opacity:1; pointer-events:none; }

@media (max-width: 1100px) {
  .nav { gap:18px; }
  .live-page-grid { grid-template-columns:1fr; }
  .live-linked-watch { min-height:600px; }
}
@media (max-width: 720px) {
  .live-page-room-row { grid-template-columns:1fr 1fr; }
  .live-page-room-row input { grid-column:1 / -1; }
  .live-chat-log-large { min-height:280px; }
  .live-linked-watch { min-height:500px; }
}


/* --------------------------------------------------------------------------
   v4: clear live-watch composition + redundant low-latency pairing.
   -------------------------------------------------------------------------- */
.live-linked-watch {
  min-height:720px;
  padding-bottom:150px;
  align-self:stretch;
}
.live-linked-watch .watch {
  top:-58px;
  width:min(78vw,540px);
}
/* Keep the live Morse text completely BELOW the watch face. */
.live-linked-watch .transmission-hud {
  left:50%; right:auto; bottom:18px; top:auto;
  transform:translateX(-50%);
  width:min(500px,92%); min-width:0;
  padding:16px 18px 14px;
  border-left:1px solid rgba(212,181,255,.42);
  border-top:1px solid rgba(212,181,255,.08);
  background:linear-gradient(90deg,rgba(7,4,11,.94),rgba(7,4,11,.72));
  backdrop-filter:blur(18px);
  box-shadow:0 18px 60px rgba(0,0,0,.28);
}
.live-linked-watch .transmission-hud .morse { max-width:100%; }
.live-page-receiving .live-linked-watch .transmission-hud { border-color:rgba(212,181,255,.55); box-shadow:0 0 45px rgba(147,88,229,.14); }
.live-quick-guide {
  display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; gap:9px;
  margin:20px 0 3px; color:#9585a4; font:500 7px/1 DM Mono,monospace; letter-spacing:.12em;
}
.live-quick-guide i { height:1px; background:linear-gradient(90deg,rgba(212,181,255,.34),rgba(212,181,255,.06)); }
.live-page-diagnostic {
  margin-top:11px; min-height:32px; padding:10px 11px; border-radius:10px;
  border:1px solid rgba(212,181,255,.08); background:rgba(0,0,0,.18);
  color:#8d8198; font:300 8px/1.45 DM Mono,monospace; letter-spacing:.035em;
}
.live-page-status[data-status="ready"] { color:#bda0ea; border-color:rgba(190,151,242,.28); animation:pulse 1.2s infinite alternate; }
.live-link[data-status="ready"] .live-dot { background:#a77bdf; box-shadow:0 0 13px rgba(176,126,240,.75); }
.live-link[data-status="ready"] .live-status { color:#c1a2eb; }
.live-page-subactions { display:grid; grid-template-columns:auto auto auto 1fr; }
.live-page-subactions button { white-space:nowrap; }
@media (max-width:1100px){
  .live-linked-watch { min-height:690px; padding-bottom:145px; }
  .live-linked-watch .watch { top:-40px; }
}
@media (max-width:720px){
  .live-linked-watch { min-height:565px; padding-bottom:140px; }
  .live-linked-watch .watch { top:-20px; width:min(92vw,420px); }
  .live-linked-watch .transmission-hud { bottom:8px; width:94%; }
  .live-page-subactions { grid-template-columns:1fr 1fr; }
  .live-quick-guide { grid-template-columns:1fr; gap:5px; }
  .live-quick-guide i { display:none; }
}


/* v6 encrypted relay live-channel status + extra-safe watch clearance. */
.live-linked-watch{min-height:760px;padding-bottom:178px;}
.live-linked-watch .watch{top:-72px;}
.live-linked-watch .transmission-hud{bottom:10px;}
.live-page-status[data-status="online"]::before{content:'● ';font-size:7px;}
.live-page-status[data-status="ready"]::before{content:'◌ ';font-size:8px;}
.live-page-diagnostic{transition:border-color .25s ease,background .25s ease,color .25s ease;}
.live-page-status[data-status="online"] + * .live-page-diagnostic{border-color:rgba(212,181,255,.18);}
@media (max-width:1100px){.live-linked-watch{min-height:720px;padding-bottom:168px}.live-linked-watch .watch{top:-48px}}
@media (max-width:720px){.live-linked-watch{min-height:610px;padding-bottom:158px}.live-linked-watch .watch{top:-28px}.live-linked-watch .transmission-hud{bottom:4px}}

/* --------------------------------------------------------------------------
   v7 final composition: transmission-watch clearance + personal notes.
   -------------------------------------------------------------------------- */

/* On the Transmission page the watch and its decoded text now occupy separate
   vertical zones. The watch stays high; the carrier panel stays below it. */
.transmission-lab .big-watch{
  min-height:760px;
  padding-bottom:172px;
  align-self:stretch;
}
.transmission-lab .big-watch .watch{
  top:-78px;
}
.transmission-lab .big-watch .transmission-hud{
  left:50%;
  right:auto;
  top:auto;
  bottom:10px;
  transform:translateX(-50%);
  width:min(500px,92%);
  min-width:0;
  padding:16px 18px 14px;
  border-left:1px solid rgba(212,181,255,.42);
  border-top:1px solid rgba(212,181,255,.08);
  background:linear-gradient(90deg,rgba(7,4,11,.94),rgba(7,4,11,.72));
  backdrop-filter:blur(18px);
  box-shadow:0 18px 60px rgba(0,0,0,.28);
}
.transmission-lab .big-watch .transmission-hud .morse{max-width:100%;}

/* Personal notes: intentionally quieter than the interactive pieces, as if
   handwritten thoughts were pinned between mission records. */
.personal-letter-section{
  padding-top:clamp(58px,7vw,96px);
  padding-bottom:clamp(58px,7vw,96px);
}
.personal-letter{
  position:relative;
  display:grid;
  grid-template-columns:minmax(190px,.42fr) minmax(0,1.58fr);
  gap:clamp(28px,6vw,92px);
  align-items:center;
  padding:clamp(28px,4vw,54px);
  overflow:hidden;
  border-top:1px solid rgba(212,181,255,.18);
  border-bottom:1px solid rgba(212,181,255,.10);
  background:linear-gradient(110deg,rgba(21,12,31,.38),rgba(5,3,7,.15) 54%,rgba(117,70,180,.05));
  backdrop-filter:blur(10px);
}
.personal-letter::before{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  right:-190px;
  top:-185px;
  border:1px solid rgba(212,181,255,.10);
  border-radius:50%;
  box-shadow:0 0 80px rgba(159,108,255,.06) inset;
  pointer-events:none;
}
.personal-letter::after{
  content:"";
  position:absolute;
  left:clamp(28px,4vw,54px);
  top:0;
  width:72px;
  height:1px;
  background:linear-gradient(90deg,var(--purple3),transparent);
  box-shadow:0 0 20px rgba(212,181,255,.45);
}
.personal-letter-orbit{
  position:absolute;
  width:190px;
  height:54px;
  right:4%;
  bottom:10%;
  border:1px solid rgba(212,181,255,.07);
  border-radius:50%;
  transform:rotate(-12deg);
  pointer-events:none;
}
.personal-letter-meta{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.personal-letter-meta span,
.personal-letter-meta small{
  font:400 8px/1.55 DM Mono,monospace;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#766b80;
}
.personal-letter-meta strong{
  font:500 11px/1.2 DM Mono,monospace;
  letter-spacing:.22em;
  color:var(--purple3);
}
.personal-letter-meta small{
  max-width:205px;
  letter-spacing:.07em;
  text-transform:none;
  color:#655d6e;
}
.personal-letter-copy{
  position:relative;
  z-index:1;
  max-width:860px;
}
.personal-letter-copy p{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-style:italic;
  font-size:clamp(1.2rem,2.1vw,1.75rem);
  line-height:1.72;
  color:#e8dfef;
  text-wrap:balance;
}
.personal-signature{
  margin-top:20px;
  font:500 10px/1 DM Mono,monospace;
  letter-spacing:.18em;
  color:#bfa1e7;
  text-transform:uppercase;
}

@media (max-width:1100px){
  .transmission-lab .big-watch{min-height:720px;padding-bottom:162px;}
  .transmission-lab .big-watch .watch{top:-50px;}
}
@media (max-width:720px){
  .transmission-lab .big-watch{min-height:620px;padding-bottom:142px;}
  .transmission-lab .big-watch .watch{top:-28px;width:min(92vw,420px);}
  .transmission-lab .big-watch .transmission-hud{bottom:4px;width:94%;}
  .personal-letter{grid-template-columns:1fr;gap:25px;padding:28px 22px;}
  .personal-letter-meta small{max-width:290px;}
  .personal-letter-copy p{font-size:1.16rem;line-height:1.72;}
}


/* ========================================================================== 
   v8: GARGANTUA + HOME. Existing pages are untouched apart from navigation.
   ========================================================================== */
@media (min-width:981px){
  .nav{gap:clamp(9px,1.12vw,18px)}
  .nav a{font-size:9px;letter-spacing:.12em}
}
@media (min-width:981px) and (max-width:1180px){
  .site-header{padding-left:24px;padding-right:24px}
  .nav{gap:9px}.nav a{font-size:8px;letter-spacing:.08em}
  .brand{font-size:9px}
}

/* GARGANTUA */
.gargantua-hero p{max-width:800px}
.gargantua-section{padding-left:clamp(18px,4vw,68px);padding-right:clamp(18px,4vw,68px)}
.gargantua-stage{
  position:relative;min-height:760px;height:min(78vh,860px);overflow:hidden;border-radius:22px;
  border:1px solid rgba(212,181,255,.14);background:
    radial-gradient(circle at 50% 52%,rgba(138,73,211,.09),transparent 19%),
    linear-gradient(180deg,rgba(7,4,10,.58),rgba(0,0,0,.78));
  box-shadow:0 42px 120px rgba(0,0,0,.52),inset 0 0 100px rgba(120,63,186,.035);
  isolation:isolate;
}
.gargantua-stage::before,.gargantua-stage::after{content:"";position:absolute;pointer-events:none;z-index:3}
.gargantua-stage::before{inset:20px;border:1px solid rgba(212,181,255,.055);border-radius:16px}
.gargantua-stage::after{left:50%;top:50%;width:2px;height:2px;border-radius:50%;box-shadow:0 0 110px 70px rgba(159,108,255,.055)}
#gargantuaCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.gargantua-telemetry{position:absolute;z-index:6;top:28px;display:flex;flex-direction:column;gap:8px;pointer-events:none;font-family:DM Mono,monospace;text-transform:uppercase}
.gargantua-left{left:30px}.gargantua-right{right:30px;text-align:right;align-items:flex-end}
.gargantua-telemetry span{font-size:7px;letter-spacing:.2em;color:#776b81}
.gargantua-telemetry b{font-size:10px;letter-spacing:.14em;color:#d8c6ee;font-weight:400}
.gargantua-telemetry small{font-size:7px;line-height:1.75;letter-spacing:.08em;color:#5f5668}
.horizon-progress{position:absolute;z-index:7;left:50%;top:50%;width:116px;height:116px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;pointer-events:none;opacity:.48;transition:opacity .3s}
.horizon-progress::before{content:"";position:absolute;inset:0;border:1px solid rgba(217,190,255,.15);border-radius:50%;box-shadow:0 0 45px rgba(128,68,196,.08)}
.horizon-progress i{position:absolute;inset:-1px;border-radius:50%;background:conic-gradient(rgba(215,185,255,.68) var(--hold,0%),rgba(255,255,255,.025) 0);mask:radial-gradient(circle,transparent 64%,#000 65%);-webkit-mask:radial-gradient(circle,transparent 64%,#000 65%)}
.horizon-progress span{font:500 7px/1 DM Mono,monospace;letter-spacing:.2em;color:rgba(229,214,246,.55)}
.gargantua-stage.horizon-near .horizon-progress{opacity:1}
.gargantua-stage.horizon-open .horizon-progress{opacity:0}
.gargantua-reveal{position:absolute;z-index:8;left:50%;bottom:64px;transform:translate(-50%,16px);width:min(620px,86%);padding:18px 22px;text-align:center;border-top:1px solid rgba(212,181,255,.26);border-bottom:1px solid rgba(212,181,255,.11);background:linear-gradient(90deg,transparent,rgba(13,7,19,.74) 14%,rgba(13,7,19,.74) 86%,transparent);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:.7s var(--ease);pointer-events:none}
.gargantua-stage.horizon-open .gargantua-reveal{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gargantua-reveal small{display:block;margin-bottom:10px;font:400 7px/1 DM Mono,monospace;letter-spacing:.2em;color:#83758f}
.gargantua-reveal strong{font:400 clamp(13px,1.6vw,18px)/1.5 DM Mono,monospace;letter-spacing:.1em;color:#f2e9fc}
.gargantua-bottomline{position:absolute;left:30px;bottom:25px;z-index:6;font:400 7px/1 DM Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:#61576b;pointer-events:none}
.gargantua-after{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.65fr);gap:clamp(40px,8vw,120px);align-items:end}
.gargantua-after p{margin-bottom:8px;max-width:590px;font-size:1.02rem}
.quote-signature{display:inline-block;margin-top:16px;font:500 9px/1 DM Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:#a98bcf}

/* HOME */
.home-page-hero{padding-bottom:40px}
.home-page-hero p{max-width:790px}
.home-stage-section{padding-left:clamp(18px,4vw,68px);padding-right:clamp(18px,4vw,68px)}
.home-final-stage{position:relative;min-height:780px;overflow:hidden;border-radius:22px;border:1px solid rgba(212,181,255,.12);background:linear-gradient(135deg,rgba(15,8,21,.74),rgba(3,2,5,.92) 60%);box-shadow:0 40px 120px rgba(0,0,0,.48);isolation:isolate}
#homeCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.home-final-stage::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(3,2,5,.06),rgba(3,2,5,.25) 52%,rgba(3,2,5,.67));}
.home-final-grid{position:relative;z-index:3;min-height:780px;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:clamp(42px,8vw,130px);align-items:center;padding:clamp(34px,6vw,82px)}
.home-photo-column{position:relative;display:grid;place-items:center;perspective:1100px}
.home-photo-halo{position:absolute;width:88%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(212,181,255,.1);transform:scaleY(.45) rotate(-13deg);box-shadow:0 0 100px rgba(137,75,209,.1),inset 0 0 80px rgba(137,75,209,.05)}
.home-photo-halo::before,.home-photo-halo::after{content:"";position:absolute;inset:12%;border:1px solid rgba(255,255,255,.055);border-radius:50%;transform:rotate(27deg)}
.home-photo-halo::after{inset:-18%;border-color:rgba(212,181,255,.04);transform:rotate(-22deg)}
.home-photo-frame{width:min(100%,520px);transform-style:preserve-3d;box-shadow:0 30px 100px rgba(0,0,0,.5),0 0 80px rgba(134,74,201,.07)}
.home-copy-column{max-width:680px}
.home-copy-column h2{margin:19px 0 28px}
.home-copy-column p{font-size:1.04rem;max-width:640px}
.home-last-signal{margin-top:14px}
.home-reveal{margin-top:28px;padding:0 0 0 20px;border-left:1px solid rgba(212,181,255,.24);opacity:0;transform:translateY(12px);max-height:0;overflow:hidden;transition:opacity .75s var(--ease),transform .75s var(--ease),max-height .75s var(--ease),padding .75s var(--ease)}
.home-final-stage.revealed .home-reveal{opacity:1;transform:none;max-height:180px;padding-top:7px;padding-bottom:7px}
.home-reveal small{display:block;margin-bottom:13px;font:400 7px/1 DM Mono,monospace;letter-spacing:.18em;color:#796d84}
.home-reveal strong{display:block;font:300 clamp(2.8rem,6vw,5.8rem)/.95 Manrope,Inter,sans-serif;letter-spacing:-.045em;color:#f5effb;text-shadow:0 0 40px rgba(190,151,242,.12)}
.home-reveal span{display:block;margin-top:16px;font:500 9px/1 DM Mono,monospace;letter-spacing:.18em;text-transform:uppercase;color:#b89adf}
.home-final-stage.revealed .home-photo-halo{animation:homeHalo 5s ease-in-out infinite alternate}
@keyframes homeHalo{to{transform:scaleY(.48) rotate(-7deg);box-shadow:0 0 140px rgba(137,75,209,.15),inset 0 0 100px rgba(137,75,209,.06)}}
.home-letter-section .personal-letter{background:linear-gradient(110deg,rgba(18,10,25,.3),rgba(5,3,7,.08) 58%,rgba(117,70,180,.045))}
.home-closing{padding-top:clamp(80px,11vw,150px);padding-bottom:clamp(115px,13vw,190px);text-align:center;display:flex;flex-direction:column;align-items:center}
.home-closing-line{width:1px;height:90px;background:linear-gradient(180deg,transparent,rgba(212,181,255,.35),transparent);margin-bottom:34px}
.home-closing .quote-line{max-width:980px;margin:28px auto 38px;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.5}

@media (max-width:980px){
  .gargantua-after,.home-final-grid{grid-template-columns:1fr}
  .gargantua-stage{min-height:690px;height:74vh}
  .home-final-grid{padding:42px 28px 54px;gap:58px}.home-final-stage,.home-final-grid{min-height:auto}
  .home-photo-frame{width:min(78vw,500px)}
  .home-final-stage::after{background:linear-gradient(180deg,rgba(3,2,5,.12),rgba(3,2,5,.58))}
}
@media (max-width:620px){
  .gargantua-stage{min-height:590px;height:68vh;border-radius:16px}.gargantua-left{left:16px;top:18px}.gargantua-right{right:16px;top:18px;max-width:150px}.gargantua-telemetry small{display:none}.gargantua-bottomline{left:16px;bottom:15px}.gargantua-reveal{bottom:47px;width:92%;padding:14px}.horizon-progress{width:92px;height:92px}
  .home-final-stage{border-radius:16px}.home-final-grid{padding:28px 18px 42px;gap:48px}.home-photo-frame{width:100%}.home-copy-column p{font-size:.98rem}.home-reveal strong{font-size:clamp(2.5rem,14vw,4.2rem)}
}


/* v10 star-field polish: the canvas remains behind every route while the
   pointer-reactive luminosity and constellation traces are drawn in JS. */
#spaceCanvas{
  opacity:.96;
  filter:saturate(1.12) contrast(1.04);
  transform:translateZ(0);
  will-change:contents;
}

/* v10.1 star visibility fix: keep the persistent star canvas above the body's
   painted background, but safely beneath every page's readable content. */
body{
  position:relative;
  isolation:isolate;
}
#spaceCanvas{
  z-index:0;
  opacity:.98;
  mix-blend-mode:screen;
}
.page-fog{
  z-index:1;
}
.page,
.site-footer{
  position:relative;
  z-index:2;
}


/* v14 music dock, subtle stellar treatment. No layout or copy changes. */
.music-dock { isolation:isolate; }
.music-dock::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.58;
  background:
    radial-gradient(circle at 8% 28%, rgba(255,255,255,.95) 0 1px, transparent 1.7px),
    radial-gradient(circle at 19% 72%, rgba(215,187,255,.86) 0 .9px, transparent 1.6px),
    radial-gradient(circle at 34% 18%, rgba(255,255,255,.75) 0 .7px, transparent 1.5px),
    radial-gradient(circle at 49% 64%, rgba(177,130,244,.82) 0 .8px, transparent 1.5px),
    radial-gradient(circle at 63% 29%, rgba(255,255,255,.9) 0 1px, transparent 1.7px),
    radial-gradient(circle at 76% 78%, rgba(222,201,255,.72) 0 .8px, transparent 1.5px),
    radial-gradient(circle at 91% 21%, rgba(255,255,255,.86) 0 .9px, transparent 1.6px),
    radial-gradient(ellipse at 34% 50%, rgba(125,72,191,.09), transparent 48%);
  filter:drop-shadow(0 0 4px rgba(204,169,255,.28));
  animation:musicStarlight 5.8s ease-in-out infinite alternate;
  transition:opacity .35s ease, filter .35s ease;
}
.music-dock::after {
  content:"";
  position:absolute;
  z-index:0;
  top:14px;
  left:-88px;
  width:74px;
  height:1px;
  pointer-events:none;
  opacity:0;
  transform:rotate(-12deg);
  transform-origin:right center;
  background:linear-gradient(90deg,transparent,rgba(222,198,255,.16) 35%,rgba(255,255,255,.92));
  box-shadow:28px 0 8px rgba(185,131,255,.18), 68px 0 9px rgba(255,255,255,.25);
  animation:musicMeteor 13.7s cubic-bezier(.2,.7,.25,1) infinite;
}
.music-dock:hover::before {
  opacity:.9;
  filter:drop-shadow(0 0 7px rgba(214,181,255,.48)) brightness(1.16);
}
.music-dock .music-top,
.music-dock .music-body { position:relative; z-index:1; }
.music-dock .eq { filter:drop-shadow(0 0 6px rgba(198,153,255,.42)); }
.music-dock .music-title { text-shadow:0 0 12px rgba(188,140,255,.18); }
@keyframes musicStarlight {
  0% { opacity:.46; transform:translate3d(0,0,0); }
  45% { opacity:.68; }
  100% { opacity:.56; transform:translate3d(1px,-1px,0); }
}
@keyframes musicMeteor {
  0%, 74% { opacity:0; transform:translate3d(0,0,0) rotate(-12deg); }
  76% { opacity:.9; }
  82% { opacity:0; transform:translate3d(485px,58px,0) rotate(-12deg); }
  100% { opacity:0; transform:translate3d(485px,58px,0) rotate(-12deg); }
}


/* v15 Endurance passage, a rare cinematic spacecraft that crosses every SPA
   route. The memory card rides with the ship, so hovering never freezes flight. */
.endurance-flight{
  --sx:-24vw;--sy:28vh;--mxp:50vw;--myp:42vh;--ex:118vw;--ey:56vh;
  --scaleStart:.9;--scaleEnd:1;--bankStart:-4deg;--bankEnd:5deg;
  --duration:16s;--spinDuration:26s;
  position:fixed;
  left:0;top:0;
  width:clamp(158px,15vw,238px);
  height:auto;
  z-index:8;
  pointer-events:none;
  opacity:0;
  transform:translate3d(var(--sx),var(--sy),0) scale(var(--scaleStart)) rotate(var(--bankStart));
  transform-origin:50% 50%;
  will-change:transform,opacity;
  contain:layout style;
}
.endurance-flight.in-flight{
  animation:enduranceCross var(--duration) cubic-bezier(.2,.03,.82,.98) forwards;
}
.endurance-craft{
  position:relative;
  pointer-events:auto;
  filter:drop-shadow(0 7px 10px rgba(0,0,0,.48)) drop-shadow(0 0 13px rgba(184,138,255,.16));
  transition:filter .35s ease;
  cursor:default;
}
.endurance-craft:hover,
.endurance-flight.memory-open .endurance-craft{
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.58)) drop-shadow(0 0 18px rgba(206,173,255,.34));
}
.endurance-svg{display:block;width:100%;height:auto;overflow:visible}
.endurance-rotor{
  transform-box:fill-box;
  transform-origin:center;
  animation:enduranceRotor var(--spinDuration) linear infinite;
}
.endurance-flight.reverse-flight .endurance-svg{transform:scaleX(-1)}
.endurance-wake{
  position:absolute;
  right:71%;top:49%;
  width:112px;height:48px;
  pointer-events:none;
  transform:translateY(-50%);
  opacity:.42;
}
.endurance-flight.reverse-flight .endurance-wake{right:auto;left:71%;transform:translateY(-50%) scaleX(-1)}
.endurance-wake::before{
  content:"";
  position:absolute;right:0;top:23px;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(178,137,234,.08) 38%,rgba(236,226,255,.55));
  filter:blur(.25px);
}
.endurance-wake i{
  position:absolute;right:8px;width:2.5px;height:2.5px;border-radius:50%;
  background:rgba(250,247,255,.8);
  box-shadow:0 0 7px rgba(211,179,255,.65);
  animation:enduranceDust 2.6s ease-out infinite;
}
.endurance-wake i:nth-child(1){top:11px;animation-delay:-.4s}
.endurance-wake i:nth-child(2){top:22px;animation-delay:-1.4s}
.endurance-wake i:nth-child(3){top:31px;animation-delay:-2.1s}
.endurance-wake i:nth-child(4){top:18px;animation-delay:-.9s}
.endurance-memory{
  position:absolute;
  left:50%;top:calc(100% - 20px);
  width:clamp(184px,18vw,248px);
  padding:7px 7px 9px;
  border:1px solid rgba(210,180,255,.28);
  border-radius:14px;
  background:linear-gradient(145deg,rgba(13,8,19,.95),rgba(5,3,8,.88));
  box-shadow:0 20px 50px rgba(0,0,0,.48),0 0 32px rgba(157,95,240,.15),inset 0 0 0 1px rgba(255,255,255,.035);
  backdrop-filter:blur(13px);
  -webkit-backdrop-filter:blur(13px);
  opacity:0;
  transform:translateX(-50%) translateY(10px) scale(.92);
  transform-origin:50% 0;
  transition:opacity .28s ease,transform .38s cubic-bezier(.16,.84,.28,1),border-color .35s ease;
  pointer-events:none;
}
.endurance-flight.memory-above .endurance-memory{
  top:auto;bottom:calc(100% - 18px);
  transform-origin:50% 100%;
}
.endurance-craft:hover .endurance-memory,
.endurance-flight.memory-open .endurance-memory{
  opacity:1;
  transform:translateX(-50%) translateY(0) scale(1);
  border-color:rgba(222,197,255,.48);
}
.endurance-memory-photo{
  position:relative;overflow:hidden;border-radius:9px;aspect-ratio:4/3;
  background:#09070c;
}
.endurance-memory-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 58%,rgba(8,4,12,.24)),radial-gradient(circle at 50% 30%,transparent 45%,rgba(103,56,154,.12));
  box-shadow:inset 0 0 24px rgba(0,0,0,.16);
}
.endurance-memory-photo img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.015)}
.endurance-memory-caption{
  padding:9px 5px 2px;
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(.84rem,1.05vw,.98rem);
  line-height:1.25;
  color:rgba(245,238,255,.94);
  letter-spacing:.015em;
  text-shadow:0 0 14px rgba(191,146,255,.18);
}
@keyframes enduranceCross{
  0%{opacity:0;transform:translate3d(var(--sx),var(--sy),0) scale(var(--scaleStart)) rotate(var(--bankStart))}
  5%{opacity:.26}
  10%{opacity:.88}
  48%{opacity:.94;transform:translate3d(var(--mxp),var(--myp),0) scale(calc((var(--scaleStart) + var(--scaleEnd))/2)) rotate(calc((var(--bankStart) + var(--bankEnd))/2))}
  91%{opacity:.82}
  100%{opacity:0;transform:translate3d(var(--ex),var(--ey),0) scale(var(--scaleEnd)) rotate(var(--bankEnd))}
}
@keyframes enduranceRotor{to{transform:rotate(360deg)}}
@keyframes enduranceDust{
  0%{opacity:0;transform:translate3d(0,0,0) scale(.6)}
  20%{opacity:.8}
  100%{opacity:0;transform:translate3d(-92px,4px,0) scale(.18)}
}
@media(max-width:680px){
  .endurance-flight{width:clamp(132px,35vw,175px)}
  .endurance-memory{width:min(205px,58vw)}
  .endurance-wake{width:78px}
}
@media(prefers-reduced-motion:reduce){.endurance-flight{display:none!important}}


/* v18 Home final return, compact and intimate rather than a full-screen page. */
.home-finale-sentinel{
  width:100%;height:2px;pointer-events:none;
}
.home-finale{
  position:fixed;left:50%;right:auto;top:auto;bottom:clamp(18px,3.2vh,34px);z-index:240;
  width:min(940px,calc(100vw - 34px));height:auto;min-height:0;
  display:block;overflow:hidden;
  padding:clamp(28px,4vw,48px) clamp(22px,5vw,58px) clamp(30px,4.5vw,52px);
  border:1px solid rgba(217,188,255,.22);border-radius:30px;
  background:linear-gradient(180deg,rgba(10,5,16,.965),rgba(3,1,7,.985));
  box-shadow:0 28px 90px rgba(0,0,0,.68),0 0 0 1px rgba(255,255,255,.025) inset,0 0 70px rgba(136,72,206,.12);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translate(-50%,28px) scale(.985);
  transition:opacity 1.55s cubic-bezier(.2,.6,.2,1),transform 1.55s cubic-bezier(.16,.84,.28,1),visibility 0s linear 1.55s;
}
.home-finale::before{
  content:"";position:absolute;inset:-30%;pointer-events:none;
  background:
    radial-gradient(circle at 50% 42%,rgba(172,104,244,.14),transparent 24%),
    radial-gradient(ellipse at 50% 58%,rgba(105,56,164,.08),transparent 48%),
    linear-gradient(180deg,rgba(8,3,13,.2),rgba(1,0,3,.75));
  filter:saturate(1.08);
}
.home-finale-space{
  position:absolute;inset:0;pointer-events:none;opacity:.86;
  background:
    radial-gradient(circle at 7% 24%,rgba(255,255,255,.86) 0 .8px,transparent 1.5px),
    radial-gradient(circle at 17% 71%,rgba(215,187,255,.72) 0 .7px,transparent 1.4px),
    radial-gradient(circle at 31% 16%,rgba(255,255,255,.70) 0 .65px,transparent 1.35px),
    radial-gradient(circle at 43% 82%,rgba(193,155,247,.72) 0 .78px,transparent 1.5px),
    radial-gradient(circle at 58% 15%,rgba(255,255,255,.82) 0 .72px,transparent 1.45px),
    radial-gradient(circle at 71% 68%,rgba(225,207,255,.70) 0 .68px,transparent 1.4px),
    radial-gradient(circle at 84% 27%,rgba(255,255,255,.78) 0 .72px,transparent 1.45px),
    radial-gradient(circle at 94% 76%,rgba(189,147,244,.66) 0 .68px,transparent 1.4px);
  animation:homeFinaleStars 8s ease-in-out infinite alternate;
}
.home-finale-inner{
  position:relative;z-index:2;width:100%;text-align:center;
  opacity:0;transform:translateY(16px) scale(.99);
  transition:opacity 1.8s ease .55s,transform 1.8s cubic-bezier(.16,.84,.28,1) .55s;
}
.home-finale-rule{
  width:0;height:1px;margin:0 auto 24px;
  background:linear-gradient(90deg,transparent,rgba(232,210,255,.82),transparent);
  box-shadow:0 0 18px rgba(182,127,245,.34);
  transition:width 1.8s ease .95s;
}
.home-finale-message{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(2rem,4.7vw,4.65rem);line-height:1.08;
  letter-spacing:-.025em;color:rgba(252,248,255,.985);
  text-wrap:balance;
  text-shadow:0 0 20px rgba(225,201,255,.19),0 0 54px rgba(149,82,225,.14);
}
.home-finale-return{
  margin-top:30px;
  opacity:0;transform:translateY(10px);
  transition:opacity .9s ease 2.35s,transform .9s ease 2.35s,background .25s ease,border-color .25s ease;
}
body.home-finale-active .home-finale{
  opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1);transition-delay:0s;
}
body.home-finale-active .home-finale-inner{opacity:1;transform:translateY(0) scale(1)}
body.home-finale-active .home-finale-rule{width:min(300px,46vw)}
body.home-finale-active .home-finale-return{opacity:1;transform:translateY(0)}
body.home-finale-active #spaceCanvas{opacity:.13!important;filter:saturate(.78) brightness(.60);transition:opacity 1.45s ease,filter 1.45s ease}
body.home-finale-active .site-header,
body.home-finale-active main.page > :not(.home-finale):not(.home-finale-sentinel),
body.home-finale-active .site-footer,
body.home-finale-active .music-dock,
body.home-finale-active .endurance-flight{
  opacity:.20;filter:brightness(.39);transition:opacity 1.4s ease,filter 1.4s ease;
}
body.home-finale-active .cursor-core,body.home-finale-active .cursor-ring{opacity:.32}
@keyframes homeFinaleStars{
  from{opacity:.58;transform:scale(1)}
  to{opacity:.95;transform:scale(1.018)}
}

/* v18 finale hearts: more visible, romantic, and luminous while remaining elegant. */
.home-finale-hearts{
  position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
  opacity:0;transition:opacity 2.1s ease .7s;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 5%,#000 96%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 5%,#000 96%,transparent 100%);
}
.home-finale-heart{
  position:absolute;left:var(--hx);top:var(--hy);
  display:block;font-family:Georgia,"Times New Roman",serif;
  font-size:calc(19px * var(--hs));line-height:1;
  color:rgba(245,222,255,var(--ho));
  text-shadow:0 0 8px rgba(255,236,255,.62),0 0 18px rgba(221,170,255,.52),0 0 38px rgba(139,70,219,.34);
  filter:drop-shadow(0 0 8px rgba(219,176,255,.34));
  transform:translate3d(0,0,0) rotate(var(--hrot));
  animation:homeHeartDrift var(--hd) cubic-bezier(.37,.02,.44,.98) var(--hdelay) infinite,homeHeartPulse calc(var(--hd) * .42) ease-in-out var(--hdelay) infinite alternate;
  will-change:transform,opacity,filter;
}
.home-finale-heart:nth-child(3n){color:rgba(255,241,252,var(--ho));font-size:calc(23px * var(--hs))}
.home-finale-heart:nth-child(4n){color:rgba(230,195,255,var(--ho));}
.home-finale-heart:nth-child(7n){filter:drop-shadow(0 0 12px rgba(240,205,255,.48));}
body.home-finale-active .home-finale-hearts{opacity:1}
@keyframes homeHeartDrift{
  0%{transform:translate3d(0,10vh,0) rotate(var(--hrot)) scale(.82);opacity:0}
  10%{opacity:.76}
  48%{transform:translate3d(var(--hsway),-18vh,0) rotate(calc(var(--hrot) + 8deg)) scale(1.08);opacity:1}
  82%{opacity:.72}
  100%{transform:translate3d(calc(var(--hsway) * -.45),-44vh,0) rotate(calc(var(--hrot) - 8deg)) scale(.78);opacity:0}
}
@keyframes homeHeartPulse{
  from{filter:drop-shadow(0 0 6px rgba(219,176,255,.26));}
  to{filter:drop-shadow(0 0 15px rgba(246,214,255,.62));}
}
@media(max-width:680px){
  .home-finale{width:calc(100vw - 18px);bottom:9px;border-radius:23px;padding:28px 18px 30px}
  .home-finale-inner{width:100%}
  .home-finale-message{font-size:clamp(1.8rem,9vw,3.1rem);line-height:1.12}
  .home-finale-return{margin-top:25px}
}
@media(prefers-reduced-motion:reduce){
  .home-finale,.home-finale-inner,.home-finale-rule,.home-finale-return,#spaceCanvas,.site-header,main.page > :not(.home-finale):not(.home-finale-sentinel),.site-footer,.music-dock{transition:none!important}
  .home-finale-space{animation:none}
  .home-finale-hearts{opacity:.68!important}
  .home-finale-heart{animation:none!important;opacity:.72!important}
}
