/* Kits For That: site stylesheet
   Type: Source Serif 4 for headings and documents, Public Sans for text.
   Both are SIL Open Font License and served from this site. */

@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-600-italic.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/public-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/public-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/public-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/public-sans-latin-700-normal.woff2) format("woff2")}

:root{
  --paper:#f6f3ec;
  --paper-2:#efeadf;
  --sheet:#fffefb;
  --ink:#1a2233;
  --text:#2b303a;
  --muted:#5b616d;
  --line:#d9d3c6;
  --line-soft:#e7e2d7;
  --rule:#1a2233;
  --accent:#7b2d26;
  --accent-ink:#5f211b;
  --accent-wash:#f4e9e5;
  --navy:#1f2b44;
  --ok:#2f5b45;
  --ok-wash:#e6efe8;
  --warn:#7a4f10;
  --warn-wash:#f6eedd;
  --gold:var(--accent);--green:var(--ok);--green-d:var(--ok);--red:var(--accent);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --radius:3px;
  --wrap:1120px;
  --measure:760px;
  --shadow-sheet:0 1px 0 rgba(26,34,51,.05),0 18px 40px -26px rgba(26,34,51,.35);
  --danger:#a12a1c;
  --danger-wash:#f8e9e6;
  /* type scale */
  --t-cap:.75rem;--t-small:.875rem;--t-ui:.9375rem;--t-body:1.0625rem;--t-lead:1.1875rem;--t-h4:1.25rem;--t-h3:1.5rem;
  /* spacing scale */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;
  --pad-card:var(--s-6);
  color-scheme:light;
}
@media(max-width:600px){:root{--pad-card:20px}}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:88px}
body{font-family:var(--sans);font-size:17px;line-height:1.62;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga"}
img,svg{display:block;max-width:100%}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--accent-ink);text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}
b,strong{font-weight:600;color:var(--ink)}
ul,ol{padding-left:1.25em}
li{margin:.35em 0}
::selection{background:#ead8d2}
[hidden]{display:none!important}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.i{width:1.1em;height:1.1em;display:inline-block;vertical-align:-.17em;flex:none}
.i-lg{width:1.5em;height:1.5em}
.i-arr{margin-left:.35em;width:1em;height:1em;vertical-align:-.12em}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.narrow>*{max-width:var(--measure)}
@media(max-width:600px){.wrap{padding:0 20px}}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:12px;color:#fff}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);font-weight:600;line-height:1.18;letter-spacing:-.012em;text-wrap:balance}
h1{font-size:clamp(2.05rem,4.2vw,3.05rem);line-height:1.08;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.4em}
h3{font-size:var(--t-h4);margin-bottom:.35em}
p+p{margin-top:.85em}
p,li,dd{text-wrap:pretty}
.sub,.lead{color:var(--muted);font-size:var(--t-lead);max-width:60ch}
.eyebrow{font-family:var(--serif);font-style:italic;font-weight:400;font-size:var(--t-body);letter-spacing:0;text-transform:none;color:var(--accent);margin-bottom:10px}
.muted{color:var(--muted)}
.small{font-size:var(--t-small)}
.fine{font-size:var(--t-small);color:var(--muted)}
.b{font-weight:600}
.mt-8{margin-top:8px}
.lk{color:inherit}
.lk-u{color:inherit;text-decoration:underline}
.cite{font-size:var(--t-small);color:var(--muted)}
.nums{font-variant-numeric:tabular-nums}
.span-all{grid-column:1/-1}
.block{display:block}
.pre{white-space:pre-wrap}

/* ---------- buttons and links ---------- */
.cta,button.cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#fff;font-family:var(--sans);font-weight:600;font-size:var(--t-body);line-height:1.2;padding:14px 22px;border-radius:var(--radius);border:1px solid var(--accent);text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.cta:hover,.btn:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff;text-decoration:none}
.cta:active{transform:translateY(1px)}
.cta .i{width:1.05em;height:1.05em}
.cta .i-arr{margin-left:0}
.btn-ghost,.cta.btn-ghost{background:transparent;color:var(--ink);border-color:#857c6d}
.cta:disabled,.cta[aria-busy=true]{background:#b9b09f;border-color:#b9b09f;color:#fff;cursor:not-allowed}
.btn-ghost:hover,.cta.btn-ghost:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.copy-btn,.printbtn,button:not([class]){font-family:var(--sans);font-size:var(--t-small);font-weight:600;color:var(--ink);background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius);padding:7px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.copy-btn:hover,.printbtn:hover,button:not([class]):hover{border-color:var(--ink)}
.linkish{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.linkish:hover{color:var(--accent-ink)}

/* ---------- header ---------- */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:68px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand:hover{color:var(--ink);text-decoration:none}
.brand .mark{width:30px;height:30px;color:var(--accent)}
.brand .wm{font-family:var(--serif);font-size:1.3rem;font-weight:600;letter-spacing:-.01em;line-height:1;white-space:nowrap}
.brand .wm i{font-style:italic;font-weight:400;color:var(--accent)}
.nav{display:flex;gap:28px;font-size:var(--t-ui);font-weight:500}
.nav a{color:var(--text);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.nav a[aria-current],.nav a.here{color:var(--ink);border-bottom-color:var(--accent)}
@media(max-width:820px){.nav .opt{display:none}.nav{gap:20px}}
.nav-menu{display:none;position:relative}
.nav-menu>summary{list-style:none;cursor:pointer;font:500 var(--t-ui) var(--sans);color:var(--ink);padding:6px 2px;border-bottom:1px solid transparent;display:block}
.nav-menu>summary::-webkit-details-marker{display:none}
.nav-menu[open]>summary{border-bottom-color:var(--accent)}
.nav-panel{position:absolute;right:0;top:calc(100% + 16px);width:280px;background:var(--sheet);border:1px solid var(--line);box-shadow:var(--shadow-sheet);padding:4px 20px;z-index:30}
.nav .nav-panel a{display:block;padding:13px 0;border-bottom:1px solid var(--line-soft);color:var(--ink);font-size:var(--t-body)}
.nav .nav-panel a:last-child{border-bottom:0}
@media(max-width:820px){.nav-menu{display:block}}
@media(max-width:600px){
  .site-header .wrap{min-height:58px}
  .nav>a{display:none}
  .nav-panel{position:fixed;left:0;right:0;top:58px;width:auto;border-width:0 0 1px}
}
@media(max-width:400px){.brand .wm{font-size:var(--t-h4)}.nav{gap:14px;font-size:var(--t-small)}}

/* ---------- breadcrumbs ---------- */
.crumbs{font-size:var(--t-small);color:var(--muted);margin-bottom:26px}
.crumbs ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:0}
.crumbs li{margin:0}
.crumbs li+li::before{content:"/";content:"/" / "";margin:0 .6em;color:#a59d8f}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* ---------- shared lists ---------- */
.terms{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:6px 0;font-size:var(--t-ui);color:var(--muted)}
.terms li{margin:0;display:flex;align-items:center}
.terms li:not(:last-child)::after{content:"";width:3px;height:3px;border-radius:50%;background:#a59d8f;margin:0 12px}
.guarantee{margin-top:8px;font-size:var(--t-ui);color:var(--muted)}
.guarantee a{color:var(--muted)}
.guarantee a:hover{color:var(--ink)}
.link-list{list-style:none;padding:0;border-top:1px solid var(--line)}
.link-list li{margin:0;border-bottom:1px solid var(--line)}
.link-list a{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;text-decoration:none;color:var(--ink);font-size:var(--t-ui)}
.link-list a:hover .ll-name{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}
.ll-meta{font-size:var(--t-small);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.side-h{font-family:var(--sans);font-size:var(--t-cap);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px 56px;align-items:end;margin-bottom:40px}
.sec-head h2{margin:0}
.sec-head p{color:var(--muted);max-width:56ch}
@media(max-width:820px){.sec-head{grid-template-columns:1fr;margin-bottom:28px}}

/* ---------- sections ---------- */
section{padding:72px 0}
@media(max-width:700px){section{padding:52px 0}}

/* ---------- home ---------- */
.h-hero{padding:72px 0 80px;border-bottom:1px solid var(--line)}
.h-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:72px;align-items:center}
.h-hero h1{font-size:clamp(2.6rem,6vw,4.4rem);letter-spacing:-.03em;margin-bottom:22px}
.h-hero .sub{font-size:var(--t-lead);color:var(--text)}
.h-sample{margin:0}
.sheet{background:var(--sheet);border:1px solid var(--line);box-shadow:var(--shadow-sheet);position:relative}
.h-sample .sheet{padding:0 0 4px;transform:none}
.sheet-meta{display:flex;justify-content:space-between;gap:12px;font-size:var(--t-cap);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:14px 26px;border-bottom:1px solid var(--line-soft)}
.h-sample .letter-body{font-size:var(--t-ui);line-height:1.62;padding:24px 30px 0;max-height:440px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.h-sample figcaption{font-size:var(--t-small);color:var(--muted);margin-top:14px;max-width:52ch}
@media(max-width:900px){.h-hero-grid{grid-template-columns:1fr;gap:44px}.h-hero{padding:48px 0 56px}.h-sample .letter-body{max-height:300px}}

.h-index{background:var(--paper)}
.index-grid{columns:2;column-gap:56px}
.index-group{break-inside:avoid;margin-bottom:44px}
@media(max-width:820px){.index-grid{columns:1}.index-group{margin-bottom:36px}}
.index-group h3{font-family:var(--sans);font-size:var(--t-cap);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-top:2px solid var(--rule);padding-top:12px;margin:0}
.index-list{list-style:none;padding:0}
.index-list li{margin:0;border-bottom:1px solid var(--line)}
.index-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"sit price" "prod price";gap:2px 18px;padding:14px 4px 13px 0;text-decoration:none;color:var(--ink)}
.ix-sit{grid-area:sit;font-family:var(--serif);font-size:var(--t-lead);line-height:1.35}
.ix-prod{grid-area:prod;font-size:var(--t-small);color:var(--muted)}
.ix-price{grid-area:price;align-self:center;font-family:var(--serif);font-size:var(--t-body);color:var(--ink);font-variant-numeric:tabular-nums}
.index-list a:hover .ix-sit{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

.h-how{background:var(--sheet);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.how{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;counter-reset:how}
.how li{margin:0;counter-increment:how;border-top:1px solid var(--rule);padding-top:18px}
.how li::before{content:counter(how) ".";font:italic 400 var(--t-lead) var(--serif);color:var(--muted);margin-right:6px}
.how h3{display:inline}
.how p{color:var(--muted);font-size:var(--t-body)}
.how-note{margin-top:40px;font-size:var(--t-ui);color:var(--muted)}
@media(max-width:820px){.how{grid-template-columns:1fr;gap:28px}}

.tool-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.tool-list li{margin:0;border-top:1px solid var(--line)}
.tool-list a{display:block;padding:16px 0 18px;text-decoration:none}
.tl-name{display:block;font-family:var(--serif);font-size:var(--t-lead);font-weight:600;color:var(--ink);margin-bottom:3px}
.tl-desc{display:block;font-size:var(--t-small);color:var(--muted)}
.tool-list a:hover .tl-name{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
@media(max-width:900px){.tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tool-list{grid-template-columns:1fr}}

.h-about{background:var(--paper-2);border-top:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px 56px}
.about-grid .prose{max-width:62ch;font-size:var(--t-body)}
.sig{font-family:var(--serif);font-size:var(--t-h4);color:var(--ink);margin-top:1.4em!important}
.sig span{display:block;font-family:var(--sans);font-size:var(--t-small);color:var(--muted);margin-top:2px}
@media(max-width:820px){.about-grid{grid-template-columns:1fr}}

.h-faq{border-top:1px solid var(--line)}
.h-faq h2{margin-bottom:24px}
details:not(.nav-menu){border-top:1px solid var(--line)}
details:not(.nav-menu):last-of-type{border-bottom:1px solid var(--line)}
details:not(.nav-menu)>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;font-family:var(--serif);font-size:var(--t-h4);font-weight:600;color:var(--ink)}
summary::-webkit-details-marker{display:none}
details:not(.nav-menu)>summary::after{content:"";width:14px;height:14px;flex:none;align-self:center;background:var(--ink);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v16M4 12h16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v16M4 12h16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .15s}
details[open]:not(.nav-menu)>summary::after{transform:rotate(45deg)}
details:not(.nav-menu)>summary:hover{color:var(--accent)}
details p{padding:0 0 20px;max-width:64ch;color:var(--text)}

/* ---------- product pages ---------- */
.p-hero{padding:40px 0 64px;border-bottom:1px solid var(--line)}
.p-hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr);gap:64px;align-items:start}
.p-hero h1{font-size:clamp(2rem,3.8vw,2.85rem);max-width:none;margin-bottom:18px}
.p-hero .sub{font-size:var(--t-lead);color:var(--text)}
.p-hero .for{margin-top:14px;font-size:var(--t-ui);color:var(--muted)}
.hero-restore{margin-top:18px;font-size:var(--t-ui);color:var(--muted)}
.hero-restore a,.hero-restore button{font-weight:600}
.p-plan{background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--accent);padding:24px 26px 22px;box-shadow:var(--shadow-sheet)}
.p-plan h2{font:600 var(--t-ui) var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:6px}
.plan{list-style:none;padding:0;margin:0}
.plan li{position:relative;margin:0;padding:14px 0 14px 26px;border-bottom:1px solid var(--line-soft)}
.plan li::before{content:"";position:absolute;left:4px;top:21px;width:7px;height:7px;border-radius:50%;background:var(--ink)}
.plan li::after{content:"";position:absolute;left:7px;top:32px;bottom:-21px;width:1px;background:var(--line)}
.plan li:last-child::after{display:none}
.plan-k{display:block;font-size:var(--t-small);font-weight:600;color:var(--ink);letter-spacing:.01em;margin-bottom:2px}
.plan-v{display:block;font-size:var(--t-ui);color:var(--text);line-height:1.5}
.plan-price{display:flex;align-items:baseline;gap:10px;margin-top:16px;font-size:var(--t-small);color:var(--muted)}
.plan-price .amt{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--ink);line-height:1}
@media(max-width:900px){.p-hero-grid{grid-template-columns:1fr;gap:36px}.p-hero{padding:28px 0 48px}}

.step-no{font:italic 400 var(--t-body) var(--serif);letter-spacing:0;text-transform:none;color:var(--muted);margin-bottom:8px}
.gen{background:var(--paper-2);border-bottom:1px solid var(--line)}
.gen>.wrap>*{max-width:900px}
.gen .lead{margin-bottom:26px}
#f{background:var(--sheet);border:1px solid var(--line);padding:var(--pad-card)}
.form-note{font-size:var(--t-small);color:var(--muted);margin-top:14px}
.restore-line{font-size:var(--t-small);color:var(--muted);margin-top:10px}
.unlocked .restore-line{display:none}
.docs-h{margin-bottom:22px}

/* forms */
form .grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}
@media(max-width:640px){form .grid{grid-template-columns:1fr}}
label{display:block;font-size:var(--t-small);font-weight:600;color:var(--ink);margin-bottom:6px}
input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #7d7566;border-radius:var(--radius);padding:12px 14px;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid transparent;border-color:var(--ink);box-shadow:0 0 0 3px rgba(26,34,51,.14)}
input::placeholder,textarea::placeholder{color:#767065;opacity:1;font-style:italic}
input,select,textarea{scroll-margin-top:110px}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--danger);box-shadow:0 0 0 3px rgba(161,42,28,.14)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;padding:0;accent-color:var(--accent)}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9.5l6 6 6-6' fill='none' stroke='%231a2233' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px}
textarea{min-height:90px;resize:vertical}
.gen-btn{width:100%;margin-top:26px;padding:16px 24px;font-size:var(--t-body)}

/* generated documents */
.letters{display:none;margin-top:56px}
.kit{display:none}
.unlocked .kit{display:block}
.unlocked .letter-head .kit{display:inline-flex}
.reuse-tip{font-size:var(--t-ui);background:var(--sheet);border:1px solid var(--line);border-left:3px solid var(--ink);padding:12px 16px;margin-bottom:24px}
.reuse-tip b{margin-right:4px}
.letter{background:var(--sheet);border:1px solid var(--line);box-shadow:var(--shadow-sheet);margin-bottom:32px;position:relative}
.letter-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:14px 24px;border-bottom:1px solid var(--line-soft);background:#fbf9f4}
.letter-head h3{font-size:var(--t-body);margin:0}
.letter-head .when{font-size:var(--t-small);color:var(--muted);flex:1 1 auto;text-align:right}
.letter-body{padding:34px 40px 38px;white-space:pre-wrap;font-family:var(--serif);font-size:var(--t-body);line-height:1.68;color:#1d212a;position:relative;overflow-wrap:anywhere}
@media(max-width:600px){.letter-body{padding:22px 20px 26px;font-size:var(--t-body)}.letter-head{padding:12px 18px}.letter-head .when{text-align:left}}
.locked .letter-body{padding-bottom:30px}
body:not(.unlocked) .locked .letter-body:not(:empty)::after{content:"";display:block;height:150px;margin-top:22px;
  background:
    linear-gradient(var(--line-soft),var(--line-soft)) 0 0/100% 9px,
    linear-gradient(var(--line-soft),var(--line-soft)) 0 27px/94% 9px,
    linear-gradient(var(--line-soft),var(--line-soft)) 0 54px/98% 9px,
    linear-gradient(var(--line-soft),var(--line-soft)) 0 81px/61% 9px,
    linear-gradient(var(--line-soft),var(--line-soft)) 0 126px/88% 9px;
  background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}
.lockbar{display:flex;align-items:center;justify-content:center;padding:4px 20px 22px;font-size:var(--t-ui);color:var(--ink);font-weight:500}
.lockbar p,.lock-link{display:inline-flex;gap:8px;align-items:center}
.lock-link{font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding:4px 0}
.lock-link:hover{border-bottom-color:var(--accent);color:var(--accent-ink)}
.lockbar .i{color:var(--accent)}
.unlocked .lockbar,.unlocked .paybox{display:none}
body:not(.unlocked) .letter.locked .copy-btn{display:none}
.print-row{text-align:center;margin:8px 0 24px}

/* order box */
.paybox{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:28px 44px;background:var(--sheet);border:1px solid var(--ink);padding:var(--pad-card);margin:4px 0 36px;box-shadow:var(--shadow-sheet)}
.paybox h3{font-size:var(--t-h3);margin-bottom:8px}
.pay-main>p{color:var(--muted);font-size:var(--t-body)}
.paybox ul{list-style:none;padding:0;margin:18px 0 0}
.paybox li{position:relative;padding-left:26px;margin:9px 0;font-size:var(--t-ui)}
.paybox li::before{content:"";position:absolute;left:0;top:.22em;width:16px;height:16px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.pay-side{border-top:2px solid var(--rule);padding-top:16px;align-self:start}
.paybox .price{font-family:var(--serif);font-size:3rem;font-weight:600;color:var(--ink);line-height:1}
.pay-side>p{font-size:var(--t-small);color:var(--muted);margin-top:8px}
.paybox .cta{width:100%;margin-top:18px}
.paybox .restore{font-size:var(--t-small);color:var(--muted);margin-top:12px}
@media(max-width:760px){.paybox{grid-template-columns:1fr}}

/* article */
.seo{background:var(--sheet);border-top:1px solid var(--line)}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:56px;align-items:start}
.prose{max-width:68ch}
.prose h2{margin:0 0 .6em}
.prose h3{margin:1.7em 0 .45em;font-size:var(--t-h4)}
.prose ol,.prose ul{margin:.9em 0}
.prose li{margin:.55em 0}
.prose table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:var(--t-ui)}
.prose th,.prose td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font-weight:600;color:var(--ink)}
.side{position:sticky;top:96px;display:grid;gap:32px}
.side p{font-size:var(--t-ui);color:var(--muted)}
@media(max-width:960px){.article-grid{grid-template-columns:1fr;gap:44px}.side{position:static}}
.disc{font-size:var(--t-small);color:var(--muted);margin-top:28px!important;padding-top:16px;border-top:1px solid var(--line);max-width:72ch}

/* info boxes */
.statebox,.box,.result,.next,.facts{background:var(--sheet);border:1px solid var(--line);padding:20px 22px;margin:24px 0}
.statebox{border-left:3px solid var(--ink);font-size:var(--t-ui)}
.seo .statebox{background:var(--paper)}
.result{display:none;border-left:3px solid var(--ink);padding:24px 28px}
.result.block{display:block}
.big{font-family:var(--serif);font-size:var(--t-h3);color:var(--ink);line-height:1.25}
.result .big{font-size:clamp(2rem,4vw,2.75rem);font-weight:600;line-height:1.1;letter-spacing:-.015em;font-variant-numeric:lining-nums tabular-nums;margin-bottom:6px}
.result .nums{display:flex;gap:28px;flex-wrap:wrap;margin:10px 0 6px}
.result .nums div b{display:block;font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1.1;color:var(--ink)}
.result .nums div span{font-size:var(--t-small);color:var(--muted)}
.result #rows p{white-space:pre-line}
.facts h2,.next h2,.box h2{font-size:var(--t-h4);margin-bottom:.5em}
.next table{width:100%;border-collapse:collapse;margin:1em 0;font-size:var(--t-ui)}
.next th,.next td{text-align:left;vertical-align:top;padding:8px 10px 8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.status.late{color:var(--danger)}
.status.ok{color:var(--ok)}
.warn{background:var(--warn-wash);border:1px solid #e1cda3;border-left:3px solid var(--warn);padding:14px 18px;font-size:var(--t-ui)}
.hl{background:linear-gradient(transparent 62%,#efdcd6 62%)}

/* pills and checklists (tools) */
.pillrow{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 20px}
.pill{font-family:var(--sans);font-size:var(--t-small);font-weight:500;color:var(--ink);background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.pill:hover{border-color:var(--ink)}
.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chk{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line-soft);font-weight:400;font-size:var(--t-body);color:var(--text);margin:0}
@media(max-width:600px){.pillrow{flex-direction:column}.pill{justify-content:flex-start;padding:12px 14px}}
.chk input{width:18px;height:18px;margin-top:4px;flex:none}

/* about strip */
.about-strip{background:var(--paper);border-top:1px solid var(--line);padding:28px 0}
.about-strip p{font-size:var(--t-ui);color:var(--muted);max-width:80ch}
.about-strip b{color:var(--ink)}

/* ---------- tool pages ---------- */
.t-hero{padding:40px 0 36px;border-bottom:1px solid var(--line)}
.t-hero .wrap>*{max-width:var(--measure)}
.t-hero h1{margin-bottom:16px}
.t-hero .sub{font-size:var(--t-lead);color:var(--text)}
.t-meta{margin-top:16px;font-size:var(--t-small);color:var(--muted);display:flex;gap:8px;align-items:center}
.t-meta .i{color:var(--ok)}
.t-body{padding-top:40px;padding-bottom:64px}
.t-body>*{max-width:var(--measure)}
.page-tool .t-body>label{margin-top:4px}
.page-tool .t-body>select,.page-tool .t-body>input{margin-bottom:18px;max-width:480px}
.page-tool .t-body>h2{margin-top:44px}
.page-tool .t-body>p,.page-tool .t-body>ul,.page-tool .t-body>ol{max-width:68ch}
.page-tool .item{padding:22px 0 20px;border-top:1px solid var(--line)}
.page-tool .item:last-of-type{border-bottom:1px solid var(--line)}
.page-tool .item h2{display:flex;gap:14px;align-items:flex-start;font-size:var(--t-h4);line-height:1.3;margin-bottom:6px}
.page-tool .item h2 .i,.page-tool .item h2 .i-lg{width:24px;height:24px;color:var(--accent);flex:none;margin-top:2px}
.page-tool .item p{padding-left:38px;font-size:var(--t-body)}
@media(max-width:600px){.page-tool .item p{padding-left:0}}
.fineprint{margin-top:48px;padding-top:16px;border-top:1px solid var(--line)}
.fineprint p{font-size:var(--t-small);color:var(--muted)}
.t-related{background:var(--paper-2);border-top:1px solid var(--line);padding:48px 0}
.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;max-width:var(--measure);margin-left:0}
@media(max-width:700px){.related-grid{grid-template-columns:1fr}}

/* ---------- legal ---------- */
.toc{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:22px;font-size:var(--t-ui)}
.toc a{font-weight:500}
.legal{padding-top:8px}
.legal-sec{padding:40px 0 36px;border-bottom:1px solid var(--line)}
.legal-sec:last-child{border-bottom:0}
.legal-sec h2{margin-bottom:16px}
.legal-sec h3{margin:1.5em 0 .4em;font-size:var(--t-h4)}
.legal-sec ul{margin:.6em 0}
.callout{background:var(--accent-wash);border-left:3px solid var(--accent);padding:14px 18px;font-weight:600;color:var(--ink);margin-bottom:16px!important}
.terms-list dt{font-family:var(--serif);font-weight:600;font-size:var(--t-lead);color:var(--ink);margin-top:18px}
.terms-list dd{margin-top:4px}

/* ---------- 404 and receipt ---------- */
.nf{padding:88px 0 96px;border:0}
.nf .fine{margin-top:28px}
.page-receipt{min-height:100vh;display:flex;flex-direction:column}
.receipt{flex:1;display:flex;align-items:center;justify-content:center;padding:64px 20px}
.receipt .card{max-width:540px;width:100%;background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--accent);padding:var(--pad-card);box-shadow:var(--shadow-sheet)}
.receipt .card.is-error{border-top-color:var(--warn)}
.code-row{display:flex;gap:10px;align-items:center;margin:22px 0}
.code-row .code{flex:1;margin:0}
.receipt h1{font-size:1.9rem;margin-bottom:12px}
.receipt .code{font-family:var(--mono);font-size:var(--t-h3);letter-spacing:.12em;color:var(--ink);background:var(--paper);border:1px dashed #b3aa99;padding:16px;text-align:center;margin:22px 0}
.receipt .fine{margin-top:16px}
.receipt .state{display:flex;gap:10px;align-items:center;color:var(--muted)}
.receipt .cta{margin-top:8px}
.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:#b8bfcc;font-size:var(--t-small);padding:56px 0 40px}
.site-footer a{color:#dfe3ea;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.foot-brand{color:#fff;font-family:var(--serif);font-size:var(--t-h4);display:flex;gap:10px;align-items:center;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-brand .mark{width:26px;height:26px;color:#d8b4ab}
.foot-brand i{font-style:italic;font-weight:400;color:#d8b4ab}
.foot-grid{columns:4 180px;column-gap:32px;padding:32px 0 8px}
.fcol{break-inside:avoid;margin-bottom:26px}
.fh{font-family:var(--sans);font-size:var(--t-cap);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8f99ab;margin-bottom:10px}
.fcol ul{list-style:none;padding:0}
.fcol li{margin:6px 0;line-height:1.4}
.foot-base{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:var(--t-small);color:#8f99ab}
.foot-base p{max-width:80ch;margin:0}

/* ---------- unlock dialog and toast ---------- */
.kft-modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(17,22,33,.55)}
.kft-modal.open{display:flex}
.kft-dialog{background:var(--sheet);max-width:440px;width:100%;padding:30px 30px 26px;border-top:3px solid var(--accent);box-shadow:0 30px 60px -20px rgba(0,0,0,.45);position:relative}
.kft-dialog h3{font-size:var(--t-h3);margin-bottom:6px}
.kft-dialog p{font-size:var(--t-ui);color:var(--muted)}
.kft-dialog input{margin-top:18px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}
.kft-dialog .row{display:flex;gap:10px;margin-top:16px;justify-content:flex-end;flex-wrap:wrap}
.kft-dialog .msg{min-height:1.4em;margin-top:10px;font-size:var(--t-small)}
.kft-dialog .msg.err{color:var(--danger)}
.kft-dialog label{margin-top:18px}
.kft-dialog label+input{margin-top:0}
@media(max-width:600px){.kft-modal{align-items:flex-end;padding:0}.kft-dialog{max-width:none;padding-bottom:max(26px,env(safe-area-inset-bottom))}}
.kft-dialog .msg.ok{color:var(--ok)}
.kft-dialog code{white-space:nowrap;font-family:var(--mono);font-size:.9em;color:var(--ink)}
.kft-x{position:absolute;right:12px;top:12px;background:none;border:0;color:var(--muted);cursor:pointer;padding:6px}
.kft-x:hover{color:var(--ink)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 18px;font-size:var(--t-small);opacity:0;transition:.2s;z-index:70;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%)}

/* sample sheets produced by the build */
.sample-sheet{background:var(--sheet);border:1px solid var(--line);box-shadow:var(--shadow-sheet);padding:34px 38px;margin-top:18px}

/* ---------- print ---------- */
.print-only{display:none}
@page{size:letter;margin:.9in 1in 1in}
@media print{
  .site-header,.site-footer,.no-print,.paybox,.lockbar,.p-hero,.about-strip,.copy-btn,.reuse-tip,.kft-modal,.crumbs,.t-related,.step-no,.form-note,.printbtn,.t-meta,.eyebrow,.actions,.nav-menu,.doc-note,.toast,.restore-line{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  section{padding:0;border:0;background:#fff}
  .gen{background:#fff;border:0}
  form,#f,#generator h2,#generator .lead{display:none!important}
  /* documents when there are documents; otherwise the article */
  body:has(#b1:not(:empty)) .seo{display:none!important}
  body:not(:has(#b1:not(:empty))) .letters{display:none!important}
  .letters{margin:0}
  .letter:has(.letter-body:empty),body:not(.unlocked) .letter.locked{display:none!important}
  .letter{border:0;box-shadow:none;margin:0;background:none;break-before:page}
  .letters>.letter:first-of-type{break-before:auto}
  .letter-head{display:none}
  .letter-body{padding:0;font-size:11.5pt;line-height:1.45;color:#000;background:none}
  .print-only{display:block}
  .doc-about{break-before:page;font-size:10pt;color:#333}
  .doc-about h2{font-size:13pt;margin-bottom:8pt}
  #generator .doc-about h2{display:block!important}
  .page-product .seo .wrap::before{content:"Kits For That  \00b7  kitsforthat.com";display:block;font:600 8.5pt var(--sans);letter-spacing:.06em;color:#555;margin-bottom:10pt}
  .page-tool .t-body>label,.page-tool .t-body>select,.page-tool .t-body>input,.page-tool .pillrow{display:none!important}
  body:has(#result[style*="block"]) .state-table-wrap{display:none}
  .box,.facts,.next,.result,.statebox{background:none;border:1px solid #999;break-inside:avoid}
  .page-tool .t-hero{border:0;padding:0 0 12pt}
  .page-tool .t-hero .wrap::before{content:"Kits For That  \00b7  kitsforthat.com";display:block;font:600 8.5pt var(--sans);letter-spacing:.06em;color:#555;margin-bottom:10pt}
  .side,.fineprint{display:none}
  a{color:#000;text-decoration:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.cta{border:1px solid ButtonText}.plan li::before{background:ButtonText}}

/* accessibility refinements */
.site-footer :focus-visible{outline-color:#fff}
a[href^="mailto:"]{overflow-wrap:anywhere}
.receipt .state p{min-width:0;overflow-wrap:anywhere}
.paybox .restore button,.restore-line button{font-size:inherit}

/* ---------- components added in the October 2026 pass ---------- */
/* hero quick list (home and 404) */
.quick{margin-top:30px;max-width:34rem}
.quick ul{list-style:none;padding:0;border-top:2px solid var(--rule)}
.quick li{margin:0;border-bottom:1px solid var(--line)}
.quick li a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;font-family:var(--serif);font-size:var(--t-lead);line-height:1.35;color:var(--ink);text-decoration:none}
.quick li a::after{content:"";width:18px;height:18px;flex:none;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12h14.5M13.5 6.5L19 12l-5.5 5.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12h14.5M13.5 6.5L19 12l-5.5 5.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .15s}
.quick li a:hover{color:var(--accent)}
.quick li a:hover::after{transform:translateX(3px)}
.quick-all{margin-top:12px;font-size:var(--t-ui);color:var(--muted)}
.nf .quick{margin-top:24px}

/* product hero and order box */
.hero-legal{margin-top:6px}
.plan-buy{margin-top:12px;font-size:var(--t-small);color:var(--muted)}
.pay-trust{list-style:none;padding:0;margin:16px 0 0;font-size:var(--t-small);color:var(--muted)}
.paybox .pay-trust li{display:flex;gap:9px;align-items:center;margin:7px 0;padding:0;font-size:var(--t-small)}
.paybox .pay-trust li::before{display:none}
.pay-trust .i{color:var(--ink);width:16px;height:16px}
.pay-trust a{color:var(--muted)}
.pay-trust a:hover{color:var(--ink)}
.pay-legal{font-size:var(--t-small);color:var(--muted);margin-top:16px!important;padding-top:12px;border-top:1px solid var(--line-soft)}
.pay-legal a{color:var(--muted)}
.pay-human{margin-top:18px!important;font-size:var(--t-small);color:var(--muted)}
.doc-note{font-size:var(--t-ui);color:var(--muted);max-width:68ch;margin:-8px 0 24px}

/* one left edge, documents at a reading measure */
.gen .letters{max-width:820px}
.letter-body{padding:44px clamp(20px,7%,64px) 48px}
@media(max-width:600px){.letter-body{padding:22px 20px 26px}}

/* home FAQ on the About grid */
.h-faq .about-grid>h2{margin:0}

/* receipt: legal line only */
.site-footer-min{padding:24px 0}
.site-footer-min .foot-base{border-top:0;padding-top:0}

/* responsive details */
@media(max-width:600px){
  .terms{flex-direction:column;gap:2px}
  .terms li::after{display:none}
  .actions .cta,.p-hero .actions .cta{flex:1 1 100%}
  .foot-grid{columns:2;column-gap:20px}
  .fcol li{font-size:var(--t-small)}
}
@media(max-width:360px){.sheet-meta span+span{display:none}}

/* purposeful motion; the reduced-motion rule above turns it off */
.letters{animation:rise .32s cubic-bezier(.2,.7,.2,1)}
.kft-modal.open .kft-dialog{animation:rise .18s ease-out}
@keyframes rise{from{opacity:0;transform:translateY(8px)}}

/* state tables on the free tools */
.state-table-wrap{margin-top:48px}
.state-table-wrap h2{margin-bottom:.3em}
.state-table-wrap>p{color:var(--muted);font-size:var(--t-ui);max-width:68ch}
.state-table{border-collapse:collapse;width:100%;margin-top:18px;font-size:var(--t-ui)}
.state-table th,.state-table td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}
.state-table thead th{font-size:var(--t-small);font-weight:600;color:var(--muted);border-bottom:2px solid var(--rule)}
.state-table td:first-child{white-space:nowrap}
.state-table td:first-child a{font-weight:600;color:var(--ink)}
@media(max-width:600px){.state-table thead{display:none}.state-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.state-table td{display:block;border:0;padding:2px 0}.state-table td:first-child{padding-bottom:4px}}

/* state pages */
.st-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 40px;border-top:2px solid var(--rule);margin:8px 0 28px}
.st-facts div{padding:14px 0;border-bottom:1px solid var(--line)}
.st-facts dt{font-size:var(--t-small);color:var(--muted);font-weight:600}
.st-facts dd{font-family:var(--serif);font-size:var(--t-lead);color:var(--ink);line-height:1.35;margin-top:2px}
.st-facts .wide{grid-column:1/-1}
@media(max-width:640px){.st-facts{grid-template-columns:1fr}}
.st-source{font-size:var(--t-small);color:var(--muted)}
.st-nav{columns:4 140px;column-gap:24px;list-style:none;padding:0;font-size:var(--t-ui);margin-top:12px}
.st-nav li{margin:0 0 6px;break-inside:avoid}
.receipt .code{white-space:nowrap;font-size:clamp(1.05rem,5.2vw,1.45rem);letter-spacing:.08em}
@media(max-width:480px){.code-row{flex-direction:column;align-items:stretch}.code-row .copy-btn{justify-content:center;padding:10px 12px}}
