@font-face{font-family:Inter Tight;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-tight-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}body{margin:0}img,svg{display:block;max-width:100%}button{font:inherit;background:none;border:0;padding:0;cursor:pointer;color:inherit}#site-root{--bg: #f3f1ec;--panel: #ebe7df;--card: #f7f4ed;--ink: #1a2230;--inkText: #efebe2;--inkMuted: rgba(239, 235, 226, .62);--inkHair: rgba(239, 235, 226, .12);--text: #3a4754;--muted: #5f6b77;--hair: rgba(31, 41, 51, .1);--hair2: rgba(31, 41, 51, .05);--accent: #dcc88a;--accentInk: #52401b;--P: 88px;--rhythm: 1;--sans: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--serif: "Instrument Serif", Georgia, "Times New Roman", serif;container-type:inline-size;font-family:var(--sans);color:var(--ink);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#site-root a{color:inherit;text-decoration:none}#site-root em{font-style:italic;font-family:var(--serif);font-weight:400}#site-root em.accent{color:var(--accent)}#site-root .lnk{position:relative;display:inline-block}#site-root .lnk:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(1);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}#site-root .lnk:hover:after{background:var(--accent)}#site-root .nav-links .lnk:after{transform:scaleX(0)}#site-root .nav-links .lnk:hover:after{transform:scaleX(1);background:var(--accent)}#site-root .underlink{background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s cubic-bezier(.2,.7,.2,1);padding-bottom:2px}#site-root .underlink:hover{background-image:linear-gradient(var(--accent),var(--accent))}#site-root .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}#site-root .sectionlabel{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:10px}#site-root #about,#site-root #work,#site-root #projects,#site-root #contact{scroll-margin-top:96px}#site-root .section,#site-root .section--tight{padding:calc(56px * var(--rhythm)) var(--P)}#site-root .two{display:grid;grid-template-columns:200px 1fr;gap:64px}#site-root .two--wide{grid-template-columns:1fr 1fr;gap:80px}#site-root .hero h1{transition:opacity .15s linear}#site-root[data-scrolled] .hero h1{opacity:calc(1 - var(--scroll, 0) * 1.4)}#site-root .navtop{padding:28px var(--P);display:flex;align-items:center;justify-content:space-between;font-size:14px;position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:border-color .25s,background .25s}#site-root[data-scrolled="1"] .navtop{border-bottom-color:var(--hair)}#site-root .navtop .navleft{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.2px;color:var(--ink)}#site-root .navtop .dot{width:8px;height:8px;border-radius:2px;background:var(--ink);display:inline-block}#site-root .navtop .navtitle{transition:opacity .2s}#site-root[data-scrolled="1"] .navtop .navtitle{opacity:0;width:0;overflow:hidden;margin:0}#site-root .navtop .navname{display:inline-block;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s;font-weight:700;font-size:16px;letter-spacing:-.3px;color:var(--ink)}#site-root[data-scrolled="1"] .navtop .navname{max-width:200px;margin-left:6px;opacity:1;transform:translateY(0)}#site-root .nav-links{display:flex;gap:32px;color:var(--text);font-size:13px;align-items:center}#site-root .nav-links .cta{color:var(--accentInk);background:var(--accent);padding:7px 14px;border-radius:999px;font-weight:600;transition:transform .2s,background .2s}#site-root .nav-links .cta:hover{transform:translateY(-1px)}#site-root .nav-links .cta:after{display:none}#site-root .hero{display:grid;grid-template-columns:1fr 320px;gap:64px;align-items:start;padding:calc(40px * var(--rhythm)) var(--P) calc(48px * var(--rhythm))}#site-root .hero h1{margin:0;font-size:clamp(64px,11cqi,132px);line-height:.92;letter-spacing:-.04em;font-weight:600;text-wrap:balance;color:var(--ink)}#site-root .hero p.lead{margin:36px 0 0;font-size:clamp(18px,1.9cqi,24px);line-height:1.45;max-width:640px;color:var(--text);text-wrap:pretty}#site-root .hero .links{display:flex;gap:20px;margin-top:48px;align-items:center;font-size:14px;flex-wrap:wrap}#site-root .hero .links .sep{color:var(--muted);user-select:none}#site-root .hero .photo-col{padding-top:52px}#site-root .hero .photoslot{width:280px;height:280px;border-radius:50%;background:#dcd6c9;object-fit:cover}#site-root #about .sectionlabel{margin-bottom:12px}#site-root .about-body h2{margin:0;font-size:clamp(40px,4.6cqi,56px);font-weight:700;letter-spacing:-2px;line-height:1.02;color:var(--ink);text-wrap:balance}#site-root .about-body p{margin:28px 0 0;font-size:17px;line-height:1.65;color:var(--text);font-weight:400;letter-spacing:-.3px;max-width:760px;text-wrap:pretty}#site-root .about-body p+p{margin-top:18px}#site-root .work-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:48px;flex-wrap:wrap;gap:12px}#site-root .work-head h2{margin:0;font-size:clamp(40px,4.6cqi,56px);font-weight:700;letter-spacing:-2px;line-height:1.02;color:var(--ink)}#site-root .work-head .sectionlabel{margin-bottom:12px}#site-root .row{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:28px 0;border-top:1px solid var(--hair)}#site-root .row:last-of-type{border-bottom:1px solid var(--hair)}#site-root .row.current{border-top:2px solid var(--ink);padding-top:27px}#site-root .row .year{font-family:var(--mono);font-size:13px;color:var(--muted);padding-top:4px}#site-root .row.current .year{color:var(--ink);font-weight:500}#site-root .row .role{margin:0;font-size:clamp(18px,1.85cqi,22px);font-weight:600;letter-spacing:-.4px;color:var(--ink)}#site-root .row .role .co{color:var(--muted);font-weight:400}#site-root .row .body{margin:14px 0 18px;font-size:clamp(15px,1.45cqi,17px);line-height:1.55;color:var(--text);max-width:780px;text-wrap:pretty}#site-root .projects{background:var(--ink);color:var(--inkText);padding:calc(96px * var(--rhythm)) var(--P)}#site-root .projects-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:56px;flex-wrap:wrap;gap:12px}#site-root .projects-head h2{margin:0;font-size:clamp(40px,4.6cqi,56px);font-weight:700;letter-spacing:-2px;line-height:1.02;color:var(--inkText);text-wrap:balance}#site-root .projects-head .sectionlabel{margin-bottom:12px;color:var(--inkMuted)}#site-root .project{display:grid;grid-template-columns:140px 1fr auto;gap:32px;padding:32px 16px;margin:0 -16px;border-top:1px solid var(--inkHair);align-items:baseline;transition:background .2s}#site-root .project:hover{background:#efebe206}#site-root .project:hover .proj-link{opacity:1}#site-root .project:last-of-type{border-bottom:1px solid var(--inkHair)}#site-root .proj-no{font-family:var(--mono);font-size:11px;color:var(--inkMuted);letter-spacing:.05em;padding-top:4px}#site-root .proj-name{margin:0;font-family:var(--mono);font-size:clamp(20px,2.2cqi,26px);font-weight:500;letter-spacing:-.4px;color:var(--inkText)}#site-root .proj-desc{margin:12px 0 14px;font-size:clamp(15px,1.45cqi,17px);line-height:1.55;color:#efebe2c7;max-width:680px;text-wrap:pretty}#site-root .proj-meta{font-family:var(--mono);font-size:11px;color:var(--inkMuted);letter-spacing:.05em}#site-root .proj-link{font-family:var(--mono);font-size:12px;color:var(--inkText);align-self:start;padding-top:4px;opacity:.7;transition:opacity .2s,transform .2s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}#site-root .proj-link:hover{opacity:1}#site-root .ext-icon{transition:transform .2s ease}#site-root .proj-link:hover .ext-icon{transform:translate(2px,-2px)}#site-root .proj-status{font-family:var(--mono);font-size:12px;color:var(--inkMuted);align-self:start;padding-top:4px;white-space:nowrap}#site-root .proj-cta{margin-top:40px;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--accent);border:1px solid var(--inkHair);padding:10px 16px;border-radius:999px;transition:border-color .2s,transform .2s;white-space:nowrap}#site-root .proj-cta:hover{border-color:var(--accent);transform:translate(2px)}#site-root .stack-wrap{padding:calc(72px * var(--rhythm)) var(--P) calc(56px * var(--rhythm))}#site-root .stackrow{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:18px 0;border-top:1px solid var(--hair)}#site-root .stackrow:last-child{border-bottom:1px solid var(--hair)}#site-root .stackrow .k{font-size:14px;color:var(--muted);font-weight:500}#site-root .stackrow .v{font-size:clamp(15px,1.45cqi,17px);color:var(--ink);line-height:1.5}#site-root .contact{padding:calc(56px * var(--rhythm)) var(--P) calc(80px * var(--rhythm));display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:start}#site-root .contact .sectionlabel{padding-top:0;margin-bottom:18px}#site-root .contact h2{margin:0 0 24px;font-size:clamp(44px,5.4cqi,64px);font-weight:700;letter-spacing:-2.4px;line-height:1.08;color:var(--ink);text-wrap:balance;padding-bottom:.06em}#site-root .contact .blurb{margin-top:8px;font-size:18px;color:var(--text);max-width:540px;line-height:1.55}#site-root .pill{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;background:var(--ink);color:var(--inkText);font-size:15px;font-weight:500;transition:transform .2s,background .2s;margin-top:28px}#site-root .pill:hover{transform:translateY(-1px)}#site-root .card{background:var(--card);border-radius:14px;padding:32px;border:1px solid var(--hair)}#site-root .card .sectionlabel{padding-top:0;margin-bottom:24px}#site-root .links-grid{display:flex;flex-direction:column;gap:14px;font-size:14px}#site-root .links-grid a{display:flex;justify-content:space-between;align-items:baseline;gap:16px}#site-root .links-grid .k{color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}#site-root .footer{padding:28px var(--P);border-top:1px solid var(--hair);display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;font-size:12px;color:var(--muted);font-family:var(--mono)}#site-root .footer .sig{font-family:var(--serif);font-size:16px;letter-spacing:-.3px;text-transform:none;color:var(--text);font-style:italic}#site-root .footer .right{justify-self:end}#site-root .footer .totop{color:var(--muted);transition:color .2s;white-space:nowrap}#site-root .footer .totop:hover{color:var(--ink)}@media (max-width: 720px){#site-root{--P: 28px}}@container (max-width: 720px){#site-root .two{grid-template-columns:1fr;gap:20px}#site-root .two--wide{grid-template-columns:1fr;gap:48px}#site-root .navtop{padding:20px var(--P)}#site-root .nav-links{gap:18px;font-size:12px}#site-root .nav-links .lnk:not(.cta){display:none}#site-root .hero{grid-template-columns:1fr;gap:36px;padding-top:24px;padding-bottom:calc(40px * var(--rhythm))}#site-root .hero h1{font-size:clamp(56px,16cqi,96px);letter-spacing:-.035em}#site-root .hero p.lead{font-size:18px;margin-top:24px}#site-root .hero .links{gap:12px;font-size:13px}#site-root .hero .photo-col{padding-top:0;order:-1}#site-root .hero .photoslot{width:220px;height:220px}#site-root .row{grid-template-columns:1fr;gap:8px;padding:22px 0}#site-root .project{grid-template-columns:1fr;gap:14px;padding:24px 16px}#site-root .project .proj-link,#site-root .project .proj-status{padding-top:0}#site-root .stackrow{grid-template-columns:1fr;gap:4px}#site-root .contact{grid-template-columns:1fr;gap:40px}#site-root .footer{grid-template-columns:1fr;gap:12px;text-align:left}#site-root .footer .right{justify-self:start}}
