/* Апгрейд главной award.persono.ru (октябрь 2026). Пара к up.js.
   Состояния «до анимации» живут только под .up — без JS страница прежняя.
   Двигаются только transform и opacity: без перерасчёта раскладки. */

/* ---------------------------------------------------------- прогресс */
.up-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--ruby),var(--champagne));
  transform:scaleX(0);transform-origin:0 50%;pointer-events:none}

/* ---------------------------------------------- заголовки по строкам */
.up .up-ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.up .up-ln>span{display:inline-block;transform:translateY(108%);
  transition:transform 1.05s var(--ease) calc(var(--i,0) * 110ms)}
.up .up-in .up-ln>span{transform:none}
.up .up-now .up-ln>span{transition:none}

/* ---------------------------------------------------------- лесенка */
.up .up-stagger>*{opacity:0;transform:translateY(18px);
  transition:opacity .7s var(--ease) calc(var(--i,0) * 75ms + 80ms),
             transform .85s var(--ease) calc(var(--i,0) * 75ms + 80ms)}
.up .up-stagger.up-in>*{opacity:1;transform:none}
.up .up-stagger.up-now>*{transition:none}
.up .nomination-list.up-stagger>.nom-extra{transition-delay:0s}

/* -------------------------------------------------- шторка на снимках */
.up .up-curtain{clip-path:inset(14% 0 0 0);transition:clip-path 1.25s var(--ease)}
.up .up-curtain img{transform:scale(1.14);transition:transform 1.6s var(--ease)}
.up .up-curtain.up-in{clip-path:inset(0)}
.up .up-curtain.up-in img{transform:none}
.up .up-curtain.up-now,.up .up-curtain.up-now img{transition:none}
.up .guest>img.up-curtain{transform:scale(1.08);transition:clip-path 1.25s var(--ease),transform 1.6s var(--ease)}
.up .guest>img.up-curtain.up-in{transform:none}
.up .host:hover .host-shot.up-in img{transform:scale(1.03)}
/* увеличенный до раскрытия снимок не должен раздвигать страницу вбок */
.up .partner-media,.up .guest,.up .award-visual,.up .host-shot,.up .program-gallery figure,.up .gallery figure{overflow:clip}

/* ------------------------------------------------------- счётчики */
.stats-grid strong{font-variant-numeric:tabular-nums}

/* --------------------------------------------------- обратный отсчёт */
.up-count{grid-column:1/-1;margin:12px 0 0;font:9px/1.5 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;text-align:right;color:rgba(255,255,255,.78);white-space:nowrap;
  font-variant-numeric:tabular-nums;animation:upFade 1s var(--ease) 1.6s both}
.up-count span{display:block;margin-bottom:3px;color:var(--champagne);letter-spacing:.2em}
.up-count b{font:400 15px/1 var(--serif);letter-spacing:.02em;color:#fff}
@keyframes upFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ------------------------------------------------ бегущая строка */
.up-marquee{position:relative;overflow:hidden;background:var(--ivory);color:var(--ink);
  padding:clamp(46px,6vw,84px) 0 clamp(40px,5vw,70px);border-bottom:1px solid var(--line)}
.up-mq-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:12px 28px;padding:0 var(--pad);margin-bottom:clamp(24px,3vw,40px)}
.up-mq-head p{margin:0;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--ruby)}
.up-mq-head a{display:inline-flex;align-items:center;gap:12px;padding:8px 0;font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--line);
  transition:color .3s var(--ease),border-color .3s var(--ease)}
.up-mq-head a:hover{color:var(--ruby);border-bottom-color:var(--ruby)}
.up-mq-head svg{width:14px;height:14px}
.up-mq-row{display:flex;width:max-content;white-space:nowrap;
  transform:skewX(var(--skew,0deg));will-change:transform}
