:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f5ef;--foreground:#1f2937;--card:#ffffffd1;--border:#1118271a;--primary:#234b4d;--primary-foreground:#f9fafb;--secondary:#ece8dc;--secondary-foreground:#334155;--muted:#f1efe9;--muted-foreground:#6b7280}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--foreground);background:radial-gradient(circle at 0 0,#234b4d14,#0000 24%),linear-gradient(#fbfaf7 0%,#f4f1ea 100%);margin:0;font-family:Inter,Segoe UI,sans-serif;line-height:1.6}main{min-height:100vh}section{position:relative}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}li{list-style:none}li::marker{content:""!important}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(16px)scale(.985)}.reveal.is-visible{opacity:1;transform:translateY(0)scale(1)}.hero-enter{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) forwards hero-enter}@keyframes hero-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reveal,.hero-enter{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.mx-auto{margin-inline:auto}.max-w-3xl{max-width:48rem}.min-h-screen{min-height:100vh}.min-h-\[88vh\]{min-height:88vh}.px-6{padding-inline:1.5rem}.py-20{padding-block:5rem}.py-24{padding-block:6rem}.pb-28{padding-bottom:7rem}.pt-6{padding-top:1.5rem}.pb-10{padding-bottom:2.5rem}.pl-8{padding-left:2rem}.p-5{padding:1.25rem}.px-4{padding-inline:1rem}.py-6{padding-block:1.5rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.flex{display:flex}.grid{display:grid}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-6{column-gap:1.5rem}.gap-y-3{row-gap:.75rem}.grid-cols-2,.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width>=640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.rounded-md{border-radius:.5rem}.rounded-lg{border-radius:.75rem}.rounded-xl{border-radius:1rem}.rounded-full{border-radius:999px}.overflow-hidden{overflow:hidden}.bg-background{background-color:var(--background)}.bg-card{background-color:var(--card)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.text-primary{color:var(--primary)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.font-mono{font-family:SFMono-Regular,ui-monospace,monospace}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:1.75rem}.text-4xl{font-size:2.5rem;line-height:1.1}.text-6xl{font-size:3.75rem;line-height:1}.leading-tight{line-height:1.2}.leading-relaxed{line-height:1.75}.tracking-wide{letter-spacing:.04em}.tracking-tight{letter-spacing:-.03em}.text-pretty{text-wrap:pretty}.h-px{height:1px}.h-4{height:1rem}.w-4{width:1rem}.h-2\.5{height:.625rem}.w-2\.5{width:.625rem}.w-full{width:100%}.max-w-xl{max-width:40rem}.shrink-0{flex-shrink:0}.transition-colors{transition:color .2s,background-color .2s,border-color .2s}.transition-all{transition:all .3s}.duration-300{transition-duration:.3s}.hover\:-translate-y-1:hover{transform:translateY(-.25rem)}.hover\:-translate-y-0\.5:hover{transform:translateY(-.125rem)}.hover\:border-primary\/40:hover{border-color:#234b4d59}.hover\:shadow-lg:hover{box-shadow:0 10px 25px #11182714}.hover\:bg-primary\/90:hover{background-color:#234b4deb}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration:underline}.hover\:translate-x-0\.5:hover{transform:translate(.125rem)}section[id=inicio]{padding-top:5rem}section[id=inicio] h1{letter-spacing:-.04em;font-size:clamp(2.4rem,5vw,4.8rem);font-weight:700;line-height:.98}section[id=inicio] p:first-of-type{letter-spacing:.12em;text-transform:uppercase}section[id=inicio]>div:last-child{color:var(--muted-foreground)}section[id=inicio] a[href=\#proyectos],section[id=inicio] a[href=\#contacto]{border-radius:.65rem;align-items:center;gap:.5rem;padding:.8rem 1.25rem;font-size:.875rem;font-weight:600;transition:transform .22s,box-shadow .22s,background .22s,color .22s;display:inline-flex}section[id=inicio] a[href=\#proyectos]{color:var(--primary-foreground);background:linear-gradient(#234b4df5,#1c3436f5);border:1px solid #234b4da6;box-shadow:0 8px 18px #234b4d29}section[id=inicio] a[href=\#contacto]{border:1px solid var(--border);color:var(--foreground);background:#ffffff8f;box-shadow:0 3px 10px #11182708}section[id=inicio] a[href=\#proyectos]:hover,section[id=inicio] a[href=\#contacto]:hover{transform:translateY(-1px)}section[id=inicio] a[href=\#proyectos]:hover{box-shadow:0 12px 24px #234b4d3d}section[id=inicio] a[href=\#contacto]:hover{background:#ffffffd9}.tech-pill{border:1px solid var(--border);min-height:4.5rem;color:var(--muted-foreground);background:#ffffffb8;border-radius:.95rem;align-items:center;gap:.65rem;padding:.9rem 1rem;transition:transform .25s,border-color .25s,color .25s,background .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #1118270a}.tech-pill:hover{color:var(--foreground);background:#fffffff2;border-color:#234b4d61;transform:translateY(-2px);box-shadow:0 10px 20px #1118270f}.tech-pill__logo{object-fit:contain;filter:grayscale()brightness(.7);width:1.35rem;height:1.35rem;transition:filter .25s,transform .25s}.tech-pill:hover .tech-pill__logo{filter:grayscale(0)brightness();transform:scale(1.08)}.project-card{border:1px solid var(--border);background:#ffffffc7;border-radius:1.1rem;flex-direction:column;height:100%;transition:transform .28s,box-shadow .28s,border-color .28s;display:flex;overflow:hidden;box-shadow:0 10px 20px #0f172a0d}.project-card:hover{border-color:#234b4d59;transform:translateY(-4px);box-shadow:0 18px 30px #0f172a17}.project-thumb{background:linear-gradient(135deg,#234b4df2,#132022d1);align-items:flex-end;min-height:14rem;padding:1rem;display:flex;position:relative;overflow:hidden}.project-thumb:after{content:"";background:linear-gradient(#02061705,#02061759);position:absolute;inset:0}.project-thumb__image{object-fit:cover;object-position:center center;opacity:.62;width:100%;height:100%;position:absolute;inset:0}.project-thumb__pill{z-index:1;color:#f8fafc;letter-spacing:.04em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff2e;border-radius:999px;align-items:center;padding:.35rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex;position:relative}.project-card--vertical .project-thumb{min-height:18rem}.project-card--vertical .project-thumb__image{object-fit:contain;object-position:center center;opacity:.95;background:#fff}.project-content{flex-direction:column;flex:1;padding:1.25rem;display:flex}.project-stack{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.project-stack li{border:1px solid var(--border);background:var(--secondary);color:var(--secondary-foreground);border-radius:999px;padding:.3rem .65rem;font-family:SFMono-Regular,ui-monospace,monospace;font-size:.72rem}.timeline{border-left:1px solid var(--border);margin-top:2.5rem}.timeline-item{padding-bottom:2.5rem;padding-left:2rem;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:var(--primary);border:2px solid var(--background);border-radius:999px;width:.65rem;height:.65rem;position:absolute;top:.35rem;left:-.27rem}.download-btn{background:var(--primary);color:var(--primary-foreground);border-radius:.65rem;align-items:center;gap:.65rem;margin-top:1.5rem;padding:.9rem 1.15rem;font-weight:600;display:inline-flex;box-shadow:0 8px 18px #234b4d2e}.contact-link{color:var(--primary);text-underline-offset:.2rem;text-decoration:underline}footer{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.5rem}
