@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;650;700&family=Manrope:wght@400;450;500;600;650;700;800&display=swap');
:root{--bg:#f3f2f8;--text:#252238;--muted:#6b677c;--line:#dad7e6;--accent:#6943d5;--accent-bright:#7355ed;--surface:#eae7f3;--header:rgba(243,242,248,.92);--serif:Georgia,'Times New Roman',serif;color-scheme:light}
:root[data-theme=dark]{--bg:#171624;--text:#f0edf9;--muted:#b5aecb;--line:#3e3752;--accent:#bba7ff;--accent-bright:#7355ed;--surface:#242035;--header:rgba(23,22,36,.92);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--bg);color:var(--text);font-family:'Manrope','DM Sans',Arial,sans-serif;font-size:15px;line-height:1.65;transition:background .4s,color .4s}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{background:none;border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2{font-weight:500;line-height:1.12;letter-spacing:-.055em}h2{font-size:clamp(38px,4.6vw,66px)}em{font-family:var(--serif);font-weight:400;letter-spacing:-.055em}::selection{background:var(--accent-bright);color:white}.muted{color:var(--muted)}.skip{position:fixed;top:-80px;left:20px;background:var(--bg);z-index:99;padding:12px}.skip:focus{top:10px}.progress{position:fixed;left:0;top:0;height:3px;background:var(--accent-bright);width:0;z-index:100}.header{height:100px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:var(--header);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:16px;font-size:13px;font-weight:650}.brand-icon{font-family:'DM Sans',sans-serif;font-size:30px;letter-spacing:-3px;white-space:nowrap}.brand-icon span{color:var(--accent);padding:0 2px}.header nav{display:flex;gap:35px;font-size:13px}.header nav a{position:relative}.header nav a:after,.contact-links a:after{content:'';position:absolute;height:1px;background:currentColor;bottom:-5px;left:0;width:0;transition:width .3s}.header nav a:hover:after,.contact-links a:hover:after{width:100%}.controls{display:flex;align-items:center;gap:22px}.controls button{padding:8px 0;font-size:12px;font-weight:600}.controls .theme{font-size:24px;line-height:1;padding-left:20px;border-left:1px solid var(--line)}#menu{display:none}.hero{padding:36px 6% 0;max-width:1600px;margin:auto}.hero-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.1em}.eyebrow{font-size:10px;letter-spacing:.12em;display:inline-flex;align-items:center;gap:10px}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px rgb(115 85 237 / 12%)}.edition{color:var(--muted);font-size:10px}.hero-grid{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:8%;padding:40px 0 48px}.intro-line{display:flex;gap:10px;align-items:center;font-size:13px;margin-bottom:22px}.tiny-star{color:var(--accent);font-size:25px}.hero h1{font-size:clamp(52px,6.4vw,94px)}.hero h1 em{color:var(--accent)}.hero-description{max-width:355px;font-size:13px;color:var(--muted);margin:24px 0 28px;line-height:1.8}.pill{display:inline-flex;align-items:center;gap:40px;border:1px solid var(--line);padding:17px 24px;border-radius:40px;font-size:12px;transition:background .3s,color .3s,transform .3s;will-change:transform}.pill>span:last-child{font-size:21px;line-height:1}.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.pill:hover{background:var(--accent-bright);border-color:var(--accent-bright);color:white}.portrait-wrap{position:relative;isolation:isolate;width:100%;max-width:480px;justify-self:end;padding:22px 28px 0 0}.portrait-backdrop{position:absolute;inset:0 0 35px 28px;background:#c5c0e4;z-index:-1;border-radius:180px 180px 3px 3px}.portrait{display:block;width:100%;height:clamp(340px,33vw,470px);object-fit:cover;object-position:center 42%;border-radius:180px 180px 3px 3px;filter:saturate(.7);transition:filter .5s,transform .5s}.portrait-wrap:hover .portrait{filter:saturate(1)}.portrait-caption{display:block;text-align:right;letter-spacing:.15em;font-size:8px;margin:12px 0 0;color:var(--muted)}.floating-chip{position:absolute;top:auto;bottom:0;left:-40px;display:flex;align-items:center;gap:10px;background:var(--bg);box-shadow:0 8px 35px #00000012;transform:rotate(-7deg);border:1px solid var(--line);padding:12px 17px;border-radius:10px;line-height:1.4;font-weight:650;font-size:12px;animation:bob 6s ease-in-out infinite}.floating-chip svg{width:34px;height:34px}.floating-chip small{font-size:9px;color:var(--muted);font-weight:400}.location{position:absolute;right:0;bottom:55px;background:#29233d;color:#f3f2f8;display:flex;gap:12px;align-items:center;padding:14px 20px;border-radius:40px;font-size:11px}.location small{display:block;opacity:.65;font-size:8px}.globe{font-size:32px;line-height:1}.hero-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0 24px;color:var(--muted);font-size:10px}.scroll-link{display:flex;align-items:center;gap:32px}.name-marquee{overflow:hidden;border-bottom:1px solid var(--line);padding:12px 0 26px;user-select:none}.name-marquee>div{white-space:nowrap;font-size:clamp(66px,10.2vw,170px);line-height:1.2;letter-spacing:-.065em;width:max-content;animation:marquee 35s linear infinite}.name-marquee span{color:var(--accent);font-size:.7em;margin:0 25px}.section{padding:100px 6%;max-width:1600px;margin:auto}.section-label{display:flex;align-items:center;gap:35px;font-size:9px;letter-spacing:.12em;color:var(--muted);margin-bottom:50px}.section-label>span:first-child{color:var(--accent)}.about-main{display:grid;grid-template-columns:1.4fr 1fr;gap:9%}.about-copy p{font-size:13px;line-height:1.9;margin-bottom:20px}.text-link{padding:8px 0;border-bottom:1px solid var(--text);font-size:12px;display:inline-flex;gap:36px;align-items:center}.stats{display:grid;grid-template-columns:1fr 1fr 1.3fr 1fr;gap:28px;border-top:1px solid var(--line);margin-top:65px;padding-top:34px}.stats>div{display:flex;flex-direction:column;justify-content:center}.stats strong{font-weight:450;font-size:45px;letter-spacing:-.06em;line-height:1.3}.stats strong span{font:italic 35px var(--serif);color:var(--accent)}.stats>div>span{color:var(--muted);font-size:10px}.stats .stat-note{flex-direction:row;align-items:center;gap:16px;border-left:1px solid var(--line);padding-left:25px}.stat-note p{font-size:11px}.stats .stat-note .tiny-star{font-size:45px;color:var(--accent)}.work{background:var(--surface);max-width:none}.work>*{max-width:1408px;margin-left:auto;margin-right:auto}.work .section-label{margin-bottom:50px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}.small-note{font-size:10px;color:var(--muted);line-height:1.8}.filters{display:flex;gap:10px;margin-bottom:35px}.filters button{font-size:11px;padding:9px 18px;border:1px solid var(--line);border-radius:24px;transition:background .3s}.filters button.active{color:var(--bg);background:var(--text);border-color:var(--text)}.project-row{border-top:1px solid var(--line);display:grid;grid-template-columns:60px 1fr 260px 50px;align-items:center;text-align:left;width:100%;padding:30px 8px;gap:10px;transition:padding .4s,background .4s}.project-row:last-child{border-bottom:1px solid var(--line)}.project-index{font-size:10px;color:var(--muted)}.project-name{font-size:clamp(30px,3.5vw,48px);font-weight:450;letter-spacing:-.04em}.project-name small{display:block;letter-spacing:0;font-size:10px;margin-top:2px;color:var(--muted)}.project-stack{font-size:10px;color:var(--muted)}.project-arrow{font-size:30px;justify-self:end;transition:transform .4s}.project-row:hover{padding-left:24px;padding-right:24px;background:var(--bg)}.project-row:hover .project-arrow{transform:rotate(45deg)}.github-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:48px}.project-image{height:340px;display:flex;position:relative;align-items:flex-start;justify-content:center;overflow:hidden;border-radius:3px;padding-top:52px}.quest{background:#cacbc0}.coffee{background:#d9c5ae}.marvel{background:#b6bec3}.project-image img{display:block;height:390px;width:auto;max-width:75%;object-fit:contain;object-position:top;box-shadow:0 18px 30px #0003;border-radius:18px;transform:rotate(-8deg) translateY(15px);transition:transform .6s cubic-bezier(.2,.8,.2,1)}.coffee img{transform:rotate(7deg) translateY(15px)}.project-image:hover img{transform:rotate(0) translateY(-8px) scale(1.02)}.project-tag{position:absolute;top:20px;left:20px;font-size:8px;letter-spacing:.1em;color:#29233d}.image-arrow{position:absolute;bottom:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#f3f2f8;color:#252238;font-size:20px}.card-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.card-title h3{font-size:23px;letter-spacing:-.04em;font-weight:500}.card-title a{font-size:23px;padding:0 6px}.project-card p{font-size:11px;color:var(--muted);max-width:290px;margin:8px 0}.card-stack{font-size:9px;color:var(--muted)}.github-link{display:flex;width:max-content;margin:45px auto 0}.expertise{border-bottom:1px solid var(--line)}.asterisk{font-size:100px;line-height:1;color:var(--accent);animation:rotate 24s linear infinite}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:60px}.service-icon{font-size:28px;color:var(--accent);display:block;margin-bottom:30px}.expertise-grid h3{font-size:18px;font-weight:500;letter-spacing:-.03em;margin-bottom:15px}.expertise-grid p{font-size:12px;color:var(--muted);line-height:1.9}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}.tags span{font-size:9px;padding:5px 9px;border:1px solid var(--line);border-radius:20px}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%}.timeline article{padding:0 0 28px 20px;border-left:1px solid var(--line);position:relative}.timeline article:before{content:'';position:absolute;top:6px;left:-4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.timeline .time{display:block;font-size:9px;color:var(--muted);margin-bottom:9px;letter-spacing:.04em}.timeline h3{font-size:23px;font-weight:500;letter-spacing:-.035em}.timeline article>span:not(.time){font-size:11px}.timeline p{font-size:12px;line-height:1.8;margin-top:12px;color:var(--muted)}.recommendation{display:flex;gap:25px;align-items:center;padding:30px 36px;background:var(--surface);margin-top:45px;border-radius:3px}.quote-icon{font-family:var(--serif);font-size:100px;color:var(--accent);line-height:1;align-self:start}.recommendation blockquote{font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.45;margin:0;max-width:820px;letter-spacing:-.02em}.recommendation p{font-size:9px;color:var(--muted);margin-top:12px}.round-link{width:50px;height:50px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;flex-shrink:0;margin-left:auto;font-size:21px}.contact{background:#211b36;color:#f0edf9;max-width:none;padding-bottom:28px}.contact .section-label{color:#b9b0d0}.contact-title{display:flex;align-items:center;justify-content:space-between;gap:35px}.contact h2{font-size:clamp(42px,6.6vw,94px)}.contact h2 em{color:#bbadff}.contact-circle{background:#7355ed;width:155px;height:155px;flex-shrink:0;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;color:#fff;transition:background .3s,transform .3s}.contact-circle>span:last-child{font-size:28px}.contact-circle:hover{background:#5934d4}.contact-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #4e426b;padding:40px 0 28px;margin-top:10px}.contact-bar a{font-size:clamp(15px,2.5vw,34px);letter-spacing:-.04em}.contact-bar button{font-size:10px;color:#beb4d4;padding:10px}.contact-links{display:flex;gap:35px;margin-top:30px;font-size:11px}.contact-links a{position:relative}.contact-links button{font-size:11px;margin-left:auto;padding:0}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #4e426b;margin-top:80px;padding-top:25px;font-size:9px;color:#beb4d4}dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);padding:55px;max-width:620px;width:calc(100% - 36px);max-height:85dvh;overflow:auto;border-radius:8px;box-shadow:0 40px 120px #0004}dialog::backdrop{background:#15181399;backdrop-filter:blur(8px)}dialog h2{font-size:46px;margin:24px 0}dialog p{font-size:12px;color:var(--muted);line-height:1.8}dialog h3{font-size:15px;font-weight:500;margin-top:24px}dialog ul{padding-left:18px;font-size:12px;line-height:1.8;color:var(--muted)}dialog li{margin-bottom:8px}dialog .small-note{font-size:9px;margin-top:30px}.dialog-close{position:absolute;right:16px;top:10px;font-size:32px;width:40px;height:40px}.download-row{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);font-size:24px}.download-row small{display:block;font-size:10px;color:var(--muted)}.recommendation-link{margin-top:24px}.cursor{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,30px);background:var(--text);color:var(--bg);padding:13px 25px;border-radius:30px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:99;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.js .reveal.in-view{opacity:1;transform:translateY(0)}[hidden]{display:none!important}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes bob{50%{transform:rotate(-3deg) translateY(-9px)}}
@media(pointer:fine){.cursor{display:grid;place-items:center;position:fixed;left:0;top:0;width:60px;height:60px;background:var(--accent-bright);color:white;border-radius:50%;pointer-events:none;z-index:15;opacity:0;transition:opacity .2s;transform:translate(-100px,-100px);font-size:26px}.cursor.visible{opacity:1}}
@media(min-width:1600px){.work,.contact{padding-left:max(6%,calc((100vw - 1408px)/2));padding-right:max(6%,calc((100vw - 1408px)/2))}}
@media(max-width:950px){.header{height:80px}.brand{font-size:11px;gap:10px}.header nav{gap:22px}.controls{gap:15px}.hero-grid{gap:6%;padding-top:30px}.hero h1{font-size:6.7vw}.portrait{height:350px}.floating-chip{left:-20px;padding:10px}.location{padding:12px 15px;right:-10px}.section{padding:75px 6%}.about-main{gap:6%}.stats{grid-template-columns:1fr 1fr 1.6fr}.stat-note{display:none!important}.project-row{grid-template-columns:35px 1fr 180px 35px}.project-stack{font-size:8px}.github-projects{gap:18px}.project-image{height:290px}.project-image img{height:320px;max-width:90%}.expertise-grid{gap:25px}.expertise-grid h3{font-size:16px}.contact-circle{width:125px;height:125px}.recommendation{padding:25px}.recommendation blockquote{font-size:22px}}
@media(max-width:650px){html{scroll-padding-top:85px}.header{height:72px;padding:0 6%;gap:12px}.brand-icon{font-size:27px}.brand>span:last-child{font-size:10px;max-width:90px;line-height:1.4}.header nav{display:none;position:absolute;top:72px;left:0;right:0;padding:24px 6%;background:var(--bg);border-bottom:1px solid var(--line);font-size:17px}.header nav.open{display:flex;flex-direction:column;gap:20px}.controls{gap:16px}.controls .theme{padding-left:14px;font-size:23px}#menu{display:block;font-size:20px}.hero{padding-top:25px}.hero-top{font-size:8px}.eyebrow{font-size:8px;letter-spacing:.08em}.edition{font-size:8px}.hero-grid{grid-template-columns:1fr;gap:35px;padding:30px 0}.intro-line{font-size:12px;margin-bottom:14px}.hero h1{font-size:clamp(52px,12vw,76px);line-height:1.08}.hero-description{font-size:12px;margin:20px 0;max-width:320px}.pill{padding:15px 22px;font-size:11px}.portrait-wrap{max-width:380px;width:87%;justify-self:center;padding:18px 20px 0 0}.portrait{height:355px;border-radius:150px 150px 3px 3px}.portrait-backdrop{border-radius:150px 150px 3px 3px;left:20px}.location{right:-10px;bottom:40px}.floating-chip{left:-20px;top:auto;bottom:-25px}.portrait-caption{font-size:7px}.hero-bottom{font-size:8px;align-items:center;gap:20px}.hero-bottom>span{max-width:160px}.scroll-link{gap:12px}.name-marquee{padding:15px 0 22px}.name-marquee>div{font-size:72px}.section{padding:65px 6%}.section-label{font-size:8px;margin-bottom:30px;gap:22px}h2{font-size:38px}.about-main,.experience-grid{grid-template-columns:1fr;gap:28px}.about-copy p{font-size:12px}.stats{grid-template-columns:1fr 1fr;gap:25px;margin-top:38px;padding-top:25px}.stats strong{font-size:37px}.stats>div:nth-child(3){grid-column:1/-1}.stats>div>span{font-size:9px}.section-heading{display:block;margin-bottom:30px}.section-heading>.small-note{display:block;margin-top:20px}.work .section-label{margin-bottom:30px}.filters{gap:6px;margin-bottom:25px;flex-wrap:wrap}.filters button{font-size:10px;padding:8px 12px}.project-row{padding:24px 0;grid-template-columns:25px 1fr 30px;gap:8px}.project-name{font-size:29px}.project-name small{font-size:9px;max-width:240px}.project-stack{display:none}.project-arrow{font-size:24px}.project-row:hover{padding-left:8px;padding-right:8px}.github-projects{grid-template-columns:1fr;gap:30px;margin-top:30px}.project-image{height:365px}.project-image img{height:420px;max-width:75%}.card-title h3{font-size:25px}.project-card p{font-size:12px;max-width:none}.asterisk{display:none}.expertise-grid{grid-template-columns:1fr;gap:35px;margin-top:35px}.expertise-grid article+article{border-top:1px solid var(--line);padding-top:30px}.service-icon{margin-bottom:15px}.expertise-grid h3{font-size:20px}.expertise-grid p{font-size:12px}.tags{margin-top:15px}.timeline{margin-top:12px}.recommendation{padding:24px 20px;gap:12px;flex-wrap:wrap}.quote-icon{font-size:65px}.recommendation>div{flex:1;min-width:200px}.recommendation blockquote{font-size:20px}.recommendation p{font-size:8px}.round-link{width:40px;height:40px}.contact-title{flex-direction:column;align-items:start;gap:30px}.contact h2{font-size:43px}.contact-circle{width:115px;height:115px;font-size:10px;align-self:end;margin-top:-5px}.contact-bar{margin-top:0;padding-top:25px;flex-wrap:wrap;gap:12px}.contact-bar a{font-size:17px;word-break:break-word}.contact-bar button{padding:5px 0}.contact-links{gap:20px;flex-wrap:wrap}.contact-links button{margin-left:0;width:100%;text-align:left;margin-top:10px}footer{margin-top:45px;font-size:8px;flex-wrap:wrap}footer>span:nth-child(2){display:none}dialog{padding:40px 25px}dialog h2{font-size:38px}dialog .eyebrow{max-width:90%;font-size:8px}.cursor{display:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.cursor{display:none}}
