/* Lantern pages on kismetstudio.io. Site tokens plus the Lantern palette (amber is light only, never buttons). */
:root {
  --sky-top:#bcd8f4; --sky-mid:#d6e8f9; --sky-low:#eef5fc;
  --card:#ffffff; --card-line:rgba(15,32,72,.08);
  --card-shadow:0 1px 2px rgba(15,32,72,.05), 0 24px 48px -28px rgba(15,32,72,.35);
  --ink:#0f2048; --ink-2:#4a596f; --ink-3:#7b889c; --row-line:rgba(15,32,72,.08);
  --pill:#0f2048; --pill-ink:#ffffff; --pill-soft:#eef2f7; --pill-soft-ink:#0f2048; --link:#2c6bc7;
  --glow:#F5B041; --glow-deep:#D98E1F; --night:#141B2B; --moss:#3F7D57; --ember:#C4602F;
  --serif:"Newsreader","Iowan Old Style",Georgia,serif; --sans:"Figtree","Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --sky-top:#0e1a2e; --sky-mid:#172842; --sky-low:#1f3250;
    --card:#1b2638; --card-line:rgba(255,255,255,.08);
    --card-shadow:0 1px 2px rgba(0,0,0,.3), 0 24px 48px -28px rgba(0,0,0,.7);
    --ink:#eef3fa; --ink-2:#b6c2d4; --ink-3:#8593a8; --row-line:rgba(255,255,255,.08);
    --pill:#eef3fa; --pill-ink:#141e30; --pill-soft:#263650; --pill-soft-ink:#eef3fa; --link:#86b4f0;
    --moss:#5FA37A; --ember:#E07A4C;
    color-scheme:dark;
  }
}
:root[data-theme="dark"] {
  --sky-top:#0e1a2e; --sky-mid:#172842; --sky-low:#1f3250;
  --card:#1b2638; --card-line:rgba(255,255,255,.08);
  --card-shadow:0 1px 2px rgba(0,0,0,.3), 0 24px 48px -28px rgba(0,0,0,.7);
  --ink:#eef3fa; --ink-2:#b6c2d4; --ink-3:#8593a8; --row-line:rgba(255,255,255,.08);
  --pill:#eef3fa; --pill-ink:#141e30; --pill-soft:#263650; --pill-soft-ink:#eef3fa; --link:#86b4f0;
  --moss:#5FA37A; --ember:#E07A4C;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:var(--sans); color:var(--ink); background:var(--sky-low); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a { color:inherit; }
a:focus-visible { outline:2px solid var(--link); outline-offset:3px; border-radius:6px; }
h1,h2,h3 { margin:0; text-wrap:balance; }
img { max-width:100%; display:block; }
.wrap { width:min(1080px, calc(100% - 48px)); margin:0 auto; position:relative; }
.narrow { width:min(760px, calc(100% - 48px)); }
@media (max-width:640px) { .wrap, .narrow { width:calc(100% - 32px); } }
.sky { position:relative; background:linear-gradient(180deg, var(--sky-top), var(--sky-mid) 55%, var(--sky-low)); overflow:hidden; }
.nav { display:flex; align-items:center; justify-content:space-between; padding:18px 0; font-size:14px; font-weight:500; }
.nav a { text-decoration:none; color:var(--ink-2); }
.nav a:hover { color:var(--ink); }
.nav .brand { font-family:var(--serif); font-size:18px; color:var(--ink); }
.pill { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:999px; font-family:var(--sans); font-weight:600; font-size:13.5px; text-decoration:none; background:var(--pill); color:var(--pill-ink); border:0; cursor:pointer; white-space:nowrap; transition:transform .15s ease; }
.pill:hover { transform:translateY(-1px); }
.pill.soft { background:var(--pill-soft); color:var(--pill-soft-ink); }
.pill.lg { padding:12px 20px; font-size:15px; }
.badge { display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:5px 11px; border-radius:999px; background:color-mix(in srgb, var(--glow) 30%, transparent); color:var(--ink); }
.badge .dot { width:7px; height:7px; border-radius:50%; background:var(--glow-deep); animation:pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.5; transform:scale(.75); } }
@media (prefers-reduced-motion:reduce) { .badge .dot { animation:none; } }
/* hero */
.hero { text-align:center; padding:56px 0 36px; }
@media (max-width:640px) { .hero { padding:36px 0 24px; } }
.hero .icon { width:120px; height:120px; border-radius:27px; margin:0 auto 22px; box-shadow:0 18px 40px -18px rgba(15,32,72,.55), 0 0 0 1px rgba(15,32,72,.06); }
.hero h1 { font-family:var(--serif); font-weight:500; font-size:clamp(42px, 6.5vw, 72px); line-height:1.02; letter-spacing:-.02em; }
.hero .tag { font-family:var(--serif); font-style:italic; font-size:clamp(20px, 2.6vw, 26px); color:var(--ink-2); margin:14px auto 0; max-width:22em; }
.hero p.lede { color:var(--ink-2); font-size:17.5px; max-width:38em; margin:18px auto 0; }
.hero .cta { margin-top:26px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero .sub { margin-top:14px; font-size:13.5px; color:var(--ink-3); }
.hero-art { margin:34px auto 0; border-radius:22px; box-shadow:var(--card-shadow); border:1px solid var(--card-line); max-width:980px; }
/* sections */
section { padding:48px 0; }
section + section { border-top:1px solid var(--row-line); }
.kicker { font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-bottom:10px; }
h2.sec { font-family:var(--serif); font-weight:500; font-size:clamp(30px, 3.6vw, 42px); line-height:1.08; letter-spacing:-.015em; max-width:18em; }
.lede { color:var(--ink-2); font-size:17px; max-width:40em; margin:14px 0 0; }
.grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; margin-top:28px; }
@media (max-width:860px) { .grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .grid { grid-template-columns:1fr; } }
.card { background:var(--card); border:1px solid var(--card-line); border-radius:20px; box-shadow:var(--card-shadow); padding:22px 22px 20px; }
.card .sym { width:30px; height:30px; color:var(--glow-deep); margin-bottom:12px; }
.card h3 { font-family:var(--serif); font-weight:500; font-size:22px; line-height:1.15; }
.card p { margin:8px 0 0; color:var(--ink-2); font-size:15px; }
.card.free { border-color:color-mix(in srgb, var(--glow) 55%, transparent); }
.card .label { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--moss); margin-bottom:8px; }
/* plans */
.plans { display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; margin-top:28px; }
@media (max-width:820px) { .plans { grid-template-columns:1fr; } }
.plan { background:var(--card); border:1px solid var(--card-line); border-radius:20px; box-shadow:var(--card-shadow); padding:26px; }
.plan .price { font-family:var(--serif); font-size:36px; font-weight:500; line-height:1; margin:6px 0 2px; }
.plan .per { color:var(--ink-3); font-size:13px; }
.plan ul { margin:16px 0 0; padding:0; list-style:none; color:var(--ink-2); font-size:15px; }
.plan li { padding:7px 0; border-top:1px solid var(--row-line); }
.plan li::before { content:"✓"; color:var(--moss); font-weight:700; margin-right:9px; }
.note { color:var(--ink-3); font-size:13.5px; margin-top:16px; }
/* legal pages */
.legal header { padding:36px 0 8px; }
.legal h1 { font-family:var(--serif); font-weight:500; font-size:clamp(34px, 5vw, 50px); letter-spacing:-.02em; line-height:1.05; }
.legal .stamp { font-size:12.5px; color:var(--ink-3); letter-spacing:.04em; text-transform:uppercase; margin-top:14px; }
.legal section { padding:22px 0; border-top:0; }
.legal h2 { font-family:var(--serif); font-weight:500; font-size:26px; margin-bottom:10px; }
.legal p, .legal li { color:var(--ink-2); font-size:16px; }
.legal p { margin:0 0 12px; }
.legal strong { color:var(--ink); font-weight:600; }
.legal ul { margin:0 0 12px 20px; }
.legal li { margin-bottom:6px; }
.legal .headline { background:var(--night); color:#DCE3EE; border-radius:20px; padding:26px 26px; box-shadow:var(--card-shadow); }
.legal .headline h2 { color:#F2F4F7; }
.legal .headline p { color:#B6C2D4; }
.legal .headline strong { color:#F5B041; }
.legal table { width:100%; border-collapse:collapse; margin:4px 0 10px; }
.legal td { padding:12px 0; border-bottom:1px solid var(--row-line); font-size:15px; vertical-align:top; color:var(--ink-2); }
.legal tr:last-child td { border-bottom:0; }
.legal td.v { text-align:right; font-weight:600; color:var(--ink); width:38%; padding-left:16px; }
.legal td.v.no { color:var(--moss); }
.legal td.v.yes { color:var(--ember); }
footer { padding:26px 0 44px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--ink-3); border-top:1px solid var(--row-line); }
footer a { text-decoration:none; }
footer a:hover { color:var(--ink); }
