/* Новогодняя ярмарка на острове Канта — «Согревают». Scoped под .ym-page; шрифты объявлены в header-d5.css. Собрано build_wp.py. */
/* маршрут: линия рисуется по мере чтения, точка шага загорается */
.ym-route-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(24px,4vw,56px);margin-top:36px;align-items:start}
.ym-map-col{position:sticky;top:calc(var(--hdr) + 20px)}
.ym-map{position:relative;border-radius:22px;overflow:hidden;background:#dcebf2;box-shadow:0 24px 50px rgba(40,70,90,.15)}
.ym-map svg{display:block;width:100%;height:auto}
.ym-map .land{fill:#f1efe9}
.ym-map .river{fill:#a9cbdb}
.ym-map .isle{fill:#e3ecdc;stroke:#9cb79f;stroke-width:2}
.ym-map .br{fill:none;stroke:#8a6a52;stroke-width:6;stroke-linecap:round}
.ym-map .bra{fill:#8a6a52;stroke:#8a6a52;stroke-width:2}
.ym-map .route{fill:none;stroke:#8f2236;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--len,2400);stroke-dashoffset:calc(var(--len,2400) * (1 - var(--p,1)))}
.ym-map .pt .g{fill:rgba(143,34,54,.18);transform-box:fill-box;transform-origin:center;transition:transform .4s}
.ym-map .pt .c{fill:#fff;stroke:#8f2236;stroke-width:3}
.ym-map .pt{cursor:pointer}
.ym-map .pt text{font:700 15px/1 Inter,sans-serif;fill:#8f2236;text-anchor:middle;dominant-baseline:auto}
.ym-map .pt.on .c{fill:#8f2236}.ym-map .pt.on text{fill:#fff}
.ym-map .pt.on .g{transform:scale(1.6);fill:rgba(255,196,107,.5)}
.ym-motion .ym-map .pt.on .g{animation:ym-pulse 1.6s infinite}
@keyframes ym-pulse{50%{transform:scale(2.1);opacity:.4}}
.ym-map .lbl{font:600 italic 34px 'Cormorant Garamond',serif;fill:#3c5a4a;text-anchor:middle;paint-order:stroke;stroke:#f1efe9;stroke-width:6px}
.ym-map .lbl.riv{fill:#2e6a86;stroke:#a9cbdb}
.ym-arni-walk{position:absolute;width:clamp(90px,11vw,150px);left:calc(var(--ax,74) * 1%);top:calc(var(--ay,36) * 1%);transform:translate(-50%,-100%);transition:left .6s ease,top .6s ease;z-index:2}
.ym-steps{list-style:none;padding:0;margin:0;counter-reset:s}
.ym-step{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid rgba(42,26,20,.12);transition:opacity .4s}
.ym-step b{flex:0 0 38px;height:38px;border-radius:50%;display:grid;place-items:center;font:700 16px/1 Inter,sans-serif;background:#fff;color:#8f2236;border:2px solid #8f2236}
.ym-step.on b{background:#8f2236;color:#fff}
.ym-step h3{margin-bottom:.25em}
.ym-step p{margin:0;font-size:15.5px;color:var(--ink2)}
.ym-motion .ym-step:not(.on){opacity:.55}
@media (max-width:900px){.ym-route-grid{grid-template-columns:1fr}.ym-map-col{position:relative;top:0}}

/* вечер по часам: закреплённая сцена, день переходит в ночь, огни загораются */
.ym-eve{position:relative;background:#120a0d;color:var(--cream);scroll-margin-top:calc(var(--hdr) + 16px)}
.ym-pin-in{position:relative;overflow:hidden}
.ym-eve-day,.ym-eve-night{position:absolute;inset:0}
.ym-eve-day img,.ym-eve-night img,.ym-eve-day .ym-ph,.ym-eve-night .ym-ph{width:100%;height:100%;object-fit:cover}
.ym-eve-night{opacity:var(--night,0)}
.ym-eve-sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,170,90,calc(.35 * var(--dusk,0))) 0%,transparent 55%);mix-blend-mode:soft-light;pointer-events:none}
.ym-eve-glow{position:absolute;inset:0;background:radial-gradient(60% 40% at 55% 70%,rgba(255,190,100,calc(.38 * var(--night,0))),transparent 70%);pointer-events:none}
.ym-eve::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,10,13,.82) 0%,rgba(18,10,13,.35) 45%,transparent 70%);pointer-events:none}
.ym-eve-garland{top:0;z-index:3}
.ym-clock{position:absolute;right:clamp(16px,4vw,60px);top:calc(var(--hdr) + 24px);z-index:4;display:flex;align-items:center;gap:14px;padding:10px 16px 10px 10px;border-radius:999px;background:rgba(18,10,13,.6);border:1px solid var(--line);backdrop-filter:blur(6px)}
.ym-dial{position:relative;width:54px;height:54px;border-radius:50%;border:2px solid var(--lamp)}
.ym-dial i{position:absolute;left:50%;bottom:50%;width:3px;margin-left:-1.5px;background:var(--lamp);border-radius:2px;transform-origin:50% 100%}
.ym-dial .h{height:15px;transform:rotate(var(--hr,0deg))}.ym-dial .m{height:22px;width:2px;transform:rotate(var(--mr,0deg))}
.ym-time{font:700 30px/1 'Cormorant Garamond',serif}
.ym-caps{position:relative;z-index:4;width:min(1200px,calc(100% - 64px));margin:0 auto;padding-top:calc(var(--hdr) + 40px)}
.ym-caps h2{max-width:12ch}
.ym-cap{position:absolute;left:0;top:calc(var(--hdr) + 230px);max-width:min(520px,90%);opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s}
.ym-cap.on{opacity:1;transform:none}
.ym-cap .k{display:inline-block;font:700 15px/1 Inter,sans-serif;letter-spacing:.1em;color:#2a1406;background:var(--lamp);padding:6px 10px;border-radius:8px;margin-bottom:14px}
.ym-cap p{font-size:18px;color:#f3e7d7}
.ym-arni-snow{position:absolute;right:clamp(16px,8vw,140px);bottom:clamp(20px,6vh,60px);width:clamp(110px,13vw,180px);z-index:4}
.ym-eve-fall{display:none}
/* без движения и без JS — обычный список */
.ym-eve .ym-pin-in>.ym-eve-day,.ym-eve .ym-pin-in>.ym-eve-night,.ym-eve .ym-eve-sky,.ym-eve .ym-eve-glow,.ym-eve .ym-clock,.ym-eve .ym-caps,.ym-eve .ym-eve-garland{display:none}
.ym-eve .ym-eve-fall{display:block;width:min(1200px,calc(100% - 64px));margin:0 auto;padding-block:clamp(72px,9vw,120px);position:relative;z-index:4;columns:2 320px;column-gap:40px}
.ym-eve-fall h2{column-span:all}
.ym-eve-fall article{break-inside:avoid;padding:14px 0;border-bottom:1px solid var(--line)}
.ym-eve-fall p{margin:0;color:#e6d9c7}
.ym-eve:not(.live)::after{display:none}
.ym-eve.live .ym-pin{height:300vh}
.ym-eve.live .ym-pin-in{position:sticky;top:0;height:100vh;min-height:560px}
.ym-eve.live .ym-pin-in>.ym-eve-day,.ym-eve.live .ym-pin-in>.ym-eve-night,.ym-eve.live .ym-eve-sky,.ym-eve.live .ym-eve-glow,.ym-eve.live .ym-clock,.ym-eve.live .ym-caps,.ym-eve.live .ym-eve-garland{display:block}
.ym-eve.live .ym-clock{display:flex}
.ym-eve.live .ym-eve-fall{display:none}
@media (max-width:900px){
  .ym-eve.live .ym-pin{height:200vh}
  .ym-eve.live .ym-pin-in{height:100svh}
  .ym-caps{width:calc(100% - 32px);padding-top:calc(var(--hdr) + 90px)}
  .ym-cap{top:calc(var(--hdr) + 210px)}
  .ym-eve::after{background:linear-gradient(180deg,rgba(18,10,13,.88) 0%,rgba(18,10,13,.72) 52%,rgba(18,10,13,.25) 80%,rgba(18,10,13,.5) 100%)}
  .ym-clock{top:calc(var(--hdr) + 14px);right:16px}
}

/* лето — зима: ползунок сравнения */
.ym-compare{position:relative;margin-top:30px;border-radius:22px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 26px 60px rgba(90,60,40,.2);user-select:none}
.ym-compare .a,.ym-compare .b{position:absolute;inset:0}
.ym-compare img,.ym-compare .ym-ph{width:100%;height:100%;object-fit:cover}
.ym-compare .b{clip-path:inset(0 0 0 var(--p))}
.ym-compare .bar{position:absolute;top:0;bottom:0;left:var(--p);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.4);pointer-events:none}
.ym-compare .bar i{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.ym-compare .bar i::before{content:"‹ ›";position:absolute;inset:0;display:grid;place-items:center;font:700 18px/1 Inter,sans-serif;color:#8f2236}
.ym-compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ym-compare .t1,.ym-compare .t2{position:absolute;top:14px;font:600 12px/1 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.4);padding:7px 10px;border-radius:999px;pointer-events:none}
.ym-compare .t1{left:14px}.ym-compare .t2{right:14px}
@media (max-width:600px){.ym-compare{aspect-ratio:4/5}}

/* адвент-календарь каникул: двери открываются */
.ym-advent{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ym-door{position:relative;perspective:900px}
.ym-door button{position:absolute;inset:0;z-index:2;width:100%;border:0;border-radius:14px;cursor:pointer;color:#fff3df;
  background:linear-gradient(160deg,#b8324a,#7d1a2e);box-shadow:inset 0 0 0 2px rgba(255,210,126,.4),0 10px 24px rgba(0,0,0,.25);
  transform-origin:0 50%;transition:transform .8s cubic-bezier(.3,.7,.2,1),box-shadow .4s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0}
.ym-door button::after{content:"";position:absolute;right:12px;top:50%;width:8px;height:8px;border-radius:50%;background:var(--lamp)}
.ym-door .num{font:700 48px/1 'Cormorant Garamond',serif}
.ym-door .mon{font:600 11px/1 Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.ym-door.today button{box-shadow:inset 0 0 0 3px var(--lamp),0 0 26px rgba(255,196,107,.6)}
.ym-door.open button{transform:rotateY(-108deg);box-shadow:none}
.ym-door .in{position:relative;height:100%;min-height:150px;border-radius:14px;background:#fff8ee;color:var(--ink);padding:14px 14px 12px;font-size:14px;line-height:1.45}
.ym-door .in h3{font-size:19px;color:#8f2236;margin-bottom:.35em}
.ym-door .in p{margin:0}
.ym-door .in a{color:#8f2236}
.ym-door:not([data-js]) button{display:none}
.ym-still .ym-door button{display:none}
@media (max-width:1100px){.ym-advent{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:700px){.ym-advent{grid-template-columns:repeat(2,minmax(0,1fr))}.ym-door .in{font-size:13px;padding:12px 11px 10px}.ym-door .in h3{font-size:17px}}

/* что ещё зимой */
.ym-wcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}
.ym-wcard{display:block;text-decoration:none;color:var(--cream);background:rgba(246,239,228,.06);border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .3s,border-color .3s}
.ym-page a.ym-wcard{color:var(--cream)}
.ym-wcard:hover{transform:translateY(-4px);border-color:rgba(255,196,107,.5)}
.ym-wcard img,.ym-wcard .ym-ph{width:100%;aspect-ratio:3/2;object-fit:cover}
.ym-wcard span{display:block;padding:16px 18px 18px}
.ym-wcard p{margin:0;font-size:15px;color:#e6d9c7}
.ym-past{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.ym-past li{display:grid;grid-template-columns:130px 1fr;gap:4px 14px;padding:12px 0;border-bottom:1px solid var(--line)}
.ym-past b{color:var(--lamp);grid-row:span 2}
.ym-past small{color:#cdbca9;font-size:14px}
@media (max-width:900px){.ym-wcards{grid-template-columns:1fr 1fr}.ym-past{grid-template-columns:1fr}}
@media (max-width:560px){.ym-wcards{grid-template-columns:1fr}.ym-past li{grid-template-columns:1fr}}

/* непогода */
.ym-rain{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ym-rain li{display:flex;gap:16px;align-items:center;background:#fff;border-radius:18px;padding:12px;box-shadow:0 8px 24px rgba(40,70,90,.08)}
.ym-rain img,.ym-rain .ym-ph{width:112px;height:112px;object-fit:cover;border-radius:12px;flex:0 0 auto;aspect-ratio:1}
.ym-rain h3{font-size:22px;margin-bottom:.2em}.ym-rain p{margin:0 0 .3em;font-size:15px;color:var(--ink2)}
@media (max-width:700px){.ym-rain{grid-template-columns:1fr}}

/* шапки Арни */
.ym-hats-grid{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:clamp(24px,4vw,60px);align-items:center}
.ym-hat-stage{position:relative;aspect-ratio:1;max-width:420px;margin:0 auto;width:100%;border-radius:50%;background:radial-gradient(circle at 50% 60%,#fff3df,#efdfc4 60%,transparent 61%)}
.ym-hat-stage img,.ym-hat-stage .ym-strip{position:absolute;left:50%;bottom:8%;height:78%;width:auto;transform:translateX(-50%)}
.ym-hat-stage .ym-arni-jump{display:none;aspect-ratio:var(--ar)}
.ym-hat-stage.won .ym-arni-jump{display:block}.ym-hat-stage.won .ym-hat-arni{display:none}
.ym-motion .ym-hat-arni.pop{animation:ym-pop .45s}
@keyframes ym-pop{40%{transform:translateX(-50%) scale(1.06,.94)}}
.ym-hatbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.ym-hat{display:flex;flex-direction:column;align-items:center;gap:4px;width:96px;padding:8px 6px;border-radius:14px;border:1px solid #dccbb2;background:#fffaf2;cursor:pointer;font:600 12px/1.2 Inter,sans-serif;color:var(--ink)}
.ym-hat img{width:56px;height:auto}
.ym-hat[aria-pressed=true]{border-color:#8f2236;box-shadow:0 0 0 2px #8f2236}
.ym-hat.tried::after{content:"✓";color:#2e5a47;font-size:13px}
.ym-hat-msg{min-height:1.6em;font-weight:600;color:#8f2236;margin-top:14px}
@media (max-width:800px){.ym-hats-grid{grid-template-columns:1fr}.ym-hat-stage{max-width:300px}}

/* слово из лампочек: бегущие огни, как на ярмарочной вывеске */
.ym-word{background:#140b0e;padding:clamp(48px,7vw,90px) 16px;text-align:center;overflow:hidden}
.ym-word svg{width:min(1100px,100%);height:auto;display:block;margin:0 auto}
.ym-word text{font:700 210px/1 'Cormorant Garamond',Georgia,serif;text-anchor:middle;fill:none;stroke-linecap:round;letter-spacing:6px}
.ym-word .dim{stroke:#4a2f28;stroke-width:9;stroke-dasharray:0 22}
.ym-word .lit,.ym-word .lit2{stroke:#ffd27e;stroke-width:10;stroke-dasharray:0 44;filter:drop-shadow(0 0 6px #ffb347)}
.ym-word .lit2{stroke:#ff6f61;stroke-dashoffset:22}
.ym-motion .ym-word .lit{animation:ym-chase 1.4s linear infinite}
.ym-motion .ym-word .lit2{animation:ym-chase2 1.4s linear infinite}
@keyframes ym-chase{to{stroke-dashoffset:-44}}
@keyframes ym-chase2{from{stroke-dashoffset:22}to{stroke-dashoffset:-22}}
.ym-word p{margin:18px auto 0;color:#e6d9c7;letter-spacing:.12em;text-transform:uppercase;font-size:13px;max-width:none}

/* дорога */
.ym-table-wrap{overflow-x:auto;margin-top:30px;border-radius:18px;border:1px solid var(--line)}
.ym-page table{width:100%;border-collapse:collapse;font-size:15.5px;min-width:620px}
.ym-page th,.ym-page td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.ym-page th{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--honey);background:rgba(246,239,228,.04)}
.ym-sky{display:flex;gap:28px;align-items:center;margin-top:40px;padding:24px;border-radius:22px;background:linear-gradient(120deg,#3a1a22,#24141a)}
.ym-sun{flex:0 0 110px;height:110px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffe0a0,#ff9a4a 60%,#b8324a);box-shadow:0 0 50px rgba(255,154,74,.5);transform:translateY(20%);clip-path:inset(0 0 30% 0)}
.ym-skyfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ym-skyfacts b{display:block;color:var(--lamp)}.ym-skyfacts span{font-size:15px}
@media (max-width:800px){.ym-sky{flex-direction:column;align-items:flex-start}.ym-skyfacts{grid-template-columns:1fr 1fr}}

/* чек-лист */
.ym-check{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.ym-check li{display:grid;grid-template-columns:24px 92px 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid rgba(42,26,20,.12)}
.ym-check input{width:22px;height:22px;accent-color:#8f2236;margin:2px 0 0}
.ym-check .when{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#a2471a;padding-top:4px}
.ym-check small{display:block;color:var(--ink2);font-size:14px}
.ym-checkbar{position:relative;height:70px;margin-top:20px}
.ym-checkbar .ym-garland{position:absolute}
.ym-arni-gift{width:clamp(130px,14vw,190px);flex:0 0 auto}
@media (max-width:800px){.ym-check{grid-template-columns:1fr}.ym-check li{grid-template-columns:24px 80px 1fr}}

/* вопросы и финал */
.ym-faq details{border-bottom:1px solid var(--line);padding:16px 0}
.ym-faq summary{cursor:pointer;font:600 clamp(20px,1.8vw,25px)/1.25 'Cormorant Garamond',serif;list-style:none}
.ym-faq summary::-webkit-details-marker{display:none}
.ym-faq summary::before{content:"+";display:inline-block;width:24px;color:var(--lamp)}
.ym-faq details[open] summary::before{content:"−"}
.ym-faq details p{margin:10px 0 0 24px;color:#e6d9c7}
.ym-sources{font-size:14px;color:#cdbca9}
.ym-sources a{color:#e9cfa0}
.ym-end{position:relative;text-align:center;padding:clamp(64px,8vw,110px) 16px;background:radial-gradient(80% 60% at 50% 100%,#5a1626,#1a0f12)}
.ym-end .ym-strip{width:clamp(140px,16vw,210px);margin:0 auto 10px}
.ym-end .ym-lead{margin:0 auto}

/* уже объявлено */
.ym-anns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.ym-ann{position:relative;padding:22px 20px 18px;border-radius:18px;background:rgba(246,239,228,.06);border:1px solid var(--line);border-top:4px solid var(--honey)}
.ym-ann .d{display:block;font:700 26px/1.1 'Cormorant Garamond',serif;color:var(--lamp);margin-bottom:8px}
.ym-ann .where{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#cdbca9;margin:-4px 0 10px}
.ym-ann p{font-size:15px;color:#e6d9c7;margin:0 0 .6em}
.ym-ann a{font-size:14px}
@media (max-width:1000px){.ym-anns{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ym-anns{grid-template-columns:1fr}}
.ym-safety{margin-top:22px;padding:14px 18px;border-left:4px solid var(--frost2);background:rgba(217,235,243,.08);border-radius:0 12px 12px 0;color:#e6d9c7;max-width:none}

