/* Nightpaper design system — ~/dev/nightpaper (dark-first, flat, one teal accent) */
:root{
  --bg:#101e30;--surface:#182a40;--surface-raised:#16283e;--border:#223550;
  --ink:#edf2f7;--muted:#7d8ea3;--primary:#14b8a6;--primary-hover:#5eead4;
  --on-primary:#06201c;--pill-bg:#22364e;--warn:#f59e0b;--ok:#22c55e;--danger:#ef4444;
  --serif:Georgia,'Noto Serif',serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.55 var(--sans);color:var(--ink);background:var(--bg);font-feature-settings:"lnum"}
a{color:var(--primary-hover);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0;line-height:1.15;font-family:var(--serif);font-weight:500;letter-spacing:-.01em}
h1{font-size:42px}
h2{font-size:30px}
h3{font-size:19px}
p{margin:0}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
section{padding:56px 0}
section.alt{background:var(--surface-raised);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sub{color:var(--muted);margin-top:12px;max-width:620px}
.small{font-size:14px;color:var(--muted)}
.tiny{font-size:13px;color:var(--muted)}
.btn{display:inline-block;background:var(--primary);color:var(--on-primary);font-weight:600;font-size:16px;padding:12px 20px;border-radius:12px;border:0;cursor:pointer;line-height:1.2;white-space:nowrap;font-family:var(--sans)}
.btn:hover{background:var(--primary-hover);text-decoration:none}
.btn:active{background:var(--primary-hover)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--border);font-weight:500;padding:8px 14px;font-size:15px}
.btn.ghost:hover{background:var(--surface)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px}
.grid{display:grid;gap:14px;margin-top:28px}
.pill{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.02em;padding:2px 9px;border-radius:9999px;vertical-align:middle;white-space:nowrap}
.pill.warn{background:var(--pill-bg);color:var(--warn)}
.pill.pop{background:var(--pill-bg);color:var(--primary-hover)}
.hidden{display:none!important}

/* nav */
nav{border-bottom:1px solid var(--border);background:var(--surface-raised);position:sticky;top:0;z-index:5}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.wordmark{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--ink)}
.wordmark .dot{color:var(--primary)}
.wordmark:hover{text-decoration:none}

/* hero */
.hero{padding:72px 0 64px;text-align:center;background:url(/assets/starfield-bg.webp) center bottom/cover no-repeat, var(--bg)}
.hero h1{max-width:760px;margin:0 auto}
.hero .sub{margin:20px auto 0;font-size:19px}
.hero .cta{margin-top:30px}
.hero .tiny{margin-top:12px}
.hero-art{margin:44px auto 0;max-width:820px}
.hero-art img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:18px}

/* three lines */
.lines{margin-top:18px;max-width:640px;font-size:20px;line-height:1.5}
.lines p+p{margin-top:8px}

/* plans */
.plan{position:relative;display:flex;flex-direction:column}
.plan.pro{border:1px solid var(--primary)}
.plan .name{font-weight:600;font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--sans)}
.plan .price{font-size:34px;font-weight:500;font-family:var(--serif);letter-spacing:-.01em;margin:6px 0 2px}
.plan .price span{font-size:15px;font-weight:400;font-family:var(--sans);color:var(--muted);letter-spacing:0}
.plan ul{list-style:none;padding:0;margin:16px 0 0;font-size:15px;color:var(--muted)}
.plan li{padding:6px 0;border-top:1px solid var(--border)}
.plan .for{margin-top:auto;padding-top:16px;font-size:15px}
.plan .pop{position:absolute;top:-11px;left:18px}
.credits{margin-top:20px;max-width:640px;color:var(--muted)}
.custom{margin-top:22px;color:var(--muted)}

