@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;700&family=JetBrains+Mono:wght@400;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,700&display=swap";:root{--font-display:"Newsreader", ui-serif, Georgia, serif;--font-body:"IBM Plex Sans", ui-sans-serif, sans-serif;--font-outlier:"JetBrains Mono", ui-monospace, monospace;--font-alt:"JetBrains Mono", ui-monospace, monospace;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:9rem;--text-xs:.64rem;--text-sm:.8rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:1.9531rem;--text-2xl:2.4414rem;--text-3xl:3.0518rem;--text-4xl:3.8147rem;--text-display-s:clamp(2.5rem, 4.5vw + .7rem, 4.5rem);--text-display:clamp(3rem, 6vw + .5rem, 5.5rem);--text-stat:clamp(4.5rem, 14vw, 12rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--rule-hair:1px;--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--page-gutter:clamp(1rem, 4vw, 4rem);--page-max:78rem;--z-sticky:200;--z-modal:400;--color-paper:oklch(97% .012 85);--color-paper-2:oklch(95.5% .016 70);--color-paper-3:oklch(92% .02 65);--color-ink:oklch(23% .025 40);--color-ink-2:oklch(32% .022 45);--color-neutral:oklch(52% .03 50);--color-muted:oklch(42% .03 50);--color-rule:oklch(86% .02 60);--color-rule-2:oklch(72% .03 55);--color-accent:oklch(44% .11 200);--color-accent-ink:oklch(98% .008 90);--color-focus:oklch(50% .16 350);--color-head:oklch(42% .1 200);--color-label:oklch(48% .11 55);--color-link:oklch(48% .16 350);--color-field:oklch(99% .005 90);--color-hero-paper:oklch(96.5% .012 200);--color-contact-paper:oklch(96% .014 80);--color-good:oklch(54% .15 152);--color-warn:oklch(63% .16 76);--color-error:oklch(56% .18 24);--light-glass:oklch(89% .06 212);--light-pearl:oklch(97.5% .008 90);--light-peach:oklch(89% .07 52);--light-gold:oklch(91% .07 84);--light-lilac:oklch(90% .05 300);--field-hero:linear-gradient(oklch(97% .01 90/.35), oklch(97% .01 90/.35)), radial-gradient(60% 75% at 6% 0%, oklch(89% .06 212/.9), oklch(89% .06 212/0) 100%), radial-gradient(55% 70% at 96% 60%, oklch(89% .07 52/.9), oklch(89% .07 52/0) 100%), linear-gradient(115deg, var(--light-glass) 0%, var(--light-lilac) 42%, var(--light-peach) 74%, var(--light-gold) 100%);--field-contact:linear-gradient(oklch(97% .01 90/.5), oklch(97% .01 90/.5)), radial-gradient(60% 75% at 96% 10%, oklch(89% .07 52/.9), oklch(89% .07 52/0) 100%), radial-gradient(55% 70% at 4% 90%, oklch(89% .06 212/.9), oklch(89% .06 212/0) 100%), linear-gradient(295deg, var(--light-glass) 0%, var(--light-lilac) 42%, var(--light-peach) 74%, var(--light-gold) 100%);--field-blur:90px;--field-drift:26s;--rule-sheen:linear-gradient(90deg, var(--light-glass), var(--light-lilac), var(--light-peach), var(--light-gold));--button-fill:linear-gradient(105deg, oklch(44% .11 200) 0%, oklch(44% .12 275) 50%, oklch(48% .16 350) 100%);--button-glow:0 8px 24px -12px oklch(48% .16 350/.6);--button-glow-hover:0 12px 28px -12px oklch(48% .16 350/.7);--panel-bg:oklch(99% .005 90/.55);--panel-border:1px solid oklch(100% 0 0/.7);--panel-blur:blur(18px);--panel-shadow:0 24px 60px -30px oklch(40% .08 40/.35);--color-terminal-paper:oklch(13% .018 172);--color-terminal-paper-2:oklch(18% .021 172);--color-terminal-paper-3:oklch(23% .026 172);--color-terminal-ink:oklch(94% .015 162);--color-terminal-muted:oklch(72% .033 172);--color-terminal-rule:oklch(32% .038 172);--color-terminal-accent:oklch(74% .19 152);--color-terminal-accent-ink:oklch(13% .018 172);--color-midnight-paper:oklch(15% .014 238);--color-midnight-paper-2:oklch(20% .018 238);--color-midnight-paper-3:oklch(26% .022 238);--color-midnight-ink:oklch(93% .012 238);--color-midnight-muted:oklch(70% .028 238);--color-midnight-rule:oklch(34% .032 238);--color-midnight-accent:oklch(76% .14 84);--color-midnight-accent-ink:oklch(15% .014 238)}html,body{overflow-x:clip}html{scroll-behavior:smooth}body{background:linear-gradient(180deg, var(--color-paper) 0%, var(--color-paper-2) 100%);min-height:100svh;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);text-rendering:optimizelegibility;margin:0;line-height:1.65}*{box-sizing:border-box}a{color:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.hero,.contact-band{isolation:isolate;position:relative;overflow:hidden}.hero:before,.contact-band:before{content:"";z-index:-1;filter:blur(var(--field-blur));transform-origin:50%;animation:field-drift var(--field-drift) ease-in-out infinite alternate;pointer-events:none;position:absolute;inset:-25%}.hero:before{background:var(--field-hero)}.contact-band:before{background:var(--field-contact)}@keyframes field-drift{0%{transform:translate(-2%,-1%)rotate(-2deg)scale(1.02)}to{transform:translate(2%,1.5%)rotate(2deg)scale(1.06)}}.hero{background:var(--color-hero-paper);padding-block-end:var(--space-xl)}.site-nav{justify-content:space-between;align-items:center;gap:var(--space-md);width:min(100% - (var(--page-gutter) * 2), var(--page-max));padding-block:var(--space-lg);margin-inline:auto;display:flex}.wordmark{color:var(--color-ink);font-family:var(--font-display);white-space:nowrap;font-size:clamp(1.05rem,2.5vw,1.45rem);font-weight:700;line-height:1;text-decoration:none}.button-secondary:disabled,.button-primary:disabled{cursor:progress;opacity:.6}.button-secondary,.button-primary{border:var(--rule-hair) solid currentColor;border-radius:var(--radius-sm);min-height:44px;font:inherit;white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), box-shadow var(--dur-short) var(--ease-out), transform .1s var(--ease-out);justify-content:center;align-items:center;padding:.68rem .95rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.button-secondary{color:var(--color-ink);background:0 0}.button-primary{background:var(--button-fill);color:var(--color-accent-ink);box-shadow:var(--button-glow);cursor:pointer;border-color:#0000}@media (hover:hover) and (pointer:fine){.button-secondary:hover{background:var(--color-ink);color:var(--color-paper)}.button-primary:hover{box-shadow:var(--button-glow-hover);transform:translateY(-1px)}}.button-secondary:active,.button-primary:active{transform:translateY(1px)}.home-shell{width:min(100% - (var(--page-gutter) * 2), 72rem);margin-inline:auto}.hero-shell{padding-block:clamp(var(--space-xl), 8vw, var(--space-4xl)) 0}.main-shell{padding-block:clamp(var(--space-lg), 3vw, var(--space-xl)) clamp(var(--space-xl), 4vw, var(--space-2xl))}.contrast{gap:var(--space-xl);align-items:center;display:grid}.contrast-text h2{margin:0 0 var(--space-md);color:var(--color-ink);font-family:var(--font-display);font-size:clamp(var(--text-lg), 2.6vw, var(--text-2xl));text-wrap:balance;font-weight:700;line-height:1.12}.contrast-text p{max-width:40ch;color:var(--color-head);font-size:var(--text-md);margin:0;font-weight:500;line-height:1.4}.contrast-figure{padding:var(--space-lg);border:var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-bg);box-shadow:var(--panel-shadow);margin:0}.contrast-graphic{width:100%;height:auto;color:var(--color-ink);fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;display:block}.contrast-graphic text{fill:var(--color-muted);stroke:none;font-family:var(--font-body);font-size:12px}.contrast-graphic .row-label text{fill:var(--color-label);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.contrast-graphic .fill-cool{fill:var(--light-glass)}.contrast-graphic .fill-warm{fill:var(--light-peach)}.contrast-graphic .fill-warm-solid{fill:var(--color-label);stroke:none}.contrast-graphic .fill-paper{fill:var(--color-field)}.contrast-graphic .fill-ink{fill:currentColor;stroke:none}.contrast-graphic .cord{stroke-dasharray:3 5}.contrast-graphic .divider{stroke:url(#sheen);stroke-width:1px}.contrast-graphic .arrow{stroke:var(--color-head)}.home-prose{max-width:64ch}.hero .home-prose{max-width:none}.hero .lede{max-width:64ch}.home-prose h1{max-width:14ch;margin:0 0 var(--space-lg);color:var(--color-ink);font-family:var(--font-display);letter-spacing:0;overflow-wrap:anywhere;font-size:clamp(3rem,10vw,7.25rem);font-style:normal;font-weight:700;line-height:.9}.home-prose h2{margin:var(--space-2xl) 0 var(--space-sm);color:var(--color-head);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:0;font-style:normal;font-weight:700;line-height:1.05}.home-prose p{margin:0 0 var(--space-md);color:var(--color-ink-2)}.home-prose .lede{color:var(--color-ink);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.35}.home-prose a:not([class]){color:var(--color-link);text-underline-offset:.18em;font-weight:700;text-decoration-thickness:.08em}.contact-band{background:var(--color-contact-paper);padding-block:var(--space-2xl)}.contact-section h2{margin:0 0 var(--space-sm);color:var(--color-head);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:1.05}.form-row.hp{width:1px;height:1px;position:absolute;inset-inline-start:-200vw;overflow:hidden}.suggest{color:var(--color-muted);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;justify-self:start;margin:0;padding:0;line-height:1.4}.suggest kbd{border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-xs);font-family:var(--font-outlier);padding:.05em .4em;font-size:.9em;display:inline-block}@media (hover:hover) and (pointer:fine){.suggest:hover{color:var(--color-link)}}.form-status{min-height:1lh;color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.4}.form-status[data-state=sent]{color:var(--color-good);font-weight:700}.form-status[data-state=error]{color:var(--color-error);font-weight:700}.contact-grid{gap:var(--space-lg);margin-block-start:var(--space-xl);display:grid}.contact-form h3{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-md);margin:0;font-weight:700;line-height:1.1}.form-note{margin:calc(var(--space-xs) * -1) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:1.45}.contact-direct{gap:var(--space-md);margin:var(--space-xl) 0 0;color:var(--color-muted);font-size:var(--text-sm);text-align:center;align-items:center;display:flex}.contact-direct:before,.contact-direct:after{content:"";height:var(--rule-hair);background:var(--rule-sheen);flex:1 1 0}.contact-direct span{text-wrap:balance;flex:0 auto}.contact-direct a{color:var(--color-link);overflow-wrap:anywhere;font-weight:700}.contact-form{gap:var(--space-md);padding:var(--space-lg);border:var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-bg);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:var(--panel-blur);align-content:start;display:grid;position:relative}.form-row{gap:var(--space-xs);display:grid}label{color:var(--color-ink);font-weight:700}input,textarea{border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-sm);background:var(--color-field);width:100%;color:var(--color-ink);font:inherit;outline-offset:1px;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);outline:2px solid #0000}input{min-height:44px;padding:.68rem .85rem}textarea{resize:vertical;min-height:8rem;padding:.8rem .85rem}input::placeholder,textarea::placeholder{color:var(--color-neutral)}@media (hover:hover) and (pointer:fine){input:hover,textarea:hover{background:var(--color-paper)}}input:focus-visible,textarea:focus-visible{border-color:var(--color-ink-2);outline-color:var(--color-focus)}input:invalid:not(:placeholder-shown),textarea:invalid:not(:placeholder-shown){border-color:var(--color-error)}.field-note{min-height:1lh;color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.4}.form-actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;margin-block-start:var(--space-2xs);display:flex}.jump{z-index:var(--z-sticky);align-items:center;gap:var(--space-xs);border:var(--panel-border);background:var(--panel-bg);min-height:44px;color:var(--color-ink);white-space:nowrap;box-shadow:var(--panel-shadow);-webkit-backdrop-filter:var(--panel-blur);transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);border-radius:999px;padding:.7rem 1.05rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:fixed;inset-block-end:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));inset-inline-end:var(--space-lg)}.jump svg{flex:none}.jump.is-away{opacity:0;pointer-events:none;transform:translateY(.5rem)}@media (hover:hover) and (pointer:fine){.jump:hover{background:var(--color-ink);color:var(--color-paper)}}.site-footer{width:min(100% - (var(--page-gutter) * 2), var(--page-max));border-block-start:var(--rule-hair) solid var(--color-rule);border-image:var(--rule-sheen) 1;padding-block:var(--space-md) var(--space-lg);color:var(--color-muted);font-size:var(--text-sm);margin-inline:auto}.site-footer p{margin:0}@media (width>=52rem){.contrast{gap:var(--space-2xl);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.contact-grid{gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=34rem){.site-nav{flex-direction:column;align-items:flex-start}.wordmark{white-space:normal}.contact-form{padding:var(--space-md)}.jump{inset-inline-end:var(--space-md)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}
