:root {
  --bg: #fcf8ff; --fg: #1b1b21; --muted: #5d5c66; --card: #fff; --line: #e4e0ec;
  --accent: #575992; --accent-2: #8a6fd1; --on-accent: #fff; --tint: #ebe9ff; --glow: #d9d4ff;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #131318; --fg: #e4e1e9; --muted: #aaa9b5; --card: #1d1d24; --line: #2c2c36;
    --accent: #c0c1ff; --accent-2: #b79cff; --on-accent: #1b1b3a; --tint: #2a2a4a; --glow: #2a2750;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 17px/1.65 system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: var(--accent); }
main { max-width: 760px; margin: 0 auto; padding: 0 16px 48px; }
h1 { font-size: clamp(2.2rem, 6vw, 3.2rem); line-height: 1.1; margin: 0 0 16px; letter-spacing: -.02em; }
h2 { font-size: 1.35rem; margin: 0 0 12px; }
p, li { color: var(--muted); }
kbd { background: var(--tint); color: var(--fg); border-radius: 6px; padding: 1px 6px; font-size: .85em; }
ul { padding-left: 20px; }

.hero { text-align: center; padding: 64px 16px 40px; margin: 0 -16px; background: radial-gradient(60% 80% at 50% 0%, var(--glow), transparent 70%); }
.hero p { font-size: 1.15rem; max-width: 560px; margin: 0 auto 24px; }
img.logo { width: 72px; height: 72px; background: #fff; border-radius: 20px; padding: 10px; box-shadow: 0 8px 24px rgba(87, 89, 146, .25); margin-bottom: 20px; }
.btn { display: inline-block; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: var(--on-accent); padding: 14px 32px; border-radius: 100px; text-decoration: none; font-weight: 600; box-shadow: 0 6px 18px rgba(87, 89, 146, .3); transition: transform .15s; }
.btn:hover { transform: translateY(-2px); }
.hero p.hint { font-size: .9rem; margin: 12px auto 0; }

/* Demo table: one column highlighted and "copied" */
.demo { position: relative; max-width: 420px; margin: 32px auto 0; background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 16px; box-shadow: 0 12px 40px rgba(87, 89, 146, .15); }
.demo table { width: 100%; border-collapse: separate; border-spacing: 6px; }
.demo td, .demo th { padding: 8px; border-radius: 8px; background: var(--bg); color: var(--muted); font-size: .85rem; text-align: left; }
.demo .hl { background: var(--tint); color: var(--fg); animation: pulse 2.4s ease-in-out infinite; }
.demo .pill { position: absolute; right: -8px; top: -14px; background: var(--accent); color: var(--on-accent); font-size: .8rem; font-weight: 600; padding: 4px 12px; border-radius: 100px; }
@keyframes pulse { 50% { background: var(--glow); } }
@media (prefers-reduced-motion: reduce) { .demo .hl { animation: none; } .btn { transition: none; } }

.grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 32px 0; }
.tile, .card { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 20px; }
.tile .ico { font-size: 1.6rem; }
.tile h3 { margin: 8px 0 4px; font-size: 1.05rem; }
.tile p { margin: 0; font-size: .95rem; line-height: 1.5; }
.card { margin: 24px 0; }
.ad { min-height: 280px; margin: 24px 0; text-align: center; }
footer { margin-top: 48px; font-size: .875rem; text-align: center; }

/* Goodbye */
.goodbye .hero { background: radial-gradient(60% 80% at 50% 0%, #ffe3d6, transparent 70%); }
@media (prefers-color-scheme: dark) { .goodbye .hero { background: radial-gradient(60% 80% at 50% 0%, #3a2530, transparent 70%); } }
.wave { font-size: 3.5rem; line-height: 1; display: inline-block; animation: wave 2.5s ease-in-out infinite; transform-origin: 70% 70%; }
@keyframes wave { 0%, 60%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(14deg); } 20%, 40% { transform: rotate(-8deg); } 50% { transform: rotate(10deg); } }
@media (prefers-reduced-motion: reduce) { .wave { animation: none; } }
.warm { text-align: center; background: linear-gradient(135deg, var(--tint), var(--card)); }
