@font-face {
  font-family: "Pixel Fallback";
  src: local("Arial"), local("Helvetica");
  size-adjust: 104%;
  ascent-override: 88%;
  descent-override: 22%;
}

:root {
  --bg: #FFFFFF;
  --surface: #F5F6F8;
  --band: #EEF3F9;
  --text: #16181D;
  --muted: #5A616D;
  --rule: #E2E5EA;
  --line: #CDD2DA;
  --accent: #1D5FA8;
  --accent-deep: #174D8A;
  --accent-soft: #E7EFF9;
  --on-accent: #FFFFFF;
  --coin: #B7801A;
  --pink: #E8508A;
  --pink-soft: #FBE3EC;
  --gold-soft: #F8EBCF;
  --sky-top: #D6E6F7;
  --sky-bottom: #EEF5FC;
  --shadow: 0 1px 2px rgba(22, 24, 29, 0.05), 0 18px 40px -24px rgba(22, 40, 70, 0.22);

  --display: "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --pixel: "Pixelify Sans", "Pixel Fallback", ui-monospace, monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-soft: cubic-bezier(0.32, 0.72, 0, 1);
  --max: 1160px;
  --gutter: 16px;
  --pad: max(var(--gutter), calc((100% - var(--max)) / 2));
  --section: 144px;
  color-scheme: light;
  interpolate-size: allow-keywords;
}

@media (min-width: 720px) {
  :root { --gutter: 32px; }
}
@media (max-width: 719px) {
  :root { --section: 96px; }
}

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--bg);
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  background: transparent;
  color: var(--text);
  font: 17px/1.6 var(--sans);
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }

[hidden] { display: none !important; }

a {
  color: var(--accent);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
  transition: color 160ms ease, text-decoration-color 160ms ease;
}
a:hover { text-decoration-color: currentColor; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

h1, h2, h3, h4 { margin: 0; font-weight: 600; }

h1, h2 {
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
h2 { font-size: clamp(2rem, 3.6vw, 2.75rem); line-height: 1.08; }
h3 { font-family: var(--display); font-size: 1.375rem; line-height: 1.25; letter-spacing: -0.01em; }

p { margin: 0; }

.vh {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip {
  position: absolute;
  left: 16px;
  top: -64px;
  z-index: 30;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  background: var(--bg);
  padding: 8px 12px;
  border: 1px solid var(--accent);
  border-radius: 8px;
}
.skip:focus { top: 8px; }

.ambient {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: var(--bg);
}
.ambient__blob {
  position: absolute;
  width: 60vmax;
  height: 60vmax;
  border-radius: 50%;
  opacity: 0.8;
}
.ambient__blob--a { left: -18vmax; top: -22vmax; background: radial-gradient(closest-side, var(--accent-soft), rgba(231, 239, 249, 0)); }
.ambient__blob--b { right: -22vmax; top: 10vh; background: radial-gradient(closest-side, var(--pink-soft), rgba(251, 227, 236, 0)); }
.ambient__blob--c { left: 20vw; bottom: -30vmax; background: radial-gradient(closest-side, var(--gold-soft), rgba(248, 235, 207, 0)); }
.ambient__bit {
  position: absolute;
  bottom: -40px;
  left: var(--x);
  width: var(--s, 14px);
  height: var(--s, 14px);
  opacity: 0;
  background: var(--c, var(--accent));
  -webkit-mask: var(--m) center / contain no-repeat;
  mask: var(--m) center / contain no-repeat;
}
.ambient__bit--heart { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 6' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h2v1h1V0h2v1h1v2H6v1H5v1H4v1H3V5H2V4H1V3H0V1h1z'/%3E%3C/svg%3E"); --c: var(--pink); }
.ambient__bit--star { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h1v2h2v1H3v2H2V3H0V2h2z'/%3E%3C/svg%3E"); --c: var(--accent); }
.ambient__bit--coin { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h2v1h1v1h1v2H5v1H4v1H2V5H1V4H0V2h1V1h1z'/%3E%3C/svg%3E"); --c: var(--coin); }

@media (prefers-reduced-motion: no-preference) {
  .ambient__blob { animation: drift 46s ease-in-out infinite alternate; }
  .ambient__blob--b { animation-duration: 58s; animation-delay: -20s; }
  .ambient__blob--c { animation-duration: 64s; animation-delay: -38s; }
  .ambient__bit { animation: float-up var(--d, 26s) linear infinite; animation-delay: var(--t, 0s); }
  @keyframes drift {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(8vw, 6vh, 0) scale(1.12); }
  }
  @keyframes float-up {
    0% { transform: translate3d(0, 0, 0) rotate(0deg); opacity: 0; }
    10% { opacity: var(--o, 0.4); }
    85% { opacity: var(--o, 0.4); }
    100% { transform: translate3d(var(--w, 30px), -112vh, 0) rotate(var(--r, 0deg)); opacity: 0; }
  }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 10px var(--pad);
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--rule);
}

.wordmark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-family: var(--pixel);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text);
  text-decoration: none;
}
.wordmark::before {
  content: "";
  width: 32px;
  height: 32px;
  background: url("favicon.svg") center / contain no-repeat;
  image-rendering: pixelated;
}

.topnav { display: flex; gap: 4px; margin-right: auto; }
.topnav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.9375rem;
  border-radius: 999px;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 200ms ease, color 200ms ease, transform 120ms var(--ease-out);
}
.topnav a:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) {
  .topnav a:hover { color: var(--accent-deep); background: var(--surface); }
}
.topnav a[aria-current="page"] { background: var(--accent-soft); color: var(--accent-deep); font-weight: 600; }