/* slots */
.slots{margin-top:44px;padding-top:36px;border-top:1px solid var(--border)}
.slots h3{font-size:22px}
.slotrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;max-width:640px}
.slot{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 8px}
.slot .tier{font-size:14px;color:var(--muted)}
.slot .n{font-size:32px;font-weight:500;font-family:var(--serif);color:var(--primary);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.slot .n.zero{color:var(--muted)}
.slot .lbl{font-size:13px;color:var(--muted)}
.slots .note{margin-top:14px;max-width:560px}

/* community */
.tile{padding:18px}
.tile h3{font-size:16px}
.tile p{margin-top:6px;font-size:15px;color:var(--muted)}
.community-flex{display:grid;gap:20px;margin-top:24px;align-items:center}
.community-art{max-width:260px;margin:0 auto}
.community-art img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:18px}

/* waitlist */
form{margin-top:22px;display:flex;flex-direction:column;gap:10px;max-width:520px}
input[type=email]{font:inherit;font-family:var(--sans);padding:12px 14px;border:1px solid var(--border);border-radius:12px;width:100%;background:var(--bg);color:var(--ink)}
input[type=email]:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}
input[type=email]::placeholder{color:var(--muted)}
.err{color:#f87171;font-size:14px}
.done{margin-top:22px;padding:18px 20px;border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:12px;background:var(--surface);max-width:520px}

/* footer */
footer{padding:36px 0 48px;border-top:1px solid var(--border);font-size:14px;color:var(--muted);background:var(--bg)}
footer .row{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
footer .attrib{margin-top:24px;font-size:12.5px;color:var(--muted);line-height:1.5;max-width:640px}

@media (min-width:640px){
  form{flex-direction:row}
  form input[type=email]{flex:1}
}
@media (min-width:900px){
  section{padding:80px 0}
  h1{font-size:60px}
  h2{font-size:36px}
  .hero{padding:104px 0 88px}
  .how{grid-template-columns:repeat(3,1fr)}
  .plans{grid-template-columns:repeat(4,1fr);gap:16px}
  .tiles{grid-template-columns:repeat(3,1fr)}
  .community-flex{grid-template-columns:1fr 300px;gap:40px}
}
@media (prefers-reduced-motion:no-preference){
  .btn{transition:background .12s}
}

/* lesson pages */
.navlinks{display:flex;gap:18px;align-items:center;font-size:15px}
.navlinks a{color:var(--muted);white-space:nowrap}
.navlinks a:hover{color:var(--ink);text-decoration:none}
/* phones: the hero repeats "Get your agent", so the nav drops its button and tightens */
@media (max-width:639px){nav .wrap{gap:12px}nav .btn.ghost{display:none}.navlinks{gap:10px;font-size:14px}}
/* phones: five nav links do not fit beside the wordmark, so Blog drops out of the nav */
@media (max-width:479px){.navlinks a[href="/blog/"],.navlinks a[href="/check/"]{display:none}}
@media (max-width:379px){.wordmark{font-size:20px;gap:6px}.navlinks{gap:10px;font-size:13px}}
@media (max-width:339px){nav .wrap{gap:8px}.wordmark{font-size:18px}.navlinks{gap:8px;font-size:12px}}
.learn-head{padding:48px 0 0}
.lesson-list{margin-top:24px}
/* member home (/account/) */
.account-lessons{list-style:none;margin:6px 0 18px;padding:0}
.account-lessons:last-child{margin-bottom:0}
.account-lessons a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);color:var(--ink)}
.account-lessons li:last-child a{border-bottom:0}
.account-lessons a:hover{text-decoration:none;color:var(--primary)}
.account-box p{margin:0 0 12px}
.account-box p:last-child{margin:0}
.account-page section.module{padding:28px 0 0}
.account-page section.module+section.module{margin-top:0}
.account-page main{padding-bottom:56px}
section.module+section.module{margin-top:2.5rem}
section.module>h2{margin-bottom:1rem}
.lesson-card{display:block;color:var(--ink)}
.lesson-card:hover{border-color:var(--primary);text-decoration:none}
.lesson-card .small{margin-left:10px}
.lesson-card h3{margin-top:10px;font-size:22px}
.lesson{max-width:720px;padding:48px 0 64px}
.lesson-nav{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:14px}
.setup-banner{margin-top:18px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:12px;padding:12px 16px;font-size:15px}
.lesson h1{margin-top:18px}
.lesson .sub{margin-top:14px}
.lesson-body{margin-top:32px}
.lesson-body p,.lesson-body ul,.lesson-body ol,.lesson-body pre,.lesson-body table,.lesson-body blockquote{margin-top:18px}
.lesson-body h2{margin-top:36px;font-size:26px}
.lesson-body h3{margin-top:28px}
.lesson-body ul,.lesson-body ol{padding-left:24px}
.lesson-body li+li{margin-top:6px}
.lesson-body pre{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;overflow:auto;font-size:14px;line-height:1.5}
.lesson-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
.lesson-body p code,.lesson-body li code{background:var(--pill-bg);border-radius:6px;padding:1px 5px}
.lesson-body table{border-collapse:collapse;width:100%;font-size:15px}
.lesson-body th,.lesson-body td{border:1px solid var(--border);padding:8px 10px;text-align:left}
.lesson-body blockquote{border-left:3px solid var(--primary);padding-left:16px;color:var(--muted)}
.lesson-body a{text-decoration:underline}
.pill.kind{background:var(--pill-bg);color:var(--primary-hover);text-transform:uppercase;letter-spacing:.06em}
.agent-cta{margin-top:36px}
.agent-fallback{margin-top:18px;padding:18px 20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);max-width:520px}
.agent-fallback p{margin:0;font-size:15px;color:var(--muted)}
.agent-fallback code{color:var(--ink)}
.qr{margin-top:14px}
.qr svg{display:block;width:180px;height:180px;background:#fff;border-radius:8px;padding:6px}
footer .row a{color:var(--muted)}

/* flow pages */
.flow{max-width:720px;padding:48px 0 64px}
.flow .sub{margin-top:14px}
.flow-form{flex-direction:column;max-width:520px}
.flow-form input[type=email]{flex:none}
.flow-form .btn{align-self:flex-start}
.flow-note{margin-top:22px;padding:14px 18px;border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:12px;background:var(--surface);color:var(--ink);font-size:15px}
.tos{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--muted)}
.tos input{margin:3px 0 0}
.tos a{color:var(--primary-hover)}
.flow-fine{margin-top:24px}
.flow-block{margin-top:56px;padding-top:36px;border-top:1px solid var(--border)}
.flow-block h2{font-size:26px}
.flow-block .btn{margin-top:6px}
.setup-panel{margin-top:24px}
.setup-panel .btn{margin-top:18px}
.setup-panel .qr-hint{margin-top:12px}
.community-link{display:inline-block;margin-top:14px}
.cta .btn+.btn{margin-left:10px}
.trial-grid{grid-template-columns:1fr}
@media (min-width:640px){
  .trial-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:960px){
  .trial-grid{grid-template-columns:repeat(3,1fr)}
}
/* Cloudflare Turnstile widget inside the two forms. interaction-only appearance: the container
   stays empty (and collapsed) unless Cloudflare needs the visitor to click, then it gets an iframe. */
