:root{--bg:#07100d;--surface:#0c1713;--surface-2:#11201a;--text:#e7eee9;--muted:#91a39a;--accent:#58d397;--border:#20352c;--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.ambient{position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 72% 12%,rgba(63,157,111,.09),transparent 28%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:auto,72px 72px,72px 72px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}.section-shell{width:min(1180px,calc(100% - 64px));margin:0 auto}.site-header{height:84px;width:min(1320px,calc(100% - 64px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20;border-bottom:1px solid rgba(145,163,154,.2)}.brand{font-size:21px;font-weight:700;letter-spacing:-.04em}.brand span{color:var(--accent)}nav{display:flex;gap:38px;align-items:center}nav a{font:400 12px var(--mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;transition:.2s}nav a:hover{color:var(--accent)}.menu-toggle{display:none}.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:8%;position:relative;padding-top:60px;padding-bottom:80px}.eyebrow,.section-index,.project-meta,.company{font:400 11px var(--mono);letter-spacing:.11em;color:var(--accent);text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:10px}.pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px #58d3971a}h1{font-size:clamp(74px,9.2vw,140px);line-height:.84;letter-spacing:-.075em;margin:35px 0 42px;font-weight:600}h1 span{color:transparent;-webkit-text-stroke:1px rgba(231,238,233,.55)}.hero-lede{font-size:clamp(17px,1.5vw,20px);line-height:1.75;color:var(--muted);max-width:610px}.hero-lede strong{color:var(--text);font-weight:500}.hero-actions{display:flex;gap:12px;margin-top:40px}.button{height:52px;padding:0 22px;display:inline-flex;align-items:center;gap:28px;border:1px solid var(--border);font:500 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;transition:.25s}.button.primary{background:var(--accent);color:#07100d;border-color:var(--accent)}.button:hover{transform:translateY(-2px);border-color:var(--accent)}.button.secondary{color:var(--text)}.hero-visual{position:relative;max-width:440px;justify-self:end}.portrait-frame{background:var(--surface);padding:20px;position:relative;overflow:hidden;clip-path:polygon(0 0,91% 0,100% 9%,100% 100%,0 100%)}.portrait-frame:after{content:"";position:absolute;inset:20px;border:1px solid rgba(88,211,151,.28);pointer-events:none}.portrait-frame img{filter:grayscale(1) contrast(1.06) brightness(.88);width:100%;aspect-ratio:1/1.12;object-fit:cover;object-position:center}.scanline{position:absolute;left:20px;right:20px;top:45%;height:1px;background:var(--accent);box-shadow:0 0 14px var(--accent);opacity:.6}.visual-label{position:absolute;background:var(--bg);border:1px solid var(--border);padding:9px 12px;font:400 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.visual-label span{color:var(--accent);margin-right:10px}.label-top{right:-20px;top:54px}.label-bottom{left:-36px;bottom:37px}.axis{position:absolute;background:#58d39733}.axis-x{height:1px;width:70px;right:-48px;bottom:16px}.axis-y{width:1px;height:70px;right:-16px;bottom:-18px}.scroll-cue{position:absolute;left:0;bottom:42px;display:flex;align-items:center;gap:13px;font:400 9px var(--mono);letter-spacing:.15em;color:var(--muted)}.scroll-cue i{width:52px;height:1px;background:var(--border);position:relative}.scroll-cue i:after{content:"";position:absolute;right:0;top:-2px;border-left:4px solid var(--muted);border-top:2px solid transparent;border-bottom:2px solid transparent}.section-block{padding:150px 0}.section-heading{margin-bottom:72px}.section-heading h2{font-size:clamp(42px,5.4vw,72px);line-height:1.05;letter-spacing:-.055em;margin:20px 0 0;font-weight:500}.section-heading.row{display:flex;align-items:flex-end;justify-content:space-between}.heading-note{max-width:360px;color:var(--muted);margin:0 0 8px}.interest-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.interest-card{padding:40px 26px 44px;border-right:1px solid var(--border);min-height:290px;transition:.25s}.interest-card:first-child{border-left:1px solid var(--border)}.interest-card:hover{background:var(--surface);transform:translateY(-5px)}.interest-card>span{font:400 10px var(--mono);color:var(--accent)}.interest-card h3{font-size:22px;line-height:1.2;margin:55px 0 18px;letter-spacing:-.035em}.interest-card p{font-size:14px;color:var(--muted);line-height:1.7;margin:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-card{background:var(--surface);border:1px solid var(--border);overflow:hidden}.project-featured{grid-column:1/-1;display:grid;grid-template-columns:1.12fr .88fr}.project-media{position:relative;overflow:hidden;min-height:360px;background:#0d1714}.project-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) brightness(.68);transition:.5s}.project-media:hover img{transform:scale(1.025);filter:saturate(.9) brightness(.75)}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:64px;width:64px;border-radius:50%;background:var(--accent);color:var(--bg);display:grid;place-items:center;padding-left:4px}.media-caption{position:absolute;bottom:18px;left:18px;background:var(--bg);padding:9px 12px;font:400 9px var(--mono);letter-spacing:.08em}.project-content{padding:38px}.project-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:16px;color:var(--muted);font-size:9px}.project-meta span:last-child{color:var(--accent)}.project-content h3{font-size:clamp(24px,3vw,38px);line-height:1.12;letter-spacing:-.045em;margin:32px 0 24px;font-weight:500}.project-content>p{color:var(--muted);font-size:14px;line-height:1.75}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);margin-top:42px;padding-top:24px}.metric-row div{display:flex;flex-direction:column}.metric-row strong{font:400 21px var(--mono);color:var(--text)}.metric-row span{font:400 9px var(--mono);color:var(--muted);text-transform:uppercase;margin-top:5px}.compact .project-media,.project-art{min-height:260px}.compact .project-content h3{font-size:26px}.orange-media img{object-position:center}.project-art{position:relative;background-color:#0a1511;background-image:linear-gradient(rgba(88,211,151,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(88,211,151,.08) 1px,transparent 1px);background-size:34px 34px;overflow:hidden}.project-art:after{content:"LIDAR / LIVE POINT CLOUD";position:absolute;left:22px;top:20px;font:400 9px var(--mono);letter-spacing:.1em;color:var(--muted)}.lidar-sweep{position:absolute;width:330px;height:330px;border:1px solid rgba(88,211,151,.25);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.lidar-sweep:before,.lidar-sweep:after{content:"";position:absolute;inset:16%;border:1px solid rgba(88,211,151,.18);border-radius:50%}.lidar-sweep:after{inset:34%}.point{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.p1{left:34%;top:48%}.p2{left:62%;top:28%}.p3{left:71%;top:64%}.p4{left:47%;top:73%}.p5{left:22%;top:33%}.tag-row{display:flex;gap:7px;margin-top:27px;flex-wrap:wrap}.tag-row span{font:400 9px var(--mono);letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);padding:7px 9px}.timeline{border-top:1px solid var(--border)}.timeline-item{display:grid;grid-template-columns:190px 1px 1fr;gap:45px;padding:55px 0;border-bottom:1px solid var(--border)}.timeline-date{font:400 10px var(--mono);color:var(--muted);letter-spacing:.06em}.timeline-marker{background:var(--border);position:relative}.timeline-marker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);position:absolute;left:-3px;top:0;box-shadow:0 0 0 5px #58d3971a}.timeline-copy{max-width:750px}.timeline-copy h3{font-size:30px;letter-spacing:-.035em;margin:10px 0 18px}.timeline-copy>p:last-child{color:var(--muted);margin:0;line-height:1.75}.education-section{padding-bottom:100px}.education-list{border-top:1px solid var(--border)}.education-item{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:30px;padding:40px 0;border-bottom:1px solid var(--border)}.education-year{font:400 11px var(--mono);color:var(--muted)}.education-item p{font:400 9px var(--mono);letter-spacing:.1em;color:var(--accent);margin:0 0 9px}.education-item h3{font-size:21px;margin:0;font-weight:500;letter-spacing:-.025em}.degree-state{font:400 9px var(--mono);padding:8px 10px;border:1px solid var(--accent);color:var(--accent)}.degree-state.muted{border-color:var(--border);color:var(--muted)}.skills-strip{margin-top:70px;padding:25px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.skills-strip>span{font:400 9px var(--mono);letter-spacing:.1em;color:var(--muted)}.skills-strip div{display:flex;gap:34px}.skills-strip b{font:400 12px var(--mono)}.contact{padding:160px 0 75px}.contact-main{margin:80px 0 100px}.contact-main p{font:400 11px var(--mono);color:var(--muted);letter-spacing:.08em}.contact-main a{font-size:clamp(72px,11vw,145px);letter-spacing:-.075em;line-height:1;font-weight:500;border-bottom:2px solid var(--accent);display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;transition:.25s}.contact-main a:hover{color:var(--accent)}.contact-main a span{font-size:.42em;color:var(--accent)}.contact-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.contact-meta>div{display:flex;gap:30px}.contact-meta a{color:var(--text);font:400 10px var(--mono);text-transform:uppercase}.contact-meta a:hover{color:var(--accent)}footer{width:min(1320px,calc(100% - 64px));margin:0 auto;border-top:1px solid var(--border);padding:28px 0;display:flex;justify-content:space-between;font:400 9px var(--mono);letter-spacing:.1em;color:var(--muted)}footer a{color:var(--text)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-media img,.button{transition:none}}@media(max-width:900px){.section-shell{width:min(100% - 40px,680px)}.site-header{width:calc(100% - 40px)}nav{gap:22px}.hero{grid-template-columns:1fr;padding-top:90px;gap:80px}.hero-copy{max-width:650px}.hero-visual{justify-self:center;width:min(100%,420px)}.scroll-cue{display:none}.section-block{padding:110px 0}.interest-grid{grid-template-columns:1fr 1fr}.interest-card:nth-child(3){border-left:1px solid var(--border)}.project-featured,.project-grid{grid-template-columns:1fr}.project-media{min-height:340px}.section-heading.row{align-items:flex-start;gap:40px}.timeline-item{grid-template-columns:140px 1px 1fr;gap:30px}.skills-strip{align-items:flex-start;gap:30px}.skills-strip div{gap:20px;flex-wrap:wrap;justify-content:flex-end}.contact-meta{gap:40px}.contact-meta>div{flex-wrap:wrap;justify-content:flex-end}footer{width:calc(100% - 40px)}}@media(max-width:620px){.site-header{height:72px}.menu-toggle{display:flex;width:42px;height:42px;background:transparent;border:1px solid var(--border);align-items:center;justify-content:center;flex-direction:column;gap:6px}.menu-toggle span{width:17px;height:1px;background:var(--text)}nav{display:none;position:absolute;left:0;right:0;top:71px;background:var(--surface);border:1px solid var(--border);padding:24px;flex-direction:column;align-items:flex-start;gap:20px}nav.open{display:flex}.hero{min-height:auto;padding-top:70px;padding-bottom:100px}.hero-lede{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.button{justify-content:space-between}.label-top{right:-5px}.label-bottom{left:-5px}.section-heading{margin-bottom:50px}.section-heading.row{display:block}.heading-note{margin-top:28px}.interest-grid{grid-template-columns:1fr}.interest-card,.interest-card:first-child,.interest-card:nth-child(3){border-left:1px solid var(--border);min-height:auto;padding:30px 24px}.interest-card h3{margin:35px 0 15px}.project-content{padding:26px}.project-media,.compact .project-media,.project-art{min-height:230px}.project-featured .project-content h3{font-size:28px}.metric-row{gap:10px}.metric-row strong{font-size:16px}.timeline-item{grid-template-columns:1fr;padding:38px 0;gap:12px}.timeline-marker{display:none}.timeline-copy h3{font-size:24px}.education-item{grid-template-columns:1fr;gap:12px}.degree-state{justify-self:start}.skills-strip{display:block}.skills-strip div{justify-content:flex-start;margin-top:24px;gap:16px 24px}.contact{padding-top:110px}.contact-main{margin:60px 0 80px}.contact-main a{font-size:19vw}.contact-meta{display:block}.contact-meta>div{justify-content:flex-start;margin-top:35px;gap:20px 25px}footer{align-items:flex-start;gap:14px;flex-direction:column}footer>span:nth-child(2){display:none}}:root{--sans:"Plus Jakarta Sans","Helvetica Neue",Arial,sans-serif}body{line-height:1.68;letter-spacing:.012em}.brand{letter-spacing:0}h1{letter-spacing:-.035em}.section-heading h2{letter-spacing:-.022em}.interest-card h3,.project-content h3,.timeline-copy h3,.education-item h3{letter-spacing:-.008em}.contact-main a{letter-spacing:-.035em}.hero-lede,.heading-note,.interest-card p,.project-content>p,.timeline-copy>p:last-child,.contact-meta{letter-spacing:.018em}.scanline{display:none}.scanlines{position:absolute;inset:20px;pointer-events:none;overflow:hidden}.scanlines i{position:absolute;height:1px;background:linear-gradient(90deg,transparent,var(--accent) 18%,var(--accent) 82%,transparent);box-shadow:0 0 8px #58d3978c;opacity:.48}.scanlines i:nth-child(1){top:18%;left:7%;width:31%}.scanlines i:nth-child(2){top:76%;right:6%;width:38%;opacity:.34}.scanlines i:nth-child(3){top:81%;right:16%;width:22%;opacity:.2}.project-card.compact{grid-column:1/-1;display:grid;grid-template-columns:.82fr 1.18fr;min-height:330px}.project-card.compact .project-media,.project-card.compact .project-art{min-height:330px}.project-card.compact .project-content{display:flex;flex-direction:column;justify-content:center;padding:46px}.project-card.compact .project-content h3{font-size:clamp(27px,3.2vw,40px);max-width:650px}.project-card.compact .project-content>p{max-width:620px}@media(max-width:700px){.project-card.compact{display:block;min-height:0}.project-card.compact .project-media,.project-card.compact .project-art{min-height:230px}.project-card.compact .project-content{display:block;padding:26px}}
