@font-face{font-family:spaceGrotesk;src:url(../media/space_grotesk-s.p.0oxh562_148qc.woff2)format("woff2");font-display:swap;font-weight:300 700}@font-face{font-family:spaceGrotesk Fallback;src:local(Arial);ascent-override:88.78%;descent-override:26.34%;line-gap-override:0.0%;size-adjust:110.84%}._3BwnrW_className{font-family:spaceGrotesk,spaceGrotesk Fallback}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#090909;--surface:#131313;--ink:#f5f5f2;--muted:#a4a49f;--rule:#292928;--accent:#ffd60a;--ease:cubic-bezier(.22, 1, .36, 1);--mono:ui-monospace, "Cascadia Code", Consolas, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--ink);margin:0;font:400 1rem/1.6 system-ui,sans-serif}h1,h2,h3,p,ul,ol,figure{margin:0}a{color:inherit;text-decoration:none}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{color:var(--background);background:var(--accent)}svg{flex:none;display:block}.shell{width:min(1136px,100% - 112px);margin-inline:auto}.skip-link{z-index:2;background:var(--accent);color:var(--background);padding:8px 14px;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:20px;min-height:73px;display:flex}.brand{letter-spacing:-.045em;font-size:19px;font-weight:700}.site-nav{color:var(--muted);align-items:center;gap:clamp(15px,2.75vw,36px);font-size:14px;display:flex}.site-nav a{transition:color .3s var(--ease);align-items:center;gap:5px;padding-block:10px;display:inline-flex;position:relative}.site-nav a:hover,.site-nav a:focus-visible{color:var(--ink)}.site-nav a:after{content:"";background:var(--accent);transform-origin:100%;height:1px;transition:transform .38s var(--ease);position:absolute;inset:auto 0 5px;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.site-nav svg{width:14px;height:14px;color:var(--accent)}.hero{flex-direction:column;justify-content:center;min-block-size:84svh;padding-block:clamp(96px,11vw,160px);display:flex}.label{font:400 11px/1.5 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.hero h1{letter-spacing:-.093em;white-space:nowrap;margin-bottom:20px;font-size:clamp(64px,14.9vw,194px);font-weight:700;line-height:.92;overflow:clip}.hero-wordmark{animation:wordmark-rise 1s var(--ease) both;display:block}.caret{background:var(--accent);transform-origin:0;width:.36em;height:.085em;animation:caret-in .8s .3s var(--ease) both, caret-pulse 1.15s 1.1s ease-in-out 2;margin-left:.125em;display:inline-block}.hero-bottom{justify-items:start;gap:20px;display:grid}.hero-bottom>p{color:#c4c4bf;letter-spacing:-.025em;max-width:36ch;animation:settle .85s .22s var(--ease) both;font-size:clamp(20px,2.1vw,28px);line-height:1.32}.hero-actions{animation:settle .85s .34s var(--ease) both;align-items:center;gap:23px;display:flex}.button{width:fit-content;min-height:46px;color:var(--background);background:var(--accent);white-space:nowrap;transition:color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:14px;padding:9px 14px 9px 17px;font-size:15px;font-weight:700;display:inline-flex}.button svg,.text-link svg{width:17px;height:17px;transition:transform .38s var(--ease)}.button:hover{background:#ffe658;transform:translateY(-2px)}.button:active{transform:translateY(0)}.button:hover svg,.button:focus-visible svg{transform:translate(2px,-2px)}.text-link{width:fit-content;color:var(--muted);white-space:nowrap;transition:color .35s var(--ease);align-items:center;gap:7px;font-size:14px;display:inline-flex}.text-link:hover,.text-link:focus-visible{color:var(--accent)}.text-link:hover svg,.text-link:focus-visible svg{transform:translateY(3px)}.section{border-top:1px solid var(--rule);min-block-size:76svh;padding-block:clamp(96px,10vw,152px);scroll-margin-top:15px;position:relative}.work,.contact{flex-direction:column;justify-content:center;display:flex}.work{--background:#f1f0e9;--ink:#171714;--muted:#5b5a53;--rule:#d0cec3;--accent:#735300;isolation:isolate;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink)}.work:before{content:"";z-index:-1;background:var(--background);box-shadow:0 0 0 100vmax var(--background);clip-path:inset(0 -100vmax);position:absolute;inset:-1px 0 0}.work-rule{background:linear-gradient(90deg, #a88400, var(--rule));transform-origin:0;pointer-events:none;height:1px;position:absolute;inset:-1px 0 auto}.work-heading{margin-bottom:22px}.project-list,.project+.project{border-top:1px solid var(--rule)}.project summary{isolation:isolate;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding-block:clamp(26px,3vw,34px);padding-inline-end:12px;list-style:none;display:grid;position:relative}.project summary::-webkit-details-marker{display:none}.project summary:before{content:"";z-index:-1;opacity:0;transition:opacity .45s var(--ease);background:linear-gradient(90deg,#7353000b,#0000 75%);position:absolute;inset:0}.project summary:hover:before,.project summary:focus-visible:before,.project[open] summary:before{opacity:1}.project summary:focus-visible{outline-offset:-2px}.project-heading{transition:transform .42s var(--ease);gap:5px;display:grid}.project summary:hover .project-heading{transform:translate(4px)}.project-title{letter-spacing:-.057em;transition:color .3s var(--ease);font-size:clamp(32px,4.2vw,53px);font-weight:500;line-height:.98}.project summary:hover .project-title,.project summary:focus-visible .project-title,.project[open] .project-title{color:var(--accent)}.project-summary{color:var(--muted);font-size:15px}.project-toggle{color:var(--muted);transition:color .38s var(--ease), transform .45s var(--ease)}.project summary:hover .project-toggle,.project[open] .project-toggle{color:var(--accent)}.project[open] .project-toggle{transform:rotate(180deg)}.project-body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;gap:18px clamp(20px,4.2vw,48px);padding:8px 0 32px;display:grid}.project[open] .project-body{animation:settle .7s var(--ease) both}.project-media{background:var(--surface);border:1px solid #343433;border-radius:6px;grid-row:span 2;overflow:hidden}.screenshot img{width:100%;height:auto;display:block}.project-copy h3{letter-spacing:-.035em;font-size:clamp(21px,2.7vw,30px);font-weight:500;line-height:1.16}.project-copy p{color:var(--muted);margin-top:10px;font-size:15px;line-height:1.55}.project-source{color:var(--accent)}.project-source:hover{color:var(--ink)}.terminal{--background:#090909;--ink:#f5f5f2;--muted:#a4a49f;--accent:#ffd60a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);font-family:var(--mono);min-height:222px}.terminal-bar{border-bottom:1px solid #343433;justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;font-size:12px;display:flex}.terminal-bar>span:first-child:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin:0 7px 1px 0;display:inline-block}.terminal-steps{gap:8px;padding:20px 16px;list-style:none;display:grid}.terminal-steps li{border:1px solid #343433;border-radius:3px;align-items:center;gap:12px;min-height:36px;padding:5px 10px;font-size:clamp(11px,1.5vw,13px);display:flex}.terminal-steps li>span{color:var(--accent)}.terminal-steps code{font:inherit}.project[open] .terminal-steps li{animation:terminal-line .46s var(--ease) var(--step-delay,.12s) both}.terminal-steps li:nth-child(2){--step-delay:.29s}.terminal-steps li:nth-child(3){--step-delay:.46s}.about{grid-template-columns:minmax(0,1fr) clamp(235px,32vw,370px);align-items:center;gap:clamp(32px,7vw,96px);display:grid}.about .label{margin-bottom:18px}.about p{letter-spacing:-.04em;max-width:33ch;font-size:clamp(23px,3.1vw,39px);line-height:1.32}.about-portrait{aspect-ratio:4/5;object-fit:contain;width:100%;height:auto;display:block}.contact h2{letter-spacing:-.09em;font-size:clamp(59px,10.5vw,132px);line-height:.97}.contact h2 span{color:var(--accent)}.contact-note{max-width:43ch;color:var(--muted);margin:14px 0 24px;font-size:17px}.site-footer{border-top:1px solid var(--rule);min-height:70px;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.site-footer .text-link{font-size:inherit}.site-footer svg{width:15px;height:15px}.site-footer a[href=\#top]:hover svg,.site-footer a[href=\#top]:focus-visible svg{transform:translateY(-3px)}@keyframes wordmark-rise{0%{transform:translateY(100%)}to{transform:none}}@keyframes caret-in{0%{opacity:.45;transform:scaleX(.2)}to{opacity:1;transform:scaleX(1)}}@keyframes caret-pulse{50%{opacity:.2}}@keyframes settle{0%{opacity:.18;translate:0 27px}to{opacity:1;translate:none}}@keyframes rule-in{0%{transform:scaleX(.06)}to{transform:scaleX(1)}}@keyframes terminal-line{0%{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){.work{view-timeline:--work block}.work-rule{animation:linear both rule-in;animation-timeline:--work;animation-range:entry entry 45%}.work-heading,.project summary,.about-copy,.about-portrait,.contact>h2{animation:linear both settle;animation-timeline:view();animation-range:entry cover 30%}}.work:target .work-rule{animation:rule-in .95s var(--ease) both}.work:target .project summary{animation:settle .85s .15s var(--ease) both}.work:target .project+.project summary{animation-delay:.25s}.contact:target h2{animation:settle .85s var(--ease) both}.work .project summary:focus-visible,.work .project[open] summary{animation:none}@supports (interpolate-size:allow-keywords) and selector(details::details-content){.project{interpolate-size:allow-keywords}.project::details-content{block-size:0;transition:block-size .58s var(--ease), content-visibility .58s allow-discrete;overflow:clip}.project[open]::details-content{block-size:auto}}@media (max-width:890px){.shell{width:calc(100% - 72px)}}@media (max-width:620px){.shell{width:calc(100% - 36px)}.site-header{min-height:63px}.brand{font-size:16px}.site-nav{gap:clamp(10px,3vw,17px);font-size:13px}.site-nav svg{width:12px;height:12px}.hero{min-block-size:76svh;padding-block:88px 76px}.hero h1{margin-bottom:20px;font-size:clamp(57px,14.8vw,96px)}.hero-bottom{gap:22px}.hero-actions{gap:16px}.section{min-block-size:64svh;padding-block:76px}.work-heading{margin-bottom:15px}.project summary{padding:20px 2px}.project-summary{font-size:14px;line-height:1.4}.project-body{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);row-gap:14px;padding:6px 3px 24px}.project-media{grid-row:auto}.about{grid-template-columns:1fr;gap:24px}.about-portrait{max-width:300px}.contact-note{font-size:16px}}@media (max-width:350px){.site-header{gap:10px}.site-nav svg{display:none}.hero-actions{gap:12px}.button{gap:8px;padding-inline:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
