:root{color-scheme:light;--ink:#16181d;--muted:#565b68;--faint:#626673;--line:#e4e5ea;--bg:#fbfbfa;--card:#fff;--accent:#4f46c8;--accent-soft:#eef0ff;--accent-ink:#3733a0;--radius:12px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.7}::selection{background:var(--ink);color:#fff}::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:3px solid var(--bg);background:#c6c8d2;border-radius:8px}a{color:inherit;text-underline-offset:4px;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}input{caret-color:var(--accent)}input::placeholder{color:#6d7180;opacity:1}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:.95em;height:.95em}.page{width:min(1160px,100% - 48px);margin:0 auto}.skip-link{z-index:20;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 14px;position:absolute;top:-80px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:10;background:color-mix(in srgb, var(--bg) 88%, white);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:24px;min-height:72px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.monogram{background:var(--ink);color:#fff;letter-spacing:-.5px;border-radius:9px;place-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:grid}.site-header nav{color:#3c404b;font-variant-numeric:tabular-nums;gap:22px;margin-left:auto;font-size:14px;font-weight:550;display:flex}.header-cta{border:1px solid var(--ink);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:650;display:inline-flex}.header-cta:hover{background:var(--ink);color:#fff}.hero{border-bottom:1px solid var(--line);padding:88px 0 0;overflow:clip}.availability{color:#2f6b4f;background:#eef6f0;border:1px solid #d5e7da;border-radius:999px;align-items:center;gap:8px;margin-bottom:26px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.availability .dot{background:#2e9e62;border-radius:50%;width:8px;height:8px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #2e9e6259}50%{box-shadow:0 0 0 6px #2e9e6200}}.location-line{color:var(--faint);margin-bottom:18px;font-size:14px;font-weight:600}h1{letter-spacing:-.032em;max-width:14ch;font-size:clamp(3.5rem,8.4vw,6rem);font-weight:780;line-height:1;animation:.9s cubic-bezier(.16,1,.3,1) both heroIn}h1 span{color:#6d707c;font-weight:620;display:block}h2{letter-spacing:-.03em;margin-bottom:14px;font-size:clamp(2rem,4.4vw,3rem);font-weight:720;line-height:1.08}.intro{max-width:64ch;color:var(--muted);margin-top:26px;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.65;animation:.9s cubic-bezier(.16,1,.3,1) 80ms both heroIn}.actions{flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:34px;animation:.9s cubic-bezier(.16,1,.3,1) .16s both heroIn;display:flex}.button{background:#fff;border:1px solid #d6d7de;border-radius:10px;align-items:center;gap:10px;min-height:52px;padding:13px 24px;font-size:15px;font-weight:650;display:inline-flex}.button:hover{border-color:var(--ink);color:var(--ink)}.button.primary{background:var(--ink);border-color:var(--ink);color:#fff}.button.primary:hover{color:#fff;background:#2c2e36}.quiet-link{color:var(--accent-ink);border-bottom:2px solid #0000;align-items:center;gap:7px;padding:6px 0;font-size:15px;font-weight:650;display:inline-flex}.quiet-link:hover{color:var(--accent);border-bottom-color:var(--accent)}@keyframes heroIn{0%{opacity:0;filter:blur(6px);transform:translateY(22px)}to{opacity:1;filter:blur();transform:none}}.hero-meta{border-top:1px solid var(--line);margin-top:44px;padding-top:22px;animation:.9s cubic-bezier(.16,1,.3,1) .24s both heroIn}.socials{flex-wrap:wrap;gap:8px 26px;font-size:14px;font-weight:600;display:flex}.socials a{border-bottom:1px solid #0000;align-items:center;gap:6px;padding:6px 0;display:inline-flex}.socials a:hover{border-bottom-color:var(--accent)}.meta-line,.roles{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:12px;font-size:14px}.inline-link{color:var(--accent);text-underline-offset:4px;font-weight:600;text-decoration:underline}.strip{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;margin-top:36px;padding-top:26px;display:flex}.strip span{color:var(--accent-ink);background:var(--accent-soft);white-space:nowrap;border:1px solid #dfe2ff;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:650}section{border-bottom:1px solid var(--line);padding:72px 0;scroll-margin-top:72px}section:last-of-type{border-bottom:0}.section-heading{max-width:78ch;margin-bottom:40px}.section-heading h2{margin-bottom:12px}.section-note{max-width:52ch;color:var(--muted);margin-top:14px;font-size:15px;line-height:1.65}.projects{border-top:1px solid var(--line);gap:0;display:grid}.project{border-bottom:1px solid var(--line);border-left:3px solid #0000;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px 44px;padding:40px 8px;transition:background .2s,border-color .2s;display:grid}.project:first-child{background:linear-gradient(var(--accent-soft), var(--accent-soft)) padding-box;border-left-color:var(--accent);border-radius:0 14px 14px 0}.project:hover{border-left-color:var(--ink);background:#fff}.project:first-child:hover{border-left-color:var(--accent);background:#fff}.project-head{align-content:start;gap:10px;display:grid}.project-type{color:var(--accent-ink);font-size:13px;font-weight:700}.project h3{letter-spacing:-.032em;overflow-wrap:break-word;font-size:clamp(2.4rem,5vw,3.9rem);font-weight:780;line-height:.98}.project-body{align-content:start;gap:10px;padding-top:6px;display:grid}.project-problem,.project-solution{color:var(--muted);max-width:56ch;font-size:16px;line-height:1.65}.project-problem strong,.project-solution strong{color:var(--ink);font-weight:650}.tags{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.tags li{color:#444754;background:#f3f4f7;border:1px solid #e7e8ee;border-radius:6px;padding:5px 10px;font-size:12.5px;font-weight:600}.project-links{flex-wrap:wrap;grid-column:1/-1;gap:8px 28px;margin-top:18px;font-size:15px;font-weight:650;display:flex}.project-links a{color:var(--accent-ink);border-bottom:2px solid #0000;align-items:center;gap:7px;padding-bottom:2px;display:inline-flex}.project-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.project-links a .icon{transition:transform .2s}.project-links a:hover .icon{transform:translate(2px,-2px)}.link-live{color:var(--accent)}.stack-ledger{border-top:1px solid var(--line);margin:0}.stack-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(140px,220px) 1fr;align-items:baseline;gap:8px 32px;padding:26px 8px;display:grid}.stack-row dt{color:var(--faint);font-size:14px;font-weight:700}.stack-row dd{letter-spacing:-.022em;margin:0;font-size:clamp(1.25rem,2.6vw,1.9rem);font-weight:680;line-height:1.3}.about-grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:56px;display:grid}.about-copy .lead{letter-spacing:-.02em;margin-bottom:18px;font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:680;line-height:1.3}.about-copy p{color:var(--muted);max-width:52ch;font-size:16px}.about-copy p+p{margin-top:14px}.services{border-top:1px solid var(--line);gap:0;display:grid}.services article{border-bottom:1px solid var(--line);padding:24px 0}.services h3{letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:700}.services p{color:var(--muted);max-width:52ch;font-size:15px}.ask-panel{grid-template-columns:.85fr 1.15fr;gap:56px;display:grid}.ask-intro{color:var(--muted);max-width:44ch;margin-top:14px;font-size:16px}.ask-privacy{color:var(--faint);max-width:44ch;margin-top:12px;font-size:13px}.ask-interface{align-content:start;gap:14px;display:grid}.ask-suggestions{flex-wrap:wrap;gap:8px;display:flex}.ask-suggestions button{cursor:pointer;background:#fff;border:1px solid #d6d7de;border-radius:999px;padding:9px 15px;font-size:13px;font-weight:550}.ask-suggestions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ask-suggestions button:disabled,.ask-interface form button:disabled{opacity:.55;cursor:wait}.ask-interface form{background:#fff;border:1px solid #d6d7de;border-radius:12px;padding:14px}.ask-interface form:focus-within{border-color:var(--accent)}.ask-interface label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:650;display:block}.ask-input-row{gap:10px;display:flex}.ask-input-row input{min-width:0;font:inherit;background:0 0;border:0;flex:1;padding:10px 4px}.ask-input-row input:focus{outline:none}.ask-input-row .button{min-height:44px}.ask-response{background:#fff;border:1px dashed #cfd0da;border-radius:12px;min-height:96px;padding:16px 18px}.ask-response p:first-child{color:var(--faint);margin-bottom:8px;font-size:12px;font-weight:650}#ask-answer{color:#33353d;font-size:15px}#ask-answer:empty{display:none}.contact{background:var(--ink);color:#fff;border:0;border-radius:20px;grid-template-columns:1fr 1fr;gap:48px;margin-top:24px;padding:clamp(32px,4vw,52px);display:grid}.contact h2{color:#fff}.contact h2 span{color:#a9a3ff}.contact ::selection{color:var(--ink);background:#fff}.contact-sub{color:#c3c6d2;max-width:44ch;margin-top:16px;font-size:16px}.contact-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.contact .button.primary{color:var(--ink);background:#fff;border-color:#fff}.contact .button.primary:hover{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--ink)}.button.ghost-dark{color:#fff;background:0 0;border:1px solid #ffffff59}.button.ghost-dark:hover{color:#fff;border-color:#fff}.contact-email{color:#c3c6d2;margin-top:18px;font-size:14px}.contact-email .inline-link{color:#fff}.contact-cards{grid-template-columns:1fr 1fr;align-content:start;gap:12px;display:grid}.contact-card{background:#ffffff0f;border:1px solid #ffffff29;border-radius:12px;gap:2px;padding:16px 18px;display:grid;position:relative}.contact-card:hover{color:#fff;border-color:#fff}.contact-card strong{font-size:15px}.contact-card small{color:#c3c6d2;overflow-wrap:anywhere;font-size:12.5px}.contact-card .icon{color:#a9a3ff;position:absolute;top:16px;right:16px}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:32px 0 40px;font-size:13px;display:flex}.footer-links{flex-wrap:wrap;gap:18px;font-weight:600;display:flex}.footer-links a,footer>a{align-items:center;gap:5px;display:inline-flex}.reveal{opacity:0;transform:translateY(18px)}.reveal.arrived{opacity:1;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:none}@media (width<=900px){.about-grid,.ask-panel,.contact{grid-template-columns:1fr}.section-heading{margin-bottom:30px}.project{grid-template-columns:1fr;gap:16px;padding:32px 4px}.stack-row{grid-template-columns:1fr;gap:6px}}@media (width<=640px){.page{width:calc(100% - 32px)}.site-header nav a:nth-child(3){display:none}.site-header{gap:14px}.site-header nav{gap:14px;font-size:13px}.header-cta{padding:8px 10px;font-size:12px}.hero{padding:52px 0 0}h1{letter-spacing:-.028em}.intro{font-size:1.02rem}section{padding:52px 0}.project h3{font-size:clamp(2.1rem,11vw,2.8rem)}.contact{border-radius:16px;padding:28px 22px}.contact-cards{grid-template-columns:1fr}.ask-input-row{flex-direction:column}.ask-input-row .button{justify-content:center}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}h1,.intro,.actions,.hero-meta{animation:none}.reveal{opacity:1;transform:none}.reveal.arrived{transition:none}.availability .dot{animation:none}}
