:root{--color-primary:#1e3a5f;--color-secondary:#00b4a6;--color-background:#f8f9fa;--color-text-heading:#2d3748;--color-text-body:#4a5568;--color-white:#fff;--color-cream:#f7f4ee;--color-border:#e2e8f0;--font-display:"Sora", "Avenir Next", "Segoe UI", sans-serif;--font-body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;--shadow-sm:0 1px 2px #1e3a5f0f;--shadow-md:0 8px 20px -8px #1e3a5f24;--radius:16px;--content-width:1120px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);letter-spacing:-.011em;color:var(--color-text-body);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1.05rem;font-weight:400;line-height:1.65}img{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px}.app{flex-direction:column;min-height:100vh;display:flex}.nav{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);background:#ffffffeb;position:sticky;top:0}.nav-inner{max-width:var(--content-width);margin:0 auto;padding:1.1rem 2rem}.nav-logo{font-family:var(--font-display);letter-spacing:-.04em;color:var(--color-primary);font-size:1.35rem;font-weight:600;text-decoration:none}.nav-logo:hover{color:var(--color-secondary)}.banner{isolation:isolate;background-image:url(/images/ravelo-banner.jpg);background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:28rem;display:flex;position:relative;overflow:hidden}.banner:before{content:"";z-index:0;background:#1e3a5fb8;position:absolute;inset:0}.banner-content{z-index:1;text-align:center;max-width:46rem;color:var(--color-cream);padding:3.5rem 2rem;position:relative}.banner-title{font-family:var(--font-display);letter-spacing:-.045em;color:var(--color-cream);font-size:clamp(2.15rem,5vw,3.35rem);font-weight:500;line-height:1.08}.banner-title:after{content:"";background:var(--color-secondary);border-radius:999px;width:3.25rem;height:3px;margin:1.25rem auto 0;display:block}.banner-description{letter-spacing:-.012em;color:#f7f4eeeb;margin-top:1.5rem;font-size:1.125rem;font-weight:400;line-height:1.6}.main{width:100%;max-width:var(--content-width);flex:1;margin:0 auto;padding:5rem 2rem 3rem}.section{margin-bottom:5.5rem;scroll-margin-top:5.5rem}.section-header{text-align:center;margin-bottom:2.5rem}.section-title{font-family:var(--font-display);letter-spacing:-.035em;color:var(--color-text-heading);margin-bottom:.75rem;font-size:clamp(1.55rem,3vw,1.85rem);font-weight:500}.section-description{max-width:40rem;margin:0 auto;font-size:1.05rem;line-height:1.65}.separator{border:none;border-top:1px solid var(--color-border);opacity:.7;margin:0 0 5.5rem}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.25rem;display:grid}.tech-card{background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid #0000;flex-direction:column;align-items:center;gap:1rem;padding:1.75rem 1.25rem 1.5rem;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex}.tech-card:hover{border-color:var(--color-secondary);transform:translateY(-4px);box-shadow:0 16px 28px -12px #1e3a5f33}.tech-image{object-fit:contain;width:72px;height:72px}.tech-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text-heading);text-align:center;font-size:.9375rem;font-weight:500}.services-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.service-card{background:var(--color-white);border-radius:var(--radius);height:100%;box-shadow:var(--shadow-md);border:1px solid #0000;padding:1.85rem 1.7rem;transition:transform .25s,border-color .25s,box-shadow .25s}.service-card:hover{border-color:var(--color-secondary);transform:translateY(-4px);box-shadow:0 16px 28px -12px #1e3a5f33}.service-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text-heading);margin-bottom:.7rem;font-size:1.2rem;font-weight:500;line-height:1.25}.service-description{font-size:.9875rem;line-height:1.65}.contact-container{justify-content:center;display:flex}.contact-link{background:var(--color-primary);color:var(--color-white);letter-spacing:-.015em;box-shadow:var(--shadow-md);border-radius:12px;align-items:center;gap:.7rem;padding:.95rem 1.9rem;font-size:.9875rem;font-weight:500;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.contact-link:hover{background:var(--color-secondary);transform:translateY(-2px)}.linkedin-icon{width:22px;height:22px}.footer{text-align:center;color:#ffffffe6;letter-spacing:-.01em;background:linear-gradient(135deg, var(--color-primary) 0%, #2d4a6f 100%);margin-top:auto;padding:2.5rem 2rem;font-size:.875rem}.footer-legal{color:#ffffffb3;letter-spacing:.02em;margin-top:.35rem;font-size:.75rem;display:block}@media (width<=960px){.services-grid{grid-template-columns:1fr}}@media (width<=768px){.nav-inner{padding:.95rem 1.25rem}.banner{min-height:22rem}.banner-content{padding:2.5rem 1.25rem}.banner-description{font-size:1.05rem}.main{padding:3.25rem 1.25rem 2rem}.section,.separator{margin-bottom:3.75rem}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem}.tech-image{width:60px;height:60px}}@media (width<=480px){.banner{min-height:20rem}.contact-link{justify-content:center;width:100%}}
