:root{
  --ink:#1b2a41;
  --ink-soft:#4c5a72;
  --ink-faint:#7c879c;
  --paper:#f8f2e4;
  --paper-raised:#efe6d2;
  --paper-line:rgba(27,42,65,.17);
  --accent:#9c4221;
  --accent-soft:#c1673a;
  --accent-ink:#fff8ee;
  --success:#3f6b4f;
  --danger:#a13b3b;
  --band-bg:#1b2a41;
  --band-fg:#f8f2e4;
  --band-accent:#d9825a;
  --band-accent-ink:#1b120a;
  --font-serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Songti SC",serif;
  --font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono","Cascadia Code","Roboto Mono",Menlo,Consolas,monospace;
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#ece3d0;
    --ink-soft:#b9ad95;
    --ink-faint:#8a8067;
    --paper:#14181f;
    --paper-raised:#1c212b;
    --paper-line:rgba(236,227,208,.16);
    --accent:#e0975f;
    --accent-soft:#f0b483;
    --accent-ink:#1b120a;
    --success:#7fae8e;
    --danger:#d17a7a;
  }
}
*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  accent-color:var(--accent);
  transition:background .3s ease,color .3s ease;
}
img,svg{max-width:100%;display:block;}
a{color:var(--accent);}
h1,h2,h3{font-family:var(--font-serif);color:var(--ink);font-weight:600;line-height:1.14;margin:0;}
p{margin:0 0 1em;}
p:last-child{margin-bottom:0;}
::selection{background:var(--accent);color:var(--accent-ink);}
.skip-link{position:absolute;left:-999px;top:auto;background:var(--ink);color:var(--paper);padding:.75em 1.25em;z-index:100;border-radius:0 0 6px 0;}
.skip-link:focus{left:0;top:0;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}
.prose{max-width:62ch;}

/* ---------- header ---------- */
header.site{padding:34px 0 10px;}
.site-head-inner{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.wordmark{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:.01em;}
.wordmark em{font-style:italic;color:var(--accent);}
nav.site-nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
nav.site-nav a{color:var(--ink-soft);text-decoration:none;font-size:.95rem;border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .15s ease,color .15s ease;}
nav.site-nav a:hover{color:var(--ink);border-color:var(--accent);}
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--font-sans);font-size:.95rem;font-weight:600;
  padding:.68em 1.3em;border-radius:3px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);text-decoration:none;cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease;
  box-shadow:0 1px 0 var(--paper-line);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px -6px rgba(27,42,65,.55);}
.btn:active{transform:translateY(0);}
.btn:disabled{opacity:.6;cursor:progress;transform:none;}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.btn-accent:hover{background:var(--accent-soft);border-color:var(--accent-soft);}
.btn-block{width:100%;justify-content:center;padding:.85em 1.3em;font-size:1rem;}

/* ---------- hero ---------- */
.hero{padding:64px 0 40px;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;}
.eyebrow{
  font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.14em;
  font-size:.76rem;font-weight:700;color:var(--accent);margin:0 0 1.1em;
}
.eyebrow::before{content:"◆ ";}
h1{font-size:clamp(2.35rem,4.4vw + .6rem,3.4rem);letter-spacing:-.01em;}
.hero-sub{font-size:1.13rem;color:var(--ink-soft);margin:1.15em 0 0;max-width:46ch;}
.hero-anim{opacity:1;transform:none;}
@media (prefers-reduced-motion: no-preference){
  .hero-anim{animation:rise .8s cubic-bezier(.19,.79,.24,1) both;}
  .hero-anim:nth-child(1){animation-delay:.02s}
  .hero-anim:nth-child(2){animation-delay:.12s}
  .hero-anim:nth-child(3){animation-delay:.22s}
  .hero-anim:nth-child(4){animation-delay:.32s}
  @keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
}

.net-badge{
  display:inline-flex;align-items:center;gap:.6em;margin-top:1.6em;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;color:var(--ink-soft);
  border:1px solid var(--paper-line);border-radius:20px;padding:.45em 1em .45em .8em;
}
.net-dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none;position:relative;}
.net-dot::after{
  content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--success);opacity:.55;
}
@media (prefers-reduced-motion: no-preference){
  .net-dot::after{animation:ping 2.4s cubic-bezier(.2,.7,.3,1) infinite;}
  @keyframes ping{0%{transform:scale(.6);opacity:.65}75%{transform:scale(1.8);opacity:0}100%{opacity:0}}
}

