:root{color-scheme:light;--background:#fdfcfa;--secondary-ink:#615e58;--surface:#f3f1ed;--showcase-surface:#edf0f3;--icon-filter:none;--ink:#1f1e1c;--muted:#76726b;--line:#e8e5df;--hover-surface:#f4f2ee;--interaction-ease:cubic-bezier(.22, 1, .36, 1);color:var(--ink);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif}:root[data-theme=dark]{color-scheme:dark;--background:#1b1a18;--ink:#eeece7;--muted:#aaa59b;--secondary-ink:#c0bbb1;--line:#45413b;--hover-surface:#292723;--surface:#302d28;--showcase-surface:#272a2e;--icon-filter:invert(1)}*{box-sizing:border-box}html{scrollbar-gutter:stable}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}body{max-width:728px;margin:0 auto;padding:28px 24px 56px;font-size:16px;line-height:1.85}h1,h2,h3,p,ul,dl,dd{margin:0}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.contacts dd a,.contact-copy,.back-link,.all-link{text-underline-offset:5px;text-decoration:underline 1px #0000;transition:text-decoration-color .18s}main{margin-top:56px}main>section:first-of-type{margin-top:0}main:focus{outline:none}.site-header{view-transition-name:site-header;justify-content:space-between;align-items:center;gap:16px;min-height:44px;font-size:15px;display:flex}.brand{align-items:center;gap:8px;display:flex}.site-name{font-weight:600}.site-header a{align-items:center;min-height:44px;display:inline-flex}.main-nav{align-items:center;gap:20px;display:flex}.theme-toggle{width:32px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;padding:0;display:grid}.theme-toggle[hidden]{display:none}.theme-toggle:hover{color:var(--ink);background:var(--hover-surface)}.theme-toggle svg{display:none}.theme-toggle[data-preference=dark] .theme-dark,.theme-toggle[data-preference=light] .theme-light{display:block}.site-logo,.project-arrow,.all-link img{filter:var(--icon-filter)}.main-nav a{color:var(--muted);transition:color .18s}.main-nav a[aria-current=page]{color:var(--ink)}#about{scroll-margin-top:24px}h1{letter-spacing:-.34px;font-size:34px;font-weight:700;line-height:1.3}.site-logo{flex:0 0 28px;display:block}section{margin-top:88px}.section-heading{letter-spacing:normal;padding-bottom:8px;font-size:18px;font-weight:700;line-height:1.4}.section-head{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.section-head .section-heading{padding-bottom:0}.project-list{gap:14px;padding:0;list-style:none;display:grid}section .project-list{margin-top:14px}.project{isolation:isolate;border-radius:6px;align-items:center;gap:16px;min-height:71px;padding:8px 4px 8px 0;display:flex;position:relative}.project:before{content:"";z-index:-1;background:var(--hover-surface);opacity:0;border-radius:8px;transition:opacity .2s;position:absolute;inset:-2px -12px}.project-content{flex:1;min-width:0}.project-title{flex-wrap:wrap;align-items:center;gap:2px 10px;display:flex}.project-title h3{font-size:17px;font-weight:500;line-height:1.6}.tag{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:13px;line-height:1.5}.project p{color:var(--secondary-ink);text-wrap:pretty;margin-top:2px;font-size:15px;line-height:1.7}.project-arrow{opacity:.55;transition:transform .24s var(--interaction-ease), opacity .18s ease;flex-shrink:0}.note-list{margin-top:14px;padding:0;list-style:none}.note{isolation:isolate;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;display:flex;position:relative}.note:before{content:"";z-index:-1;background:var(--hover-surface);opacity:0;border-radius:8px;transition:opacity .2s;position:absolute;inset:0 -12px}.note h3{text-wrap:pretty;min-width:0;font-size:17px;font-weight:500;line-height:1.6}.note time{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.empty-note{color:var(--muted);margin-top:14px}.all-link img{opacity:.6;transition:transform .24s var(--interaction-ease), opacity .18s ease}.all-link{min-height:44px;color:var(--muted);flex-shrink:0;align-items:center;gap:4px;font-size:14px;transition:color .18s,text-decoration-color .18s;display:inline-flex}.about-copy{text-wrap:pretty;margin-top:14px;line-height:1.75}.about-copy p+p{margin-top:12px}.about-lead{margin-bottom:12px}.about-lead p:first-child{font-weight:500}.contacts{gap:2px;margin-top:14px;display:grid}.contacts>div{align-items:center;gap:14px;min-height:44px;display:flex}.contacts dt{width:56px;color:var(--muted);flex-shrink:0}.contacts dd{overflow-wrap:anywhere;align-items:center;gap:14px;min-width:0;font-weight:500;display:flex}.contacts dd a{align-items:center;min-height:44px;display:inline-flex}.contact-copy{background:0 0;border:0;min-height:44px;padding:0;font-weight:500}.copy-hint{color:var(--muted);font-size:14px;font-weight:400}#feedback:not(.sr-only){margin-top:12px;font-size:14px}footer{color:var(--muted);margin-top:88px;padding-top:16px;font-size:13px;line-height:1.85}.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}.skip-link{background:var(--ink);color:var(--background);z-index:2;padding:8px 16px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}.back-link{align-items:center;min-height:44px;font-size:15px;display:inline-flex}.page-header{margin:32px 0}.page-header p{color:var(--muted);margin-top:14px}.detail-meta{color:var(--muted);align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.sample-note{background:var(--surface);margin-bottom:32px;padding:12px 16px;font-size:14px}.prose{overflow-wrap:anywhere}.prose p,.prose ul,.prose ol{margin:16px 0}.prose h2{margin-top:32px;font-size:22px;line-height:1.5}.prose h3{margin-top:24px;font-size:18px}.prose img{max-width:100%;height:auto}.prose a,.product-link{text-underline-offset:4px;text-decoration:underline}.prose pre{background:var(--surface);padding:16px;overflow-x:auto}.product-link{align-items:center;min-height:44px;margin-top:24px;display:inline-flex}.project:focus-visible:before,.note:focus-visible:before{opacity:1}.project:focus-visible .project-arrow{opacity:1;transform:translate(2px,-2px)}@media (hover:hover) and (pointer:fine){.main-nav a:hover{color:var(--ink)}.contacts dd a:hover,.contact-copy:hover,.back-link:hover,.all-link:hover{text-decoration-color:currentColor}.project:hover:before,.note:hover:before{opacity:1}.project:hover .project-arrow{opacity:1;transform:translate(2px,-2px)}.all-link:hover{color:var(--ink)}.all-link:hover img{opacity:1;transform:translate(3px)}.prose a:hover,.product-link:hover{text-decoration-color:var(--muted)}}@media (width<=600px){body{padding-top:12px;padding-bottom:32px}main{margin-top:32px}h1{font-size:28px}.main-nav{gap:12px}section,footer{margin-top:64px}.project-title{column-gap:8px}}@media (width<=359px){body{padding-inline:20px}h1{font-size:25px}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{transition:none!important;animation:none!important}.project-arrow,.all-link img{transform:none!important}}
