:root{
  --bg:#0d1117; --panel:#161b22; --ink:#e6edf3; --mut:#8b949e;
  --acc:#2f81f7; --acc2:#3fb950; --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:'Manrope',system-ui,Segoe UI,Roboto,Arial,sans-serif;
  line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
::selection{background:color-mix(in srgb,var(--acc) 40%,transparent)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--panel);border-radius:6px;border:2px solid var(--bg)}

header.top{display:flex;align-items:center;gap:24px;max-width:1140px;margin:0 auto;
  padding:26px 22px}
.brand{font-size:22px;font-weight:800;letter-spacing:-.02em}
header.top nav{display:flex;gap:22px;margin-left:auto}
header.top nav a{color:var(--mut);font-size:15px}
header.top nav a:hover{color:var(--ink)}
.hero{padding:70px 0 40px}
.hero .role{color:var(--acc);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:14px}
.hero h1{font-size:clamp(34px,6vw,62px);line-height:1.05;letter-spacing:-.03em;
  max-width:20ch;margin:14px 0 0;font-weight:850}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:34px 0 26px}
.filters button{padding:9px 18px;border-radius:24px;cursor:pointer;font:inherit;font-size:14px;
  background:var(--panel);color:var(--mut);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
.filters button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;cursor:pointer;display:block}
.work .img{position:absolute;inset:0}
.work .ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:20px;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 60%);
  opacity:0;transition:opacity .25s;color:#fff}
.work:hover .ov{opacity:1}
.work:hover .img{transform:scale(1.05)}
.work .img{transition:transform .4s}
.work h3{font-size:18px}.work span{font-size:13px;opacity:.85}
section.block{padding:66px 0}
.block h2{font-size:clamp(24px,4vw,34px);letter-spacing:-.02em;margin-bottom:24px}
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.svc div{background:var(--panel);border-radius:14px;padding:22px 24px;
  border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);font-size:17px}
.svc div::before{content:'—  ';color:var(--acc);font-weight:800}
.about{max-width:680px;font-size:19px;color:var(--mut)}
.contact a{color:var(--acc);font-weight:700}
footer{border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent);margin-top:40px;
  padding:36px 0;color:var(--mut);font-size:14px}
.work-page .hero-img{height:46vh;min-height:280px;border-radius:18px;margin:20px 0 30px}
.work-page .gal{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:26px}
.work-page .gal div{aspect-ratio:4/3;border-radius:14px}
.work-page p{max-width:720px;color:var(--mut);font-size:18px;margin:16px 0}
@media(max-width:900px){.works{grid-template-columns:1fr 1fr}.svc{grid-template-columns:1fr}
  header.top nav{display:none}}
@media(max-width:560px){.works{grid-template-columns:1fr}}
