:root{color-scheme:dark;--bg:#0e192c;--panel:#142339;--border:#2c4059;--ink:#f4f8fc;--muted:#b8c7d8;--accent:#49c9f1;--wash:#1d314b}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "DM Sans",Arial,sans-serif}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
button,input,select,textarea{font:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:Geist,"DM Sans",Arial,sans-serif;font-weight:800;letter-spacing:-.045em;line-height:1.07}
h1{font-size:clamp(3rem,5.15vw,5.55rem);max-width:11ch}
h1 em{font-style:normal;color:var(--accent)}
h2{font-size:clamp(2.2rem,4.4vw,3.65rem)}
h3{font-size:1.35rem}
.wrap{width:min(100% - 64px,1200px);margin-inline:auto}
.skip{position:absolute;z-index:2;inset:8px auto auto 8px;padding:8px 14px;background:var(--accent);color:var(--bg);transform:translateY(-150%)}
.skip:focus{transform:none}
.site-header{border-bottom:1px solid var(--border)}
.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px}
.brand{display:inline-flex;align-items:center;min-width:0;padding:8px 10px;background:#fff;border-radius:8px}
.brand img{width:clamp(112px,18vw,196px);height:auto}
.site-footer .brand img{width:138px}
nav{display:flex;gap:30px}
nav a,.site-footer{color:var(--muted)}
nav a:hover,.site-footer a:hover{color:var(--accent)}
.button{min-height:46px;display:inline-flex;justify-content:center;align-items:center;gap:10px;font-weight:700;border-radius:7px;padding:9px 16px;border:1px solid transparent;cursor:pointer;text-align:center}
.button.primary{color:#071d2b;background:var(--accent)}
.button.primary:hover{background:#82dffc}
.button.outline{border-color:#535967}
.button.outline:hover{border-color:var(--accent);color:var(--accent)}
.text-button{color:var(--muted);padding-inline:6px}
.text-button:hover{color:var(--accent)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:center;gap:42px;padding-block:76px 64px}
.eyebrow{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.73rem;color:var(--accent);margin-bottom:15px}
.eyebrow span{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:2px}
.intro{margin-top:24px;font-size:1.12rem;color:var(--muted);max-width:43ch}
.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:25px}
.hero-photo{width:100%;height:100%;min-height:450px;max-height:565px;object-fit:cover;object-position:62% center;border-radius:18px;border:1px solid #40546b}
.section{padding-block:66px}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.43fr);align-items:end;gap:30px;margin-bottom:32px}
.section-head>p,.services p,.project-copy>p:not(.project-type),.profile p:not(.eyebrow){color:var(--muted)}
.services,.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.services article{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:23px;display:flex;align-items:start;flex-direction:column;gap:11px}
.service-icon{color:var(--accent);background:#183348;border:1px solid #2a5369;display:grid;place-items:center;width:44px;height:40px;border-radius:7px;font-weight:800;line-height:1}
.services article a,.project a{font-size:.9rem;font-weight:700;color:var(--accent)}
.services article a{margin-top:auto;padding-top:5px}
.services article a:hover,.project a:hover{text-decoration:underline}
.project-band{border-block:1px solid var(--border);background:#122035}
.project{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:13px;overflow:hidden;background:var(--panel)}
.project-visual{aspect-ratio:16/9;margin:0;padding:clamp(10px,2vw,23px);display:grid;place-items:center;background:#333744}
.project-visual.cuenta{background:#203b3e}
.project-photo{position:relative;padding:0;display:block}
.project-photo img{width:100%;height:100%;object-fit:cover}
.project-photo figcaption{position:absolute;inset:auto 10px 10px auto;padding:2px 8px;border-radius:4px;background:#0e192ce8;color:var(--ink);font-size:.7rem}
.mini{width:100%;max-width:320px;background:#1b1e29;border:1px solid #69717a;border-radius:7px;overflow:hidden;font-size:.69rem;box-shadow:0 6px 18px #0005}
.mini-top{padding:7px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#252a39}
.mini-top strong{letter-spacing:.045em;color:#fff}
.mini-top span{color:#c2c6cc;text-align:right}
.mini-body{padding:9px 10px}
.document{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.document b{grid-column:1/-1;color:#9de6ce}
.document i{height:5px;background:#404a56;border-radius:2px}
.project-copy{flex:1;padding:19px 21px;display:flex;flex-direction:column;align-items:start;gap:9px}
.project-copy a{margin-top:auto;padding-top:3px}
.project-type{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em}
.profile{display:grid;grid-template-columns:1fr .8fr;gap:68px}
.profile p:not(.eyebrow){margin:15px 0 20px;max-width:53ch}
.process{border-left:1px solid var(--border);padding:10px 0 10px 35px}
.process ol{padding-left:20px;margin-bottom:0;display:grid;gap:12px}
.process li::marker{color:var(--accent)}
.process li span{display:block;color:var(--muted)}
.site-footer{border-top:1px solid var(--border)}
.site-footer small{font-size:.83rem}
.contact{min-height:calc(100svh - 158px);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:60px;align-items:start;padding-block:70px}
.contact h1{font-size:clamp(2.8rem,5.6vw,5rem);max-width:12ch}
.contact-details{display:grid;gap:14px;margin-top:26px;justify-items:start}
.contact form{background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:25px;display:grid;gap:15px}
.contact form[hidden]{display:none}
.contact form h2{font-size:1.7rem}
.contact form p{font-size:.93rem;color:var(--muted)}
.contact label{display:grid;gap:5px;font-weight:600}
.contact input,.contact select,.contact textarea{width:100%;min-height:47px;background:var(--bg);color:var(--ink);padding:8px 11px;border:1px solid #555c6d;border-radius:5px}
.contact textarea{resize:vertical}
@media(max-width:850px){
 .hero{gap:22px;padding-block:54px 42px}
 .hero-photo{min-height:395px}
 .services,.projects{grid-template-columns:repeat(2,minmax(0,1fr))}
 .section-head{grid-template-columns:1fr;gap:12px}
 .contact,.profile{gap:30px}
}
@media(max-width:620px){
 .wrap{width:calc(100% - 32px)}
 .header-inner{display:grid;grid-template-columns:1fr auto;gap:10px;padding-block:12px}
 .header-inner nav{grid-row:2;grid-column:1/-1;justify-content:space-between;gap:10px}
 .header-inner .outline{grid-column:2;grid-row:1}
 .hero,.contact,.profile{grid-template-columns:1fr;padding-block:38px}
 .hero-photo{min-height:0;height:auto;aspect-ratio:4/3}
 .services,.projects{grid-template-columns:1fr}
 .section{padding-block:42px}
 .process{padding-left:18px}
 .footer-inner{flex-wrap:wrap;padding-block:12px;gap:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
