:root{color:#17182e;--purple:#6035cf;--muted:#606174;--border:#eae8f0;--soft:#f7f6fc;background:#fff;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline-offset:6px;border-radius:4px;outline:3px solid #9674ed}::selection{background:#e5dcfc}p{color:var(--muted);margin:0;line-height:1.65}h1,h2,h3,h4{letter-spacing:-.04em;margin:0;line-height:1.16}h2{font-size:clamp(1.9rem,3vw,2.5rem)}h3{letter-spacing:-.025em;font-size:1.15rem}.container{width:min(1160px,100% - 96px);margin-inline:auto}.section{padding-block:76px}[id]{scroll-margin-top:24px}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--purple);margin-bottom:16px;font-size:.7rem;font-weight:700;line-height:1.4}.dot{background:#8c68e1;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.skip-link{color:#fff;z-index:10;background:#211a32;padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{justify-content:space-between;align-items:center;gap:32px;min-height:108px;display:flex}.brand{letter-spacing:-.045em;white-space:nowrap;align-items:center;font-size:1.22rem;font-weight:750;display:flex}.brand>span:last-child{color:var(--purple)}.brand-mark{align-items:flex-end;gap:3px;height:23px;margin-right:12px;display:flex}.brand-mark i{background:var(--purple);border-radius:1px;width:5px}.brand-mark i:first-child{opacity:.5;height:9px}.brand-mark i:nth-child(2){opacity:.75;height:16px}.brand-mark i:nth-child(3){height:23px}nav{align-items:center;gap:34px;font-size:.83rem;font-weight:600;display:flex}nav a{transition:color .2s}nav a:hover{color:var(--purple)}.nav-contact{border:1px solid var(--border);border-radius:8px;align-items:center;gap:18px;margin-left:20px;padding:11px 17px;display:flex}.hero{grid-template-columns:1.1fr 1fr;align-items:center;min-height:490px;padding-block:55px 65px;display:grid;position:relative}.hero-copy{z-index:1;position:relative}.hero .eyebrow{margin-bottom:17px}h1{letter-spacing:-.065em;font-size:clamp(3.2rem,5.3vw,4.7rem);font-weight:750}h1 span{color:var(--purple)}.hero-statement{color:#29273d;letter-spacing:-.045em;margin-top:17px;font-size:clamp(1.65rem,2.8vw,2.35rem);line-height:1.25}.hero-intro{max-width:445px;margin-top:23px;font-size:.96rem}.hero-actions{gap:12px;margin-top:29px;display:flex}.button{border-radius:7px;justify-content:center;align-items:center;gap:22px;padding:14px 21px;font-size:.82rem;font-weight:650;transition:transform .2s,box-shadow .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.primary{color:#fff;background:var(--purple);box-shadow:0 5px 14px #6035cf20}.primary:hover{box-shadow:0 7px 20px #6035cf35}.secondary{background:#fff;border:1px solid #d9d4e5}.hero-art{align-self:stretch;align-items:center;min-width:0;margin-left:-40px;display:flex;position:relative}.hero-art svg{width:100%;overflow:visible}.art-label{letter-spacing:.035em;color:#777184;border:1px solid var(--border);background:#fff;border-radius:7px;align-items:center;gap:9px;padding:12px 17px;font-size:.7rem;display:flex;position:absolute;top:35px;right:15px;box-shadow:0 5px 24px #2c1d4c06}.art-caption{color:#787183;letter-spacing:.04em;font-size:.63rem;position:absolute;bottom:20px;right:0}.chart-line{stroke-dasharray:900;stroke-dashoffset:900px;animation:2s forwards draw}.skills{grid-template-columns:repeat(4,1fr);padding-block:25px 48px;display:grid}.skill{border-right:1px solid var(--border);align-items:center;gap:18px;padding-inline:28px;display:flex}.skill:first-child{padding-left:0}.skill:last-child{border:0;padding-right:0}.skill-symbol{color:var(--purple);font-size:2rem;line-height:1}.skill h2{letter-spacing:-.03em;font-size:1rem}.skill p{margin-top:5px;font-size:.76rem}.services{background:var(--soft);border-block:1px solid #f0eef8}.section-intro{margin-top:12px;font-size:.94rem}.services-grid{grid-template-columns:repeat(4,1fr);gap:42px;margin-top:36px;display:grid}.service-top{justify-content:space-between;align-items:center;margin-bottom:21px;display:flex}.icon-tile{width:49px;height:49px;color:var(--purple);background:#ece6fe;border-radius:13px;place-items:center;font-size:1.8rem;display:grid}.step{color:#82788e;letter-spacing:.08em;font-size:.68rem}.services-grid article>p{margin-top:12px;font-size:.84rem;line-height:1.65}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.section-note{color:var(--muted);align-items:center;gap:10px;padding-bottom:5px;font-size:.73rem;display:flex}.projects-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:31px;display:grid}.project-card{border:1px solid var(--border);border-radius:13px;min-width:0;transition:transform .25s,box-shadow .25s;overflow:hidden;box-shadow:0 5px 20px #22163b04}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #22163b0a}.project-visual{background:#1e2033;border-radius:8px;justify-content:center;align-items:center;height:185px;margin:8px 8px 0;display:flex;position:relative;overflow:hidden}.visual-caption{color:#c2bdce;letter-spacing:.08em;text-transform:uppercase;font-size:.55rem;position:absolute;bottom:10px;left:14px}.mini-dashboard{background:#26283b;border:1px solid #424052;border-radius:6px;width:82%;padding:13px;transform:perspective(500px)rotateY(-8deg)rotateX(5deg)}.mini-top{gap:7px;margin-bottom:12px;display:flex}.mini-top i{background:linear-gradient(110deg,#403b58,#333347);border-radius:3px;flex:1;height:23px}.mini-panels{align-items:center;gap:12px;display:flex}.mini-panels svg{width:55%}.mini-bars{flex:1;align-items:flex-end;gap:5px;height:62px;display:flex}.mini-bars i{width:12%;height:var(--bar-height);background:linear-gradient(#af95f7,#6242ae);border-radius:2px 2px 0 0}.visual-sql{background:linear-gradient(130deg,#24283a,#171c2a)}pre{color:#e1dced;margin:0;padding:12px;font-size:clamp(.6rem,1vw,.78rem);line-height:1.85}pre span{color:#c38bea}.visual-apps{background:radial-gradient(at 50% 90%,#503681,#232032 70%)}.app-art{gap:16px;display:flex;transform:rotate(-8deg)}.app-art>span{color:#d9c7ff;background:#ffffff0c;border:1px solid #ffffff25;border-radius:18px;place-items:center;width:75px;height:83px;font-size:2rem;display:grid;box-shadow:0 10px 20px #110c272a}.app-art>span:nth-child(2){background:#8555b638;transform:translateY(12px)}.project-content{padding:23px 22px}.tags{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.tags span{color:#63517e;background:#f1edf9;border-radius:5px;padding:5px 9px;font-size:.61rem;font-weight:600}.project-content p{margin-top:12px;font-size:.82rem;line-height:1.7}.project-status{color:#76678e;align-items:center;gap:7px;margin-top:23px;font-size:.66rem;display:flex}.project-status .dot{width:5px;height:5px}.about{border-top:1px solid var(--border);grid-template-columns:1.1fr 1fr;gap:100px;padding-top:65px;display:grid}.about>div>p:not(.eyebrow){max-width:500px;margin-top:20px;font-size:.9rem}.about h2{font-size:2rem;line-height:1.2}.experience{padding:8px 0 0 20px}.experience>h3{margin-bottom:29px;font-size:1rem}.experience-entry{border-left:1px solid #e2d9f2;padding-left:27px;position:relative}.experience-entry:before{content:"";background:var(--purple);border-radius:50%;width:9px;height:9px;position:absolute;top:3px;left:-5px;box-shadow:0 0 0 5px #f2edfc}.experience-entry .eyebrow{margin-bottom:12px;font-size:.6rem}.experience-entry h4{margin-bottom:7px;font-size:1.35rem}.experience-entry .company{color:#30283f;margin-bottom:3px;font-size:.9rem;font-weight:650}.experience-entry p{font-size:.8rem}.experience-tag{color:#715a93;background:#f4f0fb;border-radius:5px;margin-top:18px;padding:7px 11px;font-size:.67rem;display:inline-block}.contact{color:#fff;background:radial-gradient(at 85% 120%,#392655,#0000 65%),#211a32;border-radius:17px;justify-content:space-between;align-items:center;gap:30px;padding:43px 45px;display:flex}.contact .eyebrow{color:#b9a2e3;margin-bottom:11px;font-size:.62rem}.contact h2{letter-spacing:-.05em;font-size:2.4rem}.contact p{color:#cfc6de;margin-top:12px;font-size:.85rem}.contact-details{max-width:360px}.contact-details>p{margin:0 0 13px;font-size:.77rem}.contact-placeholders{flex-wrap:wrap;gap:10px;display:flex}.contact-placeholders>span{color:#e1d9ec;border:1px solid #71627f;border-radius:6px;padding:10px 16px;font-size:.74rem}.contact small{color:#bfb0cf;margin-top:14px;font-size:.61rem;line-height:1.6;display:block}.site-footer{color:#78717f;justify-content:space-between;gap:20px;padding-block:28px;font-size:.65rem;display:flex}.site-footer a:hover{color:var(--purple)}@keyframes draw{to{stroke-dashoffset:0}}@media (width<=1000px){.container{width:calc(100% - 56px)}nav{gap:22px}.nav-contact{margin-left:0}.hero{grid-template-columns:1.2fr 1fr}.hero-art{margin-left:-30px}.skill{gap:12px;padding-inline:17px}.skill p{font-size:.68rem}.services-grid{gap:25px}.projects-grid{gap:16px}.project-content{padding:20px 16px}.about{gap:50px}.contact{padding:35px}}@media (width<=760px){.site-header{flex-wrap:wrap;gap:23px;min-height:0;padding-block:24px}.brand{font-size:1.15rem}nav{justify-content:space-between;gap:12px;width:100%;font-size:.76rem}.nav-contact{border:0;gap:5px;padding:0}.hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:25px}.hero-copy{max-width:520px}h1{font-size:clamp(3rem,9vw,4.2rem)}.hero-statement{font-size:2rem}.hero-intro{max-width:470px;font-size:.92rem}.hero-art{height:260px;margin:20px 0 0}.hero-art svg{height:260px}.art-label{top:10px;right:15px}.art-caption{bottom:0}.skills{grid-template-columns:repeat(2,1fr);gap:25px 0;padding-block:28px 37px}.skill{padding-inline:20px}.skill:nth-child(odd){padding-left:0}.skill:nth-child(2n){border:0}.skill p{font-size:.72rem}.section{padding-block:52px}.services-grid{grid-template-columns:repeat(2,1fr);gap:32px}.section-heading{flex-direction:column;align-items:flex-start;gap:15px}.projects-grid{grid-template-columns:1fr;gap:23px}.project-card{grid-template-columns:.85fr 1fr;display:grid}.project-visual{height:auto;min-height:215px;margin:8px 0 8px 8px}.project-content{padding:23px 20px}.project-status{line-height:1.5}.mini-dashboard{width:90%;padding:8px}.app-art{gap:10px}.app-art>span{width:55px;height:65px}.visual-sql pre{padding:9px;font-size:.58rem}.about{grid-template-columns:1fr;gap:35px}.experience{padding-left:0}.contact{flex-direction:column;align-items:flex-start;gap:30px;padding:34px}.contact-details{max-width:none}.site-footer{flex-wrap:wrap;justify-content:space-between;line-height:1.7}.site-footer>span:nth-child(2){order:3;width:100%}}@media (width<=480px){.container{width:calc(100% - 40px)}.hero-art,.hero-art svg{height:220px}.hero-statement{font-size:1.8rem}.hero-actions{gap:10px}.button{gap:13px;padding:13px 17px;font-size:.76rem}.skill{gap:11px;padding-inline:13px}.skill h2{font-size:.85rem}.skill-symbol{font-size:1.6rem}.skill p{font-size:.65rem}.services-grid{gap:30px 22px}.services-grid h3{font-size:1.06rem}.services-grid article>p{font-size:.79rem}.project-card{display:block}.project-visual{height:180px;min-height:0;margin:8px 8px 0}.mini-dashboard{max-width:240px;padding:13px}.visual-sql pre{font-size:.76rem}.app-art>span{width:75px;height:83px}.project-content{padding:23px}.contact{padding:29px 25px}.contact h2{font-size:2.2rem}.contact p{font-size:.8rem}.contact-placeholders>span{padding:9px 13px;font-size:.68rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.chart-line{stroke-dashoffset:0}}.contact-socials{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.contact-socials .button{color:#fff;background:#ffffff0a;border:1px solid #b7a5d0;min-height:44px}.contact-socials .button:hover{background:#ffffff18;border-color:#d7c5f6}