.cf-turnstile:empty{display:none}
.cf-turnstile{margin:0}

/* blog pages (rendered from Ghost by web/build_blog.py) */
.blog-tags{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.blog-tags:empty{display:none}
.blog-post .feature{display:block;width:100%;height:auto;margin-top:28px;border-radius:18px;border:1px solid var(--border)}
.lesson-body img{max-width:100%;height:auto;border-radius:12px}
.lesson-body figure{margin:24px 0 0}
.lesson-body figcaption{margin-top:8px;font-size:14px;color:var(--muted);text-align:center}
.lesson-body hr{border:0;border-top:1px solid var(--border);margin:32px 0}
/* Nightpaper design system — ~/dev/nightpaper (dark-first, flat, one teal accent) */
:root{
  --bg:#101e30;--surface:#182a40;--surface-raised:#16283e;--border:#223550;
  --ink:#edf2f7;--muted:#7d8ea3;--primary:#14b8a6;--primary-hover:#5eead4;
  --on-primary:#06201c;--pill-bg:#22364e;--warn:#f59e0b;--ok:#22c55e;--danger:#ef4444;
  --serif:Georgia,'Noto Serif',serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.55 var(--sans);color:var(--ink);background:var(--bg);font-feature-settings:"lnum"}
a{color:var(--primary-hover);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0;line-height:1.15;font-family:var(--serif);font-weight:500;letter-spacing:-.01em}
h1{font-size:42px}
h2{font-size:30px}
h3{font-size:19px}
p{margin:0}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
section{padding:56px 0}
section.alt{background:var(--surface-raised);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sub{color:var(--muted);margin-top:12px;max-width:620px}
.small{font-size:14px;color:var(--muted)}
.tiny{font-size:13px;color:var(--muted)}
.btn{display:inline-block;background:var(--primary);color:var(--on-primary);font-weight:600;font-size:16px;padding:12px 20px;border-radius:12px;border:0;cursor:pointer;line-height:1.2;white-space:nowrap;font-family:var(--sans)}
.btn:hover{background:var(--primary-hover);text-decoration:none}
.btn:active{background:var(--primary-hover)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--border);font-weight:500;padding:8px 14px;font-size:15px}
.btn.ghost:hover{background:var(--surface)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px}
.grid{display:grid;gap:14px;margin-top:28px}
.pill{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.02em;padding:2px 9px;border-radius:9999px;vertical-align:middle;white-space:nowrap}
.pill.warn{background:var(--pill-bg);color:var(--warn)}
.pill.pop{background:var(--pill-bg);color:var(--primary-hover)}
.hidden{display:none!important}

/* nav */
nav{border-bottom:1px solid var(--border);background:var(--surface-raised);position:sticky;top:0;z-index:5}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.wordmark{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--ink)}
.wordmark .dot{color:var(--primary)}
.wordmark:hover{text-decoration:none}

