@import url(https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap);:root{--ink:#20211e;--muted:#676861;--paper:#f7f6f2;--line:#dcdcd4;--accent:#506d5e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f6f2;background:var(--paper);color:#20211e;color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-size:16px;line-height:1.55;margin:0}a{color:inherit;text-decoration:none}.page{margin:0 auto;max-width:1280px;padding:0 5vw}.nav,footer{align-items:center;border-bottom:1px solid #dcdcd4;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:78px}.wordmark{font:600 25px Fraunces,serif;letter-spacing:-1px}.wordmark span{color:#506d5e;color:var(--accent)}nav{display:flex;font-size:14px;gap:25px}.project a,.text-link,footer a,nav a{border-bottom:1px solid transparent;transition:border-color .2s}.project a:hover,.text-link:hover,footer a:hover,nav a:hover{border-color:currentColor}.hero{max-width:810px;padding:128px 0 138px}.eyebrow,.project-index{color:#676861;color:var(--muted);font:500 11px DM Mono,monospace;letter-spacing:.06em;margin:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500;letter-spacing:-.045em}h1{font:500 clamp(3.5rem,8vw,6.8rem)/.96 Fraunces,serif;margin:22px 0 28px;max-width:780px}.intro{color:#676861;color:var(--muted);font-size:clamp(1.15rem,2vw,1.42rem);max-width:590px}.actions{align-items:center;display:flex;gap:28px;margin-top:40px}.button{background:#20211e;background:var(--ink);color:#f7f6f2;color:var(--paper);font-size:14px;padding:13px 17px}.button:hover{background:#506d5e;background:var(--accent)}.text-link{font-size:14px}.text-link span{margin-left:5px}.section{border-top:1px solid #dcdcd4;border-top:1px solid var(--line);padding:74px 0 82px}.split{grid-gap:5%;display:grid;gap:5%;grid-template-columns:23% minmax(0,1fr)}.split>div{max-width:720px}h2{font:500 clamp(2rem,4vw,3.4rem)/1.03 Fraunces,serif;margin-bottom:23px}.section p:not(.eyebrow):not(.project-index){color:#676861;color:var(--muted);font-size:17px;max-width:605px}.section p+p{margin-top:14px}.projects{width:100%}.project{grid-gap:5%;border-bottom:1px solid #dcdcd4;border-bottom:1px solid var(--line);display:grid;gap:5%;grid-template-columns:42% 1fr;margin-bottom:29px;padding:0 0 30px}.project:last-child{border:0;margin-bottom:0;padding-bottom:0}.project h3{font:500 25px/1.1 Fraunces,serif;margin:11px 0 0}.project a{display:inline-block;font-size:14px;margin-top:15px}.project-visual{display:block}.project-heading{margin-bottom:22px}.project-details{grid-gap:5%;align-items:start;display:grid;gap:5%;grid-template-columns:minmax(170px,42%) 1fr}.project-preview{border:1px solid #1d2d44;border-radius:5px;box-shadow:0 12px 30px rgba(20,31,48,.14);display:block;width:100%}.project-demo{background:#101b2b;max-width:100%;width:160px}.quiet-project{opacity:.72}.tool-groups{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1fr 1fr;margin-top:30px}.tool-label{color:#20211e!important;color:var(--ink)!important;font:500 11px DM Mono,monospace!important;letter-spacing:.06em;text-transform:uppercase}.icon-grid{grid-gap:9px;display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.icon-tile{align-items:center;border:1px solid #dcdcd4;border:1px solid var(--line);color:#676861;color:var(--muted);display:flex;font:11px DM Mono,monospace;min-height:48px;padding:11px 12px;transition:color .2s,border-color .2s,background-color .2s,-webkit-transform .2s;transition:color .2s,border-color .2s,background-color .2s,transform .2s;transition:color .2s,border-color .2s,background-color .2s,transform .2s,-webkit-transform .2s}.icon-tile span{min-width:0}.airflow-logo,.icon-tile svg{flex:0 0 auto;height:19px;width:19px}.icon-tile svg{color:var(--brand)}.icon-tile:hover{background:color-mix(in srgb,var(--brand) 8%,transparent);border-color:var(--brand);color:#20211e;color:var(--ink);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.stack-note{margin-top:24px}.notes-link{border-bottom:1px solid #20211e;border-bottom:1px solid var(--ink);display:inline-block;font-size:15px;margin-top:11px;padding-bottom:3px}.notes-link:hover{border-color:#506d5e;border-color:var(--accent);color:#506d5e;color:var(--accent)}.contact{border-top:1px solid #dcdcd4;border-top:1px solid var(--line);padding:105px 0 116px}.contact h2{margin:18px 0 29px;max-width:630px}.contact>a{border-bottom:1px solid #20211e;border-bottom:1px solid var(--ink);font-size:16px;padding-bottom:3px}.contact>a:hover{border-color:#506d5e;border-color:var(--accent);color:#506d5e;color:var(--accent)}.homelab-services{grid-gap:9px;display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.service-tile{align-items:center;border:1px solid #dcdcd4;border:1px solid var(--line);color:#676861;color:var(--muted);display:flex;font:11px DM Mono,monospace;min-height:48px;padding:11px 12px}.service-tile svg{color:var(--brand);flex:0 0 auto;height:19px;width:19px}.service-tile span{min-width:0}.icon-grid{gap:12px}.icon-tile{flex-direction:column;gap:9px;justify-content:center;min-height:92px;padding:14px 10px;text-align:center}.airflow-logo,.hermes-logo,.icon-tile svg{height:25px;width:25px}.hermes-logo{object-fit:contain}.icon-tile span{line-height:1.15}.homelab-services{gap:12px}.service-tile{flex-direction:column;gap:9px;justify-content:center;min-height:92px;padding:14px 10px;text-align:center}.service-tile .hermes-logo,.service-tile svg{height:25px;width:25px}.service-tile span{line-height:1.15}footer{border-bottom:0;border-top:1px solid #dcdcd4;border-top:1px solid var(--line);color:#676861;color:var(--muted);font-size:13px;min-height:82px}@media (max-width:680px){.page{padding:0 24px}.nav{min-height:66px}nav{font-size:13px;gap:15px}.hero{padding:90px 0 98px}.split{gap:27px;grid-template-columns:1fr}.section{padding:57px 0 62px}.project{gap:18px;grid-template-columns:1fr}.project-details{gap:21px;grid-template-columns:1fr}.tool-groups{gap:25px;grid-template-columns:1fr}.icon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact{padding:78px 0 86px}.actions{flex-wrap:wrap;gap:22px}}
/*# sourceMappingURL=main.dc6163df.css.map*/