:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fafaf8;--foreground:#242623;--muted:#70736c;--border:#dedfd8;--surface:#f1f2ed;--surface-strong:#fff;--accent:#546b4d;--accent-soft:#e7ebe2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Arial,Helvetica,sans-serif}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#171916;--foreground:#e9ebe4;--muted:#a0a69b;--border:#34382f;--surface:#22261f;--surface-strong:#1c2019;--accent:#b5c5a8;--accent-soft:#303a2a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{background:var(--background);color:var(--foreground);min-width:320px;margin:0}body:before{display:none}button,input,textarea,select{font:inherit}button,a,input{touch-action:manipulation}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}img,video{max-width:100%;display:block}svg{flex-shrink:0}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}.wrap{width:min(1040px,100% - 96px);margin-inline:auto}.page-shell{min-height:100vh}.site-header{background:var(--background)}.navigation{border-bottom:1px solid var(--border);align-items:center;gap:38px;min-height:100px;display:flex;position:relative}.wordmark{letter-spacing:-.6px;white-space:nowrap;font-size:18px;font-weight:600}.wordmark span{color:var(--accent)}.nav-items{gap:30px;margin-left:auto;font-size:13px;display:flex}.nav-items a{color:var(--muted);padding:12px 0;transition:color .2s}.nav-items a:hover,.nav-items a.active{color:var(--foreground)}.nav-items a.active{text-underline-offset:7px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.nav-tools{border-left:1px solid var(--border);align-items:center;gap:12px;padding-left:22px;display:flex}.icon-button,.language-button{min-width:32px;min-height:36px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover,.language-button:hover{color:var(--foreground)}.language-button{letter-spacing:.06em;font-size:11px}.menu-toggle{display:none}.skip-link{z-index:100;background:var(--foreground);color:var(--background);padding:12px 18px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:16px}.overline,.section-index,.project-number,.project-stack,.hero-note,.article-meta,.filter-label{letter-spacing:.035em;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.7}.overline{text-transform:uppercase;letter-spacing:.13em}.hero{padding-top:98px;padding-bottom:74px}.hero h1{letter-spacing:-.06em;max-width:950px;margin:28px 0 30px;font-size:clamp(44px,6.2vw,76px);font-weight:400;line-height:1.06}.hero h1 span{color:var(--muted)}.hero-bottom{justify-content:space-between;align-items:flex-end;gap:50px;display:flex}.hero-description{max-width:510px;color:var(--muted);letter-spacing:-.015em;font-size:17px;line-height:1.7}.text-link{align-items:center;gap:14px;padding:7px 0;font-size:13px;font-weight:500;transition:color .2s;display:inline-flex}.text-link:hover{color:var(--accent)}.hero-link{white-space:nowrap;border-bottom:1px solid var(--foreground);margin-bottom:5px;padding-bottom:10px}.hero-note{align-items:center;gap:24px;margin-top:30px;display:flex}.hero-note a{align-items:center;gap:5px;display:inline-flex}.hero-note a:hover{color:var(--foreground)}.hero-note>span{border-right:1px solid var(--border);padding-right:24px}.home-section{border-top:1px solid var(--border);margin-bottom:60px;padding-top:45px}.section-heading{justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:24px;display:flex}.section-heading h2{letter-spacing:-.045em;font-size:25px;font-weight:400}.section-index{text-transform:uppercase;white-space:nowrap}.project-row{border-bottom:1px solid var(--border);grid-template-columns:32px minmax(160px,1fr) minmax(220px,1.2fr) 24px;align-items:start;column-gap:26px;padding:32px 0;display:grid;position:relative}.project-number{padding-top:5px;font-size:10px}.project-identity h3{letter-spacing:-.035em;font-size:22px;font-weight:400;line-height:1.3}.project-stack{letter-spacing:0;margin-top:13px;font-size:10px}.project-summary{color:var(--muted);padding-right:16px;font-size:14px;line-height:1.75}.row-arrow{color:var(--muted);margin-top:3px;transition:transform .2s,color .2s}.row-hitarea{position:absolute;inset:0}.project-row:hover h3,.project-row:hover .row-arrow{color:var(--accent)}.project-row:hover .row-arrow{transform:translate(2px,-2px)}.section-end{justify-content:flex-end;margin-top:18px;display:flex}.writing-row{border-bottom:1px solid var(--border);grid-template-columns:145px 1fr 20px;align-items:baseline;gap:30px;padding:24px 0;display:grid}.writing-row time{color:var(--muted);font-size:12px}.writing-row h3{letter-spacing:-.02em;font-size:17px;font-weight:400;line-height:1.5}.writing-row svg{color:var(--muted);align-self:center}.writing-row:hover h3{color:var(--accent)}.contact-section{border-top:1px solid var(--border);padding-block:64px 76px}.contact-section h2{letter-spacing:-.05em;margin-top:23px;font-size:clamp(32px,4vw,44px);font-weight:400;line-height:1.2}.contact-section>p:not(.overline){color:var(--muted);max-width:540px;margin-top:16px;font-size:15px;line-height:1.7}.contact-email{letter-spacing:-.035em;border-bottom:1px solid var(--border);overflow-wrap:anywhere;align-items:center;gap:22px;margin-top:32px;padding-bottom:9px;font-size:clamp(18px,2.6vw,28px);display:inline-flex}.contact-email:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding-block:25px 35px;font-size:11px;display:flex}.footer-links{gap:23px;display:flex}.footer-links a:hover{color:var(--foreground)}.page-intro{padding-top:74px;padding-bottom:46px}.page-intro h1{letter-spacing:-.055em;margin:20px 0;font-size:clamp(38px,5vw,60px);font-weight:400;line-height:1.13}.page-intro>p:not(.overline){color:var(--muted);max-width:590px;font-size:16px;line-height:1.8}.interior-page{min-height:65vh;padding-bottom:90px}.filter-bar{border-block:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:20px;padding-block:18px;display:flex}.filter-button{color:var(--muted);background:0 0;border:0;padding:4px 0;font-size:12px}.filter-button[aria-pressed=true]{color:var(--foreground);text-underline-offset:6px;text-decoration:underline}.filter-count{color:var(--muted);margin-left:auto;font-size:11px}.search-field{border-bottom:1px solid var(--border);max-width:440px;color:var(--muted);align-items:center;gap:12px;margin-bottom:28px;padding:14px 0;display:flex}.search-field input{color:var(--foreground);outline-offset:4px;background:0 0;border:0;width:100%;padding:4px;font-size:14px}.blog-list-row{border-bottom:1px solid var(--border);padding:30px 0;display:block}.blog-list-row h2{letter-spacing:-.035em;max-width:740px;margin:12px 0;font-size:24px;font-weight:400;line-height:1.35}.blog-list-row p{color:var(--muted);max-width:700px;font-size:14px;line-height:1.8}.blog-list-row:hover h2{color:var(--accent)}.article-meta{align-items:center;gap:18px;display:flex}.empty-state{color:var(--muted);padding:50px 0}.back-link{color:var(--muted);margin-top:40px}.detail-header{padding-top:35px}.detail-header h1{letter-spacing:-.055em;margin:24px 0;font-size:clamp(40px,6vw,70px);font-weight:400;line-height:1.1}.detail-summary{color:var(--muted);max-width:780px;font-size:18px;line-height:1.8}.detail-actions{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:28px;padding:28px 0 35px;display:flex}.detail-actions button{cursor:pointer;background:0 0;border:0}.detail-layout{grid-template-columns:220px 1fr;gap:60px;padding-top:45px;display:grid}.detail-label{font-size:13px;font-weight:500}.technology-list{color:var(--muted);margin:0;padding:16px 0 0;font-size:13px;line-height:2.2;list-style:none}.project-body{white-space:pre-line;color:var(--muted);font-size:15px;line-height:1.9}.project-body p{margin:0}.detail-media{border:1px solid var(--border);background:var(--surface);max-width:100%;margin:38px 0 0;padding:0}.detail-media img{width:100%;height:auto}.detail-media video{width:100%;max-height:600px}.media-caption{color:var(--muted);padding:12px 15px;font-size:11px}.article-wrap{max-width:720px;margin-inline:auto}.article-header{border-bottom:1px solid var(--border);margin-bottom:40px;padding-block:42px 38px}.article-header h1{letter-spacing:-.045em;margin:20px 0;font-size:clamp(34px,4.4vw,52px);font-weight:400;line-height:1.15}.article-header>p{color:var(--muted);font-size:17px;line-height:1.8}.article-content{overflow-wrap:anywhere;font-size:17px;line-height:1.9}.article-content>*{margin-block:0 24px}.article-content h1,.article-content h2,.article-content h3{letter-spacing:-.03em;margin-top:42px;margin-bottom:18px;font-weight:500;line-height:1.3}.article-content h1,.article-content h2{font-size:28px}.article-content h3{font-size:21px}.article-content a{text-underline-offset:3px;text-decoration:underline}.article-content blockquote{border-left:2px solid var(--border);color:var(--muted);margin-inline:0;padding:4px 24px}.article-content pre{background:var(--surface);padding:24px;font-size:13px;line-height:1.8;overflow-x:auto}.article-content code{font-family:SFMono-Regular,Consolas,monospace;font-size:.85em}.article-content :not(pre)>code{background:var(--surface);padding:2px 5px}.article-content li{margin-bottom:7px}.article-content img{object-fit:contain;max-height:500px}.article-content table{border-collapse:collapse;display:block;overflow-x:auto}.article-content td,.article-content th{border:1px solid var(--border);text-align:left;padding:10px}.article-bottom{border-top:1px solid var(--border);margin-top:55px;padding-top:25px}.route-loading{min-height:60vh;color:var(--muted);padding:100px 0}@media (width>=1400px){.hero{padding-top:115px;padding-bottom:86px}}@media (width<=760px){.wrap{width:calc(100% - 48px)}.navigation{gap:20px;min-height:80px}.nav-items{gap:20px}.nav-tools{gap:5px;padding-left:12px}.hero{padding-top:65px;padding-bottom:55px}.hero h1{font-size:clamp(42px,7.7vw,60px)}.hero-bottom{display:block}.hero-description{font-size:16px}.hero-link{margin-top:27px}.hero-note{gap:17px;margin-top:25px}.hero-note>span{padding-right:17px}.home-section{margin-bottom:46px;padding-top:32px}.project-row{grid-template-columns:22px 1fr 22px;gap:10px 18px;padding-block:26px}.project-summary{grid-area:2/2;max-width:550px;padding:0}.row-arrow{grid-area:1/3}.project-stack{margin-top:9px}.project-identity h3{font-size:21px}.section-heading h2{font-size:23px}.section-index{font-size:9px}.writing-row{grid-template-columns:95px 1fr 16px;gap:15px}.writing-row h3{font-size:16px}.contact-section{padding-block:45px 55px}.detail-layout{grid-template-columns:1fr;gap:30px}.technology-list{flex-wrap:wrap;gap:8px 18px;padding-top:12px;display:flex}.article-content{font-size:16px}.page-intro{padding-top:50px}.detail-summary{font-size:16px}.site-footer{align-items:flex-start;line-height:1.6}}@media (width<=520px){.wrap{width:calc(100% - 40px)}.navigation{gap:10px;min-height:74px}.nav-tools{border:0;gap:5px;margin-left:auto;padding:0}.menu-toggle{display:inline-flex}.nav-items{display:none}.nav-items.is-open{z-index:20;background:var(--background);border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:20px 0;display:flex;position:absolute;inset:73px 0 auto}.nav-items.is-open a{padding:12px;font-size:15px}.wordmark{font-size:17px}.hero{padding-top:51px}.hero h1{letter-spacing:-.055em;margin-top:25px;font-size:clamp(35px,9vw,47px)}.overline{font-size:10px}.hero-note{flex-wrap:wrap;gap:13px;font-size:10px}.hero-note>span{padding-right:13px}.section-heading{align-items:center}.section-heading h2{font-size:22px}.section-index{font-size:8px}.writing-row{grid-template-columns:1fr 20px;gap:9px;padding-block:22px}.writing-row time{grid-column:1;font-size:11px}.writing-row h3{grid-area:2/1}.writing-row svg{grid-area:2/2}.project-row{grid-template-columns:20px 1fr 20px;column-gap:12px}.project-summary{font-size:13px}.project-stack{font-size:9px}.section-end{justify-content:flex-start}.site-footer{flex-direction:column;gap:14px}.filter-bar{gap:15px}.filter-count{width:100%;margin-left:0;padding-top:5px}.article-meta{gap:12px;font-size:10px}.article-header{padding-top:28px}.article-header>p{font-size:15px}.detail-actions{gap:20px}.contact-email{gap:12px}.contact-email svg{width:18px}.article-content pre{padding:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
