:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#151515;background:#f3f1e8;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;min-height:100%;scroll-padding-top:80px}body{min-width:320px;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}::selection{color:#111;background:#dfff00}:focus-visible{outline-offset:4px;outline:2px solid #b2c900}.portfolio{--bg:#f3f1e8;--surface:#e3e0d6;--text:#151515;--muted:#74736c;--line:#d1cfc5;--accent:#b2c900;--accent-contrast:#151515;background:var(--bg);min-height:100vh;color:var(--text);transition:background .25s,color .25s}.portfolio.dark{--bg:#111;--surface:#20211b;--text:#f3f1e8;--muted:#aaa99f;--line:#393a33;--accent:#dfff00;--accent-contrast:#111}.portfolio a{color:inherit;text-decoration:none}.topbar{z-index:100;background:var(--bg);justify-content:space-between;align-items:center;min-height:66px;padding:0 5.2%;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.5px;font-size:15px;font-weight:850}.topnav{align-items:center;gap:clamp(18px,3vw,42px);display:flex}.topnav>a{letter-spacing:1.2px;color:var(--muted);font-family:Courier New,monospace;font-size:10px;transition:color .18s;position:relative}.topnav>a:hover{color:var(--text)}.topnav>a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .22s;position:absolute;bottom:-5px;left:0;transform:scaleX(0)}.topnav>a:hover:after,.topnav>a:focus-visible:after{transform:scaleX(1)}.theme-toggle{border:1px solid var(--line);width:39px;height:39px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:21px;transition:background .18s,transform .18s;display:grid}.theme-toggle:hover{background:var(--surface);transform:rotate(-10deg)}.hero{isolation:isolate;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;pointer-events:none;opacity:.15;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 95%);mask-image:linear-gradient(#000,#0000 95%)}.hero-meta{color:var(--muted);letter-spacing:1.3px;justify-content:space-between;align-items:center;gap:15px;font:10px/1.5 Courier New,monospace;display:flex}.availability{align-items:center;gap:8px;display:inline-flex}.status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.hero-heading h1{flex-direction:column;align-items:flex-start;margin:0;font-weight:950;display:flex}.hero-heading h1>span{display:block}.accent{color:var(--accent)}.hero-tags{flex-wrap:wrap;gap:8px;display:flex}.hero-tags span{border:1px solid var(--line);color:var(--muted);letter-spacing:1.2px;border-radius:25px;padding:9px 15px;font:11px Courier New,monospace}.hero-content{display:grid}.photo-placeholder{border:1px solid var(--line);background:radial-gradient(ellipse at 50% 55%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%), var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:relative;overflow:hidden}.photo-placeholder:before,.photo-placeholder:after{content:"";border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);pointer-events:none;border-radius:50%;width:155px;height:155px;position:absolute}.photo-placeholder:after{opacity:.55;border-style:dashed;width:195px;height:195px}.photo-placeholder>*{z-index:1}.photo-corner{border-color:var(--accent);border-style:solid;width:14px;height:14px;position:absolute}.corner-tl{border-width:1px 0 0 1px;top:10px;left:10px}.corner-tr{border-width:1px 1px 0 0;top:10px;right:10px}.corner-bl{border-width:0 0 1px 1px;bottom:10px;left:10px}.corner-br{border-width:0 1px 1px 0;bottom:10px;right:10px}.hero-footer,.section-kicker{letter-spacing:1.3px;color:var(--muted);font:10px/1.6 Courier New,monospace}.hero-footer{justify-content:space-between;gap:15px;margin-top:25px;padding-top:15px;font-size:9px;display:flex}.portfolio .hero{padding:24px 5.2% 14px}.portfolio .hero-meta{margin-bottom:20px}.portfolio .hero-heading h1{letter-spacing:-.075em;font-size:clamp(64px,5.2vw,92px);line-height:.86}.portfolio .hero-tags{margin-top:18px}.portfolio .hero-content{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(30px,4vw,76px);margin-top:20px}.portfolio .photo-placeholder{aspect-ratio:2.1;min-height:0}.portfolio .photo-placeholder .hero-photo{z-index:1;object-fit:cover;object-position:center;transform-origin:50%;width:100%;height:100%;transition:transform .5s;display:block;position:relative;transform:scale(1.35)}.portfolio .photo-placeholder:hover .hero-photo{transform:scale(1.45)}.portfolio .hero-intro{min-width:0;padding:10px 0}.portfolio .hero-greeting{color:var(--text);margin:0 0 20px;font-size:clamp(24px,2.2vw,36px);line-height:1.2}.portfolio .hero-name-block{margin:0 0 18px}.portfolio .hero-name-intro{color:var(--muted);margin:0 0 4px;font-size:clamp(17px,1.5vw,24px);line-height:1.3}.portfolio .hero-name{color:var(--text);letter-spacing:-.075em;white-space:nowrap;margin:0;font-size:clamp(54px,5.9vw,112px);font-weight:950;line-height:.94}.portfolio .hero-tagline{color:var(--text);margin:0;font-size:clamp(16px,1.35vw,21px);line-height:1.25}.portfolio .hero-location{color:var(--muted);letter-spacing:1.3px;margin:22px 0 0;font:10px/1.6 Courier New,monospace}.portfolio .hero-cta{color:var(--text);border:none;align-items:center;gap:10px;margin-top:22px;padding:10px 0;font-size:14px;line-height:1.2;text-decoration:none;transition:gap .2s;display:inline-flex;position:relative}.portfolio .hero-cta:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .22s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.portfolio .hero-cta:hover:after,.portfolio .hero-cta:focus-visible:after{transform:scaleX(1)}.portfolio .hero-cta-arrow{color:var(--accent);font-size:18px;line-height:1;transition:transform .22s;display:inline-block}.portfolio .hero-cta:hover{gap:15px}.portfolio .hero-cta:hover .hero-cta-arrow{transform:translate(2px,3px)}.about-section{padding:90px 7.2% 75px}.about-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(40px,7vw,110px);display:grid}.about-copy .section-kicker{margin-bottom:28px}.about-copy h2{letter-spacing:-.055em;margin:0 0 28px;font-size:clamp(48px,5.2vw,76px);line-height:.95}.about-description{max-width:490px;color:var(--text);font-size:clamp(17px,1.3vw,20px);line-height:1.75}.about-secondary{max-width:490px;color:var(--muted);margin-top:24px;font-size:16px;line-height:1.8}.skills-panel{flex-direction:column;display:flex}.skill-group{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr);align-items:start;gap:22px;padding:23px 0;display:grid}.skill-group:first-child{padding-top:0}.skill-group h3{color:var(--muted);letter-spacing:-.04em;overflow-wrap:normal;margin:0;font-size:clamp(19px,2vw,30px);line-height:1.1}.skill-tags span{color:var(--text);align-items:center;font-size:12px;line-height:1.3;transition:border-color .2s,background .2s;display:inline-flex}.skill-list{flex-wrap:wrap;align-items:center;gap:20px 28px;display:flex}.skill-item{color:var(--text);white-space:nowrap;align-items:center;gap:12px;font-size:14px;display:inline-flex}.skill-list .skill-item>span{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.skill-icon{flex-shrink:0;width:36px;height:36px;transition:transform .18s;display:block}.skill-item:hover .skill-icon{transform:translateY(-2px)}.work-section{padding:75px 7.2% 90px}.projects-intro{margin-bottom:44px}.projects-intro h2{letter-spacing:-.06em;max-width:820px;margin:20px 0;font-size:clamp(40px,5.4vw,76px);line-height:.98}.projects-intro>p:last-child{color:var(--muted);font-size:17px;line-height:1.7}.featured-project{margin-bottom:58px}.project-feature{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(28px,4vw,58px);display:grid}.project-feature h3{letter-spacing:-.045em;margin:14px 0;font-size:clamp(29px,3vw,40px);line-height:1.08}.project-feature-copy{min-width:0;padding:18px 0}.project-feature-visual{aspect-ratio:1.5;background:var(--surface);width:100%;min-height:0;position:relative;overflow:hidden}.project-number,.project-status,.project-links a{letter-spacing:.1em;font-size:11px}.project-number,.project-status{text-transform:uppercase;font-family:monospace}.project-number{color:var(--muted)}.project-description{color:var(--muted);font-size:15px;line-height:1.7}.project-tags{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.project-tags span{border:1px solid var(--line);border-radius:30px;padding:7px 12px;font-size:12px}.project-evaluation{border-top:1px solid var(--line);margin:26px 0 22px;padding-top:18px}.evaluation-heading{color:var(--muted);letter-spacing:1.3px;margin:0 0 18px;font:11px Courier New,monospace}.evaluation-group+.evaluation-group{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.evaluation-density{color:var(--text);letter-spacing:.8px;margin:0 0 12px;font:11px Courier New,monospace}.evaluation-density span{color:var(--muted)}.evaluation-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.evaluation-metric{flex-direction:column;gap:4px;display:flex}.evaluation-metric strong{color:var(--text);letter-spacing:-.05em;font-size:clamp(25px,2.5vw,34px);font-weight:800;line-height:1}.evaluation-metric span{color:var(--muted);letter-spacing:1px;font:10px Courier New,monospace}.evaluation-note{color:var(--muted);margin:18px 0 0;font:10px/1.6 Courier New,monospace}.project-status{color:var(--muted);align-items:center;gap:9px;margin:20px 0;display:flex}.project-status .status-dot{flex:0 0 7px}.project-links{flex-wrap:wrap;gap:20px;margin-top:16px;display:flex}.project-links a{box-sizing:border-box;text-align:center;border:1px solid var(--line);text-transform:uppercase;background:0 0;justify-content:center;align-items:center;height:48px;padding:0 26px;font-weight:700;line-height:1;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.project-links a:first-child{border-radius:0}.project-links a[href*=streamlit\.app]{background:var(--text);color:var(--bg);border-color:var(--text);border-radius:50px}.project-links a:first-child:hover{border-color:var(--accent);color:var(--accent)}.project-links a[href*=streamlit\.app]:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.project-links a{color:var(--text);border-bottom:1px solid var(--line);letter-spacing:.08em;padding-bottom:5px;font-size:10px;text-decoration:none}.project-feature-visual img,.project-card-visual img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.project-feature-visual:hover img,.project-card:hover .project-card-visual img{transform:scale(1.035)}.project-visual-crowd img{object-position:center 45%}.project-visual-vaniseva img{object-position:center 50%}.project-visual-callmedex img{object-position:center 42%}.project-visual-organ img{object-position:center 45%}.project-list-heading{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;padding:24px 0;display:flex}.project-list-heading p:last-child{color:var(--muted);font-size:14px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:24px;display:grid}.project-card{border-bottom:1px solid var(--line);flex-direction:column;min-width:0;padding-bottom:28px;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1),border-color .22s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-3px)}.project-card-visual{aspect-ratio:1.8;background:var(--surface);width:100%;margin-bottom:18px;position:relative;overflow:hidden}.project-card-content{padding-top:12px}.project-card-content h3{letter-spacing:-.035em;margin:12px 0;font-size:clamp(21px,1.8vw,27px);line-height:1.12}.project-card .project-description{min-height:3.4em}.project-card-content .project-description{font-size:14px;line-height:1.65}.project-card .project-tags{gap:6px}.project-card .project-tags span{padding:6px 9px;font-size:11px}.experience-section{padding:80px 7.2%}.experience-section .section-kicker{margin:0 0 28px}.experience-layout{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:start;gap:clamp(32px,8vw,120px);margin-top:36px;display:grid}.experience-heading h2{letter-spacing:-.045em;max-width:650px;margin:0;font-size:clamp(32px,3.6vw,50px);line-height:1.08}.experience-date{color:var(--muted);letter-spacing:.12em;margin-top:24px;font-size:12px;line-height:1.8}.experience-details{min-width:0;padding-top:8px}.experience-details h3{margin:0;font-size:19px;line-height:1.4}.experience-divider{background:var(--line);width:100%;height:1px;margin:18px 0}.experience-details p{max-width:480px;color:var(--muted);margin:0;font-size:16px;line-height:1.8}.social-links a{place-items:center}.social-links svg{stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.contact-layout{grid-template-columns:.85fr 1.15fr;align-items:center;gap:7%;padding:100px 5.2% 90px;display:grid}.contact-left{min-width:0}.contact-right{min-width:0;padding-top:8px}.contact-heading{letter-spacing:-.055em;color:var(--text);margin:0 0 22px;font-size:clamp(32px,4vw,56px);font-weight:850;line-height:1}.contact-description{max-width:440px;color:var(--muted);margin:0 0 24px;font-size:17px;line-height:1.7}.contact-layout .social-links{gap:14px}.contact-layout .social-links a{border:1px solid var(--line);width:58px;height:58px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .2s;display:inline-flex}.contact-layout .social-links a:hover{background:var(--surface);transform:translateY(-3px)}.contact-layout .social-links svg,.contact-email-icon svg{fill:currentColor;width:23px;height:23px}.contact-layout .social-links a[aria-label=Email] svg,.contact-email-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.contact-rule{background:var(--line);width:100%;height:1px;margin-bottom:48px}.contact-email-icon{color:var(--muted);margin-bottom:48px}.contact-label{color:var(--muted);letter-spacing:.18em;margin:0 0 18px;font-size:13px}.contact-email-address{letter-spacing:-.045em;overflow-wrap:normal;word-break:normal;white-space:nowrap;flex-direction:column;width:100%;max-width:100%;font-size:clamp(24px,2.65vw,42px);font-weight:850;line-height:1;display:flex}.contact-email-address .email-domain{color:var(--muted)}.copy-email{color:var(--muted);font:inherit;letter-spacing:.06em;cursor:pointer;background:0 0;border:0;margin-top:30px;padding:0;font-size:14px}.copy-email:hover{color:var(--text)}footer#contact.contact-layout .contact-left{flex-direction:column!important;align-items:flex-start!important;display:flex!important}footer#contact.contact-layout .social-links{justify-content:flex-start!important;align-self:flex-start!important;align-items:center!important;width:100%!important;margin:24px 0 0!important;padding:0!important;display:flex!important;position:static!important;transform:none!important}@keyframes hero-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-heading{animation:.7s ease-out both hero-reveal}.hero-tags{animation:.7s ease-out .1s both hero-reveal}.hero-content{animation:.7s ease-out .18s both hero-reveal}[data-reveal]{opacity:0;will-change:opacity, transform;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}[data-reveal=fade]{transform:translateY(18px)}[data-reveal=up]{transform:translateY(28px)}[data-reveal=left]{transform:translate(-32px)}[data-reveal=right]{transform:translate(32px)}[data-reveal=scale]{transform:scale(.96)}[data-reveal=pop]{transform:scale(.94)translateY(18px)}[data-reveal].is-visible{opacity:1;transform:translate(0,0)scale(1)}.projects-intro h2{transition-delay:.1s}.projects-intro>p:last-child{transition-delay:.18s}.project-feature-visual[data-reveal]{transition-delay:.12s}.project-card:first-child{transition-delay:80ms}.project-card:nth-child(2){transition-delay:.18s}.project-card:nth-child(3){transition-delay:.28s}.project-card.is-visible:hover{transform:translateY(-3px)}@media (width>=1500px){.portfolio .hero{padding-inline:max(5.2%,50% - 775px)}}@media (width<=1100px){.portfolio .hero-name{font-size:clamp(36px,4.6vw,64px)}}@media (width<=900px){.project-feature{grid-template-columns:1fr 1fr;gap:24px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.about-section{padding:64px 6%}.about-layout{grid-template-columns:1fr;gap:48px}.skill-group{grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:16px}}@media (width<=760px){.topbar{min-height:62px;padding-inline:5%}.topnav{gap:14px}.topnav>a{letter-spacing:.7px;font-size:9px}.theme-toggle{width:33px;height:33px;font-size:18px}.hero-footer{flex-wrap:wrap}.work-section{padding:65px 5%}.experience-section{padding:60px 6%}.experience-layout{grid-template-columns:1fr;gap:28px}.project-feature-visual{grid-row:1}.project-card .project-description{min-height:0}.project-list-heading{flex-direction:column}.portfolio .hero{padding:25px 5% 18px}.portfolio .hero-meta{margin-bottom:25px}.portfolio .hero-heading h1{letter-spacing:-.065em;font-size:clamp(48px,10.2vw,78px)}.portfolio .hero-content{grid-template-columns:1fr;gap:25px;margin-top:30px}.portfolio .photo-placeholder{aspect-ratio:1.55;min-height:210px}.portfolio .hero-name{white-space:normal;overflow-wrap:anywhere;font-size:clamp(42px,10vw,68px)}.projects-intro{margin-bottom:30px}.project-feature-visual{aspect-ratio:1.25}.contact-layout{grid-template-columns:1fr;gap:60px;padding:70px 6% 60px}.contact-right{padding-top:0}.contact-rule,.contact-email-icon{margin-bottom:30px}.contact-email-address{font-size:clamp(28px,7vw,42px)}.contact-heading{font-size:clamp(42px,11vw,64px)}}@media (width>=601px) and (width<=760px){.project-grid{gap:32px}.project-list-heading{align-items:flex-start;gap:4px}}@media (width<=600px){.project-feature{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr;gap:32px}.project-list-heading{flex-direction:column;align-items:flex-start;gap:8px}.projects-intro{margin-bottom:36px}.projects-intro h2{font-size:clamp(40px,10vw,58px)}.project-feature-visual{aspect-ratio:16/10}.skill-list{gap:13px 16px}.skill-item{font-size:13px}.skill-icon{width:26px;height:26px}}@media (width<=480px){.skill-group{grid-template-columns:1fr;gap:12px}}@media (width<=370px){.wordmark{font-size:13px}.hero-meta{font-size:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;will-change:auto;transition:none;transform:none}.project-feature-visual img,.project-card-visual img,.project-card,.portfolio .photo-placeholder .hero-photo,.portfolio .hero-cta,.portfolio .hero-cta-arrow,.skill-icon{transition:none}.project-card:hover,.project-card:hover .project-card-visual img,.skill-item:hover .skill-icon{transform:none}}