.header-actions { display: flex; align-items: center; gap: 8px; }
.header-actions .login {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 10px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 600;
  transition: color 200ms ease;
}
.header-actions .login:hover { color: var(--accent); }

@media (max-width: 999px) {
  .site-header { flex-wrap: wrap; gap: 4px 16px; padding-bottom: 6px; }
  .wordmark { margin-right: auto; }
  .topnav {
    order: 3;
    flex: 1 0 100%;
    margin: 0 calc(-1 * var(--gutter));
    padding: 0 var(--gutter);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .topnav::-webkit-scrollbar { display: none; }
  .topnav a { flex: none; }
}
@media (max-width: 479px) {
  .site-header .wordmark { font-size: 1.25rem; gap: 6px; }
  .site-header .wordmark::before { width: 28px; height: 28px; }
  .header-actions { gap: 4px; }
  .header-actions .btn--small:not(.btn--ghost) { display: none; }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 20px;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
  transition: background-color 160ms var(--ease-out), border-color 160ms var(--ease-out), transform 120ms var(--ease-out), box-shadow 160ms var(--ease-out);
}
.btn:active { transform: scale(0.97); }
.btn svg { width: 18px; height: 18px; flex: none; }

.btn--primary, .btn--big, .btn--small {
  color: var(--on-accent);
  background: var(--accent);
  border-color: var(--accent);
}
.btn--big { font-size: 1.125rem; min-height: 56px; padding: 12px 28px; border-radius: 14px; }
.btn--small { font-size: 0.9375rem; min-height: 44px; padding: 8px 16px; border-radius: 10px; }
.btn--ghost, .btn--ghost.btn--big, .btn--ghost.btn--small { color: var(--text); background: var(--bg); border-color: var(--line); }

@media (hover: hover) and (pointer: fine) {
  .btn:hover { background: var(--surface); text-decoration: none; }
  .btn--primary:hover, .btn--big:hover, .btn--small:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
  .btn--ghost:hover, .btn--ghost.btn--big:hover, .btn--ghost.btn--small:hover { background: var(--surface); border-color: var(--line); }
}

.btn[disabled], .btn[aria-disabled="true"],
.btn[aria-disabled="true"]:hover, .btn[aria-disabled="true"]:active {
  color: var(--muted);
  background: var(--surface);
  border-color: var(--rule);
  cursor: default;
  transform: none;
}

.chip {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  font: 600 0.9375rem/1 var(--sans);
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: background-color 160ms var(--ease-out), transform 120ms var(--ease-out);
}
.chip:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) {
  .chip:hover { background: var(--surface); }
}

.tag {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 8px 2px;
  font: 600 0.75rem/1.5 var(--sans);
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 999px;
  white-space: nowrap;
  vertical-align: 1px;
}

.touch-text { display: none !important; }
@media (hover: none) and (pointer: coarse) {
  .touch-text { display: inline !important; }
  .fine-text { display: none !important; }
}

.get { display: flex; flex-direction: column; align-items: center; }
.get__buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.get__meta { margin-top: 14px; font-size: 0.9375rem; color: var(--muted); }
.get__status:empty { display: none; }
.get__status { margin-top: 8px; font-size: 0.9375rem; color: var(--text); }
.get__soon { margin-top: 8px; font-size: 0.875rem; color: var(--muted); }
.get__warn { margin-top: 6px; font-size: 0.875rem; color: var(--muted); }

.section { padding: var(--section) var(--pad) 0; }

.head {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.head p { margin-top: 18px; font-size: 1.1875rem; line-height: 1.55; color: var(--muted); }

.page-head {
  padding: 96px var(--pad) 0;
  text-align: center;
}
.page-head h1 {
  max-width: 18ch;
  margin: 0 auto;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  line-height: 1.02;
  letter-spacing: -0.03em;
}
.page-head p {
  max-width: 50ch;
  margin: 20px auto 0;
  font-size: 1.1875rem;
  color: var(--muted);
}
.page-head .get { margin-top: 32px; padding-bottom: 96px; }

.hero {
  padding: 72px var(--pad) 0;
  text-align: center;
}
.hero__copy { max-width: 820px; margin: 0 auto; }
.hero h1 {
  font-size: clamp(2.75rem, 5.6vw, 4.5rem);
  line-height: 1.0;
  letter-spacing: -0.03em;
}
.hero__sub {
  max-width: 44ch;
  margin: 24px auto 0;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--muted);
}
.hero .get { margin-top: 36px; }

.desk {
  position: relative;
  max-width: 1120px;
  margin: 56px auto 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--sky-top), var(--sky-bottom));
  box-shadow: 0 1px 2px rgba(22, 24, 29, 0.06), 0 40px 80px -40px rgba(22, 40, 70, 0.35);
  text-align: left;
}
.desk__bar {
  display: flex;
  align-items: center;
  gap: 18px;
  height: 30px;
  padding: 0 14px;
  font: 13px/1 var(--sans);
  color: var(--text);
  background: #F8FAFD;
  border-bottom: 1px solid rgba(22, 24, 29, 0.08);
}
.desk__app { font-weight: 700; }
.desk__right { margin-left: auto; display: inline-flex; align-items: center; gap: 12px; font-variant-numeric: tabular-nums; }
.desk__right img { width: 16px; height: 16px; image-rendering: pixelated; }

