:root{color-scheme:light;--surface-background:#fff;--surface-raised:#fafafa;--border-primary:#e5e7eb;--border-secondary:#d4d4d8;--text-primary:#000;--text-prose-heading:#111827;--text-prose-body:#374151;--text-secondary:#3f3f46;--text-tertiary:#52525b;--text-muted:#71717a;--text-emphasis:#09090b;--accent-500:#f47920;--accent-600:#d9650b;--accent-100:#fdeee1;--accent-700:#b95314;--accent-800:#9a4516;--accent-text:var(--accent-600);--accent-text-hover:var(--accent-700);--font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--text-hero:700 32px/40px var(--font-family);--text-section:900 20px/28px var(--font-family);--text-subsection:700 18px/28px var(--font-family);--text-nav-card:500 18px/28px var(--font-family);--text-body:400 16px/24px var(--font-family);--text-body-semibold:600 16px/24px var(--font-family);--text-small-meta:400 14px/20px var(--font-family);--text-tag:400 12px/16px var(--font-family);--radius-card:16px;--radius-medium:12px;--radius-large:24px;--radius-pill:9999px;--spacing-2:2px;--spacing-4:4px;--spacing-8:8px;--spacing-10:10px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--spacing-64:64px;--spacing-128:128px;--header-background:#fff9}[data-theme=dark]{color-scheme:dark;--surface-background:#09090b;--surface-raised:#18181b;--border-primary:#27272a;--border-secondary:#3f3f46;--text-primary:#fff;--text-prose-heading:#f4f4f5;--text-prose-body:#d4d4d8;--text-secondary:#a1a1aa;--text-tertiary:#8e8e96;--text-muted:#86868f;--text-emphasis:#fafafa;--accent-500:#f47920;--accent-600:#d9650b;--accent-900:#3a2210;--accent-text:var(--accent-500);--accent-text-hover:var(--accent-600);--header-background:#09090b99}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,u,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{vertical-align:baseline;border:0;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,div{box-sizing:border-box;display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:""}table{border-collapse:collapse;border-spacing:0}input::-ms-clear{display:none}body{font:var(--text-body);font-optical-sizing:auto}p{font:var(--text-body)}h1{font:var(--text-hero)}h2{font:var(--text-section)}h3{font:var(--text-subsection)}h4{font:var(--text-nav-card)}h5{font:var(--text-body-semibold)}h6{font:var(--text-body)}small,.meta{font:var(--text-small-meta)}.tag{font:var(--text-tag)}html{box-sizing:border-box}*,:before,:after{box-sizing:inherit}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}body{background-color:var(--surface-background);color:var(--text-primary);-webkit-font-smoothing:antialiased;transition:background-color .2s,color .2s}a{color:var(--text-primary);text-decoration:none}a:hover{color:var(--accent-text-hover)}[class$=__container]{width:100%;margin-left:auto;margin-right:auto;padding-left:.9375rem;padding-right:.9375rem}@media (width>=36em){[class$=__container]{max-width:576px}}@media (width>=48em){[class$=__container]{max-width:768px}}@media (width>=64em){[class$=__container]{max-width:1024px}}html,body{height:100%}.section{padding-bottom:var(--spacing-64)}.section__intro{color:var(--text-secondary);max-width:35rem;margin-block-end:var(--spacing-40)}.section__link{color:var(--accent-text);margin-block-start:var(--spacing-24);font-weight:700;display:inline-block}.section__link:hover{color:var(--accent-text-hover)}[id=servicios],[id=proyectos],[id=sobre-mi]{scroll-margin-top:5rem}.header{margin-top:3.4375rem;padding-block:.9375rem}@media (width>=36em){.header{margin-top:0}}.header__container{position:relative}.header__navigation{justify-content:space-between;align-items:center;display:flex}.header__logo,.header__logo:hover{color:var(--text-primary)}.header__logo svg{width:auto;height:2.5rem;display:block}.header__controls{align-items:center;column-gap:var(--spacing-8);margin-inline-start:auto;display:flex}@media (width>=36em){.header__controls{column-gap:.9375rem}}.header__link{color:var(--text-primary);display:inline-flex}.header__link:hover{color:var(--accent-text)}.header__link svg{width:1.25rem;height:1.25rem}.header__lang-link{font:var(--text-small-meta);font-weight:700}.header__btn-link{color:var(--text-primary);cursor:pointer;background-color:#0000;border:none;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;display:inline-flex}.header__btn-link:hover{color:var(--accent-text)}.header__btn-link svg{width:1.125rem;height:1.125rem}.header__btn-link .icon-moon,[data-theme=dark] .header .icon-sun{display:none}[data-theme=dark] .header .icon-moon{display:block}.header__fixed{backdrop-filter:blur(4px);background-color:var(--header-background);border:1px solid var(--border-primary);box-sizing:content-box;z-index:100;border-radius:1.5625rem;width:75%;padding-inline:1.125rem;position:fixed;top:.9375rem;left:50%;transform:translate(-50%)}@media (width>=36em){.header__fixed{width:auto;padding-inline:1.25rem}}.header__list{align-items:center;column-gap:var(--spacing-12);justify-content:center;display:flex}@media (width>=36em){.header__list{column-gap:.9375rem}}.header__item{height:1.25rem;padding-block:.625rem;font-size:.75rem;position:relative}@media (width>=36em){.header__item{font-size:.875rem}}.header__item a{height:1.25rem;line-height:1.3125rem;display:inline-block}.header__item a:hover{color:var(--text-primary)}.header__item:hover:after{background-color:var(--text-primary);content:"";height:.0625rem;position:absolute;bottom:-.0625rem;left:0;right:0}.header__item--active a{color:var(--text-primary)}.header__item--active:after{background-color:var(--accent-500);content:"";height:.0625rem;position:absolute;bottom:-.0625rem;left:0;right:0}.footer{border-top:1px solid var(--border-primary);color:var(--text-secondary);padding-block:var(--spacing-24) var(--spacing-32);margin-top:auto}.footer__inner{gap:var(--spacing-16);flex-direction:column;justify-content:space-between;display:flex}@media (width>=48em){.footer__inner{flex-direction:row;align-items:center}}.footer__copy{font:var(--text-small-meta);text-align:center;order:1;margin:0}@media (width>=48em){.footer__copy{text-align:start;order:0}}.footer__links{align-items:center;column-gap:var(--spacing-24);order:0;justify-content:center;display:flex}@media (width>=48em){.footer__links{order:1;justify-content:end}}.footer a{color:var(--text-primary);font:var(--text-small-meta)}.footer a:hover{color:var(--accent-text-hover)}.hero{padding-block:var(--spacing-48) var(--spacing-64)}.hero__container{flex-direction:column;display:flex}@media (width>=48em){.hero__container{flex-direction:row;align-items:center;column-gap:1.875rem}.hero__content{flex:auto;min-width:0}}.hero__tagline{color:var(--text-secondary);font:var(--text-small-meta);margin-block-end:var(--spacing-16)}.hero__title{margin-block-end:1.875rem;font-size:2rem}.hero__subtitle{color:var(--text-secondary);font:var(--text-body-semibold);margin-block-end:var(--spacing-16);font-size:1.125rem}.hero__description{color:var(--text-secondary);max-width:35rem;margin-block-end:var(--spacing-24);font-size:1.125rem;line-height:1.5}.hero__description p{margin:0}.hero__ctas{align-items:center;column-gap:var(--spacing-16);row-gap:var(--spacing-16);flex-wrap:wrap;margin-block-end:var(--spacing-24);display:flex}.hero__cta{background-color:var(--accent-500);color:#fff;cursor:pointer;letter-spacing:.025rem;border:none;border-radius:1.875rem;padding-block:.75rem;padding-inline:1.5rem;font-size:1.125rem;font-weight:700;line-height:1.33333;text-decoration:none;transition:background-color .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out;display:inline-block}.hero__cta:hover,.hero__cta:focus,.hero__cta:active{background-color:var(--accent-600);color:#fff;text-decoration:none}.hero__cta--secondary{border:1px solid var(--border-primary);color:var(--text-primary);background-color:#0000}.hero__cta--secondary:hover,.hero__cta--secondary:focus,.hero__cta--secondary:active{border-color:var(--text-primary);color:var(--text-primary);background-color:#0000}.hero__social{column-gap:.9375rem;margin-top:1.875rem;display:flex}.hero__social a{color:var(--text-primary)}.hero__social a:hover{color:var(--accent-text-hover)}.hero__social svg{width:1.25rem;height:1.25rem}.hero__image{margin-top:var(--spacing-32)}@media (width>=64em){.hero__image{margin-top:.9375rem}}@media (width>=48em){.hero__image{flex:none}}.hero__image img{border-radius:1.875rem;width:auto;height:18.75rem;margin-inline:auto;display:block;transform:rotate(3deg);box-shadow:4px 4px 8px 1px #0000001a}.services__grid{gap:var(--spacing-24);grid-template-columns:1fr;display:grid}@media (width>=48em){.services__grid{grid-template-columns:repeat(2,1fr)}}.service-card{background-color:var(--surface-raised);border:1px solid var(--border-primary);border-radius:var(--radius-card);padding:var(--spacing-32);row-gap:var(--spacing-16);flex-direction:column;display:flex}.service-card__icon{color:var(--text-primary);width:1.5rem;height:1.5rem}.service-card__title{font:var(--text-subsection);margin:0}.service-card__body{color:var(--text-secondary)}.service-card__body p{margin:0}.service-card__tech{color:var(--text-muted);font:var(--text-small-meta);margin:0}.service-card__link{color:var(--accent-text);margin-block-start:auto;font-weight:700}.service-card__link:hover{color:var(--accent-text-hover)}.projects__container{padding-top:var(--spacing-24);padding-bottom:var(--spacing-128)}@media (width>=48em){.projects__container{padding-top:var(--spacing-48)}}.projects h1{margin-bottom:var(--spacing-24)}.projects__intro{color:var(--text-secondary);max-width:35rem;margin-block-end:var(--spacing-40)}.projects__section+.projects__section{margin-block-start:var(--spacing-64)}.projects__section h2{margin-block-end:var(--spacing-16)}.projects__section-intro{color:var(--text-secondary);max-width:35rem;margin-block-end:var(--spacing-24)}.projects__grid{gap:var(--spacing-24);grid-template-columns:1fr;display:grid}@media (width>=48em){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=64em){.projects__grid{grid-template-columns:repeat(3,1fr)}}.project-card{background-color:var(--surface-raised);border:1px solid var(--border-primary);border-radius:var(--radius-card);flex-direction:column;display:flex;overflow:hidden}.project-card__media{aspect-ratio:16/9;background-color:var(--surface-background);display:block;position:relative;overflow:hidden}.project-card__media img{object-fit:cover;width:100%;height:100%}.project-card__body{gap:var(--spacing-8);padding:var(--spacing-24);flex-direction:column;display:flex}.project-card__title{font:var(--text-nav-card);margin:0}.project-card__meta{color:var(--text-tertiary);font:var(--text-small-meta);margin:0}.project-card__tags{gap:var(--spacing-8);margin-top:var(--spacing-4);flex-wrap:wrap;display:flex}.project-card__link{color:var(--accent-text);align-items:center;column-gap:var(--spacing-4);margin-block-start:auto;margin-top:var(--spacing-8);font-weight:700;display:inline-flex}.project-card__link:hover{color:var(--accent-text-hover)}.project-card__link svg{width:1rem;height:1rem}.tag{border:1px solid var(--border-secondary);border-radius:var(--radius-pill);color:var(--text-tertiary);padding:var(--spacing-4) var(--spacing-10);display:inline-block}.about__container{padding-top:var(--spacing-24);padding-bottom:var(--spacing-128)}@media (width>=48em){.about__container{padding-top:var(--spacing-48)}}.about__title{margin-block-end:var(--spacing-32)}.about__prose{color:var(--text-secondary)}.about__prose p{margin-block-end:var(--spacing-24)}.about__prose p:last-child{margin-block-end:0}.about__facts{border-block:1px solid var(--border-primary);margin-block:var(--spacing-40)}.about__facts li{border-bottom:1px solid var(--border-primary);padding-block:var(--spacing-16)}.about__facts li:last-child{border-bottom:none}.about__ai h2{margin-block-end:var(--spacing-24)}.about__ai ul{margin-block-end:var(--spacing-24);padding-inline-start:1.5rem}.about__ai li{color:var(--text-secondary);margin-block-end:var(--spacing-12);list-style:outside}.form__field{margin-block-end:var(--spacing-20)}.form__field label{color:var(--text-secondary);font:var(--text-small-meta);margin-block-end:var(--spacing-8);font-weight:600;display:block}.form__field input[type=text],.form__field input[type=email],.form__field textarea{background-color:var(--surface-background);border:1px solid var(--border-primary);border-radius:var(--radius-medium);box-sizing:border-box;color:var(--text-primary);font:var(--text-body);width:100%;padding:.75rem 1rem}.form__field input[type=text]:focus,.form__field input[type=email]:focus,.form__field textarea:focus{border-color:var(--accent-text);box-shadow:0 0 0 .125rem color-mix(in srgb, var(--accent-text) 25%, transparent);outline:none}.form__field textarea{resize:vertical;min-height:8.75rem}.form__honeypot{clip:rect(0 0 0 0);opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.form__submit{background-color:var(--accent-500);color:#fff;cursor:pointer;letter-spacing:.025rem;border:none;border-radius:1.875rem;padding-block:.75rem;padding-inline:1.5rem;font-size:1.125rem;font-weight:700;line-height:1.33333;text-decoration:none;transition:background-color .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out;display:inline-block}.form__submit:hover,.form__submit:focus,.form__submit:active{background-color:var(--accent-600);color:#fff;text-decoration:none}.form__submit{width:100%}@media (width>=48em){.form__submit{width:auto}}.form__submit:disabled{cursor:not-allowed;opacity:.6}.form__status{font:var(--text-small-meta);margin-block:var(--spacing-16)}.form__error{color:var(--accent-text);font:var(--text-small-meta);margin-block-start:var(--spacing-4)}.contact__container{padding-top:var(--spacing-24);padding-bottom:var(--spacing-128)}@media (width>=48em){.contact__container{padding-top:var(--spacing-48)}}.contact h1{margin-bottom:var(--spacing-24)}.contact__intro{color:var(--text-secondary);max-width:35rem;margin-block-end:var(--spacing-40)}.contact__layout{display:block}@media (width>=48em){.contact__layout{column-gap:var(--spacing-32);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}}.contact__info{margin-block-end:var(--spacing-32)}@media (width>=48em){.contact__info{margin-block-end:0}}.contact__details{gap:var(--spacing-16);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.contact__details a{color:var(--text-primary);align-items:center;gap:var(--spacing-10);text-decoration:none;display:inline-flex}.contact__details a:hover{color:var(--accent-text)}.contact__details svg{flex:none;width:1.25rem;height:1.25rem}.contact__form{background-color:var(--surface-raised);border:1px solid var(--border-primary);border-radius:var(--radius-card);padding:var(--spacing-32)}.error-page{padding-block:var(--spacing-48) var(--spacing-128);text-align:center}.error-page__code{color:var(--accent-text);margin-block-end:var(--spacing-16);font-size:5rem;font-weight:900;line-height:1}.error-page h1{margin-block-end:var(--spacing-16)}.error-page__message{color:var(--text-secondary);margin-block-end:var(--spacing-32)}.error-page__ctas{align-items:center;column-gap:var(--spacing-16);justify-content:center;row-gap:var(--spacing-16);flex-wrap:wrap;display:flex}.error-page__cta{background-color:var(--accent-500);color:#fff;cursor:pointer;letter-spacing:.025rem;border:none;border-radius:1.875rem;padding-block:.75rem;padding-inline:1.5rem;font-size:1.125rem;font-weight:700;line-height:1.33333;text-decoration:none;transition:background-color .2s ease-in-out,color .2s ease-in-out,border-color .2s ease-in-out;display:inline-block}.error-page__cta:hover,.error-page__cta:focus,.error-page__cta:active{background-color:var(--accent-600);color:#fff;text-decoration:none}.error-page__cta--secondary{border:1px solid var(--border-primary);color:var(--text-primary);background-color:#0000}.error-page__cta--secondary:hover,.error-page__cta--secondary:focus,.error-page__cta--secondary:active{border-color:var(--text-primary);color:var(--text-primary);background-color:#0000}
