/* КАРТОВЕДЪ — новогоднее оформление 2027 (вариант III «Огоньки»).
   Всё действует только при классе html.ny, который ставит newyear.js в праздничные даты.
   Убрать: см. /root/kartoved-design-BEFORE-NEWYEAR-2027/ВОССТАНОВИТЬ.txt на сервере. */

html.ny .ny-defs{position:absolute;width:0;height:0;overflow:hidden}

/* снег поверх фона, под меню */
html.ny #ny-snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}

/* гирлянда с мишурой под меню */
html.ny .ny-garland-row{position:relative;height:0;z-index:45;pointer-events:none}
html.ny .ny-garland{position:absolute;left:0;right:0;top:-6px;height:140px;overflow:hidden}
html.ny .ny-garland svg{position:absolute;left:0;top:0;display:block;overflow:visible}
html.ny .ny-sprig{position:absolute;top:-14px;height:120px;transform-origin:50% 6%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.6));animation:nySprig 5s ease-in-out infinite alternate}
html.ny .ny-sprig img{display:block;height:100%;width:auto}
@keyframes nySprig{from{transform:translateX(-50%) rotate(-3deg)}to{transform:translateX(-50%) rotate(3deg)}}
@media (max-width:700px){html.ny .ny-sprig{height:82px;top:-10px}html.ny .ny-garland{height:110px}}
@media (prefers-reduced-motion:reduce){html.ny .ny-sprig{animation:none;transform:translateX(-50%)}}
html.ny .ny-bulb{transition:opacity .15s}

/* ёлка на месте астролябии */
html.ny .hero{position:relative}
html.ny .astro-wrap > :not(.ny-fir-box){display:none!important}
html.ny .astro-wrap{aspect-ratio:auto}
html.ny .ny-fir-box{position:relative;width:100%;display:flex;justify-content:center}
html.ny .ny-fir-box::before{content:"";position:absolute;inset:6% 0 0;border-radius:50%;background:radial-gradient(circle,rgba(246,216,142,.17),transparent 64%);pointer-events:none}
html.ny .ny-fir{position:relative;width:min(440px,100%);height:auto;overflow:visible}
html.ny .ny-tw{animation:nyTw 2.4s ease-in-out infinite}
@keyframes nyTw{0%,100%{opacity:.25}50%{opacity:1}}
html.ny .ny-star{animation:nySg 3s ease-in-out infinite}
@keyframes nySg{0%,100%{filter:drop-shadow(0 0 6px rgba(255,80,60,.6))}50%{filter:drop-shadow(0 0 22px rgba(255,90,60,.95))}}

/* надпись под ёлкой — классический каллиграфический почерк */
html.ny .ny-fir-box{flex-direction:column;align-items:center}
html.ny .ny-title{position:relative;margin-top:-6px;text-align:center;line-height:1;pointer-events:none}
html.ny .ny-title span{display:inline-block;font:400 clamp(2.6rem,5.2vw,4.4rem)/1.15 'Great Vibes','Marck Script',cursive;
  transform:rotate(-4deg);padding:0 .2em .05em;
  background:linear-gradient(180deg,#ff8a6e 0%,#e8352f 38%,#c01a22 62%,#8f1018 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 .6px rgba(255,226,180,.55)) drop-shadow(1px 2px 0 rgba(70,10,12,.85)) drop-shadow(0 0 14px rgba(255,120,80,.35)) drop-shadow(0 0 30px rgba(246,216,142,.18))}
html.ny .ny-flourish{display:block;width:min(300px,70%);margin:-2px auto 0;transform:rotate(-3deg)}

/* счётчик до праздника */
html.ny .ny-count{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
html.ny .ny-count div{min-width:84px;text-align:center;padding:10px 8px;background:rgba(40,26,12,.78);border:1px solid rgba(226,183,90,.35)}
html.ny .ny-count b{display:block;font:900 1.9rem/1.1 var(--display);color:var(--gold-hi)}
html.ny .ny-count small{display:block;font:600 .72rem/1.3 var(--engr);letter-spacing:.18em;text-transform:uppercase;color:var(--parch-dim)}
html.ny .ny-count .ny-greet{min-width:0;padding:10px 16px;display:flex;align-items:center;font:italic 700 1.25rem var(--display);color:#ff6a55}

/* подарки внизу героя */
html.ny .hero{padding-bottom:210px}
html.ny .hero .scroll-cue{display:none}
html.ny .ny-gifts{position:absolute;left:0;right:0;bottom:0;height:210px;pointer-events:none;z-index:2}
html.ny .ny-gifts svg{position:absolute;left:0;bottom:0;overflow:visible}

html.ny .ny-flow{animation:nyFlow 3s linear infinite}
@keyframes nyFlow{0%{opacity:.15}20%{opacity:1}45%{opacity:.15}100%{opacity:.15}}
html.ny .ny-rays{animation:nySpin 30s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes nySpin{to{transform:rotate(360deg)}}
html.ny .ny-dash{animation:nyDash 14s linear infinite}
@keyframes nyDash{to{stroke-dashoffset:-400}}
html.ny .ny-smoke{animation:nySmoke 6s linear infinite;transform-box:fill-box;transform-origin:center;opacity:0}
@keyframes nySmoke{0%{transform:translate(0,0) scale(.35);opacity:0}12%{opacity:.38}100%{transform:translate(26px,-110px) scale(2.4);opacity:0}}
html.ny .ny-win{animation:nyWin 4s ease-in-out infinite}
@keyframes nyWin{0%,100%{opacity:1}45%{opacity:.82}50%{opacity:.95}55%{opacity:.8}}
@media (max-width:900px){
  html.ny .ny-fir{width:min(330px,80%)}
  html.ny .hero{padding-bottom:170px}
  html.ny .ny-gifts{height:170px}
}
@media (prefers-reduced-motion:reduce){html.ny .ny-tw,html.ny .ny-star,html.ny .ny-flow,html.ny .ny-rays,html.ny .ny-dash,html.ny .ny-win{animation:none}html.ny .ny-smoke{display:none}}