.stage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.stage::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 24px;
  background: rgba(255, 255, 255, 0.55);
  border-top: 1px solid rgba(22, 24, 29, 0.08);
  z-index: -1;
}
.stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  cursor: default;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}
.stage canvas:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
.stage.is-dragging canvas { cursor: grabbing; }
.stage--desk { aspect-ratio: 3 / 1; }
@media (max-width: 1099px) { .stage--desk { aspect-ratio: 12 / 5; } }

.desk__window {
  position: absolute;
  top: 9%;
  left: 5%;
  width: min(300px, 32%);
  padding: 12px 16px 18px;
  background: var(--bg);
  border: 1px solid rgba(22, 24, 29, 0.08);
  border-radius: 12px;
  box-shadow: 0 12px 30px -16px rgba(22, 40, 70, 0.35);
  z-index: -1;
  font-size: 0.875rem;
  color: var(--muted);
}
.desk__dots { display: flex; gap: 6px; margin-bottom: 12px; }
.desk__dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.desk__title { font-weight: 700; color: var(--text); }
.desk__line { margin-top: 8px; }
.desk__eq { margin-top: 4px; font-size: 1.125rem; color: var(--text); font-variant-numeric: tabular-nums; }

.stage__fallback {
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto;
  max-width: 70%;
  height: auto;
  max-height: 88%;
}
.stage.is-fallback canvas { display: none; }
.js .stage:not(.is-fallback) .stage__fallback { display: none; }
html:not(.js) .stage canvas { display: none; }

.stage__fx { position: absolute; inset: 0; pointer-events: none; }

.fx {
  position: absolute;
  left: 0; top: 0;
  pointer-events: none;
  will-change: transform, opacity;
}
.fx--heart {
  width: 28px;
  height: 24px;
  background: var(--pink);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 6' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h2v1h1V0h2v1h1v2H6v1H5v1H4v1H3V5H2V4H1V3H0V1h1z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 6' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h2v1h1V0h2v1h1v2H6v1H5v1H4v1H3V5H2V4H1V3H0V1h1z'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: heart-up 900ms cubic-bezier(.2,.7,.3,1) forwards;
}
.fx--say {
  padding: 4px 10px 6px;
  font-family: var(--pixel);
  font-weight: 600;
  font-size: 1.125rem;
  line-height: 1;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  white-space: nowrap;
  animation: say-pop 160ms var(--ease-out);
}
.fx--z {
  font-family: var(--pixel);
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--muted);
}
@keyframes heart-up {
  from { transform: translate(var(--x), var(--y)) scale(.6); opacity: 0; }
  15% { opacity: 1; }
  to { transform: translate(calc(var(--x) + var(--dx)), calc(var(--y) - 56px)) scale(1); opacity: 0; }
}
@keyframes say-pop {
  from { scale: .9; opacity: 0; }
  to { scale: 1; opacity: 1; }
}

.try {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 32px;
  max-width: 1120px;
  margin: 24px auto 0;
  text-align: left;
}
.try__lead { font-family: var(--pixel); font-weight: 600; font-size: 1.125rem; }
.try__how {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
  color: var(--muted);
}
.try__how b { color: var(--text); margin-right: 4px; }
.try__buttons { display: none; gap: 8px; flex-wrap: wrap; }
@media (hover: none) and (pointer: coarse) {
  .try__buttons { display: flex; }
}

.pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px 48px;
  margin: 72px 0 0;
  padding: 0;
  list-style: none;
}
.pillar { display: flex; flex-direction: column; }
.pillar__art {
  display: grid;
  place-items: center;
  height: 220px;
  padding: 0 8px;
}
.pillar__body { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--rule); }
.pillar__body p { margin-top: 10px; color: var(--muted); }
.pillar__body a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; font-weight: 600; text-decoration: none; }
.pillar__body a:hover { text-decoration: underline; }

.bubbles { display: grid; gap: 10px; width: 100%; max-width: 280px; }
.bubble {
  max-width: 88%;
  padding: 10px 14px;
  font-size: 0.9375rem;
  line-height: 1.4;
  text-align: left;
  border-radius: 16px;
  background: var(--bg);
}
.bubble--me { justify-self: end; color: var(--on-accent); background: var(--accent); border-bottom-right-radius: 6px; }
.bubble--it { justify-self: start; border: 1px solid var(--line); border-bottom-left-radius: 6px; }

.snap { position: relative; width: 100%; max-width: 240px; }
.snap__screen {
  padding: 14px 16px 18px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 0.875rem;
  color: var(--muted);
  text-align: left;
}
.snap__screen b { display: block; color: var(--text); font-size: 1.125rem; font-variant-numeric: tabular-nums; margin-top: 4px; }
.snap__frame {
  position: absolute;
  inset: -10px;
  border: 2px dashed var(--accent);
  border-radius: 18px;
}
.snap__cam {
  position: absolute;
  right: -22px;
  bottom: -26px;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  color: var(--on-accent);
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 8px 20px -8px rgba(29, 95, 168, 0.7);
}
.snap__cam svg { width: 24px; height: 24px; }

.funbox { display: grid; grid-template-columns: repeat(3, auto); gap: 16px; align-items: end; justify-content: center; }
.funbox img { width: 76px; image-rendering: pixelated; }
.funbox span {
  grid-column: 1 / -1;
  justify-self: center;
  font-family: var(--pixel);
  font-weight: 600;
  font-size: 1.125rem;
  color: var(--text);
}

.demo-wrap { max-width: 900px; margin: 56px auto 0; }
.more { margin-top: 24px; text-align: center; }
.more a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.demos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 64px; }
.demos h2 { font-size: 1.625rem; }
.demos p { margin: 8px 0 20px; color: var(--muted); }

