:root{--paper: #ffffff;--paper-raised: #f2f5f4;--ink: #111827;--ink-soft: #3d4654;--ink-faint: #6b7280;--accent: #006b56;--accent-soft: #5f8079;--rule: #dde3e1;--pill-bg: #e8f0ee;--warn: #b3443a}html.dark{--paper: #111827;--paper-raised: #293142;--ink: #f3f4f6;--ink-soft: #c9d1d9;--ink-faint: #8b95a5;--accent: #a7d6cc;--accent-soft: #7fa89e;--rule: #2e3748;--pill-bg: #1d2635;--warn: #e08578}@font-face{font-family:Outfit;src:url(/fonts/outfit/Outfit-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/fraunces/Fraunces-Italic-latin.woff2) format("woff2");font-weight:400 500;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;src:url(/fonts/fraunces/Fraunces-Italic-latin-ext.woff2) format("woff2");font-weight:400 500;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Outfit,Avenir Next,Segoe UI,sans-serif;font-weight:300;line-height:1.65;font-size:17px}a{color:var(--accent);text-decoration:none}a:not(.cta){background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 1px;background-position:0 100%;transition:background-size .22s ease,color .15s;padding-bottom:1px}a:not(.cta):hover,a:not(.cta):focus-visible{background-size:100% 1px}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:44rem;margin:0 auto;padding:0 1.5rem;position:relative}h1{font-size:clamp(2rem,5.4vw,3.1rem);line-height:1.14;font-weight:600;letter-spacing:-.015em;margin:0 0 1.2rem;text-wrap:balance}h1 em{font-style:normal;color:var(--accent)}section{padding:3.2rem 0;border-top:1px solid var(--rule);position:relative}h2{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:500;margin:0 0 1.4rem}section p{max-width:40rem;margin:0 0 1rem;color:var(--ink-soft)}section p strong{color:var(--ink);font-weight:500}.cta{display:inline-block;background:var(--accent);color:var(--paper);padding:.6rem 1.3rem;border-radius:999px;font-weight:500;font-size:.95rem;border-bottom:none}.cta:hover{opacity:.88;border-bottom:none}.quiet-links{display:flex;gap:1.3rem;font-size:.9rem;flex-wrap:wrap}.quiet-links a{color:var(--ink-faint)}.quiet-links a:hover{color:var(--accent)}.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}.spine{display:none}@media (min-width: 62rem){.spine{display:block;position:absolute;left:-2.2rem;width:2px;background:var(--rule);border-radius:1px}.spine-fill{width:100%;height:0;background:var(--accent);border-radius:1px;transition:height .15s linear}section.gate:before{content:"";position:absolute;left:calc(-2.2rem - 4px);top:3.45rem;width:11px;height:11px;border-radius:50%;background:var(--paper);border:2px solid var(--rule);transition:background .45s,border-color .45s,box-shadow .45s}section.gate.inview:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px var(--pill-bg)}#contact.gate:after{content:"shipped ✓";position:absolute;left:-4.9rem;top:5rem;width:4rem;text-align:center;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:0;transform:translateY(-4px);transition:opacity .5s ease .35s,transform .5s ease .35s}#contact.gate.inview:after{opacity:1;transform:none}}html.js section .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .55s cubic-bezier(.22,.61,.36,1)}html.js section.inview .reveal{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}body,.card,.avail,.thumb,.theme-btn{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}html.js section .reveal{opacity:1;transform:none;transition:none}.spine-fill,section.gate:before,#contact.gate:after{transition:none}}.prose{max-width:40rem;margin-top:2.4rem;color:var(--ink-soft)}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--ink);font-weight:500;letter-spacing:-.005em;text-transform:none;line-height:1.28;text-wrap:balance}.prose h1{font-size:1.6rem;margin:2.8rem 0 .9rem}.prose h2{font-size:1.35rem;margin:2.6rem 0 .85rem;padding-top:1.4rem;border-top:1px solid var(--rule)}.prose h3{font-size:1.1rem;margin:2rem 0 .7rem}.prose h4{font-size:.98rem;margin:1.6rem 0 .6rem;color:var(--ink-soft)}.prose p{margin:0 0 1.1rem}.prose strong{color:var(--ink);font-weight:500}.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.35rem}.prose li{margin:.35rem 0}.prose li::marker{color:var(--accent-soft)}.prose blockquote{margin:1.6rem 0;padding:.9rem 1.2rem;background:var(--paper-raised);border-left:2px solid var(--accent-soft);border-radius:0 6px 6px 0}.prose blockquote p:last-child{margin-bottom:0}.prose img{display:block;max-width:100%;height:auto;margin:1.8rem auto;border:1px solid var(--rule);border-radius:8px}.prose hr{border:none;border-top:1px solid var(--rule);margin:2.4rem 0}.prose :not(pre)>code{background:var(--paper-raised);border:1px solid var(--rule);border-radius:4px;padding:.08em .34em;font-size:.86em;color:var(--ink)}.prose pre{margin:1.6rem 0;padding:1rem 1.1rem;border:1px solid var(--rule);border-radius:8px;overflow-x:auto;font-size:.84rem;line-height:1.6}.prose pre code{background:none;border:none;padding:0;font-size:inherit}:root{--astro-code-color-text: #24292f;--astro-code-color-background: var(--paper-raised);--astro-code-token-comment: #6b7280;--astro-code-token-keyword: #cf222e;--astro-code-token-string: #0a3069;--astro-code-token-string-expression: #0a3069;--astro-code-token-constant: #0550ae;--astro-code-token-function: #8250df;--astro-code-token-parameter: #953800;--astro-code-token-punctuation: #57606a;--astro-code-token-link: #0969da}html.dark{--astro-code-color-text: #e6edf3;--astro-code-token-comment: #8b949e;--astro-code-token-keyword: #ff7b72;--astro-code-token-string: #a5d6ff;--astro-code-token-string-expression: #a5d6ff;--astro-code-token-constant: #79c0ff;--astro-code-token-function: #d2a8ff;--astro-code-token-parameter: #ffa657;--astro-code-token-punctuation: #c9d1d9;--astro-code-token-link: #a5d6ff}.prose table{width:100%;margin:1.8rem 0;border-collapse:collapse;font-size:.88rem;display:block;overflow-x:auto}.prose th,.prose td{padding:.5rem .7rem;border:1px solid var(--rule);text-align:left}.prose th{background:var(--paper-raised);color:var(--ink);font-weight:500}.langs[data-astro-cid-o6vnang4]{display:inline-flex;gap:.45rem;align-items:baseline;font-size:.78rem;letter-spacing:.06em}.langs[data-astro-cid-o6vnang4] a[data-astro-cid-o6vnang4]{color:var(--ink-faint)}.langs[data-astro-cid-o6vnang4] a[data-astro-cid-o6vnang4]:hover{color:var(--accent)}.langs[data-astro-cid-o6vnang4] a[data-astro-cid-o6vnang4].active{color:var(--accent);font-weight:600}.sep[data-astro-cid-o6vnang4]{color:var(--ink-faint)}.theme-btn[data-astro-cid-xybtvccz]{background:none;border:1px solid var(--rule);color:var(--ink-soft);border-radius:999px;padding:.2rem .7rem;font:inherit;font-size:.78rem;cursor:pointer}.theme-btn[data-astro-cid-xybtvccz]:hover{border-color:var(--accent-soft);color:var(--accent)}.theme-btn[data-astro-cid-xybtvccz]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}header[data-astro-cid-32z5qsxo].site{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:2rem 0 0}.brand[data-astro-cid-32z5qsxo]{font-weight:600;font-size:1rem;letter-spacing:.01em;color:var(--ink)}nav[data-astro-cid-32z5qsxo].site{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.85rem}nav[data-astro-cid-32z5qsxo].site a[data-astro-cid-32z5qsxo]{color:var(--ink-faint)}nav[data-astro-cid-32z5qsxo].site a[data-astro-cid-32z5qsxo]:hover{color:var(--accent)}.meta-controls[data-astro-cid-32z5qsxo]{display:flex;gap:.9rem;align-items:center;font-size:.8rem;color:var(--ink-faint)}footer[data-astro-cid-cmhnwpac].site{border-top:1px solid var(--rule);padding:2rem 0 3rem;margin-top:3rem;font-size:.8rem;color:var(--ink-faint);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
