.site-header{z-index:1000;-webkit-backdrop-filter:blur(8px);background-color:#ebf8f605;border-bottom:3px solid #02302924;width:100%;max-width:100%;transition:box-shadow .25s,border-color .25s;position:sticky;top:0;left:0;right:0}.site-header--scrolled{border-color:#02302999;box-shadow:0 4px 14px #24655c2e}.header-inner{box-sizing:border-box;justify-content:space-between;align-items:center;gap:1.5rem;max-width:1200px;height:70px;margin:0 auto;padding:0 1.5rem;display:flex}.header-brand{color:#24655cb3;letter-spacing:.5px;align-items:center;gap:.65rem;font-size:1.4rem;font-weight:700;text-decoration:none;transition:color .8s;display:inline-flex}.header-brand:hover{color:#023029b3}.header-brand:hover .header-brand-tag{color:#023029;border-color:#c94d544d}.header-brand:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #c94d54}.header-brand .header-brand-tag{color:#c94d54;letter-spacing:.2px;background-color:#c94d541a;border:1px solid #c94d5440;border-radius:6px;padding:.2rem .55rem;font-family:SF Mono,Fira Code,JetBrains Mono,Menlo,Consolas,monospace;font-size:.85rem;font-weight:600;transition:color .3s,border-color .3s}.header-toggle{cursor:pointer;background-color:#0000;border:1px solid #0230292e;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:10px;transition:border-color .8s,background-color .8s;display:none}.header-toggle:hover{background-color:#c94d5424;border-color:#02302966}.header-toggle:focus-visible{outline-offset:2px;outline:2px solid #c94d54}.header-toggle-bar{background-color:#023029;border-radius:2px;width:20px;height:2px;transition:transform .25s,opacity .2s;display:block}.header-toggle--open .header-toggle-bar:first-child{transform:translateY(7px)rotate(45deg)}.header-toggle--open .header-toggle-bar:nth-child(2){opacity:0}.header-toggle--open .header-toggle-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.header-nav{align-items:stretch;gap:1.75rem;height:100%;margin-left:auto;display:flex}.header-nav-link{color:#24655c;border-bottom:2px solid #0000;align-items:center;padding:0;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.header-nav-link:hover{color:#c94d54b3;border-bottom-color:#02302966}.header-nav-link:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #c94d54}.header-lang-toggle{letter-spacing:.5px;color:#24655c;cursor:pointer;background-color:#0000;border:1px solid #0230292e;border-radius:999px;flex-shrink:0;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:background-color .25s,border-color .25s,color .25s;display:inline-flex}.header-lang-toggle:hover{color:#023029;background-color:#c94d541a;border-color:#c94d54}.header-lang-toggle:active{background-color:#c94d542e}.header-lang-toggle:focus-visible{outline-offset:2px;outline:2px solid #c94d54}.header-lang-toggle__code{transition:color .25s}.header-lang-toggle__code--active{color:#023029}.header-lang-toggle__separator{color:#02302959}@media (width<=860px){.header-inner{padding:0 1.25rem}.header-toggle{display:inline-flex}.header-nav{visibility:hidden;opacity:0;z-index:999;background-color:#ebf8f6;border-bottom:1px solid #0230291f;flex-direction:column;align-items:stretch;gap:0;height:auto;padding:.5rem 1.25rem 1rem;transition:opacity .25s,transform .25s,visibility .25s;position:absolute;top:70px;left:0;right:0;transform:translateY(-8px);box-shadow:0 12px 24px #0230291a}.header-nav--open{visibility:visible;opacity:1;transform:translateY(0)}.header-nav-link{border-bottom:1px solid #0230290f;padding:.85rem .25rem;font-size:1rem}.header-nav-link:last-child{border-bottom:none}.header-lang-toggle{padding:.3rem .6rem;font-size:.75rem}}.banner{box-sizing:border-box;background:linear-gradient(135deg, #ebf8f666 0%, #f6eced66 100%), var(--banner-bg) center/cover no-repeat;border-bottom:1px solid #0230290f;align-items:center;width:100%;max-width:100%;min-height:calc(100dvh - 70px);padding:2.5rem 1.5rem;display:flex;overflow:hidden}.banner-content{grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem;width:100%;max-width:1200px;margin:0 auto;display:grid}.banner-content--single{grid-template-columns:1fr;max-width:780px}.banner-text{flex-direction:column;align-items:flex-start;gap:1.25rem;display:flex}.banner-badges{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.banner-badge{letter-spacing:.4px;text-transform:uppercase;border:1px solid #0000;border-radius:9px;align-items:center;gap:.45rem;padding:.35rem .85rem;font-size:.78rem;font-weight:600;display:inline-flex}.banner-badge--role{color:#023029;background-color:#ffffffbf;border-color:#c94d5480}.banner-badge--status{color:#023029;text-transform:none;letter-spacing:.2px;background-color:#c94d541f;border-color:#c94d5473;font-family:SF Mono,Fira Code,JetBrains Mono,Menlo,Consolas,monospace}.banner-badge-dot{background-color:#c94d54;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite banner-pulse;box-shadow:0 0 0 3px #c94d5440}@keyframes banner-pulse{0%,to{box-shadow:0 0 0 3px #c94d5440}50%{box-shadow:0 0 0 6px #c94d541a}}.banner-title{letter-spacing:-.5px;color:#023029;max-width:18ch;margin:0;font-size:clamp(2.4rem,5.5vw,3.75rem);font-weight:700;line-height:1.12}.banner-subtitle{color:#24655c;max-width:52ch;margin:0;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:500;line-height:1.5}.banner-visual{justify-content:center;align-items:center;display:flex}.banner-image{object-fit:contain;mix-blend-mode:multiply;width:100%;max-width:460px;height:auto;-webkit-mask-image:radial-gradient(circle,#000 65%,#0000 100%);mask-image:radial-gradient(circle,#000 65%,#0000 100%)}@media (width<=860px){.banner{min-height:auto;padding:3rem 1.25rem}.banner-content{grid-template-columns:1fr;gap:2.5rem}.banner-visual{order:2;width:100%}.banner-image{max-width:240px;margin:0 auto}}.home-section{background-color:#ebf8f6;width:100%}.home-intro{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:calc(100dvh - 70px);margin:0 auto;padding:5rem 1.5rem;display:flex}.home-intro-copy{flex-direction:column;gap:1.5rem;width:100%;max-width:920px;display:flex}.home-intro-heading{letter-spacing:-.3px;color:#023029;margin:0 0 .5rem;font-size:clamp(1.8rem,3.8vw,2.5rem);font-weight:700;line-height:1.25}.home-intro-text{color:#24655c;margin:0;font-size:clamp(1.05rem,1.8vw,1.2rem);line-height:1.75}.home-actions{flex-flow:wrap;justify-content:flex-start;align-items:center;gap:1.25rem;width:100%;max-width:920px;margin-top:2.75rem;display:flex}.home-action{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.8rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background-color .35s,color .35s,border-color .35s,transform .35s,box-shadow .35s;display:inline-flex}.home-action--primary{color:#fff;background-color:#c94d54;border-color:#c94d54}.home-action--primary:hover{background-color:#b6373e;transform:translateY(-2px);box-shadow:0 8px 20px #c94d5459}.home-action--primary:focus-visible{outline-offset:3px;outline:2px solid #023029}.home-action--secondary{color:#023029;background-color:#f6eced;border-color:#0230292e}.home-action--secondary:hover{color:#023029;background-color:#c94d541a;border-color:#c94d54;transform:translateY(-2px)}.home-action--secondary:focus-visible{outline-offset:3px;outline:2px solid #c94d54}.home-action--tertiary{color:#c94d54;background-color:#0000;border-color:#c94d548c}.home-action--tertiary:hover{color:#023029;background-color:#c94d541f;border-color:#c94d54;transform:translateY(-2px);box-shadow:0 4px 12px #c94d5433}.home-action--tertiary:focus-visible{outline-offset:3px;outline:2px solid #c94d54}.home-action:active{transform:translateY(0)}@media (width<=860px){.home-intro{min-height:auto;padding:3.5rem 1.25rem 4rem}.home-actions{flex-wrap:wrap;margin-top:2rem}.home-action{flex:auto;min-width:0}}@media (width<=480px){.home-actions{flex-direction:column}}.project-card{cursor:pointer;background-color:#fff;border:1px solid #02302914;border-radius:14px;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;overflow:hidden;box-shadow:0 2px 10px #0230290f}.project-card:hover,.project-card:focus-visible{border-color:#c94d5499;outline:none;transform:translateY(-4px);box-shadow:0 12px 28px #02302924}.project-card-media{aspect-ratio:16/9;background-color:#f6eced;position:relative;overflow:hidden}.project-card-thumb{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.project-card:hover .project-card-thumb{transform:scale(1.04)}.project-card-placeholder{background:linear-gradient(135deg,#f6eced 0%,#ebf8f6 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.project-card-placeholder-initials{letter-spacing:1px;color:#24655c;-webkit-user-select:none;user-select:none;background-color:#ffffff8c;border:2px solid #c94d5473;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.75rem;font-weight:700;display:inline-flex}.project-card-badge{letter-spacing:.4px;text-transform:uppercase;color:#023029;background-color:#ebf8f6;border:1px solid #c94d548c;border-radius:999px;padding:.3rem .7rem;font-size:.72rem;font-weight:600;position:absolute;top:.75rem;left:.75rem;box-shadow:0 1px 4px #0230291f}.project-card-body{flex-direction:column;flex:1;gap:.75rem;padding:1.25rem 1.4rem 1.4rem;display:flex}.project-card-title{color:#023029;margin:0;font-size:1.15rem;font-weight:700;line-height:1.3;transition:color .2s}.project-card:hover .project-card-title{color:#c94d54}.project-card-description{color:#24655c;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.project-card-tags{flex-wrap:wrap;gap:.4rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.project-card-tag{color:#023029;background-color:#f6eced;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:500;transition:background-color .2s,color .2s}.project-card:hover .project-card-tag{background-color:#c94d542e}.project-card-links{flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:.5rem;display:flex}.project-card-link{color:#24655c;border:1px solid #0230292e;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,background-color .2s}.project-card-link:hover,.project-card-link:focus-visible{color:#023029;background-color:#c94d541f;border-color:#c94d54;outline:none}.project-card-link--live{color:#fff;background-color:#c94d54;border-color:#c94d54}.project-card-link--live:hover,.project-card-link--live:focus-visible{color:#fff;background-color:#c94d5414;border-color:#c94d5414}.project-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:#023029b3;justify-content:center;align-items:center;padding:2rem 1.25rem;display:flex;position:fixed;inset:0}.project-modal{box-sizing:border-box;background-color:#fff;border-radius:16px;flex-direction:column;gap:1.4rem;width:100%;max-width:800px;max-height:90vh;padding:2rem 2rem 2.25rem;display:flex;position:relative;overflow-y:auto;box-shadow:0 24px 60px #02302959}.project-modal-close{z-index:1;color:#24655c;cursor:pointer;background-color:#f6eced;border:1px solid #0230291f;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;line-height:1;transition:color .2s,background-color .2s,transform .2s;display:inline-flex;position:absolute;top:1rem;right:1rem}.project-modal-close:hover,.project-modal-close:focus-visible{color:#023029;background-color:#c94d5440;outline:none;transform:rotate(90deg)}.project-modal-header{flex-direction:column;align-items:flex-start;gap:.6rem;padding-right:2.75rem;display:flex}.project-modal-badge{letter-spacing:.4px;text-transform:uppercase;color:#023029;background-color:#ebf8f6;border:1px solid #c94d548c;border-radius:999px;padding:.3rem .75rem;font-size:.72rem;font-weight:600}.project-modal-title{color:#023029;margin:0;font-size:1.6rem;font-weight:700;line-height:1.3}.project-modal-carousel{aspect-ratio:16/10;background-color:#f6eced;border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.project-modal-image{object-fit:contain;width:100%;height:100%;display:block}.project-modal-image-fallback{color:#24655c;background:linear-gradient(135deg,#f6eced 0%,#ebf8f6 100%);justify-content:center;align-items:center;width:100%;height:100%;font-size:1rem;font-weight:500;display:flex}.project-modal-nav{z-index:1;color:#023029;cursor:pointer;background-color:#ffffffeb;border:1px solid #02302926;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.6rem;line-height:1;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0230292e}.project-modal-nav:hover,.project-modal-nav:focus-visible{color:#fff;background-color:#c94d54;border-color:#c94d54;outline:none}.project-modal-nav--prev{left:.9rem}.project-modal-nav--next{right:.9rem}.project-modal-counter{color:#fff;background-color:#023029bf;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;position:absolute;bottom:.75rem;right:.9rem}.project-modal-body{flex-direction:column;gap:1.1rem;display:flex}.project-modal-description{color:#24655c;margin:0;font-size:.95rem;line-height:1.65}.project-modal-tags{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.project-modal-tag{color:#023029;background-color:#f6eced;border:1px solid #c94d5459;border-radius:999px;padding:.3rem .75rem;font-size:.78rem;font-weight:500}.project-modal-links{flex-wrap:wrap;gap:.75rem;padding-top:.25rem;display:flex}.project-modal-btn{color:#023029;border:1px solid #02302933;border-radius:8px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,background-color .2s}.project-modal-btn:hover,.project-modal-btn:focus-visible{color:#023029;background-color:#c94d541f;border-color:#c94d54;outline:none}.project-modal-btn--live{color:#fff;background-color:#c94d54;border-color:#c94d54}.project-modal-btn--live:hover,.project-modal-btn--live:focus-visible{color:#fff;background-color:#b6373e;border-color:#b6373e}@media (width<=560px){.project-modal-overlay{align-items:stretch;padding:1rem .75rem}.project-modal{max-height:95vh;padding:1.5rem 1.25rem 1.75rem}.project-modal-title{font-size:1.3rem}.project-modal-nav{width:36px;height:36px;font-size:1.3rem}.project-modal-nav--prev{left:.5rem}.project-modal-nav--next{right:.5rem}}.projects-section{box-sizing:border-box;background-color:#ebf8f6;width:100%;max-width:1200px;margin:0 auto;padding:3rem 1.5rem 2rem;overflow:clip}.projects-header{text-align:center;max-width:640px;margin-bottom:2rem;margin-left:auto;margin-right:auto}.projects-title{color:#023029;letter-spacing:.5px;margin:0 0 .5rem;font-size:2.1rem;font-weight:700}.projects-subtitle{color:#24655c;margin:0;font-size:.95rem;line-height:1.5}.projects-carousel{outline:none;justify-content:center;align-items:center;width:100%;max-width:940px;margin:0 auto;display:flex;position:relative}.projects-carousel:focus-visible{border-radius:16px;outline:2px solid #c94d5499}.projects-carousel-viewport{border-radius:14px;width:100%;overflow:hidden}.projects-carousel-grid{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;width:100%;display:grid}.projects-carousel-slot{box-sizing:border-box;width:100%;animation:.3s ease-out projectFadeSlide}@keyframes projectFadeSlide{0%{opacity:.6;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.projects-carousel-btn{z-index:10;color:#023029;cursor:pointer;background-color:#fff;border:1px solid #0230291f;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;line-height:1;transition:background-color .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 2px #00000014,0 4px 12px #0000001a}.projects-carousel-btn:hover,.projects-carousel-btn:focus-visible{color:#fff;background-color:#c94d54;border-color:#c94d54;outline:none;transform:translateY(-50%)scale(1.08);box-shadow:0 2px 4px #0000001f,0 6px 16px #0000002e}.projects-carousel-btn:active{transform:translateY(-50%)scale(.96)}.projects-carousel-btn--prev{left:-3rem}.projects-carousel-btn--next{right:-3rem}.projects-carousel-dots{justify-content:center;align-items:center;gap:.6rem;margin-top:2rem;display:flex}.projects-carousel-dot{cursor:pointer;background-color:#02302966;border:none;border-radius:999px;width:10px;height:10px;padding:0;transition:width .3s cubic-bezier(.25,1,.5,1),background-color .25s;position:relative}.projects-carousel-dot:before{content:"";width:44px;min-width:44px;height:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.projects-carousel-dot:hover,.projects-carousel-dot:focus-visible{background-color:#c94d54b3;outline:none}.projects-carousel-dot--active{background-color:#c94d54;width:28px}.projects-empty,.projects-error{text-align:center;background-color:#f6eced;border:1px dashed #02302933;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:300px;padding:3rem 2rem;display:flex}.projects-empty-title,.projects-error-title{color:#023029;margin:0;font-size:1.5rem;font-weight:700}.projects-empty-message,.projects-error-message{color:#24655c;max-width:440px;margin:0;font-size:.95rem;line-height:1.6}.projects-empty-retry,.projects-error-retry{color:#fff;cursor:pointer;background-color:#c94d54;border:1px solid #c94d54;border-radius:8px;margin-top:.5rem;padding:.55rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background-color .2s,transform .15s}.projects-empty-retry:hover,.projects-empty-retry:focus-visible,.projects-error-retry:hover,.projects-error-retry:focus-visible{background-color:#b6373e;outline:none;transform:translateY(-1px)}.projects-empty-retry:active,.projects-error-retry:active{transform:translateY(0)}.projects-error{background-color:#e15b180d;border-color:#e15b1866}.projects-error .projects-error-title{color:#e15b18}.projects-error .projects-error-retry{background-color:#e15b18;border-color:#e15b18}.projects-error .projects-error-retry:hover,.projects-error .projects-error-retry:focus-visible{background-color:#b6373e}@media (width<=1040px){.projects-carousel-btn--prev{left:-1rem}.projects-carousel-btn--next{right:-1rem}}@media (width<=768px){.projects-section{padding:3rem 1.25rem 1.5rem}.projects-title{font-size:1.75rem}.projects-carousel-grid{grid-template-columns:1fr;gap:1.25rem}.projects-carousel-btn{width:38px;height:38px;font-size:1.1rem}.projects-carousel-btn--prev{left:.25rem}.projects-carousel-btn--next{right:.25rem}.projects-empty,.projects-error{min-height:240px;padding:2rem 1.25rem}}.skills-section{box-sizing:border-box;background-color:#ebf8f6;width:100%;max-width:1200px;margin:0 auto;padding:3rem 1.5rem 2rem;overflow:clip}.skills-header{text-align:center;max-width:640px;margin-bottom:2rem;margin-left:auto;margin-right:auto}.skills-title{color:#023029;letter-spacing:.5px;margin:0 0 .5rem;font-size:2.1rem;font-weight:700}.skills-subtitle{color:#24655c;margin:0;font-size:.95rem;line-height:1.5}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:1.75rem;display:grid}.skills-card{background-color:#fff;border:1px solid #02302914;border-radius:14px;flex-direction:column;gap:.75rem;padding:1.5rem 1.5rem 1.6rem;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;box-shadow:0 2px 10px #0230290d}.skills-card:hover{border-color:#c94d548c;transform:translateY(-4px);box-shadow:0 12px 28px #0230291f}.skills-card-title{color:#023029;margin:0;font-size:1.15rem;font-weight:700;line-height:1.3}.skills-card-description{color:#24655c;margin:0;font-size:.9rem;line-height:1.55}.skills-card-list{flex-direction:column;gap:.6rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.skills-card-item{background-color:#f6eced;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .8rem;transition:border-color .2s,background-color .2s;display:flex}.skills-card-item:hover{background-color:#c94d5414;border-color:#c94d5473}.skills-card-item-name{color:#023029;font-size:.88rem;font-weight:500;line-height:1.4}.skills-card-item-level{letter-spacing:.3px;text-transform:uppercase;color:#023029;background-color:#c94d5438;border:1px solid #c94d5466;border-radius:999px;flex-shrink:0;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.skills-card-empty{color:#24655c;margin:.5rem 0 0;font-size:.85rem;font-style:italic}.skills-empty{text-align:center;background-color:#f6eced;border:1px dashed #02302933;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:300px;padding:3rem 2rem;display:flex}.skills-empty-title{color:#023029;margin:0;font-size:1.5rem;font-weight:700}.skills-empty-message{color:#24655c;max-width:440px;margin:0;font-size:.95rem;line-height:1.6}.skills-empty-retry{color:#fff;cursor:pointer;background-color:#c94d54;border:1px solid #c94d54;border-radius:8px;margin-top:.5rem;padding:.55rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background-color .2s,transform .15s}.skills-empty-retry:hover,.skills-empty-retry:focus-visible{background-color:#b6373e;outline:none;transform:translateY(-1px)}.skills-empty-retry:active{transform:translateY(0)}@media (width<=1024px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.skills-section{padding:3rem 1.25rem 1.5rem}.skills-title{font-size:1.75rem}.skills-grid{grid-template-columns:1fr;gap:1.25rem}.skills-empty{min-height:240px;padding:2rem 1.25rem}}.contact-section{box-sizing:border-box;background-color:#ebf8f6;width:100%;max-width:1200px;margin:0 auto;padding:3rem 1.5rem 2rem;overflow:clip}.contact-header{text-align:center;max-width:640px;margin-bottom:2rem;margin-left:auto;margin-right:auto}.contact-title{color:#023029;letter-spacing:.5px;margin:0 0 .5rem;font-size:2.1rem;font-weight:700}.contact-subtitle{color:#24655c;margin:0;font-size:.95rem;line-height:1.5}.contact-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:2.5rem;width:100%;max-width:100%;display:grid}.contact-info{background-color:#f6eced;border:1px solid #02302914;border-radius:14px;flex-direction:column;gap:1rem;padding:1.75rem;display:flex;box-shadow:0 2px 10px #0230290d}.contact-info-heading{color:#023029;margin:0;font-size:1.15rem;font-weight:700}.contact-info-text{color:#24655c;margin:0;font-size:.9rem;line-height:1.6}.contact-info-list{flex-direction:column;gap:.9rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.contact-info-item{background-color:#fff9;border:1px solid #02302914;border-radius:10px;flex-direction:column;gap:.2rem;padding:.7rem .9rem;display:flex}.contact-info-label{letter-spacing:.5px;text-transform:uppercase;color:#24655c;font-size:.7rem;font-weight:600}.contact-info-link{color:#023029;word-break:break-word;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .2s}.contact-info-link:hover{color:#c94d54;text-decoration:underline}.contact-info-link:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #c94d54}.contact-info-value{color:#023029;font-size:.92rem;font-weight:500}.contact-form{background-color:#fff;border:1px solid #02302914;border-radius:14px;flex-direction:column;gap:1.1rem;padding:1.75rem;display:flex;box-shadow:0 2px 10px #0230290d}.contact-status{border-radius:10px;padding:.8rem 1rem;font-size:.9rem;font-weight:500;line-height:1.5}.contact-status--success{color:#023029;background-color:#c94d5426;border:1px solid #c94d5480}.contact-status--error{color:#fff;background-color:#e15b181a;border:1px solid #e15b188c}.contact-field{flex-direction:column;gap:.4rem;display:flex}.contact-label{color:#023029;font-size:.85rem;font-weight:600}.contact-input{color:#023029;box-sizing:border-box;background-color:#ebf8f6;border:1px solid #0230292e;border-radius:8px;width:100%;max-width:100%;padding:.7rem .9rem;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background-color .2s}.contact-input::placeholder{color:#24655cbf}.contact-input:hover{border-color:#02302959}.contact-input:focus{background-color:#fff;border-color:#c94d54;outline:none;box-shadow:0 0 0 3px #c94d5440}.contact-input:focus-visible{outline-offset:1px;outline:2px solid #c94d54}.contact-textarea{resize:vertical;min-height:120px;line-height:1.55}.contact-input--error{border-color:#e15b18}.contact-input--error:focus,.contact-input--error:focus-visible{border-color:#e15b18;box-shadow:0 0 0 3px #e15b1833}.contact-error{color:#e15b18;margin:0;font-size:.8rem;font-weight:500}.contact-actions{flex-wrap:wrap;gap:.75rem;margin-top:.25rem;display:flex}.contact-submit{color:#fff;cursor:pointer;background-color:#c94d54;border:1px solid #c94d54;border-radius:8px;padding:.7rem 1.6rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background-color .2s,transform .15s,box-shadow .2s}.contact-submit:hover:not(:disabled){background-color:#b6373e;transform:translateY(-1px);box-shadow:0 6px 16px #c94d5459}.contact-submit:focus-visible{outline-offset:2px;outline:2px solid #023029}.contact-submit:active:not(:disabled){transform:translateY(0)}.contact-submit:disabled{cursor:not-allowed;opacity:.65}.contact-reset{color:#023029;cursor:pointer;background-color:#0000;border:1px solid #02302940;border-radius:8px;padding:.7rem 1.4rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:color .2s,border-color .2s,background-color .2s}.contact-reset:hover{color:#023029;background-color:#c94d541a;border-color:#c94d54}.contact-reset:focus-visible{outline-offset:2px;outline:2px solid #c94d54}@media (width<=860px){.contact-section{padding:3rem 1.25rem 1.5rem}.contact-title{font-size:1.75rem}.contact-layout{grid-template-columns:1fr;gap:1.75rem}.contact-info,.contact-form{padding:1.4rem 1.25rem}}.site-footer{background-color:#f6eced;border-top:1px solid #0230291a;width:100%;max-width:100%}.footer-inner{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem 1.75rem}.footer-top{border-bottom:1px solid #02302914;flex-wrap:wrap;justify-content:space-between;gap:2rem;padding-bottom:1.75rem;display:flex}.footer-heading{letter-spacing:.6px;text-transform:uppercase;color:#24655c;margin-bottom:.75rem;font-size:.72rem;font-weight:600;display:block}.footer-nav{flex-wrap:wrap;gap:1.4rem;display:flex}.footer-nav-link{color:#023029;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.footer-nav-link:hover{color:#c94d54;text-underline-offset:3px;text-decoration:underline}.footer-nav-link:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #c94d54}.footer-social{flex-wrap:wrap;gap:1.4rem;display:flex}.footer-social-link{color:#023029;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.footer-social-link:hover{color:#c94d54;text-underline-offset:3px;text-decoration:underline}.footer-social-link:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #c94d54}.footer-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:1.5rem;display:flex}.footer-copyright{color:#24655c;margin:0;font-size:.85rem}.footer-back-to-top{color:#023029;border:1px solid #0230292e;border-radius:8px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,background-color .2s,transform .15s}.footer-back-to-top:hover{color:#023029;background-color:#c94d541a;border-color:#c94d54;transform:translateY(-1px)}.footer-back-to-top:focus-visible{outline-offset:2px;outline:2px solid #c94d54}.footer-back-to-top:active{transform:translateY(0)}@media (width<=640px){.footer-inner{padding:2rem 1.25rem 1.5rem}.footer-top{flex-direction:column;gap:1.5rem}.footer-bottom{flex-direction:column;align-items:flex-start}}*,:before,:after{box-sizing:border-box}html,body{color:#023029;-webkit-font-smoothing:antialiased;background-color:#ebf8f6;width:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:clip}#root{width:100%;overflow-x:clip}.app{flex-direction:column;width:100%;max-width:100%;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:100%}section[id],#banner,#projects,#skills,#contact{scroll-margin-top:2rem}section{width:100%;max-width:100%}
