/* Acta Ventures — page styles. Ported from design-system/Hybrid.html.
   Tokens (colors/typography/spacing) load separately from ./tokens/. */

html, body { margin: 0; height: 100%; overflow: hidden; overscroll-behavior: none; }
body {
  background: var(--ink); color: var(--paper);
  font-family: var(--font-sans-body); font-size: var(--text-body-size);
  touch-action: manipulation;
}
a { color: var(--acta-red); text-decoration: none; }
a:hover { color: var(--acta-deep); }
a:focus-visible { outline: 2px solid var(--acta-red); outline-offset: 3px; }

/* Top-right anchors — markup currently commented out in index.html */
.anchors { position: fixed; top: 28px; right: 36px; display: flex; gap: 28px; opacity: 0; transition: opacity 0.5s ease-out; }
.anchors a { font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.anchors a:hover { color: var(--paper); }

/* ---- final page (tapestry layout) ---- */
.page {
  height: 100vh; height: 100dvh;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 40px; padding: 48px; box-sizing: border-box;
}
/* wrapper carries the *scaled* footprint so flex centering stays true when
   #tapestry is transform-scaled down to fit small viewports */
#tapestryWrap { position: relative; }
#tapestry {
  display: grid; gap: 4px; cursor: default; opacity: 0;
  transition: opacity 1s ease-out; transform-origin: top left;
}
#tapestry .c {
  width: var(--cell); height: var(--cell); border-radius: 2px;
  background: var(--rest);
  transition: background-color 1.3s var(--ease-out);
  transition-delay: calc(var(--d) * 1.6);
}
#tapestry.lit .c { background: var(--lit); transition-duration: 0.45s; transition-delay: var(--d); }
#tapestry.instant .c { transition: none !important; }
.below, .page footer { opacity: 0; transition: opacity 0.6s ease-out; transform: translateY(8px); }
.below { transition: opacity 0.6s ease-out, transform 0.6s var(--ease-out); }
.name {
  font-family: var(--font-brand-caps); font-weight: var(--weight-brand, 500);
  font-size: clamp(24px, 2.6vw, 34px); line-height: 1.2;
  letter-spacing: var(--tracking-brand); text-transform: uppercase;
  text-align: center; margin: 0; color: var(--acta-red);
}
.name .mark-a { color: var(--acta-red); }
.name .mark-v { color: var(--paper); }
.line { color: var(--muted); font-size: 17px; line-height: var(--leading-body); text-align: center; margin: 0; }
.page footer { display: flex; justify-content: center; gap: 36px; align-items: baseline; }
.page footer a { font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.lnk { display: inline-flex; align-items: center; gap: 8px; }
.lnk svg { flex: none; }

/* ---- signature overlay ---- */
#stage {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.sig { display: flex; align-items: center; gap: 0; }
#mark { display: block; }
#wordmark { display: block; clip-path: inset(-10% 100% -10% 0); }
.anim #wordmark { transition: clip-path 1.3s var(--ease-out); }
.anim .sig { transition: transform 1.3s var(--ease-out); }
#wordmark.fade, #mark.fade { opacity: 0; transition: opacity 0.6s ease-out; }

.flyer { position: fixed; left: 0; top: 0; border-radius: 2px; will-change: transform; }

@media (max-width: 720px) {
  .page {
    padding: 24px; gap: 28px;
    padding-bottom: max(24px, env(safe-area-inset-bottom));
  }
}