.plans {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  margin-top: 80px;
}
.plan {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 36px 32px 32px;
  background: var(--bg);
  border: 1px solid var(--rule);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.plan__name { font-family: var(--display); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.01em; }
.plan__price { margin-top: 18px; font-family: var(--display); font-size: 3rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.plan__price small { font-family: var(--sans); font-size: 1rem; font-weight: 400; letter-spacing: 0; color: var(--muted); }
.plan__for { margin-top: 12px; color: var(--muted); }
.plan ul { flex: 1; margin: 28px 0 32px; padding: 0; list-style: none; }
.plan li { position: relative; padding: 7px 0 7px 30px; }
.plan li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 14px;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
}
.plan li.plan__all { padding-left: 0; font-weight: 600; }
.plan li.plan__all::before { display: none; }
.plan .btn { width: 100%; }
.plan__note { margin-top: 12px; font-size: 0.875rem; color: var(--muted); text-align: center; }

.plan--star {
  border: 2px solid transparent;
  background:
    linear-gradient(172deg, #FDF6E7 0%, var(--bg) 42%, var(--bg) 70%, #FDF1F5 100%) padding-box,
    linear-gradient(160deg, #E6C17A, #EBA3BE) border-box;
  box-shadow: 0 1px 2px rgba(22, 24, 29, 0.06), 0 28px 60px -32px rgba(92, 52, 40, 0.32);
  transform: translateY(-20px);
}
.plan--star .plan__name { color: var(--text); }
.plan--star li::before { border-color: #C2557F; }
.plan__badge {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 16px 7px;
  font-family: var(--pixel);
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1;
  color: #6E4A10;
  white-space: nowrap;
  background: var(--gold-soft);
  border: 1px solid #E6C17A;
  border-radius: 999px;
}
.plan__sparkle {
  position: absolute;
  width: 14px;
  height: 14px;
  background: #E3B65A;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h1v2h2v1H3v2H2V3H0V2h2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h1v2h2v1H3v2H2V3H0V2h2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.plan__sparkle--1 { top: 26px; right: 28px; }
.plan__sparkle--2 { top: 58px; right: 56px; width: 9px; height: 9px; background: #EBA3BE; opacity: 0.85; }
.plan__sparkle--3 { top: 88px; right: 22px; width: 11px; height: 11px; opacity: 0.6; }
.btn--shine {
  position: relative;
  overflow: hidden;
  color: #4A1730;
  border: 1px solid #E2B98A;
  background: linear-gradient(100deg, #F5DCA6 0%, #F4C3B4 50%, #F0AFC7 100%);
  box-shadow: 0 1px 2px rgba(92, 52, 40, 0.08), 0 8px 18px -12px rgba(92, 52, 40, 0.45);
}
.btn--shine::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(255,255,255,0) 35%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 65%);
  transform: translateX(-120%);
}
@media (hover: hover) and (pointer: fine) {
  .btn--shine:hover { background: linear-gradient(100deg, #F1D096 0%, #F0B5A5 50%, #EBA0BC 100%); border-color: #D9A979; }
}

.compare-wrap { margin-top: 112px; overflow-x: auto; }
.compare {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: 0.9375rem;
  background: var(--bg);
}
.compare caption { text-align: left; font-family: var(--display); font-weight: 700; font-size: 1.75rem; letter-spacing: -0.02em; padding-bottom: 24px; }
.compare th, .compare td { padding: 14px 16px; text-align: center; border-bottom: 1px solid var(--rule); }
.compare th:first-child, .compare td:first-child { text-align: left; font-weight: 400; }
.compare thead th { font-family: var(--display); font-size: 1.0625rem; font-weight: 700; background: var(--surface); }
.compare thead th:first-child { border-top-left-radius: 12px; }
.compare thead th:last-child { border-top-right-radius: 12px; }
.compare .is-star { background: color-mix(in srgb, var(--gold-soft) 60%, var(--pink-soft)); font-weight: 600; }
.compare thead .is-star { color: var(--text); }
.compare .no { color: var(--muted); }

.install {
  padding: var(--section) var(--pad) 0;
  text-align: center;
}
.install:focus { outline: none; }
.install > p { max-width: 40ch; margin: 18px auto 0; font-size: 1.1875rem; color: var(--muted); }
.install .get { margin-top: 32px; }
.install__guide { margin-top: 12px; }
.install__guide a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

.os {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 520px;
  margin: 48px auto 0;
  border-bottom: 1px solid var(--rule);
}
.os__opt {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 4px;
  min-height: 44px;
  padding: 20px 16px 22px;
  font: inherit;
  color: var(--muted);
  text-decoration: none;
  background: none;
  border: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.os__opt + .os__opt { box-shadow: inset 1px 0 0 var(--rule); }
.os__opt svg {
  width: 34px;
  height: 34px;
  margin-bottom: 6px;
  color: var(--text);
  transition: transform 240ms var(--ease-out);
}
.os__name { font-family: var(--display); font-weight: 700; font-size: 1.5rem; line-height: 1.1; letter-spacing: -0.01em; color: var(--text); transition: color 200ms ease; }
.os__sub { font-size: 0.9375rem; }
.os__opt::after {
  content: "";
  position: absolute;
  left: 24%;
  right: 24%;
  bottom: -1px;
  height: 2px;
  border-radius: 2px;
  background: var(--accent);
  opacity: 0;
  transform: scaleX(0.2);
  transition: transform 320ms var(--ease-soft), opacity 200ms ease;
}
.os__opt:focus-visible { outline-offset: -2px; border-radius: 8px; }
.os__opt:active svg { transform: scale(0.94); }
@media (hover: hover) and (pointer: fine) {
  .os__opt:hover svg { transform: translateY(-3px); }
  .os__opt:hover .os__name { color: var(--accent-deep); }
  .os__opt:hover::after { opacity: 0.35; transform: scaleX(0.6); }
}
.os__opt[aria-current="page"]::after, .os__opt[aria-expanded="true"]::after { opacity: 1; transform: none; }
.os__opt[aria-current="page"] .os__name, .os__opt[aria-expanded="true"] .os__name { color: var(--accent-deep); }

.os-note {
  display: grid;
  grid-template-rows: 1fr;
  max-width: 520px;
  margin: 0 auto;
  transition: grid-template-rows 340ms var(--ease-soft), opacity 260ms ease, visibility 0s;
}
.os-note:focus { outline: none; }
.os-note__inner { min-height: 0; overflow: hidden; }
.os-note p { margin: 0 auto; max-width: 44ch; padding-top: 28px; font-size: 1.0625rem; color: var(--muted); }
.os-note p + p { padding-top: 12px; }
.os-note b { color: var(--text); }
.js .os-note:not(.is-open) {
  grid-template-rows: 0fr;
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows 260ms var(--ease-soft), opacity 160ms ease, visibility 0s linear 260ms;
}

.section--guide { padding-top: 80px; }
.guide { max-width: 1040px; margin: 0 auto; padding: 0; list-style: none; }
.guide__step {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 72px;
  align-items: center;
  padding: 64px 0;
  border-top: 1px solid var(--rule);
}
.guide__step:first-child { padding-top: 0; border-top: 0; }
.guide__n {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-bottom: 18px;
  font: 600 1rem/1 var(--sans);
  font-variant-numeric: tabular-nums;
  color: var(--accent-deep);
  border: 1px solid var(--line);
  border-radius: 50%;
}
.guide__text h2 { font-size: clamp(1.625rem, 2.6vw, 2rem); line-height: 1.15; }
.guide__text p { margin-top: 12px; max-width: 40ch; font-size: 1.0625rem; color: var(--muted); }
.guide__text .get { align-items: flex-start; margin-top: 28px; }
.guide__text .get__buttons { justify-content: flex-start; }
.guide__text .get__meta, .guide__text .get__soon { margin-top: 12px; font-size: 0.9375rem; }
.guide__art { display: flex; justify-content: center; }

.mw {
  width: 100%;
  max-width: 440px;
  overflow: hidden;
  font: 14px/1.4 var(--sans);
  color: var(--text);
  text-align: left;
  background: var(--bg);
  border: 1px solid rgba(22, 24, 29, 0.1);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(22, 24, 29, 0.05), 0 28px 56px -34px rgba(22, 40, 70, 0.32);
  user-select: none;
}
.mw__bar {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  background: #F8FAFD;
  border-bottom: 1px solid var(--rule);
}
.mw__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.mw__bar span { flex: 1; margin-right: 46px; font-size: 13px; font-weight: 600; text-align: center; color: var(--muted); }
.mw__cursor { position: absolute; width: 16px; height: 22px; }

.files { margin: 0; padding: 8px; list-style: none; }
.files li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 8px;
}
.files svg { width: 28px; height: 28px; }
.files span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.files small { font-size: 12px; color: var(--muted); }
.files li:not(.is-new) { color: var(--muted); }
.files li:not(.is-new) svg { opacity: 0.8; }
.files li.is-new { color: var(--on-accent); background: var(--accent); }
.files li.is-new small { color: rgba(255, 255, 255, 0.8); }

.drag {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 36px 36px 30px;
}
.drag__item { position: relative; display: grid; justify-items: center; gap: 8px; font-size: 13px; }
.drag__item img { width: 64px; height: 64px; image-rendering: pixelated; }
.drag__item svg { width: 72px; height: 58px; }
.drag__item .mw__cursor { right: -8px; top: 40px; width: 16px; height: 22px; }
.drag__arrow { width: 100%; height: 44px; margin-bottom: 24px; }

.set { padding: 18px 20px 22px; }
.set__h { font-size: 15px; font-weight: 700; }
.set__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
  padding: 14px;
  background: var(--surface);
  border-radius: 10px;
}
.set__row p { font-size: 13px; color: var(--muted); }
.mbtn {
  position: relative;
  flex: none;
  padding: 5px 12px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  background: var(--bg);
  border: 1px solid var(--accent);
  border-radius: 7px;
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.mbtn .mw__cursor { right: -6px; bottom: -16px; }
.set__list { margin: 12px 0 0; padding: 0 14px; list-style: none; background: var(--surface); border-radius: 10px; }
.set__list li { display: flex; align-items: center; gap: 10px; padding: 11px 0; }
.set__list li + li { border-top: 1px solid var(--rule); }
.set__list img { width: 22px; height: 22px; image-rendering: pixelated; }
.set__list span { flex: 1; }
.set__app { width: 22px; height: 22px; border-radius: 6px; background: linear-gradient(180deg, #F6D77A, #F2C25B); }
.toggle { position: relative; flex: none; width: 34px; height: 20px; border-radius: 999px; background: var(--line); }
.toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: 0 1px 2px rgba(22, 24, 29, 0.25);
}
.toggle.is-on { background: var(--accent); }
.toggle.is-on::after { transform: translateX(14px); }
.safety { max-width: 760px; margin: 0 auto; }

.feature {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 96px;
  align-items: center;
  padding: var(--section) var(--pad) 0;
}
.feature--flip .feature__text { order: 2; }
.feature__text h2 { font-size: clamp(2rem, 3.4vw, 2.625rem); }
.feature__text p { margin-top: 20px; font-size: 1.125rem; color: var(--muted); max-width: 40ch; }
.feature__text .note { font-size: 0.9375rem; }

.ticks { margin: 24px 0 0; padding: 0; list-style: none; }
.ticks li { position: relative; padding: 7px 0 7px 30px; }
.ticks li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 14px;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
}

.shot { margin: 0; }
.shot--window {
  display: grid;
  place-items: center;
  padding: 24px 0;
}
.shot--window img { width: auto; max-height: 540px; filter: drop-shadow(0 24px 40px rgba(22, 40, 70, 0.18)); }

.moods { margin: 0; padding: 24px 0; }
.moods ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}
.moods img { width: 100%; max-width: 120px; margin: 0 auto; image-rendering: pixelated; }
.moods span { display: block; margin-top: 12px; font-family: var(--pixel); font-size: 1.0625rem; }

.extras {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px 48px;
  margin: 72px 0 0;
  padding: 0;
  list-style: none;
}
.extra img { height: 56px; width: auto; image-rendering: pixelated; margin-bottom: 16px; }
.extra h3 { font-size: 1.1875rem; }
.extra p { margin-top: 8px; max-width: 34ch; color: var(--muted); font-size: 0.9375rem; }

.facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 48px;
  margin: 64px 0 0;
}
.facts div { padding: 24px 0 28px; border-top: 1px solid var(--rule); }
.facts dt { font-weight: 700; }
.facts dd { margin: 8px 0 0; color: var(--muted); font-size: 0.9375rem; }

.tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 64px;
}
.tiles:not(:has(.tile:not([hidden]))) { display: none; }
.tile { margin: 0; }
.tile img {
  width: 100%;
  aspect-ratio: 1288 / 888;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(22, 24, 29, 0.08);
  background: var(--bg);
}
.tile figcaption { margin-top: 12px; font-family: var(--pixel); font-weight: 600; font-size: 1.0625rem; }

.games {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 32px;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--rule);
}
.games h3 { font-size: 1.0625rem; margin-bottom: 12px; }
.games ul { margin: 0; padding: 0; list-style: none; }
.games li { padding: 5px 0; }
.games li.free::after, .games__dot {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 8px;
  border-radius: 50%;
  background: var(--accent);
  vertical-align: 2px;
}
.games__key {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding-top: 20px;
  border-top: 1px solid var(--rule);
  font-size: 0.9375rem;
  color: var(--muted);
}
.games__key .games__dot { margin-left: 0; flex: none; }
.games__key b { color: var(--text); }

.wall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(124px, 1fr));
  gap: 44px 16px;
  margin: 72px 0 0;
  padding: 0;
  list-style: none;
}
.critter {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.critter img { width: 80px; height: auto; image-rendering: pixelated; transform-origin: 50% 100%; }
.critter__name { margin-top: 12px; font-family: var(--pixel); font-weight: 600; font-size: 1rem; line-height: 1.2; }
@media (prefers-reduced-motion: no-preference) {
  .critter.is-hopping img { animation: hop 560ms var(--ease-out); }
  @keyframes hop {
    0% { transform: none; }
    18% { transform: scale(1.06, 0.92); }
    45% { transform: translateY(-14px) scale(0.97, 1.04); }
    72% { transform: translateY(0) scale(1.05, 0.95); }
    100% { transform: none; }
  }
}

.bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 64px 48px;
  margin-top: 72px;
}
.bento figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
}
.bento img { border-radius: 12px; }
.bento .shot img { border: 1px solid var(--rule); width: 100%; }
.bento figcaption { color: var(--muted); font-size: 0.9375rem; }
.bento figcaption strong { color: var(--text); }
.bento__big { grid-column: span 7; }
.bento__gear { grid-column: span 5; }
.bento__half { grid-column: span 6; }
.bento__gear ul {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bento__gear li { display: grid; place-items: center; padding: 8px; }
.bento__gear img { width: auto; max-width: 100%; image-rendering: pixelated; border-radius: 0; }

.faq { max-width: 760px; margin: 0 auto; }
.faq h2 { text-align: center; margin-bottom: 40px; }
.faq details { border-top: 1px solid var(--rule); }
.faq details:last-of-type { border-bottom: 1px solid var(--rule); }
.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  padding: 12px 0;
  font-weight: 600;
  font-size: 1.125rem;
  cursor: pointer;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform 300ms var(--ease-soft), border-color 200ms ease;
}
.faq details[open]:not(.is-closing) summary::after { transform: rotate(225deg) translate(-2px, -2px); }
@media (hover: hover) and (pointer: fine) {
  .faq summary { transition: color 200ms ease; }
  .faq summary:hover { color: var(--accent-deep); }
  .faq summary:hover::after { border-color: var(--accent-deep); }
}
.faq details p { padding: 0 0 24px; max-width: 62ch; color: var(--muted); }
@supports (interpolate-size: allow-keywords) and selector(::details-content) {
  .faq details::details-content {
    block-size: 0;
    opacity: 0;
    overflow-y: clip;
    transition: block-size 300ms var(--ease-soft), opacity 260ms ease, content-visibility 300ms allow-discrete;
  }
  .faq details[open]::details-content { block-size: auto; opacity: 1; }
  @media (prefers-reduced-motion: reduce) {
    .faq details::details-content { transition: opacity 150ms ease, content-visibility 150ms allow-discrete; }
  }
}

