:root{--ink:#14173d;--night:#1B1F4B;--dende:#E8731A;--sol:#F5B82E;--mata:#1F6B4F;--bg:#F6F7F3;--card:#fff;--muted:#5b6080;--line:#dfe2ea;--r:22px;
--display:'Bricolage Grotesque','Segoe UI',system-ui,sans-serif;--body:'Work Sans','Segoe UI',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bg);color:var(--ink);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--dende);outline-offset:3px;border-radius:6px}
.wrap{width:min(1180px,92%);margin:0 auto}
h1,h2,h3,h4{font-family:var(--display);line-height:1.08;letter-spacing:-.02em}
/* topbar */
.topbar{background:var(--night);color:#cfd3f5;font-size:14px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 0;flex-wrap:wrap}
.topbar a:hover{color:var(--sol)}
.topbar .lk{display:flex;gap:20px;flex-wrap:wrap}
/* header */
header.site{position:sticky;top:0;z-index:50;background:rgba(246,247,243,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:22px}
.brand img{width:44px;height:44px}
.brand small{display:block;font-family:var(--body);font-weight:500;font-size:12px;color:var(--muted);letter-spacing:0}
nav.main{display:flex;gap:6px;align-items:center}
nav.main a{padding:9px 16px;border-radius:99px;font-weight:600;font-size:15px;transition:.2s}
nav.main a:hover,nav.main a.on{background:var(--night);color:#fff}
nav.main a.cta{background:var(--dende);color:#fff}
nav.main a.cta:hover{background:var(--night)}
.burger{display:none;background:var(--night);color:#fff;border:0;width:46px;height:46px;border-radius:14px;font-size:22px;cursor:pointer}
/* hero */
.hero{padding:64px 0 40px;position:relative;overflow:hidden}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.tag{display:inline-block;background:#fff;border:1px solid var(--line);padding:7px 16px;border-radius:99px;font-size:14px;font-weight:600;color:var(--mata);margin-bottom:22px}
.hero h1{font-size:clamp(3rem,8vw,6.6rem);font-weight:800}
.hero h1 span{display:block}
.hero h1 .a{color:var(--night)}
.hero h1 .b{color:var(--dende);padding-left:.6em}
.hero h1 .c{color:var(--mata);padding-left:1.2em}
.hero p.lead{font-size:20px;color:var(--muted);max-width:52ch;margin:26px 0 32px}
.btns{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;padding:15px 28px;border-radius:99px;font-weight:700;font-size:16px;border:2px solid var(--night);transition:.2s;cursor:pointer;font-family:var(--body)}
.btn.p{background:var(--night);color:#fff}
.btn.p:hover{background:var(--dende);border-color:var(--dende);transform:translateY(-2px)}
.btn.s{background:transparent}
.btn.s:hover{background:var(--sol);border-color:var(--sol)}
.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:200px 200px 140px;gap:14px}
.mosaic figure{border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--night),var(--mata));position:relative}
.mosaic figure:nth-child(1){grid-row:span 2}
.mosaic figure:nth-child(4){grid-column:span 2;background:var(--sol);display:grid;place-items:center;text-align:center;padding:20px}
.mosaic figure:nth-child(4) b{font-family:var(--display);font-size:2.6rem;font-weight:800;line-height:1}
.mosaic figure:nth-child(4) span{display:block;font-size:14px;font-weight:600}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.mosaic figure:hover img{transform:scale(1.06)}
.stripe{display:flex;height:10px;margin-top:40px}
.stripe i{flex:1}
.stripe i:nth-child(1){background:var(--night)}.stripe i:nth-child(2){background:var(--dende)}.stripe i:nth-child(3){background:var(--sol)}.stripe i:nth-child(4){background:var(--mata)}
/* sections */
section{padding:84px 0}
.sh{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:42px;flex-wrap:wrap}
.sh h2{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800;max-width:16ch}
.sh p{color:var(--muted);max-width:44ch}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pillar{border-radius:var(--r);padding:36px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}
.pillar:nth-child(1){background:var(--night)}
.pillar:nth-child(2){background:var(--dende);color:var(--ink);border-radius:var(--r) 80px var(--r) var(--r)}
.pillar:nth-child(3){background:var(--mata);border-radius:var(--r) var(--r) var(--r) 80px}
.pillar h3{font-size:2.3rem}
.pillar p{opacity:.92}
.pillar .ic{font-size:44px}
/* news */
.news{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nlist{display:grid;grid-template-columns:1.3fr 1fr;gap:28px}
.nfeat{background:var(--night);color:#fff;border-radius:var(--r);padding:40px;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;position:relative;overflow:hidden}
.nfeat::before{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:var(--dende);opacity:.9}
.nfeat::after{content:"";position:absolute;right:50px;top:60px;width:120px;height:120px;border-radius:50%;background:var(--sol)}
.nfeat h3{font-size:2.2rem;position:relative}
.nfeat .meta,.nitem .meta{font-size:14px;font-weight:600;opacity:.85;margin-bottom:10px;position:relative}
.nstack{display:flex;flex-direction:column;gap:14px}
.nitem{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;display:block;transition:.25s}
.nitem:hover{border-color:var(--dende);transform:translateX(6px)}
.nitem .meta{color:var(--mata)}
.nitem h4{font-size:1.3rem}
.chip{display:inline-block;background:var(--sol);color:var(--ink);font-size:12px;font-weight:700;padding:3px 12px;border-radius:99px;margin-right:6px}
/* projects */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}
.filters button{border:2px solid var(--night);background:transparent;padding:9px 20px;border-radius:99px;font-weight:700;cursor:pointer;font-family:var(--body);font-size:15px}
.filters button.on,.filters button:hover{background:var(--night);color:#fff}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pcard{background:var(--card);border-radius:var(--r);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;transition:.3s;cursor:pointer;text-align:left;font:inherit;color:inherit}
.pcard:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(27,31,75,.5)}
.pimg{aspect-ratio:4/3;background:linear-gradient(135deg,var(--night),var(--mata));overflow:hidden;position:relative;display:grid;place-items:center;color:rgba(255,255,255,.85);font-family:var(--display);font-size:2rem;font-weight:800;padding:20px;text-align:center}
.pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.pcard:hover .pimg img{transform:scale(1.07)}
.pbody{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.pbody h3{font-size:1.4rem}
.pbody p{color:var(--muted);font-size:15.5px}
.more{font-weight:700;color:var(--dende);margin-top:auto}
/* modal */
dialog{border:0;border-radius:28px;width:min(760px,92vw);max-height:88vh;padding:0;overflow:auto;background:#fff;color:var(--ink)}
dialog::backdrop{background:rgba(20,23,61,.7);backdrop-filter:blur(4px)}
dialog .mi{aspect-ratio:16/8;background:linear-gradient(135deg,var(--night),var(--mata))}
dialog .mi img{width:100%;height:100%;object-fit:cover}
dialog .mb{padding:34px}
dialog h3{font-size:2rem;margin:10px 0 14px}
dialog .x{position:absolute;right:16px;top:16px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:20px;cursor:pointer;z-index:2}
/* numbers */
.numbers{background:var(--night);color:#fff}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.num{border-left:4px solid var(--sol);padding-left:20px}
.num b{font-family:var(--display);font-size:3.4rem;font-weight:800;display:block;line-height:1}
.num span{color:#c4c8ee}
/* cta */
.cta-band{background:var(--sol);border-radius:36px;padding:64px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(2rem,4vw,3rem);max-width:18ch}
/* page head */
.phead{padding:70px 0 30px}
.phead h1{font-size:clamp(2.6rem,6vw,4.8rem);font-weight:800;max-width:18ch}
.phead p{color:var(--muted);max-width:56ch;margin-top:18px;font-size:19px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.two p{margin-bottom:16px;color:#2f3358}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px}
/* form */
form{display:grid;gap:16px}
label{font-weight:600;font-size:15px;display:grid;gap:6px}
input,textarea,select{font:inherit;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--ink)}
input:focus,textarea:focus{border-color:var(--dende);outline:none}
.cinfo{display:grid;gap:14px}
.cinfo a{display:flex;gap:14px;align-items:center;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:18px;font-weight:600;transition:.2s}
.cinfo a:hover{border-color:var(--dende);transform:translateX(5px)}
.cinfo i{font-style:normal;font-size:24px}
/* footer */
footer{background:var(--ink);color:#c4c8ee;padding:64px 0 30px;margin-top:40px}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px}
footer h4{color:#fff;font-size:1.2rem;margin-bottom:14px}
footer a{display:block;padding:3px 0}
footer a:hover{color:var(--sol)}
.copy{border-top:1px solid #2c3066;padding-top:22px;font-size:14px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.wapp{position:fixed;right:20px;bottom:20px;z-index:60;background:#25d366;color:#fff;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:30px;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.totop{position:fixed;right:24px;bottom:94px;z-index:60;background:var(--night);color:#fff;border:0;width:46px;height:46px;border-radius:50%;cursor:pointer;opacity:0;pointer-events:none;transition:.3s}
.totop.show{opacity:1;pointer-events:auto}
.hero h1 span{animation:rise .8s both}.hero h1 .b{animation-delay:.12s}.hero h1 .c{animation-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(30px)}}
@media(max-width:980px){.hero .grid,.two,.nlist{grid-template-columns:1fr}.pillars,.pgrid{grid-template-columns:1fr 1fr}.nums{grid-template-columns:1fr 1fr}.fg{grid-template-columns:1fr}
.burger{display:block}nav.main{position:absolute;left:0;right:0;top:100%;background:var(--bg);flex-direction:column;padding:16px;border-bottom:1px solid var(--line);display:none}nav.main.open{display:flex}nav.main a{width:100%;text-align:center}.cta-band{padding:40px 28px}}
@media(max-width:620px){.pillars,.pgrid{grid-template-columns:1fr}.mosaic{grid-template-rows:160px 160px 120px}section{padding:60px 0}.hero h1 .b{padding-left:.3em}.hero h1 .c{padding-left:.6em}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
