/* PassOperator. See DESIGN.md for the system behind these tokens. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/archivo-latin-wght-normal.woff2) format("woff2")}

:root{
  --paper:#f8f6f4;--paper-2:#f1eeea;--surface:#fefdfc;
  --ink:#1f1915;--ink-2:#534b46;--muted:#69625d;
  --line:#dbd7d2;--line-2:#c2bdb7;
  --accent:#ad4216;--accent-hover:#992f00;--accent-text:#9c3200;--accent-tint:#fee5db;--on-accent:#fefdfc;
  --grid-line:rgba(31,25,21,.07);
  --gutter:clamp(1rem,4vw,2.5rem);
  --section:clamp(3.5rem,7vw,6.5rem);
  --ease:cubic-bezier(.22,1,.36,1);
  --font:"Archivo","Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#1a1512;--paper-2:#231e1b;--surface:#221d19;
  --ink:#ebe7e2;--ink-2:#d2ccc5;--muted:#b0aaa3;
  --line:#393430;--line-2:#514c48;
  --accent:#f28c5c;--accent-hover:#ffa275;--accent-text:#fc9b6f;--accent-tint:#3f271d;--on-accent:#1f1915;
  --grid-line:rgba(235,231,226,.07);
  color-scheme:dark;
}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--font);font-feature-settings:"kern"}
h1,h2,h3{margin:0;font-weight:700;line-height:1.1;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(2rem,1.5rem + 2vw,3rem);line-height:1.08;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,1.25rem + 1.1vw,2rem);font-weight:650}
h3{font-size:1.1875rem;font-weight:600;line-height:1.3}
p{margin:0}
p + p{margin-top:1em}
a{color:var(--accent-text);text-decoration-thickness:1px;text-underline-offset:.15em;transition:color .16s var(--ease)}
a:hover{color:var(--ink)}
strong{font-weight:650}
ul,ol{margin:0;padding-left:1.25em}
li + li{margin-top:.45em}
pre{font:inherit;margin:0;white-space:pre-wrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
::selection{background:var(--accent-tint);color:var(--ink)}

.wrap{max-width:1120px;margin:0 auto;padding:0 var(--gutter)}
.prose{max-width:66ch}
.lead{font-size:1.25rem;line-height:1.5;color:var(--ink-2);max-width:60ch;margin-top:1.25rem}
.micro{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fine,.note,.crumb{font-size:.875rem;color:var(--muted);line-height:1.5}
.num{font-variant-numeric:tabular-nums}

/* Skip link */
.skip{position:absolute;left:var(--gutter);top:-100px;background:var(--ink);color:var(--paper);padding:.5rem .75rem;border-radius:4px;font-weight:600;z-index:3}
.skip:focus{top:.75rem}

/* Header */
.top{border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;min-height:4rem;flex-wrap:wrap;padding-top:.75rem;padding-bottom:.75rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font-weight:700;font-size:1.125rem;letter-spacing:-.01em}
.brand svg{width:1.625rem;height:1.625rem;flex:none}
.brand .needle{stroke:var(--accent)}
.top nav{display:flex;gap:.25rem 1.5rem;flex-wrap:wrap;font-size:.9375rem;font-weight:500}
.top nav a{color:var(--ink-2);text-decoration:none;padding:.25rem 0;border-bottom:1.5px solid transparent;transition:border-color .16s var(--ease),color .16s var(--ease)}
.top nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}

