/* alukos.ru — один файл стилей. Движение и отступы — по freelance-radar/kits/design/motion-kit.md */
@font-face{font-family:Onest;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/onest-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/onest-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#f7f5f0;--surface:#fff;--ink:#16191d;--muted:#5b6168;--line:#e5e1d8;
  --acc:#1e5b57;--acc-ink:#fff;--acc-soft:#e3eeec;--warm:#9a4f28;
  --r:16px;--gx:clamp(20px,5vw,72px);--maxw:1240px;
  --shadow:0 1px 2px rgba(22,25,29,.04),0 10px 30px -12px rgba(22,25,29,.12);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 Onest,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--acc)}
h1,h2,h3{font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0}
h1{font-size:clamp(34px,5.2vw,60px)}
h2{font-size:clamp(28px,3.6vw,42px)}
h3{font-size:20px}
p{margin:0}
.wrap{max-width:calc(var(--maxw) + 2*var(--gx));margin-inline:auto;padding-left:var(--gx)!important;padding-right:var(--gx)!important}
.block{padding-block:clamp(56px,8vw,112px)}
.head{max-width:720px;margin-bottom:36px}
.head p{color:var(--muted);margin-top:12px}
.kicker{font-size:14px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--warm);margin-bottom:18px}

/* кнопки */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;padding:13px 22px;border-radius:12px;font:inherit;font-weight:500;font-size:16px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn-main{background:var(--acc);color:var(--acc-ink)}
.btn-main:hover{background:#174a47}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink)}
.btn-light{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-light:hover{border-color:var(--ink)}
.btn-sm{padding:9px 16px;font-size:15px}
.btn-lg{padding:16px 24px;font-size:17px}
.btn:focus-visible,.chip:focus-visible,.work-btn:focus-visible,.service:focus-visible{outline:2px solid var(--acc);outline-offset:3px}

/* шапка */
.top{position:sticky;top:0;z-index:20;background:rgba(247,245,240,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.top.sc{border-bottom-color:var(--line)}
.top-in{display:flex;align-items:center;gap:24px;height:64px}
.logo{font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.logo span{color:var(--muted);font-weight:500}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{color:var(--muted);text-decoration:none;font-size:15px}
.nav a:hover{color:var(--ink)}

/* первый экран */
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:center;padding-block:clamp(40px,7vw,96px)}
.hero h1{max-width:13em}
.lead{font-size:clamp(17px,1.6vw,19px);color:var(--muted);margin:22px 0 30px;max-width:36em}
.facts{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--muted);font-size:15px}
.facts li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:3px;background:var(--acc);margin-right:10px;vertical-align:middle}
.hero-photo{margin:0;justify-self:end;max-width:420px;width:100%}
.hero-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}
.hero-photo figcaption{margin-top:14px;font-size:14px;color:var(--muted);text-align:center}

/* услуги */
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.service{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.service:hover{border-color:#cfc9bd;box-shadow:var(--shadow)}
.service-n{font-size:13px;color:var(--warm);font-weight:600}
.service p{color:var(--muted);font-size:15px;flex:1}
.service-more{font-size:14px;color:var(--acc);font-weight:500}

/* проекты */
.project{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(20px,3vw,32px);border-radius:24px;background:var(--surface);border:1px solid var(--line);margin-bottom:20px}
.project:nth-child(odd of .project){grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
.project:nth-child(odd of .project) .pshow{order:2}
.pinfo{display:flex;flex-direction:column;gap:16px}
.pinfo>p{color:var(--muted)}
.stack-line{font-size:14px;color:var(--muted)}
.stack-line::before{content:"Стек: ";color:var(--ink);font-weight:500}
.note{font-size:15px;color:var(--muted);padding:12px 16px;border-radius:12px;background:var(--bg)}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.metrics div{padding:14px;border-radius:12px;background:var(--acc-soft)}
.metrics dt{font-weight:600;font-size:clamp(17px,1.8vw,21px);color:var(--acc);white-space:nowrap}
.metrics dd{margin:2px 0 0;font-size:13px;color:var(--muted)}
.pshow{position:relative;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:#eeebe4;touch-action:pan-y}
.pshow picture{display:contents}
.pslide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(1.03);transition:opacity .8s ease,transform 5s ease-out}
.pslide.on{opacity:1;transform:none;z-index:1}
.pshow>img:only-of-type,.pshow>picture:only-child img{opacity:1;transform:none}
div.hs-ctrl{position:absolute;z-index:3;right:14px;bottom:14px;display:flex;align-items:center;gap:6px;padding:5px;border-radius:24px;background:rgba(24,21,18,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hs-arr{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer;padding:0;transition:background .2s}
.hs-arr:hover{background:rgba(255,255,255,.18)}
.hs-arr:focus-visible,.hs-dots button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.hs-arr svg,.lb-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hs-dots{display:flex;gap:4px;align-items:center}
.hs-dots button{width:20px;height:20px;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center}
.hs-dots button::before{content:"";width:7px;height:7px;border-radius:4px;background:rgba(255,255,255,.55);transition:width .3s,background .3s}
.hs-dots button[aria-current="true"]::before{width:20px;background:#fff}

/* портфолио */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{font:inherit;font-size:15px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.chip span{color:var(--muted);font-size:13px;margin-left:4px}
.chip:hover{border-color:#cfc9bd}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.chip[aria-pressed="true"] span{color:rgba(255,255,255,.65)}
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px}
.work h3{font-size:16px;font-weight:500;letter-spacing:-.01em}
.work-btn{position:relative;display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#eeebe4;cursor:zoom-in}
.work-btn img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.work-btn:hover img{transform:scale(1.03)}
.badge{display:inline-block;font-size:12px;font-weight:500;letter-spacing:.02em;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink)}
.work.sub{display:none}
.work-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:12px;font-size:13px;color:var(--muted)}
.work-meta .badge{background:var(--surface);border:1px solid var(--line)}
.work-meta .badge-project{background:var(--acc);border-color:var(--acc)}
.work-meta .badge-scheme{background:#2b2f35;border-color:#2b2f35}
.work h3{margin-top:6px}
.work-more{position:absolute;right:12px;bottom:12px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;background:rgba(22,25,29,.72);color:#fff;backdrop-filter:blur(6px)}
.badge-project{background:var(--acc);color:#fff}
.badge-scheme{background:#2b2f35;color:#fff}

/* шаги, стек */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.steps li{padding:24px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.steps span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--acc-soft);color:var(--acc);font-weight:600;margin-bottom:16px}
.steps h3{font-size:18px;margin-bottom:8px}
.steps p{color:var(--muted);font-size:15px}
.stack{margin-top:40px}
.stack h3{font-size:18px;margin-bottom:14px}
.stack ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.stack li{font-size:14px;padding:6px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}

/* контакты */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding:clamp(28px,5vw,64px);border-radius:28px;background:var(--ink);color:#fff}
.contact p{color:rgba(255,255,255,.72);margin-top:16px;max-width:30em}
.contact-list{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.contact-list .btn{justify-content:center}
.contact-list .btn-main{background:#2f8a83}
.contact-list .btn-main:hover{background:#28776f}
.contact .profiles{font-size:15px;text-align:center;margin-top:8px}
.contact .profiles a{color:#fff}

.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:32px 40px;font-size:14px;color:var(--muted)}
.foot a{color:inherit}
.nf{min-height:60vh}
.nf .lead{margin-bottom:28px}

/* лайтбокс */
.lb{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;color:var(--ink)}
.lb::backdrop{background:rgba(16,18,20,.82);backdrop-filter:blur(4px)}
.lb-in{position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0;max-width:1500px;margin:auto;align-items:center;padding:56px 72px}
.lb-img{height:100%;display:grid;place-items:center;min-height:0}
.lb-img img{max-height:100%;width:auto;object-fit:contain;border-radius:12px 0 0 12px;background:#fff}
.lb-cap{background:var(--surface);padding:28px;border-radius:0 12px 12px 0;align-self:center;display:flex;flex-direction:column;gap:12px;max-height:100%;overflow:auto}
.lb-cap .badge{align-self:flex-start;background:var(--bg)}
.lb-cap .badge-project{background:var(--acc);color:#fff}
.lb-cap .badge-scheme{background:#2b2f35;color:#fff}
.lb-idea{font-size:14px;color:var(--warm);font-weight:500}
.lb-cap p{font-size:15px;color:var(--muted)}
.lb-cap .btn{align-self:flex-start}
.lb-x,.lb-nav{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:18px}
.lb-x:hover,.lb-nav:hover{background:rgba(255,255,255,.24)}
.lb-x{top:8px;right:12px}
.lb-prev{left:12px;top:50%;margin-top:-22px}
.lb-next{right:12px;top:50%;margin-top:-22px}

/* появление секций */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .pslide,.work-btn img{transition:none;transform:none}
}

@media (max-width:1100px){
  .services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lb-in{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding:56px 16px 16px;align-items:stretch}
  .lb-img img{border-radius:12px 12px 0 0}
  .lb-cap{border-radius:0 0 12px 12px;max-height:38vh}
  .lb-prev,.lb-next{top:auto;bottom:auto;top:8px;margin:0}
  .lb-prev{left:12px}.lb-next{left:64px;right:auto}
}
@media (max-width:900px){
  .nav{display:none}
  .top .btn{margin-left:auto}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero-photo{justify-self:start;max-width:280px;order:-1}
  .project,.project:nth-child(odd of .project){grid-template-columns:minmax(0,1fr)}
  .project:nth-child(odd of .project) .pshow{order:0}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  body{font-size:16px}
  .services,.steps,.grid{grid-template-columns:minmax(0,1fr)}
  .metrics{grid-template-columns:minmax(0,1fr)}
  .metrics div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .hero-photo{max-width:200px}
  .btns .btn{flex:1 1 auto;justify-content:center}
  .contact-list .btn{white-space:normal;word-break:break-all}
  div.hs-ctrl{top:10px;bottom:auto;right:10px}
}