.up-mq-track{display:flex;flex:none;animation:upMq 90s linear infinite;animation-play-state:paused}
.up-mq-row+.up-mq-row{margin-top:clamp(8px,1vw,14px)}
.up-mq-row+.up-mq-row .up-mq-track{animation-direction:reverse;animation-duration:110s}
.up-mq-on .up-mq-track{animation-play-state:running}
.up-mq-track a{display:inline-flex;align-items:center;font:400 clamp(26px,3.6vw,52px)/1.15 var(--display);
  letter-spacing:-.02em;padding:0 .2em;transition:color .3s var(--ease)}
.up-mq-row+.up-mq-row .up-mq-track a{color:transparent;-webkit-text-stroke:1px rgba(45,23,24,.45)}
.up-mq-track a:hover{color:var(--ruby);-webkit-text-stroke:0}
.up-mq-track a::after{content:"✦";display:inline-block;margin:0 .5em;font-size:.38em;
  color:var(--champagne);-webkit-text-stroke:0;transform:translateY(-.2em)}
@keyframes upMq{to{transform:translateX(-50%)}}

/* ------------------------------------------- «Примерьте награду» */
.award .engraving.up-plate{position:relative;overflow:hidden;width:min(100%,430px);
  margin:30px 0 18px;padding:22px 24px 20px;border:1px solid rgba(117,82,32,.45);
  background:linear-gradient(135deg,#e9d3a1 0%,#c9a464 28%,#f3e2b5 50%,#b88d4c 74%,#e2c78f 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.55),inset 0 -1px rgba(80,50,10,.25),0 18px 40px -22px rgba(42,5,14,.55);
  color:#3a2408;text-align:center;align-items:center}
.award .engraving.up-plate::before{content:"";position:absolute;inset:6px;border:1px solid rgba(80,50,10,.28);
  pointer-events:none}
.award .engraving.up-plate small{color:#6c4614;font-size:7px;letter-spacing:.24em}
.award .engraving.up-plate strong{font:400 clamp(17px,1.9vw,23px)/1.2 var(--display);letter-spacing:.08em;
  color:#3a2408;text-shadow:0 1px 0 rgba(255,244,214,.75),0 -1px 0 rgba(70,40,5,.35);
  overflow-wrap:anywhere;min-height:1.2em}
.award .engraving.up-plate span{font-size:7.5px;letter-spacing:.14em;color:#5a3a10}
.award .engraving.up-plate::after{content:"";position:absolute;inset:-40%;pointer-events:none;
  background:linear-gradient(110deg,transparent 42%,rgba(255,252,236,.75) 50%,transparent 58%);
  transform:translateX(-80%)}
.award .engraving.up-shine::after{animation:upShine 1.1s var(--ease)}
@keyframes upShine{to{transform:translateX(80%)}}
.up-try{width:min(100%,430px);margin:0 0 30px}
.up-try label{display:flex;flex-direction:column;gap:10px}
.up-try label>span{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--ruby)}
.up-try input{width:100%;min-height:48px;padding:0 2px;border:0;border-bottom:1px solid rgba(45,23,24,.35);
  background:transparent;font:400 18px var(--serif);color:var(--ink);border-radius:0;outline:0;
  transition:border-color .3s var(--ease)}
.up-try input:focus{border-bottom-color:var(--ruby)}
.up-try input::placeholder{color:rgba(45,23,24,.38)}
.up-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.up-chips button{min-height:36px;padding:0 14px;border:1px solid rgba(45,23,24,.22);background:transparent;
  font:9px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.up-chips button:hover{border-color:var(--ruby);color:var(--ruby)}
.up-chips button[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff}

/* ---------------------------------- направления номинаций — ссылки */
#nomination-list span[role="link"]{position:relative;cursor:pointer;
  transition:color .3s var(--ease),background .3s var(--ease),padding-left .4s var(--ease)}
#nomination-list span[role="link"]::after{content:"Подать заявку →";position:absolute;right:21px;top:50%;
  font:9px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ruby);
  opacity:0;transform:translate(-10px,-50%);transition:opacity .3s var(--ease),transform .4s var(--ease)}
#nomination-list span[role="link"]:hover,#nomination-list span[role="link"]:focus-visible{
  color:var(--ruby);background:rgba(158,19,45,.04);padding-left:30px;outline:0}
