:root {
  --color-primary: #e60023;
  --color-on-primary: #ffffff;
  --color-primary-pressed: #cc001f;
  --color-ink: #000000;
  --color-ink-soft: #211922;
  --color-body: #33332e;
  --color-charcoal: #262622;
  --color-mute: #62625b;
  --color-ash: #91918c;
  --color-stone: #c8c8c1;
  --color-hairline: #dadad3;
  --color-hairline-soft: #e5e5e0;
  --color-on-secondary: #000000;
  --color-secondary-bg: #e5e5e0;
  --color-secondary-pressed: #c8c8c1;
  --color-canvas: #ffffff;
  --color-surface-soft: #fbfbf9;
  --color-surface-card: #f6f6f3;
  --color-surface-elevated: #ffffff;
  --color-on-dark: #ffffff;
  --color-on-dark-mute: rgba(255,255,255,0.7);
  --color-surface-dark: #262622;
  --color-focus-outer: #435ee5;
  --color-error: #9e0a0a;
  --rounded-none: 0px;
  --rounded-sm: 8px;
  --rounded-md: 16px;
  --rounded-lg: 32px;
  --rounded-full: 9999px;
  --space-xxs: 4px;
  --space-xs: 6px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 24px;
  --space-xxl: 32px;
  --space-section: 64px;
  --font-display: "Pin Sans", system-ui, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-body: "Pin Sans", system-ui, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; }
html { background: #e8e4dc; }
body {
  margin: 0 auto; max-width: 390px; min-height: 100vh;
  font-family: var(--font-body); color: var(--color-body);
  background: var(--color-surface-soft);
  font-size: 16px; line-height: 1.4; padding-bottom: 64px;
}
a { color: var(--color-ink); text-decoration: none; }
.top {
  background: var(--color-canvas); padding: 12px 16px;
  display: flex; align-items: center; justify-content: space-between;
  position: sticky; top: 0; z-index: 20;
}
.logo { font-weight: 700; color: var(--color-primary); font-size: 18px; }
.logo::before {
  content: ""; display: inline-block; width: 20px; height: 20px;
  margin-right: 6px; vertical-align: -4px; border-radius: 50%;
  background: var(--color-primary);
}
.back { font-size: 12px; color: var(--color-mute); }
.hero { padding: 28px 16px 20px; }
.hero h1 {
  font-size: 36px; font-weight: 600; letter-spacing: -1.2px;
  line-height: 1.1; color: var(--color-ink); margin: 0 0 8px;
}
.hero p { margin: 0; color: var(--color-mute); font-size: 14px; }
.hero-cta {
  display: inline-flex; margin-top: 16px;
  background: var(--color-primary); color: #fff;
  border-radius: 16px; padding: 10px 16px; font-size: 14px; font-weight: 700;
}
.block { padding: 16px; }
.block h2 { font-size: 18px; font-weight: 600; color: var(--color-ink); margin: 0 0 12px; }
.cell {
  display: block; background: var(--color-canvas);
  border-radius: 16px; padding: 16px; margin-bottom: 8px; color: var(--color-ink);
}
.cell h3 { margin: 0 0 4px; font-size: 16px; font-weight: 600; }
.cell p { margin: 0; color: var(--color-mute); font-size: 13px; }
.row {
  display: flex; justify-content: space-between; gap: 8px;
  padding: 12px 0; border-bottom: 1px solid var(--color-hairline); font-size: 14px;
}
.row:last-child { border-bottom: 0; }
.row span { color: var(--color-mute); }
.ph {
  background: var(--color-surface-card); color: var(--color-ash);
  height: 160px; display: flex; align-items: center; justify-content: center;
  font-size: 13px; margin-bottom: 12px; border-radius: 16px;
}
.pins { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pin { background: var(--color-surface-card); border-radius: 16px; overflow: hidden; }
.pin .ph { height: 120px; margin: 0; border-radius: 0; }
.pin:nth-child(odd) .ph { height: 160px; }
form label { display: block; margin: 0 0 4px; font-size: 14px; font-weight: 600; }
form input, form textarea {
  width: 100%; padding: 11px 15px; border: 1px solid var(--color-ash);
  border-radius: 16px; font: inherit; margin-bottom: 12px; background: #fff;
}
form button {
  width: 100%; padding: 12px; border: 0; border-radius: 16px;
  background: var(--color-primary); color: #fff; font: inherit; font-weight: 700;
}
.tab {
  position: fixed; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 100%; max-width: 390px;
  display: flex; background: #fff;
  border-top: 1px solid var(--color-hairline);
  padding: 6px 0 8px;
}
.tab a { flex: 1; text-align: center; padding: 10px 0; font-size: 11px; font-weight: 700; color: var(--color-mute); }
.tab a.on { color: var(--color-primary); }

.ph { overflow: hidden; }
.ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
