@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f7f6f2;--ink:#242522;--muted:#64655e;--line:#dcddd5;--purple:#6550d8;--soft:#eae5fb;--font:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--purple);outline-offset:5px}::selection{background:#d8cdfa}.section{width:min(1200px,calc(100% - 96px));margin:auto}.header{width:min(1320px,calc(100% - 64px));margin:auto;height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--font);font-size:36px;font-weight:800;letter-spacing:-4px;line-height:1}.wordmark span{display:inline-block;color:var(--purple);font-size:26px;margin-left:6px;vertical-align:top}.header nav{display:flex;align-items:center;gap:38px;font-size:14px}.header nav a:hover,.text-link:hover,.footer a:hover{color:var(--purple)}.nav-contact{padding:11px 19px;border:1px solid var(--ink);border-radius:30px}.nav-contact span{margin-left:28px}.menu-toggle{display:none}.hero{padding-top:37px}.hero-top,.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.65px;font-weight:700;display:flex;align-items:center;gap:9px;margin:0 0 20px}.hero-top .eyebrow{margin:0;text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:50%;background:#427257;box-shadow:0 0 0 4px #42725712;flex-shrink:0}.location{font-size:11px;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:72px;align-items:center;padding:55px 0 58px}.intro{font-size:19px;margin:0 0 17px}h1,h2,h3{font-family:var(--font);line-height:1.1;letter-spacing:-.055em}h1{font-size:clamp(44px,5.55vw,78px);font-weight:600;margin:0;line-height:1.1}h1>span{color:var(--purple)}.hero-description{max-width:460px;font-size:15px;color:var(--muted);line-height:1.85;margin:26px 0}.actions{display:flex;align-items:center;gap:27px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:14px 22px;border-radius:30px;border:0;font-size:13px;font-weight:600;transition:transform .2s,background .2s}.primary{background:var(--ink);color:#fff}.button:hover{background:var(--purple);transform:translateY(-2px)}.text-link{font-size:13px;font-weight:600;display:inline-block}.portrait-card{position:relative;background:#e9e5dc;border-radius:120px 120px 20px 20px;padding:25px 22px 18px;transform:rotate(2deg);max-width:380px;justify-self:end;width:100%;border:1px solid #dedacf}.portrait-label{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1.2px;padding:14px 7px 15px}.portrait-card img{display:block;width:100%;height:310px;object-fit:cover;object-position:50% 36%;border-radius:100px 100px 9px 9px;filter:saturate(.7)}.portrait-caption{display:flex;justify-content:space-between;align-items:center;padding:18px 6px 0;font-size:13px;line-height:1.5}.code-mark{font-size:23px;color:#6b655c}.portrait-star{position:absolute;top:22px;right:-21px;color:var(--purple);font-size:105px;line-height:1;transform:rotate(12deg)}.hero-bottom{border-top:1px solid var(--line);padding:23px 0;font-size:10px;letter-spacing:1.2px}.hero-bottom a{letter-spacing:0;color:var(--muted)}.stack-strip{display:flex;align-items:center;justify-content:center;gap:38px;border-block:1px solid var(--line);padding:24px 30px;background:#eeede7}.stack-strip>span:first-child{font-size:10px;color:var(--muted);margin-right:20px}.stack-strip strong{font-family:var(--font);font-size:17px;font-weight:600}.asterisk{color:#938aa8}.work-section{padding-block:95px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:36px}h2{font-weight:500;font-size:clamp(35px,3.8vw,51px);margin:0}h2>span{color:#777a70}.section-heading>p{font-size:13px;color:var(--muted);margin:0 0 4px}.filters{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:transparent;border-radius:22px;padding:9px 17px;font-size:12px}.filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.filters span{opacity:.6;margin-left:10px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px 30px}.project[hidden]{display:none}.project-art{height:320px;position:relative;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:30px;transition:transform .3s}.project:hover .project-art{transform:translateY(-4px)}.art-label{position:absolute;top:25px;left:28px;font-size:8px;letter-spacing:1.5px;font-weight:700}.art-foot{position:absolute;bottom:22px;left:28px;right:28px;display:flex;justify-content:space-between;font-size:7px;letter-spacing:1.1px}.elofix-art{background:#deded2;color:#29392f}.product-logo{font-size:79px;font-family:var(--font);font-weight:800;letter-spacing:-7px;line-height:1;text-align:center}.product-logo>span{color:#6e7b52}.product-logo i{display:inline-block;font-size:25px;border:1px solid #86937c;border-radius:50%;height:45px;width:45px;line-height:43px;letter-spacing:0;font-style:normal;vertical-align:middle;margin-left:15px}.flow-pills{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:24px;font-size:10px}.flow-pills span{padding:7px 13px;border:1px solid #a9b19b;border-radius:20px}.flow-pills b{font-weight:400}.medi-art{background:#e6e1f5;text-align:center;color:#63518e}.medi-symbol{font-size:100px;line-height:1}.medi-name{font-family:var(--font);font-size:40px;letter-spacing:-2px;font-weight:600}.medi-name span{display:block;font-size:10px;letter-spacing:0;font-weight:400;margin-top:4px}.screenshot-art{padding:64px 35px 0;justify-content:flex-end}.dashboard-art{background:#e6dfd3}.chatbot-art{background:#dce7ec}.screenshot-art img{width:100%;height:auto;max-height:245px;object-fit:cover;object-position:top;border:6px solid #fff;border-bottom:0;border-radius:8px 8px 0 0;box-shadow:0 12px 40px #0002}.project-info{padding:25px 2px 0}.project-info .eyebrow{font-size:8px;margin:0 0 12px;color:var(--muted)}h3{font-size:24px;font-weight:600;margin:0 0 14px;letter-spacing:-.04em}.project h3{display:flex;justify-content:space-between}.project h3>span{font-size:12px;color:#828578;font-weight:400}.project-info>p{font-size:13px;line-height:1.8;color:var(--muted);max-width:470px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:19px 0 22px}.tags span{font-size:9px;border:1px solid var(--line);border-radius:5px;padding:4px 8px}summary{display:flex;justify-content:space-between;list-style:none;font-size:12px;font-weight:600;padding:13px 0;border-top:1px solid var(--line)}summary::-webkit-details-marker{display:none}summary span{font-size:18px;transition:transform .2s}details[open]>summary span{transform:rotate(45deg)}.case-study{padding:8px 18px 20px;background:#eeede6;border-radius:9px;font-size:13px}.case-study h4{margin-bottom:4px}.case-study p{color:var(--muted)}.project-links{display:flex;gap:25px}.about-section{background:#eaece4;border-block:1px solid #dce0d4}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-block:80px}.about-grid>div>p:not(.eyebrow){font-size:14px;color:#60665a}.about-grid .about-lead{font-size:21px!important;line-height:1.55;color:var(--ink)!important;margin-top:0}.about-stamp{display:flex;align-items:center;font-family:var(--font);font-size:65px;letter-spacing:-6px;color:#7d8b70;margin-top:35px}.about-stamp span{font-size:90px;margin-left:20px;line-height:1}.about-values{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.about-values span{font-size:10px;border:1px solid #c8cebd;padding:5px 10px;border-radius:20px}#experience{padding-block:90px}.timeline article{display:grid;grid-template-columns:1fr 2fr;gap:50px;padding:33px 0;border-top:1px solid var(--line)}.timeline-date{font-size:10px;color:var(--muted);letter-spacing:1px;display:flex;justify-content:space-between;align-items:flex-start;padding-top:5px}.timeline-date span{font-size:14px;color:#a2a398}.timeline h3{font-size:22px;margin-bottom:7px}.timeline p{font-size:13px;color:var(--muted);margin:12px 0 0;max-width:660px}.timeline .company{color:var(--purple);font-size:12px;margin:0}.earlier{font-size:13px;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 0}.toolkit{padding-bottom:95px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.skills-grid article{border:1px solid var(--line);border-radius:12px;padding:27px}.skills-grid article>span{font-size:8px;letter-spacing:1px;color:var(--muted)}.skills-grid h3{font-size:20px;margin-top:33px}.skills-grid p{font-size:12px;color:var(--muted);line-height:1.9;margin:0}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-top:50px;padding-top:35px;border-top:1px solid var(--line)}.education-grid h3{font-size:20px}.education-grid p:not(.eyebrow){font-size:12px;color:var(--muted)}.courses{padding:0;list-style:none;font-size:12px;margin:0}.courses li{padding:9px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.badge-links{display:flex;gap:20px;font-size:10px;margin-top:15px;color:var(--purple)}.contact-section{background:#e6e0f3}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;padding-block:80px}.contact-grid h2{font-size:clamp(40px,4.6vw,65px)}.contact-grid h2 span{color:var(--purple)}.contact-grid p{font-size:13px;color:#646070}.email-link{display:inline-block;font-size:20px;border-bottom:1px solid #9c8ebe;margin:15px 0}.contact-links{display:flex;gap:20px;font-size:11px;align-items:center}.contact-links button{border:0;background:transparent;padding:0;text-decoration:underline;font-size:11px}.contact-grid form{padding:30px;background:#f9f7fc;border:1px solid #d4cce3;border-radius:14px;align-self:start}.contact-grid form h3{font-size:21px;margin-bottom:22px}label{display:block;font-size:11px;margin:17px 0 6px}input:not([type=hidden]),textarea{width:100%;padding:12px 14px;background:#fff;border:1px solid #ded9e8;border-radius:7px;font-size:13px;color:var(--ink)}textarea{resize:vertical}.contact-grid form .button{width:100%;margin-top:19px}.status-text{font-size:11px!important;margin-bottom:0;min-height:18px}button:disabled{opacity:.6;cursor:wait}.honeypot{display:none}.footer{display:flex;align-items:center;justify-content:space-between;padding-block:30px;gap:25px}.footer p,.footer>div{font-size:11px;color:var(--muted)}.footer>div{display:flex;gap:25px}.skip{position:absolute;left:20px;top:-80px;background:var(--ink);color:white;padding:12px;z-index:5}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:900px){.hero-copy{animation:arrive .7s ease-out}.portrait-card{animation:portrait-arrive .9s ease-out}}@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-arrive{from{opacity:0;transform:rotate(0) translateY(12px)}to{opacity:1;transform:rotate(2deg) translateY(0)}}
@media(max-width:1000px){.hero-grid{gap:35px}.portrait-card img{height:280px}.stack-strip{gap:22px}.stack-strip>span:first-child{margin:0}.contact-grid{gap:45px}.about-grid{gap:45px}.project-art{height:280px}.flow-pills{gap:5px}.flow-pills span{padding:6px 8px}}
@media(max-width:700px){.section{width:calc(100% - 40px)}.header{width:calc(100% - 40px);height:78px;position:relative;z-index:3}.wordmark{font-size:32px}.menu-toggle{display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:25px;background:transparent;font-size:12px;padding:8px 14px}.header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--bg);padding:20px;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 25px #0001;flex-direction:column;align-items:stretch;gap:8px}.header nav.open{display:flex}.header nav a{padding:10px 15px}.hero{padding-top:25px}.hero-top{align-items:flex-start;flex-direction:column;gap:12px}.hero-top .eyebrow{font-size:8px}.location{font-size:10px}.hero-grid{grid-template-columns:1fr;padding:35px 0;gap:40px}h1{font-size:clamp(40px,9.5vw,66px)}.intro{font-size:17px}.hero-description{font-size:14px;max-width:490px}.actions{gap:23px}.button{padding:13px 19px;gap:22px;font-size:12px}.portrait-card{max-width:350px;justify-self:center;width:88%;transform:rotate(1deg)}.portrait-card img{height:285px}.portrait-star{font-size:85px;right:-14px}.hero-bottom{font-size:7px;letter-spacing:.5px}.hero-bottom a{font-size:9px}.stack-strip{gap:15px;flex-wrap:wrap;padding:20px}.stack-strip>span:first-child{width:100%;text-align:center}.stack-strip strong{font-size:12px}.stack-strip .asterisk{font-size:12px}.work-section,#experience{padding-block:60px}.section-heading{display:block;margin-bottom:27px}h2{font-size:36px}.section-heading>p{margin-top:20px;font-size:12px}.filters button{font-size:10px;padding:8px 12px}.project-grid{grid-template-columns:1fr;gap:36px}.project-art{height:290px}.art-label{font-size:7px}.project-info{padding-top:21px}.project h3{font-size:24px}.about-grid{grid-template-columns:1fr;gap:30px;padding-block:55px}.about-stamp{display:none}.about-grid .about-lead{font-size:19px!important}.timeline article{grid-template-columns:1fr;gap:14px;padding-block:25px}.timeline-date{font-size:9px}.timeline-date span{font-size:10px}.timeline h3{font-size:21px}.skills-grid{grid-template-columns:1fr}.skills-grid article{padding:23px}.skills-grid h3{margin-top:18px}.education-grid{grid-template-columns:1fr;gap:28px;margin-top:32px}.toolkit{padding-bottom:55px}.contact-grid{grid-template-columns:1fr;gap:35px;padding-block:55px}.contact-grid h2{font-size:48px}.contact-grid form{padding:23px}.email-link{font-size:18px}.footer{flex-wrap:wrap;gap:15px}.footer p{font-size:10px}.footer>div{width:100%;justify-content:space-between}.eyebrow{font-size:9px}.art-foot{font-size:6px}.product-logo{font-size:72px}.badge-links{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.supporting-skills{font-size:12px;color:var(--muted);margin-top:20px}
/* Motion and depth: progressive enhancement, with an explicit pause control. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--purple);transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}
.motion-toggle{background:transparent;border:1px solid var(--line);border-radius:24px;padding:8px 12px;font-size:11px;white-space:nowrap}.motion-toggle span{color:var(--purple);padding-left:5px}.motion-toggle[aria-pressed=true]{background:var(--soft)}
.hero-grid{position:relative;isolation:isolate;perspective:1200px}.hero-copy,.portrait-card{z-index:1}.hero-orbit{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;border:1px solid #6550d817;box-shadow:inset 0 0 45px #6550d805;animation:orbit-drift 12s ease-in-out infinite alternate}.orbit-one{width:330px;height:330px;right:-12px;top:4%;transform:rotateX(58deg) rotateZ(-20deg)}.orbit-two{width:180px;height:180px;right:260px;bottom:9%;border-color:#ada68624;animation-delay:-6s}.hero-orbit::after{content:'';position:absolute;top:15%;right:9%;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#eee8ff,#8976d0 65%,#5a4399);box-shadow:0 6px 15px #6550d825}
.portrait-card{--rx:0deg;--ry:0deg;transform-style:preserve-3d;animation:portrait-float 7s ease-in-out infinite;box-shadow:15px 24px 45px -30px #3a33554d;will-change:transform}.portrait-star{animation:star-turn 22s linear infinite}.portrait-caption{transform:translateZ(12px)}
.project-art{--rx:0deg;--ry:0deg;transform:perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry));box-shadow:0 14px 32px -25px #352c6040;transition:transform .35s ease,box-shadow .35s ease}.project:hover .project-art{transform:perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-5px);box-shadow:0 24px 42px -25px #352c6055}.real-screen{padding:0;background:#ebe9f0;justify-content:flex-start}.real-screen img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.screen-label{position:absolute;bottom:12px;left:12px;background:#fffef2ed;backdrop-filter:blur(8px);padding:6px 10px;border:1px solid #ffffff;border-radius:6px;font-size:9px;color:#292b35}.case-image{margin:18px 0}.case-image img{display:block;width:100%;height:auto;border-radius:7px;border:1px solid var(--line)}.case-image figcaption{font-size:10px;margin-top:7px;color:var(--muted)}
.learning-art{background:#e4e8dc;color:#354534;text-align:center}.learning-art>strong{font-family:var(--font);font-size:34px;line-height:1.15;letter-spacing:-1.5px;font-weight:600}.learning-symbol{font-size:45px;line-height:1.2;color:#7d926a;transform:rotate(-10deg)}
.reveal-ready{opacity:0;translate:0 22px;transition:opacity .7s ease,translate .7s cubic-bezier(.2,.8,.2,1)}.reveal-ready.is-visible{opacity:1;translate:0 0}.header nav a[aria-current=location]{color:var(--purple)}.button>span{transition:transform .25s}.button:hover>span{transform:translate(3px,-3px)}
@keyframes portrait-float{0%,100%{transform:translateY(0) rotate(2deg) rotateX(var(--rx)) rotateY(var(--ry))}50%{transform:translateY(-10px) rotate(.5deg) rotateX(var(--rx)) rotateY(var(--ry))}}
@keyframes star-turn{to{transform:rotate(372deg)}}@keyframes orbit-drift{from{translate:0 0;rotate:-10deg}to{translate:-12px 18px;rotate:12deg}}
body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}body.motion-paused .reveal-ready{opacity:1;translate:0 0}body.motion-paused .portrait-card{animation:none;transform:rotate(2deg)}body.motion-paused .project-art{transform:none!important}
@media(max-width:700px){.hero-orbit{display:none}.portrait-card{animation-duration:8s}.header nav .motion-toggle{align-self:flex-start;margin:5px 15px}.real-screen{height:260px}.learning-art>strong{font-size:32px}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;translate:0 0}.portrait-card{animation:none;transform:rotate(2deg)}.project:hover .project-art{transform:none}.hero-orbit{display:none}}
@media(max-width:1000px){.hero-orbit{display:none}}
