@font-face{font-family:"Cormorant Garamond";font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:400;font-display:swap;src:url(../fonts/inter-tight-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter Tight";font-weight:400;font-display:swap;src:url(../fonts/inter-tight-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:500;font-display:swap;src:url(../fonts/inter-tight-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter Tight";font-weight:500;font-display:swap;src:url(../fonts/inter-tight-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:600;font-display:swap;src:url(../fonts/inter-tight-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter Tight";font-weight:600;font-display:swap;src:url(../fonts/inter-tight-latin-600-normal.woff2) format("woff2")}

:root{
  --ink:#141210;--paper:#fff;--mute:#8a8580;--line:#e6e2dc;
  --pad:clamp(16px,2vw,32px);
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Inter Tight","Helvetica Neue",Arial,sans-serif;
  --top:66px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
.cap{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.35}
.small{font-size:13px}
.serif-xl{font-family:var(--serif);font-weight:500;line-height:.82;letter-spacing:-.02em}
.link-u{border-bottom:1px solid currentColor;padding-bottom:1px}
.mute{color:var(--mute)}
body.admin-bar{--top:98px}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:space-between;align-items:center;padding:18px var(--pad);font-size:15px}
.admin-bar .top{top:32px}
.top nav,.top .right{display:flex;gap:clamp(16px,2.6vw,44px);align-items:center}
.top nav a,.top .right>a{transition:opacity .2s}
.top nav a:hover,.top .right>a:hover{opacity:.5}
.lang{display:flex;gap:6px;align-items:center}
.lang a{opacity:.35;transition:opacity .2s}
.lang a.on,.lang a:hover{opacity:1}
.lang span{opacity:.35}
.burger{display:none}

/* placeholders */
.ph{position:relative;overflow:hidden;background:var(--c,#c9bfb2);width:100%}
.ph::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 30% 20%,rgba(255,255,255,.22),transparent 55%),radial-gradient(90% 70% at 80% 100%,rgba(0,0,0,.25),transparent 60%)}
.ph::after{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:600 11px/1 var(--sans);letter-spacing:.12em;color:rgba(255,255,255,.75);white-space:nowrap}
.v{aspect-ratio:3/4}
.h{aspect-ratio:4/3}
figure figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:14px}

/* hero */
.hero{height:calc(100svh - var(--top));min-height:520px;display:grid;grid-template-columns:1fr auto;gap:clamp(20px,3vw,56px);padding:clamp(14px,2.5vh,28px) var(--pad) var(--pad)}
.hero-info{display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.hero-top{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pad)}
.hero-name{padding-bottom:.14em;font-family:var(--serif);font-weight:500;line-height:.84;letter-spacing:-.02em;font-size:clamp(56px,min(10.5vw,19vh),230px)}
.hero-params{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,.7fr) minmax(0,1.3fr);border-top:1px solid var(--ink);margin:clamp(16px,3vh,36px) 0}
.hero-params div{padding:clamp(8px,1.4vh,14px) 16px clamp(8px,1.4vh,14px) 0;border-bottom:1px solid var(--line)}
.hero-params dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.hero-params dd{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-family:var(--serif);font-weight:500;font-size:clamp(22px,min(2.2vw,4vh),40px);line-height:1}
.hero-params dd.txt{font-size:clamp(18px,min(1.7vw,3.2vh),30px)}
.hero-params dd small{font-family:var(--sans);font-size:12px;margin-left:3px}
.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:20px}
.hero-links{display:flex;gap:28px}
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--ink);padding:12px 20px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:background .25s,color .25s}
.btn::after{content:"↓";font-weight:400}
.btn:hover{background:var(--ink);color:#fff}
.slider{position:relative;cursor:pointer;height:100%;aspect-ratio:3/4;overflow:hidden;background:#eee9e2}
.slider>img,.slider>.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.slider>.on{opacity:1}
.slider .ui{position:absolute;left:16px;right:16px;bottom:14px;display:flex;justify-content:space-between;color:#fff;font-size:13px;font-weight:500;z-index:2;pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.counter,.num{font-variant-numeric:tabular-nums}

/* portfolio */
.sec{padding:clamp(70px,12vh,140px) var(--pad) 0}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px;gap:20px;flex-wrap:wrap}
.filters{display:flex;gap:18px;font-size:14px;flex-wrap:wrap}
.filters button{opacity:.4;transition:opacity .2s}
.filters button.on,.filters button:hover{opacity:1}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,40px) var(--pad);align-items:start}
.grid .wide{grid-column:span 2}
.grid figure{cursor:zoom-in}
.grid figure.hide{display:none}
.grid .frame{overflow:hidden;background:#eee9e2}
.grid .frame img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.grid figure:hover .frame img,.grid figure:hover .ph{transform:scale(1.015)}
.grid .ph{transition:transform .8s cubic-bezier(.2,.7,.2,1)}

/* contact */
.contact{margin-top:clamp(90px,16vh,180px);padding:var(--pad);border-top:1px solid var(--line)}
.contact .names{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:0 20px;padding:clamp(30px,6vh,70px) 0}
.contact .names .serif-xl{font-size:clamp(52px,10.5vw,200px)}
.ccols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--pad);padding:30px 0 10px}
.ccols p{margin-top:8px;font-size:16px}
.ccols p.cap{font-size:12px;margin-top:0}
.bottom{display:flex;justify-content:space-between;padding:40px 0 10px;font-size:12px}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(255,255,255,.97);z-index:100;display:none;grid-template-rows:auto 1fr auto;padding:var(--pad)}
.lb.open{display:grid}
.lb .bar,.lb .nav{display:flex;justify-content:space-between;font-size:14px;gap:20px}
.lb .stage{display:flex;align-items:center;justify-content:center;min-height:0;padding:20px 0}
.lb .stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.lb .stage .ph{height:100%;width:auto;max-width:100%}
.lb .stage .ph.h{height:auto;width:100%;max-height:100%;max-width:min(100%,calc((100vh - 140px)*4/3))}

/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}.slider>img,.slider>.ph{transition:none}html{scroll-behavior:auto}}

/* mobile */
@media (max-width:900px){
  :root{--top:58px}
  body.admin-bar{--top:104px}
  .top{font-size:14px}
  .top nav,.top .right .hide-m{display:none}
  .burger{display:block;font-size:14px}
  .menu{position:fixed;inset:var(--top) 0 0;background:#fff;z-index:49;display:none;flex-direction:column;gap:18px;padding:40px var(--pad);font-family:var(--serif);font-size:44px}
  .menu.open{display:flex}
  .hero{height:auto;min-height:0;display:flex;flex-direction:column;gap:14px;padding-top:6px}
  .hero-info,.hero-info>div{display:contents}
  .hero .hero-top{display:none}
  .hero-name{order:0;font-size:clamp(44px,13vw,72px)}
  .slider{order:1;aspect-ratio:3/4;align-self:start;width:auto;height:54svh;max-width:100%}
  .hero-params{order:2;grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0}
  .hero-params dd.txt{font-size:20px}
  .hero-params div{padding:7px 10px 7px 0}
  .hero-params dd{font-size:22px}
  .hero-bottom{order:3;gap:14px;flex-direction:column;align-items:stretch}
  .btn{justify-content:center}
  .hero-links{justify-content:space-between}
  .grid{grid-template-columns:1fr 1fr}
  .contact .names{flex-direction:column;align-items:start}
}
@media (min-width:901px){.menu{display:none!important}}
@media (max-width:782px){.admin-bar .top{top:46px}}
