:root{
  --bg:#000;--fg:#fff;--muted:#a3a3a3;--dim:#878787;--faint:#666;--line:rgba(255,255,255,.14);
  --pad:clamp(16px,2.25vw,32px);
  --serif-hero:"Inria Serif","Times New Roman",Times,serif;
  --serif:"Instrument Serif","Times New Roman",Times,serif;
  --serif-body:"Cormorant Garamond","Times New Roman",Times,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --grot:"Schibsted Grotesk","Inter",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:dark;box-sizing:border-box;
}
:root:not([data-theme="light"]){--bg:#000;--fg:#fff}
*,*::before,*::after{box-sizing:inherit}
html{background:var(--bg);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.5 var(--sans);letter-spacing:-.02em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px solid #fff;outline-offset:3px}
h1,h2,h3,p{margin:0}

/* grain */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:60;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,2%)}100%{transform:translate(0,0)}}

/* type helpers */
.label{display:inline-flex;align-items:center;gap:.6em;font:400 16px/1.2 var(--sans);letter-spacing:0;color:var(--fg)}
.label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--faint)}
.h-md{font:400 clamp(30px,2.65vw,38px)/1.1 var(--serif);letter-spacing:-.04em}
.h-sm{font:500 20px/1.2 var(--grot);letter-spacing:-.04em}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:calc(26px + env(safe-area-inset-top,0px)) var(--pad) 20px;transition:transform .45s ease,background .3s}
.nav.is-hidden{transform:translateY(-110%)}
.nav.is-scrolled{background:rgba(0,0,0,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.nav__logo{font:300 clamp(28px,2.65vw,38px)/1 var(--serif-hero);letter-spacing:-.06em}
.nav__links{display:flex;flex:1;justify-content:space-around;max-width:1150px;margin-left:8vw}
.nav__links a,.footer a{position:relative}
.nav__links a::after,.footer__row a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s}
.nav__links a:hover::after,.footer__row a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__cbtn{margin-left:28px;background:none;color:#fff;border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:9px 18px;font:500 14px/1 var(--sans);letter-spacing:-.01em;cursor:pointer;transition:background .25s,color .25s;white-space:nowrap}
.nav__cbtn:hover,.nav__cbtn[aria-expanded="true"]{background:#fff;color:#000}
.cpop{position:fixed;z-index:60;top:calc(env(safe-area-inset-top,0px) + 84px);right:var(--pad);min-width:280px;padding:8px;border-radius:16px;background:#0c0c0c;border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.cpop[hidden]{display:none}
.cpop__i{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:10px;transition:background .2s}
.cpop__i:hover{background:rgba(255,255,255,.07)}
.cpop__k{font-size:12px;color:var(--dim);letter-spacing:.04em}
.cpop__v{font-size:16px;color:#fff}
.tgcta__alt{display:flex;gap:22px;flex-wrap:wrap}
.tgcta__alt a{color:#fff;font-size:15px;text-decoration:underline;text-underline-offset:4px}
.nav__burger{display:none;background:none;border:0;padding:10px;color:#fff;cursor:pointer}
.nav__burger span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0;transition:transform .3s}
.nav__burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:45;background:#000;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:0 var(--pad);font:400 40px/1.1 var(--serif);letter-spacing:-.04em}
.mnav[hidden]{display:none}

/* hero */
.hero{position:relative;height:100vh;height:100svh}
.hero__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;perspective:1400px}
.hero__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none}
.hero__center--card{z-index:3;padding-top:6vh}
.hero__title{margin:0;white-space:nowrap;
  font:300 14.9vw/1 var(--serif-hero);letter-spacing:-.04em}
.hero__3f{font-weight:400}
.hero__card{position:relative;width:19vw;aspect-ratio:271/315;overflow:hidden}
.hero__card img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(1.05)}
.hero__cap{position:absolute;left:0;right:0;bottom:12%;text-align:center}
.hero__city{color:#050505;font-size:clamp(11px,1.15vw,16px)}
.hero__tag{margin-top:1.1em;color:#fff;font-size:clamp(10px,1.1vw,16px);letter-spacing:.42em}
.hero__ph{position:absolute;left:0;top:0;z-index:4;overflow:hidden;will-change:transform,opacity;backface-visibility:hidden;opacity:0}
.hero__ph img{width:100%;height:100%;object-fit:cover}
.hero__hint{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 16px 11px;border-radius:999px;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:12px;color:#fff;letter-spacing:.1em;white-space:nowrap;pointer-events:none}
.hero__hint::after{content:'';width:7px;height:7px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg);animation:hintbob 1.6s ease-in-out infinite}
@keyframes hintbob{0%,100%{transform:translateY(-2px) rotate(45deg);opacity:.45}50%{transform:translateY(3px) rotate(45deg);opacity:1}}
@media (prefers-reduced-motion:reduce){.hero__hint::after{animation:none}}

/* intro */
.intro{min-height:110vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:12vh var(--pad);text-align:center}
.intro__line{width:1px;height:24vh;background:rgba(255,255,255,.25);transform-origin:top}
.intro__text{font:500 clamp(30px,3.7vw,53px)/1.08 var(--serif-body);letter-spacing:-.03em;max-width:15em;color:var(--fg)}
.intro__text .w{color:var(--faint);transition:color .25s}

/* ticker */
.philo{display:flex;flex-direction:column;align-items:center;gap:24px;padding:0 0 18vh}
.ticker{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.ticker__track{display:flex;width:max-content;animation:tick 38s linear infinite}
.ticker__group{display:flex;gap:4.9vw;padding-right:4.9vw}
.ticker span{font:400 18px/1 var(--sans);color:var(--dim);white-space:nowrap}
@keyframes tick{to{transform:translateX(-50%)}}

/* works */
.works{padding:0 var(--pad)}
.works--page{padding-top:110px}
.works__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.work{position:relative;display:block;overflow:hidden;aspect-ratio:675/495;background:#111}
.work img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.work:hover img{transform:scale(1.04)}
.work__t{position:absolute;left:14px;top:12px;right:14px;font-size:15px;line-height:1.35;letter-spacing:-.02em;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.works__more{display:flex;justify-content:flex-end;margin-top:26px}
.works__more a{font-weight:600;font-size:18px;letter-spacing:-.04em}

/* gallery: continuous ticker like the original */
.gal{margin:12vh 0 0}
.gal__win{width:61.1vw;margin:0 auto;overflow:hidden}
.gal__track{display:flex;width:max-content;animation:galmove 130s linear infinite;will-change:transform}
.gal__item{flex:0 0 33.5vw;max-width:520px;aspect-ratio:482/687;border-radius:8px;overflow:hidden;background:#111;margin-right:10px}
.gal__item img{width:100%;height:100%;object-fit:cover}
@keyframes galmove{to{transform:translateX(-50%)}}

/* story / chef */
.story{display:grid;grid-template-columns:22% 18.8% 1fr;gap:0 var(--pad);padding:18vh var(--pad) 12vh;align-items:start}
.story__l{display:flex;flex-direction:column;gap:14px;padding-left:18px}
.story__l .h-md{max-width:9em}
.story__img img{width:100%;aspect-ratio:271/402;object-fit:cover}
.story__txt,.chef__txt{display:flex;flex-direction:column;gap:22px;max-width:600px;color:var(--muted);line-height:1.7}
.chef{display:grid;grid-template-columns:23.1% 22.6% minmax(0,560px);gap:0 3.5vw;padding:6vh var(--pad) 16vh;align-items:start}
.chef__img img{width:100%;aspect-ratio:333/493;object-fit:cover}
.chef__t{padding-top:12px}

/* menu fragments */
.menu{padding:6vh 0 14vh}
.menu__wrap{position:relative;margin-left:11.8vw;margin-right:var(--pad)}
.menu__track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.menu__track::-webkit-scrollbar{display:none}
.menu__item{flex:0 0 32vw;max-width:460px;aspect-ratio:460/680;scroll-snap-align:start;overflow:hidden;background:#111}
.menu__item img{width:100%;height:100%;object-fit:cover}
.menu__btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(0,0,0,.35);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s,opacity .2s;backdrop-filter:blur(6px)}
.menu__btn:hover{background:rgba(255,255,255,.18)}
.menu__btn[disabled]{opacity:0;pointer-events:none}
.menu__prev{left:12px}.menu__next{right:12px}
.menu__nav{display:none;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--pad) 0}
.menu__dots{display:flex;gap:6px}
.menu__dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.25);transition:background .25s,width .25s}
.menu__dots i.on{background:#fff;width:18px}
.menu__swipe{font-size:12px;color:var(--muted);letter-spacing:.08em;display:flex;align-items:center;gap:6px;transition:opacity .4s}
.menu__swipe::after{content:'\2192';display:inline-block;animation:swipebob 1.6s ease-in-out infinite}
@keyframes swipebob{0%,100%{transform:translateX(0);opacity:.5}50%{transform:translateX(5px);opacity:1}}

/* steps */
.steps{display:grid;grid-template-columns:32% 1fr;gap:var(--pad);padding:4vh var(--pad) 14vh}
.steps__l{display:flex;flex-direction:column;gap:14px;padding-left:18px}
.steps__l .h-md{max-width:11em}
.steps__list{list-style:none;margin:0;padding:0}
.steps__list li{padding:0 0 38px;margin-bottom:38px;border-bottom:1px solid var(--line)}
.steps__h{display:flex;gap:16px;font:500 20px/1.2 var(--grot);letter-spacing:-.04em;margin-bottom:16px}
.steps__n{color:var(--dim)}
.steps__list p{color:var(--muted);max-width:640px;padding-left:44px;line-height:1.65}

/* contacts block (target of the "Связаться" button) */
.fcontacts{padding:9vh var(--pad) 9vh;border-top:1px solid var(--line);margin-top:6vh;scroll-margin-top:80px}
.fcontacts__list{margin:28px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px 40px}
.fcontacts__list dt{color:var(--dim);font-size:14px;margin-bottom:8px}
.fcontacts__list dd{margin:0;font-size:clamp(17px,1.4vw,21px);color:#fff;overflow-wrap:anywhere}
.fcontacts__list a{text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:5px;transition:text-decoration-color .25s}
.fcontacts__list a:hover{text-decoration-color:#fff}

/* cta + footer */
.cta{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;padding:18vh var(--pad) 22vh}
.cta__title{position:relative;font:400 clamp(44px,5.3vw,76px)/.98 var(--serif);letter-spacing:-.04em}
.cta__sub{color:var(--dim)}
.footer{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:0 var(--pad) calc(28px + env(safe-area-inset-bottom,0px))}
.footer__logo{font:300 clamp(30px,2.65vw,38px)/1 var(--serif-hero);letter-spacing:-.06em}
.footer__copy{font:400 15px/1.4 var(--grot);color:var(--dim);margin-top:10px}
.footer__r{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.footer__row{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end}

/* project page */
.proj{padding:110px var(--pad) 0}
.proj__head{display:grid;grid-template-columns:30% 30% 1fr;gap:var(--pad);margin-bottom:60px}
.proj__title{display:flex;flex-direction:column;gap:18px}
.proj__place{color:var(--muted);font-size:15px}
.proj__meta{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px;margin:0;align-content:start}
.proj__meta dt{color:var(--dim);font-size:15px;margin-bottom:8px}
.proj__meta dd{margin:0;font-size:15px}
.proj__text{display:flex;flex-direction:column;gap:14px;color:var(--muted);line-height:1.65;max-width:560px}
.proj__imgs{columns:2;column-gap:12px}
.proj__imgs figure{margin:0 0 12px;break-inside:avoid;background:#111;overflow:hidden}
.proj__imgs img{width:100%;height:auto}
.proj__nav{display:flex;justify-content:space-between;padding:40px 0 0}
.proj__nav a{display:flex;align-items:center;gap:14px;font-size:15px}
.proj__nav img{width:40px;height:40px;object-fit:cover}
.proj__prev span{max-width:42vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* contact */
.contact{display:grid;grid-template-columns:31% 1fr;gap:var(--pad);padding:120px var(--pad) 0;min-height:60vh}
.contact__info{margin:34px 0 0;display:flex;flex-direction:column;gap:22px}
.contact__info dt{color:var(--dim);font-size:15px;margin-bottom:6px}
.contact__info dd{margin:0}
.form{display:flex;flex-direction:column;gap:30px}
.form label{display:flex;flex-direction:column;gap:12px;font-size:16px}
.form input,.form select,.form textarea{background:transparent;border:0;border-bottom:1px solid var(--line);color:#fff;padding:8px 6px 12px;font:16px/1.4 var(--sans);border-radius:0;outline:none;transition:border-color .2s}
.form input::placeholder,.form textarea::placeholder{color:#6b6b6b;font-family:var(--serif)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:#fff}
.form select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23999'/></svg>");background-repeat:no-repeat;background-position:right 8px center}
.form select option{background:#111;color:#fff}
.form textarea{resize:vertical;min-height:90px}
.form__note{font-size:12px;color:var(--dim)}
.form__row{display:flex;justify-content:space-between;align-items:center;gap:16px}
.form button{background:none;border:0;color:#fff;font:600 16px var(--sans);cursor:pointer;padding:8px 0}
.form button[disabled]{opacity:.5}
.form__msg{font-size:14px;color:var(--muted)}
.form__msg.ok{color:#fff}.form__msg.err{color:#ff8a8a}
.form .is-err{border-bottom-color:#ff8a8a}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nf{min-height:60vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:120px var(--pad) 0;text-align:center}
.nf a{border-bottom:1px solid currentColor}

/* telegram call-to-action on the contact page */
.tgcta{display:flex;flex-direction:column;align-items:flex-start;gap:28px;padding-top:6px}
.tgcta__lead{color:var(--muted);font-size:17px;line-height:1.6;max-width:560px}
.tgcta__btn{display:inline-flex;align-items:center;gap:14px;background:#fff;color:#000;border-radius:999px;padding:18px 30px;font:500 18px/1 var(--sans);letter-spacing:-.02em;transition:transform .3s cubic-bezier(.3,1.4,.5,1),background .2s}
.tgcta__btn:hover{transform:scale(1.04);background:#eaeaea}
.tgcta__handle{color:var(--dim);font-size:15px}

/* legal */
.legal{max-width:820px;margin:0 auto;padding:120px var(--pad) 0;color:var(--muted);line-height:1.7;font-size:15px}
.legal h1{color:#fff;margin-bottom:36px}
.legal h2{color:#fff;font:500 18px/1.3 var(--sans);letter-spacing:-.01em;margin:36px 0 12px}
.legal h3{color:#fff;font:500 16px/1.3 var(--sans);margin:22px 0 8px}
.legal p{margin:0 0 10px;overflow-wrap:anywhere}
.legal__table{overflow-x:auto;margin:10px 0 24px}
.legal table{border-collapse:collapse;min-width:900px;font-size:13px;line-height:1.5}
.legal th,.legal td{border:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}
.legal th{color:#fff;font-weight:500}
.form__note a,.footer__copy a{text-decoration:underline;text-underline-offset:3px}

/* reveal */
.js .reveal{opacity:0;transform:translateY(28px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}

/* tablet / mobile */
@media (max-width:1024px){
  .story{grid-template-columns:1fr 1fr;gap:28px var(--pad)}
  .story__txt{grid-column:1/-1}
  .chef{grid-template-columns:1fr 1fr;gap:28px var(--pad)}
  .chef__txt{grid-column:1/-1}
  .proj__head{grid-template-columns:1fr 1fr}
  .proj__text{grid-column:1/-1}
}
@media (max-width:760px){
  .nav__links{display:none}.nav__burger{display:block}
  .nav{padding:calc(20px + env(safe-area-inset-top,0px)) var(--pad) 14px}
  .nav__cbtn{margin-left:auto;margin-right:10px;padding:8px 14px;font-size:13px}
  .cpop{left:var(--pad);right:var(--pad);min-width:0;top:calc(env(safe-area-inset-top,0px) + 70px)}
  .hero__title{font-size:17vw}
  .hero__center{z-index:4}.hero__center--card{z-index:3;padding-top:0}
  .hero__card{width:58vw}
  .hero__city{color:#fff}
  .intro{min-height:0;padding:28px var(--pad) 10vh;gap:22px}
  .intro__line{display:none}
  .grid2{grid-template-columns:1fr;gap:16px}
  .gal__win{width:100vw}.gal__item{flex-basis:77vw}
  .story,.chef,.steps,.contact{grid-template-columns:1fr}
  .story__l,.steps__l{padding-left:0}
  .story{padding:10vh var(--pad) 8vh}
  .story__img{max-width:none}
  .menu__wrap{margin:0}
  .menu__track{padding:0 var(--pad);scroll-padding-left:var(--pad)}
  .menu__item{flex-basis:72vw}
  .menu__item:first-child{flex-basis:50vw;aspect-ratio:auto;height:calc(72vw * 680 / 460);background:transparent}
  .menu__item:first-child img{object-fit:contain}
  .menu__btn{display:none}
  .menu__nav{display:flex}
  .steps__list p{padding-left:0}
  .proj__head{grid-template-columns:1fr}
  .proj__imgs{columns:1}
  .cta__title{font-size:8.4vw;line-height:1}
  .footer{flex-direction:column;align-items:flex-start}
  .footer__r{align-items:flex-start}.footer__row{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){.grain,.ticker__track,.gal__track{animation:none}.js .reveal{opacity:1;transform:none}}
