@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@1,500&display=swap";:root{color:#e8e7e3;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#111210;font-family:Manrope,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#111210}body{min-width:320px;margin:0}button,a{font:inherit}a{color:inherit}:root{--bg:#111210;--ink:#e8e7e3;--muted:#888b84;--line:#30322e;--soft:#191b18;--acid:#d9f36a;--mono:"DM Mono", monospace;--serif:"Playfair Display", serif}.site-shell{background:var(--bg);overflow:hidden}.site-shell:before{content:"";pointer-events:none;opacity:.04;background-image:linear-gradient(#fff 1px,#0000 1px),linear-gradient(90deg,#fff 1px,#0000 1px);background-size:80px 80px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.scroll-progress{z-index:20;transform-origin:0;background:var(--acid);width:100%;height:3px;position:fixed;top:0;left:0}.cursor-dot{border:1px solid var(--acid);pointer-events:none;z-index:30;border-radius:50%;width:11px;height:11px;margin:-5px;transition:transform 80ms linear;position:fixed}.section-pad{width:min(1180px,100% - 64px);margin:auto}.site-nav{z-index:15;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;height:74px;padding:0 max(32px,50% - 590px);transition:background .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.site-nav.scrolled{border-color:var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111210e6}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:var(--acid);color:#111210;width:26px;height:26px;font-family:var(--serif);place-items:center;font-size:18px;font-style:italic;display:grid}.desktop-nav{gap:25px;margin-left:auto;margin-right:38px;display:flex}.desktop-nav a,.nav-right a{color:var(--muted);font:10px var(--mono);text-transform:uppercase;align-items:center;gap:7px;text-decoration:none;transition:color .2s;display:flex;position:relative}.desktop-nav a:hover,.nav-right a:hover,.desktop-nav a.active{color:var(--ink)}.desktop-nav a i{background:var(--acid);border-radius:50%;width:4px;height:4px}.nav-right{align-items:center;gap:18px;display:flex}.resume-link{color:var(--ink)!important}.menu-button{color:var(--ink);background:0 0;border:0;padding:5px;display:none}.mobile-nav{border-bottom:1px solid var(--line);background:#111210f7;flex-direction:column;padding:12px 32px 28px;display:flex;position:absolute;top:74px;left:0;right:0}.mobile-nav a{color:var(--muted);font:13px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;padding:15px 0;text-decoration:none;display:flex}.mobile-nav a.active{color:var(--ink)}.hero{border-bottom:1px solid var(--line);grid-template-columns:1.15fr .85fr;align-items:center;min-height:780px;padding-top:96px;display:grid;position:relative}.eyebrow,.section-label,.project-category,.map-kicker,.flow-topline,.timeline-type{color:var(--muted);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.eyebrow{align-items:center;gap:13px;margin:0 0 28px;display:flex}.eyebrow span,.section-label span:first-child{color:var(--acid)}h1,h2,h3,p{margin:0}h1{max-width:760px;color:var(--ink);letter-spacing:-.09em;margin-left:-5px;font-size:clamp(62px,9.5vw,138px);font-weight:700;line-height:.92}.accent-dot{color:var(--acid)}.hero-statement{color:#b6b8b1;letter-spacing:-.05em;max-width:520px;margin-top:34px;font-size:clamp(20px,2.4vw,31px);line-height:1.25}.hero-statement em,.serif{color:var(--ink);font-family:var(--serif);font-weight:500}.hero-actions{align-items:center;gap:25px;margin-top:42px;display:flex}.button{align-items:center;gap:14px;padding:14px 18px;font-size:12px;font-weight:700;text-decoration:none;transition:transform .25s,background .25s;display:inline-flex}.button:hover{transform:translateY(-3px)}.button-primary{color:#111210;background:var(--acid)}.text-link,.project-link{color:var(--ink);font:11px var(--mono);border-bottom:1px solid var(--line);align-items:center;gap:7px;padding-bottom:5px;text-decoration:none;display:inline-flex}.text-link:hover,.project-link:hover{color:var(--acid);border-color:var(--acid)}.system-map{border-left:1px solid var(--line);justify-self:end;width:min(100%,410px);min-height:400px;padding:55px 0 0 35px;position:relative}.map-kicker{position:absolute;top:0;left:35px}.map-line{background:var(--line);width:1px;position:absolute;top:65px;bottom:0;left:71px}.map-node{min-height:59px;color:var(--ink);letter-spacing:-.04em;align-items:center;gap:17px;margin-bottom:9px;font-size:17px;display:flex;position:relative}.map-node span{width:28px;color:var(--muted);font:10px var(--mono)}.map-node svg{color:var(--acid);margin-left:auto}.node-4{color:var(--acid)}.hero-index{color:var(--muted);font:10px var(--mono);align-items:center;gap:10px;display:flex;position:absolute;bottom:28px;left:0}.section-label{border-top:1px solid var(--line);gap:18px;padding-top:24px;display:flex}.section-label span:last-child{color:var(--ink)}.about-section{padding-top:130px;padding-bottom:160px}.about-grid{grid-template-columns:1fr 1fr;gap:10%;margin-top:100px;display:grid}.about-grid h2,.skills-header h2,.projects-heading h2,.playground-heading h2,.profiles-layout h2,.contact-content h2{color:var(--ink);letter-spacing:-.075em;font-size:clamp(38px,5.2vw,72px);line-height:1}.about-copy{color:#b2b4ad;max-width:460px;font-size:16px;line-height:1.65}.about-copy p+p{margin-top:20px}.education-meta{border-top:1px solid var(--line);color:var(--muted);font:11px/1.5 var(--mono);gap:6px;margin-top:44px;padding-top:18px;display:grid}.education-meta span:first-child{color:var(--acid)}.education-meta strong{color:var(--ink);font:600 13px Manrope}.skills-section{padding-bottom:160px}.skills-header{justify-content:space-between;align-items:end;margin:100px 0 55px;display:flex}.skills-header p,.projects-heading p,.playground-heading p{max-width:250px;color:var(--muted);font:12px/1.6 var(--mono)}.skills-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.skill-group{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:175px;padding:22px;transition:opacity .25s,background .25s}.skill-group:hover{background:var(--soft)}.skill-group.dimmed{opacity:.28}.skill-group-title{color:var(--acid);font:10px var(--mono);text-transform:uppercase;justify-content:space-between;margin-bottom:26px;display:flex}.skill{color:var(--ink);border:1px solid var(--line);font:11px var(--mono);margin:0 8px 8px 0;padding:5px 7px;display:inline-block}.projects-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#171916}.projects-heading{justify-content:space-between;align-items:end;padding:100px 0 95px;display:flex}.project-list{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);grid-template-columns:70px 1fr 48%;gap:30px;width:min(1180px,100% - 64px);margin:auto;padding:74px 0;display:grid}.project-number{color:var(--acid);font:11px var(--mono)}.project-info{padding-right:8%}.project-category{margin-bottom:19px}.project-info h3{color:var(--ink);letter-spacing:-.07em;font-size:clamp(29px,3.6vw,53px);line-height:1;transition:transform .25s}.project-row:hover .project-info h3{transform:translate(5px)}.project-description{color:#aeb0a8;max-width:400px;margin:25px 0;font-size:14px;line-height:1.55}.tag-list{flex-wrap:wrap;gap:7px;margin-bottom:30px;display:flex}.tag-list span{color:var(--muted);font:10px var(--mono)}.tag-list span:not(:last-child):after{content:" /";color:var(--line);margin-left:7px}.flow-visual{border:1px solid var(--line);background:#10110f;align-self:center;min-height:210px;padding:24px;transition:border-color .3s,transform .3s}.project-row:hover .flow-visual{border-color:#60664d;transform:translateY(-5px)}.flow-topline{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:20px;display:flex}.flow-topline span:first-child{color:var(--acid)}.flow-nodes{flex-wrap:wrap;align-items:center;gap:6px;padding:37px 0 25px;display:flex}.flow-node-wrap{align-items:center;gap:6px;display:flex}.flow-node{color:var(--ink);font:10px var(--mono);border:1px solid #42463c;padding:8px 9px;transition:border-color .2s,color .2s,background .2s}.flow-visual:hover .flow-node{border-color:#687052}.flow-node-wrap:hover .flow-node,.flow-node-wrap:focus-within .flow-node{color:#111210;background:var(--acid);border-color:var(--acid)}.flow-arrow{color:var(--muted);transition:transform .2s,color .2s}.flow-node-wrap:hover .flow-arrow{color:var(--acid);transform:translate(3px)}.flow-caption,.code-strip{color:var(--muted);font:9px/1.6 var(--mono);letter-spacing:.04em}.learning-bars{align-items:end;gap:5px;height:25px;display:flex}.learning-bars i{background:var(--acid);width:14px;display:block}.learning-bars i:first-child{height:28%}.learning-bars i:nth-child(2){height:47%}.learning-bars i:nth-child(3){height:65%}.learning-bars i:nth-child(4){height:58%}.learning-bars i:nth-child(5){height:86%}.playground-section{padding-top:140px;padding-bottom:160px}.playground-heading{justify-content:space-between;align-items:end;margin:100px 0 55px;display:flex}.playground-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.playground-visual{background:var(--soft);min-height:275px}.playground-visual .flow-nodes{gap:0;padding:25px 0;display:grid}.playground-visual .flow-node-wrap{justify-content:space-between;width:100%}.playground-visual .flow-arrow{transform:rotate(90deg)}.playground-visual .flow-node{width:100%}.playground-visual .flow-caption{margin-top:auto}.timeline-section{padding-bottom:150px}.timeline{max-width:850px;margin:100px auto 0;padding-left:42px;position:relative}.timeline-line{background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:7px}.timeline-line i{background:var(--acid);width:1px;display:block}.timeline-item{grid-template-columns:1fr;gap:20px;min-height:220px;padding-bottom:80px;display:grid;position:relative}.timeline-marker{border:1px solid var(--acid);background:var(--bg);border-radius:50%;width:15px;height:15px;position:absolute;top:0;left:-42px}.timeline-item h3{color:var(--ink);letter-spacing:-.06em;margin:18px 0 8px;font-size:42px}.timeline-item p{color:var(--ink);font-size:15px}.timeline-item p strong{color:var(--acid);font-weight:500}.timeline-item small{color:var(--muted);font:11px var(--mono);margin-top:14px;display:block}.profiles-section{padding-bottom:160px}.profiles-layout{grid-template-columns:1fr 1fr;gap:10%;margin-top:100px;display:grid}.profile-list{border-top:1px solid var(--line)}.profile-link{color:var(--ink);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:19px 0;text-decoration:none;transition:padding .25s,color .25s;display:flex}.profile-link:hover{color:var(--acid);padding-left:8px}.profile-link span{gap:6px;display:grid}.profile-link strong{font-size:17px}.profile-link small{color:var(--muted);font:10px var(--mono)}.contact-section{background:var(--acid);color:#111210;padding:100px 0 120px}.contact-section .section-label{border-color:#11121040}.contact-section .section-label span:first-child,.contact-section .section-label span:last-child{color:#111210}.contact-content{justify-content:space-between;align-items:end;gap:40px;margin-top:100px;display:flex}.contact-content h2{color:#111210;max-width:730px;font-size:clamp(55px,8vw,110px)}.contact-content .serif{color:#111210}.contact-content .button{border:1px solid #111210}.contact-content .button:hover{background:0 0}.site-footer{color:var(--muted);font:10px var(--mono);justify-content:space-between;padding-top:32px;padding-bottom:32px;display:flex}.site-footer strong{color:var(--ink);font:600 13px Manrope}.site-footer p{margin-top:8px}.footer-right{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.footer-right a{color:var(--ink);text-decoration:none}@media (width<=800px){.section-pad{width:calc(100% - 40px)}.site-nav{padding:0 20px}.desktop-nav,.resume-link{display:none!important}.menu-button{display:block}.hero{grid-template-columns:1fr;align-content:center;min-height:800px;padding-top:145px}h1{font-size:clamp(56px,15vw,100px)}.system-map{justify-self:start;width:100%;min-height:305px;margin-top:60px;padding-left:25px}.map-kicker{left:25px}.map-line{left:61px}.map-node{min-height:45px;font-size:15px}.hero-index{display:none}.about-grid,.profiles-layout{grid-template-columns:1fr;gap:55px;margin-top:70px}.skills-grid{grid-template-columns:repeat(2,1fr)}.project-row{grid-template-columns:38px 1fr;gap:18px;width:calc(100% - 40px);padding:58px 0}.project-info{grid-column:2;padding-right:0}.flow-visual{grid-column:2}.playground-grid{grid-template-columns:1fr}.playground-visual{min-height:240px}.contact-content{margin-top:70px;display:block}.contact-content .button{margin-top:40px}}@media (width<=480px){.section-pad{width:calc(100% - 32px)}.hero{min-height:760px;padding-top:135px}.hero-actions{flex-direction:column;align-items:flex-start;gap:22px}.hero-statement{font-size:22px}.about-section,.playground-section{padding-top:95px}.about-section,.skills-section,.timeline-section,.profiles-section,.playground-section{padding-bottom:100px}.skills-header,.projects-heading,.playground-heading{margin:65px 0 38px;display:block}.skills-header p,.projects-heading p,.playground-heading p{margin-top:22px}.skills-grid{grid-template-columns:1fr}.project-row{grid-template-columns:30px 1fr;width:calc(100% - 32px);padding:48px 0}.flow-visual{padding:18px}.flow-topline{font-size:8px}.flow-node{font-size:9px}.timeline{margin-top:65px}.timeline-item h3{font-size:34px}.contact-section{padding:75px 0 90px}.contact-content h2{font-size:55px}.site-footer{display:block}.footer-right{gap:14px;margin-top:30px}}@media (pointer:coarse),(prefers-reduced-motion:reduce){.cursor-dot{display:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