#nomination-list span[role="link"]:hover::after,#nomination-list span[role="link"]:focus-visible::after{
  opacity:1;transform:translate(0,-50%)}
@media (hover:none){#nomination-list span[role="link"]::after{content:"→";opacity:.55;transform:translate(0,-50%)}}

/* --------------------------------------------------- ленты-листалки */
.up .up-rail{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-template-rows:none;
  overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;
  scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);
  scroll-padding-inline:var(--pad);outline:0;cursor:grab}
.up .up-rail::-webkit-scrollbar{display:none}
.up .up-rail>*{scroll-snap-align:start;min-width:0}
.up .up-rail.up-drag{cursor:grabbing;scroll-snap-type:none;user-select:none}
.up .up-rail.up-drag a{pointer-events:none}
.up .up-rail:focus-visible{outline:1px solid var(--champagne);outline-offset:6px}

.up .chronicle-grid.up-rail{grid-auto-columns:clamp(250px,27vw,370px);gap:clamp(18px,2.2vw,34px);
  margin-top:24px}
.up .chronicle-grid.up-rail .chronicle-card figure{aspect-ratio:4/5}
.up .chronicle-grid.up-rail .chronicle-card img{transition:transform .75s var(--ease),filter .5s var(--ease)}

.up-railnav{display:flex;align-items:center;gap:16px;margin-top:clamp(34px,4vw,54px)}
.up-railnav--idle{display:none}
.up-railcount{font:9px var(--sans);letter-spacing:.16em;color:var(--muted);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.up-railcount b{font:400 15px var(--serif);letter-spacing:0;color:var(--ink)}
.up-railbar{position:relative;flex:1;height:1px;background:var(--line);overflow:hidden}
.up-railbar i{position:absolute;inset:0;background:var(--ruby);transform:scaleX(.06);transform-origin:0 50%;
  transition:transform .25s linear}
.up-railnav button{flex:none;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);
  background:transparent;color:var(--ink);cursor:pointer;transition:background .3s var(--ease),color .3s,border-color .3s,opacity .3s}
.up-railnav button svg{width:16px;height:16px}
.up-railnav button[data-dir="-1"] svg{transform:rotate(180deg)}
.up-railnav button:hover:not(:disabled){background:var(--wine);border-color:var(--wine);color:#fff}
.up-railnav button:disabled{opacity:.3;cursor:default}
.up-railnav.light .up-railcount b{color:var(--ink)}

/* --------------------------------------------- линия программы вечера */
.timeline{position:relative}
.up-tl{position:absolute;left:0;top:0;bottom:0;width:2px;pointer-events:none;
  background:linear-gradient(180deg,var(--ruby),var(--champagne));transform:scaleY(0);transform-origin:50% 0}
.up .timeline article:before{opacity:.0}

/* ------------------------------------------------- шаги: соединительная */
.up .steps-list{position:relative}
.up .steps-list::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;
  background:linear-gradient(90deg,#e8c88c,rgba(232,200,140,.2));transform:scaleX(0);transform-origin:0 50%;
  transition:transform 1.6s var(--ease) .2s}
.up .steps-list.up-in::before{transform:none}
.up .steps-list.up-now::before{transition:none}

/* -------------------------------------------- софит за курсором */
.up-spot{position:absolute;left:0;top:0;width:700px;height:700px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(198,166,108,.16),rgba(198,166,108,.05) 55%,transparent);
  opacity:0;transition:opacity .6s var(--ease);z-index:0}
.up-lit>.up-spot{opacity:1}
.stats,.philosophy,.steps,.faq,.board,.apply{position:relative;overflow:hidden}
.stats>*:not(.up-spot),.philosophy>*:not(.up-spot),.steps>*:not(.up-spot),
.faq>*:not(.up-spot),.apply>*:not(.up-spot){position:relative;z-index:1}

