@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-latin.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:Inter;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/inter-latin.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}:root{--font-serif:"Newsreader", Georgia, "Times New Roman", serif;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--bg:#03050a;--ink:#f4f1ed;--ink-soft:#8d8880;--ink-faint:#322e2a;--glow-warm:#ffdcb413;--glow-warm-mid:#ffdcb408;--glow-cool:#b4c8ff0d;--glow-cool-mid:#b4c8ff05;--field-opacity:.07;--scrim:#03050a80;--scrim-edge:#03050ae6;--scrim-brightness:.85;--shadow-near:#0006;--shadow-far:#000000e6;--measure:53rem;--prose:36rem;--portrait:14rem;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-time=day]{--bg:#faf8f4;--ink:#14110f;--ink-soft:#6b6560;--ink-faint:#d8d3cd;--glow-warm:#ffb86c29;--glow-warm-mid:#ffb86c0f;--glow-cool:#8caae61a;--glow-cool-mid:#8caae60a;--field-opacity:.08;--scrim:#faf8f473;--scrim-edge:#faf8f4d9;--scrim-brightness:1;--shadow-near:#14110f14;--shadow-far:#14110f40;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body,h1,h2,p,ul,li{margin:0;padding:0}ul{list-style:none}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:17px;line-height:1.65;transition:background-color 1.5s,color 1.5s}body:before,body:after{content:"";z-index:-1;pointer-events:none;will-change:transform;border-radius:50%;position:fixed}body:before{background:radial-gradient(closest-side, var(--glow-warm) 0%, var(--glow-warm-mid) 45%, transparent 72%);width:140vmax;height:140vmax;animation:52s ease-in-out infinite alternate drift-a;top:-70vmax;left:-50vmax}body:after{background:radial-gradient(closest-side, var(--glow-cool) 0%, var(--glow-cool-mid) 45%, transparent 72%);width:110vmax;height:110vmax;animation:68s ease-in-out infinite alternate drift-b;bottom:-70vmax;right:-60vmax}@keyframes drift-a{0%{transform:translate(0,0)}50%{transform:translate(6vw,5vh)}to{transform:translate(-4vw,8vh)}}@keyframes drift-b{0%{transform:translate(0,0)}50%{transform:translate(-7vw,-4vh)}to{transform:translate(3vw,-9vh)}}@media (prefers-reduced-motion:reduce){body:before,body:after{animation:none}}.field{z-index:-1;pointer-events:none;width:100%;height:100%;color:var(--ink);opacity:var(--field-opacity);position:fixed;inset:0}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#root{min-height:100vh}@supports (min-height:100svh){#root{min-height:100svh}}.page{justify-content:center;align-items:center;min-height:100vh;padding:4rem 1.5rem;display:flex}@supports (min-height:100svh){.page{min-height:100svh}}.column{width:100%;max-width:var(--measure)}.greeting{margin-bottom:2.5rem}.greeting-word{font-family:var(--font-serif);letter-spacing:-.03em;align-items:center;height:1.3em;font-size:clamp(2.75rem,9vw,4rem);font-weight:400;line-height:1.1;display:flex}.greeting-char{white-space:pre;animation:.7s cubic-bezier(.2,.7,.2,1) both char-in;display:inline-block}.greeting-char.is-leaving{animation:.46s cubic-bezier(.55,0,.75,0) both char-out}@keyframes char-in{0%{opacity:0;filter:blur(8px);transform:translateY(.42em)}to{opacity:1;filter:blur();transform:translate(0,0)}}@keyframes char-out{0%{opacity:1;filter:blur();transform:translate(0,0)}to{opacity:0;filter:blur(8px);transform:translateY(-.34em)}}.greeting-language{height:1.6em;font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:1rem;font-size:.7rem;font-weight:400}.greeting-language span{animation:.9s both label-in;display:inline-block}.greeting-language span.is-leaving{animation:.42s both label-out}@keyframes label-in{0%{opacity:0}35%{opacity:0}to{opacity:1}}@keyframes label-out{to{opacity:0}}.body-grid{grid-template-columns:var(--portrait) 1fr;align-items:stretch;column-gap:2.5rem;display:grid}.body-grid.is-text-only{grid-template-columns:1fr}.prose{max-width:var(--prose)}.portrait{height:100%;margin:0;animation:.7s cubic-bezier(.2,.7,.2,1) 80ms both rise}.portrait img{object-fit:cover;background-color:var(--ink-faint);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;border-radius:4px;width:100%;height:100%;display:block}.bio-block{animation:.7s cubic-bezier(.2,.7,.2,1) .12s both rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translate(0,0)}}.eyebrow{font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.1rem;font-size:.7rem;font-weight:500}.eyebrow .dot{color:var(--ink-faint);margin:0 .35em}.bio{letter-spacing:-.006em;text-wrap:pretty;font-size:1.0625rem;line-height:1.75}.company{white-space:nowrap;box-shadow:inset 0 -1px 0 var(--ink-faint);transition:box-shadow .32s cubic-bezier(.2,.7,.2,1);position:relative}.company:hover,.company:focus-visible,.company.is-active{box-shadow:inset 0 -1px 0 var(--ink)}.company-note,.company-notes{font-family:var(--font-sans);letter-spacing:.01em;color:var(--ink-soft);margin-top:1.6rem;font-size:.775rem;line-height:1.6}.company-note-where{color:var(--ink-soft)}.company-note-text{color:var(--ink-soft);display:block}.company-note-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-right:.7em;font-weight:500;display:inline-block}.company-note{display:none}.company-notes li+li{margin-top:.5rem}@media (hover:hover) and (pointer:fine){.company-note{min-height:3.2em;display:block}.company-notes{display:none}}.company-note span{animation:.42s both note-in}@keyframes note-in{0%{opacity:0}to{opacity:1}}.icons{gap:1.5rem;margin-top:2.25rem;display:flex}.icon-link{color:var(--ink-soft);margin:-.625rem;padding:.625rem;transition:color .28s,transform .32s cubic-bezier(.2,.7,.2,1);animation:.62s cubic-bezier(.2,.7,.2,1) both rise;display:inline-flex}button.icon-link{font:inherit;cursor:pointer;background:0 0;border:0}.icon-link:hover,.icon-link:focus-visible{color:var(--ink);transform:translateY(-2px)}html:has(.contact-dialog[open]){overflow:hidden}.contact-dialog{width:min(30rem,100% - 2rem);max-width:none;max-height:none;color:inherit;opacity:0;transition:opacity .24s ease, transform .38s cubic-bezier(.2, .7, .2, 1), overlay .38s allow-discrete, display .38s allow-discrete;background:0 0;border:0;margin:auto;padding:0;overflow:visible;transform:translateY(12px)scale(.985)}.contact-dialog[open]{opacity:1;transform:none}@starting-style{.contact-dialog[open]{opacity:0;transform:translateY(12px)scale(.985)}}.contact-dialog::backdrop{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(ellipse 70% 60% at 50% 45%, var(--scrim), var(--scrim-edge) 100%);-webkit-backdrop-filter:blur(14px) saturate(.55) brightness(var(--scrim-brightness));backdrop-filter:blur(14px) saturate(.55) brightness(var(--scrim-brightness));opacity:0;transition:opacity .42s ease, overlay .42s allow-discrete, display .42s allow-discrete}.contact-dialog[open]::backdrop{opacity:1}@starting-style{.contact-dialog[open]::backdrop{opacity:0}}.contact-panel{overscroll-behavior:contain;background:linear-gradient(180deg, color-mix(in srgb, var(--ink) 5%, var(--bg)), color-mix(in srgb, var(--ink) 2.5%, var(--bg)) 60%);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);max-height:calc(100dvh - 2rem);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--ink) 7%, transparent), 0 1px 2px var(--shadow-near), 0 40px 100px -30px var(--shadow-far);border-radius:12px;padding:1.75rem 1.75rem 1.5rem;overflow-y:auto}.contact-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.contact-title{font-family:var(--font-serif);letter-spacing:-.02em;font-size:1.75rem;font-weight:400;line-height:1.15}.contact-title:focus{outline:none}.contact-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;margin:-.45rem -.6rem 0 0;padding:.6rem;transition:color .28s;display:inline-flex}.contact-close:hover,.contact-close:focus-visible{color:var(--ink)}.contact-close svg{width:1.1rem;height:1.1rem}.contact-lede{font-family:var(--font-sans);color:var(--ink-soft);margin-top:.5rem;font-size:.8rem;line-height:1.6}.contact-reply-to{color:var(--ink);overflow-wrap:anywhere}.contact-form{gap:1.1rem;margin-top:1.5rem;display:grid}.contact-form[hidden]{display:none}.contact-done{justify-items:start;gap:1.5rem;display:grid}.contact-field{gap:.45rem;display:grid}.contact-field span{font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-size:.7rem;font-weight:500}.contact-field input,.contact-field textarea{width:100%;font:inherit;color:var(--ink);border:1px solid var(--ink-faint);background:0 0;border-radius:4px;padding:.6rem .75rem;font-size:1rem;line-height:1.5;transition:border-color .28s}.contact-field textarea{resize:vertical;min-height:7.5rem}.contact-field input:hover,.contact-field textarea:hover,.contact-field input:focus,.contact-field textarea:focus{border-color:var(--ink-soft)}.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline-offset:2px}.contact-field [aria-invalid=true]{border-color:var(--ink)}.contact-email,.contact-message,.contact-files{display:grid}.contact-files-row{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;display:flex}.contact-attach{font-family:var(--font-sans);color:var(--ink);border:1px dashed var(--ink-faint);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.45rem;padding:.45rem .8rem .45rem .65rem;font-size:.775rem;transition:border-color .28s;display:inline-flex}.contact-attach:hover,.contact-attach:focus-visible{border-color:var(--ink-soft)}.contact-attach svg{width:.95rem;height:.95rem;color:var(--ink-soft)}.contact-files-note{font-family:var(--font-sans);color:var(--ink-soft);font-size:.7rem}.contact-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.contact-file-list{flex-wrap:wrap;gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.contact-file{max-width:100%;font-family:var(--font-sans);color:var(--ink);border:1px solid var(--ink-faint);border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .3rem .3rem .65rem;font-size:.75rem;animation:.26s both note-in;display:inline-flex}.contact-file-name{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.contact-file-size{color:var(--ink-soft);flex:none}.contact-file-remove{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;padding:.25rem;transition:color .28s;display:inline-flex}.contact-file-remove:hover,.contact-file-remove:focus-visible{color:var(--ink)}.contact-file-remove svg{width:.75rem;height:.75rem}.contact-panel.is-dragging{border-color:var(--ink-soft);border-style:dashed}.contact-hint{font-family:var(--font-sans);color:var(--ink-soft);font-size:.775rem;line-height:1.6}.contact-hint:not(:empty){margin-top:.45rem;animation:.32s both note-in}.contact-suggest{font:inherit;color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink-faint);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;padding:0;transition:box-shadow .28s}.contact-suggest:hover,.contact-suggest:focus-visible{box-shadow:inset 0 -1px 0 var(--ink)}.contact-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-challenge:empty{display:none}.contact-challenge{flex:0 0 100%}.contact-challenge iframe{margin-bottom:.9rem}.contact-actions{flex-wrap:wrap;align-items:center;gap:0 1.25rem;margin-top:.25rem;display:flex}.contact-send{font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bg);background:var(--ink);border:1px solid var(--ink);cursor:pointer;border-radius:4px;flex:none;padding:.6rem 1.5rem;font-size:.7rem;font-weight:500;transition:opacity .28s}.contact-send:disabled{opacity:.4;cursor:default}.contact-status{min-width:0;font-family:var(--font-sans);color:var(--ink-soft);flex:12rem;font-size:.775rem;line-height:1.6}:focus-visible{outline:1px solid var(--ink);outline-offset:4px;border-radius:2px}@media (width<=640px){.body-grid{grid-template-columns:1fr;row-gap:2rem}.portrait{width:var(--portrait);height:auto}.portrait img{aspect-ratio:4/5;height:auto}}@media (width<=480px){.page{align-items:flex-start;padding:3rem 1.25rem}.greeting{margin-bottom:2rem}.contact-dialog{width:100%;margin:auto 0 0;transform:translateY(2rem)}@starting-style{.contact-dialog[open]{transform:translateY(2rem)}}.contact-panel{max-height:calc(100dvh - 1rem);padding:1.5rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));border-bottom:0;border-radius:14px 14px 0 0}}@media (prefers-reduced-motion:reduce){.greeting-char,.greeting-char.is-leaving,.greeting-language span,.greeting-language span.is-leaving,.bio-block,.portrait,.icon-link,.company-note span,.contact-hint:not(:empty),.contact-file{animation:none!important}.contact-dialog,.contact-dialog::backdrop{transition:none}.icon-link{transition-duration:1ms}.icon-link:hover,.icon-link:focus-visible{transform:none}.company{transition-duration:1ms}}
