:root { color-scheme:dark; --bg:#0d0e12; --surface:#17191f; --line:#30333d; --text:#f8f9ff; --muted:#9b9fad; --blue:#2846cf; --blue-bright:#3d5aff; }
* { box-sizing:border-box; } body { margin:0; color:var(--text); background:radial-gradient(60rem 38rem at 88% -12%,rgba(42,70,207,.24),transparent 55%),var(--bg); font-family:Manrope,Arial,sans-serif; } .seo-page { width:min(100%, 82rem); margin:auto; padding:0 1rem 4rem; }
.seo-site-header { position:sticky; z-index:10; top:0; display:flex; align-items:center; gap:.75rem; min-height:4.3rem; margin:0 -1rem; padding:0 1rem; border-bottom:1px solid rgba(255,255,255,.08); background:rgba(16,16,16,.88); backdrop-filter:blur(16px); }.seo-brand { display:inline-flex; flex:none; align-items:center; gap:.32rem; color:#fff; font-size:.76rem; font-weight:800; letter-spacing:.02em; text-decoration:none; } .seo-brand span { color:#9eb0ff; }.seo-brand__mark { display:grid; width:1.55rem; height:1.55rem; place-items:center; border-radius:.48rem; color:#fff!important; background:var(--blue); font-size:.78rem; }.seo-site-nav { display:flex; gap:.25rem; overflow-x:auto; scrollbar-width:none; }.seo-site-nav a { flex:none; padding:.48rem .58rem; border-radius:.5rem; color:#bdbdbd; font-size:.64rem; font-weight:800; text-decoration:none; white-space:nowrap; }.seo-site-nav a:hover,.seo-site-nav__telegram { color:#fff!important; background:rgba(49,88,255,.2); }.seo-site-nav__telegram { border:1px solid rgba(100,128,255,.55); }
.seo-hero { position:relative; overflow:hidden; margin:1.15rem 0 0; padding:2.15rem 1.15rem 2rem; border:1px solid rgba(94,119,255,.42); border-radius:1.35rem; background:linear-gradient(135deg,rgba(47,75,223,.46),rgba(22,24,34,.96) 54%,rgba(16,17,23,.96)); }.seo-hero::after { position:absolute; right:-4rem; bottom:-7rem; width:17rem; height:17rem; border:1px solid rgba(183,196,255,.25); border-radius:50%; box-shadow:0 0 0 2rem rgba(86,111,237,.07),0 0 0 4rem rgba(86,111,237,.04); content:""; }.seo-hero p { position:relative; z-index:1; margin:0 0 .7rem; color:#b8c4ff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; } .seo-hero h1 { position:relative; z-index:1; max-width:40rem; margin:0; font-size:clamp(2rem,7vw,3.65rem); line-height:1.04; letter-spacing:-.07em; } .seo-hero div { position:relative; z-index:1; max-width:34rem; margin-top:1rem; color:#d3d7e8; font-size:.86rem; line-height:1.62; }
.seo-nav { display:flex; gap:.5rem; overflow:auto; padding:1rem 0 1.8rem; scrollbar-width:none; } .seo-nav a { flex:0 0 auto; padding:.62rem .8rem; border:1px solid var(--line); border-radius:999px; color:#d9d9d9; font-size:.72rem; font-weight:700; text-decoration:none; } .seo-nav a:hover { border-color:#6178ea; color:#fff; }
.seo-section-title { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1rem; } .seo-section-title h2 { margin:0; font-size:1.15rem; letter-spacing:-.04em; } .seo-section-title a { color:#9eb0ff; font-size:.72rem; font-weight:800; text-decoration:none; }
.seo-grid { display:grid; gap:.8rem; } .seo-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:1.15rem; background:var(--surface); transition:transform .2s ease,border-color .2s ease; } .seo-card:hover { transform:translateY(-2px); border-color:#566fe8; } .seo-card__link { display:grid; grid-template-columns:7.8rem minmax(0,1fr); min-height:10.7rem; color:inherit; text-decoration:none; } .seo-card img,.seo-card__image { display:block; width:100%; height:100%; min-height:10.7rem; object-fit:cover; background:#202020; } .seo-card__image--empty { display:grid; place-items:center; color:#8094fa; font-size:.8rem; font-weight:800; letter-spacing:.12em; background:radial-gradient(circle at 30% 20%,#2642ba,transparent 52%),#1b1b1b; }.seo-card__date { position:absolute; z-index:1; top:.55rem; left:.55rem; display:flex; width:2.6rem; height:2.6rem; flex-direction:column; align-items:center; justify-content:center; border-radius:.6rem; color:#161616; background:rgba(255,255,255,.96); font-size:.5rem; font-weight:800; letter-spacing:.06em; }.seo-card__date b { font-size:.9rem; line-height:1; }.seo-card__body { display:flex; min-width:0; flex-direction:column; padding:.82rem .85rem; }.seo-card__eyebrow { display:flex; align-items:center; justify-content:space-between; gap:.35rem; color:#9eb0ff; font-size:.61rem; font-weight:800; }.seo-card__eyebrow span,.seo-card__venue,.seo-card__bottom span { display:inline-flex; min-width:0; align-items:center; gap:.28rem; }.seo-card__eyebrow svg,.seo-card__venue svg,.seo-card__bottom svg { width:.76rem; height:.76rem; flex:none; }.seo-card__body h2 { display:-webkit-box; overflow:hidden; margin:.45rem 0 .42rem; font-size:.95rem; line-height:1.23; letter-spacing:-.04em; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.seo-card__venue { overflow:hidden; color:var(--muted); font-size:.66rem; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }.seo-card__body p { display:-webkit-box; overflow:hidden; margin:.48rem 0 0; color:#bcbcbc; font-size:.65rem; line-height:1.42; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.seo-card__bottom { display:flex; align-items:center; justify-content:space-between; gap:.4rem; margin-top:auto; padding-top:.65rem; }.seo-card__bottom strong { color:#fff; font-size:.76rem; }.seo-card__bottom span { color:#9eb0ff; font-size:.61rem; font-weight:800; }.seo-empty { color:var(--muted); }.seo-note { display:grid; gap:.45rem; margin-top:2.5rem; padding:1.15rem; border:1px solid rgba(80,108,239,.75); border-radius:1.1rem; background:linear-gradient(135deg,rgba(40,70,207,.35),rgba(25,25,25,.7)); }.seo-note strong { font-size:.9rem; }.seo-note p { margin:0; color:#d5d5d5; font-size:.74rem; line-height:1.5; }.seo-note a { margin-top:.2rem; color:#fff; font-size:.73rem; font-weight:800; text-decoration:none; }
.seo-about,.seo-faq { margin-top:2.8rem; padding-top:1.35rem; border-top:1px solid var(--line); }.seo-about h2,.seo-faq h2 { margin:0 0 .8rem; font-size:1.18rem; letter-spacing:-.045em; }.seo-about p { max-width:42rem; margin:.55rem 0; color:#c7c7c7; font-size:.82rem; line-height:1.65; }.seo-faq details { border-bottom:1px solid var(--line); }.seo-faq summary { cursor:pointer; padding:1rem 0; color:#f0f0f0; font-size:.82rem; font-weight:800; list-style:none; }.seo-faq summary::after { float:right; color:#9eb0ff; content:"+"; }.seo-faq details[open] summary::after { content:"–"; }.seo-faq p { max-width:42rem; margin:0 0 1rem; color:var(--muted); font-size:.78rem; line-height:1.55; }
.seo-breadcrumb { display:flex; gap:.45rem; margin:1.6rem 0 1.15rem; color:var(--muted); font-size:.7rem; font-weight:700; }.seo-breadcrumb a { color:#9eb0ff; text-decoration:none; }.seo-event { overflow:hidden; border:1px solid var(--line); border-radius:1.4rem; background:var(--surface); }.seo-event-cover { min-height:13rem; background:#191919; }.seo-event-cover img,.seo-event-cover--empty { display:block; width:100%; min-height:13rem; max-height:28rem; object-fit:cover; }.seo-event-cover--empty { display:grid; place-items:center; color:#8da1ff; font-size:1rem; font-weight:800; letter-spacing:.16em; background:radial-gradient(circle at 30% 20%,#2642ba,transparent 55%),#1b1b1b; }.seo-event-content { padding:1.15rem; }.seo-kicker { margin:0 0 .55rem; color:#9eb0ff; font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.seo-event h1 { margin:0; font-size:clamp(1.65rem,7vw,2.8rem); line-height:1.07; letter-spacing:-.065em; }.seo-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:1.35rem 0; overflow:hidden; border:1px solid var(--line); border-radius:.9rem; background:var(--line); }.seo-facts div { min-height:4.8rem; padding:.72rem; background:#181818; }.seo-facts dt { margin-bottom:.32rem; color:var(--muted); font-size:.62rem; font-weight:700; }.seo-facts dd { margin:0; color:#f5f5f5; font-size:.72rem; font-weight:800; line-height:1.35; }.seo-button { display:flex; min-height:3rem; align-items:center; justify-content:center; border-radius:.85rem; background:var(--blue); color:white; font-size:.82rem; font-weight:800; text-decoration:none; }.seo-description { margin-top:1.75rem; }.seo-description h2 { margin:0 0 .65rem; font-size:1.05rem; letter-spacing:-.04em; }.seo-description p { margin:0; color:#c7c7c7; font-size:.8rem; line-height:1.62; white-space:pre-line; }.seo-text-link { display:inline-block; margin-top:.8rem; color:#9eb0ff; font-size:.72rem; font-weight:800; text-decoration:none; }.seo-related { margin-top:2.5rem; }.seo-related-rail { display:flex!important; gap:.65rem!important; overflow-x:auto; margin-right:-1rem; padding:0 1rem .4rem 0; scroll-snap-type:x mandatory; scrollbar-width:none; }.seo-related-card { display:grid!important; width:9.4rem; min-width:9.4rem; min-height:13rem; padding:0!important; overflow:hidden; scroll-snap-align:start; background:#191919; }.seo-related-card img,.seo-related-card i { width:100%; height:7rem; object-fit:cover; }.seo-related-card i { display:grid; place-items:center; color:#9eb0ff; background:linear-gradient(145deg,#293fb8,#161820); font-size:.75rem; font-style:normal; font-weight:800; }.seo-related-card span { display:grid; align-content:start; gap:.3rem; padding:.62rem; }.seo-related-card small { color:#9eb0ff; font-size:.57rem; font-weight:800; }.seo-related-card strong { display:-webkit-box; overflow:hidden; font-size:.73rem!important; line-height:1.28; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.seo-related-card em { color:#fff; font-size:.64rem; font-style:normal; font-weight:800; }
.seo-guide { max-width:44rem; }.seo-guide h1 { max-width:38rem; margin:0; font-size:clamp(2rem,8vw,3.6rem); line-height:1.04; letter-spacing:-.07em; }.seo-guide__lead { max-width:36rem; margin:1.1rem 0 2.2rem; color:#c9c9c9; font-size:.96rem; line-height:1.65; }.seo-guide section { padding:1.2rem 0; border-top:1px solid var(--line); }.seo-guide h2 { margin:0 0 .5rem; font-size:1rem; letter-spacing:-.035em; }.seo-guide p { margin:0; color:#c3c3c3; font-size:.82rem; line-height:1.67; }.seo-guide a { color:#9eb0ff; font-weight:800; text-decoration:none; }
.seo-venue { overflow:hidden; border:1px solid var(--line); border-radius:1.35rem; background:var(--surface); }.seo-venue>img { display:block; width:100%; min-height:13rem; max-height:20rem; object-fit:cover; }.seo-venue>div { padding:1.15rem; }.seo-venue h1 { margin:0; font-size:clamp(1.8rem,8vw,3rem); line-height:1.05; letter-spacing:-.065em; }.seo-venue>div>p:not(.seo-kicker) { margin:1rem 0 0; color:#c7c7c7; font-size:.82rem; line-height:1.62; }.seo-venue .seo-facts { margin-bottom:0; }.seo-venue .seo-facts a { color:#9eb0ff; text-decoration:none; }.seo-venue-list { display:grid; gap:.8rem; margin-top:2rem; }.seo-venue-card { position:relative; display:block; overflow:hidden; min-height:13rem; border:1px solid var(--line); border-radius:1.1rem; color:#fff; text-decoration:none; background:#191919; }.seo-venue-card img { width:100%; height:100%; min-height:13rem; object-fit:cover; transition:transform .25s ease; }.seo-venue-card::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.88)); }.seo-venue-card span { position:absolute; z-index:1; right:1rem; bottom:1rem; left:1rem; display:grid; gap:.25rem; }.seo-venue-card b { font-size:1.12rem; letter-spacing:-.04em; }.seo-venue-card small { color:#dedede; font-size:.68rem; font-weight:700; }.seo-related em { color:#9eb0ff; font-size:.68rem; font-style:normal; font-weight:800; }
.seo-gallery { margin-top:2.4rem; }.seo-gallery h2 { margin:0 0 .8rem; font-size:1.15rem; letter-spacing:-.04em; }.seo-gallery>div { display:grid; grid-template-columns:1.45fr 1fr; grid-auto-rows:7.6rem; gap:.45rem; overflow:hidden; border-radius:1.1rem; }.seo-gallery img { width:100%; height:100%; object-fit:cover; }.seo-gallery img:first-child { grid-row:span 2; }.seo-gallery img:nth-child(n+4) { display:none; }.seo-venue-events { display:grid; gap:.65rem; }.seo-venue-event { display:grid; grid-template-columns:5.8rem minmax(0,1fr); min-height:6.3rem; overflow:hidden; border:1px solid var(--line); border-radius:.95rem; color:#fff; text-decoration:none; background:var(--surface); }.seo-venue-event img,.seo-venue-event i { width:100%; height:100%; min-height:6.3rem; object-fit:cover; }.seo-venue-event i { display:grid; place-items:center; color:#9eb0ff; background:linear-gradient(145deg,#253cb2,#15171d); font-size:.7rem; font-style:normal; font-weight:800; letter-spacing:.1em; }.seo-venue-event span { display:grid; align-content:center; gap:.22rem; padding:.65rem .75rem; }.seo-venue-event small { color:#9eb0ff; font-size:.6rem; font-weight:800; }.seo-venue-event b { overflow:hidden; font-size:.77rem; line-height:1.3; letter-spacing:-.025em; }.seo-venue-event em { color:#fff; font-size:.67rem; font-style:normal; font-weight:800; }
@media (min-width:42rem) { .seo-page { padding:2rem 1.5rem 5rem; }.seo-grid,.seo-venue-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.seo-card__body { padding:.95rem; }.seo-event,.seo-venue { display:grid; grid-template-columns:minmax(18rem,.9fr) 1.1fr; }.seo-event-cover,.seo-venue>img { height:100%; }.seo-event-cover img,.seo-event-cover--empty,.seo-venue>img { height:100%; max-height:none; }.seo-event-content,.seo-venue>div { padding:1.7rem; } } @media (prefers-reduced-motion:reduce) { .seo-card,.seo-venue-card img { transition:none; } }

/* Public catalogue follows the Mini App's blue stage-light visual language. */
.seo-card { background:linear-gradient(100deg,rgba(34,48,115,.22),var(--surface) 42%); box-shadow:inset 3px 0 0 rgba(58,87,255,.9); }
.seo-card__image::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,rgba(12,14,21,.08),transparent); }
.seo-section-title { position:relative; padding-left:.78rem; }.seo-section-title::before { position:absolute; left:0; top:.17rem; bottom:.17rem; width:3px; border-radius:9px; background:var(--blue-bright); content:""; }
.seo-nav { padding:1.05rem 0 1.55rem; }.seo-nav a { border-color:rgba(86,111,232,.45); background:rgba(43,61,140,.12); }.seo-nav a:first-child { color:#fff; border-color:var(--blue); background:var(--blue); }
@media (min-width:42rem) { .seo-site-header { margin:0 -1.5rem; padding:0 1.5rem; }.seo-hero { padding:2.85rem 2.3rem 2.55rem; }.seo-hero div { font-size:.94rem; } }
.seo-jump { display:flex; gap:.55rem; overflow:auto; padding:1.05rem 0 1.7rem; scrollbar-width:none; }.seo-jump a { flex:none; padding:.68rem .82rem; border:1px solid rgba(94,119,255,.5); border-radius:.72rem; color:#dfe4ff; background:linear-gradient(135deg,rgba(53,80,210,.32),rgba(25,27,36,.8)); font-size:.7rem; font-weight:800; text-decoration:none; }.seo-guide--feature { max-width:none; }.seo-guide--feature section { padding:1.45rem 0; }.seo-spotlight { display:flex; gap:.7rem; overflow:auto; margin-top:1rem; padding-bottom:.35rem; scrollbar-width:none; }.seo-spotlight>a { display:grid; min-width:10.2rem; width:10.2rem; overflow:hidden; border:1px solid var(--line); border-radius:1rem; color:#fff; text-decoration:none; background:var(--surface); }.seo-spotlight img,.seo-spotlight i { width:100%; height:7rem; object-fit:cover; }.seo-spotlight i { display:grid; place-items:center; color:#9eb0ff; background:linear-gradient(145deg,#2a45c6,#141620); font-style:normal; font-weight:800; }.seo-spotlight span { display:grid; gap:.28rem; padding:.72rem; }.seo-spotlight small { color:#aebeff; font-size:.58rem; font-weight:800; }.seo-spotlight b { display:-webkit-box; overflow:hidden; font-size:.76rem; line-height:1.3; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.seo-spotlight em { color:#fff; font-size:.66rem; font-style:normal; font-weight:800; }

/* Public desktop: use the Mini App's visual weight without shrinking the catalogue. */
.seo-site-header { min-height:5.2rem; gap:1.15rem; }
.seo-brand { gap:.48rem; font-size:.95rem; }
.seo-brand__mark { width:2.15rem; height:2.15rem; border-radius:.68rem; font-size:.98rem; box-shadow:0 8px 22px rgba(44,70,207,.36); }
.seo-site-nav { gap:.4rem; }
.seo-site-nav a { padding:.68rem .88rem; border-radius:.76rem; font-size:.76rem; }
.seo-hero { min-height:19rem; padding:3rem 2.35rem 2.2rem; border-radius:1.65rem; background:linear-gradient(123deg,rgba(49,79,228,.73),rgba(28,35,75,.92) 46%,rgba(16,17,23,.98) 79%); box-shadow:0 22px 55px rgba(0,0,0,.25); }
.seo-hero::before { position:absolute; top:-9rem; right:12%; width:24rem; height:24rem; border-radius:50%; background:radial-gradient(circle,rgba(167,187,255,.38),rgba(61,90,255,.09) 42%,transparent 68%); content:""; }
.seo-hero h1 { max-width:50rem; font-size:clamp(2.45rem,5.1vw,4.65rem); }
.seo-hero > div:not(.seo-hero__stats) { max-width:43rem; font-size:1rem; }
.seo-hero__stats { position:relative; z-index:1; display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-top:1.45rem!important; }
.seo-hero__stats span,.seo-hero__stats a { display:inline-flex; align-items:center; min-height:2.4rem; padding:0 .82rem; border:1px solid rgba(211,220,255,.26); border-radius:.75rem; color:#edf0ff; background:rgba(5,8,28,.23); font-size:.74rem; font-weight:800; text-decoration:none; backdrop-filter:blur(8px); }
.seo-hero__stats b { margin-right:.28rem; color:#fff; font-size:.92rem; }
.seo-hero__stats a { border-color:#8da2ff; background:rgba(19,40,157,.58); }
.seo-nav { gap:.7rem; padding:1.35rem 0 2.1rem; }
.seo-nav a { padding:.78rem 1rem; border-radius:.82rem; font-size:.8rem; }
.seo-grid { gap:1.1rem; }
.seo-card { border-radius:1.35rem; box-shadow:inset 4px 0 0 rgba(58,87,255,.9),0 12px 32px rgba(0,0,0,.14); }
.seo-card__link { grid-template-columns:10.4rem minmax(0,1fr); min-height:13.2rem; }
.seo-card img,.seo-card__image { min-height:13.2rem; }
.seo-card__date { top:.75rem; left:.75rem; width:3rem; height:3rem; border-radius:.72rem; font-size:.56rem; }
.seo-card__date b { font-size:1.05rem; }
.seo-card__body { padding:1.05rem 1.1rem; }
.seo-card__eyebrow { font-size:.7rem; }
.seo-card__body h2 { margin:.58rem 0 .5rem; font-size:1.15rem; line-height:1.18; }
.seo-card__venue { font-size:.72rem; }
.seo-card__body p { margin-top:.62rem; font-size:.72rem; line-height:1.48; }
.seo-card__bottom { padding-top:.8rem; }
.seo-card__prices { display:grid; gap:.13rem; }
.seo-card__bottom strong { font-size:.9rem; }
.seo-card__prices small { color:#aebeff; font-size:.71rem; font-weight:800; }
.seo-card__bottom span { font-size:.69rem; }
.seo-about { max-width:63rem; margin-top:3.5rem; }
.seo-about p { max-width:57rem; font-size:.78rem; }
.seo-faq { max-width:63rem; margin-top:2.2rem; }
.seo-faq h2 { font-size:1.45rem; }
.seo-faq summary { font-size:.9rem; }
@media (min-width:42rem) { .seo-page { padding:0 2rem 6rem; }.seo-site-header { margin:0 -2rem; padding:0 2rem; }.seo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.35rem; }.seo-card__link { grid-template-columns:11.5rem minmax(0,1fr); min-height:14.2rem; }.seo-card img,.seo-card__image { min-height:14.2rem; }.seo-card__body { padding:1.18rem 1.22rem; }.seo-card__body h2 { font-size:1.28rem; }.seo-hero { margin-top:1.75rem; padding:3.5rem 3.1rem 2.8rem; } }
@media (max-width:41.99rem) { .seo-site-header { min-height:4.55rem; gap:.7rem; }.seo-brand { font-size:.78rem; }.seo-brand__mark { width:1.75rem; height:1.75rem; font-size:.8rem; }.seo-site-nav a { padding:.55rem .65rem; font-size:.66rem; }.seo-hero { min-height:0; padding:2.25rem 1.15rem 1.35rem; }.seo-hero h1 { font-size:2.25rem; }.seo-hero__stats { margin-top:1.1rem!important; }.seo-card__link { grid-template-columns:8.8rem minmax(0,1fr); min-height:11.7rem; }.seo-card img,.seo-card__image { min-height:11.7rem; }.seo-card__body h2 { font-size:1.03rem; } }

/* Editorial guide and venue directory: photo-led blocks, one blue accent system. */
.seo-site-header { justify-content:flex-start; }
.seo-site-nav { min-width:0; }
.seo-site-nav__telegram { display:inline-flex; flex:none; min-height:2.65rem; align-items:center; justify-content:center; margin-left:auto; padding:0 .95rem; border-radius:.76rem; color:#fff; background:linear-gradient(135deg,#3152df,#243da8); box-shadow:0 .55rem 1.35rem rgba(38,65,196,.23); font-size:.72rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.seo-nav a { display:inline-flex; align-items:center; gap:.42rem; }
.seo-nav a svg { width:.92rem; height:.92rem; }
.seo-nav a.is-active { color:#fff; border-color:var(--blue); background:var(--blue); }
.seo-nav a:first-child:not(.is-active) { color:#d9d9d9; border-color:rgba(86,111,232,.45); background:rgba(43,61,140,.12); }
.seo-guide-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.16fr) minmax(18rem,.84fr); gap:2.25rem; min-height:31rem; margin-top:1.75rem; padding:3.45rem; overflow:hidden; border:1px solid rgba(93,119,255,.5); border-radius:1.7rem; background:linear-gradient(127deg,#2445c8 0%,#1c285f 44%,#101117 78%); box-shadow:0 24px 56px rgba(0,0,0,.27); }
.seo-guide-hero::before { position:absolute; top:-14rem; left:24%; width:39rem; height:39rem; border:1px solid rgba(196,208,255,.24); border-radius:50%; box-shadow:0 0 0 2.7rem rgba(133,154,255,.07),0 0 0 5.3rem rgba(133,154,255,.04); content:""; }
.seo-guide-hero>div,.seo-guide-hero figure { position:relative; z-index:1; }
.seo-guide-hero h1 { max-width:43rem; margin:0; font-size:clamp(2.7rem,5.1vw,5rem); line-height:1; letter-spacing:-.075em; }
.seo-guide-hero h1 em { color:#b8c7ff; font-style:normal; }
.seo-guide-hero>div>p:not(.seo-kicker) { max-width:34rem; margin:1.2rem 0 0; color:#e2e7ff; font-size:1rem; line-height:1.65; }
.seo-guide-hero figure { display:grid; align-self:end; height:22rem; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:1.2rem; background:#10121a; transform:rotate(2.5deg); box-shadow:0 20px 40px rgba(2,4,19,.3); }
.seo-guide-hero figure img { width:100%; height:100%; object-fit:cover; }
.seo-guide-hero figure::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 32%,rgba(8,10,21,.8)); content:""; }
.seo-guide-hero figcaption { position:absolute; z-index:1; right:1rem; bottom:1rem; left:1rem; color:#fff; font-size:.72rem; font-weight:800; }
.seo-guide-hero__art { display:grid; place-items:center; color:#a9b9ff; background:radial-gradient(circle at 40% 25%,#5977fa,transparent 28%),linear-gradient(135deg,#202d78,#101117); font-size:1.4rem; font-weight:800; letter-spacing:.2em; }
.seo-guide-hero__actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.75rem; }
.seo-guide-hero__actions a { display:inline-flex; min-height:3rem; align-items:center; gap:.5rem; padding:0 1rem; border:1px solid rgba(255,255,255,.25); border-radius:.85rem; color:#fff; background:rgba(12,19,67,.36); font-size:.79rem; font-weight:800; text-decoration:none; }
.seo-guide-hero__actions a:first-child { border-color:#fff; color:#1a2a8b; background:#fff; }
.seo-guide-hero__actions svg,.seo-route b svg,.seo-guide-intro a svg,.seo-guide-venues a svg,.seo-venue-card strong svg { width:1rem; height:1rem; }
.seo-guide-intro { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin:1rem 0 4rem; padding:1.25rem 1.4rem; border:1px solid var(--line); border-radius:1rem; background:linear-gradient(100deg,rgba(46,68,176,.24),rgba(21,23,30,.75)); }
.seo-guide-intro>div { display:flex; align-items:center; gap:.8rem; max-width:47rem; }
.seo-guide-intro>div>span { display:grid; flex:none; width:2.55rem; height:2.55rem; place-items:center; border-radius:.75rem; color:#b7c5ff; background:rgba(47,74,205,.43); }
.seo-guide-intro svg { width:1.2rem; height:1.2rem; }
.seo-guide-intro p { margin:0; color:#d7d9e4; font-size:.82rem; line-height:1.55; }
.seo-guide-intro>a,.seo-guide-venues a { display:inline-flex; flex:none; align-items:center; gap:.48rem; color:#aebeff; font-size:.74rem; font-weight:800; text-decoration:none; }
.seo-guide-routes,.seo-guide-steps,.seo-guide-events,.seo-guide-venues { margin-top:4rem; }
.seo-section-title>span { color:var(--muted); font-size:.7rem; font-weight:700; }
.seo-route-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.9rem; }
.seo-route { position:relative; display:flex; min-height:17.5rem; flex-direction:column; padding:1.2rem; overflow:hidden; border:1px solid var(--line); border-radius:1.25rem; color:#fff; text-decoration:none; background:#181a21; transition:transform .2s ease,border-color .2s ease; }
.seo-route:hover { transform:translateY(-3px); border-color:#7289ff; }
.seo-route::after { position:absolute; right:-4.5rem; bottom:-5rem; width:13rem; height:13rem; border-radius:50%; content:""; }
.seo-route>span { position:relative; z-index:1; display:grid; width:2.75rem; height:2.75rem; place-items:center; border-radius:.82rem; color:#dce3ff; background:rgba(255,255,255,.13); }
.seo-route>span svg { width:1.3rem; height:1.3rem; }
.seo-route small,.seo-route h3,.seo-route p,.seo-route b { position:relative; z-index:1; }
.seo-route small { margin-top:1.7rem; color:#cdd6ff; font-size:.62rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.seo-route h3 { margin:.42rem 0 0; font-size:1.18rem; line-height:1.08; letter-spacing:-.05em; }
.seo-route p { margin:.62rem 0 0; color:#d8dbe8; font-size:.72rem; line-height:1.55; }
.seo-route b { display:flex; align-items:center; gap:.38rem; margin-top:auto; color:#fff; font-size:.7rem; }
.seo-route--comedy { background:linear-gradient(135deg,#25398e,#161820 72%); }.seo-route--comedy::after { background:rgba(96,126,255,.32); }
.seo-route--music { background:linear-gradient(135deg,#3d246d,#161820 72%); }.seo-route--music::after { background:rgba(174,85,255,.25); }
.seo-route--city { background:linear-gradient(135deg,#18455c,#161820 72%); }.seo-route--city::after { background:rgba(57,194,196,.25); }
.seo-route--screen { background:linear-gradient(135deg,#59401b,#161820 72%); }.seo-route--screen::after { background:rgba(239,172,67,.22); }
.seo-guide-steps { display:grid; grid-template-columns:minmax(13rem,.65fr) 1.35fr; gap:2rem; padding:2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.seo-guide-steps .seo-section-title { margin:0; }.seo-guide-steps ol { display:grid; gap:1.1rem; margin:0; padding:0; list-style:none; }
.seo-guide-steps li { display:grid; grid-template-columns:3rem minmax(0,1fr); gap:.85rem; }.seo-guide-steps li>span { display:grid; width:2.5rem; height:2.5rem; place-items:center; border-radius:.7rem; color:#b7c5ff; background:#202b65; font-size:.68rem; font-weight:800; }.seo-guide-steps h3 { margin:.05rem 0 .25rem; font-size:.94rem; letter-spacing:-.03em; }.seo-guide-steps p { margin:0; color:#babdcb; font-size:.76rem; line-height:1.52; }
.seo-guide-events .seo-spotlight { gap:.95rem; margin-top:0; }.seo-spotlight>a { min-width:12rem; width:12rem; border-radius:1.1rem; }.seo-spotlight img,.seo-spotlight i { height:8.2rem; }.seo-spotlight span { padding:.82rem; }.seo-spotlight b { font-size:.82rem; }.seo-spotlight em { font-size:.72rem; }
.seo-guide-venues { display:grid; grid-template-columns:minmax(0,1fr) minmax(20rem,.9fr); gap:2rem; padding:2.2rem; overflow:hidden; border:1px solid rgba(89,112,235,.46); border-radius:1.35rem; background:linear-gradient(110deg,rgba(42,63,170,.42),rgba(22,23,30,.94)); }.seo-guide-venues h2 { max-width:28rem; margin:.25rem 0 .75rem; font-size:clamp(1.55rem,3vw,2.35rem); line-height:1.07; letter-spacing:-.06em; }.seo-guide-venues p:not(.seo-kicker) { max-width:36rem; margin:0 0 1rem; color:#d2d5e2; font-size:.8rem; line-height:1.62; }.seo-guide-venues__marks { display:grid; grid-template-columns:repeat(2,1fr); gap:.65rem; align-content:center; transform:rotate(-2deg); }.seo-guide-venues__marks span { display:grid; min-height:5.5rem; place-items:center; border:1px solid rgba(192,204,255,.22); border-radius:1rem; color:#eef1ff; background:rgba(8,12,38,.35); font-size:.8rem; font-weight:800; line-height:1.05; text-align:center; }
.seo-venues-hero { display:flex; align-items:end; justify-content:space-between; gap:2rem; min-height:17rem; margin-top:1.75rem; padding:2.8rem 3rem; overflow:hidden; border:1px solid rgba(89,112,235,.46); border-radius:1.55rem; background:radial-gradient(circle at 90% 10%,rgba(106,134,255,.36),transparent 25%),linear-gradient(125deg,#1f328f,#14151c 66%); }.seo-venues-hero h1 { max-width:46rem; margin:.3rem 0 .75rem; font-size:clamp(2.25rem,4.8vw,4.3rem); line-height:1.01; letter-spacing:-.075em; }.seo-venues-hero p:not(.seo-kicker) { max-width:42rem; margin:0; color:#d5d8e5; font-size:.9rem; line-height:1.62; }.seo-venues-hero>span { display:inline-flex; align-items:center; gap:.5rem; min-height:2.8rem; padding:0 .9rem; border:1px solid rgba(205,215,255,.26); border-radius:.86rem; color:#e7ebff; background:rgba(8,11,41,.32); font-size:.74rem; font-weight:800; }.seo-venues-hero>span svg { width:1rem; height:1rem; }
.seo-venue-list { margin-top:1.5rem; }.seo-venue-card { min-height:21rem; border-radius:1.35rem; }.seo-venue-card::after { background:linear-gradient(180deg,rgba(4,5,10,.02),rgba(5,6,13,.94)); }.seo-venue-card__art { display:grid; width:100%; height:100%; min-height:21rem; place-items:center; color:#aabaff; background:radial-gradient(circle at 68% 22%,rgba(68,94,237,.74),transparent 22%),linear-gradient(138deg,#1f2e78,#12131a 67%); }.seo-venue-card__art svg { width:3.2rem; height:3.2rem; }.seo-venue-card span { gap:.42rem; }.seo-venue-card small { color:#b5c2ff; font-size:.65rem; }.seo-venue-card b { font-size:1.45rem; }.seo-venue-card em,.seo-venue-card strong { display:flex; align-items:center; gap:.35rem; color:#d8d8dd; font-size:.7rem; font-style:normal; font-weight:700; }.seo-venue-card em svg { width:.85rem; height:.85rem; }.seo-venue-card strong { margin-top:.15rem; color:#fff; }
.seo-venue { grid-template-columns:minmax(0,1fr) minmax(20rem,.95fr)!important; }.seo-venue-cover { position:relative; min-height:23rem; overflow:hidden; background:#171923; }.seo-venue-cover>img,.seo-venue-cover--art { display:block; width:100%; height:100%; min-height:23rem; object-fit:cover; }.seo-venue-cover::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(7,8,13,.86)); content:""; }.seo-venue-cover>span { position:absolute; z-index:1; right:1.1rem; bottom:1.1rem; left:1.1rem; display:flex; align-items:center; gap:.45rem; color:#fff; font-size:.72rem; font-weight:800; }.seo-venue-cover>span svg { width:1rem; height:1rem; }.seo-venue-cover--art { display:grid; place-items:center; color:#a8b9ff; background:radial-gradient(circle at 35% 30%,#4264ee,transparent 29%),linear-gradient(140deg,#1b286b,#111217); font-size:1.2rem; font-weight:800; letter-spacing:.17em; }.seo-gallery .seo-section-title>span { margin-left:auto; }.seo-gallery>div { grid-auto-rows:10rem; }.seo-gallery img:first-child { grid-row:span 2; }
.seo-site-menu__panel--guides { grid-template-columns:repeat(2,minmax(13rem,1fr)); min-width:30rem; }.seo-venue-cover__credit { position:absolute; z-index:1; top:1rem; left:1rem; max-width:calc(100% - 2rem); padding:.42rem .6rem; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:#fff; background:rgba(8,10,18,.72); font-size:.61rem; font-weight:700; line-height:1.25; text-decoration:none; backdrop-filter:blur(10px); }.seo-venue-cover__credit:hover { color:#fff; border-color:#90a5ff; }.seo-gallery>div>a { position:relative; display:block; overflow:hidden; min-width:0; color:#fff; text-decoration:none; }.seo-gallery>div>a:first-child { grid-row:span 2; }.seo-gallery>div>a:nth-child(n+4) { display:none; }.seo-gallery>div>a img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .28s ease; }.seo-gallery>div>a:hover img { transform:scale(1.035); }.seo-gallery>div>a span { position:absolute; right:.45rem; bottom:.45rem; left:.45rem; overflow:hidden; color:#fff; font-size:.56rem; font-weight:800; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; text-shadow:0 1px 6px #000; }.seo-guide-directory { margin-top:4.2rem; padding:2.2rem; border:1px solid var(--line); border-radius:1.45rem; background:linear-gradient(135deg,rgba(30,60,188,.18),rgba(20,21,28,.86) 48%); }.seo-guide-directory>.seo-section-title { align-items:end; }.seo-guide-directory>.seo-section-title>div { max-width:42rem; }.seo-guide-directory>.seo-section-title h2 { margin:.28rem 0 0; }.seo-guide-directory>.seo-section-title>span { margin-left:auto; color:#9eb0ff; font-size:.72rem; font-weight:800; }.seo-guide-directory>div:last-child { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin-top:1.4rem; }.seo-guide-directory a { position:relative; min-height:12rem; padding:1rem; overflow:hidden; border:1px solid rgba(133,157,255,.25); border-radius:1rem; color:#fff; background:rgba(10,12,20,.64); text-decoration:none; transition:border-color .2s ease,transform .2s ease,background .2s ease; }.seo-guide-directory a:hover { border-color:#6685ff; background:rgba(33,54,143,.38); transform:translateY(-2px); }.seo-guide-directory a>span { display:grid; width:2.25rem; height:2.25rem; place-items:center; border-radius:.7rem; color:#b6c4ff; background:#1c2b78; }.seo-guide-directory a>span svg,.seo-guide-directory a>svg { width:1.05rem; height:1.05rem; }.seo-guide-directory small { display:block; margin-top:1.15rem; color:#9eb0ff; font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }.seo-guide-directory b { display:block; margin-top:.32rem; font-size:.88rem; line-height:1.28; letter-spacing:-.025em; }.seo-guide-directory p { margin:.38rem 1.5rem 0 0; color:#b9bfce; font-size:.67rem; line-height:1.45; }.seo-guide-directory a>svg { position:absolute; right:1rem; bottom:1rem; color:#a7b8ff; }
@media (max-width:70rem) { .seo-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.seo-guide-hero { grid-template-columns:minmax(0,1fr) minmax(14rem,.7fr); padding:2.4rem; }.seo-guide-hero figure { height:18rem; }.seo-venue { grid-template-columns:1fr!important; }.seo-venue-cover { min-height:18rem; }.seo-venue-cover>img,.seo-venue-cover--art { min-height:18rem; } }
@media (max-width:41.99rem) { .seo-site-header { gap:.55rem; }.seo-site-nav { gap:.15rem; }.seo-site-nav a { padding:.48rem .5rem; font-size:.6rem; }.seo-site-nav a:nth-child(3),.seo-site-nav a:nth-child(4) { display:none; }.seo-site-nav__telegram { padding:.55rem .6rem!important; font-size:.62rem!important; }.seo-nav { padding-bottom:1.45rem; }.seo-nav a { padding:.6rem .72rem; font-size:.68rem; }.seo-guide-hero { display:block; min-height:0; margin-top:1rem; padding:2rem 1.05rem 1.05rem; border-radius:1.3rem; }.seo-guide-hero h1 { font-size:2.45rem; }.seo-guide-hero figure { height:14.5rem; margin:1.5rem .4rem 0; }.seo-guide-intro { display:grid; gap:.9rem; margin:1rem 0 2.8rem; padding:1rem; }.seo-guide-intro>a { margin-left:3.35rem; }.seo-guide-routes,.seo-guide-steps,.seo-guide-events,.seo-guide-venues { margin-top:2.8rem; }.seo-route-grid { grid-template-columns:1fr; gap:.7rem; }.seo-route { min-height:13.5rem; }.seo-route small { margin-top:1rem; }.seo-guide-steps { display:block; padding:1.4rem 0; }.seo-guide-steps ol { margin-top:1.4rem; }.seo-guide-venues { grid-template-columns:1fr; gap:1.3rem; padding:1.35rem; }.seo-venues-hero { display:grid; min-height:0; margin-top:1rem; padding:2rem 1.1rem; }.seo-venue-card { min-height:17rem; }.seo-venue-card__art { min-height:17rem; }.seo-venue-cover { min-height:15rem; }.seo-venue-cover>img,.seo-venue-cover--art { min-height:15rem; }.seo-gallery>div { grid-auto-rows:6rem; }.seo-gallery .seo-section-title { align-items:flex-start; }.seo-gallery .seo-section-title>span { max-width:10rem; text-align:right; } }
@media (max-width:56rem) { .seo-site-menu__panel--guides { grid-template-columns:1fr; min-width:17rem; }.seo-guide-directory { margin-top:2.8rem; padding:1.25rem; }.seo-guide-directory>div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)); }.seo-guide-directory a { min-height:11rem; } }
@media (max-width:41.99rem) { .seo-guide-directory>div:last-child { grid-template-columns:1fr; }.seo-guide-directory a { min-height:9.8rem; }.seo-venue-cover__credit { top:.7rem; left:.7rem; font-size:.55rem; }.seo-gallery>div>a span { font-size:.51rem; } }
.seo-telegram__short { display:none; }
@media (max-width:41.99rem) { .seo-site-header { justify-content:space-between; min-height:4.6rem; }.seo-site-header .seo-site-nav { display:none; }.seo-site-nav__telegram { min-height:2.4rem; padding:.55rem .78rem!important; border-radius:.72rem; font-size:.67rem!important; }.seo-telegram__full { display:none; }.seo-telegram__short { display:inline; } }

.seo-legal { max-width:52rem; margin:2.2rem auto 0; }.seo-legal h1 { max-width:46rem; margin:0; font-size:clamp(2.1rem,5vw,4rem); line-height:1.03; letter-spacing:-.07em; }.seo-legal__meta { margin:1rem 0 2.2rem; color:var(--muted); font-size:.74rem; }.seo-legal section { padding:1.35rem 0; border-top:1px solid var(--line); }.seo-legal h2 { margin:0 0 .55rem; font-size:1.05rem; letter-spacing:-.04em; }.seo-legal p { margin:0; color:#c9cbd6; font-size:.82rem; line-height:1.72; }.seo-footer { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-top:4rem; padding:1.5rem 0 1rem; border-top:1px solid var(--line); }.seo-footer>div { max-width:28rem; }.seo-footer .seo-brand { font-size:.82rem; }.seo-footer p { margin:.7rem 0 0; color:var(--muted); font-size:.7rem; line-height:1.5; }.seo-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem 1rem; }.seo-footer nav a { color:#aebeff; font-size:.72rem; font-weight:800; text-decoration:none; }
@media (max-width:41.99rem) { .seo-legal { margin-top:1.5rem; }.seo-legal section { padding:1.1rem 0; }.seo-legal p { font-size:.78rem; }.seo-footer { display:grid; gap:1.2rem; margin-top:3rem; }.seo-footer nav { justify-content:flex-start; } }
.seo-topic-guide { max-width:52rem; }.seo-topic-guide h1 { max-width:46rem; }.seo-topic-guide__links { display:flex; flex-wrap:wrap; gap:.55rem; margin:0 0 2.2rem; }.seo-topic-guide__links a { display:inline-flex; align-items:center; gap:.35rem; min-height:2.45rem; padding:0 .8rem; border:1px solid rgba(99,125,255,.46); border-radius:.72rem; color:#cdd7ff; background:linear-gradient(135deg,rgba(41,67,181,.42),rgba(19,21,31,.82)); font-size:.69rem; font-weight:800; text-decoration:none; }.seo-topic-guide__links a:first-child { border-color:#2d4ee2; color:#fff; background:#2947cf; }.seo-topic-guide section { position:relative; padding:1.55rem 0 1.55rem 3.45rem; }.seo-topic-guide .seo-topic-number { position:absolute; top:1.45rem; left:0; display:grid; width:2.35rem; height:2.35rem; place-items:center; border:1px solid rgba(105,130,255,.5); border-radius:.7rem; color:#b9c8ff; background:linear-gradient(145deg,#243b9c,#161827); font-size:.65rem; font-weight:800; }.seo-topic-guide h2 { font-size:1.18rem; }.seo-topic-guide p { font-size:.88rem; }.seo-topic-faq { max-width:52rem; margin-top:3.75rem; }.seo-topic-crosslinks { display:grid; grid-template-columns:minmax(0,1fr) minmax(15rem,.72fr); gap:2rem; margin-top:4rem; padding:2.1rem; border:1px solid rgba(92,120,255,.43); border-radius:1.25rem; background:radial-gradient(circle at 88% 12%,rgba(49,79,211,.34),transparent 37%),linear-gradient(135deg,#171b36,#13141b); }.seo-topic-crosslinks .seo-kicker { margin:0 0 .35rem; }.seo-topic-crosslinks h2 { margin:0; font-size:clamp(1.35rem,3vw,2rem); letter-spacing:-.06em; }.seo-topic-crosslinks p:not(.seo-kicker) { max-width:34rem; margin:.7rem 0 0; color:#c4c8d6; font-size:.8rem; line-height:1.6; }.seo-topic-crosslinks nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; align-content:center; }.seo-topic-crosslinks nav a { padding:.8rem; border:1px solid rgba(255,255,255,.11); border-radius:.7rem; color:#e6e9fa; background:rgba(10,12,24,.48); font-size:.72rem; font-weight:800; text-decoration:none; }
.seo-catalogue-note { max-width:42rem; margin:1.5rem auto 0; padding:1rem 1.1rem; border-left:2px solid #4869f3; color:#aeb3c7; background:linear-gradient(90deg,rgba(48,71,189,.19),transparent); font-size:.73rem; line-height:1.6; }
@media (max-width:42rem) { .seo-topic-guide section { padding-left:3rem; }.seo-topic-guide .seo-topic-number { width:2.1rem; height:2.1rem; }.seo-topic-crosslinks { grid-template-columns:1fr; gap:1.25rem; padding:1.35rem; }.seo-topic-crosslinks nav { grid-template-columns:1fr 1fr; } }

/* Shared wordmark: the same asset is used in every public-page header/footer. */
.seo-brand { display:inline-flex; align-items:center; }
.seo-brand picture { display:block; line-height:0; }
.seo-brand img { display:block; width:9.1rem; max-height:2.55rem; height:auto; object-fit:contain; }
.seo-footer .seo-brand img { width:8rem; max-height:2.25rem; }
@media (max-width:41.99rem) { .seo-brand img { width:7.75rem; max-height:2.1rem; } }

/* Editorial topic guides: a real city image carries the spare desktop column. */
@keyframes seo-editorial-rise { from { opacity:0; transform:translateY(.8rem); } to { opacity:1; transform:translateY(0); } }
.seo-topic-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.07fr) minmax(21rem,.93fr); gap:clamp(1.5rem,4vw,4.8rem); min-height:30rem; margin:1.3rem 0 3.7rem; padding:clamp(1.5rem,4vw,4.1rem); overflow:hidden; border:1px solid rgba(85,112,246,.53); border-radius:1.65rem; background:radial-gradient(circle at 4% 4%,rgba(65,95,236,.48),transparent 30%),radial-gradient(circle at 76% 100%,rgba(39,57,154,.35),transparent 42%),linear-gradient(122deg,#171d4b 0%,#11131f 58%,#0f1015 100%); box-shadow:0 1.75rem 4.5rem rgba(0,0,0,.26); }
.seo-topic-hero::before { position:absolute; inset:auto auto -19rem 39%; width:37rem; height:37rem; border:1px solid rgba(205,215,255,.17); border-radius:50%; box-shadow:0 0 0 2.8rem rgba(109,130,250,.06),0 0 0 5.6rem rgba(109,130,250,.035); content:""; }
.seo-topic-hero>div,.seo-topic-hero figure { position:relative; z-index:1; animation:seo-editorial-rise .52s cubic-bezier(.2,.8,.2,1) both; }
.seo-topic-hero figure { min-height:22rem; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.22); border-radius:1.2rem; background:#12141c; box-shadow:0 1.35rem 2.8rem rgba(0,0,0,.32); transform:rotate(2.1deg); animation-delay:.08s; }
.seo-topic-hero figure img { display:block; width:100%; height:100%; object-fit:cover; }
.seo-topic-hero figure::after,.seo-topic-photo-break::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 43%,rgba(7,8,14,.78)); content:""; pointer-events:none; }
.seo-topic-hero figcaption,.seo-topic-photo-break figcaption { position:absolute; z-index:1; right:1rem; bottom:.85rem; left:1rem; color:#eff2ff; font-size:.65rem; font-weight:800; line-height:1.4; }
.seo-topic-hero figcaption a,.seo-topic-photo-break figcaption a { color:#c0ceff; text-decoration:none; }
.seo-topic-hero h1 { max-width:50rem; margin:0; font-size:clamp(2.55rem,5.45vw,5.65rem); line-height:.98; letter-spacing:-.082em; text-wrap:balance; }
.seo-topic-hero>div>p:not(.seo-kicker) { max-width:43rem; margin:1.25rem 0 0; color:#d7dcef; font-size:clamp(.93rem,1.25vw,1.1rem); line-height:1.68; }
.seo-topic-hero .seo-topic-guide__links { margin:1.7rem 0 0; }
.seo-topic-hero .seo-topic-guide__links a { min-height:3.25rem; padding:.72rem 1.05rem; white-space:nowrap; }
.seo-topic-hero__facts { display:flex; flex-wrap:wrap; gap:.65rem 1rem; margin-top:1.4rem; color:#bec9f9; font-size:.68rem; font-weight:800; }
.seo-topic-hero__facts span { display:inline-flex; align-items:center; gap:.38rem; }.seo-topic-hero__facts svg { width:.9rem; height:.9rem; }
.seo-topic-guide { display:grid; grid-template-columns:minmax(0,1fr) minmax(17rem,.36fr); max-width:none; gap:clamp(2rem,5vw,6rem); align-items:start; margin:0 auto; }
.seo-topic-guide__content { min-width:0; }
.seo-topic-guide section { padding:2rem 0 2.15rem 4.1rem; }
.seo-topic-guide .seo-topic-number { top:1.9rem; width:2.65rem; height:2.65rem; border-radius:.82rem; font-size:.7rem; }
.seo-topic-guide h2 { max-width:43rem; margin:0 0 .7rem; font-size:clamp(1.35rem,2.1vw,2rem); line-height:1.08; letter-spacing:-.06em; }
.seo-topic-guide p { max-width:48rem; color:#c8ccda; font-size:clamp(.88rem,1.15vw,1rem); line-height:1.76; }
.seo-topic-photo-break { position:relative; height:clamp(15rem,27vw,24rem); margin:1.2rem 0 1.35rem 4.1rem; overflow:hidden; border:1px solid rgba(118,142,255,.34); border-radius:1.15rem; background:#151720; box-shadow:0 1.1rem 2.5rem rgba(0,0,0,.18); }
.seo-topic-photo-break img { width:100%; height:100%; object-fit:cover; }
.seo-topic-guide__aside { position:sticky; top:6.4rem; padding:1.2rem; border:1px solid rgba(105,130,255,.35); border-radius:1rem; background:linear-gradient(145deg,rgba(42,60,166,.29),rgba(20,22,31,.88)); box-shadow:0 1rem 2.1rem rgba(0,0,0,.14); }
.seo-topic-guide__aside>p { margin:0; color:#b9c7ff; font-size:.67rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.seo-topic-guide__aside ol { display:grid; gap:.8rem; margin:1rem 0 1.2rem; padding:0; list-style:none; }.seo-topic-guide__aside li { display:grid; grid-template-columns:1.7rem 1fr; gap:.45rem; color:#e3e6f2; font-size:.75rem; font-weight:800; line-height:1.4; }.seo-topic-guide__aside li span { color:#91a5ff; font-size:.62rem; }
.seo-topic-guide__aside>a { display:flex; min-height:2.75rem; align-items:center; justify-content:center; gap:.4rem; border-radius:.75rem; color:#fff; background:#2947cf; font-size:.7rem; font-weight:800; text-decoration:none; }.seo-topic-guide__aside>a svg { width:.9rem; height:.9rem; }
.seo-topic-faq { max-width:none; }.seo-topic-faq details { max-width:63rem; }
@media (min-width:72rem) { .seo-page { width:min(100%,96rem); padding-right:2.5rem; padding-left:2.5rem; }.seo-site-header { margin-right:-2.5rem; margin-left:-2.5rem; padding-right:2.5rem; padding-left:2.5rem; } }
@media (max-width:70rem) { .seo-topic-hero { grid-template-columns:minmax(0,1fr) minmax(17rem,.72fr); gap:1.6rem; padding:2.2rem; }.seo-topic-hero figure { min-height:17rem; }.seo-topic-guide { grid-template-columns:minmax(0,1fr) 15rem; gap:2rem; } }
@media (max-width:41.99rem) { .seo-topic-hero { display:block; min-height:0; margin:1rem 0 2.6rem; padding:1.55rem 1rem 1rem; border-radius:1.25rem; }.seo-topic-hero h1 { font-size:clamp(2.45rem,12vw,3.5rem); }.seo-topic-hero>div>p:not(.seo-kicker) { font-size:.91rem; line-height:1.62; }.seo-topic-hero figure { min-height:14.5rem; height:14.5rem; margin:1.55rem .2rem .15rem; transform:rotate(1.2deg); }.seo-topic-hero__facts { gap:.55rem; font-size:.63rem; }.seo-topic-guide { display:block; }.seo-topic-guide__aside { display:none; }.seo-topic-guide section { padding:1.45rem 0 1.55rem 3.05rem; }.seo-topic-guide .seo-topic-number { top:1.35rem; width:2.15rem; height:2.15rem; border-radius:.65rem; }.seo-topic-guide h2 { font-size:1.27rem; }.seo-topic-guide p { font-size:.86rem; line-height:1.68; }.seo-topic-photo-break { height:13rem; margin:1rem 0 1rem 3.05rem; border-radius:.95rem; }.seo-topic-photo-break figcaption,.seo-topic-hero figcaption { right:.75rem; bottom:.65rem; left:.75rem; font-size:.56rem; }.seo-topic-faq { margin-top:2.7rem; } }
@media (prefers-reduced-motion:reduce) { .seo-topic-hero>div,.seo-topic-hero figure { animation:none; } }

/* The rest of the public pages share the same photo-led editorial rhythm. */
.seo-landing-hero { display:grid; grid-template-columns:minmax(0,1.07fr) minmax(20rem,.78fr); gap:clamp(1.5rem,4vw,4.5rem); align-items:center; min-height:27rem; }
.seo-landing-hero>div { min-width:0; }.seo-landing-hero figure { position:relative; z-index:1; align-self:stretch; min-height:20rem; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:1.2rem; background:#141622; box-shadow:0 1.3rem 2.8rem rgba(0,0,0,.28); transform:rotate(1.7deg); }
.seo-landing-hero figure img { display:block; width:100%; height:100%; object-fit:cover; }.seo-landing-hero figure::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 43%,rgba(8,10,16,.78)); content:""; pointer-events:none; }.seo-landing-hero figcaption { position:absolute; z-index:1; right:.95rem; bottom:.8rem; left:.95rem; color:#e9edff; font-size:.62rem; font-weight:800; }.seo-landing-hero figcaption a { color:#bfd0ff; text-decoration:none; }
.seo-landing-hero .seo-hero__stats { max-width:43rem; }.seo-landing-hero .seo-hero__stats a { transition:transform .2s ease,background .2s ease; }.seo-landing-hero .seo-hero__stats a:hover { transform:translateY(-2px); background:#2846ca; }
.seo-venues-hero--photo { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(20rem,.76fr); align-items:stretch; padding:0; overflow:visible; background:linear-gradient(125deg,#1f328f,#14151c 66%); }.seo-venues-hero--photo>div { display:flex; min-height:20rem; flex-direction:column; justify-content:flex-end; padding:2.8rem 3rem; }.seo-venues-hero--photo>div>span { display:inline-flex; align-items:center; align-self:flex-start; gap:.5rem; min-height:2.8rem; margin-top:1.2rem; padding:0 .9rem; border:1px solid rgba(205,215,255,.26); border-radius:.86rem; color:#e7ebff; background:rgba(8,11,41,.32); font-size:.74rem; font-weight:800; }.seo-venues-hero--photo>div>span svg { width:1rem; height:1rem; }.seo-venues-hero--photo figure { position:relative; min-height:20rem; margin:0; overflow:hidden; border-radius:0 1.55rem 1.55rem 0; }.seo-venues-hero--photo figure img { width:100%; height:100%; object-fit:cover; }.seo-venues-hero--photo figure::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,23,37,.34),rgba(5,6,12,.25)); content:""; }.seo-venues-hero--photo figcaption { position:absolute; z-index:1; right:1rem; bottom:.9rem; left:1rem; color:#eff1ff; font-size:.62rem; font-weight:800; }.seo-venues-hero--photo figcaption a { color:#c6d2ff; text-decoration:none; }
.seo-venue-context { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(18rem,.7fr); gap:2rem; min-height:20rem; margin-top:3.2rem; overflow:hidden; border:1px solid rgba(85,112,246,.45); border-radius:1.35rem; background:linear-gradient(120deg,rgba(37,58,166,.42),rgba(17,18,26,.95)); }.seo-venue-context>div { display:flex; flex-direction:column; justify-content:center; padding:2.25rem; }.seo-venue-context h2 { max-width:34rem; margin:.2rem 0 .8rem; font-size:clamp(1.5rem,3vw,2.55rem); line-height:1.06; letter-spacing:-.065em; }.seo-venue-context p:not(.seo-kicker) { max-width:38rem; margin:0; color:#d2d6e5; font-size:.84rem; line-height:1.68; }.seo-venue-context a { display:inline-flex; align-items:center; gap:.4rem; align-self:flex-start; margin-top:1.3rem; color:#fff; font-size:.74rem; font-weight:800; text-decoration:none; }.seo-venue-context a svg { width:1rem; height:1rem; }.seo-venue-context figure { position:relative; margin:0; overflow:hidden; }.seo-venue-context figure img { width:100%; height:100%; object-fit:cover; }.seo-venue-context figure::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(8,9,15,.8)); content:""; }.seo-venue-context figcaption { position:absolute; z-index:1; right:.9rem; bottom:.75rem; left:.9rem; color:#f0f2ff; font-size:.61rem; font-weight:800; }.seo-venue-context figcaption a { color:#c6d2ff; text-decoration:none; }
.seo-simple-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(19rem,.78fr); gap:clamp(1.5rem,4vw,4.3rem); min-height:28rem; margin-top:1.35rem; padding:clamp(1.5rem,4vw,4rem); overflow:hidden; border:1px solid rgba(93,119,255,.5); border-radius:1.65rem; background:radial-gradient(circle at 5% 5%,rgba(65,95,236,.42),transparent 30%),linear-gradient(125deg,#171d4b,#11131e 64%); box-shadow:0 1.5rem 4rem rgba(0,0,0,.25); }.seo-simple-hero>div,.seo-simple-hero figure { position:relative; z-index:1; }.seo-simple-hero h1 { max-width:47rem; margin:0; font-size:clamp(2.5rem,5.3vw,5.2rem); line-height:1; letter-spacing:-.08em; }.seo-simple-hero>div>p:not(.seo-kicker) { max-width:43rem; margin:1.1rem 0 0; color:#d6dbee; font-size:1rem; line-height:1.65; }.seo-simple-hero>div>div { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.65rem; }.seo-simple-hero>div>div a { display:inline-flex; min-height:3rem; align-items:center; gap:.45rem; padding:0 1rem; border:1px solid rgba(190,204,255,.32); border-radius:.8rem; color:#e7ebff; background:rgba(10,12,31,.35); font-size:.75rem; font-weight:800; text-decoration:none; }.seo-simple-hero>div>div a:first-child { border-color:#fff; color:#1c3097; background:#fff; }.seo-simple-hero>div>div svg { width:1rem; height:1rem; }.seo-simple-hero figure { min-height:20rem; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:1.2rem; transform:rotate(1.8deg); }.seo-simple-hero figure img { width:100%; height:100%; object-fit:cover; }.seo-simple-hero figure::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(8,10,16,.78)); content:""; }.seo-simple-hero figcaption { position:absolute; z-index:1; right:.9rem; bottom:.75rem; left:.9rem; color:#f2f4ff; font-size:.61rem; font-weight:800; }.seo-simple-hero figcaption a { color:#c8d4ff; text-decoration:none; }
.seo-simple-guide { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:3.2rem; overflow:hidden; border:1px solid var(--line); border-radius:1.25rem; background:var(--line); }.seo-simple-guide section { display:grid; grid-template-columns:3rem minmax(0,1fr); gap:.85rem; min-height:14rem; padding:1.7rem; background:#171820; }.seo-simple-guide section>span { display:grid; width:2.45rem; height:2.45rem; place-items:center; border:1px solid rgba(104,130,255,.48); border-radius:.72rem; color:#b9c8ff; background:#202c70; font-size:.67rem; font-weight:800; }.seo-simple-guide h2 { margin:.15rem 0 .55rem; font-size:1.18rem; line-height:1.1; letter-spacing:-.055em; }.seo-simple-guide p { margin:0; color:#c6cad8; font-size:.79rem; line-height:1.65; }.seo-simple-guide__cta { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:3.2rem; padding:2.2rem; border:1px solid rgba(100,127,255,.5); border-radius:1.25rem; background:radial-gradient(circle at 88% 18%,rgba(70,98,236,.36),transparent 27%),linear-gradient(126deg,#1c2c7b,#15161d 70%); }.seo-simple-guide__cta h2 { max-width:42rem; margin:.25rem 0 .65rem; font-size:clamp(1.45rem,2.8vw,2.45rem); line-height:1.08; letter-spacing:-.065em; }.seo-simple-guide__cta p:not(.seo-kicker) { max-width:45rem; margin:0; color:#d5d9e8; font-size:.8rem; line-height:1.62; }.seo-simple-guide__cta>a { display:inline-flex; flex:none; min-height:3rem; align-items:center; gap:.45rem; padding:0 1rem; border-radius:.8rem; color:#21369e; background:#fff; font-size:.73rem; font-weight:800; text-decoration:none; }.seo-simple-guide__cta>a svg { width:1rem; height:1rem; }
@media (max-width:70rem) { .seo-landing-hero { grid-template-columns:minmax(0,1fr) minmax(17rem,.7fr); }.seo-venues-hero--photo { grid-template-columns:minmax(0,1fr) minmax(16rem,.65fr); }.seo-venues-hero--photo>div { padding:2.2rem; }.seo-venue-context { grid-template-columns:minmax(0,1fr) minmax(15rem,.65fr); }.seo-simple-hero { grid-template-columns:minmax(0,1fr) minmax(16rem,.68fr); padding:2.2rem; }.seo-simple-guide { grid-template-columns:1fr; }.seo-simple-guide section { min-height:0; } }
@media (max-width:41.99rem) { .seo-landing-hero,.seo-simple-hero { display:block; min-height:0; margin-top:1rem; padding:1.55rem 1rem 1rem; }.seo-landing-hero figure,.seo-simple-hero figure { height:14rem; min-height:14rem; margin:1.45rem .15rem .1rem; }.seo-landing-hero h1,.seo-simple-hero h1 { font-size:clamp(2.4rem,12vw,3.55rem); }.seo-landing-hero>div>div:not(.seo-hero__stats) { font-size:.88rem; }.seo-venues-hero--photo { display:block; margin-top:1rem; padding:0; }.seo-venues-hero--photo>div { min-height:0; padding:1.8rem 1.1rem; }.seo-venues-hero--photo figure { min-height:13.5rem; height:13.5rem; border-radius:0 0 1.25rem 1.25rem; }.seo-venue-context { display:block; min-height:0; margin-top:2.5rem; }.seo-venue-context>div { padding:1.5rem 1.1rem; }.seo-venue-context figure { height:13.5rem; }.seo-simple-hero>div>p:not(.seo-kicker) { font-size:.9rem; }.seo-simple-hero>div>div a { min-height:2.8rem; font-size:.7rem; }.seo-simple-guide { margin-top:2.5rem; }.seo-simple-guide section { grid-template-columns:2.6rem minmax(0,1fr); gap:.65rem; padding:1.25rem 1rem; }.seo-simple-guide h2 { font-size:1.08rem; }.seo-simple-guide p { font-size:.77rem; }.seo-simple-guide__cta { display:grid; gap:1.25rem; margin-top:2.5rem; padding:1.4rem; }.seo-simple-guide__cta>a { justify-content:center; }.seo-landing-hero figcaption,.seo-simple-hero figcaption,.seo-venues-hero--photo figcaption,.seo-venue-context figcaption { font-size:.56rem; } }

/* Navigation is a real wayfinding layer: desktop reveals second-level routes, mobile keeps every route one tap away. */
.seo-site-header { overflow:visible; }
.seo-site-nav { align-items:center; overflow:visible; }
.seo-site-nav>a,.seo-site-menu>a { display:inline-flex; min-height:2.65rem; align-items:center; padding:0 .78rem; border-radius:.74rem; color:#c8cbda; font-size:.73rem; font-weight:800; text-decoration:none; white-space:nowrap; transition:background .18s ease,color .18s ease,transform .18s ease; }
.seo-site-nav>a:hover,.seo-site-menu>a:hover,.seo-site-menu:focus-within>a { color:#fff; background:rgba(59,87,229,.18); }
.seo-site-nav__home { border:1px solid rgba(90,119,255,.55); color:#eff2ff!important; background:rgba(42,68,196,.36); }
.seo-site-menu { position:relative; flex:none; }
.seo-site-menu__panel { position:absolute; z-index:25; top:calc(100% + .7rem); left:0; display:grid; min-width:16.5rem; gap:.12rem; padding:.5rem; border:1px solid rgba(107,132,255,.42); border-radius:1rem; opacity:0; visibility:hidden; background:linear-gradient(145deg,rgba(29,40,99,.98),rgba(16,17,24,.99)); box-shadow:0 1.25rem 3.2rem rgba(0,0,0,.36); transform:translateY(-.35rem); transition:opacity .17s ease,transform .17s ease,visibility .17s step-end; }
.seo-site-menu:hover .seo-site-menu__panel,.seo-site-menu:focus-within .seo-site-menu__panel { opacity:1; visibility:visible; transform:translateY(0); transition:opacity .17s ease,transform .17s ease; }
.seo-site-menu__panel::before { position:absolute; top:-.75rem; left:0; width:100%; height:.8rem; content:""; }
.seo-site-menu__panel a { padding:.68rem .72rem; border-radius:.62rem; color:#d9dced; font-size:.69rem; font-weight:800; line-height:1.32; text-decoration:none; }
.seo-site-menu__panel a:hover,.seo-site-menu__panel a:focus-visible { color:#fff; outline:none; background:rgba(67,93,226,.34); }
.seo-mobile-menu { display:none; }
.seo-site-nav>a:focus-visible,.seo-site-menu>a:focus-visible,.seo-site-nav__telegram:focus-visible,.seo-mobile-menu summary:focus-visible { outline:2px solid #9eb3ff; outline-offset:3px; }
@media (max-width:72rem) and (min-width:42rem) { .seo-site-nav>a,.seo-site-menu>a { padding:0 .52rem; font-size:.66rem; }.seo-site-nav { gap:.1rem; }.seo-site-nav__telegram { padding:0 .72rem; font-size:.66rem; } }
@media (max-width:41.99rem) { .seo-site-header { position:sticky; gap:.45rem; }.seo-site-header .seo-site-nav { display:none; }.seo-site-header .seo-site-nav__telegram { min-height:2.35rem; margin-left:auto; padding:0 .64rem!important; border-radius:.68rem; font-size:.62rem!important; }.seo-mobile-menu { position:relative; display:block; flex:none; }.seo-mobile-menu summary { display:grid; width:2.45rem; height:2.35rem; place-content:center; gap:.22rem; cursor:pointer; border:1px solid rgba(104,130,255,.5); border-radius:.68rem; background:#181b29; list-style:none; }.seo-mobile-menu summary::-webkit-details-marker { display:none; }.seo-mobile-menu summary span { display:block; width:1rem; height:2px; border-radius:9px; background:#e8ebff; transition:transform .18s ease,opacity .18s ease; }.seo-mobile-menu[open] summary span:first-child { transform:translateY(.44rem) rotate(45deg); }.seo-mobile-menu[open] summary span:nth-child(2) { opacity:0; }.seo-mobile-menu[open] summary span:last-child { transform:translateY(-.44rem) rotate(-45deg); }.seo-mobile-menu nav { position:absolute; z-index:30; top:calc(100% + .55rem); right:0; display:grid; width:min(19rem,calc(100vw - 1.5rem)); grid-template-columns:1fr 1fr; gap:.28rem; padding:.55rem; border:1px solid rgba(103,130,255,.55); border-radius:1rem; background:linear-gradient(145deg,#202d75,#12141d 70%); box-shadow:0 1.2rem 2.8rem rgba(0,0,0,.42); }.seo-mobile-menu nav a { min-height:3rem; display:flex; align-items:center; padding:.55rem .6rem; border:1px solid rgba(255,255,255,.09); border-radius:.65rem; color:#edf0ff; background:rgba(7,9,22,.22); font-size:.66rem; font-weight:800; line-height:1.22; text-decoration:none; }.seo-mobile-menu nav a:first-child { grid-column:1/-1; color:#fff; background:#2947cf; } }

/* The catalogue is permissive about an unconfirmed stage language, but never
   hides that uncertainty.  This compact pill keeps the primary date/title/
   price hierarchy intact while saving a Russian-speaking visitor a blind tap. */
.seo-card__language { display:inline-flex; width:max-content; max-width:100%; align-items:center; margin-top:.38rem; padding:.24rem .42rem; border:1px solid rgba(171,184,239,.27); border-radius:999px; color:#c5cbe0; background:rgba(255,255,255,.035); font-size:.54rem; font-weight:800; line-height:1.1; }

/* Wide desktop is an editorial surface, not a narrow mobile column stretched onto a monitor. */
.seo-catalogue-note { max-width:none; margin:1.7rem 0 0; padding:1rem 1.25rem; }
.seo-about,.seo-faq { max-width:none; }
.seo-guide { max-width:none; }
.seo-about p,.seo-faq p { max-width:none; }
.seo-topic-faq details { max-width:none; }
@media (min-width:42rem) { .seo-about { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(1.5rem,4.5vw,5.5rem); align-items:start; }.seo-about h2 { grid-column:1/-1; margin:0 0 1.25rem; font-size:clamp(1.55rem,2.7vw,2.45rem); line-height:1.05; letter-spacing:-.065em; }.seo-about p { margin:0 0 1.15rem; font-size:clamp(.83rem,1vw,.98rem); line-height:1.72; }.seo-about p:first-of-type { grid-column:1/-1; max-width:82rem; font-size:clamp(.9rem,1.14vw,1.08rem); }.seo-faq h2 { max-width:none; font-size:clamp(1.55rem,2.7vw,2.45rem); }.seo-faq summary { padding:1.18rem 0; font-size:clamp(.82rem,1.05vw,.98rem); }.seo-faq p { padding-right:clamp(2rem,10vw,12rem); font-size:.84rem; }.seo-catalogue-note { font-size:.79rem; } }
@media (max-width:41.99rem) { .seo-about p { font-size:.8rem; }.seo-catalogue-note { margin-top:1.25rem; padding:.9rem 1rem; } }

/* Главная страница: разделы афиши и внутренние переходы со страницы события. */
.seo-home-sections { margin:2rem 0; }
.seo-home-grid { display:grid; gap:.6rem; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr)); }
.seo-home-section { display:flex; align-items:center; gap:.6rem; padding:.75rem .8rem; border:1px solid var(--line); border-radius:.9rem; color:inherit; background:var(--surface); text-decoration:none; transition:transform .2s ease,border-color .2s ease; }
.seo-home-section:hover { transform:translateY(-2px); border-color:#566fe8; }
.seo-home-section svg { width:1.2rem; height:1.2rem; flex:none; color:#9eb0ff; }
.seo-home-section span { display:grid; min-width:0; gap:.12rem; }
.seo-home-section strong { font-size:.78rem; letter-spacing:-.02em; }
.seo-home-section small { color:var(--faint,#8d8d8d); font-size:.62rem; font-weight:700; }
.seo-event-links { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:.9rem; }

/* Постраничная навигация подборок и быстрые даты в шапке. */
.seo-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.4rem; margin:1.2rem 0 .4rem; }
.seo-pagination__numbers { display:flex; flex-wrap:wrap; gap:.3rem; }
.seo-page-link { display:grid; min-width:2.1rem; height:2.1rem; place-items:center; padding:0 .55rem; border:1px solid var(--line); border-radius:.6rem; color:#c9d2ff; background:var(--surface); font-size:.7rem; font-weight:800; text-decoration:none; }
.seo-page-link:hover { border-color:#566fe8; }
.seo-page-link.is-current { border-color:var(--blue,#1b36c1); color:#fff; background:var(--blue,#1b36c1); }
.seo-page-gap { color:var(--faint,#8d8d8d); padding:0 .15rem; }
.seo-site-nav__today { color:#9eb0ff; font-weight:800; }

/* Календарь повторов: сначала человек выбирает день, затем — конкретный слот.
   Это сохраняет плотность данных без бесконечной стены одинаковых сеансов. */
.seo-schedule { margin:clamp(2.4rem,5vw,4.25rem) 0; padding:clamp(1rem,2.6vw,1.8rem); border:1px solid rgba(89,116,255,.38); border-radius:1.25rem; background:linear-gradient(145deg,rgba(36,58,170,.19),rgba(21,22,29,.96) 38%,rgba(20,21,27,.97)); box-shadow:inset 0 1px rgba(255,255,255,.035),0 1.1rem 2.8rem rgba(0,0,0,.13); }
.seo-schedule .seo-section-title { align-items:flex-start; margin-bottom:1rem; }
.seo-schedule .seo-section-title>div { min-width:0; }
.seo-schedule .seo-section-title h2 { margin:0; font-size:clamp(1.1rem,2.2vw,1.55rem); letter-spacing:-.045em; }
.seo-schedule .seo-section-title p { max-width:34rem; margin:.35rem 0 0; color:var(--muted,#b1b4c1); font-size:.72rem; font-weight:650; line-height:1.52; }
.seo-schedule .seo-section-title>span { flex:none; padding:.48rem .62rem; border:1px solid rgba(105,131,255,.35); border-radius:.62rem; color:#b8c7ff; background:rgba(20,34,105,.36); font-size:.62rem; font-weight:800; white-space:nowrap; }
.seo-schedule__months { display:grid; gap:.75rem; }
.seo-schedule__month { padding:.72rem; border:1px solid rgba(113,127,181,.2); border-radius:.92rem; background:rgba(8,10,18,.35); }
.seo-schedule__month>p { margin:0 0 .58rem; color:#f5f6ff; font-size:.7rem; font-weight:800; letter-spacing:-.01em; }
.seo-schedule__calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.28rem; }
.seo-schedule__weekday { display:grid; min-height:1rem; place-items:center; color:#7f8494; font-size:.53rem; font-weight:800; text-transform:uppercase; }
.seo-schedule__day { position:relative; display:grid; min-height:3.05rem; place-items:center; padding:.22rem; border:1px solid transparent; border-radius:.65rem; color:#767c8e; background:rgba(255,255,255,.018); font:inherit; line-height:1; }
.seo-schedule__day b { font-size:.72rem; font-weight:800; }
.seo-schedule__day small { position:absolute; top:.26rem; right:.28rem; min-width:.9rem; height:.9rem; padding:0 .15rem; border-radius:.45rem; color:#111628; background:#b6c7ff; font-size:.47rem; font-weight:900; line-height:.9rem; text-align:center; }
.seo-schedule__day--outside { background:transparent; }
.seo-schedule__day--available { color:#f5f6ff; border-color:rgba(118,142,255,.42); background:linear-gradient(145deg,rgba(52,75,184,.42),rgba(29,33,52,.85)); cursor:pointer; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.seo-schedule__day--available:hover { transform:translateY(-1px); border-color:#9eb0ff; }
.seo-schedule__day--available:focus-visible { outline:2px solid #c5d1ff; outline-offset:2px; }
.seo-schedule__day--available.is-selected { color:#fff; border-color:#aebeff; background:linear-gradient(145deg,#3c5ceb,#1d37bf); box-shadow:0 .45rem 1.15rem rgba(32,64,203,.35); }
.seo-schedule__day--available.is-selected small { color:#fff; background:rgba(9,19,88,.7); }
.seo-schedule__panels { margin-top:.8rem; }
.seo-schedule__panel { padding:.8rem; border:1px solid rgba(113,130,212,.28); border-radius:.92rem; background:rgba(10,12,20,.52); }
.seo-schedule__panel[hidden] { display:none; }
.seo-schedule__panel-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; margin:0 0 .65rem; }
.seo-schedule__panel-head>div { display:grid; gap:.13rem; }
.seo-schedule__panel-head strong { color:#fff; font-size:.77rem; font-weight:850; }
.seo-schedule__panel-head span { color:var(--faint,#8d8d8d); font-size:.59rem; font-weight:700; }
.seo-schedule__panel-head svg { width:1rem; height:1rem; flex:none; color:#9eb0ff; }
.seo-schedule__slots { display:grid; gap:.4rem; }
.seo-schedule__slot { display:grid; grid-template-columns:3.15rem minmax(0,1fr) auto .8rem; gap:.55rem; align-items:center; min-height:3.35rem; padding:.55rem .58rem; border:1px solid rgba(98,110,160,.28); border-radius:.7rem; color:#f7f8ff; background:rgba(29,31,42,.78); text-decoration:none; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.seo-schedule__slot:hover { transform:translateY(-1px); border-color:#697fe8; background:rgba(42,47,75,.84); }
.seo-schedule__slot:focus-visible { outline:2px solid #9eb0ff; outline-offset:2px; }
.seo-schedule__slot time { color:#b9c7ff; font-size:.75rem; font-weight:900; letter-spacing:-.025em; }
.seo-schedule__slot span { display:grid; min-width:0; gap:.13rem; }
.seo-schedule__slot b,.seo-schedule__slot small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.seo-schedule__slot b { font-size:.68rem; font-weight:800; }
.seo-schedule__slot small { color:var(--faint,#999eaf); font-size:.56rem; font-weight:650; }
.seo-schedule__slot em { color:#dce2ff; font-size:.62rem; font-style:normal; font-weight:850; white-space:nowrap; }
.seo-schedule__slot svg { width:.8rem; height:.8rem; color:#9eb0ff; }
@media (min-width:42rem) { .seo-schedule__months { grid-template-columns:repeat(auto-fit,minmax(20rem,1fr)); }.seo-schedule__slots { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:23rem) { .seo-schedule { margin-inline:-.15rem; padding:.82rem; }.seo-schedule__day { min-height:2.7rem; }.seo-schedule__slot { grid-template-columns:2.75rem minmax(0,1fr) auto; }.seo-schedule__slot svg { display:none; } }

/* Переход в Telegram: объясняем разницу, а не просто зовём. */
.seo-telegram { display:grid; gap:1.2rem; margin:2.4rem 0; padding:1.4rem; border:1px solid rgba(99,126,255,.35); border-radius:1.15rem; background:linear-gradient(140deg,rgba(27,54,193,.28),rgba(27,54,193,.06)); }
.seo-telegram h2 { margin:.2rem 0 .5rem; font-size:1.2rem; letter-spacing:-.03em; }
.seo-telegram > div > p { margin:0 0 .7rem; color:#c9cbd4; font-size:.76rem; line-height:1.5; }
.seo-telegram__list { display:grid; gap:.6rem; margin:0; padding:0; list-style:none; }
.seo-telegram__list li { display:flex; gap:.55rem; align-items:flex-start; }
.seo-telegram__list svg { width:1rem; height:1rem; flex:none; margin-top:.15rem; color:#9eb0ff; }
.seo-telegram__list span { display:grid; gap:.1rem; font-size:.72rem; line-height:1.45; color:#c9cbd4; }
.seo-telegram__list b { color:#fff; font-size:.75rem; }
.seo-telegram__action { display:grid; gap:.45rem; justify-items:start; align-content:center; }
.seo-button--telegram { display:inline-flex; align-items:center; gap:.4rem; }
.seo-button--telegram svg { width:1rem; height:1rem; }
.seo-telegram__action small { color:var(--faint,#8d8d8d); font-size:.64rem; font-weight:700; }
@media (min-width: 46rem) {
  .seo-telegram { grid-template-columns: minmax(0,1fr) auto; align-items:center; gap:2rem; padding:1.8rem; }
}

/* Полный список площадок под витриной описанных вручную. */
.seo-venue-rest { margin:2.4rem 0; }
.seo-venue-rows { display:grid; gap:.4rem; grid-template-columns:repeat(auto-fill,minmax(16rem,1fr)); }
.seo-venue-row { display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.6rem .75rem; border:1px solid var(--line); border-radius:.75rem; color:inherit; background:var(--surface); text-decoration:none; }
.seo-venue-row:hover { border-color:#566fe8; }
.seo-venue-row span { display:grid; min-width:0; gap:.1rem; }
.seo-venue-row b { overflow:hidden; font-size:.72rem; font-weight:800; white-space:nowrap; text-overflow:ellipsis; }
.seo-venue-row small { overflow:hidden; color:var(--faint,#8d8d8d); font-size:.62rem; font-weight:700; white-space:nowrap; text-overflow:ellipsis; }
.seo-venue-row em { flex:none; color:#9eb0ff; font-size:.7rem; font-weight:800; font-style:normal; }

/* На телефоне герой занимал весь первый экран, и на странице «что сегодня»
   человек не видел ни одного события без прокрутки. Ужимаем заголовок и
   иллюстрацию — фотография города остаётся, но перестаёт быть ширмой. */
@media (max-width: 41.99rem) {
  .seo-hero h1 { font-size: 1.85rem; letter-spacing: -.05em; }
  .seo-hero p { font-size: .64rem; }
  .seo-hero > div:not(.seo-hero__stats) { margin-top: .75rem; font-size: .82rem; line-height: 1.5; }
  /* На каталоге событие должно появляться в первом экране телефона. Фото
     остаётся частью композиции, но не вытесняет саму афишу ниже фолда. */
  .seo-landing-hero { min-height: 0; gap: .8rem; padding: 1.35rem .95rem .9rem; }
  .seo-landing-hero h1 { font-size: 1.76rem; }
  .seo-landing-hero figure { min-height: 0; height: 7.5rem; margin-top: .9rem; transform: none; }
  .seo-landing-hero figure img { height: 100%; object-fit: cover; }
  .seo-landing-hero .seo-hero__stats { gap: .35rem; margin-top: .75rem!important; }
  .seo-landing-hero .seo-hero__stats span, .seo-landing-hero .seo-hero__stats a { min-height: 1.95rem; padding: 0 .55rem; font-size: .61rem; }
}

/* Редакционный слой не должен выглядеть как ещё одна порция одинаковых
   карточек. Он объясняет порядок и даёт глазу небольшую паузу перед каталогом. */
.seo-editorial-picks {
  position: relative;
  margin: clamp(1.9rem, 4vw, 4.25rem) 0;
  padding: clamp(1.15rem, 2.5vw, 2.25rem) 0 clamp(1.25rem, 2.7vw, 2.4rem);
  border-block: 1px solid rgba(124, 145, 255, .27);
}
.seo-editorial-picks::before {
  position: absolute;
  top: -1px;
  left: 0;
  width: clamp(4rem, 12vw, 10rem);
  height: 2px;
  content: "";
  background: linear-gradient(90deg, #4163ff, #9ab0ff 72%, transparent);
}
.seo-editorial-picks > p {
  max-width: 52rem;
  margin: 1.1rem 0 0;
  color: var(--faint, #a9adbc);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.55;
}

/* Закончившаяся страница не должна продолжать продавать старый билет или
   передавать поиску разметку Event. Это удобная конечная точка с выходом к
   живой афише, а не голая 410-ошибка. */
.seo-finished-event {
  max-width: 72rem;
  margin: clamp(1.25rem, 3vw, 3.5rem) 0 clamp(2rem, 5vw, 5rem);
  padding: clamp(1.25rem, 3vw, 3rem);
  border: 1px solid rgba(106, 132, 255, .38);
  border-radius: clamp(1.1rem, 2vw, 1.6rem);
  background:
    radial-gradient(circle at 94% 9%, rgba(54, 87, 236, .22), transparent 27rem),
    linear-gradient(135deg, rgba(30, 45, 130, .25), rgba(22, 23, 31, .9) 52%);
  box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, .15);
}
.seo-finished-event h1 {
  max-width: 42rem;
  margin: .35rem 0 .75rem;
  font-size: clamp(1.75rem, 4vw, 4rem);
  letter-spacing: -.065em;
  line-height: .97;
}
.seo-finished-event > p:not(.seo-kicker) {
  max-width: 48rem;
  margin: 0;
  color: #c7cad7;
  font-size: clamp(.84rem, 1.25vw, 1rem);
  line-height: 1.65;
}
.seo-finished-event > div {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1rem;
  align-items: center;
  margin-top: 1.35rem;
}
.seo-finished-event .seo-text-link { min-height: 2.8rem; display: inline-flex; align-items: center; }

@media (max-width: 41.99rem) {
  .seo-editorial-picks { margin: 1.7rem 0 2.2rem; padding: 1.05rem 0 1.25rem; }
  .seo-editorial-picks > p { font-size: .71rem; }
  .seo-finished-event { margin-top: 1rem; }
  .seo-finished-event > div { align-items: stretch; }
  .seo-finished-event .seo-button { width: 100%; justify-content: center; min-height: 3rem; }
}

/* Public search stays light: this is a fast way to narrow the live catalogue,
   while the full map and personal settings remain in the Mini App. */
.seo-catalogue-filter {
  margin: 1.35rem 0 2.45rem;
  padding: .7rem;
  border: 1px solid rgba(103, 128, 255, .35);
  border-radius: 1.1rem;
  background: linear-gradient(126deg, rgba(35, 53, 139, .3), rgba(21, 22, 30, .9) 56%);
  box-shadow: 0 .9rem 2.2rem rgba(0, 0, 0, .12);
}
.seo-catalogue-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, .4fr) auto;
  gap: .5rem;
}
.seo-catalogue-search,
.seo-catalogue-select {
  display: flex;
  min-width: 0;
  min-height: 3rem;
  align-items: center;
  gap: .55rem;
  padding: 0 .85rem;
  border: 1px solid rgba(215, 221, 255, .18);
  border-radius: .76rem;
  background: rgba(7, 9, 18, .38);
}
.seo-catalogue-search:focus-within,
.seo-catalogue-select:focus-within { border-color: #8098ff; box-shadow: 0 0 0 3px rgba(72, 101, 240, .18); }
.seo-catalogue-search span { display: grid; width: 1.1rem; height: 1.1rem; flex: none; place-items: center; color: #a9bbff; }
.seo-catalogue-search svg { width: 1rem; height: 1rem; }
.seo-catalogue-search input,
.seo-catalogue-select select {
  width: 100%; min-width: 0; border: 0; outline: 0; color: #f7f8ff; background: transparent;
  font: 800 .74rem/1.2 Manrope, Arial, sans-serif;
}
.seo-catalogue-search input::placeholder { color: #969bad; font-weight: 700; }
.seo-catalogue-search input::-webkit-search-cancel-button { filter: invert(1); cursor: pointer; }
.seo-catalogue-select { position: relative; display: grid; gap: .08rem; padding-block: .42rem; }
.seo-catalogue-select > span { color: #9fa6bd; font-size: .55rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.seo-catalogue-select select { cursor: pointer; font-size: .68rem; }
.seo-catalogue-select option { color: #171923; }
.seo-catalogue-controls button {
  min-height: 3rem; padding: 0 1.15rem; cursor: pointer; border: 0; border-radius: .76rem;
  color: #fff; background: linear-gradient(135deg, #3c5bf0, #243dbb); box-shadow: 0 .55rem 1.2rem rgba(39, 64, 187, .28);
  font: 800 .73rem/1 Manrope, Arial, sans-serif; transition: transform .18s ease, filter .18s ease;
}
.seo-catalogue-controls button:hover { filter: brightness(1.1); transform: translateY(-1px); }
.seo-catalogue-filter__bottom { display: flex; min-height: 2.4rem; flex-wrap: wrap; align-items: center; gap: .55rem .8rem; padding: .65rem .15rem .05rem; }
.seo-catalogue-filter__bottom nav { display: flex; flex-wrap: wrap; gap: .35rem; }
.seo-catalogue-filter__bottom nav a,
.seo-catalogue-filter__bottom > a {
  display: inline-flex; min-height: 2rem; align-items: center; padding: 0 .65rem; border: 1px solid rgba(131, 151, 255, .35); border-radius: .6rem;
  color: #cbd5ff; background: rgba(21, 29, 75, .35); font-size: .64rem; font-weight: 800; text-decoration: none;
}
.seo-catalogue-filter__bottom nav a.is-active { border-color: #4b68ef; color: #fff; background: #2c48ce; }
.seo-catalogue-filter__bottom p { flex: 1; min-width: 12rem; margin: 0; color: #aeb4c7; font-size: .64rem; font-weight: 700; text-align: right; }
.seo-catalogue-filter__bottom > a { margin-left: auto; color: #b6c6ff; background: transparent; }
@media (max-width: 41.99rem) {
  .seo-catalogue-filter { margin: 1rem 0 1.9rem; padding: .55rem; border-radius: .9rem; }
  .seo-catalogue-controls { grid-template-columns: minmax(0, 1fr) auto; }
  .seo-catalogue-search { grid-column: 1 / -1; }
  .seo-catalogue-select { min-width: 0; }
  .seo-catalogue-controls button { min-width: 6.5rem; }
  .seo-catalogue-filter__bottom { align-items: flex-start; padding: .55rem .05rem .05rem; }
  .seo-catalogue-filter__bottom p { order: 3; min-width: 100%; padding: .05rem .15rem; text-align: left; }
  .seo-catalogue-filter__bottom > a { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .seo-catalogue-controls button { transition: none; }
}

/* Contact page: a compact, human support surface rather than an invented
   "office". It also provides an honest regional signal for the online guide. */
.seo-contact {
  margin-top: 1.7rem;
  overflow: hidden;
  border: 1px solid rgba(104, 129, 255, .42);
  border-radius: 1.45rem;
  background: #16171e;
  box-shadow: 0 1.25rem 3.2rem rgba(0, 0, 0, .18);
}
.seo-contact > header {
  position: relative;
  min-height: 18.5rem;
  padding: clamp(1.5rem, 4vw, 3.4rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 89% 20%, rgba(101, 130, 255, .48) 0 1.5%, transparent 32%),
    radial-gradient(circle at 78% 84%, rgba(48, 74, 218, .42), transparent 37%),
    linear-gradient(118deg, #252f8f 0%, #182150 48%, #17181f 84%);
}
.seo-contact > header::after {
  position: absolute;
  right: -3.2rem;
  bottom: -5.8rem;
  width: 19rem;
  height: 19rem;
  border: 1px solid rgba(214, 223, 255, .22);
  border-radius: 50%;
  content: "";
  box-shadow: inset 0 0 0 1.55rem rgba(22, 29, 86, .22), inset 0 0 0 3.4rem rgba(11, 15, 41, .12);
  transform: rotate(-12deg);
  pointer-events: none;
}
.seo-contact > header > * { position: relative; z-index: 1; }
.seo-contact h1 {
  max-width: 40rem;
  margin: 0;
  font-size: clamp(2.15rem, 5.1vw, 4.6rem);
  line-height: 1;
  letter-spacing: -.076em;
}
.seo-contact > header > p:not(.seo-kicker) {
  max-width: 36rem;
  margin: 1.15rem 0 1.45rem;
  color: #e2e6f9;
  font-size: clamp(.87rem, 1.25vw, 1.04rem);
  line-height: 1.68;
}
.seo-contact > header .seo-button {
  width: max-content;
  min-width: 12.8rem;
  padding: 0 1.1rem;
  border: 1px solid rgba(216, 225, 255, .35);
  background: linear-gradient(135deg, #4266fa, #2644c6);
  box-shadow: 0 .75rem 1.8rem rgba(2, 9, 53, .35);
}
.seo-contact__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(113, 133, 239, .24);
}
.seo-contact__facts > div {
  min-height: 8.65rem;
  padding: 1.25rem clamp(.8rem, 2vw, 1.55rem);
  background: linear-gradient(145deg, #1a1b24, #15161d);
}
.seo-contact__facts span {
  display: grid;
  width: 2rem;
  height: 2rem;
  margin-bottom: .82rem;
  place-items: center;
  border: 1px solid rgba(112, 138, 255, .52);
  border-radius: .6rem;
  color: #b8c7ff;
  background: rgba(43, 67, 184, .26);
}
.seo-contact__facts svg { width: 1rem; height: 1rem; }
.seo-contact__facts small { display: block; color: #9ba2b9; font-size: .61rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.seo-contact__facts strong { display: block; margin-top: .34rem; color: #f3f4fa; font-size: .78rem; line-height: 1.35; }
.seo-contact > section {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1.1rem;
  padding: clamp(1.3rem, 3.2vw, 2.25rem) clamp(1.25rem, 4vw, 3.4rem);
  border-top: 1px solid var(--line);
}
.seo-contact > section > span {
  display: grid;
  width: 2.28rem;
  height: 2.28rem;
  place-items: center;
  border: 1px solid rgba(101, 129, 255, .53);
  border-radius: .68rem;
  color: #b7c7ff;
  background: linear-gradient(145deg, #233aa2, #171a2b);
  font-size: .63rem;
  font-weight: 800;
}
.seo-contact h2 { margin: .1rem 0 .52rem; font-size: clamp(1.06rem, 2vw, 1.38rem); letter-spacing: -.052em; }
.seo-contact > section p { max-width: 47rem; margin: 0; color: #c6c9d5; font-size: .82rem; line-height: 1.7; }
.seo-contact__links { display: flex; flex-wrap: wrap; gap: .5rem .9rem; margin-top: .95rem !important; }
.seo-contact__links a { color: #a9bcff; font-size: .72rem; font-weight: 800; text-decoration: none; }
.seo-contact__links a::after { margin-left: .32rem; content: "↗"; }
@media (max-width: 41.99rem) {
  .seo-contact { margin-top: 1.1rem; border-radius: 1.05rem; }
  .seo-contact > header { min-height: 17.2rem; padding: 1.45rem 1.2rem; }
  .seo-contact > header::after { right: -7rem; bottom: -6rem; width: 16rem; height: 16rem; }
  .seo-contact h1 { max-width: 16rem; font-size: 2.35rem; }
  .seo-contact > header > p:not(.seo-kicker) { max-width: 18rem; margin-block: .9rem 1.15rem; font-size: .8rem; }
  .seo-contact > header .seo-button { width: 100%; min-width: 0; }
  .seo-contact__facts > div { min-height: 7.2rem; padding: .9rem .62rem; }
  .seo-contact__facts span { width: 1.72rem; height: 1.72rem; margin-bottom: .55rem; border-radius: .52rem; }
  .seo-contact__facts small { font-size: .5rem; letter-spacing: .02em; }
  .seo-contact__facts strong { font-size: .64rem; }
  .seo-contact > section { grid-template-columns: 2.45rem minmax(0, 1fr); gap: .8rem; padding: 1.2rem; }
  .seo-contact > section > span { width: 1.9rem; height: 1.9rem; border-radius: .56rem; font-size: .57rem; }
  .seo-contact > section p { font-size: .76rem; line-height: 1.62; }
}
@media (prefers-reduced-motion: reduce) {
  .seo-contact * { scroll-behavior: auto; }
}

/* Страница события — компактный decision screen, а не постер на целый экран.
   Обложка остаётся заметной, но дата, цена, язык и выбор сеанса появляются
   в первом спокойном пролистывании. Это правило одинаково для кино и
   повторяющихся шоу. */
.seo-event {
  align-items: start;
}
.seo-event-cover {
  height: clamp(14.5rem, 38vw, 23rem);
  min-height: 0;
}
.seo-event-cover img,
.seo-event-cover--empty {
  height: 100%;
  min-height: 0;
  max-height: none;
  object-position: center;
}
.seo-event-content {
  min-width: 0;
}
.seo-event-price {
  display: grid;
  gap: .14rem;
}
.seo-event-price b {
  color: #fff;
  font: inherit;
}
.seo-event-price small {
  color: #aebeff;
  font-size: .66rem;
  font-weight: 800;
  line-height: 1.25;
}
.seo-event .seo-schedule {
  max-width: 48rem;
  margin: 1.45rem 0 0;
  padding: clamp(.9rem, 2vw, 1.25rem);
  border-radius: 1rem;
  box-shadow: inset 0 1px rgba(255,255,255,.035), 0 .75rem 1.8rem rgba(0,0,0,.11);
}
.seo-event .seo-schedule .seo-section-title {
  margin-bottom: .75rem;
}
.seo-event .seo-schedule__month {
  padding: .58rem;
}
.seo-event .seo-schedule__day {
  min-height: 2.55rem;
}
.seo-event .seo-schedule__panels {
  margin-top: .62rem;
}
.seo-event .seo-schedule__panel {
  padding: .65rem;
}
.seo-event .seo-schedule__slot {
  min-height: 3.1rem;
  padding: .48rem .52rem;
}
.seo-event .seo-schedule__slot em {
  display: grid;
  justify-items: end;
  gap: .08rem;
}
.seo-event .seo-schedule__slot em b {
  color: #dce2ff;
  font: inherit;
}
.seo-event .seo-schedule__slot em small {
  color: #9eb0ff;
  font-size: .54rem;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}
@media (min-width: 42rem) {
  .seo-event {
    grid-template-columns: minmax(16rem, .62fr) minmax(0, 1fr) !important;
  }
  .seo-event-cover {
    height: clamp(20rem, 30vw, 28rem);
  }
  .seo-event-content {
    padding: clamp(1.25rem, 2.8vw, 2rem) !important;
  }
  .seo-event .seo-schedule__months,
  .seo-event .seo-schedule__slots {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 41.99rem) {
  .seo-event-cover {
    height: min(15rem, 62vw);
  }
  .seo-event .seo-schedule {
    margin-top: 1.2rem;
  }
  .seo-event .seo-schedule__day {
    min-height: 2.35rem;
  }
}

/* Detail pages are decision screens.  The poster is its own object, while the
   facts, action and schedule remain a compact readable column beside it. */
.seo-event {
  display:grid;
  gap:1rem;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}
.seo-event-cover {
  margin:0;
  padding:.42rem;
  overflow:hidden;
  border:1px solid rgba(112,132,237,.38);
  border-radius:1.2rem;
  background:linear-gradient(145deg,rgba(48,72,192,.34),rgba(16,18,27,.94));
  box-shadow:0 1rem 2.5rem rgba(0,0,0,.22);
}
.seo-event-cover img,
.seo-event-cover--empty {
  border-radius:.86rem;
  object-fit:contain;
  background:#101218;
}
.seo-event-content {
  border:1px solid var(--line);
  border-radius:1.2rem;
  background:linear-gradient(140deg,rgba(30,33,45,.98),rgba(20,21,28,.98));
  box-shadow:0 1rem 2.5rem rgba(0,0,0,.13);
}
.seo-event h1 {
  max-width:36rem;
  font-size:clamp(1.5rem,3.15vw,2.35rem);
  line-height:1.08;
  letter-spacing:-.055em;
}
.seo-facts {
  margin:1.12rem 0;
  border-radius:1rem;
}
.seo-facts div { min-height:5.35rem; padding:.9rem .95rem; }
.seo-facts dt { margin-bottom:.42rem; font-size:.7rem; }
.seo-facts dd { font-size:.86rem; line-height:1.42; }
.seo-event-price small { font-size:.72rem; color:#aebeff; }
.seo-event-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.seo-event-actions .seo-button { flex:1 1 12rem; min-height:3.2rem; }
.seo-button--secondary { border:1px solid rgba(114,137,255,.58); color:#dce4ff; background:rgba(48,69,181,.16); }
.seo-description { margin-top:1.35rem; }
.seo-description h2 { font-size:1.2rem; }
.seo-description p { font-size:.88rem; line-height:1.7; }
.seo-description__context { margin-top:.7rem!important; color:#aeb6cb!important; }
.seo-event .seo-schedule { max-width:none; margin-top:1.25rem; }
.seo-related { margin-top:2.25rem; }
.seo-related-rail { gap:.85rem!important; }
.seo-related-card {
  width:11.2rem;
  min-width:11.2rem;
  min-height:14.5rem;
  border:1px solid rgba(99,116,177,.38);
  border-radius:1.1rem;
  background:linear-gradient(150deg,rgba(43,59,138,.3),#181a22 58%);
  box-shadow:0 .7rem 1.8rem rgba(0,0,0,.15);
}
.seo-related-card img,.seo-related-card i { height:7.7rem; }
.seo-related-card span { gap:.38rem; padding:.72rem; }
.seo-related-card small { font-size:.62rem; }
.seo-related-card strong { font-size:.8rem!important; }
.seo-related-card em { color:#dce4ff; font-size:.72rem; }

/* A landing must introduce the service and still reveal the catalogue in the
   first scroll; it cannot behave as a billboard. */
.seo-landing-hero { min-height:18.5rem; padding:2rem 2.2rem; }
.seo-landing-hero figure { min-height:14rem; }
.seo-simple-hero { min-height:20rem; padding:2.2rem; }
.seo-simple-hero figure { min-height:14rem; }
@media (min-width:42rem) {
  .seo-event { grid-template-columns:minmax(15.5rem,.54fr) minmax(0,1fr)!important; align-items:start; }
  .seo-event-cover { position:sticky; top:6.15rem; height:clamp(18rem,29vw,24rem); }
  .seo-event-cover img,.seo-event-cover--empty { height:100%; }
  .seo-event-content { padding:clamp(1.2rem,2.4vw,1.8rem)!important; }
  .seo-event .seo-schedule__months { grid-template-columns:minmax(0,1fr); }
  .seo-landing-hero { min-height:19rem; }
}
@media (max-width:41.99rem) {
  .seo-event { gap:.8rem; }
  .seo-event-cover { height:min(13.5rem,58vw); }
  .seo-event-content { padding:1rem!important; }
  .seo-event h1 { font-size:1.65rem; }
  .seo-facts div { min-height:4.85rem; padding:.78rem; }
  .seo-facts dd { font-size:.78rem; }
  .seo-event-actions .seo-button { flex-basis:100%; }
  .seo-event-actions .seo-button--secondary { flex-basis:calc(50% - .28rem); min-height:2.75rem; }
  .seo-description p { font-size:.82rem; }
  .seo-related-card { width:10.4rem; min-width:10.4rem; }
}

/* Факты события читаются как короткий маршрут, а не как таблица. Постер —
   самостоятельная афиша без ещё одной рамки вокруг него. */
.seo-event { gap:clamp(1.15rem, 2.8vw, 2.8rem); }
.seo-event-cover {
  height:auto;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.seo-event-cover img,
.seo-event-cover--empty {
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  border-radius:1.3rem;
  background:transparent;
  object-fit:contain;
}
.seo-event-cover--empty { min-height:16rem; }
.seo-event-content {
  padding:0!important;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.seo-event h1 { max-width:38rem; font-size:clamp(1.65rem,3vw,2.55rem); }
.seo-event-facts {
  display:grid;
  gap:.88rem;
  margin:1.35rem 0 1.55rem;
}
.seo-event-fact {
  display:grid;
  grid-template-columns:3.2rem minmax(0,1fr);
  gap:.8rem;
  align-items:center;
}
.seo-event-fact > span {
  display:grid;
  width:3.2rem;
  height:3.2rem;
  place-items:center;
  border-radius:1rem;
  color:#c8d2ff;
  background:linear-gradient(145deg,rgba(75,101,246,.31),rgba(49,64,147,.16));
  box-shadow:inset 0 1px rgba(255,255,255,.1);
}
.seo-event-fact > span svg { width:1.28rem; height:1.28rem; }
.seo-event-fact > div { display:grid; gap:.16rem; min-width:0; }
.seo-event-fact small {
  color:#9199ad;
  font-size:.67rem;
  font-weight:800;
  letter-spacing:.045em;
  line-height:1.15;
  text-transform:uppercase;
}
.seo-event-fact strong { color:#f5f6fb; font-size:1rem; line-height:1.34; }
.seo-event-fact__price { display:grid; gap:.14rem; }
.seo-event-fact__price b { color:#fff; font-size:1.34rem; line-height:1.08; }
.seo-event-fact__price small { color:#aebeff; font-size:.76rem; letter-spacing:0; text-transform:none; }
.seo-event-actions { margin-top:1.35rem; gap:.56rem; }
.seo-event-actions .seo-button {
  flex:0 0 auto;
  min-height:3.1rem;
  padding:0 1.08rem;
  border-radius:999px;
  gap:.48rem;
  background:linear-gradient(135deg,#3656e6,#2546c7);
  box-shadow:0 .65rem 1.35rem rgba(32,60,197,.22);
}
.seo-event-actions .seo-button--secondary {
  border:1px solid rgba(104,128,239,.48);
  color:#d9e1ff;
  background:rgba(55,79,182,.14);
  box-shadow:none;
}
.seo-event-actions svg { width:1.02rem; height:1.02rem; }
.seo-description { margin-top:1.55rem; }
.seo-description h2 { font-size:1.25rem; }
.seo-description p { max-width:44rem; font-size:.95rem; line-height:1.72; }
.seo-event .seo-schedule {
  max-width:none;
  margin-top:2rem;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.seo-event .seo-schedule .seo-section-title {
  margin-bottom:1rem;
  padding-top:1.35rem;
  border-top:1px solid rgba(143,153,186,.25);
}
.seo-event .seo-schedule__month { padding:0; border:0; border-radius:0; background:transparent; }
.seo-schedule__dates {
  display:flex;
  gap:.48rem;
  overflow-x:auto;
  padding:.1rem .1rem .65rem;
  scrollbar-width:thin;
  scroll-snap-type:x mandatory;
}
.seo-event .seo-schedule__day {
  position:relative;
  display:grid;
  flex:0 0 4.85rem;
  min-height:4.65rem;
  padding:.54rem .48rem;
  border:1px solid rgba(120,135,184,.26);
  border-radius:.95rem;
  background:rgba(26,29,40,.72);
  scroll-snap-align:start;
}
.seo-event .seo-schedule__day small { color:#9da4b5; font-size:.61rem; font-weight:800; letter-spacing:.035em; }
.seo-event .seo-schedule__day b { color:#f2f4ff; font-size:.87rem; line-height:1.18; }
.seo-event .seo-schedule__day em {
  position:absolute;
  top:.38rem;
  right:.38rem;
  display:grid;
  min-width:1.15rem;
  height:1.15rem;
  padding:0 .2rem;
  place-items:center;
  border-radius:99px;
  color:#1732a5;
  background:#b6c5ff;
  font-size:.58rem;
  font-style:normal;
  font-weight:900;
}
.seo-event .seo-schedule__day--available { border-color:rgba(84,111,244,.7); background:linear-gradient(145deg,rgba(56,83,216,.42),rgba(31,35,57,.92)); }
.seo-event .seo-schedule__panels { margin-top:.65rem; }
.seo-event .seo-schedule__panel { padding:0; border:0; border-radius:0; background:transparent; }
.seo-event .seo-schedule__slots { gap:0; }
.seo-event .seo-schedule__slot {
  min-height:4.35rem;
  padding:.72rem 0;
  border:0;
  border-bottom:1px solid rgba(143,153,186,.2);
  border-radius:0;
  background:transparent;
}
.seo-event .seo-schedule__slot:hover { background:linear-gradient(90deg,rgba(46,73,204,.13),transparent); }
.seo-event .seo-schedule__slot em { padding-right:.2rem; }
.seo-card__language { border-radius:999px; padding:.22rem .46rem; font-weight:800; }
.seo-card__language--ru { color:#c4d0ff; border-color:rgba(94,121,250,.48); background:rgba(54,79,215,.2); }
.seo-card__language--en { color:#e0c9ff; border-color:rgba(176,112,245,.42); background:rgba(129,68,188,.16); }
.seo-card__language--hy { color:#ffe0a4; border-color:rgba(231,169,71,.42); background:rgba(179,112,23,.16); }
.seo-card__language--unknown { color:#c0c4ce; border-color:rgba(160,166,179,.3); background:rgba(126,131,143,.12); }
@media (min-width:42rem) {
  .seo-event { grid-template-columns:minmax(17rem,.62fr) minmax(0,1fr)!important; }
  .seo-event-cover { position:sticky; top:6.15rem; align-self:start; max-width:25rem; }
  .seo-event-cover img,.seo-event-cover--empty { height:auto; max-height:calc(100vh - 8rem); }
}
@media (max-width:41.99rem) {
  .seo-event { gap:1.15rem; }
  .seo-event-cover { position:static; height:auto; }
  .seo-event-cover img,.seo-event-cover--empty { height:auto; max-height:20rem; border-radius:1.12rem; }
  .seo-event-fact { grid-template-columns:3rem minmax(0,1fr); gap:.7rem; }
  .seo-event-fact > span { width:3rem; height:3rem; border-radius:.92rem; }
  .seo-event-fact strong { font-size:.94rem; }
  .seo-event-fact__price b { font-size:1.24rem; }
  .seo-event-actions .seo-button { flex:1 1 auto; min-height:3rem; }
  .seo-event-actions .seo-button--secondary { flex:1 1 calc(50% - .3rem); }
  .seo-description p { font-size:.9rem; }
  .seo-event .seo-schedule { margin-top:1.6rem; }
  .seo-event .seo-schedule__day { flex-basis:4.45rem; min-height:4.3rem; }
}

/* Final spacing pass: the event page is a compact two-column decision view,
   with facts arranged in a small field instead of a tall checklist. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.seo-site-search { position:relative; flex:none; }
.seo-site-search summary {
  display:grid; width:2.6rem; height:2.6rem; place-items:center; cursor:pointer;
  border:1px solid rgba(110,135,247,.48); border-radius:.76rem; color:#dbe3ff;
  background:rgba(46,67,174,.13); list-style:none;
}
.seo-site-search summary::-webkit-details-marker { display:none; }
.seo-site-search summary svg { width:1.05rem; height:1.05rem; }
.seo-site-search form {
  position:absolute; z-index:20; top:calc(100% + .55rem); right:0; display:flex; width:min(24rem,calc(100vw - 2rem)); gap:.42rem; padding:.48rem;
  border:1px solid rgba(110,135,247,.48); border-radius:1rem;
  background:linear-gradient(145deg,#1f2d73,#11131b 74%); box-shadow:0 1rem 2.4rem rgba(0,0,0,.38);
}
.seo-site-search label { min-width:0; flex:1; }
.seo-site-search input { width:100%; min-height:2.52rem; padding:0 .72rem; border:1px solid rgba(255,255,255,.11); border-radius:.64rem; outline:0; color:#f4f6ff; background:rgba(4,6,15,.33); font:700 .71rem/1 Manrope,Arial,sans-serif; }
.seo-site-search input:focus { border-color:#8da2ff; }
.seo-site-search button { min-height:2.52rem; padding:0 .78rem; border:0; border-radius:.64rem; color:#fff; cursor:pointer; background:#2e4bd0; font:800 .68rem/1 Manrope,Arial,sans-serif; }

.seo-event { gap:clamp(1.15rem,2vw,1.65rem); }
.seo-event-cover { position:relative; }
.seo-event-cover::before {
  position:absolute; z-index:-1; inset:12% 5% 2%; border-radius:50%;
  background:radial-gradient(ellipse,rgba(49,82,242,.3),transparent 67%); filter:blur(1.45rem); content:"";
}
.seo-event-eyebrow { display:flex; align-items:center; flex-wrap:wrap; gap:.44rem; }
.seo-event-language { display:inline-flex; align-items:center; min-height:1.45rem; padding:0 .46rem; border-radius:999px; font-size:.58rem; letter-spacing:.03em; }
.seo-event-language::before { width:.28rem; height:.28rem; margin-right:.3rem; border-radius:50%; background:currentColor; content:""; }
.seo-event-language--ru { color:#b9c8ff; background:rgba(63,90,231,.22); }
.seo-event-language--en { color:#e1c7ff; background:rgba(139,77,206,.22); }
.seo-event-language--hy { color:#ffdc9e; background:rgba(181,114,20,.2); }
.seo-event-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.78rem 1.35rem; max-width:46rem; margin:1.3rem 0 1.48rem; }
.seo-event-fact { grid-template-columns:2.5rem minmax(0,1fr); gap:.62rem; }
.seo-event-fact > span { width:2.5rem; height:2.5rem; border-radius:.8rem; }
.seo-event-fact > span svg { width:1.04rem; height:1.04rem; }
.seo-event-fact small { font-size:.61rem; }
.seo-event-fact strong { font-size:.94rem; }
.seo-event-fact--price { align-items:center; }
.seo-event-fact__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:.22rem .52rem; }
.seo-event-fact__price b { font-size:1.24rem; white-space:nowrap; }
.seo-event-fact__price small { font-size:.74rem; white-space:nowrap; }
.seo-event-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:35rem; margin-top:1.2rem; gap:.55rem; }
.seo-event-actions .seo-button { width:100%; min-height:2.85rem; padding:0 .72rem; border-radius:.76rem; font-size:.73rem; }
.seo-event-actions .seo-button--secondary { color:#fff; background:linear-gradient(135deg,#3656e6,#2546c7); box-shadow:0 .65rem 1.35rem rgba(32,60,197,.22); }
.seo-event .seo-description { max-width:48rem; margin-top:1.45rem; }
.seo-event .seo-description p { font-size:.91rem; }
.seo-event .seo-event-links a { text-decoration:none; }
@media (min-width:42rem) {
  .seo-event { grid-template-columns:minmax(18rem,25rem) minmax(0,1fr)!important; }
  .seo-event-cover { max-width:25rem; }
}
@media (max-width:41.99rem) {
  /* A search sheet must stay inside a narrow viewport.  The old negative
     offset made the right edge disappear behind Safari's viewport chrome.
     It is a viewport sheet rather than an oversized tooltip from the small
     header icon, so neither side can be clipped. */
  .seo-site-search summary { width:2.75rem; height:2.75rem; }
  .seo-site-search[open] form { position:fixed; top:calc(4.6rem + .42rem); right:.5rem; left:.5rem; width:auto; }
  .seo-event-facts { gap:.68rem .82rem; }
  .seo-event-fact { grid-template-columns:2.35rem minmax(0,1fr); gap:.52rem; }
  .seo-event-fact > span { width:2.35rem; height:2.35rem; border-radius:.72rem; }
  .seo-event-fact strong { font-size:.85rem; }
  .seo-event-fact__price b { font-size:1.08rem; }
  .seo-event-fact__price small { font-size:.66rem; }
  .seo-event-actions { max-width:none; }
}
@media (max-width:25rem) {
  /* On 375–400 px phones two metadata columns turn venue names into a
     word-by-word ladder.  Preserve the compact desktop grid, but use one
     readable rhythm at the smallest breakpoint. */
  .seo-event-facts { grid-template-columns:1fr; gap:.7rem; }
}

/* Related events are a calm media rail: no inherited link underlines, and a
   stable baseline makes the cost immediately comparable while swiping. */
.seo-related-card { color:#fff!important; text-decoration:none!important; }
.seo-related-card *, .seo-related-card:hover { text-decoration:none!important; }
.seo-related-card span { grid-template-rows:auto minmax(2.15rem,1fr) auto; align-content:stretch; gap:.42rem; }
.seo-related-card small { display:flex; align-items:center; gap:.26rem; color:#aebeff; font-size:.6rem; font-weight:750; line-height:1.25; }
.seo-related-card small::before { width:.42rem; height:.42rem; border:1px solid currentColor; border-radius:50%; content:""; }
.seo-related-card strong { color:#fff!important; font-size:.84rem!important; line-height:1.25; }
.seo-related-card em { align-self:end; color:#fff; font-size:.79rem; }

/* The bot callout becomes a lightweight product preview, not a dense block
   of sales copy. The phone is a CSS mock of our own bot interface, so no
   external screenshot or extra request is needed. */
.seo-telegram { grid-template-columns:minmax(0,1.1fr) minmax(10rem,.44fr) minmax(12rem,.52fr); gap:clamp(1rem,2.8vw,3rem); align-items:center; padding:clamp(1.35rem,3vw,2.4rem); overflow:hidden; border-color:rgba(99,126,255,.28); }
.seo-telegram__text { max-width:34rem; }
.seo-telegram h2 { margin:.35rem 0 .78rem; font-size:clamp(1.35rem,2vw,1.85rem); }
.seo-telegram > div > p { max-width:32rem; margin-bottom:1rem; font-size:.82rem; line-height:1.58; }
.seo-telegram__list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.seo-telegram__list li { gap:.42rem; }
.seo-telegram__list span { font-size:.67rem; line-height:1.38; }
.seo-telegram__list b { font-size:.7rem; }
.seo-telegram__phone { position:relative; width:min(100%,12.3rem); min-height:20rem; justify-self:center; padding:.65rem .55rem .7rem; overflow:hidden; border:5px solid #080a12; border-radius:1.75rem; color:#eaf0ff; background:linear-gradient(160deg,#253c9d,#182159 42%,#0e142f); box-shadow:0 1rem 2.6rem rgba(0,0,0,.35),0 0 2.7rem rgba(45,81,244,.2); }
.seo-telegram__phone::after { position:absolute; top:.28rem; left:50%; width:4.2rem; height:.82rem; border-radius:0 0 .7rem .7rem; background:#080a12; content:""; transform:translateX(-50%); }
.seo-telegram__phone-top { display:flex; gap:.18rem; margin:.22rem 0 1rem .28rem; }
.seo-telegram__phone-top i { width:.18rem; height:.18rem; border-radius:50%; background:#9eb0ff; }
.seo-telegram__phone-head { display:grid; gap:.04rem; padding:.45rem .5rem .65rem; border-radius:.65rem; background:rgba(255,255,255,.08); }
.seo-telegram__phone-head b { font-size:.67rem; }.seo-telegram__phone-head small { color:#b9c8ff; font-size:.52rem; }
.seo-telegram__bubble { width:88%; margin:.8rem .18rem .55rem auto; padding:.58rem .62rem; border-radius:.72rem .72rem .18rem .72rem; color:#d9e2ff; background:rgba(8,14,49,.72); font-size:.58rem; font-weight:700; line-height:1.35; }
.seo-telegram__bubble span { display:block; margin-top:.15rem; color:#8ea5ff; font-size:.49rem; text-align:right; }
.seo-telegram__event { display:grid; grid-template-columns:2.15rem minmax(0,1fr); gap:.45rem; align-items:center; padding:.52rem; border-radius:.68rem; background:linear-gradient(135deg,rgba(75,105,245,.8),rgba(49,72,193,.55)); box-shadow:0 .45rem 1rem rgba(5,9,32,.28); }
.seo-telegram__event>i { display:grid; place-items:center; padding:.28rem; border-radius:.44rem; color:#15288c; background:#fff; font-size:.76rem; font-style:normal; font-weight:900; line-height:.82; }.seo-telegram__event i small { font-size:.38rem; }
.seo-telegram__event>span { display:grid; gap:.14rem; min-width:0; }.seo-telegram__event b { overflow:hidden; font-size:.54rem; white-space:nowrap; text-overflow:ellipsis; }.seo-telegram__event small { color:#d7e0ff; font-size:.46rem; }
.seo-telegram__bubble--blue { width:76%; margin-left:.15rem; border-radius:.72rem .72rem .72rem .18rem; color:#fff; background:#3152df; }
.seo-telegram__cursor { position:absolute; z-index:2; right:-.18rem; bottom:3.2rem; display:grid; width:2rem; height:2rem; place-items:center; border-radius:50%; color:#fff; background:#4264f1; box-shadow:0 .35rem 1rem rgba(0,0,0,.25); font-size:1.2rem; animation:seo-cursor-pulse 2.7s ease-in-out infinite; }
.seo-telegram__action { min-width:0; justify-items:stretch; }.seo-telegram__action .seo-button { min-height:3rem; border-radius:.78rem; font-size:.73rem; }.seo-telegram__action small { text-align:center; }
@keyframes seo-cursor-pulse { 0%,100% { transform:translate(0,0) rotate(-17deg); } 50% { transform:translate(-.55rem,-.6rem) rotate(5deg); } }
@media (max-width:52rem) { .seo-telegram { grid-template-columns:minmax(0,1fr) minmax(10rem,.5fr); }.seo-telegram__action { grid-column:1/-1; justify-items:start; }.seo-telegram__list { grid-template-columns:1fr; } }
@media (max-width:41.99rem) { .seo-telegram { grid-template-columns:1fr; padding:1.25rem; }.seo-telegram__phone { min-height:15.5rem; }.seo-telegram__action { justify-items:stretch; }.seo-telegram__list { grid-template-columns:1fr; }.seo-telegram__cursor { animation:none; } }
@media (prefers-reduced-motion:reduce) { .seo-telegram__cursor { animation:none; } }

/* Catalogue: the category/date rail already performs quick selection. Search
   moved into the global header, so there is no second boxed control room. */
.seo-catalogue-filter { display:none; }
.seo-landing-hero { min-height:12.8rem; padding:1.75rem 2rem; }
.seo-landing-hero figure { min-height:10.5rem; transform:none; }
.seo-landing-hero h1 { font-size:clamp(2.2rem,4.1vw,3.65rem); }
.seo-landing-hero > div:not(.seo-hero__stats) { font-size:.9rem; }
.seo-landing-hero .seo-hero__stats { margin-top:1rem!important; }
@media (max-width:41.99rem) { .seo-landing-hero { padding:1.25rem .95rem .85rem; }.seo-landing-hero figure { height:6.8rem; min-height:6.8rem; margin-top:.85rem; } }

/* Audit correction: the catalogue hero must tease the catalogue below it,
   rather than turn a single city photograph into a first-screen billboard. */
@media (min-width:42rem) {
  .seo-landing-hero { min-height:0; height:17.25rem; padding:1.55rem 2rem; }
  .seo-landing-hero figure { height:13.9rem; min-height:0; align-self:center; }
  .seo-landing-hero figure img { height:100%; }
  .seo-landing-hero h1 { font-size:clamp(2.15rem,3.6vw,3.35rem); }
  .seo-landing-hero > div:not(.seo-hero__stats) { max-width:38rem; font-size:.86rem; line-height:1.5; }
  .seo-landing-hero .seo-hero__stats { margin-top:.78rem!important; }
  .seo-landing-hero .seo-hero__stats span,.seo-landing-hero .seo-hero__stats a { min-height:2.15rem; font-size:.67rem; }
  .seo-event-cover { position:sticky; top:6.15rem; }
}

/* Detail-page refinement: poster and copy are two independent surfaces, not a
   large framed dashboard.  The copy starts nearer to the poster and uses the
   spare desktop width for actual decisions rather than another column of UI. */
@media (min-width:42rem) {
  .seo-event { grid-template-columns:minmax(18rem,22rem) minmax(0,1fr)!important; gap:clamp(.9rem,1.55vw,1.35rem); }
  .seo-event-content { padding-top:.45rem; }
  .seo-event-content h1 { max-width:48rem; font-size:clamp(2rem,3.25vw,3.05rem); }
  .seo-event-facts { max-width:none; grid-template-columns:repeat(2,minmax(14rem,1fr)); gap:.85rem 1.65rem; }
  .seo-event-fact { grid-template-columns:2.28rem minmax(0,1fr); gap:.58rem; }
  .seo-event-fact > span { width:2.28rem; height:2.28rem; border-radius:.72rem; }
  .seo-event-fact > span svg { width:.98rem; height:.98rem; }
  .seo-event-fact strong { font-size:.98rem; }
  .seo-event-fact__price { justify-content:space-between; gap:.2rem .8rem; }
  .seo-event-fact__price b { font-size:1.3rem; }
  .seo-event-fact__price small { margin-left:auto; font-size:.72rem; }
  .seo-event-actions { max-width:42rem; }
}

/* Related cards share a baseline for the date, title and price.  They are
   media tiles rather than a horizontal pile of underlined text links. */
.seo-related-card span { min-height:5.7rem; }
.seo-related-card strong { min-height:2.1rem; }
.seo-related-card em { display:flex; min-height:1.25rem; align-items:flex-end; }

/* The Telegram invitation is a product preview with a clear reading path:
   what changes, a tiny familiar bot screen, and one action. */
@media (min-width:53rem) {
  .seo-telegram { grid-template-columns:minmax(0,1.25fr) minmax(10rem,.42fr) minmax(12.5rem,.5fr); gap:clamp(1.35rem,3vw,3.35rem); }
  .seo-telegram__text > p:not(.seo-kicker) { max-width:37rem; margin-bottom:1.2rem; }
  .seo-telegram__list { gap:.82rem; }
  .seo-telegram__action { align-self:center; }
}

/* A discovery rail gives the catalogue a second rhythm on wide screens. It is
   editorial navigation, not advertising: every card is an internal route to
   a useful live collection or guide. */
.seo-catalogue-stage { display:grid; gap:clamp(1.25rem,2.8vw,2.75rem); align-items:start; }
.seo-catalogue-stage__main { min-width:0; }
.seo-discovery-rail { display:grid; gap:.75rem; }
.seo-discovery-rail a { position:relative; display:grid; min-height:8rem; align-content:start; gap:.38rem; padding:1rem; overflow:hidden; border-radius:1.1rem; color:#fff; text-decoration:none; }
.seo-discovery-rail a::after { position:absolute; right:-3.7rem; bottom:-4.8rem; width:11rem; height:11rem; border:1px solid rgba(255,255,255,.17); border-radius:50%; box-shadow:0 0 0 1.5rem rgba(255,255,255,.04),0 0 0 3rem rgba(255,255,255,.02); content:""; }
.seo-discovery-rail a>* { position:relative; z-index:1; }
.seo-discovery-rail__lead { min-height:14.8rem!important; padding:1.2rem!important; background:linear-gradient(145deg,#2949d5,#182159 62%,#10121d)!important; box-shadow:0 1rem 2rem rgba(21,47,173,.2); }
.seo-discovery-rail__lead>span,.seo-discovery-rail__card>span { display:grid; width:2.25rem; height:2.25rem; place-items:center; border-radius:.7rem; color:#e4e9ff; background:rgba(255,255,255,.13); }
.seo-discovery-rail svg { width:1rem; height:1rem; }
.seo-discovery-rail small { color:#c9d4ff; font-size:.61rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.seo-discovery-rail strong { max-width:15rem; font-size:1.12rem; line-height:1.08; letter-spacing:-.05em; }
.seo-discovery-rail p { max-width:16rem; margin:.15rem 0 0; color:#e0e5ff; font-size:.69rem; line-height:1.48; }
.seo-discovery-rail b { display:flex; align-items:center; gap:.35rem; margin-top:auto; color:#fff; font-size:.67rem; }
.seo-discovery-rail b svg { width:.88rem; height:.88rem; }
.seo-discovery-rail__card { min-height:10.2rem!important; background:#191b24; border:1px solid rgba(109,130,221,.32); }
.seo-discovery-rail__card--comedy { background:linear-gradient(145deg,#303f92,#191b25 70%)!important; }
.seo-discovery-rail__card--guide { background:linear-gradient(145deg,#1f5369,#191b25 70%)!important; }
.seo-discovery-rail__card--telegram { background:linear-gradient(145deg,#294cdc,#17235d 60%,#11131d)!important; box-shadow:0 .8rem 1.75rem rgba(28,55,190,.18); }
@media (min-width:72rem) {
  .seo-catalogue-stage { grid-template-columns:minmax(0,1fr) 17rem; }
  .seo-catalogue-stage__main .seo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .seo-catalogue-stage__main .seo-card__link { grid-template-columns:9.4rem minmax(0,1fr); min-height:12rem; }
  .seo-catalogue-stage__main .seo-card img,.seo-catalogue-stage__main .seo-card__image { min-height:12rem; }
}
@media (max-width:71.99rem) {
  .seo-discovery-rail { grid-auto-flow:column; grid-auto-columns:minmax(14.5rem,74%); grid-template-columns:none; overflow-x:auto; margin-right:-1rem; padding:0 1rem .35rem 0; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .seo-discovery-rail a { min-height:9.4rem!important; scroll-snap-align:start; }
  .seo-discovery-rail__lead { min-height:11rem!important; }
}

/* Long category rails deliberately stay horizontal: a clipped last chip used
   to look broken rather than scrollable.  A soft edge is enough of a cue and
   does not introduce another control or outline. */
.seo-nav {
  scroll-padding-inline:.65rem;
  -webkit-mask-image:linear-gradient(90deg,#000 0, #000 calc(100% - 2.9rem), transparent 100%);
  mask-image:linear-gradient(90deg,#000 0, #000 calc(100% - 2.9rem), transparent 100%);
}
.seo-nav a:last-child { margin-right:2.9rem; }

/* Tiny editorial entrance gives the first recommendations a sense of being
   curated, without making the catalogue jump or costing a JS animation loop. */
@media (prefers-reduced-motion:no-preference) {
  .seo-editorial-picks .seo-card { animation:seo-card-arrival .38s both cubic-bezier(.2,.8,.2,1); }
  .seo-editorial-picks .seo-card:nth-child(2) { animation-delay:.055s; }
  .seo-editorial-picks .seo-card:nth-child(3) { animation-delay:.11s; }
  .seo-editorial-picks .seo-card:nth-child(4) { animation-delay:.165s; }
}
@keyframes seo-card-arrival { from { opacity:0; transform:translateY(.55rem); } to { opacity:1; transform:translateY(0); } }

/* Editorial guides should invite a route, not consume the entire opening
   screen.  Keep the city image as a real visual anchor while matching the
   compact, action-first rhythm of the live catalogue. */
@media (min-width:42rem) {
  .seo-guide-hero { min-height:0; height:22.5rem; padding:2.15rem; gap:clamp(1.35rem,3vw,3.2rem); }
  .seo-guide-hero h1 { max-width:35rem; font-size:clamp(2.15rem,3.65vw,3.7rem); }
  .seo-guide-hero > div > p:not(.seo-kicker) { margin-top:.78rem; font-size:.87rem; line-height:1.52; }
  .seo-guide-hero figure { height:16rem; align-self:center; transform:rotate(1.1deg); }
  .seo-guide-hero__actions { margin-top:1rem; }
  .seo-guide-hero__actions a { min-height:2.7rem; font-size:.7rem; }
}
@media (max-width:41.99rem) {
  .seo-guide-hero { padding:1.4rem .95rem .85rem; }
  .seo-guide-hero h1 { font-size:2rem; }
  .seo-guide-hero > div > p:not(.seo-kicker) { margin-top:.7rem; font-size:.82rem; line-height:1.48; }
  .seo-guide-hero figure { height:9.5rem; margin:.95rem .12rem 0; transform:none; }
  .seo-guide-hero__actions { margin-top:1rem; }
  .seo-guide-hero__actions a { min-height:2.6rem; padding:0 .78rem; font-size:.67rem; }
}

/* Venue pages end their opening fact area with two purposeful routes instead
   of a visually empty lower half.  The primary action follows the site CTA
   language; Telegram is present, but never competes with the event list. */
.seo-venue__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-top:1.45rem; }
.seo-venue__actions .seo-button { min-width:10.8rem; min-height:2.7rem; padding:0 .88rem; border-radius:.78rem; font-size:.7rem; white-space:nowrap; }
.seo-venue__actions > a:not(.seo-button) { display:inline-flex; min-height:2.7rem; align-items:center; padding:0 .3rem; color:#b8c8ff; font-size:.7rem; font-weight:800; text-decoration:none; }
.seo-venue__actions > a:not(.seo-button)::after { margin-left:.36rem; content:"↗"; }
@media (max-width:41.99rem) { .seo-venue__actions { margin-top:1.2rem; }.seo-venue__actions .seo-button { flex:1 1 12rem; }.seo-venue__actions > a:not(.seo-button) { min-height:2.4rem; } }

/* Topic guides inherit the same compact editorial rhythm as the catalogue.
   They still carry a real city image and useful links, but do not turn an
   answer to a search query into a billboard before the article begins. */
@media (min-width:42rem) {
  .seo-topic-hero { min-height:0; height:23rem; margin:1.25rem 0 2.7rem; padding:2.15rem; gap:clamp(1.3rem,3vw,3.2rem); }
  .seo-topic-hero h1 { max-width:38rem; font-size:clamp(2.15rem,3.75vw,3.8rem); }
  .seo-topic-hero > div > p:not(.seo-kicker) { margin-top:.75rem; font-size:.86rem; line-height:1.52; }
  .seo-topic-hero figure { min-height:0; height:16rem; align-self:center; transform:rotate(1.1deg); }
  .seo-topic-hero .seo-topic-guide__links { margin-top:1rem; }
  .seo-topic-hero .seo-topic-guide__links a { min-height:2.55rem; padding:.5rem .78rem; font-size:.66rem; }
  .seo-topic-hero__facts { margin-top:.85rem; }
}
@media (max-width:41.99rem) {
  .seo-topic-hero { margin:1rem 0 2.1rem; padding:1.4rem .95rem .85rem; }
  .seo-topic-hero h1 { font-size:2rem; }
  .seo-topic-hero > div > p:not(.seo-kicker) { margin-top:.7rem; font-size:.82rem; line-height:1.48; }
  .seo-topic-hero figure { min-height:0; height:9.5rem; margin:.95rem .12rem .05rem; transform:none; }
  .seo-topic-hero .seo-topic-guide__links { gap:.45rem; margin-top:1rem; }
  .seo-topic-hero .seo-topic-guide__links a { min-height:2.45rem; padding:.45rem .66rem; font-size:.63rem; }
  .seo-topic-hero__facts { margin-top:.8rem; }
}
/* The fixed header already owns the global Telegram conversion.  A duplicate
   third action here forced a lonely mobile row below the article CTA. */
.seo-topic-hero .seo-topic-guide__links a:nth-child(3) { display:none; }

/* Tablets sit between the roomy desktop nav and the touch-first phone header.
   Keeping the full desktop menu at 768 px made its last item collide with
   search.  The compact pattern preserves the same routes behind one clear
   control, while search and the Telegram conversion remain one tap away. */
@media (min-width:42rem) and (max-width:52rem) {
  .seo-site-header { min-height:4.75rem; justify-content:space-between; gap:.62rem; }
  .seo-site-header .seo-site-nav { display:none; }
  .seo-site-header .seo-site-nav__telegram { min-height:2.55rem; margin-left:auto; padding:0 .78rem!important; border-radius:.72rem; font-size:.68rem!important; }
  .seo-site-search summary { width:2.55rem; height:2.55rem; }
  .seo-mobile-menu { position:relative; display:block; flex:none; }
  .seo-mobile-menu summary { display:grid; width:2.55rem; height:2.55rem; place-content:center; gap:.23rem; cursor:pointer; border:1px solid rgba(104,130,255,.5); border-radius:.72rem; background:#181b29; list-style:none; }
  .seo-mobile-menu summary::-webkit-details-marker { display:none; }
  .seo-mobile-menu summary span { display:block; width:1rem; height:2px; border-radius:9px; background:#e8ebff; transition:transform .18s ease,opacity .18s ease; }
  .seo-mobile-menu[open] summary span:first-child { transform:translateY(.44rem) rotate(45deg); }
  .seo-mobile-menu[open] summary span:nth-child(2) { opacity:0; }
  .seo-mobile-menu[open] summary span:last-child { transform:translateY(-.44rem) rotate(-45deg); }
  .seo-mobile-menu nav { position:absolute; z-index:30; top:calc(100% + .55rem); right:0; display:grid; width:min(23rem,calc(100vw - 2rem)); grid-template-columns:1fr 1fr; gap:.32rem; padding:.62rem; border:1px solid rgba(103,130,255,.55); border-radius:1rem; background:linear-gradient(145deg,#202d75,#12141d 70%); box-shadow:0 1.2rem 2.8rem rgba(0,0,0,.42); }
  .seo-mobile-menu nav a { min-height:3rem; display:flex; align-items:center; padding:.58rem .66rem; border:1px solid rgba(255,255,255,.09); border-radius:.65rem; color:#edf0ff; background:rgba(7,9,22,.22); font-size:.68rem; font-weight:800; line-height:1.22; text-decoration:none; }
  .seo-mobile-menu nav a:first-child { grid-column:1/-1; color:#fff; background:#2947cf; }
}

/* Decorative motion is deliberately sparse; when a visitor asks the system
   for less motion, that preference must win over every card hover, panel and
   mockup transition — not only over the few keyframe animations. */
@media (prefers-reduced-motion:reduce) {
  .seo-page *, .seo-page *::before, .seo-page *::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
