body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Alegreya Sans;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.customButton{align-items:center;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;flex-direction:row;font-family:inherit;font-size:large;font-size:1rem;font-weight:700;gap:.5rem;justify-content:center;padding:.5rem;text-decoration:none;transition-duration:.4s;-webkit-transition-duration:.4s;width:fit-content}.customButton:hover{box-shadow:0 12px 16px 0 #0000003d,0 17px 50px 0 #00000030}@media (max-width:40rem){.customButton{font-size:.8rem;padding:.5rem 1rem}}.header{background:var(--header-bg);border-radius:0 0 7rem 7rem;box-shadow:0 2px 8px 0 #63636333;box-shadow:0 4px 10px #00000040;display:flex;grid-area:header;justify-content:space-between;left:0;margin:0 auto;padding-left:1rem;padding-right:1rem;position:fixed;right:0;z-index:1}.header-info{align-items:center;cursor:pointer;display:flex}#download-button{background:var(--primary-color);border:none;border-radius:8px;color:#fff;display:flex;flex-wrap:wrap;font-size:1rem;font-weight:700;gap:.3rem;justify-content:center;margin-left:1rem;padding:.37rem .5rem;transition:box-shadow .15s,transform .15s}#download-button:focus{box-shadow:var(--primary-color) 0 0 0 1.5px inset,#2d234266 0 2px 4px,#2d23424d 0 7px 13px -3px,var(--primary-color) 0 -3px 0 inset}#download-button:active{box-shadow:var(--primary-color) 0 3px 7px inset;transform:translateY(2px)}#download-icon{width:1rem}.nav-profile-image{align-self:center;border-radius:50%;margin-left:.5rem;width:2.5rem}.navbar{display:flex;width:fit-content}.navbar_items{display:flex;list-style:none;padding:0}.navbar_item{margin:0 1rem;text-decoration:none}.navbar_item>a{color:#fff;font-size:1.1rem;font-weight:700;padding:.94rem 0;text-decoration:none}.navbar_item a.active,.navbar_item a:hover{border-bottom:.31rem solid var(--primary-color);color:var(--primary-color);padding-bottom:1rem}@media (max-width:40rem){.app-grid-container{background-color:var(--my-custom-color);display:grid;grid-template-areas:"header" "main" "footer";grid-template-rows:3rem auto 3rem;height:100%;margin:0;width:100%}#download-button{background:var(--primary-color);border-radius:8px;color:#fff;font-size:.9rem;font-weight:700;margin-left:.5rem}.navbar_item>a{font-size:.9rem}.navbar_item{margin:0 .6rem}.nav-profile-image{align-self:center;margin-left:.4rem;width:1.5rem}#download-text{font-size:.6rem}#download-icon{width:.6rem}}.main{background-color:#f1f1f1;flex-direction:column;grid-area:main;justify-content:center}#intro-section,.main{align-items:center;display:flex}#intro-section{background:var(--bg-color);flex-direction:row;gap:3rem;padding:10rem 8rem}.profile-image{align-self:center;border:1px solid #ddd;border-radius:0 273rem 269.93rem 270.07rem;height:auto;margin:0 auto;padding:5px;width:35%}.info-container{align-items:flex-start;border-left:.2rem solid var(--primary-color);display:flex;flex-direction:column;gap:.5rem;justify-content:center;padding-left:3rem}.title-container{h1{color:var(--text-color);font-size:2.5rem;margin:0}}.info-container p{font-size:large;line-height:1.6rem;text-align:justify}#profile-links{align-content:center;align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;justify-content:center}@media (max-width:40rem){#intro-section{flex-wrap:wrap;gap:2rem;justify-content:center;padding:6rem 1rem 1rem}.profile-image{border:1px solid #ddd;border-radius:0 273rem 269.93rem 270.07rem;padding:.2rem;width:70%}.info-container{align-items:center;border-left:0;gap:.4rem;padding-left:0}.title-container{text-align:center;width:fit-content;h1{font-size:1.5rem}}.info-container p{font-size:1rem;height:75%;line-height:1.4rem;overflow:auto}}#skill-section{background:var(--bg-color-skill);gap:.1rem;padding:0 1.5rem 5rem}#skill-section,.skill-header{align-items:center;display:flex;flex-direction:column;justify-content:center}.skill-header{color:var(--text-color);width:100%}.logos-container{gap:5rem}.logos-container,.skill-container{display:flex;justify-content:center}.skill-container{align-items:center;color:var(--text-color);flex-direction:column;margin-top:1rem;padding:1rem 0}.p{font-family:Alegreya Sans;font-size:.9rem;text-align:center}.infoList{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;justify-items:center;margin-top:1rem;padding:0 8rem}.infoBox{align-items:center;border-radius:1rem;box-shadow:var(--box-shadow-skills);display:flex;flex-direction:column;padding:0 1.5rem}.infoBox svg{border-radius:50%;height:4rem;margin-top:2rem;width:4rem}.infoBox h2{font-size:2rem;margin:0}.infoBox ul{font-size:1rem;list-style:none;padding:0;text-align:left}.infoBox li{color:var(--ul--color);line-height:1.5rem;margin:1rem 0}li>b{color:#605e5e}@media (max-width:40rem){#skill-section{padding:0 1.5rem}.title{color:var(--primary-color);font-size:20rem;margin:0}.subtitle{color:#5d5656;font-size:.8rem;margin-top:.5rem}.infoList{align-items:center;display:flex;flex-direction:column;justify-items:center;padding:0 1rem}.infoBox{justify-content:flex-start;margin:0;padding:auto;width:100%;h2{font-size:1.5rem}}.infoBox ul{overflow:scroll}.infoBox li{margin-top:.1rem}::-webkit-scrollbar-thumb{background-color:#00000080;border-radius:4px;box-shadow:0 0 1px #ffffff80}.skill-header{display:flex;padding:1rem .5rem;width:90%;h1{font-size:x-large;margin:0}}.logos-container{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem;svg{height:2.2rem;width:2.2rem}}.skill-container{padding:1rem 0}}#experience-section{align-items:center;background:var(--bg-color);display:flex;flex-direction:column;justify-content:center;width:100%}.experience-list{align-items:flex-start;display:flex;flex-direction:column;gap:2rem;list-style:none;padding:3rem 1.2rem;li,ul{margin:0}}.info{flex-direction:row;padding:1rem 2rem}.exp-title,.info{align-items:center;display:flex;justify-content:center}.exp-title{background-color:var(--primary-color);color:#fff;flex-direction:column;padding:.5rem 0;position:relative;width:100%;h1{font-size:xx-large;margin:0}h5{font-size:medium;font-weight:400;margin:.1rem}}.work-year{margin-right:2rem;img{border:1px solid #ddd;border-radius:50%;height:4rem;width:4rem}}.work-description:before{border-bottom:.5rem solid #0000;border-left:1rem solid var(--primary-color);border-top:.5rem solid #0000;content:"";height:0;margin:-2rem;position:absolute;width:0}.work-description{align-items:flex-start;border-left:3px solid var(--primary-color);display:flex;flex-direction:column;gap:.2rem;justify-content:center;padding:.5rem 2rem;h1{font-size:x-large;font-size:1.5rem;margin:0}h5{font-size:1rem;font-weight:400;margin:.2rem 0 0}ul{margin-left:1rem;margin-top:.2rem;padding:0}li{line-height:1.2rem;list-style:disc;margin:.7rem}}@media (max-width:40rem){#experience-section{gap:1rem}.experience-list{margin:0;padding:3rem 1.2rem}.info{flex-wrap:wrap;padding:0}.exp-title{h1{font-size:x-large}h5{font-size:smaller}}.cone{border-bottom:0;border-right:0;border-top:0;height:0;width:0}.work-description:before{content:none}.work-description{align-items:center;border-bottom:.2rem solid var(--primary-color);border-left:none;border-radius:1rem;padding:1rem;text-align:justify;ul{margin-left:0;padding:0}li{line-height:1.2rem;list-style:disc;margin:.7rem}}.work-year{margin:0}}#education-section{background:var(--bg-color);justify-content:center;width:100%}#education-section,.education-list{align-items:flex-start;display:flex;flex-direction:column}.education-list{list-style:none}.edu-info{flex-direction:row;padding:1rem 2rem}.edu-info,.edu-title{align-items:center;display:flex;justify-content:center}.edu-title{background-color:var(--primary-color);color:#fff;flex-direction:column;padding:.5rem 0;width:100%;h1{font-size:xx-large;margin:0}h5{font-size:medium;font-weight:400;margin:.1rem}}.edu-year{display:flex;img{align-self:center;border:1px solid #ddd;border-radius:50%;height:5rem;width:5rem}}.edu-description{align-items:flex-start;display:flex;flex-direction:column;gap:.2rem;justify-content:center;padding:.5rem 2rem;h1{font-size:1.3rem;margin:0}h5{font-size:.9rem;font-weight:400;margin:.2rem 0 0}}@media (max-width:40rem){#education-section{align-items:center;gap:1rem;justify-content:center;padding:2rem rem}.education-list{margin:0;padding:0 1.2rem}.edu-info{flex-wrap:wrap;padding:0}.edu-title{h1{font-size:1.3rem}h5{font-size:.8rem}}.edu-description{align-items:center;border-left:none;padding:1rem;text-align:justify;h1{font-size:1.3rem;margin:0}h5{font-size:.8rem;font-weight:400;margin:.2rem 0 0}}.edu-year{margin:0}}#contact-section{--contact-border:#1a1d241a;--contact-input-bg:var(--my-custom-color);--contact-shadow:0 4px 24px #1a1d2414;--contact-focus-ring:#c3588859;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;font-weight:400;justify-content:center;min-height:100%;padding:clamp(3rem,8vw,5rem) 1.25rem clamp(2rem,5vw,3rem);width:100%}[data-theme=dark] #contact-section{--contact-border:#ffffff1f;--contact-input-bg:#ffffff0f;--contact-shadow:0 8px 32px #00000073;--contact-focus-ring:#c3588873}.contact-layout{margin:0 auto;max-width:36rem;width:100%}#contact-form.contact-card{align-items:stretch;background:var(--bg-color-contact-form);border:1px solid var(--contact-border);border-radius:1rem;box-shadow:var(--contact-shadow);box-sizing:border-box;display:flex;flex-direction:column;gap:0;margin-bottom:1rem;padding:0;width:100%}.contact-card__header{background:linear-gradient(180deg,#c358881f,#0000);border-bottom:1px solid var(--contact-border);border-radius:1rem 1rem 0 0;padding:1.75rem 1.5rem 1.25rem;text-align:center}.contact-card__header h1{color:var(--text-color);font-size:clamp(1.35rem,3.5vw,1.65rem);font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem}.contact-card__lede{color:var(--ul--color);font-size:.95rem;font-weight:400;line-height:1.5;margin:0 auto;max-width:28ch}.contact-card__body{display:flex;flex-direction:column;gap:1.15rem;padding:1.5rem 1.5rem 1.75rem}.contact-form__grid{grid-gap:1.15rem;display:grid;gap:1.15rem;grid-template-columns:1fr}@media (min-width:32rem){.contact-form__grid--split{grid-template-columns:1fr 1fr}}.contact-field{align-items:stretch;display:flex;flex-direction:column;gap:.4rem;width:100%}.contact-field label{align-self:flex-start;color:var(--ul--color);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}#contact-section .contact-field input,#contact-section .contact-field select,#contact-section .contact-field textarea,.contact-field__input{background-color:var(--contact-input-bg);border:1px solid var(--contact-border);border-radius:.5rem;box-sizing:border-box;color:var(--text-color);font-family:inherit;font-size:1rem;font-weight:500;padding:.65rem .85rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;width:100%}#contact-section .contact-field select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;cursor:pointer;padding-right:2.25rem}[data-theme=dark] #contact-section .contact-field select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ccc' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}#contact-section .contact-field input:hover,#contact-section .contact-field select:hover,#contact-section .contact-field textarea:hover{border-color:#c3588859}#contact-section .contact-field input:focus,#contact-section .contact-field select:focus,#contact-section .contact-field textarea:focus{background:var(--bg-color-contact-form);border-color:var(--primary-color);box-shadow:0 0 0 3px var(--contact-focus-ring);outline:none}#contact-section .contact-field input::placeholder,#contact-section .contact-field textarea::placeholder{color:var(--ul--color);font-size:.95rem;font-weight:400;opacity:.85}#contact-section .contact-field textarea{line-height:1.5;min-height:9rem;resize:vertical}.contact-field__error{align-self:flex-start;color:#e63946;font-size:.8rem;font-weight:600;margin:0}[data-theme=dark] .contact-field__error{color:#ff8a8a}.contact-form__actions{align-items:stretch;display:flex;flex-direction:column;gap:.75rem;padding-top:.25rem}.contact-form__banner{background:#e639461a;border:1px solid #e6394640;border-radius:.5rem;color:#b32532;font-size:.875rem;line-height:1.45;margin:0;padding:.65rem .85rem}[data-theme=dark] .contact-form__banner{background:#e6394626;border-color:#ff8a8a59;color:#ffb4b4}#contact-section #submitButton{align-items:center;background:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;flex-direction:row;font-family:inherit;font-size:1rem;font-weight:700;gap:.65rem;justify-content:center;letter-spacing:.02em;margin-bottom:0;min-height:2.85rem;padding:.65rem 1.25rem;transition:filter .15s ease,transform .1s ease;width:100%}#contact-section #submitButton:hover:not(:disabled){filter:brightness(1.06)}#contact-section #submitButton:active:not(:disabled){transform:scale(.99)}#submitButton:disabled{background-color:#80808073;color:#ffffffd9;cursor:not-allowed;filter:none}#contact-form:not(.contact-card){align-items:center;background:var(--bg-color-contact-form);border:.1rem solid var(--primary-color);border-radius:1rem;display:flex;flex-direction:column;gap:1.5rem;justify-content:center;margin-bottom:1rem;padding:0 2rem 1rem;width:min(45%,32rem)}#contact-form:not(.contact-card) .contact-title{align-items:center;background-color:var(--primary-color);border-radius:0 0 10rem 10rem;color:#fff;display:flex;flex-direction:column;justify-content:center;min-width:10rem;padding:.2rem 0;width:30%}#contact-form:not(.contact-card) .contact-title h1{font-size:x-large;margin:0}#contact-form:not(.contact-card) .form-row{align-items:center;display:flex;flex-direction:column;gap:.5rem;justify-content:center;width:100%}#contact-form:not(.contact-card) .form-row label{align-self:flex-start}#contact-form:not(.contact-card) input,#contact-form:not(.contact-card) select,#contact-form:not(.contact-card) textarea{background-color:var(--my-custom-color);border:none;border-radius:.35rem;font-family:inherit;font-size:large;padding:.6rem 0 .6rem .5rem;width:100%}@media (max-width:40rem){#contact-section{padding-left:1rem;padding-right:1rem}.contact-card__body{padding:1.25rem 1.15rem 1.5rem}#contact-form:not(.contact-card){margin-top:2rem;padding:0 1.25rem 1rem;width:min(92%,28rem)}#contact-form:not(.contact-card) .contact-title{width:70%}#contact-form:not(.contact-card) .contact-title h1{font-size:1.3rem}#contact-form:not(.contact-card) button{width:100%}}#project-section.projects-page{--projects-border:#1a1d241a;--projects-card-shadow:0 2px 8px #1a1d240f;--projects-card-shadow-hover:0 8px 28px #1a1d241a;background:var(--bg-color-project);box-sizing:border-box;color:var(--text-color);min-height:100%;padding:clamp(2rem,5vw,3.5rem) clamp(1rem,4vw,2rem) clamp(3rem,6vw,4rem);width:100%}[data-theme=dark] #project-section.projects-page{--projects-border:#ffffff1a;--projects-card-shadow:0 4px 24px #00000059;--projects-card-shadow-hover:0 12px 40px #00000073}.projects-page__inner{margin:0 auto;max-width:52rem}.projects-intro{border-bottom:1px solid var(--projects-border);margin-bottom:clamp(2rem,5vw,3rem);padding-bottom:1.5rem;text-align:center}.projects-intro__title{color:var(--text-color);font-size:clamp(1.5rem,4vw,1.85rem);font-weight:700;letter-spacing:-.03em;margin:0 0 .75rem}.projects-intro__lede{color:var(--ul--color);font-size:1.05rem;font-weight:500;line-height:1.6;margin:0 auto 1rem;max-width:42rem}.projects-intro__sub{color:var(--ul--color);font-size:.9rem;font-weight:600;letter-spacing:.06em;line-height:1.5;margin:0;opacity:.92;text-transform:uppercase}.projects-diagram{align-items:stretch;display:flex;flex-direction:column;gap:.5rem;margin-bottom:clamp(2.5rem,6vw,3.5rem)}.projects-figure{background:#fff;background:var(--bg-color-skill,#fff);border:1px solid var(--projects-border);border-radius:.75rem;box-shadow:var(--projects-card-shadow);margin:0 0 1.5rem;overflow:hidden;padding:0;transition:box-shadow .2s ease,transform .2s ease}.projects-figure:hover{box-shadow:var(--projects-card-shadow-hover)}[data-theme=dark] .projects-figure{background:#ffffff08}.projects-figure__img{background:var(--bg-color-project);display:block;height:auto;width:100%}.projects-figure__caption{background:#c358880f;border-top:1px solid var(--projects-border);color:var(--ul--color);font-size:.8rem;font-weight:600;letter-spacing:.05em;padding:.65rem 1rem;text-transform:uppercase}[data-theme=dark] .projects-figure__caption{background:#c358881a}.projects-diagram__secondary-title{border-left:4px solid var(--primary-color);color:var(--text-color);font-size:clamp(1.1rem,2.5vw,1.25rem);font-weight:700;letter-spacing:-.02em;margin:1.5rem 0 .75rem;padding-left:.75rem}.projects-steps{counter-reset:project-step;display:flex;flex-direction:column;gap:1.25rem;list-style:none;margin:0;padding:0}.projects-step{background:var(--bg-color-project);border:1px solid var(--projects-border);border-radius:.75rem;box-shadow:var(--projects-card-shadow);margin:0;overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.projects-step:hover{border-color:#c3588859;box-shadow:var(--projects-card-shadow-hover)}.projects-step--optional{opacity:.98}.projects-step--optional .projects-step__title{background:linear-gradient(135deg,#c35888d9,#a04673f2)}.projects-step__title{align-items:center;background:var(--primary-color);color:#fff;counter-increment:project-step;display:flex;font-size:clamp(1rem,2.2vw,1.15rem);font-weight:700;gap:.5rem;line-height:1.35;margin:0;padding:.85rem 1rem}.projects-step__title:before{align-items:center;background:#fffffff2;border-radius:.35rem;color:var(--primary-color);content:counter(project-step);display:inline-flex;flex-shrink:0;font-size:.75rem;font-weight:800;height:1.65rem;justify-content:center;letter-spacing:0;min-width:1.65rem}.projects-step__emoji{font-size:1.15rem;line-height:1;margin-right:.15rem}.projects-step__body{padding:1rem 1.15rem 1.15rem 1.25rem}.projects-step__body ul{color:var(--text-color);margin:0;padding-left:1.2rem}.projects-step__body>ul{padding-left:1.1rem}.projects-step__body li{color:var(--ul--color);line-height:1.55;margin-bottom:.5rem}.projects-step__body li:last-child{margin-bottom:0}.projects-step__body ul ul{list-style:circle;margin-bottom:.25rem;margin-top:.4rem;padding-left:1.25rem}.projects-step__body strong{color:var(--text-color);font-weight:650}@media (max-width:40rem){#project-section.projects-page{padding-left:1rem;padding-right:1rem}.projects-step__title{flex-wrap:wrap}.projects-step__body{padding:.9rem 1rem 1rem}}.footer{align-items:center;background:#232526;background:linear-gradient(90deg,#414345,#232526);display:flex;grid-area:footer;justify-content:space-between;padding:1.5rem}.social-connect{font-size:.8rem;gap:.1rem}.footer_links,.social-connect{align-items:center;display:flex;justify-content:center}.footer_links{list-style:none;margin:0;padding:0}.footer_link{margin:.35rem}.footer_link a{color:#fff;text-decoration:none}.footer_link a:active,.footer_link a:hover{color:#ccc}.footer_link svg{display:flex}.social-connect #linkedIn{height:22px;width:22px}.social-connect #youtube{height:26px;width:26px}.designedBy{align-items:center;color:#fff;display:flex;font-size:.8rem}.designedByText{font-size:.8rem;margin-left:.4rem}@media (max-width:40rem){.footer{padding:.5rem}.footer_link{margin:0}.social-connect p{font-size:.6rem}.social-connect #linkedIn{height:18px;width:18px}.social-connect #youtube{height:23px;width:23x}.designedBy{align-items:center;color:#fff;display:flex;font-size:.75rem}.designedByText{font-size:.75rem;margin-left:.3rem}}.loader{animation:spin 2s linear infinite;border:.2rem solid #f3f3f3;border-radius:50%;border-top-color:#c35888;height:1rem;width:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.popup{align-items:center;animation:popup-backdrop-in .25s ease forwards;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#0f121c8c;box-sizing:border-box;display:flex;inset:0;justify-content:center;padding:1.25rem;position:fixed;z-index:1000}.popup-dialog{animation:popup-dialog-in .35s cubic-bezier(.22,1,.36,1) forwards;background:#fff;background:var(--bg-color-contact-form,#fff);border:1px solid #1a1d241a;border-radius:1rem;box-shadow:0 4px 6px #1a1d240a,0 24px 48px #1a1d2424;color:#1a1d24;color:var(--text-color,#1a1d24);max-width:22rem;padding:1.75rem 1.5rem 1.5rem;position:relative;text-align:center;width:100%}[data-theme=dark] .popup-dialog{border-color:#ffffff1f;box-shadow:0 4px 24px #00000073,0 0 0 1px #ffffff0f}.popup-dialog__icon{display:flex;justify-content:center;margin-bottom:1rem}.popup-dialog__svg{display:block;filter:drop-shadow(0 4px 12px rgba(5,150,105,.35))}.popup-dialog__title{color:#1a1d24;color:var(--text-color,#1a1d24);font-size:clamp(1.2rem,3.5vw,1.4rem);font-weight:700;letter-spacing:-.02em;margin:0 0 .65rem}.popup-dialog__text{color:#5c6370;color:var(--ul--color,#5c6370);font-size:.95rem;font-weight:400;line-height:1.55;margin:0 0 1.35rem}.popup-dialog__action{background:#c35888;background:var(--primary-color,#c35888);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:700;letter-spacing:.02em;min-height:2.75rem;padding:.65rem 1rem;transition:filter .15s ease,transform .1s ease;width:100%}.popup-dialog__action:hover{filter:brightness(1.08)}.popup-dialog__action:active{transform:scale(.99)}.popup-dialog__action:focus{outline:none}.popup-dialog__action:focus-visible{outline:2px solid #c35888;outline:2px solid var(--primary-color,#c35888);outline-offset:3px}@keyframes popup-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes popup-dialog-in{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width:40rem){.popup-dialog{max-width:none}}:root{--my-custom-color:#f4f4f4;--primary-color:#c35888;--bg-color:linear-gradient(34deg,#fdfbf0,#ebf6ed);--bg-color-skill:#fff;--bg-color-project:#fff;--bg-color-contact:linear-gradient(34deg,#fdfbf0,#ebf6ed);--bg-color-contact-form:#fff;--text-color:#000;--ul--color:#4a4c50;--header-bg:linear-gradient(90deg,#414345,#232526);--box-shadow-skills:#00000029 0px 1px 4px}[data-theme=dark]{--bg-color:#121212;--bg-color-skill:#121212;--bg-color-project:#121212;--bg-color-contact:#121212;--bg-color-contact-form:#121212;--text-color:#fff;--ul--color:#fff;--box-shadow-skills:#f0ebeb29 0px 1px 4px}html{font-size:100%;height:100%}#root,body{background:linear-gradient(34deg,#fdfbf0,#ebf6ed);background:var(--bg-color);color:#000;color:var(--text-color);height:100vh;margin:0;padding:0}.app-grid-container{display:grid;grid-template-areas:"header" "main" "footer";grid-template-rows:auto 1fr auto;height:100vh;margin:0;width:100%}.theme-toggle{background:#000;background:var(--text-color);border:none;border-radius:50%;color:linear-gradient(34deg,#fdfbf0,#ebf6ed);color:var(--bg-color);cursor:pointer;height:1.4rem;width:1.4rem}.admin-nav{background:linear-gradient(180deg,#1e1e22,#1a1a1a);border-bottom:1px solid #ffffff14;box-shadow:0 0 0 1px #00000026;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;position:sticky;top:0;z-index:1000}.admin-nav__inner{align-items:center;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin:0 auto;max-width:1100px;padding:.65rem clamp(1rem,3vw,1.5rem)}.admin-nav__brand{align-items:center;color:#fff;display:flex;flex-shrink:0;font-size:1.05rem;font-weight:700;gap:.5rem;letter-spacing:-.02em;text-decoration:none;transition:color .15s,opacity .15s}.admin-nav__brand:hover{color:#f0c8d8}.admin-nav__brand-mark{align-items:center;background:#c3588840;border-radius:8px;color:#e8a0bc;display:flex;font-size:.85rem;font-weight:800;height:2rem;justify-content:center;width:2rem}.admin-nav__divider{background:#ffffff1f;flex-shrink:0;height:1.5rem;width:1px}@media (max-width:480px){.admin-nav__divider{display:none}}.admin-nav__links{align-items:center;display:flex;flex:1 1;gap:.25rem;list-style:none;margin:0;min-width:0;padding:0}.admin-nav__links li{display:flex}.admin-nav__link{align-items:center;border-radius:8px;color:#ffffffb8;display:inline-flex;font-size:.9rem;font-weight:600;padding:.45rem .85rem;text-decoration:none;transition:color .15s,background .15s}.admin-nav__link:hover{background:#ffffff0f;color:#fff}.admin-nav__link--active{background:#c3588840;box-shadow:inset 0 0 0 1px #c3588859;color:#fff}.admin-nav__logout{background:#c35888;border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.875rem;font-weight:600;padding:.45rem 1rem;transition:background .15s,transform .1s}.admin-nav__logout:hover{background:#a84878}.admin-nav__logout:active{transform:scale(.98)}.visitor-list{--vl-bg:#f6f7f9;--vl-surface:#fff;--vl-border:#e2e5eb;--vl-text:#1a1d24;--vl-muted:#5c6370;--vl-accent:#c35888;--vl-accent-dim:#c358881f;--vl-radius:12px;--vl-radius-sm:8px;--vl-shadow:0 1px 3px #1a1d240f;--vl-shadow-md:0 4px 24px #1a1d2414;background:var(--vl-bg);color:var(--vl-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:calc(100vh - 120px);padding:clamp(1rem,3vw,2rem) clamp(1rem,4vw,2.5rem) 3rem}.visitor-list__inner{margin:0 auto;max-width:1100px}.visitor-list__hero{background:linear-gradient(135deg,#1a1a1a,#2d2f36);border-radius:var(--vl-radius);box-shadow:var(--vl-shadow-md);color:#fff;margin-bottom:1.25rem;padding:1.75rem 1.5rem 1.5rem}.visitor-list__hero h1{font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem}.visitor-list__hero p{font-size:.95rem;line-height:1.5;margin:0;max-width:56ch;opacity:.88}.visitor-list__toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1rem}.visitor-list__search-wrap{flex:1 1;max-width:360px;min-width:200px;position:relative}.visitor-list__search-wrap svg{color:var(--vl-muted);height:1.1rem;left:.85rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:1.1rem}.visitor-list__search{background:var(--vl-surface);border:1px solid var(--vl-border);border-radius:var(--vl-radius-sm);box-sizing:border-box;font-size:.95rem;padding:.65rem .85rem .65rem 2.5rem;transition:border-color .15s,box-shadow .15s;width:100%}.visitor-list__search:hover{border-color:#c5cad3}.visitor-list__search:focus{border-color:var(--vl-accent);box-shadow:0 0 0 3px var(--vl-accent-dim);outline:none}.visitor-list__meta{color:var(--vl-muted);font-size:.85rem;margin-left:auto}.visitor-list__card{background:var(--vl-surface);border:1px solid var(--vl-border);border-radius:var(--vl-radius);box-shadow:var(--vl-shadow);overflow:hidden}.visitor-list__table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.visitor-list__table{border-collapse:collapse;font-size:.9rem;width:100%}.visitor-list__table caption{caption-side:top;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:1rem 1.15rem .5rem}.visitor-list__table caption,.visitor-list__table thead th{color:var(--vl-muted);text-align:left;text-transform:uppercase}.visitor-list__table thead th{background:linear-gradient(180deg,#f9fafb,#f3f4f6);font-size:.72rem;font-weight:700;letter-spacing:.06em;white-space:nowrap}.visitor-list__table tbody td,.visitor-list__table thead th{border-bottom:1px solid var(--vl-border);padding:.85rem 1rem}.visitor-list__table tbody td{line-height:1.45;vertical-align:top}.visitor-list__table tbody tr:last-child td{border-bottom:none}.visitor-list__table tbody tr{transition:background .12s}.visitor-list__table tbody tr:hover{background:#c358880a}.visitor-list__id{color:var(--vl-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visitor-list__name{color:var(--vl-text);font-weight:600}.visitor-list__email a{color:var(--vl-accent);text-decoration:none;word-break:break-all}.visitor-list__email a:hover{text-decoration:underline}.visitor-list__message{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--vl-text);display:-webkit-box;max-width:280px;overflow:hidden}@media (min-width:900px){.visitor-list__message{-webkit-line-clamp:4;max-width:360px}}.visitor-list__time{color:var(--vl-muted);font-size:.85rem;white-space:nowrap}.visitor-list__pagination{align-items:center;background:#fafbfc;border-top:1px solid var(--vl-border);display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;padding:1rem 1.15rem}.visitor-list__btn{align-items:center;background:#fff;border:1px solid var(--vl-border);border-radius:var(--vl-radius-sm);color:var(--vl-text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;font-weight:600;justify-content:center;min-width:7rem;padding:.55rem 1.1rem;transition:background .15s,border-color .15s,opacity .15s}.visitor-list__btn:hover:not(:disabled){background:var(--vl-bg);border-color:#c5cad3}.visitor-list__btn:disabled{cursor:not-allowed;opacity:.45}.visitor-list__btn--primary{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.visitor-list__btn--primary:hover:not(:disabled){background:#2d2f36;border-color:#2d2f36}.visitor-list__empty{background:var(--vl-surface);border:1px dashed var(--vl-border);border-radius:var(--vl-radius);color:var(--vl-muted);padding:3rem 1.5rem;text-align:center}.visitor-list__empty h2{color:var(--vl-text);font-size:1.15rem;margin:0 0 .5rem}.visitor-list__empty p{font-size:.95rem;line-height:1.5;margin:0 auto;max-width:40ch}.visitor-list__search-match{color:var(--vl-muted);line-height:1.5;margin:0;padding:2rem 1rem;text-align:center}.visitor-list__search-match strong{color:var(--vl-text)}.profile-editor{--pe-bg:#f6f7f9;--pe-surface:#fff;--pe-border:#e2e5eb;--pe-text:#1a1d24;--pe-muted:#5c6370;--pe-accent:#c35888;--pe-accent-dim:#c358881f;--pe-success:#0d7a3e;--pe-danger:#c44c6a;--pe-radius:12px;--pe-radius-sm:8px;--pe-shadow:0 1px 3px #1a1d240f;--pe-shadow-md:0 4px 24px #1a1d2414;background:var(--pe-bg);color:var(--pe-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:calc(100vh - 120px);padding:clamp(1rem,3vw,2rem) clamp(1rem,4vw,2.5rem) 3rem}.profile-editor__inner{margin:0 auto;max-width:880px}.profile-editor__hero{background:linear-gradient(135deg,#1a1a1a,#2d2f36);border-radius:var(--pe-radius);box-shadow:var(--pe-shadow-md);color:#fff;margin-bottom:1.5rem;padding:1.75rem 1.5rem 1.5rem}.profile-editor__hero h1{font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem}.profile-editor__hero p{font-size:.95rem;line-height:1.5;margin:0;max-width:52ch;opacity:.88}.profile-editor__badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.profile-editor__badge{align-items:center;background:#ffffff1a;border:1px solid #ffffff26;border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.35rem;letter-spacing:.04em;padding:.35rem .65rem;text-transform:uppercase}.profile-editor__callout{align-items:flex-start;background:var(--pe-surface);border:1px solid var(--pe-border);border-radius:var(--pe-radius-sm);box-shadow:var(--pe-shadow);color:var(--pe-muted);display:flex;font-size:.9rem;gap:.75rem;line-height:1.55;margin-bottom:1.75rem;padding:1rem 1.1rem}.profile-editor__callout-icon{color:var(--pe-accent);flex-shrink:0;height:1.35rem;margin-top:.1rem;width:1.35rem}.profile-editor__callout strong{color:var(--pe-text)}.profile-editor__callout code{background:var(--pe-bg);border-radius:4px;color:var(--pe-text);font-size:.82em;padding:.12em .35em}.profile-editor__section{margin-bottom:2rem}.profile-editor__section-title{align-items:center;color:var(--pe-text);display:flex;font-size:1.1rem;font-weight:700;gap:.6rem;letter-spacing:-.02em;margin:0 0 1rem}.profile-editor__section-title:before{background:var(--pe-accent);border-radius:2px;content:"";height:1.15em;width:4px}.profile-editor__section-title--collapsible{align-items:stretch}.profile-editor__collapsible-trigger{align-items:center;background:#0000;border:none;border-radius:var(--pe-radius-sm);color:inherit;cursor:pointer;display:flex;flex:1 1;font:inherit;font-weight:700;gap:.5rem;letter-spacing:-.02em;margin:0;min-width:0;padding:.2rem 0;text-align:left;transition:background .15s}.profile-editor__collapsible-trigger:hover{background:#1a1d240a}.profile-editor__collapsible-trigger:focus{outline:none}.profile-editor__collapsible-trigger:focus-visible{outline:2px solid var(--pe-accent);outline-offset:2px}.profile-editor__collapsible-trigger-text{flex:1 1;min-width:0}.profile-editor__collapse-icon-wrap{align-items:center;color:var(--pe-muted);display:inline-flex;flex-shrink:0;justify-content:center;transform:rotate(-90deg);transition:transform .2s ease}.profile-editor__collapse-icon-wrap.is-open{color:var(--pe-text);transform:rotate(0deg)}.profile-editor__collapse-icon{display:block}.profile-editor__collapsible-panel[hidden]{display:none!important}.profile-editor__card--nested,.profile-editor__collapsible-panel:not([hidden]){margin-bottom:0}.profile-editor__empty{background:var(--pe-surface);border:1px dashed var(--pe-border);border-radius:var(--pe-radius-sm);color:var(--pe-muted);font-size:.95rem;padding:2rem 1.5rem;text-align:center}.profile-editor__card{background:var(--pe-surface);border:1px solid var(--pe-border);border-radius:var(--pe-radius);box-shadow:var(--pe-shadow);margin-bottom:1rem;overflow:hidden}.profile-editor__card-head{align-items:center;background:linear-gradient(180deg,var(--pe-accent-dim) 0,#0000 100%);border-bottom:1px solid var(--pe-border);display:flex;gap:1rem;justify-content:space-between;padding:.85rem 1.15rem}.profile-editor__card-head--collapsible{align-items:center}.profile-editor__card-title{color:var(--pe-text);font-size:.95rem;font-weight:700;margin:0}.profile-editor__card-title--collapsible{align-items:center;display:flex;flex:1 1;min-width:0}.profile-editor__card-toggle{align-items:center;background:#0000;border:none;border-radius:var(--pe-radius-sm);color:inherit;cursor:pointer;display:flex;font:inherit;font-size:.95rem;font-weight:700;gap:.45rem;margin:0;min-width:0;padding:0;text-align:left;transition:background .15s;width:100%}.profile-editor__card-toggle:hover{background:#1a1d240a}.profile-editor__card-toggle:focus{outline:none}.profile-editor__card-toggle:focus-visible{outline:2px solid var(--pe-accent);outline-offset:2px}.profile-editor__card-toggle-title{flex:1 1;min-width:0}.profile-editor__card-body{padding:1.15rem 1.15rem 1.25rem}.profile-editor__field{margin-bottom:1rem}.profile-editor__field:last-child{margin-bottom:0}.profile-editor__label{color:var(--pe-muted);display:block;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.35rem;text-transform:uppercase}.profile-editor__input,.profile-editor__textarea{background:#fafbfc;border:1px solid var(--pe-border);border-radius:var(--pe-radius-sm);box-sizing:border-box;color:var(--pe-text);font-size:.95rem;line-height:1.45;padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.profile-editor__input:hover,.profile-editor__textarea:hover{border-color:#c5cad3}.profile-editor__input:focus,.profile-editor__textarea:focus{background:#fff;border-color:var(--pe-accent);box-shadow:0 0 0 3px var(--pe-accent-dim);outline:none}.profile-editor__textarea{min-height:5rem;resize:vertical}.profile-editor__bullets{border-top:1px solid var(--pe-border);margin-top:1.25rem;padding-top:1.15rem}.profile-editor__bullets-label{color:var(--pe-muted);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.profile-editor__bullet-row{align-items:flex-start;display:flex;gap:.65rem;margin-bottom:.65rem}@media (max-width:640px){.profile-editor__bullet-row{flex-wrap:wrap}.profile-editor__bullet-row .profile-editor__textarea{flex:1 1 100%;width:100%}.profile-editor__bullet-row .profile-editor__btn--danger{margin-left:auto}}.profile-editor__bullet-num{align-items:center;background:var(--pe-accent-dim);border-radius:6px;color:var(--pe-accent);display:flex;flex-shrink:0;font-size:.7rem;font-weight:700;height:1.65rem;justify-content:center;margin-top:.35rem;width:1.65rem}.profile-editor__bullet-row .profile-editor__textarea{flex:1 1;min-height:4.5rem}.profile-editor__toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.profile-editor__btn{align-items:center;border:1px solid #0000;border-radius:var(--pe-radius-sm);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;font-weight:600;gap:.4rem;justify-content:center;padding:.55rem 1rem;transition:background .15s,color .15s,border-color .15s,transform .1s}.profile-editor__btn:active:not(:disabled){transform:scale(.98)}.profile-editor__btn:disabled{cursor:not-allowed;opacity:.65}.profile-editor__btn--primary{background:#1a1a1a;color:#fff}.profile-editor__btn--primary:hover:not(:disabled){background:#2d2f36}.profile-editor__btn--accent{background:var(--pe-accent);color:#fff}.profile-editor__btn--accent:hover:not(:disabled){filter:brightness(1.06)}.profile-editor__btn--ghost{background:#fff;border-color:var(--pe-border);color:var(--pe-text)}.profile-editor__btn--ghost:hover:not(:disabled){background:var(--pe-bg);border-color:#c5cad3}.profile-editor__btn--danger{background:#fff;border-color:#c44c6a59;color:var(--pe-danger)}.profile-editor__btn--danger:hover:not(:disabled){background:#c44c6a14}.profile-editor__add-row{margin:.5rem 0 1.75rem}.profile-editor__sticky-actions{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f7f9eb;border:1px solid var(--pe-border);border-radius:var(--pe-radius);bottom:0;box-shadow:0 -4px 24px #1a1d240f;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:1.5rem;padding:1rem 1.15rem;position:sticky;z-index:10}.profile-editor__status{font-size:.9rem;font-weight:500}.profile-editor__status--ok{color:var(--pe-success)}.profile-editor__status--err{color:var(--pe-danger)}.profile-editor__status--muted{color:var(--pe-muted)}.profile-editor__alert{border-radius:var(--pe-radius-sm);font-size:.95rem;line-height:1.5;margin-bottom:1rem;padding:1rem 1.15rem}.profile-editor__alert--error{background:#c44c6a14;border:1px solid #c44c6a40;color:#8b2940}.profile-editor__alert--warn{background:#eab3081f;border:1px solid #eab30859;color:#7c5d0a}.profile-editor__alert--info{background:#3b82f614;border:1px solid #3b82f633;color:#1e4a7a}
/*# sourceMappingURL=main.e22391aa.css.map*/