:root{--p-ink:#10100f;--p-paper:#f2f0e9;--p-lime:#c8ff3d;--p-violet:#a89cff;--p-orange:#ff7048;--p-line:#f2f0e92e;--p-display:"Syne", sans-serif;--p-body:"Manrope", sans-serif;--p-mono:"DM Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--p-ink);color:var(--p-paper);font-family:var(--p-body);-webkit-font-smoothing:antialiased;margin:0}button,a{color:inherit;font:inherit}a{text-decoration:none}button{cursor:pointer}:focus-visible{outline-offset:3px;outline:2px solid}.skip-link{z-index:80;background:var(--p-lime);color:var(--p-ink);padding:10px 14px;font-size:12px;font-weight:700;position:absolute;top:0;left:16px;transform:translateY(-120%)}.skip-link:focus{transform:none}#work,#about,#experience,#contact{scroll-margin-top:78px}.portfolio-shell{background:var(--p-ink);min-height:100vh;position:relative;overflow:hidden}.portfolio-header{z-index:50;border-bottom:1px solid var(--p-line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#10100fe0;justify-content:space-between;align-items:center;height:78px;padding:0 clamp(22px,4vw,64px);display:flex;position:fixed;inset:0 0 auto}.portfolio-logo{font:600 15px/1 var(--p-display);letter-spacing:-.02em;align-items:center;gap:12px;display:flex}.portfolio-logo>span,.status-mark{border:1px solid var(--p-lime);width:37px;height:37px;color:var(--p-lime);font:500 10px/1 var(--p-mono);border-radius:50%;place-items:center;display:grid}.portfolio-header nav{gap:clamp(22px,3vw,45px);margin-left:auto;margin-right:clamp(24px,5vw,80px);display:flex}.portfolio-header nav a{color:#bbb9b2;font-size:12px;transition:color .2s}.portfolio-header nav a:hover,.portfolio-header nav a[aria-current=true]{color:var(--p-lime)}.header-actions{align-items:center;gap:15px;display:flex}.availability{font:400 9px/1 var(--p-mono);text-transform:uppercase;letter-spacing:.05em;color:#c2c0b9;align-items:center;gap:8px;display:flex}.availability i,.contact-meta>span i{background:var(--p-lime);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #c8ff3d1f}.mini-social{border:1px solid var(--p-line);border-radius:50%;place-items:center;width:34px;height:34px;transition:background .2s,color .2s;display:grid}.mini-social:hover{background:var(--p-lime);color:var(--p-ink)}.menu-button{background:0 0;border:0;padding:6px;display:none}.portfolio-hero{border-bottom:1px solid var(--p-line);isolation:isolate;min-height:850px;padding:154px clamp(22px,6.5vw,104px) 70px;position:relative}.portfolio-hero:before{content:"";z-index:-2;opacity:.22;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}.hero-orbit{aspect-ratio:1;z-index:-1;border:1px solid #a89cff73;border-radius:50%;width:min(42vw,580px);animation:28s linear infinite rotate;position:absolute;top:108px;right:-6vw}.hero-orbit:before,.hero-orbit:after{content:"";border:1px solid #a89cff33;border-radius:50%;position:absolute;inset:12%}.hero-orbit:after{inset:28%}.hero-orbit i{background:var(--p-lime);border-radius:50%;width:14px;height:14px;position:absolute;top:13%;left:15%;box-shadow:0 0 24px #c8ff3d99}.hero-orbit i:nth-child(2){background:var(--p-violet);width:7px;height:7px;top:75%;left:92%}.hero-orbit i:nth-child(3){border:1px solid var(--p-orange);background:0 0;width:22px;height:22px;top:52%;left:26%}@keyframes rotate{to{transform:rotate(360deg)}}.hero-kicker{color:var(--p-lime);font:500 10px/1 var(--p-mono);letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;display:flex}.portfolio-hero h1{max-width:1120px;font:600 clamp(68px, 10.1vw, 158px) / .83 var(--p-display);letter-spacing:-.07em;margin:70px 0 48px}.portfolio-hero h1 em,.section-intro h2 em,.about-copy h2 em,.stack-heading h2 em{color:var(--p-violet);font-style:normal}.hero-lower{justify-content:space-between;align-items:flex-end;gap:50px;max-width:1170px;padding-left:30%;display:flex}.hero-lower>p{color:#c2c0ba;max-width:520px;margin:0;font-size:clamp(15px,1.4vw,19px);line-height:1.65}.hero-actions{white-space:nowrap;align-items:center;gap:28px;display:flex}.button-primary{background:var(--p-lime);color:var(--p-ink);border:0;border-radius:2px;align-items:center;gap:23px;padding:17px 21px;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s;display:inline-flex}.button-primary:hover{transform:translateY(-3px);box-shadow:0 10px 35px #c8ff3d2b}.button-text{border-bottom:1px solid;align-items:center;gap:10px;padding-bottom:7px;font-size:11px;font-weight:600;display:inline-flex}.hero-proof{background:var(--p-line);border:1px solid var(--p-line);gap:1px;width:max-content;margin-top:90px;display:flex}.hero-proof div{background:var(--p-ink);align-items:center;gap:14px;min-width:180px;padding:18px 20px;display:flex}.hero-proof strong{color:var(--p-lime);font:600 25px/1 var(--p-display);white-space:nowrap}.hero-proof span{color:#8e8c86;font:400 9px/1.45 var(--p-mono);text-transform:uppercase}.scroll-note{writing-mode:vertical-rl;color:#76746e;font:400 8px/1 var(--p-mono);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:10px;display:flex;position:absolute;bottom:76px;right:clamp(22px,4vw,64px)}.scroll-note span{background:#76746e;width:1px;height:48px}.ticker{background:var(--p-lime);height:68px;color:var(--p-ink);align-items:center;display:flex;overflow:hidden;transform:rotate(-1deg)scale(1.02)}.ticker>div{min-width:max-content;animation:28s linear infinite ticker;display:flex}.ticker span{font:700 16px/1 var(--p-display);align-items:center;gap:28px;margin-right:28px;display:flex}.ticker i{font-size:12px;font-style:normal}@keyframes ticker{to{transform:translate(-50%)}}.work-section,.experience-section,.stack-section{padding:150px clamp(22px,6.5vw,104px)}.section-intro{grid-template-columns:1.4fr .6fr;align-items:end;gap:8vw;margin-bottom:85px;display:grid}.section-index{color:var(--p-lime);font:500 9px/1 var(--p-mono);letter-spacing:.13em;text-transform:uppercase}.section-intro h2,.about-copy h2,.stack-heading h2{font:600 clamp(49px, 6vw, 87px) / .94 var(--p-display);letter-spacing:-.055em;margin:28px 0 0}.section-intro>p{color:#9b9993;max-width:470px;margin:0 0 7px;font-size:14px;line-height:1.75}.project-list{max-width:1280px;margin:auto}.project{border-top:1px solid var(--p-line);grid-template-columns:1.35fr .65fr;align-items:center;gap:clamp(35px,6vw,100px);padding:60px 0;display:grid}.project:last-child{border-bottom:1px solid var(--p-line)}.project:nth-child(2n){grid-template-columns:.65fr 1.35fr}.project:nth-child(2n) .project-visual{order:2}.project-visual{place-items:center;min-height:480px;display:grid;position:relative;overflow:hidden}.project-number{color:#10100f9e;font:500 10px/1 var(--p-mono);position:absolute;top:22px;left:25px}.project-copy>span{color:#77756f;font:500 9px/1 var(--p-mono);text-transform:uppercase;letter-spacing:.08em}.project-copy h3{font:600 clamp(43px, 5vw, 72px) / 1 var(--p-display);letter-spacing:-.05em;margin:14px 0 22px}.project-copy p{color:#aaa8a1;font-size:13px;line-height:1.75}.project-copy ul{flex-wrap:wrap;gap:7px;margin:27px 0 36px;padding:0;list-style:none;display:flex}.project-copy li{border:1px solid var(--p-line);color:#aaa8a1;font:400 8px/1 var(--p-mono);text-transform:uppercase;border-radius:20px;padding:7px 10px}.project-copy a{border-bottom:1px solid #65645f;align-items:center;gap:18px;padding-bottom:8px;font-size:11px;display:inline-flex}.project-copy a:hover{color:var(--p-lime)}.otto .project-visual{background:var(--p-violet);min-height:0;padding:58px 52px 52px 36px}.otto-shot{border-radius:18px;width:min(100%,780px);height:auto;display:block;transform:rotate(-1.6deg);box-shadow:16px 20px #10100f24}.metricks .project-visual{background:var(--p-lime);min-height:0;padding:58px 36px 52px 52px}.metricks-shot{border-radius:18px;width:min(100%,780px);height:auto;display:block;transform:rotate(1.6deg);box-shadow:-16px 20px #10100f24}.rental .project-visual{background:var(--p-orange);min-height:0;padding:58px 52px 52px 36px}.rental-shot{border-radius:18px;width:min(100%,780px);height:auto;display:block;transform:rotate(-1.6deg);box-shadow:16px 20px #10100f24}.about-section{background:var(--p-paper);min-height:820px;color:var(--p-ink);grid-template-columns:1fr 1fr;display:grid}.about-image{filter:saturate(.55);background:linear-gradient(#0000 30%,#1e19147a),url(/about.jpg) 50%/cover no-repeat;min-height:720px;position:relative}.about-image>span{color:#fff;font:600 clamp(40px, 5vw, 70px) / .9 var(--p-display);letter-spacing:-.05em;position:absolute;bottom:50px;left:45px}.about-image small{color:#fff9;font:400 7px/1 var(--p-mono);writing-mode:vertical-rl;position:absolute;top:12px;right:12px}.about-copy{flex-direction:column;justify-content:center;padding:clamp(60px,8vw,120px);display:flex}.about-copy .section-index{color:#6656dd}.about-copy h2{font-size:clamp(52px,6.3vw,92px)}.about-copy h2 em{color:#6656dd}.about-copy .lead{color:var(--p-ink);margin:45px 0 18px;font-size:17px;font-weight:700}.about-copy>p:not(.lead){color:#5e5c57;max-width:600px;font-size:13px;line-height:1.8}.about-values{border-top:1px solid #cbc8be;grid-template-columns:repeat(3,1fr);margin-top:38px;display:grid}.about-values div{padding-top:17px}.about-values b{color:#6656dd;font:500 8px/1 var(--p-mono);margin-bottom:12px;display:block}.about-values span{font-size:10px;font-weight:700;line-height:1.45}.experience-section{background:#181817}.section-intro.compact{align-items:end}.section-intro.compact .button-text{justify-self:end;margin-bottom:8px}.timeline{border-top:1px solid var(--p-line)}.timeline article{border-bottom:1px solid var(--p-line);grid-template-columns:120px 45px 1fr 1fr;align-items:start;gap:3vw;padding:37px 0;display:grid}.timeline article>span{color:var(--p-lime);font:500 9px/1 var(--p-mono)}.timeline article>i{color:#7a7872;width:30px;height:30px;font:normal 400 8px/1 var(--p-mono);border:1px solid #4b4a46;border-radius:50%;place-items:center;display:grid}.timeline h3{font:600 21px/1.1 var(--p-display);margin:0 0 9px}.timeline article div b{color:#7f7d77;font-size:10px;font-weight:500}.timeline article p{color:#8f8d87;max-width:470px;margin:0;font-size:12px;line-height:1.7}.stack-section{background:var(--p-violet);color:var(--p-ink)}.stack-section .section-index{color:#332e66}.stack-heading{grid-template-columns:1.4fr .6fr;align-items:end;gap:8vw;display:grid}.stack-heading h2 em{color:#4436c9}.stack-heading p{margin:0 0 10px;font-size:13px}.stack-grid{border:1px solid #10100f59;grid-template-columns:1.2fr repeat(3,1fr);margin-top:70px;display:grid}.stack-grid article{border-right:1px solid #10100f59;min-height:300px;padding:27px}.stack-grid article:last-child{border:0}.stack-grid article>span{font:500 8px/1 var(--p-mono);letter-spacing:.12em}.stack-grid ul{margin:65px 0 0;padding:0;list-style:none}.stack-grid li{font:600 clamp(18px, 2vw, 25px) / 1.8 var(--p-display);letter-spacing:-.03em}.stack-main{background:var(--p-ink);color:var(--p-paper);position:relative}.stack-main strong{color:var(--p-lime);font:500 clamp(32px, 3.5vw, 50px) / 1 var(--p-display);letter-spacing:-.05em;margin-top:50px;display:block}.code-lines{gap:6px;display:grid;position:absolute;bottom:26px;left:27px;right:27px}.code-lines i{background:#343432;width:76%;height:2px}.code-lines i:nth-child(2){width:48%}.code-lines i:nth-child(3){width:88%}.code-lines i:nth-child(4){width:35%}.contact-section{background:var(--p-lime);min-height:790px;color:var(--p-ink);flex-direction:column;justify-content:center;padding:135px clamp(22px,6.5vw,104px) 65px;display:flex;position:relative}.contact-section .section-index{color:#505f27}.contact-section h2{max-width:1050px;font:600 clamp(65px, 9.5vw, 144px) / .83 var(--p-display);letter-spacing:-.07em;margin:45px 0 30px}.contact-section>p{max-width:570px;font-size:15px;line-height:1.65}.contact-link{border-bottom:2px solid var(--p-ink);width:fit-content;font:600 clamp(18px, 2.4vw, 32px) / 1 var(--p-display);align-items:center;gap:22px;margin-top:45px;padding-bottom:8px;display:flex}.contact-spark{color:#6d8034;font-size:120px;animation:18s linear infinite rotate;position:absolute;top:100px;right:9vw}.contact-meta{border-top:1px solid #10100f45;justify-content:space-between;margin-top:auto;padding-top:60px;display:flex}.contact-meta>span{font:500 9px/1 var(--p-mono);text-transform:uppercase;align-items:center;gap:10px;display:flex}.contact-meta>span i{background:var(--p-ink);box-shadow:none}.contact-meta>div{gap:28px;display:flex}.contact-meta a{align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.portfolio-footer{color:#77756f;min-height:92px;font:400 8px/1 var(--p-mono);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 clamp(22px,4vw,64px);display:flex}.status-screen{text-align:center;align-content:center;justify-items:center;gap:18px;min-height:100vh;padding:24px;display:grid}.status-screen p{color:#c2c0ba;margin:0;font-size:14px}@media (width<=900px){.portfolio-header nav{background:var(--p-ink);border-bottom:1px solid var(--p-line);flex-direction:column;padding:35px;display:none;position:fixed;inset:78px 0 auto}.portfolio-header nav.is-open{display:flex}.menu-button{display:block}.availability{display:none}.portfolio-hero{min-height:760px}.hero-lower{padding-left:0}.hero-orbit{width:65vw;right:-25vw}.section-intro,.stack-heading{grid-template-columns:1fr;gap:35px}.project,.project:nth-child(2n){grid-template-columns:1fr 1fr}.project:nth-child(2n) .project-visual{order:0}.project-visual{min-height:390px}.about-section{grid-template-columns:1fr}.about-image{min-height:600px}.timeline article{grid-template-columns:100px 35px 1fr}.timeline article p{grid-column:3}.stack-grid{grid-template-columns:1fr 1fr}.stack-grid article{border-bottom:1px solid #10100f59}}@media (width<=620px){#work,#about,#experience,#contact{scroll-margin-top:68px}.portfolio-header{height:68px}.portfolio-header nav{top:68px}.portfolio-logo b,.mini-social{display:none}.portfolio-hero{min-height:750px;padding-top:120px}.hero-kicker span:last-child{display:none}.portfolio-hero h1{margin-top:62px;font-size:clamp(58px,20vw,84px)}.hero-lower{flex-direction:column;align-items:flex-start}.hero-actions{flex-wrap:wrap;gap:20px}.hero-proof{width:100%;margin-top:65px}.hero-proof div{flex:1;gap:6px;width:auto;min-width:0;padding:14px 9px}.hero-proof strong{font-size:16px}.hero-proof span{font-size:7px}.scroll-note{display:none}.work-section,.experience-section,.stack-section{padding-top:100px;padding-bottom:100px}.section-intro{margin-bottom:50px}.project,.project:nth-child(2n){grid-template-columns:1fr;padding:45px 0 65px}.project-visual{min-height:360px}.project-copy h3{font-size:48px}.about-image{min-height:500px}.about-copy{padding:75px 24px}.about-values{gap:12px}.timeline article{grid-template-columns:78px 1fr;gap:18px}.timeline article>i{display:none}.timeline article p{grid-column:2}.section-intro.compact .button-text{justify-self:start}.stack-grid{grid-template-columns:1fr}.stack-grid article{border-right:0;min-height:250px}.stack-grid ul{margin-top:38px}.contact-section{min-height:720px}.contact-section h2{font-size:clamp(57px,18vw,84px)}.contact-link{gap:8px;font-size:15px}.contact-spark{font-size:70px;top:60px}.contact-meta{flex-direction:column;align-items:flex-start;gap:25px}.contact-meta>div{flex-wrap:wrap;gap:18px}.portfolio-footer{flex-direction:column;align-items:flex-start;gap:18px;padding-block:25px}}@media (width<=900px){.otto .project-visual,.metricks .project-visual,.rental .project-visual{padding:48px 22px 32px}}@media (width<=620px){.otto .project-visual,.metricks .project-visual,.rental .project-visual{padding:46px 14px 24px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.hero-orbit,.contact-spark,.ticker>div{animation:none}}
