@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg:#071019;--surface:#0b1722;--surface-2:#0e1d2a;--line:#1c3040;--text:#eef6fb;--muted:#8da2b2;--accent:#20d3ee;--accent-2:#1896e8;--max:1120px;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 78% 3%,rgba(32,211,238,.07),transparent 25%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.shell{width:min(var(--max),calc(100% - 40px));margin-inline:auto}::selection{background:var(--accent);color:#031016}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.site-header{height:68px;position:fixed;top:0;left:0;right:0;z-index:100;background:#071019e0;border-bottom:1px solid rgba(28,48,64,.8);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px;font-size:14px;letter-spacing:-.01em}.brand span{width:34px;height:34px;display:grid;place-items:center;background:var(--accent);color:#031016;font:700 13px JetBrains Mono;border-radius:7px}.brand b{font-weight:600}.nav-links{display:flex;align-items:center;gap:2px}.nav-links a{padding:8px 10px;color:var(--muted);font-size:13px;font-weight:500;border-radius:6px}.nav-links a:hover,.nav-links a.active{color:var(--text);background:#10212e}.nav-links a.active{color:var(--accent)}.nav-links .nav-cta{margin-left:8px;border:1px solid var(--line);color:var(--text);padding-inline:13px}.menu-button{display:none}.hero{min-height:690px;padding-top:135px;padding-bottom:70px;display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.availability{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);background:#0e1d2aa6;border-radius:99px;padding:6px 11px;color:#a8b9c5;font:500 11px JetBrains Mono;text-transform:uppercase;letter-spacing:.05em}.availability span{width:7px;height:7px;border-radius:50%;background:#59e391;box-shadow:0 0 0 4px #59e3911a}.overline{margin:28px 0 6px;color:var(--accent);font:500 13px JetBrains Mono}.hero h1{font-size:clamp(52px,7vw,82px);letter-spacing:-.065em;line-height:.96;margin:0;font-weight:600}.hero h1 span{color:#9aabb8}.hero-role{margin:22px 0 8px;font:500 15px JetBrains Mono;color:#c0ccd5}.hero-role i{color:var(--accent);font-style:normal}.hero-intro{max-width:600px;margin:0;color:var(--muted);font-size:17px;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 17px;border-radius:7px;border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer}.btn:hover{transform:translateY(-2px)}.btn.primary{color:#031016;background:var(--accent)}.btn.primary:hover{background:#62e7f7;box-shadow:0 10px 30px #20d3ee29}.btn.secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.social-row{display:flex;gap:8px;margin-top:24px}.social-row a{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;color:var(--muted);font:600 12px JetBrains Mono}.social-row a:hover{color:var(--accent);border-color:#296578;background:#0b202c}.code-window{border:1px solid var(--line);border-radius:10px;background:#07131d;box-shadow:0 35px 70px #00000052;overflow:hidden;transform:rotate(.5deg)}.window-bar{height:43px;display:flex;align-items:center;gap:6px;padding:0 14px;background:#0d1b27;border-bottom:1px solid var(--line)}.window-bar>span{width:8px;height:8px;border-radius:50%;background:#365062}.window-bar>span:first-child{background:#ed6a5e}.window-bar>span:nth-child(2){background:#f4bd4f}.window-bar>span:nth-child(3){background:#61c454}.window-bar small{margin-left:auto;color:#668091;font:10px JetBrains Mono}.code-window pre{margin:0;padding:28px 26px 22px;font:12px/2 JetBrains Mono;color:#92a7b7;overflow:auto}.code-window b{color:#e477d0;font-weight:500}.code-window em{color:#92df99;font-style:normal}.window-status{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:8px 14px;color:#61798a;font:10px JetBrains Mono}.window-status span{display:flex;align-items:center;gap:7px}.window-status i{width:6px;height:6px;background:#59e391;border-radius:50%}.section{padding-block:88px;border-top:1px solid rgba(28,48,64,.6)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}.kicker{display:block;margin-bottom:10px;color:var(--accent);font:500 11px JetBrains Mono;text-transform:uppercase;letter-spacing:.12em}.section h2{font-size:clamp(34px,5vw,50px);letter-spacing:-.045em;line-height:1.08;margin:0;font-weight:600}.section-head>p{max-width:460px;margin:0;color:var(--muted);font-size:15px}.about-grid{display:grid;grid-template-columns:360px 1fr;gap:70px;align-items:center}.portrait-wrap{position:relative}.portrait-wrap>img{display:block;width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:center 18%;filter:saturate(.75);border-radius:9px;border:1px solid var(--line)}.portrait-wrap>div{position:absolute;right:-25px;bottom:25px;display:flex;gap:11px;align-items:center;padding:13px 15px;background:#0c1a25;border:1px solid var(--line);border-radius:8px;box-shadow:0 15px 35px #0000004d;color:var(--accent)}.portrait-wrap>div span{color:var(--muted);font-size:11px;line-height:1.5}.portrait-wrap>div b{color:#d6e2e9;font-weight:500}.about-copy p{max-width:680px;color:var(--muted);font-size:15px}.about-copy .lead{color:#d8e2e9;font-size:20px;line-height:1.55}.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:32px}.about-facts div{background:var(--bg);padding:16px}.about-facts strong{display:block;color:var(--accent);font:600 15px JetBrains Mono}.about-facts span{font-size:11px;color:var(--muted)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.skill-card{min-height:186px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#0b17227a}.skill-card:hover{background:#0c1c28}.skill-title{display:flex;gap:12px;align-items:start;margin-bottom:23px}.skill-title span{color:#4e6b7e;font:10px JetBrains Mono}.skill-title h3{font-size:15px;line-height:1.35;margin:0}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{border:1px solid var(--line);background:#0a1823;color:#9fb1be;border-radius:4px;padding:4px 8px;font:10px JetBrains Mono}.projects-section{overflow:hidden}.projects-shell{width:min(1320px,calc(100% - 40px));margin-inline:auto}.projects-section .section-head{padding-bottom:25px;border-bottom:1px solid var(--line)}.projects-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project-card{display:flex;min-width:0;flex-direction:column;border:1px solid #243746;background:#090f19;border-radius:14px;overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:hover{border-color:#3d5c70;transform:translateY(-5px);box-shadow:0 25px 60px #00000052}.project-preview{display:block;position:relative;height:245px;overflow:hidden;background:#0d1d29;border-bottom:1px solid var(--line)}.project-preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#040a1100 45%,#040a11b3)}.project-preview img{width:100%;height:100%;position:absolute;object-fit:cover;filter:saturate(.82) brightness(.78);transition:.4s ease}.project-card:hover img{transform:scale(1.035);filter:saturate(1) brightness(.86)}.project-preview .project-number{position:absolute;left:20px;top:18px;z-index:2;color:#dbe8ef;background:#050f17cc;border:1px solid rgba(255,255,255,.13);border-radius:99px;padding:4px 9px;font:10px JetBrains Mono;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-content{display:flex;flex:1;flex-direction:column;padding:28px 27px 29px}.project-title-row{display:flex;align-items:start;justify-content:space-between;gap:18px}.project-title-row h3{max-width:320px;font-size:25px;line-height:1.15;margin:0 0 17px;letter-spacing:-.035em}.project-title-row>a{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;margin-top:-3px;color:#778c9c;border:1px solid transparent;border-radius:50%}.project-title-row>a:hover{color:var(--accent);border-color:var(--line);background:#0d1b26}.project-content>p{min-height:66px;font-size:14px;line-height:1.65;color:#91a2af;margin:0 0 24px}.project-content>.tags{margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}.project-content>.tags span{border:0;background:transparent;padding:0;color:#718795}.project-content>.tags span:not(:last-child):after{content:" / ";margin-left:7px;color:#334b5b}.view-all-row{display:flex;justify-content:center;margin-top:34px}.view-all-row .btn{min-width:180px}.all-projects-page{min-height:100vh;padding:125px 0 90px}.back-link{display:inline-block;color:var(--muted);font:11px JetBrains Mono;margin-bottom:45px}.back-link:hover{color:var(--accent)}.projects-page-head{max-width:670px;margin-bottom:48px}.projects-page-head h1{font-size:clamp(48px,7vw,78px);line-height:1;margin:0;letter-spacing:-.06em}.projects-page-head p{color:var(--muted);font-size:15px}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.archive-card{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#0a131e;transition:.25s}.archive-card:hover{transform:translateY(-3px);border-color:#315167;box-shadow:0 20px 45px #00000038}.archive-image{display:block;height:220px;overflow:hidden;background:var(--surface)}.archive-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.8);transition:.35s}.archive-card:hover .archive-image img{transform:scale(1.03);filter:brightness(.8) saturate(1)}.archive-content{padding:24px}.archive-title{display:flex;align-items:start;justify-content:space-between;gap:15px}.archive-title h2{font-size:22px;line-height:1.25;margin:0}.archive-title>a{color:var(--muted)}.archive-title>a:hover{color:var(--accent)}.archive-content>p{color:var(--muted);font-size:13px;min-height:64px}.archive-links{display:flex;gap:18px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.archive-links a{font-size:11px;font-weight:600}.archive-links a:hover{color:var(--accent)}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:62px 240px 1fr;border-bottom:1px solid var(--line);padding:32px 0}.timeline-marker span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #296578;background:#0b202c;color:var(--accent);border-radius:50%;font:10px JetBrains Mono}.timeline-meta time{color:var(--accent);font:10px JetBrains Mono}.timeline-meta p{font-size:13px;margin:6px 0;color:#d0dce4}.timeline-content h3{font-size:20px;margin:0 0 10px}.timeline-content ul{padding-left:17px;margin:0 0 17px;color:var(--muted);font-size:13px}.timeline-content li{margin-bottom:5px}.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cert-grid article{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:20px;background:var(--surface)}.cert-icon{width:36px;height:36px;display:grid;place-items:center;color:var(--accent);background:#0a222e;border-radius:6px}.cert-grid h3{margin:0;font-size:13px;line-height:1.4}.cert-grid p{margin:5px 0 0;color:var(--muted);font-size:11px}.cert-grid time{font:10px JetBrains Mono;color:#5e7889}.github-panel{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid var(--line);border-radius:10px;background:linear-gradient(120deg,#0c1d29,#09141e);overflow:hidden}.github-copy{padding:45px}.github-copy h2{margin-bottom:12px}.github-copy p{color:var(--muted);font-size:14px;max-width:370px;margin-bottom:25px}.github-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-left:1px solid var(--line)}.github-stats>div{background:#081722;padding:30px;display:flex;flex-direction:column}.github-stats strong{font-size:14px}.github-stats span{font-size:10px;color:var(--muted)}.stat-bars{height:80px;margin-top:auto;display:flex;gap:4px;align-items:end}.stat-bars b{display:block;flex:1;max-width:9px;background:#1b8ba0;border-radius:2px 2px 0 0}.github-stats ul{list-style:none;padding:0;margin:auto 0 0;display:grid;gap:7px}.github-stats li{font:10px JetBrains Mono;color:#9fb1be;display:flex;align-items:center;gap:7px}.github-stats li i{width:7px;height:7px;border-radius:50%}.java{background:#ed7947}.js{background:#f1d94f}.cs{background:#8d73e8}.fallback-note{grid-column:1/-1;margin:0;padding:9px 30px;background:#07131c;color:#587182;font:9px JetBrains Mono}.contributions-card{border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#0b1722,#08121b);padding:34px;overflow:hidden}.contributions-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:27px;border-bottom:1px solid var(--line)}.contributions-heading .kicker{margin-bottom:7px}.contributions-heading h2{font-size:34px}.contributions-heading>a{color:var(--accent);font:500 12px JetBrains Mono;white-space:nowrap}.contributions-heading>a:hover{text-decoration:underline}.contributions-layout{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:28px}.contributions-main{min-width:0}.contributions-total{margin:25px 0 18px;color:#c9d7df;font-size:16px}.contributions-total strong{color:var(--text);font:600 21px JetBrains Mono}.contributions-scroll{overflow-x:auto;padding-bottom:8px;scrollbar-color:#284253 transparent;scrollbar-width:thin}.contributions-calendar{width:100%;min-width:760px}.month-row{display:grid;grid-template-columns:42px repeat(var(--week-count),minmax(0,1fr));gap:3px;height:24px;color:var(--muted);font:10px JetBrains Mono}.month-row span{white-space:nowrap}.calendar-body{display:flex}.day-labels{width:42px;flex:0 0 42px;display:grid;grid-template-rows:repeat(7,1fr);gap:3px;padding-right:7px;color:var(--muted);font:9px JetBrains Mono;line-height:1;align-items:center}.week-grid{display:grid;grid-template-columns:repeat(var(--week-count),minmax(0,1fr));gap:3px;flex:1}.contribution-week{display:grid;grid-template-rows:repeat(7,1fr);gap:3px}.contribution-cell{display:block;width:100%;aspect-ratio:1;border-radius:2px;background:#13202b}.contribution-cell:not(.is-empty):hover{outline:1px solid #d8e5eb;outline-offset:1px}.contribution-cell.is-empty{visibility:hidden}.contribution-cell.level-0{background:#13202b}.contribution-cell.level-1{background:#0d5533}.contribution-cell.level-2{background:#087c43}.contribution-cell.level-3{background:#16a75b}.contribution-cell.level-4{background:#53dc7d}.contributions-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:13px;color:var(--muted);font:9px JetBrains Mono}.contribution-legend{display:flex;align-items:center;gap:4px}.contribution-legend .contribution-cell{width:11px;height:11px}.contribution-years{display:flex;flex-direction:column;gap:4px;padding-top:22px}.contribution-years button{width:100%;border:0;border-radius:6px;padding:9px 13px;background:transparent;color:var(--muted);font:500 13px DM Sans;text-align:left;cursor:pointer}.contribution-years button:hover{color:var(--text);background:#10212e}.contribution-years button.active{color:#fff;background:#2879e8;font-weight:600}.contributions-state{min-height:190px;display:grid;place-items:center;color:var(--muted);font:12px JetBrains Mono;text-align:center}.contributions-state a{color:var(--accent)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-copy h2{font-size:clamp(40px,5vw,58px);margin:0 0 18px}.contact-copy>p{color:var(--muted);max-width:430px}.contact-links{display:grid;gap:8px;margin-top:30px}.contact-links a{display:flex;align-items:center;gap:12px;color:var(--accent)}.contact-links a>span{color:#d5e0e7;font-size:12px}.contact-links small{display:block;color:var(--muted);font-size:10px}.contact-form{display:grid;gap:15px;border:1px solid var(--line);background:var(--surface);padding:28px;border-radius:9px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contact-form label{display:grid;gap:6px;color:#b8c6ce;font-size:11px;font-weight:600}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#07141e;padding:11px 12px;color:var(--text);font-size:13px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#536b7b}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #20d3ee14}.contact-form .btn{justify-self:start}.form-message{margin:0;font-size:11px}.form-message.error{color:#ff8e8e}.form-message.success{color:#59e391}footer{border-top:1px solid var(--line);padding:25px 0;color:var(--muted);font-size:11px}footer .shell{display:flex;justify-content:space-between;align-items:center}footer .brand{color:var(--text)}footer p{margin:0}.reveal{opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease}.reveal.is-visible{opacity:1;transform:none}@media (max-width:900px){.nav-links{position:absolute;top:68px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:12px 20px 20px;background:#071019;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.nav-links a{padding:10px}.nav-links .nav-cta{margin:6px 0 0}.menu-button{display:grid;gap:6px;border:0;background:none;padding:10px;cursor:pointer}.menu-button i{display:block;width:22px;height:1px;background:#dbe6ec;transition:.2s}.menu-button.open i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button.open i:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{grid-template-columns:1fr;gap:45px;padding-top:120px}.hero-copy{max-width:700px}.code-window{max-width:620px}.about-grid{grid-template-columns:300px 1fr;gap:45px}.skills-grid{grid-template-columns:repeat(2,1fr)}.projects-list,.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-shell{width:min(100% - 40px,760px)}.cert-grid,.github-panel,.contact-grid{grid-template-columns:1fr}.github-stats{border-left:0;border-top:1px solid var(--line)}.contributions-layout{grid-template-columns:1fr}.contribution-years{order:-1;flex-direction:row;overflow-x:auto;padding-top:18px}.contribution-years button{width:auto;min-width:72px;white-space:nowrap;text-align:center}.contact-grid{gap:45px}}@media (max-width:650px){.shell{width:min(100% - 28px,var(--max))}.site-header{height:62px}.nav-links{top:62px}.hero{min-height:0;padding-top:110px;padding-bottom:62px}.hero h1{font-size:50px}.hero-role{font-size:12px}.hero-intro{font-size:15px}.hero-actions .btn{width:100%}.section{padding-block:66px}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:14px}.about-grid{grid-template-columns:1fr;gap:40px}.portrait-wrap{max-width:330px}.portrait-wrap>div{right:-8px}.about-facts,.skills-grid,.projects-list,.archive-grid{grid-template-columns:1fr}.skill-card{min-height:0}.project-preview{height:200px}.project-content{padding:23px 19px}.archive-image{height:210px}.timeline article{grid-template-columns:45px 1fr}.timeline-meta{grid-column:2}.timeline-content{grid-column:2;margin-top:12px}.github-copy{padding:28px 22px}.github-stats{grid-template-columns:1fr}.fallback-note{grid-column:auto;padding:12px 20px}.contributions-card{padding:22px 18px}.contributions-heading{display:block}.contributions-heading h2{font-size:31px;margin-bottom:12px}.contributions-total{font-size:13px}.contributions-total strong{font-size:17px}.contributions-footer{align-items:flex-start;flex-direction:column}.contact-grid{gap:35px}.contact-form{padding:20px}.field-row{grid-template-columns:1fr}footer .shell{flex-direction:column;align-items:flex-start;gap:15px}footer p{order:3}.social-row{margin-top:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}
