:root{--bg:#f7f7f7;--fg:#000;--surface:#fff;--muted:#666;--subtle:#999;--date:#274860;--accent:#1f3a8a;--accent-tint:#1f3a8a1a;--line:#00000014;--art-gradient:linear-gradient(#f7f7f7, #e6e6e6);--shadow-float:0 .6px 1.3px -.9px #0000000d, 0 2.3px 5px -1.8px #0000000d, 0 10px 22px -2.75px #0000000d;--font-sans:var(--font-geist), system-ui, sans-serif;--column:600px;--gutter:28px;--header-h:104px;--footer-h:200px;--section-gap:88px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-card:cubic-bezier(.44, 0, .56, 1);--spring-bouncy:linear(0, .18 4%, .6 10%, .98 17%, 1.17 23%, 1.2 27%, 1.14 33%, 1.02 42%, .97 49%, .98 58%, 1.01 70%, 1);--spring-soft:linear(0, .29 7%, .75 17%, 1.02 28%, 1.06 34%, 1.03 45%, 1 60%, 1);--shadow-lift:0 .56px 1px -.875px #0000002b, 0 1.69px 3.04px -1.75px #00000029, 0 4.47px 8.04px -2.625px #00000024, 0 14px 25.2px -3.5px #00000014}@media (width<=809px){:root{--section-gap:88px}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--font-sans);letter-spacing:-.3px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:15px;line-height:21px}body{background:var(--bg);margin:0}h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}h1,h2,h3,h4{font-size:inherit;font-weight:inherit;line-height:inherit}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{z-index:3;height:var(--header-h);pointer-events:none;justify-content:center;align-items:flex-start;padding-top:8px;display:flex;position:sticky;top:0}.site-header:before,.site-header:after{content:"";z-index:-1;position:absolute;inset:0}.site-header:before{-webkit-backdrop-filter:blur(2px);mask-image:linear-gradient(#000 40%,#0000)}.site-header:after{-webkit-backdrop-filter:blur(8px);mask-image:linear-gradient(#000,#0000 50%)}.page{z-index:2;background:var(--bg);padding:0 var(--gutter) var(--section-gap);min-height:calc(100svh - var(--header-h) - var(--footer-h));position:relative}.page--home{gap:var(--section-gap);flex-direction:column;display:flex}.column{width:100%;max-width:var(--column);margin:0 auto}.site-footer{z-index:1;height:var(--footer-h);padding:24px var(--gutter);background:var(--bg);color:var(--fg);align-items:flex-end;display:flex;position:sticky;bottom:0}.site-footer--dark{color:#fff;background:#000}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;font-size:13px;line-height:16.9px;display:flex}.nav{pointer-events:auto;-webkit-backdrop-filter:blur(5px);box-shadow:var(--shadow-float);animation:nav-in 1.4s var(--spring-bouncy) .4s both;background:#ffffff80;border-radius:16px;gap:24px;padding:16px 20px;display:flex}.nav__link{align-items:center;gap:4px;transition:opacity .2s;display:inline-flex}.arrow{width:12px;height:12px;transition:transform .4s var(--spring-soft);flex:none;padding:2px}a:hover>.arrow,a:focus-visible>.arrow{transform:rotate(45deg)}@keyframes nav-in{0%{opacity:0;transform:translateY(-100px)}}.tag{background:var(--accent-tint);width:fit-content;color:var(--accent);letter-spacing:-.1px;white-space:nowrap;border-radius:6px;align-items:center;padding:4px 6px;font-size:10px;font-weight:500;line-height:12px;display:inline-flex}.section-title{font-size:15px;font-weight:600;line-height:19.5px}.links{flex-wrap:wrap;align-items:baseline;display:flex}.links li{list-style:none}.links li+li:before{content:"·";text-align:center;width:18px;text-decoration:none;display:inline-block}.ul-link,.links a{text-underline-offset:2px;text-decoration:underline 1px;transition:opacity .2s}.ul-link:hover,.links a:hover{opacity:.6}.links ul,ul.links{padding:0}.fade-in{animation:fade-in 1s var(--ease-out) var(--delay,0s) both}@keyframes fade-in{0%{opacity:0}}.rise{opacity:0;transform:translateY(4px)}[data-inview=true] .rise,.rise[data-inview=true]{opacity:1;transition:opacity .6s var(--ease-out) var(--delay,.6s), transform .6s var(--spring-soft) var(--delay,.6s);transform:none}.chars .char{white-space:pre;display:inline-block}.chars--load .char,[data-inview=true] .chars--view .char{animation:char-in .4s var(--ease-out) both;animation-delay:calc(var(--start,0s) + var(--i) * 50ms)}.chars--view .char{opacity:0}@keyframes char-in{0%{opacity:0;filter:blur(10px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}@media (scripting:none){.rise,.chars--view .char{opacity:1;transform:none}}.hero{flex-direction:column;gap:40px;display:flex}.hero__text{flex-direction:column;gap:16px;display:flex}.hero__logo{height:36px}.hero__logo img{width:11px;height:11px;image-rendering:pixelated;margin-left:1px}.hero__name{font-size:15px;font-weight:600;line-height:19.5px}.roles{height:20px;margin-top:-16px;position:relative;overflow:hidden}.roles__track{animation:roles 7.5s var(--spring-soft) infinite;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roles__item{align-items:center;gap:6px;height:22px;line-height:20px;display:flex}@keyframes roles{0%,23%{transform:translateY(0)}33.33%,56.33%{transform:translateY(-22px)}66.66%,89.66%{transform:translateY(-44px)}to{transform:translateY(-66px)}}.hero__intro,.section{flex-direction:column;gap:16px;display:flex}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.card{background:var(--surface);min-height:318px;transition:transform .4s var(--ease-card), box-shadow .4s var(--ease-out);border-radius:16px;flex-direction:column;gap:16px;padding:16px;display:flex}.card:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px)}.card__art{background:var(--art-gradient);border-radius:12px;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;height:164px;display:grid;position:relative;overflow:hidden}.card__details{flex-direction:column;gap:8px;display:flex}.card__title{font-size:15px;font-weight:600;line-height:19.5px}.card__summary{color:var(--muted);font-size:12px;line-height:16px}.card .tag{margin-top:auto}.stat-widget{background:var(--surface);border-radius:12px;flex-direction:column;gap:1px;width:148px;padding:16px;font-weight:500;display:flex}.stat-widget__label{letter-spacing:-.48px;font-size:16px;line-height:19.2px}.stat-widget__value{letter-spacing:-.78px;font-size:26px;line-height:31.2px}.stat-widget__delta{letter-spacing:-.3px;color:var(--subtle);align-items:center;gap:4px;font-size:10px;line-height:12px;display:flex}.stat-widget__delta svg{opacity:0;width:6px;height:8px;transition:opacity .4s var(--ease-out)}[data-inview=true] .stat-widget__delta svg{opacity:1;transition-delay:1.5s}.breath-canvas{width:100%;height:100%;display:block}.breath-canvas--card{aspect-ratio:2;height:auto;max-height:100%}.writing{flex-direction:column;gap:10px;margin-inline:-12px;display:flex}.writing .section-title{padding-inline:12px}.writing__list{flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.writing__row{border-radius:8px;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 12px;transition:background-color .2s;display:flex}.writing__row:hover{background:var(--accent-tint)}.writing__date{color:var(--date);flex:none;font-size:12px;line-height:16px}.page--article{padding-top:40px}.article-header{flex-direction:column;gap:10px;display:flex}.article-header__title-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:3px 0 16px;display:flex}.article-header__title-row .tag{margin-top:6px}.article-title{letter-spacing:-.44px;font-size:22px;font-weight:600;line-height:30.8px}.article-date{color:var(--subtle);font-size:12px;line-height:16px}.related{border-bottom:1px solid var(--line);flex-direction:column;margin-top:30px;padding-bottom:16px;display:flex}.related__label{font-size:15px;font-weight:600;line-height:21px}.related a{align-items:center;gap:4px;width:fit-content;display:inline-flex}.article-cover{width:100%;margin-top:40px}.article-hero-video{border-radius:12px;width:100%;margin-top:24px}.prose,.prose>*+*{margin-top:16px}.prose h2,.prose h3{letter-spacing:-.4px;font-weight:600}.prose h2{font-size:19px;line-height:24.7px}.prose h3{font-size:16px;line-height:22px}.prose *+h2,.prose *+h3{margin-top:44px}.prose a{text-underline-offset:2px;text-decoration:underline 1px}.prose a:hover{opacity:.6}.prose ul,.prose ol{padding-left:20px}.prose li+li{margin-top:6px}.prose blockquote{border-left:2px solid var(--line);color:var(--muted);padding-left:16px}.prose img,.prose video{border-radius:12px;width:100%}.prose pre{letter-spacing:0;border-radius:8px;padding:24px;font-size:14px;line-height:22px;overflow-x:auto;background-color:#161820!important}.prose code{letter-spacing:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.prose :not(pre)>code{background:#0000000d;border-radius:4px;padding:1px 4px}.prose hr{border:0;border-top:1px solid var(--line);margin-block:32px}.prose--page{margin-top:0}.prose--page>h1:first-child{border-bottom:1px solid var(--line);letter-spacing:-.44px;padding:3px 0 16px;font-size:22px;font-weight:600;line-height:30.8px}.prose--page>h1:first-child a{color:var(--accent);text-decoration:none}.prose--page>h1:first-child+p{color:var(--subtle);margin-top:10px;font-size:12px;line-height:16px}.prose--page>h1:first-child+p+*{margin-top:30px}.article-next{justify-content:flex-end;margin-top:104px;display:flex}.article-next a{align-items:center;gap:4px;display:inline-flex}.page--listing{padding-top:0}.listing-header{margin-bottom:16px;padding:9px 0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px;padding:0;list-style:none;display:grid}.project-tile{flex-direction:column;gap:12px;display:flex}.project-tile__image{aspect-ratio:290/250;object-fit:cover;width:100%;transition:transform .35s var(--ease-out);background:#e6e6e6;border-radius:12px}.project-tile:hover .project-tile__image{transform:scale(1.015)}.project-tile__details{flex-direction:column;gap:16px;display:flex}.project-tile__title{text-underline-offset:2px;font-size:15px;font-weight:600;line-height:22.5px;text-decoration:underline 1px}.project-tile__summary{color:var(--muted);font-size:12px;line-height:16px}.page--bio{gap:var(--section-gap);flex-direction:column;padding-top:60px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.job{flex-direction:column;gap:32px;display:flex}.job__head{justify-content:space-between;align-items:center;gap:16px;min-height:20px;display:flex}.job__company{font-size:15px;font-weight:600;line-height:19.5px}.job__logo{width:auto;height:15px;display:block}.job__body{flex-direction:column;gap:8px;display:flex}.job__role{font-weight:600;line-height:19.5px}.job__body p+p{margin-top:16px}.history{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.history li{justify-content:space-between;align-items:center;gap:16px;display:flex}.not-found{flex-direction:column;gap:16px;padding-top:60px;display:flex}@media (width<=809px){.page{padding-bottom:56px}.writing{margin-inline:-16px}.writing .section-title,.writing__row{padding-inline:16px}.site-footer__inner{flex-direction:column;align-items:flex-start}}@media (width<=599px){.cards,.project-grid{grid-template-columns:1fr}.cards{margin-inline:-4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.roles__track{animation:none}}
