@font-face{font-family:'Sora';src:url('sora.woff2') format('woff2');font-weight:100 800;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('jbmono.woff2') format('woff2');font-weight:100 800;font-display:swap}

:root{
  /* Basepoint tokens — ink ground */
  --ink-000:#080808; --ink:#101010; --ink-100:#161616; --ink-150:#1C1C1C;
  --line:#2E2E2E; --line-strong:#3D3D3D;
  --fg:#F4F3F0; --fg-2:#D8D7D3; --fg-muted:#8F8F8F;
  --green:#39AA43; --green-700:#2B7F32;

  --s1:2px; --s2:4px; --s3:8px; --s4:12px; --s5:16px; --s6:24px;
  --s7:32px; --s8:48px; --s9:64px; --s10:96px; --s11:128px;

  --sans:'Sora',ui-sans-serif,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --measure:1120px;
  --ease:cubic-bezier(.2,0,0,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--ink);color:var(--fg);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{margin:0;text-wrap:pretty}
h1,h2,h3{margin:0;font-weight:300;letter-spacing:-.02em;text-wrap:balance}
ul,ol{margin:0;padding:0;list-style:none}

.wrap{max-width:calc(var(--measure) + 2*var(--s7));margin:0 auto;padding:0 var(--s5)}
@media(min-width:768px){.wrap{padding:0 var(--s7)}}

.label{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted)}
.label--accent{color:var(--green)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nums{font-family:var(--mono);font-variant-numeric:tabular-nums}
.strong{font-weight:400;color:var(--fg)}
.mt-5{margin-top:var(--s5)}

:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--ink);padding:var(--s4) var(--s5);font-family:var(--mono);font-size:13px;z-index:100}
.skip:focus{left:var(--s5);top:var(--s5)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:44px;padding:var(--s4) var(--s6);font-family:var(--mono);font-weight:400;font-size:13px;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;border-radius:2px;border:1px solid transparent;transition:background-color 120ms linear,border-color 120ms linear,color 120ms linear;cursor:pointer}
.btn--primary{background:var(--green);color:var(--ink)}
.btn--primary:hover{background:#4DC358}
.btn--secondary{border-color:var(--line-strong);color:var(--fg)}
.btn--secondary:hover{border-color:var(--fg-muted)}
.btn .arrow{transition:transform 120ms linear}
.btn:hover .arrow{transform:translateX(3px)}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(16,16,16,.96);border-bottom:1px solid var(--line)}
.header__row{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:block;width:136px;padding:var(--s3) 0}
.logo img{width:100%;height:auto}
@media(min-width:768px){.logo{width:152px}}
.nav{display:none}
.nav a{font-size:14px;text-decoration:none;color:var(--fg-muted);transition:color 120ms linear;padding:var(--s4) 0}
.nav a:hover{color:var(--fg)}
.header .btn{min-height:40px;padding:var(--s3) var(--s5);font-size:12px}
.header__cta{display:none}
.menu-btn{display:inline-flex;align-items:center;gap:var(--s3);min-height:44px;min-width:44px;padding:0 var(--s3);background:none;border:1px solid var(--line-strong);border-radius:2px;color:var(--fg);font-family:var(--mono);font-size:12px;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}
.mobile-nav{border-top:1px solid var(--line);padding:var(--s3) 0 var(--s6)}
.mobile-nav[hidden]{display:none}
.mobile-nav a:not(.btn){display:flex;justify-content:space-between;padding:var(--s5) 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:18px}
.mobile-nav .btn{width:100%;margin-top:var(--s6)}
@media(min-width:900px){
  .nav{display:flex;gap:var(--s7)}
  .header__cta{display:inline-flex}
  .menu-btn,.mobile-nav{display:none!important}
}

/* ---------- Section scaffolding ---------- */
.section{padding:var(--s10) 0;border-top:1px solid var(--line)}
@media(min-width:1024px){.section{padding:var(--s11) 0}}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--fg);margin-bottom:var(--s8)}
.h2{font-size:clamp(32px,5vw,48px);line-height:1.1;font-weight:200;max-width:18ch}
.lede{font-size:17px;color:var(--fg-muted);max-width:60ch;margin-top:var(--s6)}
@media(min-width:768px){.lede{font-size:18px}}

