/*
 * Дворец культуры • v21 — continuous cultural canvas
 * One atmosphere, not five competing colour blocks.
 * PUBLIC ONLY. Kept separate from admin; no content or script changes.
 * Stage colours remain in POSTERS, not entire page backgrounds.
 */
.dk-public-shell {
  --culture-ink:#17213a;
  --culture-muted:#58647d;
  --culture-accent:#6258d9;
  --culture-accent-soft:#eeeaff;
  --culture-edge:rgba(113,103,168,.16);
  --culture-card:rgba(255,255,255,.95);
  --culture-elev:0 15px 36px rgba(38,31,89,.07),0 2px 9px rgba(38,31,89,.025);
  --culture-line-color:#a895e5;
  color:var(--culture-ink);
  background:#faf9fd;
  overflow-x:clip;
}
.dk-public-shell.dk-theme-dark {
  --culture-ink:#f5f3ff;
  --culture-muted:#c1bfd5;
  --culture-accent:#b8a7ff;
  --culture-accent-soft:#302b4c;
  --culture-edge:rgba(191,180,244,.17);
  --culture-card:rgba(37,36,62,.94);
  --culture-elev:0 19px 41px rgba(5,6,21,.22),0 2px 8px rgba(5,6,21,.10);
  --culture-line-color:#7e75be;
  color:var(--culture-ink);
  background:#171a2c;
}
.dk-public-shell .dk-public-main {position:relative;min-width:0;}
/* Main page is ONE long painted canvas, shared by EVERY section. */
.dk-public-shell.dk-theme-light .dk-route-home {
  background:
    radial-gradient(ellipse 68% 17% at 9% 8%, rgba(209,188,252,.22),transparent 81%),
    radial-gradient(ellipse 48% 19% at 96% 46%, rgba(224,196,239,.13),transparent 84%),
    radial-gradient(ellipse 60% 18% at 8% 81%, rgba(233,202,220,.12),transparent 87%),
    linear-gradient(180deg,#fcfaff 0%,#fcfbff 19%,#fbfaff 44%,#fefcff 74%,#faf9ff 100%);
}
.dk-public-shell.dk-theme-dark .dk-route-home {
  background:
    radial-gradient(ellipse 63% 18% at 11% 11%, rgba(111,82,186,.13),transparent 82%),
    radial-gradient(ellipse 57% 15% at 96% 54%, rgba(131,86,159,.095),transparent 84%),
    radial-gradient(ellipse 63% 18% at 11% 87%, rgba(112,87,170,.075),transparent 82%),
    linear-gradient(180deg,#191a30 0%,#1b1b32 40%,#1b1d34 72%,#191b31 100%);
}
/* Remove all sectional tints from previous versions (including v19 event section).
   Transparency reveals the SAME base colour behind every section. */
.dk-public-shell .dk-route-home > section:not(:first-child),
.dk-public-shell .dk-route-home > .dk-home-afisha,
.dk-public-shell .dk-route-home .dk-culture-news,
.dk-public-shell .dk-route-home .dk-culture-collectives,
.dk-public-shell .dk-route-home .dk-culture-about,
.dk-public-shell .dk-route-home .dk-culture-partners,
.dk-public-shell .dk-route-home .dk-culture-voting,
.dk-public-shell.dk-theme-light .dk-route-home .dk-home-afisha--adaptive.dk-afisha-editorial:not(.dk-home-afisha--dark),
.dk-public-shell.dk-theme-dark .dk-route-home .dk-home-afisha--adaptive.dk-afisha-editorial.dk-home-afisha--dark {
  background:transparent!important;
  background-image:none!important;
  border-color:transparent!important;
}
/* Remove old event-stage gradient pseudo. Poster colour ambience stays local to media. */
.dk-public-shell .dk-route-home .dk-home-afisha--adaptive.dk-afisha-editorial::before {
  background:none!important;
  opacity:0!important;
}
.dk-public-shell .dk-route-home > section {position:relative;isolation:isolate;}
/* One recurring texture language, not a different illustration per block. */
.dk-public-shell .dk-culture-news::after,
.dk-public-shell .dk-culture-collectives::after,
.dk-public-shell .dk-culture-about::after {
  content:"";position:absolute;z-index:0;pointer-events:none;
  -webkit-mask-image:url('/assets/culture-palace-line-v20.svg');
  mask-image:url('/assets/culture-palace-line-v20.svg');
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain;
  background:var(--culture-line-color);
  opacity:.075;
  width:min(48vw,640px);
  height:min(30vw,350px);
}
.dk-public-shell .dk-culture-news::after {left:-8%;bottom:-9%;transform:scaleX(-1);}
.dk-public-shell .dk-culture-collectives::after {right:-6%;top:0;}
.dk-public-shell .dk-culture-about::after {right:-5%;top:9%;}
.dk-public-shell.dk-theme-dark .dk-culture-news::after,
.dk-public-shell.dk-theme-dark .dk-culture-collectives::after,
.dk-public-shell.dk-theme-dark .dk-culture-about::after {opacity:.075;}
.dk-public-shell .dk-culture-news > .container,
.dk-public-shell .dk-culture-collectives > .container,
.dk-public-shell .dk-culture-about > .container,
.dk-public-shell .dk-culture-partners > .container,
.dk-public-shell .dk-culture-voting > .container {position:relative;z-index:1;}
/* Delicate separators appear only on the shared canvas: not heavy horizontal stripes. */
.dk-public-shell .dk-culture-news::before,
.dk-public-shell .dk-culture-collectives::before,
.dk-public-shell .dk-culture-about::before,
.dk-public-shell .dk-culture-partners::before,
.dk-public-shell .dk-culture-voting::before {
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(83%,1140px);height:1px;z-index:1;
  background:linear-gradient(90deg,transparent,var(--culture-edge) 15%,var(--culture-edge) 85%,transparent);
}
/* Consistent proportions / rhythm across the whole visit. */
@media(min-width:768px) {
 .dk-public-shell .dk-route-home .dk-culture-news,
 .dk-public-shell .dk-route-home .dk-culture-collectives,
 .dk-public-shell .dk-route-home .dk-culture-about {padding-block:clamp(54px,5.4vw,76px)!important;}
 .dk-public-shell .dk-route-home .dk-culture-partners,
 .dk-public-shell .dk-route-home .dk-culture-voting {padding-block:clamp(40px,4.5vw,64px)!important;}
 .dk-public-shell .dk-culture-news .container > div:first-of-type,
 .dk-public-shell .dk-culture-collectives .container > div:first-of-type {margin-bottom:clamp(24px,3vw,34px)!important;}
}
@media(max-width:767px) {
 .dk-public-shell .dk-route-home .dk-culture-news,
 .dk-public-shell .dk-route-home .dk-culture-collectives,
 .dk-public-shell .dk-route-home .dk-culture-about {padding-block:45px!important;}
 .dk-public-shell .dk-culture-news::after,
 .dk-public-shell .dk-culture-collectives::after,
 .dk-public-shell .dk-culture-about::after {width:78vw;height:200px;opacity:.05;}
 .dk-public-shell .dk-culture-news .grid {gap:18px;}
}
/* Typography speaks one language. No section-specific colourful headline bars. */
.dk-public-shell .dk-route-home .dk-culture-news h2,
.dk-public-shell .dk-route-home .dk-culture-collectives h2,
.dk-public-shell .dk-route-home .dk-culture-about h2 {
  color:var(--culture-ink)!important;
  letter-spacing:-.035em;
  line-height:1.12;
}
.dk-public-shell .dk-route-home .dk-culture-news h2::before,
.dk-public-shell .dk-route-home .dk-culture-collectives h2::before {
  content:"";display:block;width:48px;height:3px;border-radius:3px;
  margin:0 0 16px;
  background:linear-gradient(90deg,#7163e9,#c1a4e9);
}
.dk-public-shell .dk-route-home .dk-culture-collectives h2::before {margin:0 auto 16px;}
.dk-public-shell .dk-route-home .dk-culture-news p,
.dk-public-shell .dk-route-home .dk-culture-collectives > .container > div:first-of-type p,
.dk-public-shell .dk-route-home .dk-culture-about p {
  line-height:1.6;
}
/* Uniform elevated editorial cards: content and imagery retain their own colour. */
.dk-public-shell .dk-culture-news article > div,
.dk-public-shell .dk-culture-collectives .home-collectives-card,
.dk-public-shell .dk-culture-about .grid.grid-cols-2 > div {
  background:var(--culture-card)!important;
  border:1px solid var(--culture-edge)!important;
  box-shadow:var(--culture-elev)!important;
  border-radius:22px!important;
  overflow:hidden;
  backdrop-filter:blur(6px);
}
.dk-public-shell .dk-culture-news article:nth-child(n) > div,
.dk-public-shell .dk-culture-about .grid.grid-cols-2 > div:nth-child(n) {border-top:1px solid var(--culture-edge)!important;}
.dk-public-shell .dk-culture-news article img,
.dk-public-shell .dk-culture-collectives .home-collectives-card img {transition:transform .45s ease;}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .dk-public-shell .dk-culture-news article:hover img {transform:scale(1.025);}
 .dk-public-shell .dk-culture-collectives .home-collectives-card:hover img {transform:scale(1.02);}
}
.dk-public-shell.dk-theme-dark .dk-culture-news article h3,
.dk-public-shell.dk-theme-dark .dk-culture-collectives .home-collectives-card h3 {color:var(--culture-ink)!important;}
.dk-public-shell.dk-theme-dark .dk-culture-news article :is(p,time),
.dk-public-shell.dk-theme-dark .dk-culture-collectives .home-collectives-card p {color:var(--culture-muted)!important;}
.dk-public-shell .dk-culture-about .grid.grid-cols-2 > div > div {color:var(--culture-ink)!important;}
.dk-public-shell .dk-culture-about img {border-radius:22px;}
.dk-public-shell .dk-culture-partners .grid > button {border-radius:18px!important;transition:background .2s ease,transform .2s ease;}
.dk-public-shell .dk-culture-partners .grid > button:hover {background:var(--culture-card)!important;transform:translateY(-2px);}
/* Same buttons everywhere; no extraneous vibrant backgrounds. */
.dk-public-shell .dk-route-home .dk-culture-news button,
.dk-public-shell .dk-route-home .dk-culture-collectives button,
.dk-public-shell .dk-route-home .dk-culture-about button {border-radius:13px;}
/* Avoid light unthemed panels in dark mode. */
.dk-public-shell.dk-theme-dark .dk-culture-voting .rounded-2xl,
.dk-public-shell.dk-theme-dark .dk-culture-voting .bg-gray-800 {background:var(--culture-card)!important;border-color:var(--culture-edge)!important;}
/* Keep the surrounding pages on the SAME gentle axis. */
.dk-public-shell.dk-theme-light .dk-public-main:not(.dk-route-home) {
  background:linear-gradient(170deg,#fcfaff 0%,#fdfbff 55%,#fbf9ff 100%);
}
.dk-public-shell.dk-theme-dark .dk-public-main:not(.dk-route-home) {
  background:linear-gradient(170deg,#191a30 0%,#1b1d34 100%);
}
.dk-public-shell .dk-public-main:not(.dk-route-home) > div[class*="min-h-screen"] {background:transparent!important;}
.dk-public-shell .dk-public-main:not(.dk-route-home)::before {
 content:"";position:absolute;inset:0 0 auto auto;width:min(54vw,730px);height:min(28vw,350px);
 background:var(--culture-line-color);opacity:.045;pointer-events:none;z-index:0;
 -webkit-mask:url('/assets/culture-palace-line-v20.svg') center / contain no-repeat;
 mask:url('/assets/culture-palace-line-v20.svg') center / contain no-repeat;
}
.dk-public-shell .dk-public-main:not(.dk-route-home) > div {position:relative;z-index:1;}
/* A clearly defined curtain at the bottom; coherent with the night palette. */
.dk-public-shell > footer {
 position:relative;isolation:isolate;overflow:hidden;
 background:linear-gradient(160deg,#171a30,#22223d)!important;
 border-top:1px solid rgba(181,167,231,.18);
}
.dk-public-shell > footer::before {
 content:"";position:absolute;right:-5%;bottom:-18%;width:min(55vw,660px);height:min(26vw,300px);
 pointer-events:none;z-index:0;background:#aaa0db;opacity:.075;
 -webkit-mask:url('/assets/culture-palace-line-v20.svg') center / contain no-repeat;
 mask:url('/assets/culture-palace-line-v20.svg') center / contain no-repeat;
}
.dk-public-shell > footer > * {position:relative;z-index:1;}
.dk-public-shell.dk-theme-light > header {background:rgba(255,255,255,.96);border-bottom:1px solid rgba(119,106,178,.13);}
.dk-public-shell.dk-theme-dark > header {background:rgba(22,24,42,.96);border-bottom:1px solid rgba(176,158,222,.14);}
.dk-public-shell :is(button,a,input,select,textarea):focus-visible {outline:3px solid var(--culture-accent);outline-offset:3px;}
@media (prefers-reduced-motion:reduce) {
 .dk-public-shell .dk-culture-news article img,
 .dk-public-shell .dk-culture-collectives .home-collectives-card img,
 .dk-public-shell .dk-culture-partners .grid > button {transition:none!important;transform:none!important;}
}
