:root{color-scheme:light;--background:#f5f7f4;--surface:#fff;--surface-subtle:#edf1ed;--surface-strong:#e2e9e6;--text:#172126;--text-soft:#526068;--text-faint:#6d797f;--accent:#476d76;--accent-strong:#314f59;--accent-soft:#dce8e6;--border:#d6dedb;--shadow:0 22px 60px #1721261a;--shadow-soft:0 10px 30px #17212612;--radius-sm:.65rem;--radius-md:1rem;--radius-lg:1.5rem;--max-width:70rem;--reading-width:46rem;--header-height:4.75rem}:root[data-theme=dark]{color-scheme:dark;--background:#111718;--surface:#192123;--surface-subtle:#202a2c;--surface-strong:#293537;--text:#edf3f1;--text-soft:#b3c0bd;--text-faint:#8e9c99;--accent:#9bbec3;--accent-strong:#c1d8db;--accent-soft:#253a3e;--border:#324043;--shadow:0 22px 60px #00000047;--shadow-soft:0 10px 30px #0003}*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);text-rendering:optimizelegibility}body{background:radial-gradient(circle at 85% 5%, var(--accent-soft), transparent 28rem), var(--background);min-width:20rem;min-height:100vh;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;line-height:1.65;transition:background-color .18s,color .18s}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent-strong);text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-underline-offset:.2em}a:hover{text-decoration-color:currentColor}button,input,textarea,select{font:inherit}img,picture,svg{max-width:100%;display:block}::selection{background:var(--accent);color:var(--surface)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--text);color:var(--surface);padding:.65rem .9rem;font-weight:700;text-decoration:none;transition:translate .15s;position:fixed;top:.75rem;left:.75rem;translate:0 -180%}.skip-link:focus{translate:0}.site-header{z-index:50;min-height:var(--header-height);border-bottom:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--background) 82%, transparent);backdrop-filter:blur(18px)saturate(130%);position:sticky;top:0}.header-shell,.footer-shell,.page-shell{width:min(calc(100% - 2.5rem), var(--max-width));margin-inline:auto}.header-shell{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:.7rem;font-weight:760;text-decoration:none;display:inline-flex}.brand__mark{background:var(--accent-strong);width:2.1rem;height:2.1rem;color:var(--surface);letter-spacing:-.08em;border-radius:.7rem;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;display:grid}.header-actions,.site-nav,.site-nav__list{align-items:center;display:flex}.header-actions{gap:.9rem}.site-nav__list{gap:1.15rem;margin:0;padding:0;list-style:none}.site-nav a{color:var(--text-soft);font-size:.93rem;font-weight:650;text-decoration:none;position:relative}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text)}.site-nav a[aria-current=page]:after{background:var(--accent);content:"";border-radius:999px;height:2px;position:absolute;bottom:-.55rem;left:0;right:0}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:2.45rem;height:2.45rem;color:var(--text-soft);cursor:pointer;border-radius:999px;place-items:center;transition:border-color .15s,color .15s,transform .15s;display:grid}.theme-toggle:hover{border-color:var(--accent);color:var(--text);transform:translateY(-1px)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle__moon,:root[data-theme=dark] .theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__moon{display:block}main{min-height:calc(100vh - var(--header-height))}.hero{min-height:min(46rem, calc(100vh - var(--header-height)));grid-template-columns:minmax(0,1fr) minmax(15rem,21rem);align-items:center;gap:clamp(3rem,8vw,7rem);padding-block:clamp(5rem,10vw,8rem);display:grid}.hero__copy{max-width:46rem}.eyebrow{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6rem;margin:0 0 1.15rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;font-weight:700;display:inline-flex}.eyebrow:before{background:var(--accent);content:"";border-radius:999px;width:2.75rem;height:2px}.hero h1{max-width:12ch;color:var(--text);letter-spacing:-.065em;margin:0;font-size:clamp(3.1rem,9vw,6.75rem);font-weight:780;line-height:.95}.hero__lead{max-width:39rem;color:var(--text-soft);margin:1.75rem 0 0;font-size:clamp(1.12rem,2vw,1.35rem);line-height:1.65}.hero__location{color:var(--text-faint);margin:.85rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{border:1px solid var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:2.8rem;padding:.65rem 1.05rem;font-size:.93rem;font-weight:720;text-decoration:none;transition:background-color .15s,color .15s,transform .15s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--primary{background:var(--accent-strong);color:var(--surface)}.button--secondary{color:var(--accent-strong);background:0 0}.button--secondary:hover{background:var(--accent-soft)}.social-links{flex-wrap:wrap;gap:.5rem 1rem;margin:1.6rem 0 0;padding:0;list-style:none;display:flex}.social-links a{color:var(--text-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;font-weight:650}.social-links a:hover{color:var(--text)}.hero__visual{justify-self:end;position:relative}.hero__visual:before,.hero__visual:after{z-index:-1;content:"";border-radius:999px;position:absolute}.hero__visual:before{border:1px solid var(--border);inset:-1.4rem 1.7rem 1.4rem -1.7rem}.hero__visual:after{background:var(--accent-soft);width:7rem;height:7rem;bottom:-1.7rem;right:-1.7rem}.profile-photo{border:1px solid var(--border);background:var(--surface);width:min(21rem,34vw);box-shadow:var(--shadow);border-radius:2.1rem;margin:0;overflow:hidden;rotate:1.5deg}.profile-photo img{aspect-ratio:637/607;object-fit:cover;width:100%;height:auto}.section{border-top:1px solid var(--border);padding-block:clamp(4.5rem,9vw,7rem)}.section--compact{padding-block:clamp(3.5rem,7vw,5rem)}.section-header{grid-template-columns:minmax(10rem,.38fr) minmax(0,1fr);gap:2rem 5rem;margin-bottom:2.8rem;display:grid}.section-kicker{color:var(--accent-strong);letter-spacing:.1em;text-transform:uppercase;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;font-weight:700}.section-title{color:var(--text);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.05}.section-description{max-width:44rem;color:var(--text-soft);margin:1rem 0 0;font-size:1.08rem}.about-grid{grid-template-columns:minmax(10rem,.38fr) minmax(0,1fr);gap:2rem 5rem;display:grid}.about-copy{max-width:44rem;color:var(--text-soft);font-size:clamp(1.08rem,2vw,1.25rem)}.about-copy p{margin:0}.about-copy p+p{margin-top:1.15rem}.entry-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem;display:grid}.entry-card,.empty-state{border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:var(--shadow-soft)}.tag-list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.tag{background:var(--surface-subtle);color:var(--text-soft);border-radius:999px;padding:.35rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.74rem;line-height:1.25;display:inline-flex}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-card{min-height:17rem;color:inherit;flex-direction:column;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;position:relative;overflow:hidden}.entry-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-3px)}.entry-card__media{aspect-ratio:16/9;border-bottom:1px solid var(--border);background:var(--surface-subtle);overflow:hidden}.entry-card__media img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.entry-card:hover .entry-card__media img{transform:scale(1.025)}.entry-card__body{flex-direction:column;flex:1;padding:1.4rem;display:flex}.entry-card__meta{color:var(--text-faint);justify-content:space-between;align-items:center;gap:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;display:flex}.entry-card h3{color:var(--text);letter-spacing:-.035em;margin:2rem 0 .65rem;font-size:clamp(1.3rem,2.8vw,1.75rem);line-height:1.15}.entry-card p{color:var(--text-soft);margin:0}.entry-card .tag-list{margin-top:auto;padding-top:1.4rem}.entry-card__arrow{color:var(--accent);font-size:1.25rem}.empty-state{padding:clamp(1.5rem,4vw,2.5rem)}.empty-state h3{color:var(--text);margin:0 0 .5rem}.empty-state p{max-width:42rem;color:var(--text-soft);margin:0}.section-actions{justify-content:flex-end;margin-top:1.5rem;display:flex}.text-link{align-items:center;gap:.4rem;font-weight:700;display:inline-flex}.work-list{gap:1rem;display:grid}.work-entry{border-top:1px solid var(--border);padding-block:1.6rem}.work-entry:first-child{border-top:0;padding-top:0}.work-entry__header{grid-template-columns:minmax(0,1fr) minmax(13rem,.48fr);gap:1rem 2rem;display:grid}.work-entry__company{color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;font-weight:720;text-decoration:none}a.work-entry__company:hover{text-decoration:underline}.work-entry h3{color:var(--text);letter-spacing:-.025em;margin:.35rem 0 0;font-size:clamp(1.15rem,2.5vw,1.45rem);line-height:1.25}.work-entry__meta{color:var(--text-faint);text-align:right;flex-direction:column;align-items:flex-end;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;display:flex}.work-entry__summary{max-width:48rem;color:var(--text-soft);margin:1rem 0}.work-entry>.tag-list{margin-top:1rem}.work-entry__highlights{max-width:52rem;color:var(--text-soft);gap:.55rem;margin:1.25rem 0 0;padding-left:1.25rem;display:grid}.work-entry--detailed{padding-block:2.2rem}.background-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,7vw,6rem);display:grid}.background-grid__title{color:var(--text);letter-spacing:-.035em;margin:1rem 0 .65rem;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.15}.background-grid p{color:var(--text-soft)}.background-grid__primary{margin-bottom:.35rem;font-weight:720;color:var(--accent-strong)!important}.background-grid__meta{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.language-list{gap:.8rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.language-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding-bottom:.8rem;display:flex}.language-list strong{color:var(--text)}.language-list span{color:var(--text-faint);text-align:right;font-size:.88rem}.page-hero{max-width:var(--reading-width);padding-block:clamp(4.5rem,9vw,7rem) 3rem}.page-hero__back{color:var(--text-soft);margin-bottom:2rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;display:inline-flex}.page-hero h1,.article-header h1{color:var(--text);letter-spacing:-.055em;margin:0;font-size:clamp(2.5rem,7vw,5rem);line-height:1}.page-hero p{color:var(--text-soft);margin:1.25rem 0 0;font-size:1.15rem}.list-stack{max-width:var(--reading-width);gap:1rem;margin:0;padding:0 0 6rem;list-style:none;display:grid}.list-entry{border-top:1px solid var(--border);color:inherit;grid-template-columns:7.5rem minmax(0,1fr) auto;align-items:start;gap:1.25rem;padding:1.3rem 0;text-decoration:none;display:grid}.list-entry:hover h2{color:var(--accent-strong)}.list-entry time{color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem}.list-entry h2{color:var(--text);margin:0;font-size:1.15rem;line-height:1.25;transition:color .15s}.list-entry p{color:var(--text-soft);margin:.35rem 0 0;font-size:.94rem}.article-shell{width:min(calc(100% - 2.5rem), var(--reading-width));margin-inline:auto;padding-block:clamp(4rem,8vw,6.5rem)}.article-header{margin-bottom:2.5rem}.article-header__meta{color:var(--text-faint);flex-wrap:wrap;gap:.45rem .9rem;margin-bottom:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;display:flex}.article-header__description{color:var(--text-soft);margin:1.25rem 0 0;font-size:1.15rem}.article-cover{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);box-shadow:var(--shadow-soft);margin:2.5rem 0;overflow:hidden}.article-cover img{width:100%;height:auto}.prose{color:var(--text-soft);font-family:Georgia,Times New Roman,serif;font-size:1.08rem;line-height:1.82}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{color:var(--text);letter-spacing:-.025em;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.25}.prose h2{margin:2.8rem 0 1rem;font-size:1.75rem}.prose h3{margin:2.2rem 0 .75rem;font-size:1.35rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose figure{margin-block:1.2rem}.prose a{font-weight:650}.prose img{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;height:auto}.prose code{background:var(--surface-strong);color:var(--text);border-radius:.35rem;padding:.12rem .32rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.prose pre{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;font-size:.9rem;line-height:1.65;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-soft);margin-inline:0;padding-left:1.2rem;font-style:italic}.prose table{border-collapse:collapse;width:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.92rem}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:.7rem}.article-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.7rem;margin-top:2.5rem;padding-top:2rem;display:flex}.site-footer{border-top:1px solid var(--border)}.footer-shell{color:var(--text-faint);justify-content:space-between;align-items:center;gap:1.5rem;padding-block:2rem;font-size:.86rem;display:flex}.footer-shell p{margin:0}.footer-links{gap:1rem;display:flex}.footer-links a{color:var(--text-soft)}@media (width<=52rem){.hero{grid-template-columns:minmax(0,1fr) 12rem;gap:2.5rem}.profile-photo{border-radius:1.5rem;width:12rem}}@media (width<=42rem){:root{--header-height:4.25rem}.header-shell,.footer-shell,.page-shell,.article-shell{width:min(calc(100% - 1.5rem), var(--max-width))}.brand__name{display:none}.site-nav__list{gap:.75rem}.site-nav a{font-size:.84rem}.hero{grid-template-columns:1fr;min-height:auto;padding-block:3.5rem 5rem}.hero__visual{grid-row:1;justify-self:start}.profile-photo{border-radius:1.2rem;width:8.5rem;rotate:0deg}.hero__visual:before{inset:-.75rem .9rem .75rem -.9rem}.hero__visual:after{width:4rem;height:4rem;bottom:-1rem;right:-1rem}.hero h1{font-size:clamp(3.4rem,18vw,5rem)}.section-header,.about-grid{grid-template-columns:1fr;gap:1rem}.entry-grid,.work-entry__header,.background-grid{grid-template-columns:1fr}.work-entry__meta{text-align:left;align-items:flex-start}.list-entry{grid-template-columns:1fr auto;gap:.35rem 1rem}.list-entry time{grid-column:1/-1}.footer-shell{flex-direction:column;align-items:flex-start}}@media (width<=27rem){.site-nav__list li:first-child{display:none}.header-actions{gap:.55rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root,:root[data-theme=dark]{color-scheme:light;--background:#fff;--surface:#fff;--surface-subtle:#f4f4f4;--text:#111;--text-soft:#333;--text-faint:#555;--accent:#333;--accent-strong:#111;--border:#ccc}body{background:#fff}.site-header,.site-footer,.skip-link,.theme-toggle,.hero__actions{display:none!important}.hero{min-height:auto;padding-block:2rem}.section{break-inside:avoid;padding-block:2rem}.entry-card,.empty-state,.profile-photo{box-shadow:none}}