main{display:block}
section{margin-top:var(--section)}
main > :first-child{margin-top:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.7rem 1.25rem;background:var(--accent);color:var(--on-accent);border:1.5px solid var(--accent);border-radius:4px;font:600 1rem/1.2 var(--font);text-decoration:none;cursor:pointer;transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),transform .12s var(--ease)}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* Hero */
.hero{position:relative;padding:clamp(2.5rem,6vw,5rem) 0 clamp(2rem,5vw,3.5rem);display:grid;gap:2.5rem;align-items:start}
.hero::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:32px 32px;background-position:-1px -1px;
  -webkit-mask-image:linear-gradient(180deg,#000 20%,transparent 100%);mask-image:linear-gradient(180deg,#000 20%,transparent 100%)}
.hero h1{font-size:clamp(2.5rem,1.6rem + 3.6vw,4.25rem);line-height:1.02;letter-spacing:-.025em;max-width:14ch}
.hero .lead{font-size:clamp(1.125rem,1rem + .5vw,1.3125rem)}
@media (min-width:900px){
  .hero{grid-template-columns:7fr 5fr;gap:3rem 4rem;align-items:center}
}

/* Specimen: a page from the product, built from real calculator data */
.specimen{margin:0;background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:1.25rem 1.25rem 1.375rem;box-shadow:0 1px 0 var(--line),0 24px 48px -32px rgba(31,25,21,.35);max-width:30rem}
@media (prefers-color-scheme:dark){.specimen{box-shadow:0 1px 0 var(--line),0 24px 48px -32px rgba(0,0,0,.8)}}
.specimen figcaption{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding-bottom:.75rem;border-bottom:1px solid var(--line);margin-bottom:.9rem}
.specimen figcaption strong{font-size:.9375rem;font-weight:650;color:var(--ink)}
.specimen .q{font-size:.9375rem;line-height:1.5;color:var(--ink-2)}
.specimen svg{display:block;width:100%;height:auto;margin:.9rem 0;color:var(--ink-2)}
.specimen ol{list-style:none;padding:0;margin:0;font-size:.9375rem;counter-reset:s}
.specimen ol li{display:grid;grid-template-columns:1.5rem 1fr;gap:.5rem;padding:.45rem 0;border-top:1px solid var(--line);margin:0;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.specimen ol li::before{counter-increment:s;content:counter(s);font-size:.75rem;font-weight:600;color:var(--muted);line-height:1.8}
.specimen .ans{margin-top:.8rem;padding:.6rem .8rem;background:var(--accent-tint);border-radius:4px;display:flex;justify-content:space-between;gap:1rem;align-items:baseline;font-weight:650;font-variant-numeric:tabular-nums}
.specimen .ans span{font-weight:500;font-size:.875rem;color:var(--muted)}
.specimen .ans b{font-size:1.25rem;color:var(--accent-text)}

/* Pull figure next to the prose that cites it */
.figure{display:grid;gap:1.5rem 3rem}
.figure .big{font-size:clamp(4rem,3rem + 5vw,6.5rem);font-weight:700;letter-spacing:-.04em;line-height:.95;color:var(--ink);font-variant-numeric:tabular-nums}
.figure .cap{margin-top:.75rem;max-width:26ch}
.figure h2{margin-bottom:1.25rem}
.figure p{color:var(--ink-2)}
@media (min-width:820px){.figure{grid-template-columns:4fr 8fr;align-items:start}.figure .side{padding-top:.4rem}}

/* Ruled rows (benefits, calculators) */
.rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--line);counter-reset:r}
.rows li{margin:0;display:grid;grid-template-columns:2.75rem 1fr;gap:.25rem 1rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.rows li::before{counter-increment:r;content:counter(r,decimal-leading-zero);font-size:.8125rem;font-weight:600;color:var(--accent-text);font-variant-numeric:tabular-nums;padding-top:.3rem}
.rows h3{grid-column:2}
.rows p{grid-column:2;color:var(--ink-2);max-width:60ch}
@media (min-width:820px){
  .rows li{grid-template-columns:4rem 16rem 1fr;gap:1rem 2rem;padding:1.75rem 0}
  .rows h3,.rows p{grid-column:auto}
}

/* Pre-order panel */
.price{background:var(--surface);border:1.5px solid var(--ink);border-radius:6px;padding:clamp(1.5rem,4vw,2.5rem);display:grid;gap:2rem}
.price h2 .amount{display:block;font-size:clamp(2.75rem,2rem + 3vw,4rem);letter-spacing:-.03em;line-height:1;margin-top:.35rem;font-weight:700;font-variant-numeric:tabular-nums}
.price .sub{color:var(--ink-2);margin-top:1rem;max-width:52ch}
.price ul{margin-top:1.5rem;padding:0;list-style:none;border-top:1px solid var(--line)}
.price li{margin:0;padding:.75rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.25rem 1fr;gap:.6rem;color:var(--ink)}
.price li::before{content:"";width:.55rem;height:.55rem;margin-top:.5rem;border:1.5px solid var(--accent);border-radius:50%}
.price .terms{background:var(--paper-2);border-radius:4px;padding:1.25rem 1.375rem;color:var(--ink-2)}
.price .terms strong{color:var(--ink)}
.price .btn{margin-top:1.25rem;width:100%}
@media (min-width:820px){.price{grid-template-columns:7fr 5fr;gap:2rem 3rem;align-items:start}.price .btn{width:auto}}

/* Sign-up */
.signup{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:clamp(1.5rem,4vw,2.5rem);display:grid;gap:1.5rem 3rem}
.signup .intro p{margin-top:.9rem;color:var(--ink-2);max-width:40ch}
.signup .fields{display:grid;gap:1rem}
.signup .btn{width:100%;margin-top:.25rem}
.signup .fine{margin-top:.25rem}
.msg{font-weight:600;min-height:1.6em;color:var(--accent-text)}
.msg:empty{display:none}
@media (min-width:820px){.signup{grid-template-columns:5fr 7fr}}

label{display:block;font-weight:600;font-size:.9375rem;line-height:1.3}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:520px){.row{grid-template-columns:1fr}}
input,select{display:block;width:100%;margin-top:.4rem;min-height:3rem;padding:.65rem .8rem;font:inherit;font-size:1.0625rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:4px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}
input:hover,select:hover{border-color:var(--muted)}
input:focus-visible,select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
select{appearance:none;-webkit-appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%2369625d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center}
.hp{position:absolute;left:-9999px}
.unit{font-weight:400;color:var(--muted)}

