﻿@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--bg:#09090f;--text:#f4f3ff;--muted:#96909f;--purple:#b79aff;--border:#ffffff0d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:70px}body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--purple);outline-offset:6px}::selection{background:#8b5cf650;color:white}.ambient{position:absolute;pointer-events:none;z-index:-1;width:100%;height:800px;top:-260px;background:radial-gradient(ellipse at center,#7337be35,transparent 65%);filter:blur(80px)}header{max-width:1100px;margin:auto;height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 30px}.wordmark{font-size:25px;font-weight:750;letter-spacing:-1.5px}.wordmark span{color:var(--purple)}nav{display:flex;gap:32px;font-size:12px;color:#b0adbf}nav a:hover{color:white}.hero{min-height:690px;position:relative;text-align:center;display:flex;align-items:center;flex-direction:column;padding:113px 24px 100px}.hello-pill{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:500;color:#c4b6dd;background:#a073ff09;border:1px solid #b990ff24;border-radius:30px;padding:8px 13px}.hello-pill i{width:5px;height:5px;background:#b993ff;border-radius:50%;box-shadow:0 0 8px #b993ff}.hero h1{font-size:clamp(44px,5.2vw,70px);font-weight:750;letter-spacing:-3.6px;margin:27px 0 15px;line-height:1.2}.gradient{background:linear-gradient(105deg,#eee6ff,#ba93f8 50%,#8f69e9);-webkit-background-clip:text;background-clip:text;color:transparent}.wave{font-size:.64em;display:inline-block;margin-left:17px;vertical-align:8%;transform:rotate(-8deg);transform-origin:75% 75%;animation:wave 1.6s ease .5s}.role{font-size:19px;color:#d0c9df;letter-spacing:-.3px;margin:0 0 18px;font-weight:500}.description{font-size:14px;line-height:1.9;color:var(--muted);margin:0 0 31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:linear-gradient(180deg,#b58aec,#895aca);border:1px solid #d4adff75;color:#fff;font-size:12px;font-weight:500;min-height:45px;padding:0 21px;border-radius:9px;box-shadow:0 0 30px #a668eb20,inset 0 1px 0 #ffffff20;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 0 40px #a668eb40}.button>span{font-size:18px}.hero-tech{display:flex;gap:15px;align-items:center;margin-top:38px;font-size:10px;color:#898191}.hero-tech i{width:3px;height:3px;background:#4f465d;border-radius:50%}.scroll{position:absolute;bottom:24px;display:flex;flex-direction:column;gap:12px;color:#857a95;font-size:16px}.scroll span{font-size:8px;letter-spacing:2px}.stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#d5b0ff;box-shadow:0 0 10px #cb9bff80;opacity:.45}.stars i:nth-child(1){left:19%;top:28%}.stars i:nth-child(2){left:80%;top:22%;width:2px;height:2px}.stars i:nth-child(3){left:27%;top:64%;width:2px;height:2px}.stars i:nth-child(4){left:84%;top:59%}.section{max-width:1000px;margin:auto;padding:105px 30px}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:85px;align-items:center}.eyebrow{display:block;font-size:9px;letter-spacing:2px;font-weight:600;color:#a18ebf;margin-bottom:17px}h2{font-size:37px;font-weight:650;letter-spacing:-1.6px;line-height:1.25;margin:0 0 24px}.about p{font-size:13px;line-height:1.95;color:var(--muted);margin:0 0 15px}.note{border-top:1px solid var(--border);padding-top:20px;margin-top:25px;color:#b8a8cd;font-size:11px;display:flex;align-items:center;gap:12px}.note>span{font-size:18px;color:var(--purple)}.profile{height:340px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#9f61eb18,transparent 65%)}.avatar{position:relative;width:132px;height:132px;border-radius:34px;background:linear-gradient(145deg,#322341,#17121e);border:1px solid #b48adc35;box-shadow:0 0 80px #9b5ce31a,inset 0 1px 0 #dfc5ff14;transform:rotate(-8deg);display:grid;place-items:center}.avatar svg{width:102px;transform:rotate(8deg)}.profile strong{font-size:20px;letter-spacing:-.7px;margin-top:25px}.profile-role{font-size:10px;color:#9d8cac;margin-top:8px}.orbit{position:absolute;width:270px;height:270px;border:1px solid #a275d012;border-radius:50%;top:10px;left:calc(50% - 135px)}.outer{width:340px;height:340px;top:-25px;left:calc(50% - 170px)}.spark{position:absolute;color:#b28cd7;top:35px;right:45px;font-size:25px}.code{position:absolute;font:9px monospace;color:#a28bb7;background:#100d16;border:1px solid #9473ad20;border-radius:6px;padding:10px 12px}.left{top:105px;left:-10px;transform:rotate(-9deg)}.right{bottom:74px;right:-17px;transform:rotate(8deg)}.skills{position:relative;padding-top:95px}.skills:before{content:'';position:absolute;z-index:-1;width:70%;height:400px;left:15%;top:150px;background:radial-gradient(ellipse,#47285b18,transparent 70%);filter:blur(40px)}.section-title{text-align:center;margin-bottom:43px}.section-title h2{margin-bottom:13px}.section-title p{color:var(--muted);font-size:13px;line-height:1.8}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.skill{display:flex;align-items:center;gap:13px;border:1px solid #ffffff0b;border-radius:11px;padding:22px 16px;background:linear-gradient(130deg,#ffffff04,#ffffff01);position:relative;transition:background .2s,border-color .2s,transform .2s}.skill:hover{background:#ad7fea09;border-color:#bb8bea40;transform:translateY(-4px)}.icon{width:33px;height:34px;flex-shrink:0;display:grid;place-items:center;font:700 19px/1 monospace;letter-spacing:-1px}.icon svg{width:30px;height:30px}.js{background:#efd64b;color:#151309;border-radius:3px;align-items:end;justify-items:end;padding:3px;font-size:20px}.ts{background:#3178c6;color:#fff;border-radius:3px;align-items:end;justify-items:end;padding:3px;font-size:20px}.html{color:#f18659;font-size:20px}.css{color:#a889f4;font-size:36px}.node{color:#7db765;font-size:41px}.pg{color:#759fc1}.skill h3{font-size:12px;font-weight:500;margin:0 0 6px;letter-spacing:-.2px}.skill p{font-size:9px;color:#92899d;margin:0;white-space:nowrap}.arrow{position:absolute;right:10px;top:9px;font-size:11px;color:#a892bc;opacity:0;transition:opacity .2s}.skill:hover .arrow,.skill:focus-visible .arrow{opacity:1}.stack-note{text-align:center;color:#93859f;font-size:10px;margin-top:29px}.contact{position:relative;text-align:center;display:flex;align-items:center;flex-direction:column;padding-top:100px;padding-bottom:110px}.contact:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 60%,#663b9b24,transparent 65%);filter:blur(30px)}.contact-spark{font-size:35px;color:#c1a1ea;margin-bottom:29px}.contact h2{font-size:43px;line-height:1.25;margin-bottom:19px}.contact p{font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 27px}footer{max-width:1040px;margin:0 auto;padding:34px 30px 40px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}footer .wordmark{font-size:22px}footer p{color:#8e829b;font-size:10px;margin-top:11px}.footer-right{display:flex;flex-direction:column;gap:17px;text-align:right;color:#93869f;font-size:10px}.footer-right a{color:#aaa0b8}@keyframes wave{0%,100%{transform:rotate(-8deg)}25%{transform:rotate(15deg)}50%{transform:rotate(-15deg)}75%{transform:rotate(12deg)}}
@media(min-width:1500px){.hero{min-height:760px;padding-top:145px}.hero h1{font-size:76px}}@media(max-width:1000px){.about{gap:45px}.skills-grid{grid-template-columns:repeat(2,1fr)}.skill{padding:23px}.skill h3{font-size:14px}.skill p{font-size:11px}.icon{margin-right:7px}.left{left:0}.right{right:0}}@media(max-width:640px){header{height:80px;padding-inline:22px}.wordmark{font-size:23px}nav{gap:18px;font-size:10px}.hero{min-height:650px;padding:110px 20px 100px}.hero h1{font-size:43px;letter-spacing:-2.3px}.wave{margin-left:9px}.role{font-size:16px}.description{font-size:12px;max-width:340px}.desktop{display:none}.hero-tech{gap:10px;font-size:9px}.section{padding:65px 24px}.about{grid-template-columns:1fr;gap:30px}.profile{height:310px;max-width:340px;width:100%;margin:20px auto 0}.outer{width:300px;height:300px;left:calc(50% - 150px);top:-5px}h2{font-size:31px}.section-title h2{font-size:29px}.section-title .eyebrow{font-size:8px;letter-spacing:1.5px}.section-title p{font-size:12px}.skills-grid{gap:10px}.skill{padding:19px 12px;gap:9px}.icon{width:26px;height:28px;font-size:16px;margin-right:0}.icon svg{width:26px}.css{font-size:30px}.node{font-size:34px}.skill h3{font-size:11px}.skill p{font-size:8px}.stack-note{font-size:9px;line-height:1.8}.contact{padding-block:80px}.contact h2{font-size:34px}.contact p{font-size:12px}.contact .eyebrow{font-size:8px}footer{margin-inline:22px;padding-inline:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{:root{color-scheme:light;--bg:white;--text:#21182c;--muted:#625a6c;--border:#ddd;--purple:#70429a}body{background:white;color:var(--text)}.ambient,.stars,.hello-pill,.hero-tech,.scroll,.button,.orbit,.code,.spark,.contact-spark,nav,.footer-right a{display:none}header{height:48px;padding:0}.hero{min-height:0;padding:25px 0 32px}.hero h1{font-size:40px;margin:0 0 12px}.role{font-size:15px;color:#625a6c}.description{font-size:11px;margin:0}.gradient{background:none;color:#70429a}.section{padding:25px 0;break-inside:avoid}.about{grid-template-columns:2fr 1fr;gap:30px}.about p{font-size:10px;line-height:1.7}.eyebrow{font-size:8px;margin-bottom:10px}h2,.section-title h2{font-size:27px;margin-bottom:14px}.note{font-size:9px;padding-top:10px;margin-top:10px}.profile{height:200px}.avatar{width:85px;height:85px;background:#eee8f7;box-shadow:none}.avatar svg{width:70px}.profile strong{font-size:17px}.profile-role{font-size:9px}.skills-grid{grid-template-columns:repeat(4,1fr);gap:8px}.skill{padding:12px 8px;border:1px solid #ddd;gap:7px}.icon{width:24px;height:26px;margin:0;font-size:15px}.icon svg{width:23px}.node{font-size:30px}.css{font-size:28px}.skill h3{font-size:10px}.skill p{font-size:7px}.section-title{margin-bottom:20px}.section-title p{font-size:10px}.stack-note{font-size:9px;margin-top:15px}.contact{padding:23px 0}.contact h2{font-size:25px}.contact h2 br{display:none}.contact p{font-size:10px;margin:0}footer{padding:15px 0 0;margin:0}.skills:before,.contact:before{display:none}@page{size:A4;margin:13mm}}

/* Atmospheric portfolio and project gallery */
:root{--bg:#080b12;--purple:#79c8ff;--muted:#99a3b6}body{background:var(--bg)}.ambient{top:-200px;height:1050px;background:radial-gradient(ellipse at 30% 35%,#006aff23,transparent 45%),radial-gradient(ellipse at 80% 55%,#7148ff19,transparent 40%);filter:blur(60px)}header{max-width:1230px}.hero{min-height:790px;padding-top:145px}.hero h1{font-size:clamp(48px,7.5vw,104px);letter-spacing:-5px;line-height:1.1;font-weight:750}.hero .gradient{background-size:250% 250%;animation:gradient-drift 10s ease infinite}.gradient{background-image:linear-gradient(110deg,#eef6ff 5%,#72caff 42%,#6289ff 72%,#bbadff)}.role{font-size:23px;margin-top:8px}.description{font-size:15px;max-width:600px}.hello-pill{color:#acd7f9;border-color:#82c5ff25;background:#6ebcff08}.hello-pill i{background:#87cfff;box-shadow:0 0 12px #62bfff}.hero-actions{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}.button{background:linear-gradient(135deg,#70b7f3,#596eda);border-color:#acd5ff60;box-shadow:0 0 32px #497eeb20,inset 0 1px 0 #ffffff30;min-height:48px;border-radius:11px}.button:hover{box-shadow:0 0 40px #497eeb40}.text-link{display:inline-flex;align-items:center;gap:15px;color:#bac8df;background:none;border:0;padding:12px 0;font-size:12px}.text-link:hover{color:#fff}.section{max-width:1140px;padding-top:115px;padding-bottom:115px}h2{font-size:44px;letter-spacing:-1.9px}.eyebrow{color:#7f99bb}.hero-tech{color:#8c9bb0}.about{gap:110px}.about p{font-size:14px}.profile{background:radial-gradient(ellipse,#376bac1f,transparent 65%)}.avatar{background:linear-gradient(145deg,#233954,#141a2a);border-color:#77b7ff35;box-shadow:0 0 100px #446def22}.orbit{border-color:#89baff12}.note{color:#a3b9d5}.skills:before{background:radial-gradient(ellipse,#24487b25,transparent 70%)}.section-title{margin-bottom:52px}.section-title p{font-size:14px;line-height:1.9}.skill{background:#11172270;border-color:#a8c9ff10;padding-block:26px}.skill:hover{background:#182336;border-color:#83bbff40}.projects{position:relative}.projects:before{content:'';position:absolute;inset:10% -5%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 5% 25%,#176bc323,transparent 45%),radial-gradient(ellipse at 95% 80%,#6941a523,transparent 45%);filter:blur(65px)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.project-card{min-width:0;background:linear-gradient(140deg,#131b28b0,#0d111b);border:1px solid #b4ccff17;border-radius:19px;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}.project-card:hover{transform:translateY(-6px);border-color:#8ebeff45;box-shadow:0 20px 65px #0003}.project-art{height:305px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;overflow:hidden;border-bottom:1px solid #ffffff08}.project-art:before{content:'';position:absolute;width:330px;height:330px;border:1px solid #ffffff0b;border-radius:50%;box-shadow:0 0 0 50px #ffffff02,0 0 0 100px #ffffff02;pointer-events:none;transition:transform .6s}.project-art:hover:before{transform:scale(1.12)}.filejet-art{background:radial-gradient(ellipse at 50% 20%,#2671a538,transparent 75%),linear-gradient(135deg,#112538,#0c1420);color:#9edcff}.chat-art{background:radial-gradient(ellipse at 50% 20%,#8060da36,transparent 75%),linear-gradient(135deg,#201a36,#131021);color:#c3b1ff}.zenix-art{background:radial-gradient(ellipse at 50% 40%,#42907424,transparent 70%),linear-gradient(135deg,#102620,#0b1517);color:#a1e8c5}.art-label{position:absolute;top:23px;left:25px;font-size:8px;font-weight:600;letter-spacing:2px;opacity:.6}.art-name{font-size:39px;font-weight:750;letter-spacing:-2px;z-index:1}.art-name>span{font-size:12px;vertical-align:top;margin:8px 0 0 5px;display:inline-block;letter-spacing:0}.art-caption{font-size:10px;opacity:.55;margin-top:8px;z-index:1}.art-corner{position:absolute;bottom:19px;right:23px;font:8px monospace;letter-spacing:1.6px;opacity:.4}.file-symbol{width:90px;height:90px;transform:rotate(-9deg);border:1px solid #a1d9ff25;border-radius:24px;background:linear-gradient(135deg,#72cfff15,#346b9510);box-shadow:0 15px 30px #0002;margin-bottom:17px;z-index:1}.file-symbol svg{width:90px}.chat-symbol{position:relative;width:135px;height:85px;margin-bottom:17px}.chat-symbol>span{position:absolute;border:1px solid #c8aaff35;background:#40315c;box-shadow:0 10px 30px #0003;border-radius:13px 13px 13px 3px;width:85px;height:45px;display:flex;align-items:center;justify-content:center;gap:6px;transform:rotate(-7deg)}.chat-symbol>span:last-child{bottom:0;right:0;background:#6e54a5;border-radius:13px 13px 3px 13px;transform:rotate(6deg);font-size:13px;color:#f2eaff}.chat-symbol i{height:5px;width:5px;background:#bcace1;border-radius:50%}.zenix-symbol{font-size:100px;font-weight:800;font-style:italic;line-height:1;margin-bottom:13px;color:#a4efc9;text-shadow:5px 5px 0 #2b604e;z-index:1}.zenix-art .art-name{font-size:31px;letter-spacing:5px}.zenix-art .art-name>span{font-size:8px;letter-spacing:2px;display:block;text-align:center;margin:5px 0 0}.project-body{padding:29px 30px 25px;display:flex;flex-direction:column}.project-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.project-title h3{font-size:23px;letter-spacing:-.7px;margin:0}.project-title>a{width:31px;height:31px;border:1px solid #ffffff12;border-radius:50%;display:grid;place-items:center;color:#aabbd4}.project-title>a:hover{background:#ffffff12}.project-body>p{color:#96a2b6;font-size:12px;line-height:1.9;margin:15px 0 21px}.project-tags{display:flex;gap:7px;flex-wrap:wrap}.project-tags span{border:1px solid #a3c7ff14;background:#b0cfff05;border-radius:6px;padding:6px 9px;color:#a8bad3;font-size:9px}.repo-link{display:flex;align-items:center;justify-content:space-between;margin-top:25px;padding-top:19px;border-top:1px solid #ffffff0a;font-size:10px;color:#aab8d0}.repo-link:hover{color:#fff}.wide{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.wide .project-art{height:100%;min-height:325px;border:0;border-right:1px solid #ffffff08}.wide .project-body{justify-content:center;padding:35px}.all-projects{display:table;margin:37px auto 0;padding:13px 22px;border:1px solid #ffffff14;border-radius:9px;color:#bac7dd;font-size:11px}.all-projects span{margin-left:22px}.all-projects:hover{border-color:#8ebeff45;background:#8ebeff08}.contact:before{background:radial-gradient(ellipse at 50% 70%,#2767a82b,transparent 65%)}.contact h2{font-size:57px}.contact-spark{color:#8ac8f9}.contact p{font-size:14px}.reveal{opacity:1}.reveal.revealed{animation:reveal-up .8s ease both}footer{max-width:1140px}.footer-right a{color:#b8c9de}@keyframes gradient-drift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes reveal-up{from{opacity:.3;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.about{gap:55px}.hero{min-height:730px;padding-top:125px}.hero h1{font-size:76px}.section{padding-block:90px}.contact h2{font-size:47px}}@media(max-width:640px){header{padding-inline:20px}nav{gap:13px;font-size:9px}.hero{min-height:690px;padding:110px 20px 95px}.hero h1{font-size:clamp(38px,9.7vw,61px);letter-spacing:-2.3px}.role{font-size:18px}.description{font-size:12px}.hero-actions{gap:13px}.text-link{font-size:11px}.hero-tech{margin-top:28px}.section{padding:65px 22px}.about{gap:25px}.about p{font-size:13px}h2,.section-title h2{font-size:32px}.section-title p{font-size:12px}.section-title{margin-bottom:32px}.project-grid{grid-template-columns:1fr;gap:22px}.project-art{height:285px}.project-body{padding:24px}.wide{grid-column:auto;display:block}.wide .project-art{height:285px;min-height:0;border-right:0;border-bottom:1px solid #ffffff08}.wide .project-body{padding:24px}.project-title h3{font-size:22px}.project-body>p{font-size:12px}.contact h2{font-size:35px}.contact p{font-size:12px}.contact .hero-actions{flex-direction:column}.projects:before{inset:0}.skill{padding-block:21px}}
@media(prefers-reduced-motion:reduce){.hero .gradient,.reveal.revealed{animation:none}.project-card,.project-art:before{transition:none}}
@media print{body{background:white}.hero{min-height:0;padding:25px 0}.hero h1{font-size:40px}.hero-actions{display:none}.role{font-size:15px}.description{font-size:11px}.section{padding:24px 0}.about{gap:30px}.about p{font-size:10px}.section-title h2,h2{font-size:27px}.section-title p{font-size:10px}.section-title{margin-bottom:20px}.profile{background:none}.avatar{background:#eee8f7;box-shadow:none}.skill{background:none;padding:12px 8px}.projects{break-before:page}.projects:before{display:none}.project-grid{gap:12px}.project-card{background:white;border:1px solid #ddd;border-radius:9px;break-inside:avoid;box-shadow:none}.project-art{display:none}.project-body,.wide .project-body{padding:18px}.project-title h3{font-size:18px}.project-title>a{display:none}.project-body>p{font-size:10px;color:#625a6c}.project-tags span{border-color:#ddd;color:#625a6c}.repo-link{color:#456;border-color:#ddd}.wide{display:block;grid-column:1/-1}.all-projects{display:none}.contact h2{font-size:25px}.contact p{font-size:10px}.gradient{background:none;color:#466dad}.reveal.revealed{animation:none}footer{padding-top:15px}}

/* Reference layout: horizontal projects and full-width footer. */
body{background-color:#080a0c;background-image:linear-gradient(#ffffff03 1px,transparent 1px)}
body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#ffffff03 1px,transparent 1px)}
body:before{background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px),radial-gradient(ellipse at 42% 38%,#12677b16,transparent 48%),radial-gradient(ellipse at 76% 75%,#957c2110,transparent 45%);background-size:64px 64px,64px 64px,100% 100%,100% 100%}
.projects.section{max-width:none;padding:100px 0 90px}.projects>.section-title{width:min(1320px,calc(100% - 80px));margin:0 auto 52px;text-align:left}.projects .eyebrow{display:none}.projects h2{font-size:52px;font-weight:700;letter-spacing:-1.6px}.projects .section-title p{max-width:1050px;font-size:15px}.projects .section-title p br{display:none}.project-grid{display:flex;flex-wrap:nowrap;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:40px;padding:12px max(40px,calc((100vw - 1320px)/2)) 25px;scrollbar-width:thin;scrollbar-color:#3299c74a transparent}.project-grid:focus-visible{outline:1px solid #39baff;outline-offset:-3px}.project-card{flex:0 0 min(650px,80vw);display:grid;grid-template-columns:minmax(0,1fr) 145px;align-items:center;gap:30px;min-height:235px;padding:32px;border-radius:22px;background:#ffffff04;border:1px solid #ffffff13;scroll-snap-align:center;overflow:visible;position:relative}.project-card{background:linear-gradient(115deg,#ffffff07,#ffffff03)}.project-card:hover,.project-card:focus-within{border-color:#28b6f0;transform:translateY(-3px);box-shadow:0 10px 45px #0002;background:#ffffff08}.project-body{grid-column:1;grid-row:1;padding:0}.project-title h3{font-size:26px;letter-spacing:-.7px}.project-title>a{border:0;width:22px;height:22px;opacity:.55}.project-body>p{font-size:12px;line-height:1.8;margin:15px 0 18px}.project-tags{gap:6px}.project-tags span{font-size:8px;padding:4px 6px}.repo-link{display:none}.project-art{grid-column:2;grid-row:1;width:145px;height:145px;border-radius:17px;border:1px solid #ffffff12;overflow:hidden}.project-art:before,.project-art .art-label,.project-art .art-name,.project-art .art-caption,.project-art .art-corner{display:none}.file-symbol{margin:0;border:0;box-shadow:none;background:none;width:110px;height:110px}.file-symbol svg{width:110px;height:110px}.chat-symbol{transform:scale(.85);margin:0}.zenix-symbol{font-size:100px;margin:0}.filejet-art{background:linear-gradient(135deg,#325675,#182d45)}.chat-art{background:linear-gradient(140deg,#956bfa,#4a1ec4)}.zenix-art{background:linear-gradient(135deg,#245748,#11291e)}.contact.section{max-width:none;min-height:610px;padding:85px 25px 210px}.contact .contact-spark,.contact>.eyebrow{display:none}.contact h2{font-size:clamp(34px,4vw,59px);font-weight:700;letter-spacing:-1.7px}.contact h2 br{display:none}.contact h2 .gradient{color:inherit;background:none}.contact p{font-size:16px;max-width:800px;margin:0 0 30px}.contact .button{border-radius:40px;background:linear-gradient(110deg,#34bbed,#08a2df);border:0;color:#06131b;font-weight:650;padding:0 30px;box-shadow:none}.contact .text-link{border:2px solid #22b8ef;border-radius:40px;padding:13px 25px;color:#e9eff4}.contact .hero-actions{gap:15px}.site-footer{max-width:none;width:100%;margin:0;display:block;padding:0;background:#ffffff04;border-top:1px solid #ffffff0d}.site-footer{background:#ffffff04}.footer-main,.footer-bottom{max-width:1320px;margin:auto}.footer-main{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:100px;padding:60px 0 45px}.footer-brand .wordmark{font-size:25px;letter-spacing:-.8px}.footer-brand p{font-size:13px;line-height:1.8;color:#949ba6;max-width:300px;margin-top:16px}.footer-main h3{font-size:16px;font-weight:600;margin:0 0 19px}.footer-links{display:flex;align-items:flex-start;flex-direction:column;gap:12px}.footer-links h3{margin-bottom:7px}.footer-links a{font-size:13px;color:#9aa1ad}.footer-links a:hover{color:#3fc3f6}.social-icon{width:40px;height:40px;background:#ffffff09;border-radius:50%;display:inline-grid;place-items:center;color:#a4acb8;vertical-align:middle}.social-icon:hover{color:#38bff3;background:#38bff318}.social-icon svg{width:20px;height:20px}.social-handle{font-size:12px;color:#98a2b1;margin-left:12px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff0d;padding:25px 0 40px;font-size:11px;color:#8b929e}.footer-heart{color:#33b8eb}
@media(max-width:1450px){.footer-main,.footer-bottom{margin-inline:50px}.footer-main{gap:65px}}
@media(max-width:640px){.projects.section{padding:65px 0}.projects>.section-title{width:calc(100% - 44px);margin-bottom:28px}.projects h2{font-size:35px}.projects .section-title p{font-size:12px}.project-grid{padding-inline:22px;gap:15px;scroll-padding-inline:22px}.project-card{flex-basis:88vw;grid-template-columns:minmax(0,1fr) 78px;gap:15px;padding:23px;min-height:240px;border-radius:17px}.project-art{width:78px;height:90px;border-radius:13px}.project-title h3{font-size:20px}.project-body>p{font-size:11px;margin-block:12px}.project-title>a{display:none}.project-tags span{font-size:7px}.file-symbol,.file-symbol svg{width:70px;height:70px}.chat-symbol{transform:scale(.5);flex-shrink:0}.zenix-symbol{font-size:62px}.contact.section{min-height:490px;padding:65px 22px 140px}.contact h2{font-size:34px}.contact p{font-size:12px}.contact .hero-actions{flex-direction:row}.contact .button,.contact .text-link{font-size:11px;padding-inline:20px}.footer-main{margin-inline:24px;padding-top:40px;grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.footer-brand p{max-width:100%;font-size:12px}.footer-main h3{font-size:13px}.footer-links a{font-size:12px}.social-handle{display:block;margin:12px 0 0}.footer-bottom{margin-inline:24px;font-size:10px;padding-block:23px;gap:15px}}
@media print{body:before{display:none}.projects.section{padding:25px 0}.projects>.section-title{width:100%;margin-bottom:20px}.projects h2{font-size:27px}.project-grid{display:block;overflow:visible;padding:0}.project-card{display:block;min-height:0;margin:0 0 14px;padding:18px;border-color:#ddd;background:white}.project-art{display:none}.project-body{padding:0}.project-title h3{font-size:18px}.project-body>p{font-size:10px}.repo-link{display:flex}.contact.section{min-height:0;padding:25px 0}.contact h2{font-size:25px}.contact p{font-size:10px}.site-footer{background:none}.footer-main{display:none}.footer-bottom{margin:0;padding:15px 0}.projects .section-title p{font-size:10px}}


/* Mobile layout: readable text, generous touch targets and native swiping. */
.swipe-hint{display:none}
@media screen and (max-width:760px){
 header{height:auto;min-height:100px;padding:16px 20px 10px;flex-wrap:wrap;justify-content:center;gap:8px}
 header>.wordmark{font-size:25px;text-align:center;width:100%}
 header nav{width:100%;justify-content:center;gap:clamp(10px,4vw,28px);font-size:12px}
 header nav a{display:inline-flex;align-items:center;min-height:44px}
 .hero{min-height:620px;padding:75px 20px 95px}
 .hero h1{font-size:clamp(36px,8.8vw,62px);letter-spacing:-1.8px;max-width:100%}
 .wave{margin-left:8px}.role{font-size:18px}
 .description{font-size:14px;line-height:1.8;max-width:440px}.desktop{display:none}
 .hero-actions{gap:12px 20px;max-width:100%}.button,.text-link{min-height:48px;font-size:13px}
 .hero-tech{flex-wrap:wrap;justify-content:center;gap:10px;font-size:10px}
 .section{padding:65px 20px}.about{grid-template-columns:1fr;gap:30px}
 .about p{font-size:14px}.about .note{font-size:12px;line-height:1.6}
 .profile{width:100%;max-width:320px;margin:15px auto;height:310px}
 .orbit{width:240px;height:240px;left:calc(50% - 120px)}.outer{width:280px;height:280px;left:calc(50% - 140px);top:-10px}
 .code{font-size:8px;padding:9px}.left{left:0}.right{right:0}
 h2,.section-title h2{font-size:32px;letter-spacing:-1px;overflow-wrap:break-word}
 .section-title p{font-size:14px}.eyebrow{font-size:9px;line-height:1.7}
 .skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .skill{padding:17px 12px;gap:10px;min-height:96px}.skill>div{min-width:0}
 .skill h3{font-size:12px}.skill p{font-size:10px;line-height:1.5;white-space:normal}
 .icon{width:26px;height:28px;margin:0}.stack-note{font-size:11px;line-height:1.8}
 .projects.section{padding:60px 0}.projects>.section-title{width:calc(100% - 40px)}
 .projects h2{font-size:34px}.projects .section-title p{font-size:14px}
 .project-grid{gap:16px;padding:12px 20px 20px;scroll-padding-inline:20px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .project-card{flex:0 0 calc(100vw - 56px);max-width:520px;min-height:300px;padding:22px;grid-template-columns:minmax(0,1fr) 74px;gap:12px;align-items:start}
 .project-body{display:contents}.project-title{grid-column:1;grid-row:1;min-height:82px}.project-title h3{font-size:23px;overflow-wrap:anywhere}
 .project-title>a{display:none}.project-art{grid-column:2;grid-row:1;width:74px;height:82px}
 .project-body>p{grid-column:1/-1;grid-row:2;font-size:13px;line-height:1.8;margin:4px 0 8px}
 .project-tags{grid-column:1/-1;grid-row:3;gap:6px}.project-tags span{font-size:10px;padding:6px 8px}
 .repo-link{display:flex;grid-column:1/-1;grid-row:4;min-height:44px;margin-top:4px;padding-top:12px;font-size:12px}
 .file-symbol,.file-symbol svg{width:70px;height:70px}.chat-symbol{transform:scale(.48);flex-shrink:0}.zenix-symbol{font-size:60px}
 .swipe-hint{display:flex;justify-content:center;gap:10px;margin:8px 20px 0;color:#9bacc2;font-size:11px}
 .contact.section{padding:70px 20px 100px;min-height:440px}.contact h2{font-size:clamp(29px,7.8vw,42px);line-height:1.2}.contact h2 br{display:block}
 .contact p{font-size:14px;line-height:1.8}.contact p br{display:none}.contact .hero-actions{gap:12px}
 .contact .button,.contact .text-link{font-size:12px;min-height:48px;padding-inline:23px}
 .footer-main{margin-inline:20px;padding-block:40px;grid-template-columns:1fr 1fr;gap:28px 20px}.footer-brand{grid-column:1/-1}
 .footer-brand p{font-size:14px;max-width:420px}.footer-main h3{font-size:15px;line-height:1.5}
 .footer-links{gap:0}.footer-links a{font-size:13px;min-height:44px;display:flex;align-items:center}
 .social-icon{width:44px;height:44px}.social-handle{display:block;margin:12px 0 0;font-size:12px}
 .footer-bottom{margin-inline:20px;flex-wrap:wrap;gap:14px;padding-block:24px;font-size:11px}
}
@media screen and (max-width:360px){.skill{flex-direction:column;align-items:flex-start;gap:12px}.hero-actions{flex-direction:column}.hero h1{font-size:34px}.project-card{padding:18px}.footer-main{column-gap:12px}.footer-main h3{font-size:14px}}
@media(hover:none){.project-card:hover,.skill:hover,.button:hover{transform:none}}

.discord-contact{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:12px 24px;border:1px solid #828af080;border-radius:40px;background:#5865f20a;font-size:13px;color:#b2b7d5;user-select:text}.discord-contact strong{color:#eef0ff;font-weight:600}.discord-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px;font-size:12px;color:#a4acb8}.discord-footer strong{font-weight:500;color:#c5cbef;user-select:all}@media screen and (max-width:760px){.discord-contact{font-size:12px;padding-inline:20px}}@media print{.discord-contact,.discord-footer{color:#333;background:none}.discord-contact strong,.discord-footer strong{color:#333}}

.footer-social .social-icon{width:52px;height:52px;border:0;background:#ffffff0b;color:#a4a4a8;margin-right:12px;vertical-align:middle;cursor:pointer;transition:background .2s,color .2s}.footer-social .social-icon svg{width:23px;height:23px}.footer-social .social-icon:hover{background:#ffffff17;color:#fff}.social-status{display:block;min-height:18px;margin-top:12px;font-size:11px;color:#9fb4d2}@media(max-width:360px){.footer-social .social-icon{width:44px;height:44px;margin-right:6px}}

.contact-social{display:flex;align-items:center;justify-content:center;gap:18px;position:relative}.contact-social .social-icon{display:inline-grid;place-items:center;width:56px;height:56px;margin:0;padding:0;border:0;border-radius:50%;background:#ffffff0b;color:#a4a4a8;cursor:pointer;transition:background .2s,color .2s}.contact-social .social-icon svg{width:25px;height:25px}.contact-social .social-icon:hover{background:#ffffff17;color:#fff}.contact-social .social-status{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap}.contact h2{max-width:1200px;text-wrap:balance}

.contact .github-outline{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:13px 36px;border:2px solid #2bbcf3;border-radius:999px;background:#15213044;color:#eef2f8;font-size:16px;font-weight:600;transition:background .2s,box-shadow .2s}.contact .github-outline:hover{background:#2bbcf315;box-shadow:0 0 28px #2bbcf31a}@media screen and (max-width:760px){.contact .github-outline{min-height:50px;padding:12px 30px;font-size:14px}}@media print{.contact .github-outline{display:none}}

/* Wheel animation owns the horizontal position; touch keeps native snapping. */
.project-grid.wheel-scrolling{scroll-snap-type:none!important;scroll-behavior:auto!important}
