/* =========================================================================
 * 365 Pause — marketing site styles
 * Mirrors the app's "Mist" theme (see pause-frontend/src/theme/variables.scss).
 * Shared by the home page, Terms, and the Privacy Policy.
 * ========================================================================= */

:root {
  --bg: linear-gradient(180deg, #f7f9f9 0%, #edf1f1 100%);
  --bg-solid: #eef1f1;
  --surface: rgba(255, 255, 255, 0.72);
  --border: rgba(40, 48, 51, 0.1);
  --text: #283033;
  --muted: rgba(40, 48, 51, 0.62);
  --faint: rgba(40, 48, 51, 0.38);
  --accent: #6f8c8c;
  --accent-deep: #52706f;
  --btn-bg: #2c3838;
  --btn-text: #ffffff;
  --orb: radial-gradient(circle at 42% 36%, #ffffff 0%, #e2ecec 42%, #c2d4d4 72%, #a3b9b9 100%);
  --orb-glow: rgba(150, 180, 180, 0.4);

  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui, sans-serif;

  --maxw: 1080px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: linear-gradient(180deg, #161b1c 0%, #101414 100%);
    --bg-solid: #101414;
    --surface: rgba(255, 255, 255, 0.05);
    --border: rgba(255, 255, 255, 0.09);
    --text: #e8eded;
    --muted: rgba(232, 237, 237, 0.62);
    --faint: rgba(232, 237, 237, 0.38);
    --accent: #8fb0af;
    --accent-deep: #a8c6c4;
    --btn-bg: linear-gradient(180deg, #9cbdbb, #77a09e);
    --btn-text: #121718;
    --orb: radial-gradient(circle at 42% 36%, #eef6f5 0%, #c3d8d6 40%, #8fb1af 70%, #5f817f 100%);
    --orb-glow: rgba(120, 165, 162, 0.42);
  }
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  background-attachment: fixed;
  color: var(--text);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--accent-deep);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

.wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 24px;
}

.kicker {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

h1,
h2,
h3 {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.01em;
  margin: 0;
}
h1 {
  font-size: clamp(40px, 7vw, 66px);
  line-height: 1.06;
}
h2 {
  font-size: clamp(28px, 4.2vw, 40px);
  line-height: 1.14;
}
h3 {
  font-size: 21px;
  line-height: 1.25;
}
em,
.italic {
  font-style: italic;
  color: var(--accent-deep);
}

/* ── Orb ───────────────────────────────────────────────────────────────── */
.orb {
  border-radius: 50%;
  background: var(--orb);
  box-shadow: 0 18px 55px var(--orb-glow), inset 0 6px 18px rgba(255, 255, 255, 0.35);
  animation: breathe 8s ease-in-out infinite;
}
.orb-halo {
  position: absolute;
  inset: -24%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--orb-glow) 0%, transparent 68%);
  animation: halo 8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes breathe {
  0%,
  100% {
    transform: scale(0.9);
  }
  50% {
    transform: scale(1.06);
  }
}
@keyframes halo {
  0%,
  100% {
    transform: scale(0.92);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.85;
  }
}
@media (prefers-reduced-motion: reduce) {
  .orb,
  .orb-halo {
    animation: none;
  }
  html {
    scroll-behavior: auto;
  }
}

/* ── Header ────────────────────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: color-mix(in srgb, var(--bg-solid) 86%, transparent);
  border-bottom: 1px solid var(--border);
}
.site-header .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--serif);
  font-size: 20px;
  color: var(--text);
}
.brand:hover {
  text-decoration: none;
}
.brand img {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: block;
}
.nav-links {
  display: flex;
  gap: 26px;
  align-items: center;
  font-size: 14px;
}
.nav-links a {
  color: var(--muted);
}
@media (max-width: 640px) {
  .nav-links a:not(.nav-cta) {
    display: none;
  }
}
.nav-cta {
  color: var(--accent-deep) !important;
  font-weight: 600;
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 26px;
  border-radius: 14px;
  background: var(--btn-bg);
  color: var(--btn-text);
  font-weight: 600;
  font-size: 15px;
  border: none;
  box-shadow: 0 6px 18px var(--orb-glow);
  transition: transform 150ms ease, opacity 150ms ease;
}
.btn:hover {
  text-decoration: none;
  transform: translateY(-1px);
  opacity: 0.94;
}
.btn-ghost {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: none;
}
.btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* ── Sections ──────────────────────────────────────────────────────────── */
section {
  padding: 88px 0;
}
.hero {
  padding: 72px 0 64px;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
}
@media (max-width: 860px) {
  .hero-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hero .btn-row {
    justify-content: center;
  }
  section {
    padding: 64px 0;
  }
}
.lede {
  font-size: 19px;
  color: var(--muted);
  max-width: 46ch;
  margin: 18px 0 30px;
}
@media (max-width: 860px) {
  .lede {
    margin-left: auto;
    margin-right: auto;
  }
}
.hero-orb {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 320px;
}
.hero-orb .orb {
  width: 210px;
  height: 210px;
}
.hero-note {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 26px;
}

.section-head {
  max-width: 620px;
  margin-bottom: 44px;
}
.section-head p {
  color: var(--muted);
  margin: 12px 0 0;
}

/* Steps */
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 780px) {
  .steps {
    grid-template-columns: 1fr;
  }
}
.step {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 28px 26px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.step-n {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--accent);
  color: var(--accent-deep);
  font-family: var(--mono);
  font-size: 14px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
}
.step p {
  color: var(--muted);
  font-size: 15px;
  margin: 8px 0 0;
}

/* Screenshot gallery */
.shots {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding: 4px 24px 24px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.shots::-webkit-scrollbar {
  height: 6px;
}
.shots::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 999px;
}
.shots img {
  width: 290px;
  flex: 0 0 auto;
  border-radius: 22px;
  border: 1px solid var(--border);
  scroll-snap-align: center;
  box-shadow: 0 18px 44px rgba(40, 48, 51, 0.12);
}

/* Feature list */
.features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px 40px;
}
@media (max-width: 780px) {
  .features {
    grid-template-columns: 1fr;
  }
}
.feature {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 0;
  border-top: 1px solid var(--border);
}
.feature .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--orb);
  box-shadow: 0 0 0 4px var(--orb-glow);
  margin-top: 9px;
  flex: 0 0 auto;
}
.feature strong {
  font-weight: 600;
  font-size: 16px;
}
.feature span {
  display: block;
  color: var(--muted);
  font-size: 15px;
  margin-top: 2px;
}