/* FAQ */
.faq h2{margin-bottom:1rem}
.faq .qa{display:grid;gap:.5rem 3rem;padding:1.5rem 0;border-top:1px solid var(--line)}
.faq .qa:last-child{border-bottom:1px solid var(--line)}
.faq .qa p{color:var(--ink-2);max-width:62ch}
@media (min-width:820px){.faq .qa{grid-template-columns:1fr 2fr}}

/* Page header for inner pages */
.pagehead{padding-top:clamp(2rem,4vw,3.5rem)}
.pagehead .crumb{margin-bottom:1rem}
.pagehead .crumb a{color:var(--muted)}
.pagehead .crumb a:hover{color:var(--ink)}

/* Equation block */
.formula{position:relative;margin-top:1.75rem;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:1.25rem 4rem 1.25rem 1.5rem;font-size:1.125rem;font-weight:500;line-height:1.6;font-variant-numeric:tabular-nums;max-width:62ch}
.formula::after{content:attr(data-eq);position:absolute;right:1.25rem;top:1.25rem;font-size:.8125rem;font-weight:600;color:var(--accent-text);font-variant-numeric:tabular-nums}
.formula[data-eq=""]::after{content:none}

/* Calculator page layout */
.calcpage{display:grid;gap:2.5rem;margin-top:2.5rem}
@media (min-width:900px){.calcpage{grid-template-columns:5fr 7fr;gap:2rem 4rem;align-items:start}.calcpage .calc{position:sticky;top:1.5rem}}
.calc{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:clamp(1.25rem,3vw,1.75rem)}
.calc .inputs{display:grid;gap:1rem}
@media (min-width:560px){.calc .inputs{grid-template-columns:1fr 1fr}}
.calc .inputs label{display:flex;flex-direction:column;gap:.4rem;font-size:.875rem}
.calc .inputs input{margin-top:auto}
.calc input{font-variant-numeric:tabular-nums}
.result{display:block;margin-top:1.25rem;padding:.9rem 1rem;background:var(--accent-tint);border-radius:4px;font-size:1.75rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--accent-text);font-variant-numeric:tabular-nums;text-wrap:balance}
.result:empty{display:none}
.steps{margin:1rem 0 0;padding:0;list-style:none;counter-reset:st;font-size:.9375rem;font-variant-numeric:tabular-nums}
.steps li{display:grid;grid-template-columns:1.5rem 1fr;gap:.5rem;padding:.5rem 0;border-top:1px solid var(--line);margin:0;color:var(--ink-2)}
.steps li::before{counter-increment:st;content:counter(st);font-size:.75rem;font-weight:600;color:var(--muted);line-height:1.9}
.steps:empty{display:none}
.calcpage .detail h2{margin-top:2.25rem}
.calcpage .detail h2:first-child{margin-top:0}
.calcpage .detail p,.calcpage .detail li{color:var(--ink-2)}
.calcpage .detail ul{margin-top:.9rem}
.calcpage .detail ol{margin:1rem 0 0;padding:0;list-style:none;counter-reset:wx;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line)}
.calcpage .detail ol li{display:grid;grid-template-columns:1.5rem 1fr;gap:.5rem;padding:.55rem 0;border-top:1px solid var(--line);margin:0}
.calcpage .detail ol li::before{counter-increment:wx;content:counter(wx);font-size:.75rem;font-weight:600;color:var(--muted);line-height:1.9}
.calcpage .detail .answer{margin-top:1rem;color:var(--ink)}
.calcpage .detail .note{margin-top:1rem}
.calcpage .detail > p{margin-top:.9rem}
.calcpage .detail h2 + p{margin-top:.75rem}

