@font-face {
  font-family: "Antic Didone";
  src: url("/assets/antic-didone.ttf") format("truetype");
  font-display: swap;
}

:root {
  --ink: #0b0b0c;
  --ivory: #f3f0ea;
  --muted: rgba(243, 240, 234, 0.62);
  --serif: "Antic Didone", "Didot", "Bodoni 72", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: var(--ink);
  color: var(--ivory);
  font: 16px/1.6 var(--sans);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; }

/* ---------- Home: diagonal wall of templates ---------- */
.wall { position: fixed; inset: 0; overflow: hidden; pointer-events: none; }
.stage {
  position: absolute;
  left: 50%;
  top: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translate(-50%, -50%) rotate(45deg);
}
.lane { flex: none; overflow: visible; }
.track {
  display: flex;
  width: max-content;
  animation: slide var(--dur, 120s) linear infinite;
  will-change: transform;
}
.lane.rev .track { animation-direction: reverse; }
/* tiles are CSS backgrounds (no <img>): nothing to drag, save or "copy image address" */
.tile { flex: none; border-radius: 3px; background: #1a1a1c center / cover no-repeat; }
@keyframes slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.tint {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(70% 55% at 50% 50%, rgba(11, 11, 12, 0.55), rgba(11, 11, 12, 0) 70%),
    rgba(11, 11, 12, 0.72);
}

.hero {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 16px 24px;
  text-align: center;
}
/* logo: feathered blur behind it so it lifts off the moving wall */
.mark { position: relative; width: clamp(96px, 22vw, 148px); aspect-ratio: 1; }
.mark::before {
  content: "";
  position: absolute;
  inset: -75%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(11, 11, 12, 0.35);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, rgba(0, 0, 0, 0.6) 62%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 40%, rgba(0, 0, 0, 0.6) 62%, transparent 100%);
}
.logo { width: 100%; height: 100%; background: url("/assets/logo.png") center / contain no-repeat; }
.hero h1 {
  margin: 24px 0 30px;
  font: 600 clamp(26px, 5.4vw, 44px)/1.15 var(--sans);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 26px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: 600 16px/1 var(--sans);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cta svg { width: 18px; height: 18px; transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); }
.cta:hover { transform: translateY(-1px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); }
.cta:hover svg, .cta:focus-visible svg { transform: translateX(5px); }
.cta:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.badge { display: inline-block; margin-top: 18px; border-radius: 9px; }
.badge img { height: 48px; width: auto; }
/* assets can't be dragged, long-press saved or selected on the home page */
.home, .home * { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.home img { -webkit-user-drag: none; pointer-events: none; }
.badge:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

.legal {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: 14px;
  padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  font-size: 12px;
  color: var(--muted);
}
.legal a { text-decoration: none; }
.legal a:hover, .legal a:focus-visible { color: var(--ivory); text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
  .track { animation: none; }
  .cta, .cta svg { transition: none; }
}

/* ---------- Terms / Privacy ---------- */
.doc { width: 100%; max-width: 680px; margin: 0 auto; padding: 32px 16px 24px; flex: 1; }
.doc-head { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-bottom: 40px; }
.doc-head img { width: 34px; height: 34px; }
.doc-head span { font: 400 22px/1 var(--serif); }
.doc h1 { font: 400 clamp(32px, 7vw, 44px)/1.15 var(--serif); margin: 0 0 6px; }
.doc .date { color: var(--muted); font-size: 14px; margin: 0 0 32px; }
.doc h2 { font-size: 17px; font-weight: 600; margin: 34px 0 8px; }
.doc p, .doc li { color: rgba(243, 240, 234, 0.86); }
.doc ul { padding-left: 20px; }
.doc a { text-decoration: underline; text-underline-offset: 2px; }
.doc .lead { font-size: 17px; color: var(--ivory); }
.doc .doc-head { text-decoration: none; }

/* short screens (phones in landscape) */
@media (max-height: 520px) {
  .hero { padding-top: 20px; padding-bottom: 12px; }
  .mark { width: 72px; }
  .hero h1 { margin: 10px 0 16px; font-size: clamp(24px, 4.2vw, 36px); }
  .cta { padding: 12px 22px; }
  .badge { margin-top: 12px; }
  .badge img { height: 40px; }
  .legal { padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
}

/* title and actions always sit above the logo's blur */
.hero h1, .cta, .badge, .ig { position: relative; z-index: 1; }

/* Instagram link under the App Store badge */
.ig {
  display: inline-flex;
  margin-top: 22px;
  padding: 6px;
  color: var(--ivory);
  opacity: 0.85;
  border-radius: 10px;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.ig svg { width: 26px; height: 26px; }
.ig:hover { opacity: 1; transform: translateY(-1px); }
.ig:focus-visible { outline: 2px solid #fff; outline-offset: 3px; opacity: 1; }
@media (max-height: 520px) { .ig { margin-top: 10px; } .ig svg { width: 22px; height: 22px; } }