/* ---------- Hero ---------- */
.hero{padding:var(--s9) 0 var(--s10)}
@media(min-width:1024px){.hero{padding:var(--s10) 0 var(--s11)}}
.hero__grid{display:grid;gap:var(--s9)}
@media(min-width:1024px){.hero__grid{grid-template-columns:7fr 5fr;gap:var(--s8);align-items:end}}
.hero h1{font-weight:200;font-size:clamp(44px,6.2vw,72px);line-height:1.04;letter-spacing:-.02em;margin-top:var(--s6)}
.hero h1 .baseline{display:inline-block;border-bottom:2px solid var(--green);padding-bottom:.02em}
.hero__copy{font-size:18px;color:var(--fg-muted);max-width:46ch;margin-top:var(--s7)}
@media(min-width:768px){.hero__copy{font-size:19px}}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s8)}
@media(max-width:479px){.hero__actions .btn{flex:1 1 100%}}
.hero__count{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line);font-family:var(--mono);font-size:13px;color:var(--fg-muted)}
.hero__count .ring{width:14px;height:14px;flex:none}
.hero__count b{font-weight:400;color:var(--fg)}

/* Queue board — the one product moment */
.board{margin:0;background:var(--ink-000);border:1px solid var(--line)}
.board__top{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s5) var(--s5);border-bottom:1px solid var(--line)}
@media(min-width:768px){.board__top{padding:var(--s5) var(--s6)}}
.board__top .label{font-size:11px}
.live{display:inline-flex;align-items:center;gap:var(--s3);font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--green)}
.live svg{width:10px;height:10px}
.board table{width:100%;border-collapse:collapse;font-size:14px}
.board th{text-align:left;font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}
.board td{padding:var(--s5);border-bottom:1px solid var(--line);color:var(--fg-2);white-space:nowrap}
@media(min-width:768px){.board th,.board td{padding-left:var(--s6);padding-right:var(--s6)}}
.board tr:last-child td{border-bottom:0}
.board .r{text-align:right}
.board .task{color:var(--fg-muted)}
.st{font-family:var(--mono);font-size:12px;letter-spacing:.02em;transition:color 180ms var(--ease)}
.st--done{color:var(--green)}
.st--work{color:var(--fg)}
.st--wait{color:var(--fg-muted)}
.board__foot{display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s5);border-top:1px solid var(--line);background:var(--ink-100)}
@media(min-width:768px){.board__foot{padding:var(--s4) var(--s6)}}
.board__foot .label{font-size:11px}
@media(max-width:479px){.board .col-task{display:none}}

.js .board tbody tr{opacity:0;transform:translateY(6px)}
.js .board.is-in tbody tr{opacity:1;transform:none;transition:opacity 180ms var(--ease),transform 180ms var(--ease)}
.js .board.is-in tbody tr:nth-child(2){transition-delay:60ms}
.js .board.is-in tbody tr:nth-child(3){transition-delay:120ms}
.js .board.is-in tbody tr:nth-child(n+4){transition-delay:120ms}

/* ---------- Services ---------- */
.services{display:grid;gap:0;margin-top:var(--s9)}
.service{display:grid;gap:var(--s6);padding:var(--s8) 0;border-bottom:1px solid var(--line)}
.service:first-child{padding-top:0}
@media(min-width:900px){
  .service{grid-template-columns:4fr 5fr 3fr;gap:var(--s8)}
}
.service h3{font-size:28px;line-height:1.15;font-weight:300}
@media(min-width:768px){.service h3{font-size:32px}}
.service__tag{margin-top:var(--s4)}
.service__desc{color:var(--fg-muted);font-size:17px;max-width:48ch}
.service__desc .strong{color:var(--fg)}
.service__list li{font-family:var(--mono);font-size:13px;color:var(--fg-2);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.service__list li:first-child{border-top:1px solid var(--line)}
.service__list-head{margin-bottom:var(--s4)}
.split{display:grid;gap:0;margin-top:var(--s9);border:1px solid var(--line)}
@media(min-width:768px){.split{grid-template-columns:1fr 1fr}}
.split > div{padding:var(--s7) var(--s6)}
@media(min-width:768px){.split > div{padding:var(--s8) var(--s7)}}
.split > div + div{border-top:1px solid var(--line)}
@media(min-width:768px){.split > div + div{border-top:0;border-left:1px solid var(--line)}}
.split p:not(.label){font-size:22px;line-height:1.35;margin-top:var(--s4);max-width:26ch}
.split .you{background:var(--ink-100)}

/* ---------- How it works ---------- */
.steps{display:grid;gap:0;margin-top:var(--s9)}
@media(min-width:768px){.steps{grid-template-columns:repeat(2,1fr);column-gap:var(--s8)}}
@media(min-width:1100px){.steps{grid-template-columns:repeat(4,1fr);column-gap:var(--s6)}}
.step{padding:var(--s6) 0 var(--s8);border-top:1px solid var(--line-strong)}
.step__n{font-family:var(--mono);font-size:13px;color:var(--green)}
.step h3{font-size:22px;margin-top:var(--s5);line-height:1.2}
.step p{color:var(--fg-muted);margin-top:var(--s4);font-size:15px;max-width:34ch}
.about{display:grid;gap:var(--s9)}
@media(min-width:1024px){.about{grid-template-columns:7fr 5fr;gap:var(--s8);align-items:start}}
.about__story p{color:var(--fg-muted);font-size:18px;line-height:1.6;max-width:56ch;margin-top:var(--s6)}
.about__story p.strong{color:var(--fg)}
.people{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);max-width:480px}
.person{margin:0}
.person img,.person__placeholder{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line)}
.person__placeholder{display:grid;place-items:center;background:var(--ink-150);color:var(--line-strong)}
.person__placeholder svg{width:28%;height:auto}
.person figcaption{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s4);margin-top:var(--s4);border-top:1px solid var(--fg)}
.person figcaption .label{font-size:11px}
.person__name{font-size:15px;font-weight:400}
.person__bio{font-size:14px;line-height:1.5;color:var(--fg-muted);margin-top:var(--s3)}