/* -------------------------------------------------------------- FAQ */
@supports (interpolate-size:allow-keywords){
  :root{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:hidden;
    transition:block-size .5s var(--ease),content-visibility .5s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}
.faq details p{animation:none}
.faq details[open] p{animation:upFade .5s var(--ease) both}

/* ------------------------------------------- нижняя панель (телефон) */
.up-bar{display:none}
@media (max-width:900px){
  .up-bar{position:fixed;z-index:60;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));
    display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 16px;
    background:rgba(35,4,12,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(198,166,108,.28);color:#fff;
    transform:translateY(calc(100% + 30px));transition:transform .55s var(--ease);pointer-events:none}
  .up-bar.show{transform:none;pointer-events:auto}
  .up-bar p{margin:0;display:flex;flex-direction:column;gap:2px;font-size:8px;letter-spacing:.16em;
    text-transform:uppercase;color:rgba(255,255,255,.62);white-space:nowrap}
  .up-bar p b{font:400 17px/1 var(--serif);letter-spacing:0;text-transform:none;color:#fff}
  .up-bar .button{min-height:46px;gap:14px;padding:0 16px;font-size:9px}
  .up-bar .button svg{width:15px;height:15px}
}

/* --------------------------------------------- узкие экраны */
@media (max-width:900px){
  .up .chronicle-grid.up-rail{grid-auto-columns:min(76vw,340px)}
  .up-count{text-align:right}
}
@media (max-width:760px){
  .up .history .gallery.up-rail,.up .program-gallery.up-rail{grid-auto-columns:82vw;gap:10px;margin-top:40px}
  .up .history .gallery.up-rail>figure,.up .program-gallery.up-rail>figure{grid-column:auto!important;
    grid-row:auto!important;height:auto;aspect-ratio:4/5}
  .up .up-railnav{margin-top:22px}
  .up-mq-track a{font-size:30px}
  .award .engraving.up-plate{padding:20px 16px 18px}
  #nomination-list span[role="link"]:hover{padding-left:21px}
}
@media (max-width:420px){
  .up-count{font-size:8px}
  .up-count b{font-size:13px}
}

/* ---------------------------------------- без движения по просьбе ОС */
@media (prefers-reduced-motion:reduce){
  .up .up-ln>span,.up .up-stagger>*,.up .up-curtain,.up .up-curtain img,.up .guest>img.up-curtain{
    transform:none!important;opacity:1!important;clip-path:none!important;transition:none!important}
  .up-mq-track{animation:none}
  .up-mq-row{flex-wrap:wrap;width:auto;white-space:normal;padding:0 var(--pad)}
  .up-mq-row+.up-mq-row{display:none}
  .up-mq-track{flex-wrap:wrap}
  .up-mq-track[aria-hidden]{display:none}
  .up .steps-list::before{transform:none;transition:none}
  .up-bar{transition:none}
  .up-count{animation:none}
}

/* ===================================================== второй круг (05.10) */

/* ---------------- программа вечера: закреплённый кадр (широкий экран) */
.up-stage{display:none}
@media (min-width:1100px){
  .up-prog{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,5vw,90px);
    align-items:start;margin-top:80px}
  .up-prog .timeline{margin:0;max-width:none}
  .up-prog .timeline article{grid-template-columns:120px 1fr;padding-block:clamp(34px,4.2vh,52px);
    transition:opacity .45s var(--ease)}
  .up-prog .timeline article:not(.up-cur){opacity:.42}
  .up-prog .timeline article.up-cur time{color:var(--ruby)}
  .up-stage{display:block;position:sticky;top:110px;margin:0;height:min(72vh,680px);overflow:hidden;
    background:var(--wine);cursor:zoom-in}
  .up-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
    transform:scale(1.06);transition:opacity .8s var(--ease),transform 1.6s var(--ease)}
  .up-stage img.on{opacity:1;transform:none}
  .up-stage::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(20,3,8,0) 55%,rgba(20,3,8,.78))}
  .up-stage figcaption{position:absolute;left:28px;right:28px;bottom:24px;z-index:1;display:flex;
    align-items:baseline;gap:18px;color:#fff}
  .up-stage figcaption b{font:400 clamp(44px,4.2vw,64px)/1 var(--display);letter-spacing:-.03em}
  .up-stage figcaption span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#e8c88c}
  .up .program .program-gallery{display:none}
  .up .up-tl{display:none}
}