.cta {
  padding: var(--section) var(--pad) 0;
  text-align: center;
}
.cta img { width: 104px; margin: 0 auto 24px; image-rendering: pixelated; }
.cta h2 { font-size: clamp(2.25rem, 4.6vw, 3.25rem); }
.cta .get { margin-top: 32px; }

.auth {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 5fr);
  gap: 64px;
  align-items: center;
  max-width: 1040px;
  margin: 0 auto;
  padding: 88px var(--gutter) 0;
}
.auth__side h1 { font-size: clamp(2.25rem, 4.4vw, 3.25rem); line-height: 1.04; letter-spacing: -0.03em; }
.auth__side p { margin-top: 18px; font-size: 1.125rem; color: var(--muted); max-width: 34ch; }
.auth__side img { width: 120px; margin-bottom: 28px; image-rendering: pixelated; }
.auth__card { padding: 8px 0 8px 64px; border-left: 1px solid var(--rule); }
.auth__tabs { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; background: var(--surface); border-radius: 14px; }
.auth__tabs::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc(50% - 6px);
  background: var(--bg);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(22, 24, 29, 0.1);
  transition: transform 280ms var(--ease-soft);
}
.auth__tabs:has(#tab-login[aria-selected="true"])::before { transform: translateX(calc(100% + 4px)); }
.auth__tabs button {
  position: relative;
  min-height: 44px;
  font: 600 0.9375rem/1 var(--sans);
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 160ms var(--ease-out), color 160ms var(--ease-out);
}
.auth__tabs button[aria-selected="true"] { color: var(--text); }
@media (hover: hover) and (pointer: fine) {
  .auth__tabs button:hover { color: var(--text); }
}
@supports not selector(:has(*)) {
  .auth__tabs::before { display: none; }
  .auth__tabs button[aria-selected="true"] { background: var(--bg); box-shadow: 0 1px 2px rgba(22, 24, 29, 0.1); }
}
.auth .form[role="tabpanel"] { transition: opacity 240ms ease; }
@starting-style {
  .auth .form[role="tabpanel"] { opacity: 0; }
}
.form { display: grid; gap: 20px; margin-top: 28px; }
.field label, .field legend { display: block; margin-bottom: 8px; padding: 0; font-weight: 600; font-size: 0.9375rem; }
.field fieldset, fieldset.field { margin: 0; padding: 0; border: 0; min-width: 0; }
.field input, .field select {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  font: 16px/1.4 var(--sans);
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out);
}
.field input:focus, .field select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: #B3261E; }
.field__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.field__hint { margin-top: 6px; font-size: 0.875rem; color: var(--muted); }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 0.9375rem; color: var(--muted); }
.check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--accent); flex: none; }
.form .btn { width: 100%; }
.form__status:empty { display: none; }
.form__status { padding: 12px 14px; font-size: 0.9375rem; background: var(--accent-soft); border-radius: 12px; }
.form__status.is-error { background: #FCE8E6; color: #8C1D18; }
.auth__alt { margin-top: 20px; text-align: center; font-size: 0.9375rem; color: var(--muted); }

.site-footer {
  margin-top: var(--section);
  padding: 56px var(--pad) 32px;
  background: var(--surface);
  border-top: 1px solid var(--rule);
  font-size: 0.9375rem;
  color: var(--muted);
}
.site-footer__cols { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
.site-footer__brand p { margin-top: 12px; max-width: 30ch; }
.site-footer h2 { font-family: var(--sans); font-size: 0.875rem; font-weight: 700; letter-spacing: 0; color: var(--text); margin-bottom: 4px; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer a { display: inline-flex; align-items: center; min-height: 40px; color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--accent); text-decoration: underline; }
.site-footer a[aria-current="page"] { color: var(--text); font-weight: 600; }
.site-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--rule); font-size: 0.875rem; }
[data-email][hidden], [data-version][hidden] { display: none; }

