@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6632a144c419935f-s.08di4g7n39o46.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/7b27d9904b50e540-s.3szkwhi_rfrst.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d38f3bca7db33566-s.p.0op912u62qdhl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_94be6a66-module__v5LlYG__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_94be6a66-module__v5LlYG__variable{--font-serif:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_dc177b0e-module__78ed6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_dc177b0e-module__78ed6G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#faf6ee;--surface:#fffdf8;--ink:#1c1815;--ink-2:#574f45;--ink-3:#7d7365;--line:#e6dfd2;--line-strong:#cfc6b4;--accent:#2e6b4a;--a:var(--accent);--shadow:0 1px 2px #2b241a0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#16130f;--surface:#1e1a15;--ink:#ece5d8;--ink-2:#b3a996;--ink-3:#8a8070;--line:#2e2921;--line-strong:#453e32;--accent:#7cc49a;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16130f;--surface:#1e1a15;--ink:#ece5d8;--ink-2:#b3a996;--ink-3:#8a8070;--line:#2e2921;--line-strong:#453e32;--accent:#7cc49a;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.tinted{--a:var(--a-l)}[data-theme=dark] .tinted{--a:var(--a-d)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tinted{--a:var(--a-d)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif), "Iowan Old Style", Georgia, serif;font-variant-numeric:oldstyle-nums;margin:0;font-size:1.0625rem;line-height:1.6;transition:background-color .25s,color .25s}.page{flex-direction:column;min-height:100dvh;display:flex}main{flex:1}.container{width:100%;max-width:46rem;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2rem)}.mono{font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, monospace;font-variant-numeric:lining-nums tabular-nums;letter-spacing:.01em}::selection{background:color-mix(in srgb, var(--a) 24%, transparent)}:focus-visible{outline:2px solid var(--a);outline-offset:3px;border-radius:2px}a{color:inherit}img{max-width:100%;height:auto}.skip{z-index:10;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;padding:.5em .9em;font-size:.875rem;text-decoration:none;transition:top .15s;position:absolute;top:-3.5rem;left:1rem}.skip:focus-visible{top:.75rem}.site-header{padding:1.6rem 0 .4rem}.site-header .container{justify-content:space-between;align-items:center;gap:1rem;display:flex}.wordmark{letter-spacing:-.005em;color:var(--ink);font-size:1.125rem;font-weight:620;text-decoration:none;transition:color .15s}.wordmark:hover{color:var(--accent)}.site-nav{align-items:center;gap:1.3rem;display:flex}.navlink{color:var(--ink-2);font-size:.78125rem;text-decoration:none;transition:color .15s}.navlink:hover{color:var(--accent)}.theme-toggle{appearance:none;width:2rem;height:2rem;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;place-items:center;transition:color .15s,border-color .15s;display:grid}.theme-toggle:hover{color:var(--ink);border-color:var(--line-strong)}.site-footer{border-top:1px solid var(--line);color:var(--ink-3);margin-top:6rem;padding:1.5rem 0 2.5rem;font-size:.875rem}.foot-row{letter-spacing:.01em;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;font-size:.71875rem;display:flex}.site-footer a{color:var(--ink-3);text-decoration:none;transition:color .15s}.site-footer a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.footlinks{gap:1.4rem;display:flex}.sect{border-top:1px solid var(--line);margin-top:4.25rem;padding-top:1.6rem}.sh{font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, monospace;font-variant-numeric:lining-nums tabular-nums;letter-spacing:.02em;color:var(--ink-2);margin:0 0 1.15rem;font-size:.78125rem;font-weight:500}.sh .slash,.navlink .slash{color:var(--a)}.kicker{letter-spacing:.04em;color:var(--ink-3);margin:0 0 .95rem;font-size:.71875rem}.kicker .seg{color:var(--a)}.app-path{margin:2.9rem 0 0}.hero{margin-top:clamp(3rem,9vh,5rem)}.hero h1{letter-spacing:-.012em;max-width:22ch;margin:0 0 1.1rem;font-size:clamp(2.1rem,1.4rem + 2.6vw,3.1rem);font-weight:500;line-height:1.14}.lede{max-width:33rem;color:var(--ink-2);margin:0;font-size:1.125rem;line-height:1.6}.hero-links{flex-wrap:wrap;gap:.9rem 1.6rem;margin-top:1.6rem;font-size:.9375rem;display:flex}.hero-links a{color:var(--ink-2);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}.hero-links a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.toc{margin:0;padding:0;list-style:none}.toc li+li{margin-top:.4rem}.trow{grid-template-columns:auto auto auto 1fr auto;align-items:baseline;column-gap:.85rem;padding:.5rem 0;text-decoration:none;display:grid}.tnum{color:var(--ink-3);font-variant-numeric:lining-nums tabular-nums;letter-spacing:.01em;font-size:.71875rem}.dot{background:var(--dotc,var(--accent));border-radius:50%;align-self:center;width:.56rem;height:.56rem;transform:translateY(-1px)}.dot--rainbow{background:conic-gradient(from 210deg,#f43f5e,#f59e0b,#eab308,#22c55e,#3b82f6,#a855f7,#f43f5e)}.tname{color:var(--ink);white-space:nowrap;font-size:1.21875rem;font-weight:540;transition:color .15s}.trow:hover .tname{color:var(--a)}.leader{border-bottom:2px dotted var(--line-strong);min-width:1.75rem;transform:translateY(-.3em)}.tmeta{color:var(--ink-3);font-variant-numeric:lining-nums tabular-nums;letter-spacing:.01em;white-space:nowrap;font-size:.71875rem}.ttag{color:var(--ink-3);grid-column:3/-1;margin-top:.05rem;font-size:.96875rem}.about p{max-width:34rem;color:var(--ink-2);margin:1.05rem 0 0}.about p:first-of-type{margin-top:0}.mail{color:var(--a);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--a) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--a) 45%, transparent)}.mail:hover{-webkit-text-decoration-color:var(--a);text-decoration-color:var(--a)}.page-head{margin-top:clamp(2.5rem,7vh,4rem)}.page-title{letter-spacing:-.01em;margin:0 0 1rem;font-size:clamp(1.9rem,1.4rem + 1.8vw,2.5rem);font-weight:500;line-height:1.15}.applist{margin:0;padding:0;list-style:none}.applist li{border-bottom:1px dotted var(--line-strong);padding:1.9rem 0}.applist li:last-child{border-bottom:none}.app-item{grid-template-columns:56px 1fr;gap:1.3rem;display:grid}.app-icon{border:1px solid var(--line);background:var(--surface);border-radius:22.37%;display:block}.app-item h2{letter-spacing:-.005em;margin:0;font-size:1.3125rem;font-weight:540;line-height:1.25}.app-item h2 a{text-decoration:none;transition:color .15s}.app-item h2 a:hover{color:var(--a)}.app-item .tag{color:var(--ink-3);margin:.15rem 0 0;font-size:.96875rem}.app-item .blurb{max-width:34rem;color:var(--ink-2);margin:.6rem 0 0;font-size:.96875rem;line-height:1.62}.app-item .meta{color:var(--ink-3);margin-top:.8rem;font-size:.71875rem}.app-item .links{flex-wrap:wrap;gap:.4rem 1.5rem;margin-top:.8rem;font-size:.9375rem;display:flex}.applink{color:var(--a);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--a) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--a) 40%, transparent)}.applink:hover{-webkit-text-decoration-color:var(--a);text-decoration-color:var(--a)}.applink.dim{color:var(--ink-3);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.applink.dim:hover{color:var(--a);-webkit-text-decoration-color:var(--a);text-decoration-color:var(--a)}.app-hero{grid-template-columns:84px 1fr;align-items:center;gap:1.4rem;margin-top:1.1rem;display:grid}.app-hero h1{letter-spacing:-.008em;margin:0 0 .2rem;font-size:clamp(1.9rem,1.4rem + 1.8vw,2.4rem);font-weight:520;line-height:1.12}.app-hero .tag{color:var(--ink-2);margin:0;font-size:1.0625rem}.app-hero .quick{color:var(--ink-3);margin-top:.55rem;font-size:.71875rem}.store-line{margin-top:1.7rem;font-size:1.0625rem}.store-line a{color:var(--a);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1.5px;-webkit-text-decoration-color:color-mix(in srgb, var(--a) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--a) 45%, transparent);font-weight:550;transition:text-decoration-color .15s}.store-line a:hover{-webkit-text-decoration-color:var(--a);text-decoration-color:var(--a)}.store-sep{color:var(--ink-3);margin:0 .7rem}.prose p{max-width:36rem;color:var(--ink-2);margin:1.05rem 0 0;line-height:1.62}.prose p:first-of-type{margin-top:0}.features{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 2.25rem;max-width:42rem;margin:0;padding:0;list-style:none;display:grid}.features li{color:var(--ink-2);padding-left:1.05rem;font-size:.96875rem;line-height:1.55;position:relative}.features li:before{content:"";background:var(--a);border-radius:50%;width:.32em;height:.32em;position:absolute;top:.58em;left:0}.shots{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;gap:.9rem;padding:.15rem .25rem 1rem;display:flex;overflow-x:auto}.shots::-webkit-scrollbar{height:8px}.shots::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.shots img{border:1px solid var(--line);box-shadow:var(--shadow);scroll-snap-align:start;border-radius:12px;flex:none}.shots img.phone{width:min(62vw,225px)}.shots img.wide{width:min(88vw,640px)}.meta-grid{grid-template-columns:max-content 1fr;gap:.55rem 2.75rem;max-width:36rem;margin:0;display:grid}.meta-grid dt{color:var(--ink-3);padding-top:.3em;font-size:.71875rem}.meta-grid dd{color:var(--ink-2);margin:0;font-size:.96875rem}.support p{max-width:36rem;color:var(--ink-2);margin:0;line-height:1.62}.support .legal-links{margin-top:1.1rem;font-size:.9375rem}.legal .page-title{margin-top:.5rem}.legal-meta{color:var(--ink-3);margin:.4rem 0 0;font-size:.71875rem}.legal-body{margin-top:2.6rem}.legal-body section+section{margin-top:2.1rem}.legal-body h2{letter-spacing:-.005em;margin:0 0 .6rem;font-size:1.0625rem;font-weight:580}.legal-body p{max-width:38rem;color:var(--ink-2);margin:0 0 .8rem;line-height:1.72}.legal-body p:last-child{margin-bottom:0}.support-doclinks{margin:2.4rem 0 0;font-size:.9375rem}.pn{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;margin-top:4.5rem;padding-top:1.3rem;font-size:.9375rem;display:flex}.pn a{color:var(--ink-3);text-decoration:none;transition:color .15s}.pn a:hover{color:var(--a)}.err{margin-top:clamp(3rem,12vh,6rem)}.err h1{letter-spacing:-.008em;margin:0 0 1rem;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.3rem);font-weight:520}.err p{max-width:34rem;color:var(--ink-2)}@media (max-width:600px){.tname{white-space:normal;font-size:1.09375rem}.tmeta{font-size:.84375rem}.app-item{grid-template-columns:44px 1fr;gap:1rem}.app-hero{grid-template-columns:60px 1fr;gap:1rem}.features{grid-template-columns:1fr}.meta-grid{gap:.55rem 1.6rem}}@media (prefers-reduced-motion:reduce){body{transition:none}}
