:root { --bg: #0b1220; --fg: #eef2f8; --dim: #a9b4c8; --card: rgba(255,255,255,.06); --accent: #5AA5DC; --accent-fg: #071320; }
@media (prefers-color-scheme: light) { :root { --bg: #f5f7fb; --fg: #0d1626; --dim: #4a5568; --card: #fff; --accent: #1F6FB2; --accent-fg: #fff; } }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--fg); font: 16px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif; display: flex; flex-direction: column; }
main { flex: 1; display: grid; justify-items: center; align-content: center; padding: 24px 16px; gap: 24px; }
#scene { width: min(960px, 100%); aspect-ratio: 16 / 7; border-radius: 20px; overflow: hidden; background: radial-gradient(120% 120% at 20% 10%, #1d3557 0%, #0b1220 60%); }
.card { width: min(640px, 100%); background: var(--card); border-radius: 20px; padding: 28px 24px; }
h1 { margin: 0 0 4px; font-size: clamp(28px, 6vw, 44px); letter-spacing: -.02em; word-break: break-word; }
.lead { font-size: 18px; margin-top: 0; }
.buy { margin: 20px 0; }
.buy button { width: 100%; padding: 16px 20px; border: 0; border-radius: 999px; background: var(--accent); color: var(--accent-fg); font-family: inherit; font-size: 18px; font-weight: 600; line-height: 1; cursor: pointer; }
.buy .button { display: block; text-align: center; padding: 16px 20px; border-radius: 999px; background: var(--accent); color: var(--accent-fg); font-weight: 600; font-size: 18px; text-decoration: none; }
.buy .button:focus-visible { outline: 3px solid var(--fg); outline-offset: 3px; }
.buy button:focus-visible { outline: 3px solid var(--fg); outline-offset: 3px; }
.pending { font-weight: 600; }
.small { color: var(--dim); font-size: 14px; }
a { color: var(--accent); }
.foot { text-align: center; color: var(--dim); font-size: 13px; padding: 20px 16px 28px; }
.foot p { margin: 0 0 8px; }
.foot nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
/* Delivery form (deliver.ts) and the thanks page's link to it */
.btn { display: inline-block; padding: 14px 22px; border: 0; border-radius: 999px; background: var(--accent); color: var(--accent-fg); font-weight: 600; font-size: 17px; line-height: 1; font-family: inherit; text-decoration: none; cursor: pointer; }
.btn:focus-visible { outline: 3px solid var(--fg); outline-offset: 3px; }
.deliver { display: grid; gap: 8px; margin: 20px 0; }
.deliver label { font-weight: 600; margin-top: 8px; }
.deliver input { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--dim); background: transparent; color: var(--fg); font: inherit; }
.deliver input:focus-visible { outline: 3px solid var(--accent); outline-offset: 1px; }
.deliver .btn { margin-top: 12px; justify-self: start; }
.notice { padding: 12px 14px; border-radius: 12px; border-left: 4px solid var(--accent); background: var(--card); }
/* Error: magenta, never red (colour-blind safe); dark is the default here, light overrides */
.notice.error { border-left-color: #E0679F; }
@media (prefers-color-scheme: light) { .notice.error { border-left-color: #B02A6B; } }
/* Make an offer (offer.ts): the dollar field, the optional-field hint, the honeypot */
.deliver textarea { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--dim); background: transparent; color: var(--fg); font: inherit; resize: vertical; }
.deliver textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 1px; }
.money { display: flex; align-items: center; gap: 8px; }
.money span { font-weight: 600; font-size: 18px; }
.money input { max-width: 14ch; }
.opt { font-weight: 400; color: var(--dim); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
