:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08070e;--bg-2:#0c0b14;--surface:#12111c;--hair:#ffffff10;--hair-2:#ffffff1e;--ink:#f2eef8;--ink-2:#a8a2bd;--ink-3:#6c6684;--pink:#ff4d8d;--violet:#9b7cff;--cyan:#5ae0ff;--mint:#77f0a1;--accent-ink:#08070e;--shot-bg:#0b0a13;--hover-tint:#ffffff04;--row-tint:#ff4d8d12;--chip-tint:#9b7cff12;--chip-line:#9b7cff66;--glass:#08070eaa;--aura-1:#ff4d8d1f;--aura-2:#9b7cff1a;--btn-face:#ffffff07;--btn-hover:#ff4d8d16;--nav-hover:#ffffff08;--display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;--body:"Instrument Sans",system-ui,-apple-system,sans-serif;--mono:"Martian Mono",ui-monospace,"SF Mono",Menlo,monospace;--rail:212px;--page:1120px;--ease:cubic-bezier(.2,.8,.2,1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.62;overflow-x:hidden}::selection{background:var(--pink);color:var(--accent-ink)}img{max-width:100%}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:2px}h1,h2,h3,h4{font-family:var(--display);text-wrap:balance;margin:0;font-weight:600;line-height:1.03}h1{letter-spacing:-.038em;font-size:clamp(34px,5vw,62px)}h2{letter-spacing:-.032em;font-size:clamp(24px,3vw,37px)}h3{letter-spacing:-.02em;font-size:clamp(16px,1.6vw,19px);line-height:1.22}p{margin:0}.eyebrow{font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.lede{color:var(--ink-2);max-width:62ch;font-size:clamp(14px,1.15vw,16px);line-height:1.62}.small{color:var(--ink-2);font-size:13.5px;line-height:1.62}.tiny{font-family:var(--mono);letter-spacing:.07em;color:var(--ink-3);font-size:10px;line-height:1.7}.shell{grid-template-columns:var(--rail) minmax(0,1fr);display:grid}.rail{width:var(--rail);z-index:40;background:0 0;flex-direction:column;height:100vh;padding:34px 24px 28px;display:flex;position:fixed;top:0;left:0}.rail .mark{align-items:center;gap:9px;margin-bottom:40px;display:flex}.rail .mark b{font-family:var(--display);letter-spacing:-.03em;font-size:16px;font-weight:600}.rail .mark i{background:var(--pink);border-radius:1px;width:6px;height:6px;font-style:normal}.pipe .node{fill:var(--surface)}@supports (color:color-mix(in srgb,red 50%,blue)){.pipe .node{fill:color-mix(in srgb,var(--pipe) var(--t,8%),var(--surface))}}.themebtn{all:unset;cursor:pointer;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-radius:3px;align-items:center;gap:8px;margin-left:-9px;padding:7px 9px;font-size:9px;transition:color .2s,background .2s;display:inline-flex}.themebtn:hover{color:var(--ink);background:var(--nav-hover)}.themebtn svg{stroke:currentColor;fill:none;stroke-width:1.4px;flex:none;width:13px;height:13px}.themebtn .sun{display:none}:root[data-theme=light] .themebtn .sun{display:block}:root[data-theme=light] .themebtn .moon{display:none}.rail nav{flex-direction:column;gap:1px;display:flex}.rail nav a{transition:background .2s var(--ease);border-radius:3px;align-items:baseline;gap:11px;margin-left:-9px;padding:8px 9px;display:flex}.rail nav a .n{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-3);font-size:9.5px;transition:color .2s}.rail nav a .t{color:var(--ink-2);font-size:13px;transition:color .2s}.rail nav a{position:relative}.rail nav a:before{content:"";background:var(--pink);width:0;height:1px;transition:width .28s var(--ease);position:absolute;top:50%;left:-24px;transform:translateY(-50%)}.rail nav a:hover .t,.rail nav a.on .t{color:var(--ink)}.rail nav a.on .n{color:var(--pink)}.rail nav a.on:before{width:16px}.rail .foot{flex-direction:column;gap:12px;margin-top:auto;padding-top:16px;display:flex}.status{font-family:var(--mono);letter-spacing:.09em;color:var(--ink-2);text-transform:uppercase;align-items:center;gap:8px;font-size:9px;display:flex}.status i{background:var(--mint);border-radius:50%;width:6px;height:6px;font-style:normal;box-shadow:0 0 0 3px #77f0a125}.rail .links{font-family:var(--mono);letter-spacing:.07em;color:var(--ink-3);gap:12px;font-size:9.5px;display:flex}.rail .links a:hover{color:var(--pink)}main{grid-column:2;min-width:0}.wrap{max-width:var(--page);margin-inline:auto;padding:0 clamp(22px,4vw,64px)}section{border-top:1px solid var(--hair);padding:clamp(78px,9vw,132px) 0}.sec-head{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:end;gap:34px;margin-bottom:clamp(34px,4.5vw,58px);display:grid}.sec-head .l{flex-direction:column;gap:16px;display:flex}.hero{isolation:isolate;border-top:0;padding:0;position:relative;overflow:hidden}#grid{z-index:-1;width:100%;height:100%;display:block;position:absolute;inset:0}.hero .wrap{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:center;gap:clamp(30px,5vw,64px);padding-top:clamp(84px,11vw,128px);padding-bottom:clamp(72px,9vw,112px);display:grid}.hero-copy{flex-direction:column;gap:24px;min-width:0;display:flex}.hero h1{padding-bottom:20px;position:relative}.hero h1:after{content:"";background:linear-gradient(90deg,var(--pink),var(--violet) 55%,var(--cyan));width:138px;height:2px;position:absolute;bottom:0;left:0}.role{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-size:10px}.role b{color:var(--pink);font-weight:400}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--hair-2);background:var(--btn-face);color:var(--ink);cursor:pointer;transition:transform .3s var(--ease),border-color .25s ease,background .25s ease,color .25s ease;border-radius:999px;align-items:center;gap:9px;padding:12px 19px;font-size:9.5px;display:inline-flex}.btn .ar{transition:transform .3s var(--ease)}.btn:hover{border-color:var(--pink);background:var(--btn-hover)}.btn:hover .ar{transform:translate(4px)}.btn.solid{background:var(--pink);border-color:var(--pink);color:var(--accent-ink);font-weight:600}.btn.solid:hover{background:#ff6ba1;border-color:#ff6ba1}.portrait{flex-direction:column;gap:13px;margin:0;display:flex}.portrait .frame{isolation:isolate;border:1px solid var(--hair-2);background:var(--glass);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:9px;position:relative}.portrait .frame:before{content:"";z-index:-1;pointer-events:none;filter:blur(24px);background:radial-gradient(58% 52% at 28% 16%,#ff4d8d38,#0000 70%),radial-gradient(58% 52% at 80% 90%,#9b7cff30,#0000 70%);position:absolute;inset:-28px}.portrait img{aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;filter:saturate(1.05)contrast(1.02);width:100%;height:auto;transition:filter .5s var(--ease),transform .5s var(--ease);display:block}.portrait:hover img{filter:saturate(1.16)contrast(1.05)brightness(1.04);transform:scale(1.015)}.tick{border:0 solid var(--pink);opacity:.9;width:9px;height:9px;position:absolute}.tick.tl{border-top-width:1px;border-left-width:1px;top:-1px;left:-1px}.tick.tr{border-top-width:1px;border-right-width:1px;top:-1px;right:-1px}.tick.bl{border-bottom-width:1px;border-left-width:1px;bottom:-1px;left:-1px}.tick.br{border-bottom-width:1px;border-right-width:1px;bottom:-1px;right:-1px}.portrait figcaption{font-family:var(--mono);letter-spacing:.13em;color:var(--ink-3);font-size:8.5px;line-height:1.9}.about-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:clamp(28px,4vw,56px);display:grid}.prose{flex-direction:column;gap:17px;display:flex}.prose p{color:var(--ink-2);max-width:62ch;font-size:14.5px;line-height:1.72}.prose strong{color:var(--ink);font-weight:600}.stats{background:var(--hair);border:1px solid var(--hair);grid-template-columns:1fr 1fr;gap:1px;display:grid}.stat{background:var(--bg);transition:transform .3s var(--ease),background .3s ease;transform-style:preserve-3d;flex-direction:column;gap:5px;padding:22px 20px 24px;display:flex}.stat .n{font-family:var(--mono);letter-spacing:.1em;font-size:9px}.stat .v{font-family:var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(25px,2.5vw,31px);line-height:1}.stat .l{color:var(--ink-3);font-size:11.5px;line-height:1.4}.stat:first-child .n{color:var(--pink)}.stat:nth-child(2) .n{color:var(--violet)}.stat:nth-child(3) .n{color:var(--cyan)}.stat:nth-child(4) .n{color:var(--mint)}.stat:hover{background:var(--bg-2)}.tabs{flex-wrap:wrap;gap:7px;margin-bottom:18px;display:flex}.tab{all:unset;cursor:pointer;font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--hair-2);color:var(--ink-3);border-radius:2px;padding:8px 13px;font-size:9.5px;transition:all .2s}.tab:hover{color:var(--ink-2);border-color:#fff3}.tab.on{background:var(--pipe,var(--pink));color:var(--accent-ink);border-color:var(--pipe,var(--pink));font-weight:600}.pipe{border:1px solid var(--hair);background:var(--bg-2);padding:22px 20px;overflow-x:auto}.pipe svg{width:100%;max-width:640px;height:auto;display:block}.skills{background:var(--hair);border:1px solid var(--hair);border-top:0;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;display:grid}.skillgrp{background:var(--bg);flex-direction:column;gap:13px;padding:22px 20px 24px;display:flex}.skillgrp h4{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:9.5px;font-weight:400}.skillgrp ul{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.skillgrp li{color:var(--ink-2);border:1px solid var(--hair-2);border-radius:2px;padding:5px 9px;font-size:12px;transition:all .2s}.skillgrp li:hover{color:var(--ink);border-color:var(--chip-line);background:var(--chip-tint)}.work-grid{grid-template-columns:minmax(0,1fr) minmax(0,.78fr);align-items:start;gap:clamp(28px,4vw,52px);display:grid}.rows{border-top:1px solid var(--hair)}.row{border-bottom:1px solid var(--hair);transition:background .22s var(--ease),padding-left .22s var(--ease);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 10px 14px 4px;display:grid}.row .n{font-family:var(--mono);color:var(--ink-3);font-size:9.5px;transition:color .22s}.row .mid{flex-direction:column;gap:3px;min-width:0;display:flex}.row .t{font-family:var(--display);letter-spacing:-.02em;color:var(--ink-2);font-size:15.5px;font-weight:600;transition:color .22s}.row .u{font-family:var(--mono);letter-spacing:.05em;color:var(--ink-3);font-size:9.5px}.row .ar{font-family:var(--mono);color:var(--ink-3);opacity:0;transition:.22s var(--ease);font-size:13px;transform:translate(-6px)}.row:hover,.row.on{background:linear-gradient(90deg,var(--row-tint),transparent 72%);padding-left:12px}.row:hover .n,.row.on .n{color:var(--pink)}.row:hover .t,.row.on .t{color:var(--ink)}.row:hover .ar,.row.on .ar{opacity:1;color:var(--pink);transform:translate(0)}.row .shot{display:none}.panel{border:1px solid var(--hair);background:var(--bg-2);padding:9px;position:sticky;top:clamp(24px,7vh,64px)}.panel .win{aspect-ratio:16/10;background:var(--shot-bg);position:relative;overflow:hidden}.panel .win img.on{opacity:1;transform:scale(1)}.panel .meta{justify-content:space-between;align-items:baseline;gap:12px;padding:12px 4px 4px;display:flex}.panel .meta .pt{font-family:var(--display);letter-spacing:-.02em;font-size:13.5px}.panel .meta .pu{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);font-size:9px}.panel .desc{color:var(--ink-3);min-height:3em;padding:0 4px 6px;font-size:12px;line-height:1.5}.jobs{border-top:1px solid var(--hair);flex-direction:column;display:flex}.job{border-bottom:1px solid var(--hair);grid-template-columns:150px minmax(0,1fr);gap:clamp(18px,3vw,40px);padding:30px 4px 32px;transition:background .25s;display:grid}.job:hover{background:linear-gradient(90deg,var(--row-tint),transparent 72%)}.job .co{transition:color .22s}.job:hover .co{color:var(--pink)}.job .when{flex-direction:column;gap:7px;display:flex}.job .when .p{font-family:var(--mono);letter-spacing:.08em;color:var(--pink);font-size:9.5px}.job .when .loc{font-family:var(--mono);letter-spacing:.05em;color:var(--ink-3);font-size:9px;line-height:1.6}.job .what{flex-direction:column;gap:12px;min-width:0;display:flex}.job .co{font-family:var(--display);letter-spacing:-.025em;font-size:17.5px;font-weight:600}.job .pos{color:var(--ink-3);margin-top:-8px;font-size:12.5px}.job ul{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.job ul li{color:var(--ink-2);grid-template-columns:13px minmax(0,1fr);gap:9px;font-size:13.5px;line-height:1.55;display:grid}.job ul li:before{content:"—";font-family:var(--mono);color:var(--ink-3);font-size:9px;line-height:1.9}.chips{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.chips span{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);border:1px solid var(--hair-2);border-radius:2px;padding:4px 8px;font-size:9px}.contact{isolation:isolate;position:relative;overflow:hidden}.contact:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(46% 62% at 14% 88%,var(--aura-1),transparent 72%), radial-gradient(46% 62% at 86% 22%,var(--aura-2),transparent 72%);position:absolute;inset:0}.contact h2 em{background:linear-gradient(96deg,var(--pink),var(--violet) 58%,var(--cyan));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.mailto{flex-direction:column;gap:9px;max-width:100%;margin-top:clamp(30px,4vw,46px);display:inline-flex}.mailto .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:9px}.mailto .v{font-family:var(--display);letter-spacing:-.032em;color:var(--ink);word-break:break-word;align-items:center;gap:14px;padding-bottom:9px;font-size:clamp(21px,3vw,38px);line-height:1.1;display:inline-flex;position:relative}.mailto .v:after{content:"";background:linear-gradient(90deg,var(--pink),var(--violet) 55%,var(--cyan));transform-origin:0;width:100%;height:1px;transition:transform .45s var(--ease);position:absolute;bottom:0;left:0;transform:scaleX(0)}.mailto:hover .v:after,.mailto:focus-visible .v:after{transform:scaleX(1)}.mailto .v i{color:var(--pink);transition:transform .35s var(--ease);font-size:.62em;font-style:normal}.mailto:hover .v i{transform:translate(5px,-5px)}.contact-foot{border-top:1px solid var(--hair);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:clamp(34px,4.4vw,52px);padding-top:20px;font-size:10px;display:flex}.contact-foot a{transition:color .2s}.contact-foot a:hover{color:var(--pink)}.contact-foot .sep{background:var(--hair-2);border-radius:50%;width:3px;height:3px}footer{border-top:1px solid var(--hair);font-family:var(--mono);letter-spacing:.09em;color:var(--ink-3);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:14px;padding:34px 0 46px;font-size:9px;display:flex}@media (max-width:1080px){.shell{grid-template-columns:minmax(0,1fr)}main{grid-column:1}.rail{border-right:0;border-bottom:1px solid var(--hair);flex-direction:row;align-items:center;gap:14px;width:auto;height:auto;padding:11px clamp(16px,4vw,26px);position:sticky;top:0;left:auto}.rail .mark{margin-bottom:0}.rail nav{scrollbar-width:none;flex-direction:row;flex:1;gap:0;overflow-x:auto}.rail nav::-webkit-scrollbar{display:none}.rail nav a{white-space:nowrap;margin-left:0;padding:7px 10px}.rail nav a .t{font-size:13px}.rail .foot{border-top:0;border-left:1px solid var(--hair);flex-direction:row;flex:none;align-items:center;gap:12px;margin-top:0;padding-top:0;padding-left:12px}.themebtn{margin-left:0}.hero .wrap{grid-template-columns:minmax(0,1fr);gap:36px}.portrait{flex-direction:row;align-items:flex-end;gap:16px}.portrait .frame{flex:none;width:min(210px,44vw)}.about-grid,.work-grid,.sec-head{grid-template-columns:minmax(0,1fr)}.sec-head{align-items:start;gap:18px}.panel{display:none}.row{grid-template-columns:34px minmax(0,1fr) auto}.row .shot{border:1px solid var(--hair);grid-column:1/-1;margin-top:12px;display:block}.row .shot img{aspect-ratio:16/10;object-fit:cover;object-position:50% 0;width:100%;display:block}}@media (max-width:640px){.stats{grid-template-columns:1fr}.job{grid-template-columns:minmax(0,1fr);gap:16px}.status,.themebtn span{display:none}.themebtn{justify-content:center;min-width:40px;height:40px;padding:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}:root[data-theme=light]{--bg:#f5f2ec;--bg-2:#ede9e1;--surface:#fbf9f5;--hair:#14131a14;--hair-2:#14131a2b;--ink:#14131a;--ink-2:#494455;--ink-3:#7a7486;--pink:#d42b6c;--violet:#6b45d4;--cyan:#0b7898;--mint:#12905a;--accent-ink:#fff7f2;--shot-bg:#e7e2d9;--hover-tint:#14131a06;--row-tint:#d42b6c14;--chip-tint:#6b45d410;--chip-line:#6b45d455;--glass:#fbf9f5c4;--aura-1:#d42b6c1a;--aura-2:#6b45d414;--btn-face:#14131a06;--btn-hover:#d42b6c12;--nav-hover:#14131a08;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light] .portrait .frame:before{background:radial-gradient(58% 52% at 28% 16%,#d42b6c2e,#0000 70%),radial-gradient(58% 52% at 80% 90%,#6b45d426,#0000 70%)}.pipe{color:var(--ink)}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:14px;width:100%;display:flex}.panel .win .shotwrap{opacity:0;transition:opacity .45s var(--ease),transform .8s var(--ease);position:absolute;inset:0;transform:scale(1.03)}.panel .win .shotwrap.on{opacity:1;transform:scale(1)}.panel .win img{object-fit:cover;object-position:50% 0;opacity:1;width:100%;height:100%;transition:none;position:absolute;inset:0;transform:none}.row .shot img{aspect-ratio:16/10;object-fit:cover;object-position:50% 0;width:100%;height:auto;display:block}
