@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/20fd6a0e301296d5-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 Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/49eec060ce8bd0da-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 Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ccc01da6a2b3d788-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 Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fa3e259cafa8f47e-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 Serif Display Fallback";src:local("Times New Roman");ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.00%;size-adjust:109.78%}.__className_d501d1{font-family:"DM Serif Display","DM Serif Display Fallback";font-weight:400}.__variable_d501d1{--font-dm-serif:"DM Serif Display","DM Serif Display Fallback"}@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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba43ea3467e29870-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:500;font-display:swap;src:url(/_next/static/media/b7ea2ab4a8ad1f81-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_9ef920{font-family:DM Mono,DM Mono Fallback;font-style:normal}.__variable_9ef920{--font-dm-mono:"DM Mono","DM Mono Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f5;--fg:#0d0d0d;--fg-muted:#6b6b6b;--accent:oklch(52% 0.18 262);--accent-light:oklch(92% 0.06 262);--border:rgba(0,0,0,0.1);--font-serif:var(--font-dm-serif),Georgia,serif;--font-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--font-mono:var(--font-dm-mono),ui-monospace,monospace}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.6;overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (pointer:fine){body{cursor:none}.nav-menu-toggle,.project-row,.tag,[role=button],a,a:link,a:visited,button,input[type=button],input[type=reset],input[type=submit],label[for],select,summary{cursor:none!important}}@media (pointer:coarse){#cursor-dot,#cursor-ring{display:none}}#cursor-dot{width:8px;height:8px;background:var(--fg);border-radius:50%;z-index:9999;transition:transform .1s ease,background .2s}#cursor-dot,#cursor-ring{position:fixed;left:0;top:0;pointer-events:none;transform:translate(-50%,-50%)}#cursor-ring{width:36px;height:36px;border:1.5px solid var(--fg);border-radius:50%;z-index:9998;transition:width .25s ease,height .25s ease,border-color .25s,opacity .25s}body.cursor-hover #cursor-ring{width:56px;height:56px;border-color:var(--accent);opacity:.6}body.cursor-hover #cursor-dot{background:var(--accent)}body.dark-band-cursor #cursor-dot{background:var(--bg)}body.dark-band-cursor #cursor-ring{border-color:rgba(248,247,245,.55)}body.cursor-hover.dark-band-cursor #cursor-ring{border-color:var(--accent);opacity:.75}body.cursor-hover.dark-band-cursor #cursor-dot{background:var(--accent)}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 4rem;background:transparent;border-bottom:1px solid transparent;transition:background .35s ease,border-color .3s}nav.scrolled{background:#fff;border-color:var(--border)}.nav-logo{font-family:var(--font-mono);font-size:1.625rem;font-weight:600;letter-spacing:.05em;color:var(--fg);text-decoration:none}.nav-menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--border);background:transparent;border-radius:4px;color:var(--fg)}.nav-menu-toggle-inner{display:flex;flex-direction:column;justify-content:center;gap:5px;width:18px}.nav-menu-toggle-inner span{display:block;height:2px;width:100%;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}.nav-links{display:flex;gap:2.5rem;list-style:none;margin:0;padding:0}.nav-links a{font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-2px;left:0;right:100%;height:1px;background:var(--accent);transition:right .3s ease}.nav-links a:hover{color:var(--fg)}.nav-links a:hover:after{right:0}.nav-backdrop{display:none}section{padding:7rem 4rem;max-width:1200px;margin:0 auto}.section-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:8rem;max-width:none;padding-left:4rem;padding-right:4rem;position:relative;overflow:hidden;@media (max-width:768px){padding-top:4rem;min-height:90vh}}.hero-noise{position:absolute;inset:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.hero-inner{max-width:1200px;margin:0 auto;width:100%}.hero-eyebrow{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:2rem;opacity:0;animation:fadeUp .8s .2s forwards}.hero-name{font-family:var(--font-serif);font-size:clamp(4rem,10vw,11rem);line-height:.95;letter-spacing:-.02em;margin-bottom:1.5rem}.hero-name-line{display:block}.hero-tagline{font-size:clamp(1rem,2vw,1.25rem);color:var(--fg-muted);max-width:540px;margin-bottom:3rem;opacity:0;animation:fadeUp .8s .9s forwards;line-height:1.7}.hero-cta{display:flex;align-items:center;gap:1.5rem;opacity:0;animation:fadeUp .8s 1.1s forwards}.btn-primary{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.8rem;background:var(--fg);color:var(--bg);font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:background .25s,transform .2s}.btn-primary:hover{background:var(--accent);transform:translateY(-2px)}.btn-secondary{font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);text-decoration:none;display:flex;align-items:center;gap:.4rem;transition:color .2s}.btn-secondary:hover{color:var(--fg)}.hero-scroll-hint{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-muted);opacity:0;animation:fadeUp 1s 1.5s forwards}.scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--fg-muted),transparent);animation:scrollLine 2s ease-in-out 2s infinite}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.01%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.marquee-wrap{border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;padding:1rem 0;background:var(--fg)}.marquee-track{display:flex;gap:3rem;width:max-content;animation:marquee 22s linear infinite}.marquee-item{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bg);opacity:.7;white-space:nowrap;display:flex;align-items:center;gap:3rem}.marquee-item:after{content:"·";opacity:.4}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.about-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6rem;gap:6rem;align-items:center}.about-img-wrap{position:relative;aspect-ratio:1/1;overflow:hidden}.about-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}.about-img-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#e8e6e1,#d4d1ca);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-mono);font-size:.7rem;color:#9e9a94;letter-spacing:.1em}.about-img-placeholder svg{opacity:.3}.about-img-overlay{position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:revealOverlay 1.2s cubic-bezier(.77,0,.18,1) forwards;animation-play-state:paused}.about-img-overlay.revealed{animation-play-state:running}@keyframes revealOverlay{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.about-content h2{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3.5rem);line-height:1.15;margin-bottom:1.5rem}.about-content p{color:var(--fg-muted);margin-bottom:1.2rem;line-height:1.75;font-size:1rem}.about-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}.tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;padding:.4rem .9rem;border:1px solid var(--border);color:var(--fg-muted);transition:border-color .2s,color .2s}.tag:hover{border-color:var(--accent);color:var(--accent)}#work{max-width:none;padding-left:4rem;padding-right:4rem}.work-inner{max-width:1200px;margin:0 auto}.projects-list{display:flex;flex-direction:column;gap:0;margin-top:3rem}.project-row{display:grid;grid-template-columns:80px 1fr 220px 160px;align-items:center;grid-gap:2rem;gap:2rem;padding:2rem 0;border-top:1px solid var(--border);text-decoration:none;color:inherit;transition:background .2s;position:relative;overflow:hidden}.project-row:last-child{border-bottom:1px solid var(--border)}.project-row:before{content:"";position:absolute;inset:0;background:var(--accent-light);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1);z-index:0}.project-row:hover:before{transform:scaleX(1)}.project-row>*{position:relative;z-index:1}.project-num{font-family:var(--font-mono);font-size:.72rem;color:var(--fg-muted);letter-spacing:.1em}.project-name{font-family:var(--font-serif);font-size:1.6rem}.project-desc{font-size:.88rem;color:var(--fg-muted)}.project-tech{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;color:var(--fg-muted);text-align:right}.exp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:4rem;gap:4rem;margin-top:3rem}.exp-col h3{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);padding-bottom:.75rem}.exp-col h3,.exp-item{margin-bottom:2rem;border-bottom:1px solid var(--border)}.exp-item{padding-bottom:2rem}.exp-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.3rem}.exp-title{font-weight:600;font-size:.95rem}.exp-period{font-family:var(--font-mono);font-size:.68rem;color:var(--fg-muted);letter-spacing:.06em;white-space:nowrap;margin-left:1rem}.exp-company{font-size:.82rem;color:var(--accent);margin-bottom:.4rem}.exp-desc{font-size:.85rem;color:var(--fg-muted);line-height:1.65}.exp-subroles{margin-top:1rem;padding-left:1rem;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem}.exp-subrole-title{display:block;font-weight:600;font-size:.82rem;margin-bottom:.15rem}.exp-subrole-company{font-size:.78rem;color:var(--accent)}#contact{max-width:none;padding-left:4rem;padding-right:4rem;background:var(--fg);color:var(--bg)}.contact-inner{max-width:1200px;margin:0 auto}#contact .section-label{color:oklch(72% .12 262)}.contact-heading{font-family:var(--font-serif);font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.1;color:var(--bg);margin-bottom:1.5rem}.contact-sub{color:rgba(248,247,245,.55);font-size:1rem;line-height:1.7;margin-bottom:2.5rem}.contact-links{display:flex;flex-direction:column;gap:1rem}.contact-link{display:flex;align-items:center;gap:1rem;text-decoration:none;color:rgba(248,247,245,.7);font-size:.9rem;transition:color .2s;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.08);min-width:0}.contact-link>span:last-child{min-width:0;overflow-wrap:anywhere}.contact-link:hover{color:var(--bg)}.contact-link-icon{width:36px;height:36px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0;transition:border-color .2s,background .2s}.contact-link-icon svg{display:block}.contact-link:hover .contact-link-icon{border-color:var(--accent);background:var(--accent);color:white}#site-footer{text-align:center;padding:2rem 4rem;background:var(--fg);border-top:1px solid rgba(255,255,255,.06);font-family:var(--font-mono);font-size:.7rem;color:rgba(248,247,245,.25);letter-spacing:.1em}.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.nav-backdrop{display:block;position:fixed;inset:0;z-index:99;background:rgba(13,13,13,.35)}nav{padding:1.2rem 1.5rem;flex-wrap:wrap;row-gap:.75rem;align-items:center}.nav-logo{order:1;font-size:1.35rem}.nav-menu-toggle{display:inline-flex;order:2;margin-left:auto;flex-shrink:0}.nav-links{display:none;order:3;flex-basis:100%;flex-direction:column;gap:0;padding:.75rem 0 0;border-top:1px solid var(--border)}.nav-links li{border-bottom:1px solid rgba(0,0,0,.06)}.nav-links li:last-child{border-bottom:none}.nav-links a{display:block;padding:.85rem 0}.nav-links a:after{display:none}nav.nav-open .nav-links{display:flex}nav.nav-open{background:#fff;border-bottom-color:var(--border)}nav.nav-open .nav-menu-toggle-inner span:first-child{transform:translateY(7px) rotate(45deg)}nav.nav-open .nav-menu-toggle-inner span:nth-child(2){opacity:0}nav.nav-open .nav-menu-toggle-inner span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}section{padding:5rem 1.5rem}#contact,#hero,#work{padding-left:1.5rem;padding-right:1.5rem}#site-footer{padding:2rem 1.5rem}.about-grid,.exp-grid{grid-template-columns:1fr;gap:3rem}.project-row{grid-template-columns:48px 1fr;gap:1rem;padding:1.35rem 0}.project-name{font-size:clamp(1.15rem,5vw,1.5rem)}.project-desc,.project-tech{display:none}.hero-name{font-size:clamp(3rem,14vw,5rem)}.hero-cta{flex-wrap:wrap}#hero .btn-primary{padding:.62rem 1.25rem;font-size:.72rem;gap:.45rem}#hero .btn-primary svg{width:12px;height:12px}.hero-scroll-hint{display:none}.exp-item-header{flex-wrap:wrap;gap:.35rem 1rem;align-items:baseline}.exp-period{white-space:normal;margin-left:0;flex-basis:100%}}