/* ---------- waitlist form ---------- */
.card{background:var(--paper-raised);border:1px solid var(--paper-line);border-radius:6px;padding:28px 26px;}
.form-title{font-family:var(--font-serif);font-size:1.15rem;margin:0 0 .2em;}
.form-hint{color:var(--ink-faint);font-size:.88rem;margin:0 0 1.3em;}
.field{margin-bottom:1.15em;}
.field label.text-label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-soft);margin-bottom:.5em;text-transform:uppercase;letter-spacing:.06em;}
input[type=email]{
  width:100%;font:inherit;font-size:1rem;padding:.72em .85em;border-radius:4px;
  border:1px solid var(--paper-line);background:var(--paper);color:var(--ink);
}
input[type=email]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
fieldset{border:0;margin:0;padding:0;}
fieldset legend{font-size:.82rem;font-weight:600;color:var(--ink-soft);margin-bottom:.6em;padding:0;text-transform:uppercase;letter-spacing:.06em;}
.choices{display:flex;flex-wrap:wrap;gap:.5em;}
.choice{position:relative;}
.choice input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.choice label{
  display:inline-block;font-size:.88rem;padding:.5em .95em;border-radius:20px;
  border:1px solid var(--paper-line);color:var(--ink-soft);cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
  user-select:none;
}
.choice label:hover{border-color:var(--accent);color:var(--ink);}
.choice input:checked + label{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.choice input:focus-visible + label{outline:2px solid var(--accent);outline-offset:2px;}
.form-error{color:var(--danger);font-size:.86rem;margin:.9em 0 0;}
.form-success{
  display:flex;gap:.7em;align-items:flex-start;font-size:.98rem;color:var(--ink);
  background:var(--paper-raised);border:1px solid var(--paper-line);border-radius:6px;padding:24px 22px;
}
.form-success svg{flex:none;margin-top:.15em;color:var(--success);}
.fine-print{font-size:.8rem;color:var(--ink-faint);margin-top:1.1em;}

/* ---------- sections ---------- */
section{padding:76px 0;border-top:1px solid var(--paper-line);}
.hero,section.hero{border-top:none;}
.section-head{max-width:56ch;margin-bottom:44px;}
.section-head h2{font-size:clamp(1.7rem,2.6vw + .4rem,2.3rem);}
.section-head .eyebrow{margin-bottom:.8em;}
.section-lede{color:var(--ink-soft);font-size:1.05rem;margin-top:.7em;}

[data-reveal]{transition:opacity .6s ease,transform .6s ease;}
html.js [data-reveal]{opacity:0;transform:translateY(18px);}
html.js [data-reveal].is-visible{opacity:1;transform:none;}

/* ---------- interface preview ---------- */
.preview-figure{margin:0;}
.preview-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--paper-line);border-radius:8px;background:var(--paper-raised);}
.preview-scroll svg{width:820px;max-width:none;display:block;}
@media(min-width:900px){.preview-scroll svg{width:100%;}}
.preview-figure figcaption{
  margin-top:14px;font-size:.86rem;color:var(--ink-faint);font-style:italic;
  display:flex;justify-content:space-between;gap:1em;flex-wrap:wrap;
}
.mobile-only{display:none;}
@media(max-width:899px){.mobile-only{display:inline;}}
.pv-frame{fill:var(--paper);stroke:var(--paper-line);stroke-width:1.5;}
.pv-line{stroke:var(--paper-line);stroke-width:1.25;}
.pv-dot{fill:none;stroke:var(--ink-faint);stroke-width:1.25;}
.pv-title{font-family:var(--font-mono);font-size:12px;fill:var(--ink-soft);text-anchor:middle;}
.pv-badge{fill:none;stroke:var(--success);stroke-width:1.25;}
.pv-badge-text{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;fill:var(--success);}
.pv-badge-dot{fill:var(--success);}
.pv-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;fill:var(--ink-faint);}
.pv-bar{fill:var(--ink-faint);opacity:.32;}
.pv-bar-strong{fill:var(--ink-soft);opacity:.55;}
.pv-speaker{font-family:var(--font-mono);font-size:11px;fill:var(--ink-soft);font-weight:600;}
.pv-time{font-family:var(--font-mono);font-size:9.5px;fill:var(--ink-faint);}
.pv-highlight{fill:var(--accent);opacity:.16;}
.pv-tag{fill:var(--paper);stroke:var(--accent);stroke-width:1;}
.pv-tag-text{font-family:var(--font-mono);font-size:9.5px;fill:var(--accent);}
.pv-doc{fill:none;stroke:var(--ink-faint);stroke-width:1.1;}
.pv-active{fill:var(--accent);opacity:.09;}
.pv-active-edge{stroke:var(--accent);stroke-width:2;}
.pv-swatch-a{fill:var(--accent);}
.pv-swatch-b{fill:#7a8f6b;}
.pv-swatch-c{fill:#b8924a;}
.pv-swatch-d{fill:var(--ink-faint);}
.pv-count{font-family:var(--font-mono);font-size:10px;fill:var(--ink-faint);text-anchor:end;}

/* ---------- pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--paper-line);border:1px solid var(--paper-line);border-radius:8px;overflow:hidden;}
.pillar{background:var(--paper);padding:34px 30px;}
.pillar-num{font-family:var(--font-serif);font-style:italic;font-size:1.6rem;color:var(--accent);display:block;margin-bottom:.4em;}
.pillar h3{font-size:1.22rem;margin-bottom:.5em;}
.pillar p{color:var(--ink-soft);font-size:.97rem;}
@media(max-width:820px){.pillars{grid-template-columns:1fr;}}

/* ---------- workflow ---------- */
.workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.workflow::before{
  content:"";position:absolute;top:22px;left:6%;right:6%;height:1px;background:var(--paper-line);
}
.step{position:relative;padding-right:20px;}
.step-num{
  width:44px;height:44px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.05rem;
  color:var(--ink);position:relative;z-index:1;margin-bottom:18px;
}
.step h3{font-size:1.05rem;margin-bottom:.4em;}
.step p{color:var(--ink-soft);font-size:.92rem;}
@media(max-width:820px){
  .workflow{grid-template-columns:1fr 1fr;gap:32px 24px;}
  .workflow::before{display:none;}
}
@media(max-width:520px){.workflow{grid-template-columns:1fr;}}

/* ---------- compare table ---------- */
.compare-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.compare{width:100%;border-collapse:collapse;min-width:640px;font-size:.94rem;}
table.compare caption{text-align:left;caption-side:bottom;color:var(--ink-faint);font-size:.82rem;padding-top:16px;font-style:italic;}
table.compare th,table.compare td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--paper-line);vertical-align:top;}
table.compare thead th{
  font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;
  color:var(--ink-faint);font-weight:600;border-bottom:1px solid var(--ink);
}
table.compare thead th.col-sondera{color:var(--accent);}
table.compare tbody th{font-weight:600;color:var(--ink-soft);white-space:nowrap;font-size:.86rem;}
table.compare td.col-sondera,table.compare thead th.col-sondera{background:var(--paper-raised);}
table.compare td{color:var(--ink-soft);font-family:var(--font-mono);font-size:.85rem;line-height:1.5;}
table.compare td.col-sondera{color:var(--ink);font-weight:600;}
.mobile-hint{display:none;color:var(--ink-faint);font-size:.82rem;margin-bottom:10px;}
@media(max-width:700px){.mobile-hint{display:block;}}

