@font-face{font-family:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-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:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/0da54fcd0470ea43-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/680a7121f7a85e3f-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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8a1d8947e5852e30-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:Syne Fallback;src:local("Arial");ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.00%;size-adjust:98.47%}.__className_bb509a{font-family:Syne,Syne Fallback;font-style:normal}.__variable_bb509a{--font-syne:"Syne","Syne Fallback"}@font-face{font-family:DM Mono;font-style:italic;font-weight:300;font-display:swap;src:url(/_next/static/media/14d5a68041329f7f-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:DM Mono;font-style:italic;font-weight:300;font-display:swap;src:url(/_next/static/media/268f004ea3786b37-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:DM Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/eff95c6845f9d0bc-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:DM Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/5d259b4d93dec8ad-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:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/8d0a1832fd3be0c8-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:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d7df244fe7b07b95-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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64418ffc17e50301-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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0e96d314a90a6138-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:DM Mono Fallback;src:local("Arial");ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.00%;size-adjust:134.59%}.__className_415136{font-family:DM Mono,DM Mono Fallback}.__variable_415136{--font-dm-mono:"DM Mono","DM Mono Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=light]{--bg:#f5f2ee;--surface:#ede9e3;--surface2:#e4dfd8;--accent:#e8512a;--accent2:#c73d18;--text:#1a1714;--muted:#8a837a;--border:#d8d2ca;--nav-bg:rgba(245,242,238,0.88);--ghost-stroke:#d0c9c0;--skill-hover:#ffffff;--about-text:#6b6460;--cursor-rgb:232,81,42}[data-theme=dark]{--bg:#0a0a0a;--surface:#111111;--surface2:#181818;--accent:#e8512a;--accent2:#ff6b42;--text:#f0ede6;--muted:#6b6b6b;--border:#222222;--nav-bg:rgba(10,10,10,0.88);--ghost-stroke:#1e1e1e;--skill-hover:#151515;--about-text:#a0a0a0;--cursor-rgb:232,81,42}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-syne),"Syne",sans-serif;line-height:1.6;overflow-x:hidden;transition:background .35s ease,color .35s ease;cursor:none}a,button{cursor:none!important}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.25rem 3rem;border-bottom:1px solid var(--border);background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .35s ease,border-color .35s ease}.nav-logo{font-size:1.1rem;font-weight:800;letter-spacing:-.02em;color:var(--text);text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{display:flex;gap:2rem;list-style:none;align-items:center}.nav-links a{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.78rem;font-weight:300;color:var(--muted);text-decoration:none;letter-spacing:.05em;transition:color .2s}.nav-links a:hover{color:var(--text)}.theme-toggle{width:44px;height:24px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;position:relative;transition:background .3s,border-color .3s;flex-shrink:0}.theme-toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);transition:transform .3s ease}[data-theme=dark] .theme-toggle:after{transform:translateX(20px)}.theme-toggle-wrap{display:flex;align-items:center;gap:.6rem}.theme-toggle-icon{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.72rem;color:var(--muted);letter-spacing:.05em;-webkit-user-select:none;-moz-user-select:none;user-select:none}#hero{min-height:80vh;display:flex;flex-direction:column;justify-content:flex-end;padding:7rem 3rem 4rem;position:relative;overflow:hidden}.hero-tag{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.8rem;font-weight:300;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.5rem;animation:slideUp .8s ease .2s forwards}.hero-name,.hero-tag{opacity:0;position:relative;z-index:1}.hero-name{font-size:clamp(3rem,8vw,7rem);font-weight:800;line-height:.95;letter-spacing:-.04em;animation:slideUp .8s ease .4s forwards}.hero-name .line2{color:var(--accent);display:block}.hero-sub{margin-top:2rem;max-width:480px;font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.9rem;font-weight:300;color:var(--muted);line-height:1.8;animation:slideUp .8s ease .6s forwards}.hero-cta,.hero-sub{opacity:0;position:relative;z-index:1}.hero-cta{margin-top:2.5rem;display:flex;gap:1rem;flex-wrap:wrap;animation:slideUp .8s ease .8s forwards}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2rem;font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.82rem;font-weight:400;letter-spacing:.05em;text-decoration:none;transition:all .2s;border:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2);transform:translateY(-2px)}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.hero-scroll{position:absolute;right:3rem;bottom:5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:1;opacity:0;animation:fadeIn 1s ease 1.2s forwards}.hero-scroll span{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.65rem;font-weight:300;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;writing-mode:vertical-rl}.scroll-line{width:1px;height:60px;background:var(--border);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--accent);animation:scrollLine 1.5s ease infinite}#about{padding:8rem 3rem;display:grid;grid-template-columns:1fr 1fr;grid-gap:6rem;gap:6rem;border-top:1px solid var(--border);max-width:1400px;margin:0 auto}.section-label{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.72rem;font-weight:300;color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin-bottom:2rem;display:flex;align-items:center;gap:.75rem}.section-label:after{content:"";display:block;width:40px;height:1px;background:var(--accent);opacity:.4}.about-heading{font-size:clamp(2.2rem,4vw,3.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em}.about-heading .accent{color:var(--accent)}.about-right{display:flex;flex-direction:column;justify-content:center;gap:1.5rem}.about-text{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.9rem;font-weight:300;color:var(--about-text);line-height:1.9}.about-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem;margin-top:1rem}.stat{border-left:2px solid var(--accent);padding-left:1rem}.stat-num{font-size:2rem;font-weight:800;color:var(--text);letter-spacing:-.04em;line-height:1}.stat-label{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.72rem;font-weight:300;color:var(--muted);margin-top:.3rem;letter-spacing:.05em}#skills{padding:6rem 3rem;border-top:1px solid var(--border);max-width:1400px;margin:0 auto}.skills-header{margin-bottom:4rem}.skills-heading{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:.5rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1px;gap:1px;border:1px solid var(--border);background:var(--border)}.skill-card{background:var(--bg);padding:2rem;transition:background .2s;position:relative;overflow:hidden}.skill-card:before{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--accent);transition:width .3s ease}.skill-card:hover{background:var(--skill-hover)}.skill-card:hover:before{width:100%}.skill-icon{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.7rem;font-weight:300;color:var(--accent);letter-spacing:.15em;margin-bottom:1rem}.skill-name{font-size:1.3rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.5rem}.skill-desc{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.78rem;font-weight:300;color:var(--muted);line-height:1.7}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.25rem}.tag{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.68rem;font-weight:300;color:var(--muted);border:1px solid var(--border);padding:.25rem .6rem;letter-spacing:.05em}#projects{padding:6rem 3rem;border-top:1px solid var(--border);max-width:1400px;margin:0 auto}.projects-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4rem}.projects-heading{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:.5rem}.project-count{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.78rem;font-weight:300;color:var(--muted)}.projects-list{display:flex;flex-direction:column}.project-item{display:grid;grid-template-columns:80px 1fr auto;grid-gap:2rem;gap:2rem;align-items:start;padding:2.5rem 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:all .2s}.project-item:first-child{border-top:1px solid var(--border)}.project-item:hover{padding-left:1rem}.project-num{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.72rem;font-weight:300;color:var(--muted);padding-top:.3rem}.project-title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.5rem;transition:color .2s}.project-item:hover .project-title{color:var(--accent)}.project-desc{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.82rem;font-weight:300;color:var(--muted);line-height:1.7;max-width:500px}.project-stack{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.project-arrow{font-size:1.5rem;color:var(--muted);transition:all .2s;align-self:center;opacity:0}.project-item:hover .project-arrow{color:var(--accent);opacity:1;transform:translate(4px,-4px)}#contact{padding:8rem 3rem;border-top:1px solid var(--border);max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;grid-gap:6rem;gap:6rem;align-items:center}.contact-heading{font-size:clamp(2.5rem,5vw,4.5rem);font-weight:800;line-height:.95;letter-spacing:-.04em}.contact-heading .accent{color:var(--accent);display:block}.contact-right{display:flex;flex-direction:column;gap:1.5rem}.contact-text{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.9rem;font-weight:300;color:var(--muted);line-height:1.9}.contact-links{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.contact-link{display:flex;align-items:center;gap:1rem;font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.85rem;font-weight:300;color:var(--muted);text-decoration:none;transition:color .2s;padding:.75rem 0;border-bottom:1px solid var(--border)}.contact-link:hover{color:var(--accent)}.contact-link-label{color:var(--muted);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;width:60px}.contact-link-value{color:var(--text)}.contact-link:hover .contact-link-value{color:var(--accent)}footer{padding:2rem 3rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.footer-copy,.footer-right{font-family:var(--font-dm-mono),"DM Mono",monospace;font-size:.72rem;font-weight:300;color:var(--muted)}.footer-right span{color:var(--accent)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollLine{0%{top:-100%}to{top:100%}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}.cursor{width:8px;height:8px;background:var(--accent);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .1s,background .35s}@media (max-width:768px){nav{padding:1rem 1.5rem}.nav-links{gap:1rem}.nav-links li:not(:last-child){display:none}#hero{padding:0 1.5rem 4rem}#about,#contact{grid-template-columns:1fr;gap:3rem}#about,#contact,#projects,#skills{padding:5rem 1.5rem}.projects-header{flex-direction:column;align-items:flex-start;gap:.5rem}.project-item{grid-template-columns:50px 1fr}.project-arrow{display:none}footer{padding:1.5rem;flex-direction:column;gap:.5rem;text-align:center}}