/* hero */
.hero{padding:72px 0 64px;text-align:center;background:url(/assets/starfield-bg.webp) center bottom/cover no-repeat, var(--bg)}
.hero h1{max-width:760px;margin:0 auto}
.hero .sub{margin:20px auto 0;font-size:19px}
.hero .cta{margin-top:30px}
.hero .tiny{margin-top:12px}
.hero-art{margin:44px auto 0;max-width:820px}
.hero-art img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:18px}

/* three lines */
.lines{margin-top:18px;max-width:640px;font-size:20px;line-height:1.5}
.lines p+p{margin-top:8px}

/* plans */
.plan{position:relative;display:flex;flex-direction:column}
.plan.pro{border:1px solid var(--primary)}
.plan .name{font-weight:600;font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--sans)}
.plan .price{font-size:34px;font-weight:500;font-family:var(--serif);letter-spacing:-.01em;margin:6px 0 2px}
.plan .price span{font-size:15px;font-weight:400;font-family:var(--sans);color:var(--muted);letter-spacing:0}
.plan ul{list-style:none;padding:0;margin:16px 0 0;font-size:15px;color:var(--muted)}
.plan li{padding:6px 0;border-top:1px solid var(--border)}
.plan .for{margin-top:auto;padding-top:16px;font-size:15px}
.plan .pop{position:absolute;top:-11px;left:18px}
.credits{margin-top:20px;max-width:640px;color:var(--muted)}
.custom{margin-top:22px;color:var(--muted)}

