:root{--max-width: 900px;--bg: #ffffff;--fg: #1a1a1a;--prose: #3a3a3a;--muted: #6b6b6b;--rule: #e6e6e6;--link: #1155cc;--card-bg: #fafafa;--card-border: #ececec;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #121212;--fg: #e8e8e8;--prose: #c9c9c9;--muted: #9a9a9a;--rule: #2a2a2a;--link: #6ea8fe;--card-bg: #1a1a1a;--card-border: #2a2a2a}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}main{max-width:var(--max-width);margin:0 auto;padding:4rem 1.25rem 2rem}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}section{margin-top:3rem}h1{font-size:2rem;margin:0 0 .25rem;letter-spacing:-.01em}h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 1rem;font-weight:600}h3{font-size:1.05rem;margin:0 0 .25rem;font-weight:600}p{margin:0 0 1rem}.tagline{font-size:1.15rem;color:var(--muted);margin:0 0 1rem}.header-links{font-size:.95rem;color:var(--muted)}.header-links a{color:var(--fg);white-space:nowrap}.sep{color:var(--rule);margin:0 .4rem}#about p{color:var(--prose);line-height:1.7}.timeline{margin:.25rem 0 0 3.75rem}.tl-item{position:relative;border-left:2px solid var(--rule);padding:0 0 1.6rem .9rem}.tl-item:last-child{padding-bottom:0}.tl-date{position:absolute;right:calc(100% + .6rem);top:.62rem;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tl-dot{position:absolute;left:-7px;top:.75rem;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--muted)}.tl-content{display:flex;gap:.8rem;align-items:flex-start}.tl-logo{width:30px;height:30px;flex-shrink:0;object-fit:contain}.tl-mono{display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--card-bg);border:1px solid var(--card-border);color:var(--muted);font-weight:600;font-size:.95rem}.tl-body{padding-top:.1rem}.tl-role{font-weight:600;font-size:.97rem}.tl-place{color:var(--muted);font-weight:400;font-size:.9rem}.tl-blurb{margin:.25rem 0 0;color:var(--prose);font-size:.92rem;line-height:1.55}@media(max-width:480px){.timeline{margin-left:3.25rem}.tl-date{font-size:.72rem}}.entry{margin-bottom:1.5rem}.entry h3{margin-bottom:.2rem}.entry p{margin:0;color:var(--muted);font-size:.97rem}.oss-role{margin-left:.5rem;font-size:.8rem;font-weight:500;font-style:italic;color:var(--muted)}#opensource .oss-links{margin-top:.3rem;font-size:.9rem}.series-label{font-style:italic;color:var(--muted);margin:1.5rem 0 1rem;font-size:.95rem}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}.card{border:1px solid var(--card-border);border-radius:10px;background:var(--card-bg);overflow:hidden;display:flex;flex-direction:column}.card-thumb{aspect-ratio:16 / 9;width:100%;object-fit:cover;background:var(--rule);display:block}.card-placeholder{aspect-ratio:16 / 9;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--rule),var(--card-bg));color:var(--muted);font-size:.85rem;letter-spacing:.04em}.card-body{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;flex:1}.card-body h3{font-size:1rem}.card-body p{color:var(--muted);font-size:.92rem;flex:1}.card-actions{display:flex;gap:.5rem;margin-top:.5rem}.btn{display:inline-block;padding:.32rem .7rem;border:1px solid var(--card-border);border-radius:6px;font-size:.85rem;color:var(--fg)}.btn:hover{text-decoration:none;border-color:var(--muted)}.patents{list-style:none;padding:0;margin:0}.patents li{padding:.6rem 0;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.patents li:last-child{border-bottom:none}.patent-status{margin-left:.5rem;padding:.05rem .4rem;border-radius:4px;border:1px solid var(--card-border);font-size:.75rem;color:var(--muted)}.patent-status.allowed{color:#1a7f37;border-color:#1a7f3755}.patent-id{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.92rem;white-space:nowrap}footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.9rem}footer .aside{font-style:italic;margin-top:.5rem}@media(max-width:480px){main{padding-top:2.5rem}h1{font-size:1.7rem}}