main.doc {
  max-width: calc(68ch + 2 * var(--gutter));
  margin: 0 auto;
  padding: 56px var(--gutter) 0;
}
.doc > * { position: relative; }
.doc h1 { font-size: clamp(2.25rem, 5vw, 3.25rem); line-height: 1.05; }
.doc h2 { font-size: clamp(1.5rem, 3vw, 1.875rem); margin-top: 56px; scroll-margin-top: 96px; }
.doc h3 { font-size: 1.125rem; margin-top: 32px; }
.doc section { scroll-margin-top: 96px; }
.doc p, .doc ul, .doc ol { margin: 16px 0 0; }
.doc ul, .doc ol { padding-left: 1.4em; }
.doc li + li { margin-top: 8px; }
.doc li::marker { color: var(--muted); }
.doc .updated { margin-top: 12px; font-size: 0.875rem; color: var(--muted); }
.doc .lead { margin-top: 24px; font-size: 1.25rem; line-height: 1.5; }
.doc code {
  font: 0.875em/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  padding: 1px 4px;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: 4px;
  overflow-wrap: anywhere;
}
.doc table { width: 100%; margin-top: 16px; border-collapse: collapse; font-size: 0.9375rem; background: var(--bg); }
.doc th, .doc td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.doc th { background: var(--surface); }
.doc-toc {
  margin-top: 32px;
  padding: 8px 0;
  border-block: 1px solid var(--rule);
}
.doc .doc-toc ul {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2 14rem;
  column-gap: 32px;
}
.doc .doc-toc li { margin: 0; break-inside: avoid; }
.doc-toc a { display: inline-flex; align-items: center; min-height: 44px; }
.draft-note {
  margin-bottom: 32px;
  padding: 12px 16px;
  background: var(--accent-soft);
  border-radius: 12px;
  font-size: 0.9375rem;
}

