/* Quiet autumn palette from the approved fifth draft: white paper, varied russet ink, no leaves. */
:root{
 --paper:#fff;--paper-2:#f1f1ed;--ink:#302c28;--soft:#625c54;--hair:#dfddd6;--faint:#80766a;
 --blue:#93462f;--brick:#a74619;--orange:#ac4c15;--terracotta:#93462f;--burgundy:#802d3a;--olive:#586143;--ochre:#876216;
 --footer:#302a25;--footer-ink:#f5f0e7;--footer-hover:#f1c783;
}
/* The page canvas stays white, including Safari's top safe area. The footer
   paints its own bottom safe area and overscroll extension. */
html,body{background:#fff}
main{background:var(--paper)}
body::after{content:none}
html.footer-in-view body{background:var(--footer)}
/* The footer and body paint the bottom area directly, without a fixed overlay seam. */
.site-footer{position:relative;isolation:isolate;padding-bottom:calc(56px + env(safe-area-inset-bottom))}

main>.sheet,main.page{background-color:var(--paper);background-image:url('/assets/images/paper-fibres.svg')}
::selection{background:var(--orange);color:var(--paper)}
.hero--light{color:var(--ink)}
.hero--light:not(.hero--empty)::after{background:radial-gradient(ellipse 90% 42% at 50% 50%,rgba(255,255,255,.74),rgba(255,255,255,.28) 60%,transparent 85%)}
.hero--light .hero-text{text-shadow:0 1px 12px rgba(255,255,255,.7)}
.hero--light .hero-text p{text-shadow:0 1px 5px rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.7)}
.hero--light h1 i{color:var(--terracotta)}
.hero--empty.hero--light h1 i{color:var(--terracotta)}
.programme li:nth-child(1) .big{color:var(--orange)}
.programme li:nth-child(2) .big{color:transparent;-webkit-text-stroke:1.4px var(--burgundy)}
.programme li:nth-child(3) .big{color:var(--olive)}
.programme li:nth-child(4) .big{color:var(--terracotta)}
.programme li:nth-child(5) .big{color:transparent;-webkit-text-stroke:1.4px var(--ochre)}
.programme li:nth-child(6) .big{color:var(--olive)}
.programme li:nth-child(7) .big{color:var(--orange)}
.programme li:nth-child(8) .big{color:transparent;-webkit-text-stroke:1.4px var(--burgundy)}
.programme li:nth-child(9) .big{color:var(--ink)}
#zachem h2,#poest h2{background:var(--orange)}
#afisha h2{background:var(--burgundy)}
#doehat h2,#ostanovitsya h2{background:var(--olive)}
#kuda-shodit h2,#karta h2{background:var(--burgundy)}
#shtab h2{background:var(--terracotta)}
.site-footer{background:var(--footer);color:var(--footer-ink);border-top:1px solid var(--footer)}
.site-footer a:hover,.site-footer a:focus-visible{color:var(--footer-hover)}
.site-footer :focus-visible{outline-color:var(--footer-hover)}
.made-by{color:var(--footer-ink);opacity:.8}
.place-ph{cursor:zoom-in}
.place-ph:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.shtab-ph img{aspect-ratio:1;object-fit:cover;object-position:center}
.telegram-card{max-width:680px;margin:36px auto 0;padding:clamp(22px,4vw,32px);border:1px solid var(--hair);border-radius:22px;background:var(--paper);box-shadow:var(--box-depth);text-align:left;overflow:hidden}
.telegram-date{display:block;margin-top:14px;font-size:14px;color:var(--faint)}
.telegram-channel{display:block;width:fit-content;max-width:100%;margin:16px auto 0;padding:13px 24px;border-radius:14px;background:var(--terracotta);color:#fff;text-decoration:none;font:500 17px/1.4 var(--display);transition:background .2s,transform .2s}
.telegram-channel:hover{background:var(--brick);color:#fff;transform:translateY(-1px)}
.telegram-card h3{margin-bottom:10px;color:var(--ink)}
.telegram-card .telegram-copy{white-space:pre-line;color:var(--soft)}
.telegram-card .telegram-image{display:block;width:100%;height:auto;max-height:480px;object-fit:cover;margin:14px 0}
.telegram-card .telegram-link{display:inline-block;margin-top:14px;color:var(--terracotta)}
.photo-strip figure{background:var(--paper-2)}
.leg-panel{overflow:hidden;height:0}
.leg:not([open])>.leg-panel{display:block}
.leg-panel>.times{margin-bottom:14px}
.leg-panel>p{color:var(--soft);margin:0 0 14px;max-width:60ch}
.leg-panel>p.acts{color:inherit;margin-top:-6px}
.bill--single li{text-align:center;align-items:center}
.bill--single .d{font-size:clamp(36px,8vw,72px);white-space:nowrap}
.bill--single .event-book{font:500 19px/1.35 var(--display);max-width:34ch;margin:8px 0 0}
.bill--single .event-time{margin-top:16px;color:var(--ink);white-space:nowrap}
.bill--single .event-note{margin-top:4px}
@media(max-width:899px){#afisha .bill--single{grid-auto-flow:row;grid-auto-columns:minmax(0,1fr);justify-items:center;overflow:visible}#afisha .bill--single li{width:100%;align-items:center;text-align:center}}
@media(min-width:900px){.bill--single{grid-template-columns:minmax(0,560px);justify-content:center}}
@media(prefers-reduced-motion:reduce){.leg-panel{transition:none}}
.guide-intro{padding-top:32px;text-align:center}.guide-copy{max-width:680px;margin:0 auto 28px;color:var(--soft);text-wrap:pretty}

/* Owner-written guide copy uses the same quiet frame as the Telegram widget. */
.guide-intro{padding-top:32px}
.guide-intro>p,.guide-copy{max-width:680px;margin-left:auto;margin-right:auto;padding:clamp(20px,4vw,30px);border:1px solid var(--hair);border-radius:22px;background:var(--paper);box-shadow:var(--box-depth);box-sizing:border-box}

.divider{height:2px;background:linear-gradient(90deg,transparent,#b6aa9b 12%,#b6aa9b 88%,transparent)}

.karta .map-card{box-sizing:border-box;display:flex;flex-direction:column}
.karta .map-card .acts{margin-top:auto;padding-top:14px}

@media(max-width:899px),(pointer:coarse){.bill.bill-motion-ready{opacity:0;transform:translateY(8px);transition:opacity .65s ease,transform .65s ease}.bill.bill-motion-ready.in{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.bill.bill-motion-ready{opacity:1;transform:none;transition:none}.bill .rs{transition:none}}

/* Shared navigation and project page. */
.site-menu{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 28px;padding:18px 20px;background:#fff;border-bottom:1px solid var(--hair);position:relative;z-index:2}
.site-menu a{font:500 18px/1.5 var(--display);color:var(--ink);text-decoration:none;padding:5px 0;text-underline-offset:6px}
.site-menu a[aria-current=page],.site-menu a:hover{text-decoration:underline;text-decoration-color:var(--terracotta);text-decoration-thickness:2px}
.site-menu a:focus-visible,.about-actions a:focus-visible{outline:2px solid var(--terracotta);outline-offset:5px}
.sight-group{margin-top:48px}.sight-group-title{font:500 clamp(25px,4vw,34px)/1.3 var(--display);color:var(--terracotta);margin:0 0 12px;text-align:left}
.about-content{min-height:62vh;padding:64px 20px 90px}.about-content .col{max-width:760px;margin:auto}.about-content h1{margin:0 0 40px}.about-copy{font-size:clamp(20px,3vw,25px);line-height:1.65}.about-copy p+p{margin-top:24px}.about-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.about-actions .telegram-channel{margin:0}
@media(max-width:480px){.site-menu{gap:8px 18px;padding:12px 14px}.site-menu a{font-size:16px}.about-content{padding-top:42px}.about-actions{flex-direction:column;align-items:flex-start}}

.bar{background:#fff;color:var(--ink)}


/* Full-screen navigation above the hero and page headers. */
.menu-bar{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:30}
.menu-open,.menu-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--hair);border-radius:8px;color:var(--ink);background:#fff;cursor:pointer}
.menu-open:hover,.menu-close:hover{background:var(--paper-2)}.menu-open:focus-visible,.menu-close:focus-visible{outline:2px solid var(--terracotta);outline-offset:4px}
.bar{min-height:76px;box-sizing:border-box;padding-right:84px}
.menu-overlay{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:80px 24px;border:0;box-sizing:border-box;background:#fff;color:var(--ink);overflow:auto}
.menu-overlay::backdrop{background:#fff}.menu-overlay[open]{display:flex;align-items:center;justify-content:center}
.menu-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right))}
.menu-overlay .site-menu{display:flex;flex-direction:column;align-items:center;gap:24px;padding:0;border:0;background:transparent;text-align:center}
.menu-overlay .site-menu a{font:400 clamp(26px,5vw,52px)/1.4 'Dela Gothic One',sans-serif;white-space:normal}
html.menu-is-open,html.menu-is-open body{overflow:hidden}
.sight-group-title{text-align:center}.about-actions{justify-content:center;align-items:center}
@media(max-width:480px){.about-actions{align-items:center}}

.about-actions .social-vk{background:#456b82}.about-actions .social-vk:hover{background:#34556a}
.menu-overlay::backdrop{background:transparent}
.menu-overlay[open]{animation:menu-open-surface .32s ease-out both}
.menu-overlay[open] .site-menu{animation:menu-open-links .48s cubic-bezier(.22,1,.36,1) both}
@keyframes menu-open-surface{from{opacity:0}to{opacity:1}}
@keyframes menu-open-links{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.menu-overlay[open],.menu-overlay[open] .site-menu{animation:none}}

/* Persistent white header; its slot places the homepage hero below it. */
.header-slot{height:calc(76px + env(safe-area-inset-top));position:relative;z-index:40}
.site-header{position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;height:calc(76px + env(safe-area-inset-top));padding:calc(16px + env(safe-area-inset-top)) 20px 16px;background:#fff;border-bottom:1px solid var(--hair)}
.site-header .bar-name{min-width:0}.site-header .menu-open{flex:none}
html.pointer-input :focus{outline:none!important}
@media(max-width:480px){.site-header .bar-name{font-size:13px;letter-spacing:.12em}}

.about-photo{margin:0 0 36px}.about-photo img{display:block;width:100%;height:auto;border-radius:4px}

/* Preserve native pull-down bounce for the whole page. */
html,body{overscroll-behavior-y:auto}
.header-slot{position:sticky;top:0}
.site-header{position:relative}
.sight-group-title{display:table;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 auto 32px;padding:8px 18px;border:1px solid var(--hair);border-radius:10px;background:#fff;font-size:clamp(20px,3vw,26px)}
.rnv-pin svg{width:19px;height:19px;display:block}

.sight-group{padding:0;scroll-margin-top:calc(100px + env(safe-area-inset-top))}

/* Broad, low-opacity depth shared by the framed content. */
:root{--box-depth:0 6px 26px rgba(48,42,37,.045),0 1px 4px rgba(48,42,37,.018)}
.sight-group-title{box-shadow:var(--box-depth)}

/* One shared icon for each map-filter category, at every zoom level. */
.rnv-pin{width:32px;height:32px;box-shadow:0 2px 5px rgba(48,42,37,.16)}
.rnv-pin.is-on{transform:scale(1.15)}
[data-mapfilter]:not([data-mapfilter=all])::before{content:none}
.map-key-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;margin-right:7px;border:1.5px solid #fff;border-radius:50%;background:var(--ink);color:#fff;flex:none}
.map-key-icon svg{width:17px;height:17px}.map-key-icon--stay{background:#fff;color:var(--ink);border-color:var(--ink)}.map-key-icon--eat{background:var(--brick)}
#karta .textnav{row-gap:8px}
@media(max-width:400px){#karta .textnav{column-gap:10px}.map-key-icon{width:22px;height:22px;margin-right:4px}.map-key-icon svg{width:15px;height:15px}}

/* Small ribbon labels echo the main titles without competing with them. */
.sight-group-title.tape{display:table;width:fit-content;max-width:100%;margin:0 auto 36px;padding:.25em .55em .18em;border:0;border-radius:0;background:var(--terracotta);color:#fff;font:400 clamp(19px,3vw,27px)/1.2 var(--poster);letter-spacing:.01em;box-shadow:none;transform:rotate(-1deg)}
.sight-group:nth-of-type(even) .sight-group-title.tape{transform:rotate(.8deg)}
/* Paper, border and text lean together at a restrained angle. */
.guide-intro>p,.guide-copy,.telegram-card{position:relative;isolation:isolate;background:transparent;border-color:transparent;box-shadow:none;transform:rotate(-.7deg)}
#doehat .guide-copy,#ostanovitsya .guide-copy,.telegram-card{transform:rotate(.7deg)}
.telegram-card{overflow:visible}
.guide-intro>p::before,.guide-copy::before,.telegram-card::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--paper);border:1px solid var(--hair);border-radius:8px 15px 9px 13px;box-shadow:var(--box-depth)}
