:root{--bg: #080d10;--bg-soft: #0d1418;--surface: #111a1f;--text: #edf2ee;--muted: #9aa9a4;--faint: #66736f;--line: rgba(192, 216, 207, .16);--accent: #75f4c7;--accent-dark: #06150f;--container: 1180px;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 70%)}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin-top:0}::selection{color:var(--accent-dark);background:var(--accent)}.container{width:min(calc(100% - 2.5rem),var(--container));margin-inline:auto}.skip-link{position:fixed;z-index:99;top:.75rem;left:.75rem;padding:.7rem 1rem;color:var(--accent-dark);background:var(--accent);transform:translateY(-160%);transition:transform .2s}.skip-link:focus{transform:translateY(0)}.site-header{position:absolute;z-index:10;top:0;width:100%;border-bottom:1px solid var(--line)}.header-inner,.footer-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:center;gap:.7rem;font-size:.92rem;font-weight:700;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:2rem;aspect-ratio:1;border:1px solid var(--accent);color:var(--accent);font:500 .68rem var(--mono)}nav{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.4rem);font-size:.78rem;font-weight:600}nav a{color:var(--muted);transition:color .2s}nav a:hover,nav a:focus-visible{color:var(--text)}.nav-contact{padding:.55rem .95rem;border:1px solid var(--line)}.hero{min-height:790px;height:100svh;max-height:980px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-items:center;gap:2rem;padding-top:7rem;position:relative}.hero-copy{position:relative;z-index:2}.role,.section-index{color:var(--accent);font:500 .72rem/1.4 var(--mono);letter-spacing:.09em;text-transform:uppercase}.role{margin-bottom:2rem}h1{margin-bottom:1.8rem;font-size:clamp(4.3rem,9.5vw,8.3rem);line-height:.83;letter-spacing:-.075em;font-weight:600}h1 span,h2 span{color:var(--muted);font-weight:400}.claim{max-width:580px;color:#bac6c1;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.55}.hero-actions,.profile-actions{margin-top:2.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.2rem}.button{min-height:48px;padding:.75rem 1.1rem;display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;border:1px solid transparent;font-size:.78rem;font-weight:700;transition:transform .2s,background-color .2s,border-color .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:var(--accent-dark);background:var(--accent)}.button-primary:hover{background:#9bffda}.button-secondary{border-color:var(--line);color:var(--text);background:#ffffff04}.button-secondary:hover{border-color:var(--muted)}.text-link{display:inline-flex;gap:.75rem;align-items:center;color:var(--muted);border-bottom:1px solid var(--line);font-size:.78rem;font-weight:600;padding:.45rem 0;transition:color .2s,border-color .2s}.text-link:hover{color:var(--text);border-color:var(--accent)}.topology{position:relative;height:min(570px,63vh)}.topology svg{width:100%;height:100%;overflow:visible}.topology svg path,.topology svg circle{fill:none;stroke:#75f4c747;stroke-width:1;vector-effect:non-scaling-stroke}.topology svg circle{fill:var(--accent);stroke-width:0}.profile-placeholder{position:absolute;left:22%;top:26%;width:42%;min-width:170px;padding:.45rem;background:#080d10eb;border:1px solid var(--line);transform:rotate(-2deg)}.profile-placeholder img{width:100%;height:auto;display:block;filter:grayscale(1)}.profile-placeholder span{display:block;padding:.45rem .2rem .1rem;color:var(--faint);font:.62rem var(--mono);text-transform:uppercase}.topology-label{position:absolute;color:var(--faint);font:.6rem var(--mono);letter-spacing:.08em}.label-a{top:10%;left:27%}.label-b{top:33%;right:3%}.label-c{bottom:13%;right:18%}.scroll-hint{position:absolute;bottom:2.25rem;left:0;display:flex;align-items:center;gap:.75rem;color:var(--faint);font:.66rem var(--mono);text-transform:uppercase;letter-spacing:.1em}.scroll-hint span{display:block;width:38px;height:1px;background:var(--line)}.section{padding:clamp(6rem,11vw,10rem) 0;border-top:1px solid var(--line)}.section-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(350px,1.1fr);gap:clamp(4rem,10vw,10rem)}.section-index{margin-bottom:2.2rem}h2{font-size:clamp(2.5rem,5vw,4.7rem);line-height:1.03;letter-spacing:-.055em;font-weight:600}.about-copy{padding-top:3.8rem;color:var(--muted)}.about-copy .lead{color:var(--text);font-size:clamp(1.25rem,2.1vw,1.8rem);line-height:1.45;letter-spacing:-.025em}.about-copy p+p{margin-top:1.8rem}.skills-section{background:var(--bg-soft)}.section-heading.compact{max-width:800px;margin-bottom:5rem}.skills-list{border-top:1px solid var(--line)}.skill-row{min-height:128px;display:grid;grid-template-columns:65px minmax(200px,.8fr) minmax(280px,1fr) 30px;gap:1.5rem;align-items:center;border-bottom:1px solid var(--line)}.skill-number,.skill-arrow{color:var(--accent);font:.7rem var(--mono)}.skill-row h3{margin:0;font-size:clamp(1.1rem,1.6vw,1.4rem);font-weight:600;letter-spacing:-.025em}.skill-row p{margin:0;color:var(--muted);font-size:.92rem}.skill-arrow{font-size:1rem;justify-self:end}.projects-section{overflow:hidden}.projects-intro{display:grid;grid-template-columns:1fr .7fr;gap:5rem;align-items:end;margin-bottom:5rem}.projects-intro>p{max-width:450px;color:var(--muted);margin-bottom:.75rem}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.project-card{min-height:400px;padding:clamp(1.5rem,4vw,3.2rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}.project-card:nth-child(2),.project-card:nth-child(3){background:#ffffff05}.project-top{display:flex;justify-content:space-between;color:var(--accent);font:.7rem var(--mono)}.project-card h3{max-width:420px;margin:auto 0 1.25rem;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.15;letter-spacing:-.04em}.project-card>p{color:var(--muted);font-size:.9rem}.project-card ul{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.3rem 0 0;list-style:none}.project-card li{padding:.3rem .55rem;border:1px solid var(--line);color:var(--faint);font:.62rem var(--mono);text-transform:uppercase}.professional-section{background:var(--accent);color:var(--accent-dark)}.professional-grid{display:grid;grid-template-columns:.7fr 1fr;align-items:center;gap:clamp(4rem,10vw,9rem)}.profile-visual{position:relative;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(6,21,15,.25)}.profile-visual>span{font-size:clamp(5rem,10vw,9rem);font-weight:600;letter-spacing:-.09em}.profile-visual svg{position:absolute;inset:10%;width:80%;height:80%;animation:spin 28s linear infinite}.profile-visual svg *{fill:none;stroke:#06150f38;stroke-width:1}.professional-copy .section-index{color:#06150fa6}.professional-copy h2{font-size:clamp(3rem,6vw,5.5rem)}.professional-copy p{max-width:620px;color:#06150fbf}.professional-copy .button-primary{color:var(--text);background:var(--bg)}.professional-copy .text-link{color:var(--accent-dark);border-color:#06150f59}.contact-section{padding:clamp(6rem,13vw,11rem) 0}.contact-inner{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:5rem}.contact-inner h2{margin-bottom:0}.contact-details{padding-bottom:.5rem}.contact-details p{color:var(--muted)}.email-link{margin-top:2rem;padding-bottom:.5rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--accent);color:var(--accent);font-size:clamp(1.15rem,2.2vw,1.65rem);font-weight:500}footer{border-top:1px solid var(--line);color:var(--faint);font-size:.72rem}.footer-inner{min-height:110px}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.js .reveal.is-visible{opacity:1;transform:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:860px){nav a:not(.nav-contact){display:none}.hero{height:auto;min-height:850px;grid-template-columns:1fr;padding-top:9rem;padding-bottom:7rem}.topology{position:absolute;inset:17% -20% auto 40%;height:460px;opacity:.6}.profile-placeholder{display:none}.hero-copy{align-self:end}.section-grid,.projects-intro,.professional-grid,.contact-inner{grid-template-columns:1fr;gap:3rem}.about-copy{padding-top:0}.skill-row{grid-template-columns:42px 1fr 24px;padding:1.6rem 0}.skill-row p{grid-column:2 / 4}.projects-grid{grid-template-columns:1fr}.project-card:nth-child(3){background:transparent}.project-card:nth-child(2n){background:#ffffff05}.professional-grid{max-width:700px}.profile-visual{width:min(70vw,380px)}}@media(max-width:560px){.container{width:min(calc(100% - 2rem),var(--container))}.header-inner{min-height:68px}.hero{min-height:760px;padding-top:8rem}h1{font-size:clamp(4.1rem,23vw,6rem)}.claim{max-width:93%}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.hero-actions .text-link{width:fit-content}.topology{inset:12% -65% auto 22%}.section{padding:5.5rem 0}.section-heading.compact,.projects-intro{margin-bottom:3rem}.skill-row{grid-template-columns:32px 1fr 18px;gap:.7rem}.skill-row p{font-size:.84rem}.project-card{min-height:365px}.footer-inner{padding:2rem 0;flex-wrap:wrap}.footer-inner p{order:3;flex-basis:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
