@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-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:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-sans:"Geist","Geist Fallback"}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-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:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-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:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/665e920483964785-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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/5611c55482296524-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:Newsreader Fallback;src:local("Times New Roman");ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.00%;size-adjust:105.48%}.__className_328ff9{font-family:Newsreader,Newsreader Fallback}.__variable_328ff9{--font-serif:"Newsreader","Newsreader Fallback"}:root{--ink:#e8eee9;--muted:#89958e;--line:rgba(220,237,228,.13);--accent:#a7f3d0;--bg:#07100e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{font:inherit}main{overflow:hidden}.site-header{height:80px;position:absolute;z-index:10;top:0;left:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4.5vw;border-bottom:1px solid var(--line)}.logo{font-weight:800;font-size:20px;letter-spacing:-1px}.logo span{color:var(--accent);font-weight:400}.site-header nav{display:flex;gap:34px}.site-header nav a{color:#b5c0ba;font-size:12px;text-transform:uppercase;letter-spacing:.14em}.site-header nav a:hover{color:var(--accent)}.availability{justify-self:end;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.availability i{width:6px;height:6px;background:#69e7aa;border-radius:50%;display:inline-block;margin-right:9px;box-shadow:0 0 10px #69e7aa}.hero{height:max(750px,100svh);min-height:680px;position:relative;display:flex;align-items:center;padding:100px 8vw 50px;background:radial-gradient(circle at 78% 42%,#12362f 0,transparent 35%),#07100e}.shader-canvas,.shader-fallback{position:absolute;inset:0;width:100%;height:100%;opacity:.62}.shader-fallback{background:radial-gradient(circle at 76% 43%,rgba(51,151,125,.35),transparent 23%),linear-gradient(135deg,#07100e 20%,#0a211c)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,16,14,.94),rgba(7,16,14,.55) 52%,rgba(7,16,14,.1));pointer-events:none}.hero-grid{position:absolute;z-index:1;inset:80px 0 0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:9vw 9vw;-webkit-mask-image:linear-gradient(90deg,black,transparent 70%);mask-image:linear-gradient(90deg,black,transparent 70%);opacity:.28}.hero-copy{position:relative;z-index:2;max-width:990px}.eyebrow{font-size:10px!important;letter-spacing:.2em;color:#aab5af!important;font-weight:700;text-transform:uppercase}.eyebrow span{color:var(--accent);margin-right:17px}.hero h1,.section h2{font-size:clamp(55px,7.3vw,112px);line-height:.91;letter-spacing:-.062em;margin:30px 0 36px;font-weight:500;max-width:1100px}.hero h1 em,.section h2 em{font-family:Georgia,serif;font-weight:400;color:var(--accent)}.hero-intro{max-width:530px;color:#aab4af;font-size:17px;line-height:1.65}.hero-actions{display:flex;gap:10px;margin-top:38px}.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:13px;text-transform:uppercase;font-weight:700;letter-spacing:.12em;font-size:10px;cursor:pointer;transition:.25s}.button-lg{height:52px;padding:0 24px}.button-md{height:44px;padding:0 20px}.button-sm{height:36px;padding:0 15px}.button-icon{width:42px;height:42px}.button-primary{background:var(--accent);color:#07100e}.button-primary:hover{background:#d0fae5}.button-outline{border:1px solid var(--line);background:transparent}.button-ghost{background:transparent;color:#dbe4df}.button-ghost:hover{background:rgba(255,255,255,.06)}.hero-status{position:absolute;z-index:2;right:5vw;bottom:8%;display:grid;gap:8px}.hero-status span,.scroll-note{font-size:9px;color:#718078;letter-spacing:.2em}.hero-status b{font-size:12px;letter-spacing:.06em}.scroll-note{position:absolute;z-index:2;bottom:5%;left:5vw;display:flex;gap:12px;align-items:center}.section{padding:135px 8vw}.work{background:#ecefe9;color:#0c1714}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:70px}.about h2,.contact h2,.section-heading h2{font-size:clamp(48px,6.5vw,92px);margin:22px 0 0}.about .eyebrow,.work .eyebrow{color:#64716a!important}.section-heading>p{max-width:360px;line-height:1.7;color:#657069}.project{display:grid;grid-template-columns:45px 100px 1fr 60px;gap:25px;align-items:center;padding:35px 10px;border-top:1px solid rgba(10,25,20,.18);position:relative;transition:.3s}.project:last-child{border-bottom:1px solid rgba(10,25,20,.18)}.project:hover{padding-left:22px;background:rgba(255,255,255,.48)}.project-number{align-self:start;font-size:10px;color:#748078}.project-icon{height:90px;width:90px;background:#dbe4dd;display:grid;place-items:center}.project-icon svg{width:38px;height:38px}.project-body>p{font-size:9px;letter-spacing:.17em;color:#69766e}.project-body h3{font-size:36px;margin:8px 0 12px;letter-spacing:-.04em}.project-body>span{color:#637069;line-height:1.5;display:block;max-width:670px}.tags{display:flex;gap:8px;margin-top:17px}.tags b{font-size:9px;border:1px solid #b8c1bb;padding:7px 10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em}.project-link{border:1px solid #bec7c1;background:transparent;width:48px;height:48px;border-radius:50%;display:grid;place-items:center}.project:hover .project-link{background:#0c1714;color:white}.about{display:grid;grid-template-columns:1.15fr .85fr;gap:11vw;background:#0a1512}.about-copy>p:not(.eyebrow){font-size:17px;line-height:1.75;color:#929e97;max-width:650px}.stack{align-self:end;border-top:1px solid var(--line)}.stack>p{font-size:9px;letter-spacing:.18em;color:#718078;margin:0;padding:0 0 20px}.stack div{border-bottom:1px solid var(--line);padding:15px 3px;display:grid;grid-template-columns:45px 1fr auto;font-size:13px}.stack div span{font-size:9px;color:#617068}.stack div svg{color:#4ed29b}.contact{min-height:650px;display:flex;align-items:center;justify-content:space-between;background:#0d2923;position:relative}.contact>div{position:relative;z-index:2}.contact h2{max-width:950px}.contact-mark{width:330px;height:330px;position:absolute;right:5%;opacity:.1}.contact .button{margin-top:20px}footer{height:95px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:9px;letter-spacing:.15em;color:#7f8b84}footer div{display:flex;gap:25px}footer a{display:flex;align-items:center;gap:7px}footer a:hover,footer span{color:var(--accent)}@media(max-width:800px){.site-header{grid-template-columns:1fr auto;padding:0 22px}.site-header nav{display:none}.availability{font-size:9px}.hero{padding:100px 24px 40px;min-height:720px}.hero h1{font-size:clamp(48px,14vw,72px)}.hero-actions{align-items:flex-start;flex-direction:column}.hero-status{right:24px}.section{padding:95px 24px}.about,.section-heading{display:block}.section-heading>p{margin-top:35px}.project{grid-template-columns:35px 60px 1fr;gap:12px}.project-icon{height:54px;width:54px}.project-icon svg{width:24px}.project-body h3{font-size:27px}.project-body>span{font-size:13px}.project-link{display:none}.tags{flex-wrap:wrap}.about .stack{margin-top:70px}.contact{min-height:590px}.contact-mark{width:220px;height:220px;right:-50px}footer{height:auto;padding:35px 24px;gap:30px;flex-wrap:wrap}footer div{order:3;width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{font-family:var(--font-sans),"Segoe UI",system-ui,Arial,sans-serif}.case h1 em,.hero h1 em,.section h2 em{font-family:var(--font-serif),Georgia,"Times New Roman",serif;font-style:italic}.work h2 em{color:#0d3430}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.button{transition:background-color .2s ease,color .2s ease,transform .14s ease;will-change:transform}.button:active{transform:scale(.965)}@media (hover:hover){.button-primary:hover{transform:translateY(-1px)}.button-primary:active{transform:translateY(0) scale(.965)}}.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.contact .contact-actions .button{margin-top:0}.project-list .project{grid-template-columns:45px 100px 1fr;cursor:default}.project-list .project:hover{padding-left:10px;background:transparent;transform:none}.about-cta{margin-top:34px}.about-cta a{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid rgba(167,243,208,.4);padding-bottom:4px}.brand-logo{display:grid;place-items:center;width:46px;height:46px;overflow:hidden}.brand-logo img{display:block;width:42px;height:42px;object-fit:contain}.mobile-menu,.mobile-menu-toggle{display:none}.site-footer{position:relative;min-height:170px;height:auto;overflow:hidden;isolation:isolate;background:#07100e}.site-footer:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#07100e,transparent 45%,#07100e)}.site-footer>div,.site-footer>p{position:relative;z-index:2}.site-footer>div{flex-wrap:wrap}.footer-watermark{position:absolute;z-index:-2;left:50%;bottom:0;width:min(820px,70vw);height:auto;transform:translate(-50%,46%);opacity:.1;mix-blend-mode:screen;pointer-events:none;-webkit-user-select:none;user-select:none}.case{max-width:1100px;margin:0 auto;padding:150px 8vw 40px}.case-back{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.case-back:hover{color:var(--accent)}.case-head{padding:40px 0 50px}.case h1{font-size:clamp(44px,6.5vw,88px);line-height:.95;letter-spacing:-.05em;font-weight:500;margin:24px 0 26px}.case-lede{max-width:620px;font-size:18px;line-height:1.6;color:#aab4af}.resume{max-width:860px;margin:0 auto;padding:150px 8vw 60px}.resume-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--line)}.resume h1{font-size:clamp(38px,5vw,62px);letter-spacing:-.04em;font-weight:500;margin:20px 0 6px}.resume-role{color:var(--accent);font-size:14px;letter-spacing:.04em;margin:0 0 16px}.resume-contact{display:flex;gap:12px 20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.resume-contact a,.resume-contact span{display:inline-flex;align-items:center;gap:7px}.resume-contact a:hover{color:var(--accent)}.resume-block{padding:40px 0;border-bottom:1px solid var(--line)}.resume-block>h2{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 24px}.resume-note{color:#9aa69f;line-height:1.7;max-width:620px;margin:0}.resume-jobs{list-style:none;margin:0;padding:0;display:grid;gap:34px}.resume-job-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}.resume-job-top h3{font-size:17px;font-weight:500;margin:0}.resume-job-top span{font-size:10px;letter-spacing:.12em;color:var(--muted);white-space:nowrap}.resume-jobs p{margin:10px 0 12px;color:#9aa69f;line-height:1.6}.resume-jobs ul{margin:0;padding-left:18px;display:grid;gap:7px}.resume-jobs ul li{color:#b7c1bb;line-height:1.55;font-size:14px}.resume-skills{margin:0;display:grid;gap:13px}.resume-skills>div{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:baseline}.resume-skills dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.resume-skills dd{margin:0;font-size:13px;line-height:1.5;color:#b7c1bb}.resume-edu{list-style:none;margin:0;padding:0;display:grid;gap:12px}.resume-edu li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:24px;font-size:14px;color:#b7c1bb}.resume-edu span{color:var(--muted);font-size:11px;letter-spacing:.1em;white-space:nowrap}.resume-foot{width:100%;height:auto;padding:40px 0 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}.resume-foot p{font-size:clamp(20px,3vw,30px);letter-spacing:-.03em;margin:0}@media (max-width:800px){.site-header{grid-template-columns:auto 1fr auto}.site-header .availability{margin-right:12px}.availability-extra{display:none}.mobile-menu-toggle{display:grid;place-items:center;position:relative;z-index:50;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:rgba(7,16,14,.78);color:var(--ink);cursor:pointer}.mobile-menu{position:absolute;z-index:40;top:calc(100% + 8px);right:16px;width:min(320px,calc(100% - 32px));max-height:calc(100dvh - 104px - env(safe-area-inset-bottom));overflow-y:auto;display:flex;flex-direction:column;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--bg);box-shadow:0 18px 48px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .22s ease,transform .22s ease,visibility .22s}.mobile-menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}.mobile-menu nav{display:grid;gap:0;margin:0}.mobile-menu nav a{display:flex;align-items:center;min-height:48px;padding:12px;border-radius:8px;font-size:16px;letter-spacing:0;text-transform:none;color:var(--ink)}.mobile-menu nav a:focus-visible,.mobile-menu nav a:hover{background:rgba(167,243,208,.08)}.mobile-menu-email{margin-top:8px;padding:16px 12px 8px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;overflow-wrap:anywhere;letter-spacing:.01em}.brand-logo{width:42px;height:42px}.hero-status,.scroll-note{display:none}.section{padding:76px 24px}.contact{min-height:500px}.project-list .project{grid-template-columns:1fr;row-gap:14px;padding:30px 4px}.project-list .project:hover{transform:none;padding-left:4px}.project-number{grid-row:1}.project-icon{grid-row:2}.project-body{grid-row:3}.site-footer{min-height:220px}.site-footer>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}.footer-watermark{width:125vw;transform:translate(-50%,52%);opacity:.09}.resume{padding:118px 22px 44px}.resume-contact{display:grid;grid-template-columns:1fr;gap:12px}.resume-block{padding:32px 0}.resume-skills>div{grid-template-columns:1fr;gap:3px}.resume-foot{padding-top:32px}}@media (max-width:540px){.resume-edu li{grid-template-columns:1fr;gap:8px}.resume-foot{align-items:flex-start;flex-direction:column}}@media (max-width:360px){.hero h1{font-size:43px}.site-header .availability-label{display:none}.site-header .availability{margin-right:8px}}@media (scripting:none){.about-copy,.contact>div,.project,.section-heading,.stack{opacity:1!important;transform:none!important}}@media print{.resume-foot,.resume-head .button,.site-footer,.site-header{display:none}.resume{padding:0;max-width:none}body{background:#fff;color:#000}}