:root{--color-bg:#f5f2ed;--color-surface:#fffdf9;--color-surface-strong:#f0ebe4;--color-border:#d8cec1;--color-text:#2a2520;--color-text-muted:#685f55;--color-heading:#1b1713;--color-accent:#6f5d4d;--color-accent-strong:#564738;--color-accent-soft:#ece4d8;--color-success:#2f6a44;--font-sans:"Manrope","Segoe UI","Helvetica Neue",Arial,sans-serif;--font-display:"Cormorant Garamond",Georgia,serif;--text-xs:0.8rem;--text-sm:0.925rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.35rem;--text-2xl:1.8rem;--text-3xl:2.6rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:5.5rem;--radius-sm:0.45rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-pill:999px;--shadow-soft:0 8px 24px #1f150d14;--shadow-card:0 18px 44px #1f150d1a;--duration-fast:160ms;--duration-base:220ms;--duration-slow:360ms;--max-content:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(180deg,#f8f4ee,#f4efe8 45%,#efe8de);color:var(--color-text);font-family:var(--font-sans);line-height:1.6;margin:0}img{display:block;max-width:100%}a{color:inherit}main{grid-gap:0;display:grid;gap:0}h1,h2,h3,h4,h5,h6{color:var(--color-heading);line-height:1.2;margin:0}p{margin:0}.section-title{font-size:var(--text-xl);font-weight:700;letter-spacing:.12em;margin-bottom:var(--space-5);text-transform:uppercase}.section-subtitle{color:var(--color-text-muted);margin-bottom:var(--space-5)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.app-section{border-top:1px solid #d8cec1bf;padding:var(--space-8) var(--space-4)}.app-section:nth-of-type(odd){background:#fffdf98a}.app-section:nth-of-type(2n){background:#f6f0e899}.section-container{margin:0 auto;max-width:var(--max-content)}.surface{background:#fffdf9e0;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.pill{background:var(--color-accent-soft);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:600;padding:.4rem .9rem}@media (max-width:1024px){.app-section{padding:var(--space-7) var(--space-4)}}@media (max-width:768px){.app-section{padding:var(--space-7) var(--space-4)}.section-title{font-size:var(--text-xl)}}@keyframes riseIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#root,.App{min-height:100vh}.App{color:var(--color-text)}.App main{padding-top:.25rem}.to-top-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);bottom:1.25rem;box-shadow:var(--shadow-soft);color:var(--color-accent-strong);cursor:pointer;display:grid;height:2.75rem;place-items:center;position:fixed;right:1.25rem;transition:transform var(--duration-base) ease,background var(--duration-base) ease;width:2.75rem;z-index:40}.to-top-btn:hover{background:var(--color-accent-soft);transform:translateY(-2px)}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f3ece2eb;border-bottom:1px solid #d8cec1bf;position:-webkit-sticky;position:sticky;top:0;transition:background var(--duration-base) ease,box-shadow var(--duration-base) ease;z-index:50}.navbar.scrolled{background:#f5f2edf2;box-shadow:0 8px 24px #1f150d14}.navbar-container{gap:var(--space-4);justify-content:space-between;min-height:66px}.logo,.navbar-container{align-items:center;display:flex}.logo{color:var(--color-heading);font-size:var(--text-sm);font-weight:700;gap:var(--space-3);letter-spacing:.06em;text-transform:uppercase}.logo img{height:30px;width:30px}.nav-links{align-items:center;display:flex;gap:var(--space-3);list-style:none;margin:0;padding:0}.nav-links a{color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.12em;text-decoration:none;text-transform:uppercase;transition:color var(--duration-fast) ease,transform var(--duration-fast) ease}.nav-links a:hover{color:var(--color-heading);transform:translateY(-1px)}.nav-links a:focus-visible{border-radius:var(--radius-pill);outline:2px solid #5647384d;outline-offset:3px}.nav-links .nav-cta{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);padding:.45rem .95rem}.nav-links .nav-cta:hover{background:var(--color-accent-soft)}.availability-strip{background:#fcf7efe6;border-top:1px solid #d8cec1bf;color:var(--color-accent-strong);font-size:.76rem;letter-spacing:.06em;padding:.52rem var(--space-4);text-align:center;text-transform:uppercase}@media (max-width:768px){.navbar-container{flex-direction:column;padding:var(--space-3) var(--space-4)}.nav-links,.navbar-container{gap:var(--space-3);justify-content:center}.nav-links{flex-wrap:wrap}.availability-strip{font-size:.68rem;line-height:1.5}}.hero{padding-top:calc(var(--space-7) + 1rem)}.hero-container{grid-gap:var(--space-6);align-items:center;animation:riseIn var(--duration-slow) ease both;display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)}.hero-image{justify-self:end;order:2}.hero-text{order:1}.profile-picture{aspect-ratio:1;border:1px solid var(--color-border);border-radius:24px;box-shadow:var(--shadow-card);object-fit:cover;width:280px}.hero-kicker{color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase}.hero h1,.hero-kicker{margin-bottom:var(--space-3)}.hero h1{font-family:var(--font-display);font-size:clamp(2.2rem,3.2vw,3.05rem);letter-spacing:.01em;line-height:1.1}.hero h2{color:var(--color-accent-strong);font-size:var(--text-xl);font-weight:600;line-height:1.35;margin-bottom:var(--space-3)}.hero h3{color:var(--color-text-muted);font-size:var(--text-md);line-height:1.6;max-width:42ch}.hero h3,.hero-buttons{margin-bottom:var(--space-5)}.download-cv{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);display:inline-flex;font-weight:700;gap:var(--space-2);padding:.72rem 1.15rem;text-decoration:none;transition:transform var(--duration-fast) ease,background var(--duration-fast) ease}.download-cv:hover{background:var(--color-accent-soft);transform:translateY(-1px)}.download-cv:focus-visible,.social-icon:focus-visible{outline:2px solid #5647384d;outline-offset:2px}.hero-social{display:flex;gap:var(--space-3)}.social-icon{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);display:grid;height:2.55rem;place-items:center;transition:transform var(--duration-fast) ease,color var(--duration-fast) ease;width:2.55rem}.social-icon:hover{color:var(--color-accent-strong);transform:translateY(-1px)}@media (max-width:900px){.hero-container{gap:var(--space-6);grid-template-columns:1fr;text-align:center}.hero-image,.hero-text{order:0}.hero-social{justify-content:center}.hero h3{margin-left:auto;margin-right:auto}.profile-picture{width:260px}}.about-container{animation:riseIn var(--duration-slow) ease both}.about-content{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.about-text{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-5)}.welcome{color:var(--color-accent-strong);font-size:var(--text-sm);letter-spacing:.14em;margin-bottom:var(--space-3);text-transform:uppercase}.description{color:var(--color-text-muted);font-size:var(--text-md);line-height:1.7;max-width:64ch}.description,.focus-chips{margin-bottom:var(--space-5)}.focus-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{background:var(--color-accent-soft);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:600;padding:.45rem .9rem;transition:background var(--duration-fast) ease,transform var(--duration-fast) ease}.chip:hover{background:#e6dbcd;transform:translateY(-1px)}.about-details{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.detail-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-4)}.detail-icon{font-size:var(--text-lg)}.detail-text{font-size:var(--text-sm);line-height:1.45}.about-stats{grid-gap:var(--space-3);align-content:start;display:grid;gap:var(--space-3);grid-template-columns:1fr}.stat-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5)}.stat-value{color:var(--color-accent-strong);font-size:var(--text-2xl);font-weight:700}.stat-label{color:var(--color-text-muted);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase}.about-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.btn{border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:700;padding:.65rem 1.15rem;text-decoration:none;transition:transform var(--duration-fast) ease,background var(--duration-fast) ease}.btn.primary{background:var(--color-accent-strong);border-color:#0000;color:#fefaf5}.btn.outline{background:var(--color-surface);color:var(--color-accent-strong)}.btn:hover{transform:translateY(-1px)}.btn.primary:hover{background:#4d3f33}.btn.outline:hover{background:var(--color-accent-soft)}.btn:focus-visible{outline:2px solid #5647384d;outline-offset:2px}@media (max-width:900px){.about-content{grid-template-columns:1fr}}@media (max-width:640px){.about-details{grid-template-columns:1fr}}.skills-container{animation:riseIn var(--duration-slow) ease both}.skills-content{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr))}.skill-category{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);min-height:100%;padding:var(--space-5)}.category-title{color:var(--color-accent-strong);font-size:var(--text-md);letter-spacing:.08em;margin-bottom:var(--space-4);text-transform:uppercase}.skill-list{grid-gap:var(--space-3);display:grid;gap:var(--space-3)}.skill-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.skill-name{color:var(--color-heading);font-size:var(--text-sm)}.skill-percentage{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700}.skill-bar{background:#e9e0d4;height:7px;overflow:hidden;width:100%}.skill-bar,.skill-progress{border-radius:var(--radius-pill)}.skill-progress{background:linear-gradient(90deg,#7a6654,#5c4b3d);height:100%}@media (max-width:900px){.skills-content{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.skills-content{grid-template-columns:1fr}}.projects-container{animation:riseIn var(--duration-slow) ease both}.projects-content{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}.project-card{grid-gap:var(--space-5);align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);cursor:pointer;display:grid;gap:var(--space-5);grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr);min-height:100%;padding:var(--space-5);transition:transform var(--duration-base) ease,box-shadow var(--duration-base) ease}.project-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.project-card.active{border-color:#bfad99}.project-main{display:flex;flex-direction:column}.project-media{align-items:center;display:flex}.project-title{font-size:var(--text-lg);margin-bottom:var(--space-3);transition:color var(--duration-fast) ease}.project-card:hover .project-title{color:var(--color-accent-strong)}.project-description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.55;margin-bottom:var(--space-3)}.project-impact{grid-gap:.35rem;display:grid;gap:.35rem;margin:0 0 var(--space-4);padding-left:1.15rem}.project-impact li{color:#5f574e;font-size:.84rem;line-height:1.5}.tech-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.tech-badge{background:var(--color-accent-soft);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);font-size:.75rem;font-weight:600;letter-spacing:.01em;padding:.3rem .6rem}.project-actions{margin-top:auto}.project-link,.request-access-btn{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-accent-strong);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:700;gap:var(--space-2);padding:.58rem .95rem;text-decoration:none;transition:background var(--duration-fast) ease,transform var(--duration-fast) ease}.project-link:hover,.request-access-btn:hover{background:var(--color-accent-soft);transform:translateY(-1px)}.mailto-btn:focus-visible,.modal-close:focus-visible,.project-link:focus-visible,.request-access-btn:focus-visible{outline:2px solid #56473859;outline-offset:2px}.request-access-btn{font-family:inherit}.modal-overlay{background:#0f0b0766;border:0;inset:0;position:fixed;z-index:120}.request-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--color-text);left:50%;padding:var(--space-6);position:fixed;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 2rem));z-index:121}.request-modal h3,.request-modal p{margin-bottom:var(--space-3)}.modal-close,.request-modal p{color:var(--color-text-muted)}.modal-close{background:#0000;border:0;cursor:pointer;font-size:1.5rem;position:absolute;right:.8rem;top:.65rem;transition:color var(--duration-fast) ease}.modal-close:hover{color:var(--color-heading)}.mailto-btn{background:var(--color-accent-strong);border-radius:var(--radius-pill);color:#fefaf5;display:inline-flex;font-weight:700;padding:.58rem .95rem;text-decoration:none;transition:filter var(--duration-fast) ease}.mailto-btn:hover{filter:brightness(.95)}.modal-note{font-size:var(--text-xs);margin-bottom:0}@media (max-width:1024px){.project-card{gap:var(--space-4);grid-template-columns:1fr}}.slideshow{margin-bottom:var(--space-4);overflow:hidden;position:relative}.slide-image,.slideshow{border-radius:var(--radius-md)}.slide-image{border:1px solid var(--color-border);height:250px;object-fit:cover;width:100%}.slide-btn{background:#110d0a6b;border:1px solid #ffffff73;border-radius:var(--radius-pill);color:#fff;cursor:pointer;display:grid;height:2rem;place-items:center;position:absolute;top:50%;transform:translateY(-50%);width:2rem;z-index:2}.prev-btn{left:.6rem}.next-btn{right:.6rem}.slide-indicators{bottom:.7rem;display:flex;gap:.35rem;left:50%;position:absolute;transform:translateX(-50%)}.slide-dot{background:#ffffff73;border-radius:var(--radius-pill);cursor:pointer;height:.5rem;width:.5rem}.slide-dot.active{background:#fff}@media (max-width:640px){.slide-image{height:200px}}.contact-container{animation:riseIn var(--duration-slow) ease both}.contact-content{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-info{order:2}.contact-form{order:1}.contact-text p{color:var(--color-text-muted);margin-bottom:var(--space-4);max-width:58ch}.contact-methods{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.contact-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);min-height:132px;padding:var(--space-4);text-decoration:none;transition:transform var(--duration-fast) ease,box-shadow var(--duration-fast) ease,border-color var(--duration-fast) ease}.contact-card:hover{border-color:#bea88f;box-shadow:var(--shadow-soft);transform:translateY(-2px)}.contact-card:focus-visible{outline:2px solid #56473840;outline-offset:2px}.contact-icon{background:var(--color-accent-soft);border-radius:var(--radius-pill);color:var(--color-accent-strong);display:grid;font-size:.95rem;height:2rem;place-items:center;width:2rem}.contact-card h3{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase}.contact-value{color:var(--color-text-muted);font-size:var(--text-sm);word-break:break-word}.contact-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.contact-form .form-row{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.form-group{grid-gap:var(--space-2);display:grid;gap:var(--space-2);margin-bottom:var(--space-3)}.form-group label{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:700}.form-group input,.form-group textarea{background:#fffcf7;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-sans);padding:.7rem .8rem;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.form-group input::placeholder,.form-group textarea::placeholder{color:#8f8274}.form-group input:focus,.form-group textarea:focus{border-color:#bda892;box-shadow:0 0 0 3px #5647382e;outline:0}.submit-button{background:var(--color-accent-strong);border:0;border-radius:var(--radius-pill);color:#fefaf5;cursor:pointer;font-weight:700;padding:.75rem 1rem;transition:transform var(--duration-fast) ease,filter var(--duration-fast) ease;width:100%}.submit-button:hover{filter:brightness(.96);transform:translateY(-1px)}.submit-button:focus-visible{outline:2px solid #56473859;outline-offset:2px}.form-status{color:var(--color-success);font-size:var(--text-sm);margin-top:var(--space-3)}@media (max-width:980px){.contact-content{grid-template-columns:1fr}.contact-form,.contact-info{order:0}}@media (max-width:640px){.contact-form .form-row,.contact-methods{grid-template-columns:1fr}}.footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-8);padding:var(--space-5) var(--space-4) var(--space-6);text-align:center}.footer p{margin:0}
/*# sourceMappingURL=main.2dbccb0f.css.map*/