@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@500;600;700;800&display=swap";.hero-monogram{border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);text-align:center;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 12%,var(--panel)),var(--panel));box-shadow:0 0 70px color-mix(in srgb,var(--accent) 10%,transparent);border-radius:50%;place-content:center;display:grid;position:absolute;inset:32%}.hero-monogram strong{font:700 2.5rem Manrope}.hero-monogram small{color:var(--accent);letter-spacing:.14em;white-space:nowrap;font-size:.45rem}.contact-card{border:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(230px,350px) 1fr;align-items:center;gap:70px;padding:44px;display:grid;box-shadow:0 30px 80px #0003}.contact-photo{aspect-ratio:4/5;background:var(--bg);position:relative;overflow:hidden}.contact-photo:before{content:"";z-index:2;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);pointer-events:none;position:absolute;inset:13px}.contact-photo:after{content:"";background:linear-gradient(180deg,transparent 65%,color-mix(in srgb,var(--bg) 35%,transparent));pointer-events:none;position:absolute;inset:0}.contact-photo img{object-fit:cover;object-position:center 22%;filter:saturate(.88)contrast(1.03);width:100%;height:100%;display:block}.contact-copy>span{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;margin-bottom:20px;font-size:.72rem;display:block}.contact-copy h2{letter-spacing:-.065em;margin:0;font-family:Manrope,sans-serif;font-size:clamp(2.7rem,5vw,4.8rem);line-height:1.04}.contact-copy h2 em{color:var(--accent);font-family:Georgia,serif;font-weight:400}.contact-copy>p{max-width:570px;color:var(--muted);margin:28px 0;line-height:1.7}.contact-actions{flex-wrap:wrap;gap:12px;display:flex}.contact-actions a{border-radius:5px;align-items:center;gap:9px;padding:14px 17px;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}.contact-email{background:var(--accent);color:var(--bg)}.contact-linkedin{border:1px solid var(--line);color:var(--ink)}.contact-linkedin:hover{border-color:var(--accent);color:var(--accent)}@media (width<=800px){.contact-card{grid-template-columns:1fr;gap:35px;padding:28px}.contact-photo{width:min(100%,340px);margin:auto}}@media (width<=600px){.contact-card{padding:18px}.contact-actions{flex-direction:column}.contact-actions a{justify-content:center}}.portrait{border:2px solid color-mix(in srgb,var(--blue) 45%,transparent)!important;background:var(--panel)!important;box-shadow:0 0 0 8px color-mix(in srgb,var(--bg) 75%,transparent),0 0 80px color-mix(in srgb,var(--accent) 16%,transparent)!important;display:block!important;inset:23%!important;overflow:hidden!important}.portrait:after{content:"";background:linear-gradient(145deg,transparent 55%,color-mix(in srgb,var(--accent) 20%,transparent));pointer-events:none;position:absolute;inset:0}.portrait img{object-fit:cover;object-position:center 22%;filter:saturate(.9)contrast(1.04);width:100%;height:100%;transition:transform .6s;display:block}.identity:hover .portrait img{transform:scale(1.045)}.portrait-label{z-index:3;text-align:center;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:175px;padding:9px 13px;position:absolute;bottom:50px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #0005}.portrait-label strong,.portrait-label small{display:block}.portrait-label strong{font:600 .76rem Manrope}.portrait-label small{color:var(--accent);letter-spacing:.14em;white-space:nowrap;margin-top:3px;font-size:.44rem}.all-projects{border:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;gap:24px;margin-top:32px;padding:26px 30px;display:flex}.all-projects p{color:var(--muted);margin:0}.all-projects a{background:var(--accent);color:var(--bg);white-space:nowrap;border-radius:5px;align-items:center;gap:9px;padding:13px 17px;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}@media (width<=600px){.all-projects{flex-direction:column;align-items:flex-start}.all-projects a{white-space:normal}}:root{color:#f2f6f4;font-synthesis:none;background:#070a0f;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}.app{--bg:#070a0f;--panel:#0d131a;--ink:#f2f6f4;--muted:#919d99;--line:#202831;--accent:#6ee7d2;--blue:#8aa8ff;background:var(--bg);min-height:100vh;color:var(--ink);transition:all .35s}.app.light{--bg:#f3f6f4;--panel:#fff;--ink:#101714;--muted:#64716c;--line:#d9e0dc;--accent:#087b6a;--blue:#5068c9}.shell{width:min(1180px,100% - 48px);margin:auto}.sky{pointer-events:none;background:radial-gradient(circle at 78% 28%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 28%);height:100vh;position:absolute;inset:0 0 auto;overflow:hidden}.sky:before,.sky:after{content:"";background-image:radial-gradient(circle,#fff 1px,transparent 1px),radial-gradient(circle,var(--accent) 1px,transparent 1px);opacity:.22;background-position:0 0,45px 80px;background-size:120px 120px,175px 175px;animation:75s linear infinite stars;position:absolute;inset:0}.sky:after{background-size:260px 260px;animation-duration:100s;animation-direction:reverse}.sky i{opacity:0;background:linear-gradient(90deg,#0000,#fff);width:140px;height:1px;animation:9s linear infinite meteor;position:absolute;transform:rotate(-38deg)}.sky i:first-child{animation-delay:1s;top:2%;left:65%}.sky i:nth-child(2){animation-delay:5s;top:10%;left:90%}.sky i:nth-child(3){animation-delay:11s;top:-5%;left:45%}.sky b{border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);border-radius:50%;width:500px;height:500px;position:absolute;top:20%;right:3%}.sky b:last-child{border-style:dashed;width:380px;height:380px;animation:30s linear infinite spin;top:26%;right:6%}header{z-index:50;background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:80px;display:flex}.logo{color:var(--ink);letter-spacing:-.06em;font:800 1.35rem Manrope;text-decoration:none}.logo span{color:var(--accent)}.links{gap:31px;display:flex}.links a,footer a{color:var(--muted);font-size:.88rem;text-decoration:none;transition:all .2s}.links a:hover,footer a:hover{color:var(--accent)}.nav-actions{align-items:center;gap:10px;display:flex}.icon-btn,.menu-btn{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:50%;place-items:center;width:39px;height:39px;display:grid}.talk{border:1px solid var(--line);color:var(--ink);border-radius:50px;align-items:center;gap:10px;padding:9px 15px;font-size:.87rem;text-decoration:none;display:flex}.talk:hover{border-color:var(--accent)}.menu-btn{display:none}.hero{grid-template-columns:1.35fr .65fr;align-items:center;gap:55px;min-height:calc(100vh - 80px);padding:65px 0 100px;display:grid;position:relative}.hero-copy{z-index:3;animation:.85s both enter;position:relative}.available{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:11px;font-size:.74rem;display:inline-flex}.available span{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 12%,transparent);border-radius:50%;animation:2s infinite pulse}.hello{color:var(--accent);margin:34px 0 5px}.hero h1,.section-title h2,.contact h2{letter-spacing:-.065em;font-family:Manrope,sans-serif}.hero h1{margin:0;font-size:clamp(4.5rem,7.1vw,7.5rem);font-weight:700;line-height:.87}.hero h1 em,.section-title em,.contact em{color:var(--accent);font-family:Georgia,serif;font-weight:400}.hero h2{letter-spacing:-.045em;max-width:750px;margin:29px 0 0;font:600 clamp(1.6rem,2.7vw,2.8rem)/1.16 Manrope}.intro{max-width:650px;color:var(--muted);margin:23px 0;font-size:1.02rem;line-height:1.75}.actions{gap:12px;margin-top:30px;display:flex}.actions a{border-radius:5px;justify-content:space-between;align-items:center;gap:30px;min-width:180px;padding:14px 18px;font-size:.88rem;font-weight:600;text-decoration:none;transition:all .25s;display:flex}.primary{background:var(--accent);color:var(--bg)}.secondary{border:1px solid var(--line);color:var(--ink)}.actions a:hover{transform:translateY(-3px)}.social{gap:22px;margin-top:33px;display:flex}.social a,.social span{color:var(--muted);align-items:center;gap:7px;font-size:.78rem;text-decoration:none;display:flex}.social a:hover{color:var(--accent)}.identity{aspect-ratio:1;width:350px;margin-left:auto;position:relative}.ring{border:1px solid color-mix(in srgb,var(--accent) 23%,transparent);border-radius:50%;position:absolute}.r1{animation:22s linear infinite spin;inset:0}.r2{border-style:dashed;animation:16s linear infinite reverse spin;inset:17%}.ring span{background:var(--accent);color:var(--bg);border-radius:50%;place-items:center;font:700 .8rem Manrope;display:grid;position:absolute}.r1 span{width:54px;height:54px;top:20%;right:-4px}.r2 span{background:var(--blue);width:48px;height:48px;bottom:16%;left:-8px}.portrait{border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);text-align:center;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 12%,var(--panel)),var(--panel));box-shadow:0 0 70px color-mix(in srgb,var(--accent) 10%,transparent);border-radius:50%;place-content:center;display:grid;position:absolute;inset:32%}.portrait strong{font:700 2.5rem Manrope}.portrait small{color:var(--accent);letter-spacing:.14em;white-space:nowrap;font-size:.45rem}.status-card{border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:11px;padding:12px 16px;display:flex;position:absolute;bottom:22px;right:-25px;box-shadow:0 18px 45px #0004}.status-card i{background:var(--accent);border-radius:50%;width:8px;height:8px}.status-card small,.status-card strong{display:block}.status-card small{color:var(--muted);font-size:.65rem}.status-card strong{font-size:.75rem}.scroll{color:var(--muted);text-transform:uppercase;letter-spacing:.13em;align-items:center;gap:15px;font-size:.65rem;display:flex;position:absolute;bottom:28px}.scroll span{background:linear-gradient(90deg,var(--accent),transparent);width:65px;height:1px;display:block}.section{padding-top:125px;padding-bottom:125px;position:relative}.section-title>span,.contact>span{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;margin-bottom:20px;font-size:.72rem;display:block}.section-title h2,.contact h2{margin:0;font-size:clamp(2.7rem,5vw,4.8rem);line-height:1.04}.about{grid-template-columns:1fr 1fr;gap:100px;display:grid}.about-copy{color:var(--muted);padding-top:55px;line-height:1.75}.about-copy .large{color:var(--ink);font-size:1.27rem;line-height:1.55}.numbers{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:12px;margin-top:42px;padding-top:27px;display:grid}.numbers strong{color:var(--accent);font:600 2.1rem Manrope;display:block}.numbers span{font-size:.72rem}.work,.journey{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-list{gap:25px;margin-top:60px;display:grid}.project{border:1px solid var(--line);background:var(--bg);grid-template-columns:1.1fr .9fr;min-height:450px;display:grid;overflow:hidden}.project:nth-child(2n) .project-art{order:2}.project-art{background:radial-gradient(circle at 50% 30%,#203137,var(--panel) 60%);place-items:center;min-height:380px;display:grid;position:relative}.project.blue .project-art{background:radial-gradient(circle at 50% 30%,#25304d,var(--panel) 60%)}.project.violet .project-art{background:radial-gradient(circle at 50% 30%,#34284a,var(--panel) 60%)}.project-art>b{color:#ffffff09;font:700 4.5rem Manrope;position:absolute;top:15px;right:22px}.mock{color:#15201c;background:#f1f4f2;border-radius:9px;width:75%;padding:32px;transition:all .4s;transform:perspective(800px)rotateY(-4deg);box-shadow:0 35px 80px #0008}.project:hover .mock{transform:perspective(800px)rotateY(0)translateY(-6px)}.mock span{text-transform:uppercase;letter-spacing:.1em;color:#63716b;font-size:.65rem}.mock strong{margin:8px 0 25px;font:700 2.3rem Manrope;display:block}.mock-lines{gap:8px;display:grid}.mock-lines i{background:#dbe1de;width:100%;height:7px;display:block}.mock-lines i:nth-child(2){background:var(--accent);width:75%}.mock-lines i:nth-child(3){width:46%}.mock small{color:#65716c;margin-top:25px;display:block}.project-info{flex-direction:column;justify-content:center;padding:48px;display:flex}.project-info>span{color:var(--accent);text-transform:uppercase;letter-spacing:.13em;font-size:.7rem}.project-info h3{margin:8px 0;font:700 2.5rem Manrope}.project-info h4{margin:0 0 12px;font:500 1.07rem/1.5 Manrope}.project-info p{color:var(--muted);margin:0}.project-info ul{flex-wrap:wrap;gap:7px;margin:24px 0;padding:0;list-style:none;display:flex}.project-info li{border:1px solid var(--line);color:var(--muted);border-radius:50px;padding:5px 10px;font-size:.7rem}.project-info>a{color:var(--ink);border-bottom:1px solid var(--accent);align-self:flex-start;align-items:center;gap:8px;padding-bottom:3px;font-size:.83rem;text-decoration:none;display:flex}.skill-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);margin-top:55px;display:grid}.skill-grid>div{border-bottom:1px solid var(--line);grid-template-columns:45px 145px 1fr;align-items:center;padding:30px 12px;display:grid}.skill-grid>div:nth-child(odd){border-right:1px solid var(--line)}.skill-grid span{color:var(--accent);font-size:.72rem}.skill-grid h3{font:600 1rem Manrope}.skill-grid p{color:var(--muted);font-size:.9rem}.timeline{margin-top:55px}.timeline>div{grid-template-columns:110px 40px 1fr;min-height:140px;display:grid}.timeline time{color:var(--muted);padding-top:5px;font-size:.75rem}.timeline>div>span{border-left:1px solid var(--line);position:relative}.timeline>div>span:before{content:"";background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 10%,transparent);border-radius:50%;position:absolute;top:5px;left:-5px}.timeline article{padding-bottom:35px}.timeline small{color:var(--accent)}.timeline h3{margin:7px 0;font:600 1.4rem Manrope}.timeline p{color:var(--muted);margin:0}.contact{text-align:center}.contact h2{margin:auto}.contact>p{max-width:570px;color:var(--muted);margin:28px auto;line-height:1.7}.contact>a{color:var(--bg);background:var(--accent);border-radius:5px;align-items:center;gap:18px;padding:16px 20px;font-weight:600;text-decoration:none;display:inline-flex}footer{border-top:1px solid var(--line);padding:40px 0}footer .shell{justify-content:space-between;align-items:center;display:flex}footer p{color:var(--muted);font-size:.75rem}footer .shell>div{gap:20px;display:flex}.reveal{opacity:0;transition:all .75s;transform:translateY(25px)}.reveal.visible{opacity:1;transform:none}@keyframes enter{0%{opacity:0;transform:translateY(25px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes stars{to{transform:translateY(80px)}}@keyframes pulse{50%{box-shadow:0 0 0 11px #0000}}@keyframes meteor{0%,78%{opacity:0;transform:translate(0)rotate(-38deg)}80%{opacity:1}to{opacity:0;transform:translate(-550px,500px)rotate(-38deg)}}@media (width<=900px){.links{background:var(--panel);border:1px solid var(--line);flex-direction:column;padding:25px;display:none;position:absolute;top:80px;left:24px;right:24px}.links.open{display:flex}.menu-btn{display:grid}.talk{display:none}.hero{grid-template-columns:1fr}.identity{opacity:.28;position:absolute;right:-130px}.about{grid-template-columns:1fr;gap:10px}.project,.project:nth-child(2n){grid-template-columns:1fr}.project:nth-child(2n) .project-art{order:0}.skill-grid{grid-template-columns:1fr}.skill-grid>div:nth-child(odd){border-right:0}}@media (width<=600px){.shell{width:min(100% - 30px,1180px)}.hero{padding-top:75px}.hero h1{font-size:clamp(4rem,20vw,5.4rem)}.actions{flex-direction:column}.social{flex-wrap:wrap}.identity{display:none}.section{padding-top:85px;padding-bottom:85px}.project-info{padding:32px 25px}.project-art{min-height:310px}.mock{width:84%;padding:25px}.skill-grid>div{grid-template-columns:35px 95px 1fr}.numbers{gap:8px}.numbers strong{font-size:1.7rem}.timeline>div{grid-template-columns:80px 28px 1fr}footer .shell{flex-direction:column;align-items:flex-start;gap:13px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}.soft-title{color:var(--muted)}.work-title{grid-template-columns:1fr minmax(280px,430px);align-items:end;display:grid}.work-title>span{grid-column:1/-1}.work-title>p{color:var(--muted);margin:0 0 7px;line-height:1.65}.project{--project-tone:var(--accent)}.project.blue{--project-tone:#7e9fff}.project.violet{--project-tone:#b087f7}.project.amber{--project-tone:#efbb63}.project.rose{--project-tone:#f08aa9}.project.cyan{--project-tone:#59d6e5}.project.amber .project-art{background:radial-gradient(circle at 50% 30%,#44351f,var(--panel) 60%)}.project.rose .project-art{background:radial-gradient(circle at 50% 30%,#432836,var(--panel) 60%)}.project.cyan .project-art{background:radial-gradient(circle at 50% 30%,#1d3b42,var(--panel) 60%)}.product-ui{z-index:2;aspect-ratio:1.48;color:#17201c;background:#edf3f0;border:5px solid #161d22;border-radius:11px;width:78%;transition:all .5s;position:relative;overflow:hidden;transform:perspective(900px)rotateY(-5deg);box-shadow:0 35px 80px #0009}.project:hover .product-ui{transform:perspective(900px)rotateY(0)translateY(-7px)}.ui-top{color:#6f7d77;background:#dce5e1;align-items:center;gap:5px;height:30px;padding:0 12px;display:flex}.ui-top>i{background:#aab7b1;border-radius:50%;width:6px;height:6px}.ui-top>i:first-child{background:var(--project-tone)}.ui-top span{margin-left:auto;font:700 .48rem Manrope}.ui-body{height:calc(100% - 30px);display:flex}.ui-body aside{background:#16221e;width:55px;padding:18px 14px}.ui-body aside i{background:#ffffff30;border-radius:4px;height:6px;margin-bottom:20px;display:block}.ui-body aside i:first-child{background:var(--project-tone)}.ui-main{flex:1;padding:22px}.ui-main small{color:#718079;text-transform:uppercase;letter-spacing:.12em;font-size:.45rem;display:block}.ui-main>strong{margin:5px 0 17px;font:700 1rem Manrope;display:block}.ui-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ui-stats i{background:#dce5e1;border-radius:6px;height:48px}.ui-stats i:first-child{background:color-mix(in srgb,var(--project-tone) 34%,#dce5e1)}.ui-chart{background:#fff;border-radius:6px;align-items:end;gap:8px;height:83px;margin-top:12px;padding:11px 12px;display:flex}.ui-chart b{background:var(--project-tone);opacity:.78;border-radius:3px 3px 0 0;flex:1}.ui-chart b:first-child{height:30%}.ui-chart b:nth-child(2){height:48%}.ui-chart b:nth-child(3){height:39%}.ui-chart b:nth-child(4){height:72%}.ui-chart b:nth-child(5){height:58%}.ui-chart b:nth-child(6){height:88%}.ui-rows{gap:6px;margin-top:13px;display:grid}.ui-rows i{background:#d8e2dd;border-radius:4px;height:6px}.ui-rows i:nth-child(2){width:82%}.ui-rows i:nth-child(3){width:63%}.product-ui.finance,.product-ui.mobile{aspect-ratio:.59;border-radius:25px;width:49%;transform:rotate(-4deg)}.product-ui.mobile{transform:rotate(4deg)}.project:hover .product-ui.finance,.project:hover .product-ui.mobile{transform:rotate(0)translateY(-7px)}.product-ui.finance .ui-top,.product-ui.mobile .ui-top{background:#17201c;border-radius:8px;height:6px;margin:8px 25% 0}.product-ui.finance .ui-top>*,.product-ui.mobile .ui-top>*{display:none}.product-ui.finance .ui-body,.product-ui.mobile .ui-body{height:calc(100% - 14px)}.product-ui.finance aside,.product-ui.mobile aside{display:none}.product-ui.finance .ui-main,.product-ui.mobile .ui-main{padding:27px 16px 14px}.product-ui.finance .ui-stats,.product-ui.mobile .ui-stats{grid-template-columns:1fr}.product-ui.finance .ui-stats i,.product-ui.mobile .ui-stats i{height:62px}.product-ui.finance .ui-stats i:nth-child(n+2),.product-ui.mobile .ui-stats i:nth-child(n+2){display:none}.product-ui.finance .ui-chart,.product-ui.mobile .ui-chart{height:92px}.product-ui.route{background:#dce5df}.product-ui.route .ui-chart{background:linear-gradient(25deg,transparent 45%,var(--project-tone) 46% 48%,transparent 49%),linear-gradient(-18deg,transparent 46%,#fff 47% 56%,transparent 57%)}.product-ui.route .ui-chart b{border:2px solid #fff;border-radius:50%;flex:none;width:10px;height:10px!important}.product-ui.inventory .ui-chart{background:repeating-linear-gradient(0deg,#e0e7e4 0 7px,#0000 7px 18px)}@media (width<=900px){.work-title{display:block}.work-title>p{margin-top:23px}.product-ui{width:min(82%,560px)}}@media (width<=600px){.product-ui{width:88%}.product-ui.finance,.product-ui.mobile{width:58%}.ui-main{padding:16px}.ui-stats i{height:38px}.ui-chart{height:70px}}
