:root{--bg:#111214;--panel:#17191c;--ink:#f0f1f2;--muted:#9ca1a7;--subtle:#60656b;--line:#2d3034;--white:#fff;--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans)}.site-header{height:86px;padding:0 clamp(28px,4vw,66px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#121316;position:relative;z-index:2}.brand{font-weight:800;font-size:26px;letter-spacing:-2px;text-decoration:none;color:var(--ink)}.brand span{color:#b7b7b7}nav{display:flex;gap:clamp(22px,3vw,52px)}nav a{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#88909a;text-decoration:none}nav a:hover,nav a.active{color:var(--white)}.home{height:100svh;overflow:hidden}.landing{height:calc(100svh - 86px);display:grid;grid-template-rows:1fr 215px;background-image:linear-gradient(#1b1e22 1px,transparent 1px),linear-gradient(90deg,#1b1e22 1px,transparent 1px),radial-gradient(ellipse at 45% 20%,#1c1e22 0%,#111214 62%);background-size:80px 80px,80px 80px,auto}.hero-panel{width:min(1015px,100% - 80px);margin:auto;padding:26px 0 34px}.availability{display:inline-flex;gap:9px;align-items:center;margin:0 0 clamp(22px,4vw,58px);padding:10px 13px;border:1px solid #3b3f44;border-radius:3px;color:#c1c4c7;font:11px var(--mono);letter-spacing:.06em}.availability i{width:7px;height:7px;border-radius:50%;background:#bebebe}.identity{display:flex;align-items:center;gap:clamp(22px,3vw,44px)}.portrait{width:clamp(120px,12vw,190px);height:clamp(120px,12vw,190px);border-radius:50%;overflow:hidden;border:9px solid var(--white);flex:0 0 auto;box-shadow:0 0 0 1px #bfc0c0}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;filter:saturate(.72) contrast(1.04)}.identity h1,.inner h1,.contact-page h1{font-size:clamp(4.7rem,9vw,8.6rem);letter-spacing:-.1em;line-height:.72;margin:0;font-weight:800}.identity h1 span,.inner h1 span,.contact-page h1 span{color:transparent;-webkit-text-stroke:1px #92969a}.roles{font:500 clamp(10px,1.25vw,14px) var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:26px 0 0}.roles b{color:#ededed;margin:0 7px}.statement{width:min(600px,100%);color:#c1c5ca;font-size:clamp(14px,1.45vw,18px);line-height:1.7;margin:clamp(30px,4vw,55px) 0}.hero-actions{display:flex;gap:16px}.button{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:19px 26px;border:1px solid #65696d;color:var(--ink);min-width:185px;text-align:center}.button-solid{background:#e7e8e9;color:#141516;border-color:#e7e8e9}.button-outline:hover{border-color:#fff}.highlights{width:min(1015px,100% - 80px);margin:auto;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);align-items:center}.highlights div{height:100%;padding-top:clamp(28px,3.2vw,50px)}.highlights strong{font-size:clamp(2rem,3.3vw,3.3rem);letter-spacing:-.09em}.highlights strong span{color:#bfc1c3}.highlights p{margin:12px 0 0;font:10px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:#717780}.page{min-height:100svh;background-image:linear-gradient(#191b1e 1px,transparent 1px),linear-gradient(90deg,#191b1e 1px,transparent 1px);background-size:80px 80px}.inner,.contact-page{width:min(1240px,100% - 12vw);margin:0 auto;padding:clamp(75px,10vw,145px) 0}.eyebrow{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#a6abb1;margin:0 0 42px}.inner h1,.contact-page h1{line-height:.8}.skill-grid,.project-grid{margin-top:clamp(70px,10vw,130px);display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.project-grid{grid-template-columns:repeat(3,1fr)}.skill-grid article,.project-grid article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:270px;padding:28px}.skill-grid article:nth-child(2n),.project-grid article:last-child{border-right:0}.skill-grid small,.project-grid small{font:10px var(--mono);color:#9b9fa3}.skill-grid h2,.project-grid h2{font-size:clamp(1.7rem,3vw,3rem);line-height:.95;letter-spacing:-.07em;margin:55px 0 18px}.skill-grid p,.project-grid p{font-size:13px;line-height:1.7;color:var(--muted);max-width:330px}.project-grid em{display:block;margin-top:30px;font:10px var(--mono);color:#d1d3d5;letter-spacing:.04em}.contact-page{min-height:calc(100svh - 86px);display:flex;flex-direction:column;align-items:flex-start}.contact-page>p:not(.eyebrow){font-size:16px;line-height:1.7;color:var(--muted);max-width:430px;margin:55px 0}.contact-email,.contact-linkedin{font:500 clamp(15px,2vw,24px) var(--mono);color:var(--ink);text-decoration:none;border-bottom:1px solid #b9bcc0;padding:10px 0;display:flex;align-items:center;gap:13px}.contact-email svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.contact-linkedin{margin-top:24px;border:0;font-size:13px;color:var(--muted)}@media(max-width:700px){.home{height:auto;overflow:auto}.site-header{height:68px;padding:0 23px}nav{gap:15px}nav a{font-size:8px}.landing{height:auto;min-height:calc(100svh - 68px);grid-template-rows:auto auto;background-size:50px 50px,50px 50px,auto}.hero-panel{width:calc(100% - 48px);padding:48px 0 60px}.availability{margin-bottom:40px}.identity{align-items:flex-start;gap:19px}.portrait{width:105px;height:105px;border-width:7px}.identity h1{font-size:17vw;line-height:.73}.roles{font-size:8px;line-height:1.8;margin-top:20px}.roles b{margin:0 3px}.statement{font-size:13px;margin:42px 0}.button{min-width:0;flex:1;padding:16px 8px;font-size:9px}.highlights{width:calc(100% - 48px);grid-template-columns:1fr 1fr;padding:20px 0}.highlights div{padding:15px 0}.highlights p{font-size:8px}.inner,.contact-page{width:calc(100% - 48px);padding:68px 0}.inner h1,.contact-page h1{font-size:14vw}.skill-grid,.project-grid{display:block;margin-top:65px}.skill-grid article,.project-grid article{border-right:0;min-height:0;padding:25px 0}.skill-grid h2,.project-grid h2{font-size:9vw;margin:35px 0 13px}.contact-page>p:not(.eyebrow){margin:42px 0;font-size:14px}}
