/* Odryon Technologies */

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/assets/fonts/manrope-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/assets/fonts/manrope-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --stone: #e8e3d9;
  --ink: #22201d;
  --body: #3b3833;
  --muted: #5f5a52;
  --hair: #cfc8bb;
  --ember: #a14a26;
  --gutter: clamp(20px, 4vw, 56px);
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
}

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

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: var(--stone);
  color: var(--ink);
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--ember); }
a:focus-visible { outline: 1px solid var(--ember); outline-offset: 6px; }

.wordmark {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 20px var(--gutter) 0;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.62em;
  text-decoration: none;
}

main {
  flex: 1 0 auto;
  width: 100%;
  padding: 0 var(--gutter);
  display: flex;
  flex-direction: column;
}

/* ——— Home ——— */

.hero {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 48px;
  padding: 32px 0 48px;
  text-align: center;
}

.stage {
  position: relative;
  width: 100%;
  height: clamp(220px, 34vh, 320px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.horizon {
  position: absolute;
  left: calc(var(--gutter) * -1);
  right: calc(var(--gutter) * -1);
  top: 50%;
  height: 1px;
  background: var(--hair);
  animation: horizon 3s cubic-bezier(0.6, 0, 0.2, 1) both;
}

.disc {
  position: relative;
  width: clamp(170px, 24vh, 240px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--ink);
  overflow: hidden;
  animation: rise 2.4s var(--ease) 0.3s both;
}

.disc::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  background: var(--stone);
  animation: occult 26s ease-in-out infinite alternate;
}

h1 { margin: 0; font-weight: 200; letter-spacing: -0.025em; line-height: 1.1; }

.headline { font-size: clamp(32px, 4.4vw, 64px); }
.headline strong { font-weight: 400; }

.word { display: inline-block; animation: word 1.6s var(--ease) both; }

.teaser {
  display: block;
  margin: 22px 0 0;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ——— Secondary pages ——— */

.page {
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
  padding: 64px 0;
}

.page h1 { margin-bottom: 32px; font-size: clamp(40px, 5vw, 60px); }

.page p { margin: 0 0 12px; font-size: 15px; line-height: 1.8; color: var(--body); }

.page p + p { margin-top: 20px; }

.page .lede {
  margin: -12px 0 40px;
  font-size: 17px;
  font-style: italic;
  color: var(--ember);
}

.page .sign { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--hair); color: var(--ink); }
.page .updated { margin-top: 4px; font-size: 13px; color: var(--muted); }

.facts { margin: 0; border-top: 1px solid var(--ink); }
.facts > div {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  padding: 16px 0;
  border-bottom: 1px solid var(--hair);
}
.facts dt { flex: 0 0 200px; font-size: 13px; color: var(--muted); }
.facts dd { flex: 1 1 260px; margin: 0; font-size: 15px; line-height: 1.55; }

/* ——— Footer ——— */

footer {
  padding: 8px var(--gutter) 18px;
  text-align: center;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--muted);
}
footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 28px; }
footer nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--muted);
  text-decoration: none;
}
footer nav a:hover, footer nav a[aria-current="page"] { color: var(--ember); }
footer p { margin: 0; }

/* ——— Motion (home only) ——— */

@keyframes word {
  from { opacity: 0; filter: blur(6px); transform: translateY(6px); }
  to { opacity: 1; filter: none; transform: none; }
}
@keyframes horizon { from { transform: scaleX(0); } }
@keyframes occult { from { transform: translateX(34%); } to { transform: translateX(-34%); } }
@keyframes rise { from { opacity: 0; transform: translateY(24px) scale(0.96); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; }
}
