@font-face{font-family:"Onest";src:url(../fonts/onest-cyrillic.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0400-04FF}
@font-face{font-family:"Onest";src:url(../fonts/onest-latin.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20BD,U+2192}

:root{
  color-scheme:dark;
  --dark:#0e0d0c; --cream:#f3efe6; --ink:#141210; --white:#f6f4ef; --muted:rgba(246,244,239,.62);
  --font:"Onest",-apple-system,"Helvetica Neue",system-ui,sans-serif;
  --pad:clamp(16px,4vw,48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--dark);color:var(--white)}
body{font-family:var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* ===== шапка ===== */
.bar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(12px + env(safe-area-inset-top)) var(--pad) 12px;transition:background .3s}
.bar.solid{background:rgba(14,13,12,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
section[id]{scroll-margin-top:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px;letter-spacing:-.01em}
.logo__sq{width:34px;height:34px;display:grid;place-items:center;background:var(--white);color:var(--ink);font-weight:800;font-size:16px}
.pill{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:30px;
  background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:13px;color:var(--muted);white-space:nowrap}
.pill time{color:var(--white)}
.pill__dot{width:7px;height:7px;border-radius:50%;background:#45d483}
.menu-btn{display:flex;align-items:center;gap:12px;font-size:15px}
.menu-btn__sq{width:34px;height:34px;display:grid;place-items:center;background:var(--white)}
.menu-btn__sq i{width:16px;height:2px;background:var(--ink);transition:transform .3s}
.menu-btn[aria-expanded="true"] .menu-btn__sq i{transform:rotate(90deg)}
@media (max-width:560px){.pill{display:none}.logo__txt{display:none}}

/* ===== меню ===== */
.menu{position:fixed;inset:0;z-index:15;background:var(--dark);display:flex;flex-direction:column;justify-content:center;padding:90px var(--pad) 40px}
.menu[hidden]{display:none}
.menu ul{list-style:none}
.menu a{display:block;font-size:clamp(38px,11vw,88px);font-weight:700;letter-spacing:-.04em;line-height:1.08;padding:4px 0;color:var(--muted);transition:color .2s}
.menu a:hover{color:var(--white)}
.menu__foot{margin-top:auto;color:var(--muted);font-size:14px}

/* ===== первый экран ===== */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(60% 55% at 22% 30%,rgba(255,214,160,.16),transparent 70%),
    radial-gradient(45% 40% at 85% 20%,rgba(140,160,190,.10),transparent 70%),
    linear-gradient(180deg,#2a2622 0,#1a1816 55%,#0e0d0c 100%)}
.hero__bg::before{content:"";position:absolute;left:6%;top:8%;width:30%;height:42%;border-radius:4px;
  background:linear-gradient(180deg,rgba(230,236,245,.13),rgba(230,236,245,.04));filter:blur(14px)}
.hero__bg::after{content:"";position:absolute;inset:0;opacity:.09;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__person{position:absolute;z-index:-1;left:50%;bottom:0;height:88%;aspect-ratio:640/853;transform:translateX(-50%);
  filter:contrast(1.06) saturate(.9) brightness(.94);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%)}
.hero__person > img{display:block;width:100%;height:100%}

/* глаза: радужка двигается внутри разреза глаза (координаты — в % от фото 640x853) */
.eye{position:absolute;overflow:hidden;clip-path:ellipse(50% 50% at 50% 50%);--ex:0;--ey:0}
.eye--l{left:39.219%;top:24.326%;width:6.5625%;height:1.7585%}
.eye--r{left:54.219%;top:23.974%;width:6.25%;height:1.993%}
.iris{position:absolute;display:block;transform:translate(calc(var(--ex) * 22%),calc(var(--ey) * 9%))}
.eye--l .iris{left:14.286%;top:-36.667%;width:61.905%;height:173.33%}
.eye--r .iris{left:20%;top:-32.35%;width:65%;height:152.94%}

.hero__shade{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(14,13,12,.35) 0,transparent 22%,transparent 50%,rgba(14,13,12,.55) 75%,rgba(14,13,12,.92) 100%)}

.hero__chip{position:absolute;left:var(--pad);top:calc(70px + env(safe-area-inset-top));padding:7px 14px;border:1px solid rgba(246,244,239,.35);border-radius:30px;
  font-size:13px;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(14,13,12,.25)}
.hero__who{position:absolute;right:var(--pad);bottom:calc(40px + env(safe-area-inset-bottom));text-align:right;max-width:min(320px,70vw)}
.hero__name{font-size:clamp(24px,3.2vw,34px);font-weight:700;letter-spacing:-.03em}
.hero__role{margin-top:4px;font-size:clamp(15px,1.6vw,19px);font-weight:300;color:var(--white)}
.hero__role b{font-weight:600}
.hero__link{display:inline-flex;gap:8px;margin-top:12px;font-size:14px;color:var(--muted);transition:color .2s}
.hero__link:hover{color:var(--white)}

.hero__bottom{position:absolute;left:var(--pad);bottom:calc(40px + env(safe-area-inset-bottom));max-width:min(620px,60vw)}
.hero__title{font-size:clamp(40px,7vw,84px);font-weight:700;letter-spacing:-.045em;line-height:.95}
.hero__sub{margin-top:14px;font-size:clamp(15px,1.5vw,18px);font-weight:300;line-height:1.4;color:var(--white);max-width:440px}
.hero__scroll{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));font-size:12px;color:var(--muted)}

@media (max-width:700px){
  .hero__person{height:78%}
  .hero__bottom{max-width:none;right:var(--pad);bottom:calc(46px + env(safe-area-inset-bottom))}
  .hero__who{bottom:calc(220px + env(safe-area-inset-bottom));max-width:220px}
  .hero__name{font-size:20px}
  .hero__role{font-size:14px}
  .hero__link{margin-top:6px;font-size:13px}
  .hero__shade{background:linear-gradient(180deg,rgba(14,13,12,.35) 0,transparent 22%,transparent 42%,rgba(14,13,12,.62) 64%,rgba(14,13,12,.95) 100%)}
}

/* ===== светлый блок ===== */
.intro{background:var(--cream);color:var(--ink);padding:clamp(64px,10vw,140px) var(--pad)}
.intro__text{max-width:1000px;margin:0 auto;font-size:clamp(26px,4.2vw,52px);font-weight:300;letter-spacing:-.035em;line-height:1.12;text-align:center}
.intro__text b{font-weight:700}
.facts{max-width:1000px;margin:clamp(40px,6vw,72px) auto 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(20,18,16,.15)}
.facts div{padding:18px 12px 0 0}
.facts dt{font-size:clamp(22px,3vw,34px);font-weight:700;letter-spacing:-.03em}
.facts dd{margin-top:4px;font-size:14px;color:rgba(20,18,16,.6)}
@media (max-width:700px){.facts{grid-template-columns:1fr 1fr;row-gap:22px}}
.intro__note{max-width:1000px;margin:clamp(36px,5vw,56px) auto 0;text-align:center;font-size:15px;color:rgba(20,18,16,.6)}

/* ===== заказ ===== */
.order{background:var(--cream);color:var(--ink);padding:clamp(64px,9vw,120px) var(--pad)}
.order > *{max-width:1000px;margin-left:auto;margin-right:auto}
.order__kicker{font-size:14px;color:rgba(20,18,16,.55)}
.order__title{margin-top:8px;font-size:clamp(44px,9vw,104px);font-weight:700;letter-spacing:-.05em;line-height:.95}
.steps{list-style:none;margin-top:clamp(32px,5vw,56px);display:grid;gap:0;border-top:1px solid rgba(20,18,16,.15)}
@media (min-width:800px){.steps{grid-template-columns:repeat(3,1fr);gap:28px}}
.steps li{padding:20px 0;border-bottom:1px solid rgba(20,18,16,.15);color:rgba(20,18,16,.65);font-size:15px;line-height:1.45}
.steps span{display:block;font-size:13px;color:rgba(20,18,16,.45);margin-bottom:10px}
.steps b{display:block;font-size:clamp(20px,2.2vw,24px);font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-bottom:6px}
.price{margin-top:clamp(32px,5vw,48px);padding:clamp(22px,3vw,32px);background:var(--ink);color:var(--white)}
.price__nums{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.price__nums s{font-size:clamp(20px,2.6vw,28px);color:var(--muted);text-decoration-thickness:2px}
.price__nums b{font-size:clamp(48px,8vw,88px);font-weight:700;letter-spacing:-.05em;line-height:1}
.price__text{margin-top:12px;font-size:16px;line-height:1.45;color:rgba(246,244,239,.8);max-width:560px}
.price__left{margin-top:16px;display:inline-flex;gap:6px;padding:7px 14px;border:1px solid rgba(246,244,239,.3);border-radius:30px;font-size:14px}
.price__left b{color:#45d483}
.order__who{margin-top:28px;font-size:clamp(18px,2.2vw,24px);font-weight:300;letter-spacing:-.02em;line-height:1.35}
.order .save{background:var(--ink);color:var(--white)}

/* ===== кнопка внизу экрана ===== */
.sticky{position:fixed;z-index:12;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%,140%);
  display:flex;align-items:center;gap:10px;padding:16px 26px;border-radius:40px;background:var(--white);color:var(--ink);
  font-size:16px;font-weight:600;white-space:nowrap;box-shadow:0 18px 40px -12px rgba(0,0,0,.7);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.sticky.show{transform:translate(-50%,0)}

/* ===== секции на тёмном ===== */
.works,.thoughts,.contacts{padding:clamp(64px,9vw,120px) var(--pad);max-width:1200px;margin:0 auto}
.sec-title{font-size:clamp(40px,8vw,96px);font-weight:700;letter-spacing:-.05em;line-height:1;margin-bottom:clamp(28px,4vw,48px)}

.works{display:grid;gap:clamp(28px,4vw,48px)}
.work{display:block}
.work img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top;filter:grayscale(.15);transition:filter .4s,transform .6s}
.work:hover img{filter:none}
.work__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:14px;border-bottom:1px solid rgba(246,244,239,.16);padding-bottom:14px}
.work__row b{font-size:clamp(20px,2.4vw,28px);font-weight:600;letter-spacing:-.02em}
.work__row em{font-style:normal;font-size:14px;color:var(--muted);text-align:right}
@media (min-width:900px){.works{grid-template-columns:1fr 1fr}.works .sec-title{grid-column:1/-1}}

.thoughts ol{list-style:none;border-top:1px solid rgba(246,244,239,.16)}
.thoughts li{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:24px 0;border-bottom:1px solid rgba(246,244,239,.16);
  font-size:clamp(20px,2.8vw,32px);font-weight:300;letter-spacing:-.025em;line-height:1.25}
.thoughts li span{font-size:13px;color:var(--muted);padding-top:.6em;letter-spacing:0}

.clist{list-style:none;border-top:1px solid rgba(246,244,239,.16)}
.clist a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 16px;padding:18px 0;border-bottom:1px solid rgba(246,244,239,.16);transition:padding .25s}
.clist a:hover{padding-left:10px}
.clist span{grid-column:1;font-size:13px;color:var(--muted)}
.clist b{grid-column:1;font-size:clamp(20px,3vw,30px);font-weight:600;letter-spacing:-.02em;word-break:break-word}
.clist i{grid-column:2;grid-row:1/3;font-style:normal;font-size:22px;color:var(--muted)}
.save{display:flex;align-items:center;justify-content:center;min-height:60px;margin-top:28px;background:var(--white);color:var(--ink);font-size:17px;font-weight:600;transition:opacity .2s}
.save:active{opacity:.85}
.qr{display:flex;align-items:center;gap:18px;margin-top:28px}
.qr img{width:120px;height:120px;background:#fff;padding:4px}
.qr p{font-size:14px;color:var(--muted);max-width:240px}

.foot{padding:28px var(--pad) calc(28px + env(safe-area-inset-bottom));font-size:13px;color:var(--muted);border-top:1px solid rgba(246,244,239,.1)}

/* появление при прокрутке */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