/* Calculator index */
.cards{list-style:none;padding:0;margin:2.5rem 0 0;border-top:1px solid var(--line);counter-reset:c;display:grid}
.cards li{margin:0;border-bottom:1px solid var(--line)}
.cards a{display:grid;grid-template-columns:2.75rem 1fr;gap:.2rem 1rem;padding:1.1rem 0;text-decoration:none;color:var(--ink);transition:background .16s var(--ease)}
.cards a::before{counter-increment:c;content:counter(c,decimal-leading-zero);font-size:.8125rem;font-weight:600;color:var(--accent-text);font-variant-numeric:tabular-nums;padding-top:.2rem;grid-row:span 2}
.cards strong{font-weight:650;font-size:1.0625rem}
.cards a:hover strong{color:var(--accent-text)}
.cards span{display:block;font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
@media (min-width:820px){.cards{grid-template-columns:1fr 1fr;column-gap:3rem}}

/* Formula sheet */
.sheet{width:100%;border-collapse:collapse;margin-top:1.5rem;font-variant-numeric:tabular-nums}
.sheet th,.sheet td{border-top:1px solid var(--line);padding:.75rem .75rem .75rem 0;text-align:left;vertical-align:top}
.sheet tr:last-child th,.sheet tr:last-child td{border-bottom:1px solid var(--line)}
.sheet th{width:30%;font-weight:650;padding-right:1.5rem}
.sheet td.n{width:2.5rem;font-size:.8125rem;font-weight:600;color:var(--accent-text);padding-top:.9rem}
.sheet th a{color:var(--ink);text-decoration:none}
.sheet th a:hover{color:var(--accent-text)}
.sheet td{color:var(--ink-2)}
.sheet pre{font-weight:500}
.sheet + h2{margin-top:2.5rem}
@media (max-width:520px){.sheet th{width:38%}}

/* Thanks / legal prose */
.prose h2{margin-top:2rem;font-size:1.375rem}
.prose h2 + p,.prose h2 + ul{margin-top:.6rem}
.prose ul{margin-top:.6rem}
.prose p,.prose li{color:var(--ink-2)}
.prose .fine{margin:.75rem 0 1.5rem}

/* Footer */
footer{margin-top:var(--section);border-top:1px solid var(--line);padding:2rem 0 3rem;font-size:.875rem;color:var(--muted)}
footer .wrap{display:grid;gap:1rem 3rem}
footer p{max-width:52ch}
footer a{color:var(--ink-2)}
footer .links{display:flex;gap:1.25rem;flex-wrap:wrap}
@media (min-width:820px){footer .wrap{grid-template-columns:1fr auto;align-items:start}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

@media print{
  @page{margin:12mm}
  :root{--paper:#fff;--paper-2:#fff;--surface:#fff;--ink:#000;--ink-2:#000;--muted:#333;--line:#999;--accent-text:#000}
  .top,footer,.signup,.skip,nav{display:none!important}
  body{font-size:11pt;line-height:1.4}
  .pagehead{padding-top:0}
  h1{font-size:18pt}h2{font-size:13pt}
  .lead{font-size:11pt;margin-top:.5rem}
  .sheet{margin-top:.75rem}
  .sheet th,.sheet td{padding:.3rem .4rem .3rem 0;border-top:1px solid #999;page-break-inside:avoid}
  .sheet th a{text-decoration:none;color:#000}
  a[href]::after{content:none}
}