/* slots */
.slots{margin-top:44px;padding-top:36px;border-top:1px solid var(--border)}
.slots h3{font-size:22px}
.slotrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;max-width:640px}
.slot{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 8px}
.slot .tier{font-size:14px;color:var(--muted)}
.slot .n{font-size:32px;font-weight:500;font-family:var(--serif);color:var(--primary);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.slot .n.zero{color:var(--muted)}
.slot .lbl{font-size:13px;color:var(--muted)}
.slots .note{margin-top:14px;max-width:560px}

/* community */
.tile{padding:18px}
.tile h3{font-size:16px}
.tile p{margin-top:6px;font-size:15px;color:var(--muted)}
.community-flex{display:grid;gap:20px;margin-top:24px;align-items:center}
.community-art{max-width:260px;margin:0 auto}
.community-art img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:18px}

/* waitlist */
form{margin-top:22px;display:flex;flex-direction:column;gap:10px;max-width:520px}
input[type=email]{font:inherit;font-family:var(--sans);padding:12px 14px;border:1px solid var(--border);border-radius:12px;width:100%;background:var(--bg);color:var(--ink)}
input[type=email]:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}
input[type=email]::placeholder{color:var(--muted)}
.err{color:#f87171;font-size:14px}
.done{margin-top:22px;padding:18px 20px;border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:12px;background:var(--surface);max-width:520px}

/* footer */
footer{padding:36px 0 48px;border-top:1px solid var(--border);font-size:14px;color:var(--muted);background:var(--bg)}
footer .row{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
footer .attrib{margin-top:24px;font-size:12.5px;color:var(--muted);line-height:1.5;max-width:640px}

@media (min-width:640px){
  form{flex-direction:row}
  form input[type=email]{flex:1}
}
@media (min-width:900px){
  section{padding:80px 0}
  h1{font-size:60px}
  h2{font-size:36px}
  .hero{padding:104px 0 88px}
  .how{grid-template-columns:repeat(3,1fr)}
  .plans{grid-template-columns:repeat(4,1fr);gap:16px}
  .tiles{grid-template-columns:repeat(3,1fr)}
  .community-flex{grid-template-columns:1fr 300px;gap:40px}
}
@media (prefers-reduced-motion:no-preference){
  .btn{transition:background .12s}
}

/* lesson pages */
.navlinks{display:flex;gap:18px;align-items:center;font-size:15px}
.navlinks a{color:var(--muted);white-space:nowrap}
.navlinks a:hover{color:var(--ink);text-decoration:none}
/* phones: the hero repeats "Get your agent", so the nav drops its button and tightens */
@media (max-width:639px){nav .wrap{gap:12px}nav .btn.ghost{display:none}.navlinks{gap:10px;font-size:14px}}
/* phones: five nav links do not fit beside the wordmark, so Blog drops out of the nav */
@media (max-width:479px){.navlinks a[href="/blog/"]{display:none}}
@media (max-width:379px){.wordmark{font-size:20px;gap:6px}.navlinks{gap:10px;font-size:13px}}
@media (max-width:339px){nav .wrap{gap:8px}.wordmark{font-size:18px}.navlinks{gap:8px;font-size:12px}}
.learn-head{padding:48px 0 0}
.lesson-list{margin-top:24px}
/* member home (/account/) */
.account-lessons{list-style:none;margin:6px 0 18px;padding:0}
.account-lessons:last-child{margin-bottom:0}
.account-lessons a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);color:var(--ink)}
.account-lessons li:last-child a{border-bottom:0}
.account-lessons a:hover{text-decoration:none;color:var(--primary)}
.account-box p{margin:0 0 12px}
.account-box p:last-child{margin:0}
.account-page section.module{padding:28px 0 0}
.account-page section.module+section.module{margin-top:0}
.account-page main{padding-bottom:56px}
section.module+section.module{margin-top:2.5rem}
section.module>h2{margin-bottom:1rem}
.lesson-card{display:block;color:var(--ink)}
.lesson-card:hover{border-color:var(--primary);text-decoration:none}
.lesson-card .small{margin-left:10px}
.lesson-card h3{margin-top:10px;font-size:22px}
.lesson{max-width:720px;padding:48px 0 64px}
.lesson-nav{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:14px}
.setup-banner{margin-top:18px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:12px;padding:12px 16px;font-size:15px}
.lesson h1{margin-top:18px}
.lesson .sub{margin-top:14px}
.lesson-body{margin-top:32px}
.lesson-body p,.lesson-body ul,.lesson-body ol,.lesson-body pre,.lesson-body table,.lesson-body blockquote{margin-top:18px}
.lesson-body h2{margin-top:36px;font-size:26px}
.lesson-body h3{margin-top:28px}
.lesson-body ul,.lesson-body ol{padding-left:24px}
.lesson-body li+li{margin-top:6px}
.lesson-body pre{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;overflow:auto;font-size:14px;line-height:1.5}
.lesson-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
.lesson-body p code,.lesson-body li code{background:var(--pill-bg);border-radius:6px;padding:1px 5px}
.lesson-body table{border-collapse:collapse;width:100%;font-size:15px}
.lesson-body th,.lesson-body td{border:1px solid var(--border);padding:8px 10px;text-align:left}
.lesson-body blockquote{border-left:3px solid var(--primary);padding-left:16px;color:var(--muted)}
.lesson-body a{text-decoration:underline}
.pill.kind{background:var(--pill-bg);color:var(--primary-hover);text-transform:uppercase;letter-spacing:.06em}
.agent-cta{margin-top:36px}
.agent-fallback{margin-top:18px;padding:18px 20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);max-width:520px}
.agent-fallback p{margin:0;font-size:15px;color:var(--muted)}
.agent-fallback code{color:var(--ink)}
.qr{margin-top:14px}
.qr svg{display:block;width:180px;height:180px;background:#fff;border-radius:8px;padding:6px}
footer .row a{color:var(--muted)}

/* flow pages */
.flow{max-width:720px;padding:48px 0 64px}
.flow .sub{margin-top:14px}
.flow-form{flex-direction:column;max-width:520px}
.flow-form input[type=email]{flex:none}
.flow-form .btn{align-self:flex-start}
.flow-note{margin-top:22px;padding:14px 18px;border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:12px;background:var(--surface);color:var(--ink);font-size:15px}
.tos{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--muted)}
.tos input{margin:3px 0 0}
.tos a{color:var(--primary-hover)}
.flow-fine{margin-top:24px}
.flow-block{margin-top:56px;padding-top:36px;border-top:1px solid var(--border)}
.flow-block h2{font-size:26px}
.flow-block .btn{margin-top:6px}
.setup-panel{margin-top:24px}
.setup-panel .btn{margin-top:18px}
.setup-panel .qr-hint{margin-top:12px}
.community-link{display:inline-block;margin-top:14px}
.cta .btn+.btn{margin-left:10px}
.trial-grid{grid-template-columns:1fr}
@media (min-width:640px){
  .trial-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:960px){
  .trial-grid{grid-template-columns:repeat(3,1fr)}
}
/* Cloudflare Turnstile widget inside the two forms. interaction-only appearance: the container
   stays empty (and collapsed) unless Cloudflare needs the visitor to click, then it gets an iframe. */
.cf-turnstile:empty{display:none}
.cf-turnstile{margin:0}

/* blog pages (rendered from Ghost by web/build_blog.py) */
.blog-tags{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.blog-tags:empty{display:none}
.blog-post .feature{display:block;width:100%;height:auto;margin-top:28px;border-radius:18px;border:1px solid var(--border)}
.lesson-body img{max-width:100%;height:auto;border-radius:12px}
.lesson-body figure{margin:24px 0 0}
.lesson-body figcaption{margin-top:8px;font-size:14px;color:var(--muted);text-align:center}
.lesson-body hr{border:0;border-top:1px solid var(--border);margin:32px 0}
/* course pages: agent set-up banner (web/ghost-theme default.hbs + assets/nudge.js) */
.nudge{background:var(--pill-bg);border-bottom:1px solid var(--border)}
.nudge .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding-top:12px;padding-bottom:12px;font-size:15px}
.nudge .btn{padding:8px 14px;font-size:15px}
.nudge[hidden]{display:none}