/* ---------- Compare ---------- */
.compare{width:100%;border-collapse:collapse;margin-top:var(--s9);font-size:15px}
.compare th,.compare td{text-align:left;vertical-align:top;padding:var(--s5) var(--s5) var(--s5) 0;border-bottom:1px solid var(--line)}
.compare thead th{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);border-bottom:1px solid var(--fg)}
.compare thead td{border-bottom:1px solid var(--fg)}
.compare tbody th{font-weight:300;color:var(--fg);width:22%}
.compare td{color:var(--fg-muted);width:26%}
.compare .compare__us{color:var(--fg);background:var(--ink-100);padding-left:var(--s5)}
.compare thead .compare__us{color:var(--green);box-shadow:inset 0 2px 0 var(--green)}
@media(max-width:767px){
  .compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .compare,.compare tbody,.compare tr,.compare th,.compare td{display:block;width:auto}
  .compare tr{padding:var(--s6) 0;border-bottom:1px solid var(--line)}
  .compare tbody tr:first-child{border-top:1px solid var(--fg)}
  .compare th,.compare td{border:0;padding:0}
  .compare tbody th{width:auto;font-size:18px;margin-bottom:var(--s4)}
  .compare td{width:auto}
  .compare td{display:grid;grid-template-columns:112px 1fr;gap:var(--s4);padding:var(--s3) 0}
  .compare td::before{content:attr(data-label);font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);padding-top:3px}
  .compare td.compare__us{padding:var(--s3) var(--s4);margin-top:var(--s2);box-shadow:inset 2px 0 0 var(--green)}
  .compare td.compare__us::before{color:var(--green)}
}
.service--addon{background:var(--ink-100);padding:var(--s7) var(--s6);border-bottom:0;margin-top:var(--s8)}
@media(min-width:768px){.service--addon{padding:var(--s8) var(--s7)}}
.mt-3{margin-top:var(--s3)}

/* ---------- Guides ---------- */
.guides{display:grid;gap:0;margin-top:var(--s8);border-top:1px solid var(--line)}
.guide{display:grid;gap:var(--s4);padding:var(--s7) 0;border-bottom:1px solid var(--line);text-decoration:none}
@media(min-width:900px){.guide{grid-template-columns:3fr 6fr 3fr;align-items:baseline;gap:var(--s8)}}
.guide h3{font-size:24px;line-height:1.2;transition:color 120ms linear}
.guide p{color:var(--fg-muted);max-width:52ch}
.guide__meta{font-family:var(--mono);font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted)}
@media(min-width:900px){.guide__meta{text-align:right}}
a.guide:hover h3{color:var(--green)}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;gap:var(--s8)}
@media(min-width:1024px){.faq-grid{grid-template-columns:4fr 8fr}}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s5);min-height:44px;padding:var(--s6) 0;cursor:pointer;list-style:none;font-size:18px;font-weight:300}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:12px;height:12px;position:relative}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;background:var(--fg-muted);left:0;top:5.5px;width:12px;height:1px}
.faq summary .pm::after{left:5.5px;top:0;width:1px;height:12px;transition:opacity 120ms linear}
.faq details[open] summary .pm::after{opacity:0}
.faq summary:hover{color:var(--fg)}
.faq .answer{padding:0 0 var(--s6);color:var(--fg-muted);max-width:62ch}
.faq .answer p + p{margin-top:var(--s4)}

