@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/personal-website/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/personal-website/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/personal-website/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/personal-website/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/personal-website/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/personal-website/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,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:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_00d7c6{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_00d7c6{--font-sans:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/personal-website/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/personal-website/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/personal-website/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,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:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_ddcdd5{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_ddcdd5{--font-display:"Bricolage Grotesque","Bricolage Grotesque Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafafa;--bg2:#f4f4f5;--bg3:#e4e4e7;--text:#18181b;--text2:#52525b;--text3:#71717a;--text4:#a1a1aa;--border:#e4e4e7;--border2:#d4d4d8;--card:#ffffff}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans,"Space Grotesk",sans-serif);overflow-x:hidden}#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#right-panel{position:fixed;right:0;top:0;width:310px;height:100vh;display:flex;border-left:1px solid var(--border);z-index:10}#sig-wrap{width:36px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border)}#signal-canvas{width:36px;height:100%;display:block}#terminal{flex:1;background:var(--bg2);display:flex;flex-direction:column;overflow:hidden}#term-header{padding:9px 12px;border-bottom:1px solid var(--border);font-size:10px;color:var(--text3);display:flex;align-items:center;gap:6px;font-family:Courier New,monospace;background:var(--bg3);flex-shrink:0}.term-dot{width:9px;height:9px;border-radius:50%}#term-body{flex:1;overflow-y:auto;padding:10px 12px;font-size:10.5px;line-height:1.8;font-family:Courier New,monospace}#term-body::-webkit-scrollbar{width:2px}#term-body::-webkit-scrollbar-thumb{background:var(--border2)}.t-cmd{color:#18181b;font-weight:600}.t-info{color:#52525b}.t-dim{color:#a1a1aa}.t-hi{color:#18181b}.t-warn{color:#b45309}.t-ok{color:#15803d}#term-cursor{display:inline-block;width:6px;height:11px;background:#18181b;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{50%{opacity:0}}#content{margin-left:36px;margin-right:310px;z-index:5}#content,#hero{position:relative}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 60px;transform-origin:center center;will-change:transform,opacity}.hero-eyebrow{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--text4);margin-bottom:18px;font-family:Courier New,monospace}.hero-name{font-family:var(--font-display,"Bricolage Grotesque",sans-serif);font-weight:800;font-size:clamp(48px,6.5vw,88px);letter-spacing:-3px;line-height:1;color:var(--text)}.hero-tagline{font-size:clamp(14px,1.8vw,17px);color:var(--text3);margin-top:22px;line-height:1.55;max-width:440px}.hero-tagline strong{color:var(--text2);font-weight:500}.hero-meta{margin-top:10px;font-size:12px;color:var(--text4);font-family:Courier New,monospace}.hero-divider{width:36px;height:2px;background:var(--text);margin:24px 0}.hero-prompt{font-family:Courier New,monospace;font-size:12px;color:var(--text3);background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:9px 13px;display:inline-flex;align-items:center;gap:7px;max-width:420px}#hero-cmd{color:var(--text2)}#hero-cursor-el{display:inline-block;width:6px;height:12px;background:var(--text2);animation:blink 1s step-end infinite;vertical-align:text-bottom;flex-shrink:0}.scroll-hint{position:absolute;bottom:32px;left:60px;font-size:10px;color:var(--text4);font-family:Courier New,monospace;letter-spacing:1px;animation:fadepulse 3s ease-in-out infinite}@keyframes fadepulse{0%,to{opacity:.35}50%{opacity:1}}.section{min-height:88vh;display:flex;align-items:center;justify-content:flex-start;padding:64px 44px;position:relative}.section-inner{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:34px 40px;width:100%;flex-shrink:0;max-width:min(480px,calc(42vw - 104px));opacity:0;transform:translateY(24px) scale(.96);transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transform-origin:left center;position:relative;z-index:2}.section-inner.visible{opacity:1;transform:translateY(0) scale(1)}.layer-tag{font-size:10px;letter-spacing:3px;text-transform:uppercase;font-weight:600;margin-bottom:5px;font-family:Courier New,monospace;color:var(--text4)}.layer-tag span,.section-title{color:var(--text)}.section-title{font-family:var(--font-display,"Bricolage Grotesque",sans-serif);font-size:22px;font-weight:700;margin-bottom:4px;letter-spacing:-.5px}.section-sub{font-size:11px;color:var(--text4);margin-bottom:16px;font-family:Courier New,monospace;letter-spacing:1px}.section-desc{font-size:13px;color:var(--text2);line-height:1.75;margin-bottom:20px;border-left:2px solid var(--border2);padding-left:13px}.project-list{display:flex;flex-direction:column;gap:9px}.project-item{border:1px solid var(--border);border-radius:7px;padding:14px 16px;transition:border-color .15s,background .15s}.project-item:hover{border-color:var(--border2);background:var(--bg2)}.project-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}.project-tech{font-size:10px;color:var(--text4);margin-bottom:5px;font-family:Courier New,monospace}.project-desc{font-size:12px;color:var(--text2);line-height:1.65}.tag-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.tag{font-size:10px;padding:2px 7px;background:var(--bg2);color:var(--text3);border:1px solid var(--border);border-radius:3px;font-family:Courier New,monospace}.tag.active{background:var(--text);color:var(--bg);border-color:var(--text)}