/* ---------- faq ---------- */
.faq-list{max-width:74ch;}
.faq-item{border-bottom:1px solid var(--paper-line);}
.faq-item summary{
  cursor:pointer;list-style:none;padding:20px 0;font-family:var(--font-serif);font-size:1.08rem;
  display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .chev{flex:none;transition:transform .25s ease;color:var(--accent);}
.faq-item[open] summary .chev{transform:rotate(135deg);}
.faq-item .faq-a{padding:0 0 22px;color:var(--ink-soft);max-width:66ch;}
.faq-item .faq-a p{margin-bottom:.9em;}

/* ---------- final cta ---------- */
/* Deliberately theme-invariant: this band is always a dark ink island (uses
   --band-bg/--band-fg, not --ink/--paper, which swap meaning in dark mode). */
.final-cta{background:var(--band-bg);color:var(--band-fg);border-radius:10px;padding:56px 48px;}
.final-cta h2{color:var(--band-fg);}
.final-cta .section-lede{color:rgba(248,242,228,.72);}
.final-cta .eyebrow{color:var(--accent-soft);}
.final-grid{display:grid;grid-template-columns:1fr .95fr;gap:48px;align-items:start;}
.final-cta .card{background:rgba(248,242,228,.06);border-color:rgba(248,242,228,.18);}
.final-cta input[type=email]{background:rgba(248,242,228,.08);border-color:rgba(248,242,228,.22);color:var(--band-fg);}
.final-cta .choice label{border-color:rgba(248,242,228,.22);color:rgba(248,242,228,.72);}
.final-cta .choice input:checked + label{background:var(--band-accent);border-color:var(--band-accent);color:var(--band-accent-ink);}
.final-cta .form-hint{color:rgba(248,242,228,.5);}
.final-cta fieldset legend,.final-cta .field label.text-label{color:rgba(248,242,228,.6);}
.final-cta .fine-print{color:rgba(248,242,228,.45);}
.final-cta .btn-accent{background:var(--band-accent);border-color:var(--band-accent);color:var(--band-accent-ink);}
.final-cta .btn-accent:hover{background:#e3956e;border-color:#e3956e;}
.final-cta .form-success{background:rgba(248,242,228,.07);border-color:rgba(248,242,228,.2);color:var(--band-fg);}
@media(max-width:820px){.final-grid{grid-template-columns:1fr;}.final-cta{padding:40px 24px;}}

/* ---------- footer ---------- */
footer.site{padding:56px 0 44px;}
.etymology{
  font-family:var(--font-serif);font-size:.98rem;color:var(--ink-soft);max-width:60ch;
  padding:20px 0;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);margin-bottom:28px;
}
.etymology .headword{color:var(--ink);font-weight:600;}
.etymology .ipa{font-style:normal;color:var(--ink-faint);}
.etymology .pos{font-style:italic;}
.footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-size:.86rem;color:var(--ink-faint);}
.footer-row a{color:var(--ink-faint);}
.footer-row a:hover{color:var(--accent);}

