@font-face{font-family:"Instrument Serif";src:url(fonts/serif.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(fonts/serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(fonts/sans.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(fonts/mono.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(fonts/serif-ext.woff2) format("woff2");font-weight:400;font-style:normal;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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";src:url(fonts/serif-italic-ext.woff2) format("woff2");font-weight:400;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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(fonts/sans-ext.woff2) format("woff2");font-weight:100 900;font-style:normal;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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;src:url(fonts/mono-ext.woff2) format("woff2");font-weight:300 700;font-style:normal;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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper: #f4f2ed;--ink: #111110;--muted: #6b6860;--line: rgba(17, 17, 16, .14);--line-strong: rgba(17, 17, 16, .32);--accent: #d93a17;--accent-ink: #ab2e10;--accent-hot: #ff5b2e;--serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease: cubic-bezier(.16, 1, .3, 1);--pad: clamp(18px, 5vw, 72px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-snap-type:y mandatory;background:var(--paper)}html.is-scrolling{scroll-behavior:auto}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;font-feature-settings:"ss01" on,"cv11" on;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body:after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");background-size:240px 240px;mix-blend-mode:multiply}::selection{background:var(--ink);color:var(--paper)}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}em{font-style:italic}:focus-visible{outline:1px solid var(--accent);outline-offset:5px}.wrap{padding-inline:var(--pad)}.max{max-width:1600px;margin-inline:auto}[hidden]{display:none!important}.mono{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;line-height:1.7}.skip{position:fixed;top:8px;left:8px;z-index:700;padding:10px 16px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;transform:translateY(-160%);transition:transform .3s var(--ease)}.skip:focus{transform:none}main,.footer{position:relative;z-index:1}.mark{font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.02em}.mark .flip{display:inline-block;transform:scale(-1)}.mark i{display:inline-block;width:.1em;height:.1em;margin-inline:.14em;border-radius:50%;background:var(--mark-dot, var(--accent));vertical-align:.3em;transition:background .7s var(--ease)}@keyframes fade-in{to{opacity:1}}.intro{position:fixed;inset:0;z-index:500;display:flex;align-items:flex-end;padding:var(--pad);background:var(--ink);animation:intro-lift 1s var(--ease) 1.05s forwards}.intro-mark{--mark-dot: var(--accent-hot);font-size:clamp(44px,9vw,140px);line-height:.76;letter-spacing:-.04em;color:var(--paper);opacity:0;animation:fade-in .8s ease .1s forwards}@keyframes intro-lift{to{transform:translateY(-101%)}}.topbar{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;gap:22px;height:46px;padding-inline:var(--pad);background:#f4f2edb8;-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);transform:translateY(-101%);opacity:0;transition:transform .9s var(--ease),opacity .6s ease,background .7s var(--ease),color .7s var(--ease),border-color .7s var(--ease)}.topbar.is-visible{transform:none;opacity:1}.topbar.is-dark{background:var(--ink);color:var(--paper);border-bottom-color:#f4f2ed2e;transition:transform .9s var(--ease),opacity .6s ease,background .7s ease-in,color .7s ease-in,border-color .7s ease-in}.topbar.is-dark .mark i{background:var(--accent-hot);transition:background .7s ease-in}.topbar-mark{font-size:28px;padding-block:6px}.lang{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);opacity:.6;transition:color .7s ease-in,opacity .3s ease}.lang:hover{opacity:1}.topbar.is-dark .lang{color:var(--paper)}.section{position:relative;padding-block:clamp(90px,13.5vh,190px);scroll-margin-top:46px}.section-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;margin-bottom:clamp(52px,8vw,120px)}.sh-title{font-family:var(--serif);font-weight:400;font-size:clamp(38px,6.2vw,100px);line-height:.93;letter-spacing:-.035em}.about{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;padding-block:clamp(70px,12vh,140px)}.about .wrap{width:100%}.about h1{font-family:var(--serif);font-weight:400;font-size:clamp(58px,11vw,180px);line-height:.84;letter-spacing:-.045em}.about h1 em{display:block;padding-left:clamp(0px,8vw,140px);font-style:italic}.about .chapter-cta{margin-top:clamp(28px,4.5vh,48px)}.bio{position:relative;min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:46px;display:flex;align-items:center;overflow:hidden;padding-top:clamp(90px,13vh,150px);padding-bottom:calc(clamp(90px,13vh,150px) + 46px)}.bio .wrap{width:100%}.bio-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,100px);align-items:start}.bio h2{margin-top:0;font-family:var(--serif);font-size:clamp(44px,6vw,86px);line-height:.98;letter-spacing:-.03em}.bio h2 em{font-style:italic}.contact{position:relative;scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:46px;min-height:calc(100svh - 46px);display:flex;align-items:center;padding-block:clamp(40px,7vh,80px)}.contact .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,100px);align-items:start}.contact-head{grid-column:1}.contact-title{margin:0;font-family:var(--serif);font-size:clamp(42px,6vw,84px);line-height:.95;letter-spacing:-.035em;text-align:left;color:var(--paper)}.contact-title em{font-style:italic}.contact-sub{max-width:28ch;margin-top:18px;font-size:15px;line-height:1.6;color:#f4f2ed9e}#contact-form{scroll-margin-top:46px}.contact-form{grid-column:2;position:relative;width:100%;max-width:560px;margin:0}.cform{display:flex;flex-direction:column;gap:clamp(18px,2.2vw,26px)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.field input,.field textarea{width:100%;padding:9px 0 11px;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;transition:border-color .35s ease,box-shadow .35s ease}.field textarea{min-height:104px;resize:vertical}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink)}.field.has-error input,.field.has-error textarea{border-bottom-color:var(--accent);box-shadow:0 1px 0 0 var(--accent)}.field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);transition:background-color 9999s ease}.field-error{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}.field-error:empty{display:none}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.form-actions{margin-top:10px;padding-top:26px}.submit{position:relative;display:inline-block;padding:0 0 10px;border:0;background:none;color:var(--ink);font-family:var(--serif);font-size:clamp(30px,3.8vw,50px);line-height:1;letter-spacing:-.02em;cursor:pointer;transition:translate .55s var(--ease),scale .18s var(--ease)}.submit:before,.submit:after{content:"";position:absolute;left:0;bottom:0;height:1px}.submit:before{width:100%;background:var(--line-strong)}.submit:after{width:0;background:var(--accent);transition:width .8s var(--ease)}.submit:hover:after{width:100%}.form-status{min-height:1.3em;font-size:12.5px;line-height:1.5;color:var(--muted)}.form-status.is-error{color:var(--accent-ink)}.submit:active,.fs-again:active,.footer-base a:active{scale:.97}.form-success{display:flex;flex-direction:column;gap:10px;padding-top:20px}.form-success[hidden]{display:none}.form-success:focus{outline:none}.fs-title{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.05;letter-spacing:-.02em}.fs-body{font-size:13.5px;line-height:1.6;color:var(--muted)}.fs-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:10px}.fs-again{padding:7px 0;border:0;border-bottom:1px solid transparent;background:none;color:var(--muted);font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color .4s ease,border-color .4s ease,translate .55s var(--ease),scale .18s var(--ease)}.fs-again:hover{color:var(--ink);border-color:var(--line-strong)}.form-success{animation:success-in .55s var(--ease)}@keyframes success-in{0%{opacity:0;transform:translateY(14px)}}.inverse{background:var(--ink);color:var(--paper)}.inverse .sh-title em{color:var(--accent-hot)}.inverse :focus-visible{outline-color:var(--accent-hot)}.inverse .field label{color:#f4f2ed8c}.inverse .field input,.inverse .field textarea{color:var(--paper);border-bottom-color:#f4f2ed66}.inverse .field input::placeholder,.inverse .field textarea::placeholder{color:#f4f2ed66}.inverse .field input:focus,.inverse .field textarea:focus{border-bottom-color:var(--paper);box-shadow:0 1px 0 0 var(--paper)}.inverse .field.has-error input,.inverse .field.has-error textarea{border-bottom-color:var(--accent-hot);box-shadow:0 1px 0 0 var(--accent-hot)}.inverse .field-error{color:var(--accent-hot)}.inverse .field input:-webkit-autofill{-webkit-text-fill-color:var(--paper)}.inverse .form-actions{border-top-color:#f4f2ed2e}.inverse .submit{color:var(--paper)}.inverse .submit:before{background:#f4f2ed66}.inverse .submit:after{background:var(--accent-hot)}.inverse .form-status{color:#f4f2ed8c}.inverse .form-status.is-error{color:var(--accent-hot)}.inverse .form-success{border-top-color:#f4f2ed2e}.inverse .fs-body{color:#f4f2ed8c}.inverse .fs-mail{border-color:#f4f2ed66}.inverse .fs-again{color:#f4f2ed8c}.inverse .fs-again:hover{color:var(--paper);border-color:#f4f2ed66}.footer{position:absolute;left:0;right:0;bottom:0;background:var(--ink);color:var(--paper)}.footer-brand{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:6px 16px}.footer .wrap{display:block}.footer-base{display:flex;justify-content:center;align-items:baseline;gap:16px;padding-block:12px;text-align:center;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#f4f2ed8c}.footer-base a{color:inherit;text-decoration:none;padding-bottom:2px;border-bottom:1px solid rgba(244,242,237,.18);transition:color .3s ease,border-color .3s ease}.footer-base a:hover{color:var(--paper);border-color:var(--paper)}.bot{position:absolute;right:clamp(24px,8vw,120px);bottom:18%;z-index:4;display:flex;flex-direction:column;align-items:flex-end;animation:bot-drift 18s ease-in-out infinite}@keyframes bot-drift{0%,to{transform:translate(0)}25%{transform:translate(-8px,-10px)}50%{transform:translate(5px,-16px)}75%{transform:translate(7px,-6px)}}.bot.is-open{animation-play-state:paused}.bot-callout{position:relative;margin-bottom:12px;padding:10px 14px;border:0;border-radius:999px;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:15px;line-height:1;white-space:nowrap;box-shadow:0 12px 30px #11111029,0 0 0 1px #1111100f;cursor:pointer}.bot-callout[hidden]{display:none}.bot-callout:after{content:"";position:absolute;right:20px;bottom:-5px;width:10px;height:10px;background:var(--paper);box-shadow:1px 1px #1111100f;transform:rotate(45deg)}.bot-toggle{position:relative;width:86px;height:86px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--ink);color:var(--paper);cursor:pointer;animation:bot-morph 11s ease-in-out infinite,bot-tilt 17s ease-in-out infinite;transition:transform .6s var(--ease)}.bot-toggle:before{content:"";position:absolute;inset:-10px;z-index:-1;border-radius:inherit;background:var(--ink);opacity:.16;filter:blur(14px)}@keyframes bot-tilt{0%,to{rotate:-4deg}50%{rotate:5deg}}@keyframes bot-morph{0%,to{border-radius:50%}25%{border-radius:58% 42% 52% 48%/46% 56% 44% 54%}50%{border-radius:44% 56% 43% 57%/55% 45%}75%{border-radius:52% 48% 58% 42%/48% 52%}}.bot-toggle:hover{transform:scale(1.06)}.bot-toggle svg{width:24px;height:24px}.bot-panel{width:min(356px,calc(100vw - 32px));margin-bottom:14px;overflow:hidden;border:1px solid rgba(17,17,16,.12);border-radius:34px 22px 30px 26px/26px 34px 22px 30px;background:var(--paper);rotate:-.7deg;color:var(--ink);box-shadow:0 30px 80px #11111042}.bot-panel[hidden]{display:none}.bot-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px 16px;border-bottom:1px solid rgba(17,17,16,.08)}.bot-id{display:flex;flex-direction:column;gap:4px;font-family:var(--serif);font-size:27px;line-height:1;letter-spacing:-.02em}.bot-close{padding:2px 4px;border:0;background:none;color:var(--ink);font-family:var(--serif);font-size:24px;line-height:1;cursor:pointer;opacity:.45;transition:opacity .3s ease}.bot-close:hover{opacity:1}.bot-log{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow-y:auto;padding:16px}.bot-msg{display:flex}.bot-msg-bot{flex-direction:column;align-items:flex-start;gap:6px}.bot-msg p{max-width:86%;margin:0;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5}.bot-msg-bot p{background:#1111100f}.bot-msg-user{justify-content:flex-end}.bot-msg-user p{background:var(--ink);color:var(--paper)}.bot-msg a{color:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px}.bot-form{display:flex;gap:8px;padding:12px 16px 16px;border-top:1px solid rgba(17,17,16,.08)}.bot-form input{flex:1;min-width:0;padding:6px 0;border:0;border-bottom:1px solid rgba(17,17,16,.2);border-radius:0;background:none;color:var(--ink);font-family:var(--sans);font-size:13px}.bot-form input:focus{outline:none;border-bottom-color:var(--ink)}.bot-form button{border:0;background:none;color:var(--ink);font-size:18px;cursor:pointer}.notfound{min-height:100svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:clamp(18px,3vw,32px);padding:var(--pad)}.notfound .mono{color:var(--muted)}.note-line{max-width:44ch;font-size:13.5px;line-height:1.7;color:var(--muted)}.notfound h1{font-family:var(--serif);font-weight:400;font-size:clamp(56px,13vw,180px);line-height:.86;letter-spacing:-.045em}.notfound h1 em{color:var(--muted)}.back{font-size:13px;border-bottom:1px solid var(--line-strong);padding-bottom:4px}.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity 1.15s var(--ease),transform 1.15s var(--ease)}.js [data-reveal].in{opacity:1;transform:none}.chapter-cta{position:relative;display:inline-flex;align-items:center;margin-top:clamp(22px,3.4vh,38px);padding-bottom:8px;border-bottom:1px solid var(--line-strong);font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);line-height:1;letter-spacing:-.02em;color:var(--ink);transition:color .4s ease,border-color .4s ease,opacity 1.15s var(--ease),transform 1.15s var(--ease)}.chapter-cta:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--accent);transition:width .8s var(--ease)}.chapter-cta:hover{border-color:transparent}.chapter-cta:hover:after{width:100%}.chapter-cta[data-reveal]{transition-delay:0s,0s,.35s,.35s}@media(max-width:900px){.section-head{grid-template-columns:minmax(0,1fr)}.contact{min-height:calc(100svh - 46px);padding-block:clamp(70px,10vh,110px)}.contact .wrap{display:block}.contact-title{margin-bottom:32px}.contact-form{max-width:100%}.bio-grid{grid-template-columns:minmax(0,1fr);gap:28px}}@media(max-width:720px){.contact-form input,.contact-form textarea{font-size:16px}.footer-base{padding-block:20px;font-size:9.5px}.bot{right:16px}.bot-panel{width:calc(100vw - 32px)}.bot-form input{font-size:16px}}@media(prefers-reduced-motion:reduce){.intro,.intro-mark{display:none}.js [data-reveal]{opacity:1;transform:none;transition:none}}