@media (prefers-reduced-motion: no-preference) {
  .hero__copy > *, .desk, .page-head > * {
    animation: rise 680ms var(--ease-out) both;
  }
  .hero__sub, .page-head > :nth-child(2) { animation-delay: 80ms; }
  .hero .get, .page-head > :nth-child(3) { animation-delay: 160ms; }
  .desk { animation-delay: 240ms; animation-duration: 800ms; }
  @keyframes rise {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: none; }
  }

  .btn--shine::after { animation: shine 9s ease-in-out infinite; animation-delay: 2s; }
  @keyframes shine {
    0% { transform: translateX(-120%); }
    22%, 100% { transform: translateX(120%); }
  }

  .can-reveal [data-reveal] {
    transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out);
    transition-delay: calc(var(--i, 0) * 80ms);
  }
  .can-reveal [data-reveal]:not(.is-in) { opacity: 0; transform: translateY(20px); }

  .can-reveal .wall .critter {
    transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
    transition-delay: calc(var(--i, 0) * 18ms);
  }
  .can-reveal .wall:not(.is-in) .critter { opacity: 0; transform: translateY(10px) scale(0.95); }

  .can-reveal .mw--screen .toggle.is-on { transition: background-color 280ms ease 420ms; }
  .can-reveal .mw--screen .toggle.is-on::after { transition: transform 280ms var(--ease-soft) 420ms; }
  .can-reveal :not(.is-in) > .mw--screen .toggle.is-on { background: var(--line); }
  .can-reveal :not(.is-in) > .mw--screen .toggle.is-on::after { transform: none; }

  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: vt-out 180ms ease both; }
  ::view-transition-new(root) { animation: vt-in 340ms var(--ease-out) both; }
  @keyframes vt-out { to { opacity: 0; } }
  @keyframes vt-in { from { opacity: 0; transform: translateY(8px); } }
  ::view-transition-group(os-switch) { animation-duration: 340ms; animation-timing-function: var(--ease-soft); }
}

