:root{font-family:DM Sans,sans-serif;color:#dfe8e5;background:#09100f;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #09100f;--surface: #101918;--surface-2: #14201e;--line: rgba(180, 205, 198, .14);--muted: #83928e;--text: #e8efed;--green: #9bea63;--green-dark: #68bf38;--amber: #e5a73a;--mono: "Space Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg)}section[id]{scroll-margin-top:74px}body::selection{color:#07100c;background:var(--green)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;height:76px;padding:0 clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;background:#09100fdb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:13px;font:700 14px var(--mono);letter-spacing:.04em}.brand-mark{width:38px;height:38px;position:relative;display:grid;place-items:center;color:#d9e2df;border:1px solid #56645f;font-size:10px;letter-spacing:.02em;background:#ffffff04;transition:border-color .2s,color .2s}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:var(--bg)}.brand-mark:before{width:12px;height:3px;top:-2px;right:5px}.brand-mark:after{width:3px;height:12px;bottom:5px;left:-2px}.brand-mark i{position:absolute;width:4px;height:4px;top:-2px;right:8px;border-radius:50%;background:var(--green)}.brand:hover .brand-mark{color:#fff;border-color:#7c8c86}.brand-name{font-size:13px;text-transform:none}.brand-dot{color:var(--green)}.nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,38px)}.nav>a{color:#9caaa6;font:600 11px var(--mono);letter-spacing:.09em;text-transform:uppercase;transition:color .2s}.nav>a:hover{color:var(--text)}.nav .nav-contact{color:#0b120f;background:var(--green);display:flex;align-items:center;gap:8px;padding:12px 17px;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}.menu-button{display:none;color:var(--text);background:transparent;border:0}.hero{min-height:100vh;position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(20px,4vw,80px);padding:130px clamp(24px,7vw,118px) 90px;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 77% 44%,rgba(102,190,57,.045),transparent 29%),linear-gradient(90deg,transparent 49.95%,rgba(255,255,255,.025) 50%,transparent 50.05%)}.hero-grid,.contact-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.32;pointer-events:none;background-image:linear-gradient(rgba(141,170,162,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(141,170,162,.08) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to right,black,transparent 65%);mask-image:linear-gradient(to right,black,transparent 65%)}.hero-copy{position:relative;z-index:2;min-width:0;max-width:690px}.availability{display:inline-flex;align-items:center;gap:10px;margin-bottom:32px;color:#9db1ab;font:400 10px var(--mono);letter-spacing:.11em}.availability i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green);animation:pulse 2s infinite}.hero-kicker{color:var(--green);font:700 clamp(10px,1vw,12px) var(--mono);letter-spacing:.16em}.hero-kicker span{margin:0 9px;color:#43514d}.hero-targets{display:flex;gap:8px;margin:17px 0 0;flex-wrap:wrap}.hero-targets span{padding:7px 9px;color:#8d9c97;border:1px solid #2b3834;background:#ffffff03;font:400 8px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero-role-more{margin:10px 0 0;color:#5f6e69;font:500 8px var(--mono);line-height:1.55;letter-spacing:.06em;text-transform:uppercase}.hero h1{margin:22px 0 17px;color:#f0f4f2;font-size:clamp(64px,8vw,118px);line-height:.81;letter-spacing:-.075em}.hero h1 span{color:transparent;-webkit-text-stroke:1px #82918d}.hero-title{margin:28px 0 16px;color:#c8d3d0;font-size:clamp(14px,1.3vw,18px);font-weight:600}.hero-title span{color:var(--green);margin:0 7px}.hero-specialties{margin:0 0 15px;color:#73847e;font:500 9px var(--mono);line-height:1.7;letter-spacing:.06em;text-transform:uppercase}.hero-specialties span{margin:0 4px;color:var(--green)}.hero-intro{max-width:650px;color:var(--muted);font-size:clamp(15px,1.2vw,17px);line-height:1.75}.hero-actions{display:grid;gap:13px;margin-top:30px}.hero-actions-main,.hero-actions-secondary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero-actions-secondary a{display:inline-flex;align-items:center;gap:7px;color:#879691;font:600 9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.hero-actions-secondary a:hover{color:var(--green)}.button{min-height:49px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{color:#0b110f;background:var(--green);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}.button.secondary{border:1px solid #34413e;color:#c7d1ce;background:#ffffff04}.hero-meta{position:absolute;z-index:2;bottom:28px;left:clamp(24px,7vw,118px);right:clamp(24px,7vw,118px);display:flex;justify-content:space-between;color:#52615d;font:400 9px var(--mono);letter-spacing:.13em}.scroll-cue{display:flex;align-items:center;gap:8px}.skill-hub{position:relative;z-index:2;width:min(100%,700px);min-width:0;justify-self:center;padding:20px;border:1px solid rgba(143,163,157,.2);background:#0a1210d1;box-shadow:0 35px 85px #0000004d}.skill-hub-loading{align-self:center}.workbench-skeleton{position:relative;height:clamp(405px,42vw,545px);overflow:hidden;display:grid;place-items:center;border:1px solid #26342f;background:linear-gradient(135deg,#0b1112,#11191a)}.workbench-skeleton:before{content:"";position:absolute;top:12%;right:8%;bottom:12%;left:8%;border:1px solid rgba(143,163,157,.12);background:linear-gradient(90deg,transparent,rgba(255,255,255,.025),transparent);animation:skeletonSweep 1.6s infinite}.workbench-skeleton i{position:absolute;bottom:25%;width:12%;height:28%;background:#1c2628;border:1px solid #344043}.workbench-skeleton i:nth-child(1){left:12%;height:38%}.workbench-skeleton i:nth-child(2){left:29%;width:14%;height:48%;border-radius:45% 45% 8% 8%}.workbench-skeleton i:nth-child(3){left:47%;height:32%}.workbench-skeleton i:nth-child(4){right:25%;width:17%;height:18%}.workbench-skeleton i:nth-child(5){right:9%;height:36%}.workbench-skeleton i:nth-child(6){left:9%;right:9%;bottom:18%;width:auto;height:6%}.workbench-skeleton>span{position:relative;z-index:1;margin-top:55%;color:#65736f;font:600 8px var(--mono);letter-spacing:.1em;text-transform:uppercase}.skeleton-shortcuts{min-height:66px;padding-top:10px;display:flex;align-items:flex-start;justify-content:center;gap:6px;flex-wrap:wrap}.skeleton-shortcuts span{padding:7px 8px;color:#53615c;border:1px solid #26332f;font:600 6px var(--mono);text-transform:uppercase}@keyframes skeletonSweep{0%{transform:translate(-35%);opacity:.3}50%{opacity:.75}to{transform:translate(35%);opacity:.3}}.skill-hub:before{content:"";position:absolute;width:18px;height:18px;top:-1px;left:-1px;border-top:1px solid var(--green);border-left:1px solid var(--green)}.skill-hub-heading{margin-bottom:13px}.skill-hub-heading>span{color:#64756f;font:400 7px var(--mono);letter-spacing:.12em}.skill-hub-heading h2{margin:7px 0 5px;color:#dce5e2;font-size:19px;letter-spacing:-.02em}.skill-hub-heading p{margin:0;color:#687873;font-size:11px}.skill-canvas{position:relative;height:clamp(405px,42vw,545px);overflow:hidden;border:1px solid #26342f;background:#0a1210}.skill-canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 65px #0000005c}.skill-canvas canvas{display:block;touch-action:none}.canvas-loading{color:#83928d;font:600 9px var(--mono);letter-spacing:.08em;white-space:nowrap}.equipment-nameplate{min-width:88px;min-height:25px;padding:0 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#b7c3bf;background:#13191bf0;border:1px solid #4a5555;box-shadow:0 7px 18px #00000057;font:700 6px var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;pointer-events:auto;white-space:nowrap;transition:color .2s,border-color .2s,transform .2s,background .2s}.equipment-nameplate i{width:5px;height:5px;border-radius:50%;background:#687471;transition:background .2s,box-shadow .2s}.equipment-nameplate:hover,.equipment-nameplate:focus-visible,.equipment-nameplate.active{color:#edf3f1;background:#1b2425fa;border-color:#83918e;outline:none;transform:translateY(-2px)}.equipment-nameplate:hover i,.equipment-nameplate:focus-visible i,.equipment-nameplate.active i{background:var(--green);box-shadow:0 0 8px #9bea6380}.scene-callout{position:absolute;z-index:2;left:16px;bottom:14px;max-width:245px;padding:10px 12px;background:#080d0fcc;border-left:1px solid var(--green);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.scene-callout span{display:block;margin-bottom:4px;color:#7d8b88;font:700 7px var(--mono);letter-spacing:.11em}.scene-callout strong{color:#c3ceca;font-size:10px;font-weight:500;line-height:1.4}.skill-hub-footer{min-height:36px;display:flex;align-items:center;justify-content:center;color:#65756f;font:500 7px var(--mono);letter-spacing:.06em;text-transform:uppercase}.skill-hub-access{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding-top:3px}.skill-hub-access>span{margin-right:4px;color:#56645f;font:600 6px var(--mono);letter-spacing:.09em;text-transform:uppercase}.skill-hub-access button{min-height:30px;padding:0 9px;color:#84928e;background:#0c1412;border:1px solid #27332f;font:600 6px var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.skill-hub-access button:hover,.skill-hub-access button:focus-visible,.skill-hub-access button.active{color:#dce5e2;border-color:#6f807a;background:#131d1a;outline:none}.section{min-height:82vh;padding:140px clamp(24px,7vw,118px);border-top:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.section-heading{max-width:750px;margin-bottom:60px}.eyebrow{color:#7e908b;font:700 10px var(--mono);letter-spacing:.14em}.eyebrow span{color:var(--green)}.section-heading h2,.contact-content h2{margin:20px 0 0;color:#e7eeec;font-size:clamp(42px,5.3vw,74px);line-height:.98;letter-spacing:-.055em}.section-heading>p{max-width:650px;margin-top:25px;color:var(--muted);font-size:16px;line-height:1.7}.about{background:#0c1412}.about-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,10vw,170px)}.about-copy{padding-top:28px;color:var(--muted);font-size:15px;line-height:1.8}.about-copy .lead{color:#c8d4d0;font-size:clamp(20px,2vw,26px);line-height:1.5}.target-roles{margin-top:42px;padding-top:25px;border-top:1px solid var(--line)}.target-roles>span{color:var(--green);font:700 9px var(--mono);letter-spacing:.14em}.target-roles>div{display:grid;grid-template-columns:1fr 1fr;margin-top:14px}.target-roles p{margin:5px 0;display:flex;align-items:center;gap:4px;color:#a5b3af;font:500 12px var(--mono)}.target-roles svg{color:var(--green)}.what-i-bring{padding:75px clamp(24px,7vw,118px);background:#0b1311;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.bring-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}.bring-heading h2{margin:0;color:#e0e8e5;font-size:clamp(32px,4vw,50px);letter-spacing:-.045em}.bring-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.bring-card{min-height:200px;padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.bring-card>span{color:var(--green);font:400 8px var(--mono)}.bring-card h3{margin:33px 0 12px;color:#cbd6d2;font-size:16px;line-height:1.3}.bring-card p{margin:0;color:#778681;font-size:12px;line-height:1.6}.skill-chapters{background:#080e0d}.chapter-intro{min-height:82vh;padding:130px clamp(24px,7vw,118px);display:grid;grid-template-columns:.45fr 1.1fr .75fr;align-items:end;gap:clamp(30px,6vw,90px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chapter-intro>span{align-self:start;color:#5c6a66;font:500 9px var(--mono);letter-spacing:.12em}.chapter-intro h2{margin:0;color:#e5ecea;font-size:clamp(58px,8vw,124px);line-height:.86;letter-spacing:-.075em}.chapter-intro p{margin:0 0 8px;color:#83928e;font-size:15px;line-height:1.8}.skill-chapter{min-height:100vh;padding:130px clamp(24px,7vw,118px);display:grid;grid-template-columns:.22fr .88fr .9fr;align-items:center;gap:clamp(25px,5vw,80px);border-bottom:1px solid var(--line);scroll-margin-top:72px;background:linear-gradient(115deg,#0b1211 0,#0b1211 58%,#0d1514 58%)}.skill-chapter:nth-of-type(odd){background:linear-gradient(245deg,#0c1513 0,#0c1513 58%,#09100f 58%)}.chapter-reverse .chapter-title{order:3}.chapter-reverse .chapter-details{order:2}.chapter-index{align-self:stretch;padding:10px 0;display:flex;flex-direction:column;justify-content:space-between;color:#52605c;border-right:1px solid var(--line)}.chapter-index span{font:400 10px var(--mono);letter-spacing:.12em}.chapter-index svg{width:34px;height:34px;color:var(--green);stroke-width:1.2}.chapter-title>p:first-child{margin:0 0 18px;color:#6e7c78;font:700 9px var(--mono);letter-spacing:.15em;text-transform:uppercase}.chapter-title h2{max-width:720px;margin:0;color:#e5ecea;font-size:clamp(52px,7vw,108px);line-height:.88;letter-spacing:-.07em}.chapter-description{max-width:560px;margin:30px 0 0;color:#9aa8a4;font-size:clamp(16px,1.4vw,20px);line-height:1.65}.chapter-details{max-width:670px;padding:40px;background:#0f1816b8;border:1px solid #26332f;box-shadow:0 28px 80px #0000002e}.chapter-label{color:var(--green);font:700 8px var(--mono);letter-spacing:.13em}.chapter-details ul{list-style:none;margin:25px 0;padding:0}.chapter-details li{margin:12px 0;display:flex;gap:10px;color:#9caaa6;font-size:13px;line-height:1.55}.chapter-details li svg{flex:0 0 auto;margin-top:2px;color:#7fae68}.chapter-tools{display:flex;gap:7px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line)}.chapter-tools span{padding:7px 9px;color:#788783;border:1px solid #293632;font:500 7px var(--mono);text-transform:uppercase}.chapter-project{position:relative;margin-top:30px;padding:20px 45px 20px 0;display:grid;gap:5px;border-top:1px solid #34423e}.chapter-project>span{color:#65736f;font:600 7px var(--mono);letter-spacing:.1em}.chapter-project strong{color:#d1dbd7;font-size:15px}.chapter-project small{color:#75837f;font-size:11px}.chapter-project svg{position:absolute;right:5px;top:50%;color:var(--green);transform:translateY(-50%)}.section-arriving{animation:chapterArrival 1.1s ease}@keyframes chapterArrival{0%{box-shadow:inset 0 0 0 1px transparent}35%{box-shadow:inset 0 0 0 1px #9bea6373,inset 0 0 100px #9bea6309}}.projects-section{background:#0e1715}.projects-section .section-heading{max-width:980px}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.project-card{position:relative;min-height:490px;padding:clamp(28px,4vw,46px);display:flex;flex-direction:column;background:#111c19;border:1px solid var(--line);overflow:hidden;transition:border-color .25s,transform .25s}.project-card:hover{border-color:#9bea6373;transform:translateY(-4px)}.project-card:after{content:"";position:absolute;width:130px;height:130px;right:-66px;bottom:-66px;border:1px solid rgba(155,234,99,.12);transform:rotate(45deg)}.project-card.featured{grid-column:1 / -1;min-height:440px;padding-right:42%;background:linear-gradient(100deg,#13201c 0,#13201c 65%,#0c1512 65%)}.project-card.featured:before{content:"I/O";position:absolute;right:8%;top:50%;transform:translateY(-50%);color:#9bea6309;font:700 150px var(--mono);letter-spacing:-.15em}.project-top{display:flex;align-items:center;justify-content:space-between}.project-top svg{color:#5d716b;width:30px;height:30px;stroke-width:1.2}.project-category{margin:45px 0 10px;color:var(--green);font:700 9px var(--mono);text-transform:uppercase;letter-spacing:.13em}.project-card h3{max-width:540px;margin:0 0 18px;color:#e1e9e6;font-size:clamp(24px,2.7vw,36px);line-height:1.15;letter-spacing:-.03em}.project-description{max-width:650px;color:#84938f;font-size:14px;line-height:1.7}.project-card ul{list-style:none;margin:10px 0 25px;padding:0}.project-card li{margin:9px 0;display:flex;align-items:center;gap:9px;color:#99a8a4;font-size:12px}.project-card li svg{flex:0 0 auto;color:var(--green)}.project-role{margin:0 0 20px;color:#91a09b;font-size:11px}.project-role span{margin-right:9px;color:var(--green);font:700 7px var(--mono);letter-spacing:.09em}.tags{margin-top:auto;display:flex;gap:7px;flex-wrap:wrap}.tags span{padding:7px 9px;color:#74837f;background:#0b1311;border:1px solid #25322e;font:400 8px var(--mono);text-transform:uppercase;letter-spacing:.05em}.experience-section{background:#09100f}.timeline{max-width:980px;margin-left:auto}.timeline-item{display:grid;grid-template-columns:70px 200px 1fr;gap:25px;padding:40px 0;border-top:1px solid var(--line)}.timeline-item:last-child{border-bottom:1px solid var(--line)}.timeline-icon{width:46px;height:46px;display:grid;place-items:center;color:var(--green);border:1px solid #2a3934;background:#101916}.timeline-icon svg{width:20px}.timeline-date{padding-top:8px;color:#687772;font:400 9px var(--mono);letter-spacing:.1em}.timeline h3{margin:4px 0;color:#dce5e2;font-size:23px}.timeline h4{margin:0 0 15px;color:var(--green);font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.08em}.timeline p{margin:0;max-width:600px;color:var(--muted);font-size:14px;line-height:1.7}.education-section{background:#0d1614}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.education-card{position:relative;min-height:310px;padding:40px;background:#111c19;border:1px solid var(--line);overflow:hidden}.education-icon{width:50px;height:50px;margin-bottom:48px;display:grid;place-items:center;color:var(--green);background:#17241f;border:1px solid #2a3934}.education-card>span{color:#64736f;font:400 9px var(--mono);letter-spacing:.12em}.education-card h3{position:relative;z-index:1;margin:12px 0;color:#e0e8e5;font-size:clamp(22px,2.4vw,31px)}.education-card p{position:relative;z-index:1;margin:5px 0;color:#8b9a96;font-size:14px}.education-line{position:absolute;right:-20px;bottom:25px;width:45%;height:1px;background:var(--green);opacity:.3}.education-line:before,.education-line:after{content:"";position:absolute;width:8px;height:8px;top:-4px;border-radius:50%;background:var(--green)}.education-line:before{left:0}.education-line:after{right:0}.references-section{background:#09100f}.references-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(45px,8vw,120px);align-items:center}.references-layout .section-heading{margin:0}.references-card{padding:clamp(30px,4vw,52px);background:#111a19;border:1px solid #263330;box-shadow:0 25px 60px #0003}.references-card>span{color:var(--green);font:700 8px var(--mono);letter-spacing:.12em}.references-card h3{margin:20px 0 12px;color:#dde6e3;font-size:clamp(25px,3vw,38px);letter-spacing:-.035em}.references-card p{margin:0 0 28px;color:#83918d;font-size:14px;line-height:1.7}.resume-section{position:relative;min-height:90vh;overflow:hidden;background:#080e0d}.resume-number{position:absolute;right:4vw;top:50%;color:#8fa39d0b;font:700 clamp(170px,32vw,520px)/.7 var(--mono);transform:translateY(-50%);pointer-events:none}.resume-copy{position:relative;z-index:1;max-width:900px}.resume-copy h2{margin:25px 0;color:#e5ecea;font-size:clamp(50px,7vw,102px);line-height:.9;letter-spacing:-.065em}.resume-copy>p{max-width:650px;color:#879691;font-size:16px;line-height:1.75}.resume-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:35px}.contact-section{position:relative;min-height:730px;padding:125px clamp(24px,7vw,118px);display:grid;place-items:center;overflow:hidden;background:#0c1413;color:#e3ebe8;border-top:1px solid var(--line)}.contact-grid{opacity:.2;-webkit-mask-image:linear-gradient(to right,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(to right,transparent,#000 30%,#000 70%,transparent);background-image:linear-gradient(rgba(143,163,157,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(143,163,157,.1) 1px,transparent 1px)}.contact-section:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(155,234,99,.12);border-radius:50%;right:-120px;top:-80px;box-shadow:0 0 0 65px #9bea6305,0 0 0 130px #9bea6303}.contact-content{position:relative;z-index:1;width:min(100%,980px)}.contact-content .eyebrow{color:#7f8f8a}.contact-content .eyebrow span{color:var(--green)}.contact-content h2{color:#e5ecea;font-size:clamp(52px,7vw,92px)}.contact-content h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px rgba(155,234,99,.6)}.contact-content>p{max-width:650px;color:#879792;font-size:16px;line-height:1.7}.email-link{max-width:760px;margin:46px 0 32px;padding:18px 0;display:grid;grid-template-columns:130px 1fr auto;align-items:center;color:#dbe4e1;border-top:1px solid #2b3935;border-bottom:1px solid #2b3935;font-size:clamp(14px,2vw,21px);font-weight:600}.email-link span{display:flex;align-items:center;gap:8px;color:var(--green);font:700 9px var(--mono);letter-spacing:.1em}.email-link svg{width:18px}.contact-actions{display:flex;gap:12px;flex-wrap:wrap}.button.light{background:var(--green);color:#0b110f}.button.outline-light{border:1px solid #3b4945;color:#c9d3d0}footer{min-height:170px;padding:45px clamp(24px,7vw,118px);display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;gap:25px;background:#07100d;border-top:1px solid var(--line)}footer>p{color:#4e5e59;font:400 9px var(--mono);text-align:center;text-transform:uppercase;letter-spacing:.1em}.footer-links{display:flex;justify-content:flex-end;gap:20px}.footer-links a{display:flex;align-items:center;gap:4px;color:#7b8b86;font:500 10px var(--mono);text-transform:uppercase}.footer-links a:hover{color:var(--green)}.copyright{grid-column:1 / -1;color:#34423e;font:400 8px var(--mono);text-align:center}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes pulse{50%{opacity:.45;box-shadow:0 0 4px var(--green)}}@media(max-width:960px){.nav{position:fixed;inset:76px 0 auto;padding:28px;display:none;flex-direction:column;align-items:stretch;background:#0c1513;border-bottom:1px solid var(--line)}.nav.open{display:flex}.nav>a{padding:10px}.menu-button{display:grid;place-items:center}.hero{grid-template-columns:1fr;padding-top:135px}.hero-copy{max-width:760px}.skill-hub{width:min(92vw,700px);margin:25px auto 45px}.hero-meta{position:static;grid-column:1;margin-top:-25px}.bring-grid{grid-template-columns:repeat(2,1fr)}.about-layout{grid-template-columns:1fr;gap:20px}.references-layout{grid-template-columns:1fr}.about .section-heading{margin-bottom:0}.chapter-intro{grid-template-columns:1fr;align-items:end}.chapter-intro>span{align-self:auto}.skill-chapter,.skill-chapter.chapter-reverse{min-height:auto;grid-template-columns:70px 1fr;padding-top:110px;padding-bottom:110px}.chapter-reverse .chapter-title,.chapter-reverse .chapter-details{order:initial}.chapter-index{grid-row:1 / 3}.chapter-details{max-width:none}.timeline{margin-left:0}}@media(max-width:680px){html,body,#root{max-width:100%;overflow-x:hidden}.site-header{height:66px}.nav{top:66px}.hero{width:100vw;min-height:auto;grid-template-columns:minmax(0,1fr);padding:110px 20px 65px}.hero-copy,.skill-hub{width:calc(100vw - 40px);max-width:calc(100vw - 40px)}.hero-copy{overflow:hidden}.availability{line-height:1.6}.hero h1{font-size:clamp(52px,16.5vw,70px);letter-spacing:-.065em}.hero-title{max-width:100%;font-size:14px;overflow-wrap:anywhere}.hero-intro{overflow-wrap:anywhere}.hero-meta{display:none}.hero-actions-main{align-items:stretch;flex-direction:column}.hero-actions-main .button{width:100%;flex:none}.hero-actions-secondary{justify-content:space-between}.hero-actions-secondary a{font-size:8px}.skill-hub{padding:15px;margin:18px 0 25px}.skill-canvas,.workbench-skeleton{height:430px}.skill-hub-footer{font-size:6px}.scene-callout{max-width:210px}.skill-hub-access{gap:5px}.skill-hub-access>span{width:100%;margin:0;text-align:center}.skill-hub-access button{min-height:34px;font-size:6px}.bring-heading{display:block}.bring-heading h2{margin-top:15px}.bring-grid{grid-template-columns:1fr}.bring-card{min-height:170px}.section{min-height:auto;padding:100px 20px}.section-heading{margin-bottom:42px}.section-heading h2,.contact-content h2{font-size:44px}.target-roles>div{grid-template-columns:1fr}.chapter-intro{min-height:75vh;padding:100px 20px}.chapter-intro h2{font-size:58px}.skill-chapter,.skill-chapter.chapter-reverse{grid-template-columns:1fr;gap:28px;padding:95px 20px;background:#0a1110}.skill-chapter:nth-of-type(odd){background:#0c1412}.chapter-index{grid-row:auto;min-height:40px;padding:0 0 15px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.chapter-index svg{width:25px;height:25px}.chapter-title h2{font-size:52px}.chapter-description{margin-top:22px;font-size:16px}.chapter-details{padding:25px 20px}.chapter-details li{font-size:12px}.projects-grid{grid-template-columns:1fr}.project-card,.project-card.featured{grid-column:auto;min-height:0;padding:28px;background:#111c19}.project-card.featured:before{display:none}.timeline-item{grid-template-columns:55px 1fr;gap:12px}.timeline-date{grid-column:2;grid-row:1}.timeline-item>div:last-child{grid-column:2}.education-grid{grid-template-columns:1fr}.education-card{min-height:280px;padding:30px}.resume-copy h2{font-size:50px}.resume-actions{flex-direction:column}.resume-actions .button{width:100%}.contact-section{min-height:680px;padding:90px 20px}.email-link{grid-template-columns:1fr auto;gap:13px;overflow-wrap:anywhere}.email-link span{grid-column:1 / -1}.contact-actions{flex-direction:column}footer{grid-template-columns:1fr;justify-items:center;padding:45px 20px}footer>p{margin:0}.footer-links{justify-content:center;flex-wrap:wrap}.copyright{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
