:root{--bg:#f5f7fc;--paper:#fff;--ink:#14243d;--muted:#53647b;--blue:#2459f5;--line:#dce3ee;--soft:#e9efff;--radius:18px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body.night{--bg:#101b30;--paper:#182740;--ink:#f4f7ff;--muted:#b1bfd3;--line:#334562;--soft:#203866;color-scheme:dark}a{color:inherit}button,input{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.08;letter-spacing:-.055em}h1{font-size:clamp(44px,5.6vw,80px);font-weight:750}h2{font-size:clamp(34px,4vw,56px)}h3{font-size:26px;letter-spacing:-.035em}.wrap{width:min(1180px,calc(100% - 64px));margin:auto}.skip{position:absolute;left:12px;top:-100px;background:var(--paper);padding:12px;z-index:20}.skip:focus{top:12px}.header{border-bottom:1px solid var(--line);background:var(--bg)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:94px;gap:24px}.brand{text-decoration:none;font-size:25px;letter-spacing:-1px;font-weight:800;white-space:nowrap}.brand b{color:var(--blue)}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:9px;background:var(--blue);color:white;border-radius:10px;letter-spacing:-3px;padding-right:3px;font-size:20px}.nav-links{display:flex;align-items:center;gap:30px}.nav-links a{text-decoration:none;font-size:14px;font-weight:600}.nav-links a:hover{color:var(--blue)}.button{display:inline-flex;justify-content:center;align-items:center;gap:25px;padding:14px 23px;border:1px solid var(--blue);border-radius:8px;text-decoration:none;font-size:14px;font-weight:650;background:var(--blue);color:#fff;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 10px 25px #2459f526}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.hero{display:grid;grid-template-columns:1.02fr 1fr;align-items:center;gap:50px;padding:95px 0 84px}.eyebrow{display:block;font:11px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.eyebrow:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:10px}.hero h1 span{color:var(--blue)}.intro{color:var(--muted);font-size:17px;max-width:480px;margin-top:28px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero-note{margin-top:24px;font-size:12px;color:var(--muted)}.stage{position:relative;padding:52px 0 80px 24px;min-width:0;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:18px 18px}.browser{border:1px solid var(--line);background:var(--paper);border-radius:12px;overflow:hidden;box-shadow:0 25px 65px #132d5515;transform:rotate(-3deg);transition:transform .35s}.browser:hover{transform:rotate(0)}.browser-top{height:30px;display:flex;align-items:center;gap:4px;padding:0 11px;background:var(--paper);border-bottom:1px solid var(--line)}.browser-top i{width:5px;height:5px;border-radius:50%;background:var(--line)}.browser-top small{font:9px ui-monospace,monospace;color:var(--muted);margin:auto}.browser img{width:100%;aspect-ratio:1.86;object-fit:cover;object-position:top}.mini-browser{position:absolute;right:5px;bottom:8px;width:62%;transform:rotate(4deg);box-shadow:0 20px 50px #132d5526}.mini-browser img{aspect-ratio:1.6}.stage-caption{position:absolute;left:22px;bottom:15px;font:10px/1.7 ui-monospace,monospace;color:var(--muted);max-width:110px}.expertise{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.expertise strong{color:var(--ink)}.section{padding:100px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:36px}.section-head p{max-width:330px;color:var(--muted);font-size:15px}.text-link{text-underline-offset:5px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filters button{border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--muted);padding:8px 18px;font-size:12px;cursor:pointer}.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:48px 30px}.project a{text-decoration:none;display:block}.project[hidden]{display:none}.cover{overflow:hidden;position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);aspect-ratio:1.5;padding:27px}.cover img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:7px;box-shadow:0 15px 35px #14243d20;transition:transform .45s}.project a:hover .cover img{transform:translateY(-5px) scale(1.025)}.project:nth-child(2) .cover{background:#d8e5ec}.project:nth-child(3) .cover{background:#e8e5fb}.project:nth-child(4) .cover{background:#dfeee9}.project-info{display:flex;justify-content:space-between;gap:18px;padding-top:22px}.project-info .arrow{font-size:27px;line-height:1.2}.project small{font-size:11px;color:var(--muted)}.project h3{margin:7px 0 10px}.project p{font-size:14px;color:var(--muted);max-width:470px}.status{display:inline-block;margin-top:14px;font:10px ui-monospace,monospace;border:1px solid var(--line);padding:5px 9px;border-radius:4px;color:var(--muted)}.diagram{height:100%;display:flex;flex-direction:column;justify-content:center;gap:18px;background:var(--paper);border-radius:8px;padding:30px;box-shadow:0 12px 28px #14243d10}.diagram-label{font:10px ui-monospace,monospace;color:var(--muted)}.diagram strong{font-size:clamp(20px,3vw,30px);letter-spacing:-1px;line-height:1.2}.diagram-nodes{display:flex;gap:6px}.diagram-nodes span{padding:8px;background:var(--soft);border-radius:5px;font-size:10px}.services-section{background:var(--paper);border-block:1px solid var(--line)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px}.services article{padding-top:24px;border-top:2px solid var(--blue)}.services h3{font-size:24px;margin-bottom:18px}.services p{color:var(--muted);font-size:14px}.services ul{padding:18px 0 0;list-style:none;font-size:12px;color:var(--muted)}.services li{margin-top:8px}.services li:before{content:"↗";margin-right:10px;color:var(--blue)}.process{display:grid;grid-template-columns:1fr 1fr;gap:85px}.steps{list-style:none;padding:0;margin:0;counter-reset:step}.steps li{display:grid;grid-template-columns:38px 1fr;gap:20px;padding:23px 0;border-top:1px solid var(--line);counter-increment:step}.steps li:before{content:"0" counter(step);font:12px ui-monospace,monospace;color:var(--blue);padding-top:4px}.steps h3{font-size:22px;margin-bottom:10px}.steps p{font-size:14px;color:var(--muted)}.contact{padding:60px;background:var(--blue);border-radius:20px;color:white;display:flex;align-items:center;justify-content:space-between;gap:40px}.contact h2{max-width:650px}.contact p{margin-top:20px;color:#e4eaff}.contact .button{background:#fff;color:#153aa9;border-color:#fff;white-space:nowrap}.footer{padding:40px 0}.footer-inner{display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:12px;color:var(--muted)}.proposal{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:30px;box-shadow:0 8px 30px #0002;font-size:11px;white-space:nowrap}.proposal a{padding:4px 9px;border:1px solid currentColor;border-radius:20px;text-decoration:none}.case{max-width:860px;padding:80px 0}.case h1{margin:24px 0}.case .intro{max-width:750px}.case-image{margin:40px 0;border:1px solid var(--line);border-radius:14px;width:100%;height:auto}.content{max-width:760px}.content h2,.content h3{margin:40px 0 20px}.content p,.content ul{margin:18px 0;color:var(--muted)}.content img{max-width:100%;height:auto}.empty{padding:40px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}@media(prefers-reduced-motion:no-preference){.hero-copy{animation:enter .65s both}.stage{animation:enter .8s .12s both}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:900px){.hero{gap:20px;padding:65px 0}.nav-links{gap:18px}.nav-links .button{display:none}.cover{padding:18px}.process{gap:40px}.contact{padding:40px}.services{gap:24px}}@media(max-width:650px){.wrap{width:calc(100% - 36px)}.nav{min-height:78px;gap:12px}.brand{font-size:21px}.brand-mark{width:29px;height:29px;font-size:17px;margin-right:6px}.nav-links{gap:14px}.nav-links a{font-size:12px}.nav-links .services-nav{display:none}.hero{grid-template-columns:1fr;padding:52px 0 40px;gap:25px}.hero h1{font-size:53px}.intro{font-size:16px}.stage{padding:26px 0 70px 12px}.stage-caption{left:8px;bottom:10px}.expertise{font-size:10px;gap:14px;justify-content:start}.expertise strong{width:100%}.section{padding:65px 0}.section-head{display:block}.section-head p{margin-top:20px}.projects{grid-template-columns:1fr;gap:32px}.cover{padding:22px}.services{grid-template-columns:1fr;gap:20px;margin-top:30px}.services article{padding-top:22px}.services ul{padding-top:5px}.process{grid-template-columns:1fr;gap:30px}.contact{display:block;padding:30px 24px}.contact .button{margin-top:28px}.footer-inner{align-items:start;flex-direction:column}.proposal{font-size:10px;gap:8px}.case{padding:45px 0}.case h1{font-size:44px}.diagram{padding:20px}.diagram-nodes span{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;transform:none!important}}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.proposal{left:auto;right:16px;transform:none}@media(max-width:650px){.proposal{right:8px;bottom:8px}}
.night .hero h1 span,.night .brand b,.night .steps li:before{color:#86a8ff}

/* Landing portfolio: complete captures, distinct cards and country metadata. */
#proyectos .projects{gap:28px}
#proyectos .project{background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 6px 24px #14243d06;transition:transform .2s,box-shadow .2s,border-color .2s}
#proyectos .project:hover{transform:translateY(-4px);border-color:var(--blue);box-shadow:0 16px 36px #14243d12}
#proyectos .project>a{display:flex;flex-direction:column;height:100%;padding:14px}
#proyectos .cover{border:0;border-radius:12px;aspect-ratio:16/10;padding:16px;display:flex;align-items:center;justify-content:center}
#proyectos .cover img{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:6px;box-shadow:none;transform:none}
#proyectos .project a:hover .cover img{transform:none}
#proyectos .project-info{padding:22px 10px 14px;flex:1;gap:12px}
#proyectos .project-info>div{min-width:0;flex:1}
#proyectos .project-meta{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-bottom:12px}
#proyectos .project-country{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:20px;background:var(--bg);padding:4px 10px;font-size:11px;line-height:1.5;color:var(--ink)}
#proyectos .project-info h3{margin-top:0;line-height:1.18}
#proyectos .project .status{line-height:1.5}
.stage .browser img{height:auto;aspect-ratio:auto;object-fit:contain}
@media(max-width:650px){#proyectos .project>a{padding:10px}#proyectos .cover{padding:10px}#proyectos .project-info{padding:18px 8px 12px}#proyectos .project-info h3{font-size:24px}#proyectos .project-country{font-size:10px}#proyectos .project-meta{gap:8px}}
@media(prefers-reduced-motion:reduce){#proyectos .project{transition:none}#proyectos .project:hover{transform:none}}