/* Closing CTA */
.cta {
  text-align: center;
}
.cta .btn-row {
  justify-content: center;
  margin-top: 28px;
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.site-footer {
  border-top: 1px solid var(--border);
  padding: 34px 0 48px;
  color: var(--muted);
  font-size: 14px;
}
.site-footer .wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 26px;
  align-items: center;
  justify-content: space-between;
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}
.footer-links a {
  color: var(--muted);
}

/* ── Legal documents (Terms / Privacy) ─────────────────────────────────── */
.doc {
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 24px 96px;
}
.doc h1 {
  font-size: clamp(34px, 5vw, 46px);
}
.doc .updated {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
  margin-top: 14px;
}
.doc h2 {
  font-size: 25px;
  margin: 44px 0 12px;
}
.doc h3 {
  font-size: 18px;
  font-family: var(--sans);
  font-weight: 600;
  margin: 26px 0 8px;
}
.doc p,
.doc li {
  color: var(--muted);
  font-size: 16px;
}
.doc p {
  margin: 12px 0;
}
.doc ul {
  padding-left: 20px;
}
.doc li {
  margin: 8px 0;
}
.doc strong {
  color: var(--text);
  font-weight: 600;
}
.doc .intro {
  font-size: 18px;
  color: var(--text);
  border-left: 2px solid var(--accent);
  padding-left: 18px;
  margin: 28px 0 8px;
}
.doc table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0;
  font-size: 15px;
}
.doc th,
.doc td {
  text-align: left;
  vertical-align: top;
  padding: 11px 12px;
  border-bottom: 1px solid var(--border);
  color: var(--muted);
}
.doc th {
  color: var(--text);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.02em;
}
.doc .toc {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px 26px;
  margin: 32px 0;
}
.doc .toc ol {
  margin: 10px 0 0;
  padding-left: 20px;
  columns: 2;
  font-size: 15px;
}
@media (max-width: 640px) {
  .doc .toc ol {
    columns: 1;
  }
}

/* Stack the store buttons to equal width on narrow phones */
@media (max-width: 480px) {
  .btn-row {
    flex-direction: column;
    align-items: stretch;
  }
  .btn {
    width: 100%;
  }
}
