:root{color-scheme:dark;--bg:#222;--surface:#333;--surface-soft:#2b2b2b;--text:#fff;--muted:#ffffff94;--line:#404040;--accent:#32aa66;--accent-strong:#32aa66;--radius:8px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);letter-spacing:.02em;font-size:.9rem;line-height:1.5}a{color:var(--accent-strong);text-underline-offset:.15em;font-weight:400;text-decoration-style:dotted;text-decoration-color:currentColor;text-decoration-thickness:.01em}a:hover{text-decoration-style:solid}h1,h2,h3,p{margin-top:0}.site-shell{width:min(1200px,100% - 32px);margin:0 auto;padding:0 0 72px}.site-header{justify-content:space-between;align-items:center;gap:16px;padding:16px 0 28px;display:flex}.site-title{color:var(--text);white-space:nowrap;font-size:1rem;text-decoration:none}.site-nav{flex-wrap:wrap;justify-content:flex-end;gap:2px;display:flex}.site-nav a{color:var(--text);white-space:nowrap;border-radius:.5rem;padding:.5rem 1rem;text-decoration:none}.site-nav a:hover{background:#32aa6626}.site-nav a[aria-current=page]{background:var(--accent);color:var(--bg)}.hero{align-items:end;min-height:32vh;padding:40px 0;display:grid}.hero h1{margin-bottom:0;font-size:clamp(3rem,9vw,6rem);font-weight:200;line-height:1}section{padding:0 0 48px}.section-header{border-bottom:1px solid var(--line);max-width:72ch;margin-bottom:24px}.section-header h2{margin-bottom:.5em;font-size:3em;font-weight:200;line-height:1.2}.eyebrow,.card-kicker{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:.78rem;font-weight:700}.muted,.section-header p,.empty-state{color:var(--muted)}.filters{grid-template-columns:minmax(220px,1fr);gap:12px;margin-bottom:16px;display:grid}.project-filter-groups{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.project-toolbar{grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:10px;display:grid}.project-search{gap:0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.filter-clear{border:1px solid var(--line);background:var(--surface-soft);width:42px;height:42px;color:var(--text);cursor:pointer;font:inherit;border-radius:.5rem;place-items:center;padding:0;display:grid}.filter-clear:hover{border-color:var(--accent)}.filter-clear svg{fill:currentColor;width:16px;height:16px}.source-segmented{border:1px solid var(--line);background:var(--surface-soft);border-radius:.5rem;height:42px;display:inline-flex;overflow:hidden}.source-segmented button{border:0;border-right:1px solid var(--line);min-width:42px;min-height:40px;color:var(--muted);cursor:pointer;font:inherit;background:0 0;place-items:center;padding:8px 11px;font-size:.78rem;display:grid}.source-segmented button:last-child{border-right:0}.source-segmented button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.source-segmented svg{fill:currentColor;width:16px;height:16px}.project-filter-group{border:1px solid var(--line);background:var(--surface-soft);border-radius:.5rem;padding:8px 10px 10px}.project-filter-group h2{color:var(--muted);margin-bottom:8px;font-size:.85rem;font-weight:600}.project-filter-pills{padding:0}label{color:var(--muted);gap:6px;font-size:.85rem;display:grid}input,select{border:1px solid var(--line);background:var(--surface-soft);width:100%;min-height:42px;color:var(--text);font:inherit;border-radius:.5rem;padding:8px 10px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;flex-direction:column;min-height:100%;display:flex;position:relative;overflow:hidden}.card[hidden]{display:none}.card-body,.card-links,.card>.pills{padding:16px}.project-source-badge{border:1px solid var(--line);background:var(--surface-soft);width:26px;height:26px;color:var(--accent);border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.project-source-badge svg{fill:currentColor;width:16px;height:16px}.contact-icon{object-fit:contain;align-self:center;max-width:64px;height:64px;margin:16px 16px 0}.project-image{object-fit:contain;max-width:100%;max-height:120px;padding:var(--image-padding)}.card-body{flex:1}.card-body h3{margin-bottom:8px}.card-body p:last-child{color:var(--muted);margin-bottom:0}.query-highlight{color:inherit;background:#32aa6659;border-radius:.2em;padding:0 .1em}.card-links{border-top:1px solid var(--line);gap:8px;display:grid}.pills{flex-wrap:wrap;gap:5px;display:flex}.card>.pills{border-top:1px solid var(--line)}.pill{--pill-bg:var(--accent);--pill-color:var(--bg);--pill-font-size:.66rem;background:var(--pill-bg);color:var(--pill-color);font-size:var(--pill-font-size);border:0;border-radius:999px;padding:2px 9px;font-weight:700;line-height:1.3}.pill.php{--pill-bg:#48527d;--pill-color:#fff}.pill.cs{--pill-bg:#197828;--pill-color:#fff}.pill.net{--pill-bg:#654185;--pill-color:#fff}.pill.aspnet{--pill-bg:#1b6796;--pill-color:#fff}.pill.astro{--pill-bg:#ff5d01;--pill-color:#000}.pill.blazor{--pill-bg:#5a3a75;--pill-color:#fff}.pill.js{--pill-bg:#c9bb4d;--pill-color:#000}.pill.vue{--pill-bg:#3d946d;--pill-color:#000}.pill.java{--pill-bg:#8a6124;--pill-color:#fff}.pill.powershell{--pill-bg:#1658a0;--pill-color:#fff}.pill.ts{--pill-bg:#2e6d7f;--pill-color:#fff}.pill.wpf{--pill-bg:#3d71ad;--pill-color:#fff}.pill.dart{--pill-bg:#3497bb;--pill-color:#000}.pill.flutter{--pill-bg:#43a9c2;--pill-color:#000}.pill.android{--pill-bg:#36a56b;--pill-color:#000}.pill.ios{--pill-bg:#79a34a;--pill-color:#000}.pill.xamarin{--pill-bg:#3781ae;--pill-color:#fff}.pill.symfony{--pill-bg:#b9bcb8;--pill-color:#000}.pill.bash{--pill-bg:#40984a;--pill-color:#fff}.pill.docker{--pill-bg:#2e86b8;--pill-color:#000}.pill.mysql{--pill-bg:#b17a22;--pill-color:#000}.pill.postgresql{--pill-bg:#375b7d;--pill-color:#fff}.pill.mssql{--pill-bg:#a52e2d;--pill-color:#fff}.pill.cpp{--pill-bg:#1b729c;--pill-color:#fff}.pill.step{--pill-bg:#358aa7;--pill-color:#fff}.pill.delphi{--pill-bg:#ad3039;--pill-color:#fff}.pill.sqlite{--pill-bg:#3482a8;--pill-color:#000}.pill.macos{--pill-bg:#000;--pill-color:#fff}.pill.windows{--pill-bg:#1d72a5;--pill-color:#fff}.pill.rabbitmq{--pill-bg:#f60;--pill-color:#fff}.pill.inactive{--pill-bg:var(--line);--pill-color:var(--muted)}.pill.unavailable{cursor:not-allowed;opacity:.35}.pill[aria-pressed=true]{box-shadow:0 0 0 1px var(--text)}button.pill{cursor:pointer;font-family:inherit}button.pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cv-filter{padding:0}.cv-filter-title{color:var(--muted);margin-bottom:10px;font-size:.8rem}.cv-filter-groups{gap:14px;margin-bottom:42px;display:grid}.cv-filter-group{padding:0}.cv-filter-group h2{color:var(--muted);margin-bottom:6px;font-size:.78rem;font-weight:600}.cv-filter-pills{padding:0}.cv-filter-pills .pill{--pill-font-size:.66rem}.timeline{margin:0;padding:0;list-style:none}.timeline-item{--dot-size:14px;--dot-top:10px;--line-start:17px;grid-template-columns:40px minmax(0,1fr);gap:18px;display:grid}.timeline-line{justify-content:center;display:flex;position:relative}.timeline-line:after{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:calc(50% - 1px)}.timeline-line span{z-index:1;width:var(--dot-size);height:var(--dot-size);margin-top:var(--dot-top);background:var(--line);border-radius:50%;position:relative}.timeline-item.current{--dot-size:18px;--dot-top:8px}.timeline-item.current .timeline-line span{background:var(--accent);animation:1s ease-in infinite alternate dot-pulse}.timeline-item.current .timeline-line:after{top:calc(var(--dot-top) + (var(--dot-size) / 2))}.timeline-item.current .timeline-line:before{content:"";z-index:1;top:var(--dot-top);width:var(--dot-size);height:var(--dot-size);background:var(--accent);border-radius:50%;animation:2s ease-out .75s infinite dot-highlight;position:absolute}.timeline-item.current .timeline-content{font-size:1.08rem}.timeline-item.minor .timeline-line span{display:none}.timeline-content{padding-bottom:52px}.timeline-content h3,.timeline-content p{margin-bottom:.5rem}@keyframes dot-highlight{0%{opacity:.5;transform:scale(.8)}90%{transform:scale(2)}to{opacity:0}}@keyframes dot-pulse{0%,80%{transform:scale(1)}to{transform:scale(1.1)}}.uses-category{padding:0}.uses-category h2{z-index:2;border-bottom:1px solid var(--line);background:var(--bg);margin:0 0 .5em;padding:.5em 0;font-size:1.75em;font-weight:300;position:sticky;top:0}.uses-subcategory{padding:0}.uses-subcategory h3{z-index:1;background:var(--bg);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.3em;margin:0 0 .5em;padding:.5em 0 .25em;font-size:1.5em;font-weight:300;text-decoration-thickness:.01em;position:sticky;top:2.5em}.uses-item{color:currentColor;border-radius:.5rem;flex-direction:column;gap:.75em;padding:.5rem;text-decoration:none;display:flex}.uses-title{color:var(--accent);text-underline-offset:.15em;font-size:1.2em;text-decoration:underline .01em dotted}.uses-link{color:var(--muted);font-size:.8em}.uses-item p{margin:0}.uses-item:hover{background:var(--line)}@media (width<=800px){.site-header{flex-direction:column;align-items:flex-start}.site-nav{justify-content:flex-start}.filters{grid-template-columns:1fr}.project-toolbar{grid-template-columns:1fr auto auto}.hero{min-height:auto;padding-top:32px}}