/* ------------------------------------------- «О премии»: по словам */
.up-fill .up-w{opacity:.2;transition:opacity .45s var(--ease)}
.up-fill .up-w.on{opacity:1}

/* --------------------------------------------- просмотрщик снимков */
[data-cursor="Смотреть"]{cursor:zoom-in}
.up-lb{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:12px;padding:clamp(14px,3vw,40px);background:rgba(16,2,6,.94);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s .35s}
.up-lb.open{opacity:1;visibility:visible;transition:opacity .35s var(--ease)}
.up-lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0;
  transition:opacity .16s,transform .3s var(--ease)}
.up-lb.up-lb-swap figure{opacity:0;transform:scale(.985)}
.up-lb img{max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);object-fit:contain;
  box-shadow:0 30px 80px -30px #000}
.up-lb figcaption{display:flex;gap:16px;align-items:baseline;color:#fff;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase}
.up-lb-n{color:#c6a66c;font-variant-numeric:tabular-nums}
.up-lb-a,.up-lb-x{display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);background:transparent;
  color:#fff;cursor:pointer;transition:background .3s var(--ease),border-color .3s}
.up-lb-a{width:52px;height:52px}
.up-lb-a svg{width:18px;height:18px}
.up-lb-a[data-d="-1"] svg{transform:rotate(180deg)}
.up-lb-a:hover,.up-lb-x:hover{background:var(--ruby);border-color:var(--ruby)}
.up-lb-x{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:46px;height:46px;font-size:26px;line-height:1}
body.up-lb-lock{overflow:hidden}
@media (max-width:700px){
  .up-lb{grid-template-columns:1fr 1fr;grid-template-rows:1fr auto;padding:60px 12px 20px}
  .up-lb figure{grid-column:1/-1;grid-row:1}
  .up-lb-a{grid-row:2;justify-self:center}
  .up-lb img{max-height:calc(100dvh - 200px)}
}

/* ------------------------------------------------- подпись курсора */
.up-cursor{position:fixed;left:0;top:0;z-index:150;width:84px;height:84px;margin:-42px 0 0 -42px;
  display:grid;place-items:center;border-radius:50%;pointer-events:none;
  background:rgba(158,19,45,.92);color:#fff;font:9px var(--sans);letter-spacing:.16em;text-transform:uppercase;
  box-shadow:0 10px 30px -10px rgba(42,5,14,.7);opacity:0;scale:.3;
  transition:opacity .3s var(--ease),scale .35s var(--ease)}
.up-cursor.on{opacity:1;scale:1}
.chronicle-grid.up-rail[data-cursor]{cursor:grab}

/* --------------------------------------------------- конфетти */
.up-confetti{position:fixed;inset:0;width:100vw;height:100vh;z-index:220;pointer-events:none}

/* ----------------------------------------------------- календарь */
.place-city .up-cal{margin-top:14px;color:var(--ink)}
.place-city .text-link[style*="margin-top:26px"]+.up-cal{margin-top:12px}

/* ------------------------------------ глубина первого экрана, наклон */
.hero-image,.hero-badge{transition:translate .9s cubic-bezier(.2,.75,.25,1)}
.host-shot{transition:transform .6s var(--ease),clip-path 1.25s var(--ease);transform-style:preserve-3d;will-change:transform}

@media (prefers-reduced-motion:reduce){
  .up-stage img{transition:none}
  .up-lb,.up-lb figure{transition:none}
}
.up .host-shot.up-curtain{transition:clip-path 1.25s var(--ease),transform .6s var(--ease)}
/* стрелки спрайта рисуются контуром — как в .rail-controls лендинга */
.up-railnav svg,.up-lb svg,.up-mq-head svg{fill:none;stroke:currentColor;stroke-width:1.25}
