@import url("https://fonts.googleapis.com/css2?family=DynaPuff:wght@400;500;600;700&family=Geist+Mono:wght@300;400;500;600;700&family=Nunito:wght@400;500;600;700;800;900&display=swap");:root{--bg:#efece5;--bg-elev:#e8e4dc;--ink:#1a1a1a;--ink-muted:#7a7770;--ink-faint:#a8a59e;--rule:rgba(26,26,26,.14);--rule-strong:rgba(26,26,26,.3);--hover-bg:rgba(26,26,26,.03);--invert-bg:#1a1a1a;--invert-ink:#efece5;--gutter:clamp(1.25rem,3vw,2.5rem);--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;--font-display:"Nunito",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,sans-serif;--font-name:"DynaPuff","Nunito",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,sans-serif;color-scheme:light}:root[data-theme=dark]{--bg:#100f0c;--bg-elev:#1a1814;--ink:#e8e4dc;--ink-muted:#8a8780;--ink-faint:#5a5750;--rule:hsla(40,21%,89%,.14);--rule-strong:hsla(40,21%,89%,.28);--hover-bg:hsla(40,21%,89%,.04);--invert-bg:#efece5;--invert-ink:#1a1a1a;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);transition:background-color .25s ease,color .25s ease}body{font-family:var(--font-mono);font-size:13.5px;line-height:1.55;color:var(--ink);font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:text-decoration-color .2s ease,color .2s ease;transition:text-decoration-color .2s ease,color .2s ease,-webkit-text-decoration-color .2s ease}a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}ul{list-style:none}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}.page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:1.5rem var(--gutter)}.page-grid{flex:1 1;display:grid;grid-template-rows:auto 1fr;grid-gap:clamp(2rem,5vh,4rem);gap:clamp(2rem,5vh,4rem);padding-top:clamp(1.5rem,4vh,3rem)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-size:13px;font-weight:500;text-decoration:none}.topbar-actions{display:flex}.cv-button,.topbar-actions{align-items:center;gap:.5rem}.cv-button{display:inline-flex;font-size:12px;font-weight:500;padding:.55rem 1.1rem;border:1px solid var(--rule);border-radius:999px;background:var(--hover-bg);text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.cv-button:hover{background:var(--invert-bg);color:var(--invert-ink);border-color:var(--invert-bg)}.cv-button span{transition:transform .2s ease;display:inline-block}.cv-button:hover span{transform:translateY(2px)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--rule);border-radius:999px;background:var(--hover-bg);transition:background .2s ease,border-color .2s ease,color .2s ease}.theme-toggle:hover{border-color:var(--rule-strong);background:var(--bg-elev)}.theme-toggle-icon{font-size:13px;line-height:1}.info-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;grid-gap:clamp(1.5rem,3vw,2.5rem);gap:clamp(1.5rem,3vw,2.5rem);align-items:start}.info-cell{display:flex;flex-direction:column}.brand{display:inline-flex;align-items:center;justify-content:center}.dot-circle{display:block;width:36px;height:36px}.cell-label{font-size:12px;font-weight:500;color:var(--ink);margin-bottom:.85rem}.cell-body{line-height:1.55;max-width:38ch}.cell-body,.cell-list{color:var(--ink-muted);font-size:13px}.cell-list li+li{margin-top:.25rem}.cell-list.links li+li{margin-top:.4rem}.display-name{font-family:var(--font-name);font-weight:700;font-size:clamp(2rem,4vw,3.25rem);letter-spacing:0;line-height:1.05;margin-bottom:1.1rem}.display-tagline{font-size:13px;color:var(--ink-muted);max-width:34ch;line-height:1.55}.faint{color:var(--ink-faint)}.mono-small{font-size:12px}.work-zone{display:flex;flex-direction:column;gap:1.25rem;justify-content:flex-end}.work-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.85rem;border-bottom:1px solid var(--rule)}.work-header .cell-label{margin-bottom:0}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(1rem,2vw,1.5rem);gap:clamp(1rem,2vw,1.5rem)}.project-card{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem 1.25rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:4px;min-height:180px;text-decoration:none;color:inherit;transition:transform .25s ease,border-color .25s ease,background-color .25s ease}.project-card:hover{transform:translateY(-2px);border-color:var(--rule-strong);text-decoration:none}.card-arrow{display:inline-block;margin-left:.15rem;opacity:.6;transition:transform .25s ease,opacity .25s ease}a.project-card:hover .card-arrow{opacity:1;transform:translate(2px,-2px)}.card-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--ink-faint)}.card-num{font-weight:500}.card-title{font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.015em;line-height:1.25;color:var(--ink)}.card-meta{font-size:12.5px;color:var(--ink-muted);line-height:1.55;max-width:40ch}.footer{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;font-size:11px;color:var(--ink-faint)}@media (max-width:1024px){.info-grid{grid-template-columns:1fr 1fr;gap:2rem}.info-cell-name{grid-column:span 2}.work-grid{grid-template-columns:1fr 1fr}.work-grid .project-card:nth-child(3){grid-column:span 2}}@media (max-width:640px){.info-grid,.work-grid{grid-template-columns:1fr}.info-cell-name,.work-grid .project-card:nth-child(3){grid-column:span 1}.page{min-height:auto}.topbar{flex-wrap:wrap}.footer{flex-direction:column;gap:.5rem;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}