/* ---------- Book ---------- */
.book{background:var(--ink-000)}
.book__grid{display:grid;gap:var(--s8)}
@media(min-width:1024px){.book__grid{grid-template-columns:7fr 5fr;align-items:end}}
.book h2{font-size:clamp(40px,7vw,72px);line-height:1.04;font-weight:200;letter-spacing:-.02em;max-width:14ch}
.book__list li{display:grid;grid-template-columns:auto 1fr;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line);color:var(--fg-2);font-size:15px}
.book__list li:first-child{border-top:1px solid var(--line)}
.book__list .nums{color:var(--fg-muted);font-size:13px}
.book .btn{margin-top:var(--s7);width:100%}
@media(min-width:480px){.book .btn{width:auto}}

/* ---------- Footer ---------- */
.footer{padding:var(--s8) 0 var(--s9);border-top:1px solid var(--fg)}
.footer__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--s6)}
.footer__logo{width:152px;height:auto}
.footer__meta{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--fg-muted)}
.footer__meta a{text-decoration:none}
.footer__meta a:hover{color:var(--fg)}

/* ---------- Article (guides) ---------- */
.article-head{padding:var(--s9) 0 var(--s8);border-bottom:1px solid var(--line)}
@media(min-width:1024px){.article-head{padding:var(--s10) 0 var(--s9)}}
.crumb{display:inline-flex;gap:var(--s3);text-decoration:none}
.crumb:hover{color:var(--fg)}
.article-head h1{font-weight:200;font-size:clamp(40px,6vw,64px);line-height:1.06;letter-spacing:-.02em;margin-top:var(--s6);max-width:16ch}
.article-head .dek{font-size:19px;color:var(--fg-muted);max-width:52ch;margin-top:var(--s6)}
.article-meta{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);margin-top:var(--s7)}
.article{padding:var(--s9) 0 var(--s10)}
.prose{max-width:66ch}
.prose > * + *{margin-top:var(--s6)}
.prose p,.prose li{font-size:18px;line-height:1.7;color:var(--fg-2)}
.prose h2{font-size:clamp(26px,3.4vw,32px);line-height:1.2;font-weight:300;margin-top:var(--s9);padding-top:var(--s6);border-top:1px solid var(--line)}
.prose h2 + *{margin-top:var(--s5)}
.prose strong{font-weight:400;color:var(--fg)}
.prose ul,.prose ol{padding-left:0}
.prose ul li,.prose ol li{position:relative;padding-left:var(--s6)}
.prose ul li + li,.prose ol li + li{margin-top:var(--s3)}
.prose ul li::before{content:"";position:absolute;left:2px;top:.8em;width:10px;height:1px;background:var(--green)}
.prose ol{counter-reset:li}
.prose ol li{counter-increment:li}
.prose ol li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;top:.35em;font-family:var(--mono);font-size:12px;color:var(--green)}
.hours{width:100%;border-collapse:collapse;font-size:15px}
.hours th,.hours td{text-align:left;padding:var(--s4) var(--s4) var(--s4) 0;border-bottom:1px solid var(--line);vertical-align:top}
.hours thead th{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-muted);border-bottom:1px solid var(--fg)}
.hours td{color:var(--fg-2)}
.hours td.r,.hours th.r{text-align:right;padding-right:0;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.hours tfoot td{color:var(--fg);border-bottom:0;border-top:1px solid var(--fg)}
.callout{background:var(--ink-100);box-shadow:inset 2px 0 0 var(--green);padding:var(--s6) var(--s6)}
.callout .label{display:block;margin-bottom:var(--s3)}
.callout p{font-size:17px;color:var(--fg)}
.article-end{border-top:1px solid var(--fg);margin-top:var(--s10);padding-top:var(--s8);display:grid;gap:var(--s8)}
@media(min-width:900px){.article-end{grid-template-columns:7fr 5fr;align-items:end}}
.article-end h2{font-size:clamp(28px,4vw,40px);line-height:1.1;font-weight:200;max-width:18ch}
.article-end p{color:var(--fg-muted);margin-top:var(--s5);max-width:48ch}
.next{margin-top:var(--s10)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:1ms!important;transition-delay:0ms!important;animation:none!important}
  html{scroll-behavior:auto}
  .js .board tbody tr{transform:none}
}