.site-header { view-transition-name: site-header; }
.os { view-transition-name: os-switch; }
::view-transition-group(site-header) { animation: none; }
::view-transition-old(site-header) { display: none; }
::view-transition-new(site-header) { animation: none; }

@media (prefers-reduced-motion: reduce) {
  .fx--heart { animation: heart-fade 900ms linear forwards; transform: translate(var(--x), var(--y)); }
  .fx--say { animation: none; }
  @keyframes heart-fade { from { opacity: 1; } to { opacity: 0; } }
  .ambient__bit { display: none; }
  .btn, .chip, .faq summary::after, .topnav a, .os__opt, .os__opt svg, .os__opt::after, .auth__tabs::before { transition: none; }
  .btn:active, .chip:active, .topnav a:active, .os__opt:active svg { transform: none; }
  .os-note, .js .os-note:not(.is-open) { transition: opacity 150ms ease, visibility 0s linear 150ms; }
}

@media (max-width: 959px) {
  .pillars, .plans, .extras, .demos { grid-template-columns: minmax(0, 1fr); }
  .pillars, .extras { max-width: 560px; margin-left: auto; margin-right: auto; }
  .plans { max-width: 480px; margin-left: auto; margin-right: auto; gap: 40px; }
  .plan--star { transform: none; order: -1; }
  .feature, .auth { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .feature--flip .feature__text { order: 0; }
  .auth__card { padding: 0; border-left: 0; }
  .guide__step { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .games { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bento__big, .bento__gear, .bento__half { grid-column: span 12; }
  .site-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 599px) {
  body { font-size: 16px; }
  .ambient__bit:nth-child(odd) { display: none; }
  .hero { padding-top: 48px; }
  .hero__sub, .page-head p, .head p { font-size: 1.125rem; }
  .page-head { padding-top: 64px; }
  .get__buttons { flex-direction: column; align-self: stretch; }
  .get__buttons .btn { width: 100%; }
  .desk { margin-top: 40px; border-radius: 12px; }
  .desk__bar { gap: 12px; font-size: 12px; }
  .desk__menu { display: none; }
  .stage--desk { aspect-ratio: 1 / 1; }
  .desk__window { width: 62%; top: 6%; }
  .try { justify-content: flex-start; }
  .try__how { flex-direction: column; }
  .pillar__art { height: 200px; }
  .pillar__body { margin-top: 24px; }
  .plan { padding: 32px 24px 24px; }
  .install .get { align-self: stretch; }
  .os__opt { padding: 18px 8px 20px; }
  .os__name { font-size: 1.25rem; }
  .guide__step { padding: 48px 0; }
  .guide__text .get { align-items: stretch; }
  .mw { font-size: 13px; }
  .drag { padding: 28px 16px 24px; }
  .shot--window { padding: 8px 0; }
  .shot--window img { max-height: 440px; }
  .moods ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 12px; }
  .facts { grid-template-columns: minmax(0, 1fr); }
  .tiles { grid-template-columns: minmax(0, 1fr); }
  .games { grid-template-columns: minmax(0, 1fr); }
  .wall { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 8px; }
  .critter img { width: 64px; }
  .critter__name { font-size: 0.875rem; }
  .bento { gap: 48px 24px; }
  .auth { padding-top: 48px; }
  .field__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .site-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