@media(max-width:640px){
  body{font-size:16px;}
  .hero{padding:40px 0 28px;}
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  section{padding:52px 0;}
  .site-head-inner{gap:14px;}
  nav.site-nav{gap:16px;width:100%;order:3;}
  nav.site-nav a{font-size:.88rem;}
  .card{padding:22px 18px;}
}

/* ---------- blog: index listing ---------- */
.blog-hero{padding:56px 0 8px;}
.blog-list{display:flex;flex-direction:column;gap:0;}
.blog-card{display:block;text-decoration:none;color:inherit;padding:30px 0;border-bottom:1px solid var(--paper-line);}
.blog-card:first-child{padding-top:0;}
.blog-card:hover .blog-card-title{color:var(--accent);}
.blog-card-meta{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:.6em;}
.blog-card-title{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;color:var(--ink);margin:0 0 .35em;transition:color .15s ease;}
.blog-card-dek{color:var(--ink-soft);font-size:.98rem;max-width:66ch;}

/* ---------- blog: article ---------- */
.article-header{padding:56px 0 20px;}
.article-eyebrow-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:1.2em;}
.article-header h1{font-size:clamp(2rem,3.6vw + .5rem,2.9rem);letter-spacing:-.01em;}
.article-dek{font-size:1.1rem;color:var(--ink-soft);margin:.9em 0 0;max-width:62ch;}
.article-meta{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);margin-top:1.4em;letter-spacing:.02em;}
article.post{padding:8px 0 20px;}
article.post .prose{max-width:68ch;}
article.post h2{font-size:1.5rem;margin:1.6em 0 .55em;}
article.post h2:first-child{margin-top:0;}
article.post h3{font-size:1.15rem;margin:1.4em 0 .5em;}
article.post p{color:var(--ink-soft);font-size:1.03rem;margin-bottom:1.15em;}
article.post p strong{color:var(--ink);}
article.post ul,article.post ol{color:var(--ink-soft);font-size:1.03rem;max-width:68ch;padding-left:1.3em;margin:0 0 1.3em;}
article.post li{margin-bottom:.55em;}
article.post li::marker{color:var(--accent);}
article.post blockquote{
  margin:1.8em 0;padding:.2em 0 .2em 1.3em;border-left:3px solid var(--accent);
  font-style:italic;color:var(--ink-soft);max-width:64ch;
}
article.post blockquote cite{display:block;margin-top:.6em;font-style:normal;font-size:.85rem;color:var(--ink-faint);}
article.post a{text-decoration-color:var(--paper-line);text-underline-offset:2px;}
.article-cta{
  margin:52px 0 0;padding:32px 28px;background:var(--paper-raised);border:1px solid var(--paper-line);
  border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
}
.article-cta p{margin:0;font-family:var(--font-serif);font-size:1.1rem;color:var(--ink);}
.article-cta p.small{font-family:var(--font-sans);font-size:.88rem;color:var(--ink-faint);margin-top:.3em;}
.related-posts{margin-top:20px;}
.related-posts h2{font-size:1.15rem;margin-bottom:1em;}
.related-posts ul{list-style:none;padding:0;margin:0;display:grid;gap:.7em;}
.related-posts a{font-family:var(--font-serif);font-size:1.02rem;}
