/* Общие стили двух вселенных: используются на развилке главной и на странице дизайна.
   На главной действует правило статичного сайта *{animation:none!important},
   поэтому собственные анимации вселенных помечены !important и более точным селектором */
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 700;font-display:swap;src:url(/assets/fonts/playfair-italic-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 700;font-display:swap;src:url(/assets/fonts/playfair-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- вселенная дизайна: музейный зал ---------- */
.ex{position:absolute;inset:0;overflow:hidden;color:#fff;}
.ex-wall{position:absolute;inset:0;background:
  radial-gradient(ellipse 60% 55% at 50% 34%,rgba(124,96,255,.55),rgba(60,38,170,.0) 70%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.022) 0 1px,transparent 1px 110px),
  linear-gradient(#24177A 0%,#1A1059 46%,#110B3B 74%,#0B0727 100%);}
.ex-wall::after{content:"";position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(to bottom,rgba(8,5,26,0),rgba(8,5,26,.7));}
.ex-stage{position:absolute;--u:7px;}
.ex-beam{position:absolute;left:50%;top:calc(var(--u)*-14);width:calc(var(--u)*78);height:calc(var(--u)*104);transform-origin:50% 0;background:linear-gradient(to bottom,rgba(232,224,255,.42),rgba(200,184,255,.16) 55%,rgba(200,184,255,0) 92%);clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);filter:blur(calc(var(--u)*.9));pointer-events:none;}
.ex-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.ex-pool{position:absolute;left:50%;top:calc(var(--u)*74);width:calc(var(--u)*76);height:calc(var(--u)*14);margin-left:calc(var(--u)*-38);background:radial-gradient(closest-side,rgba(210,196,255,.38),rgba(210,196,255,0));pointer-events:none;}
.ex-stand{position:absolute;left:50%;top:calc(var(--u)*12);width:calc(var(--u)*48);margin-left:calc(var(--u)*-24);will-change:transform;}
.ex-case{position:relative;height:calc(var(--u)*38);perspective:calc(var(--u)*90);border:1px solid rgba(255,255,255,.34);border-bottom:0;border-radius:calc(var(--u)*.6) calc(var(--u)*.6) 0 0;background:linear-gradient(rgba(255,255,255,.07),rgba(255,255,255,.02));box-shadow:inset 0 0 calc(var(--u)*4) rgba(190,170,255,.16);}
.ex-case::before{content:"";position:absolute;left:calc(var(--u)*-1);right:calc(var(--u)*-1);top:calc(var(--u)*-1.4);height:calc(var(--u)*1.4);border-radius:calc(var(--u)*.4) calc(var(--u)*.4) 0 0;background:linear-gradient(#F3EFFF,#BFB3EE);}
.ex-art{position:absolute;left:50%;top:50%;width:calc(var(--u)*36);height:calc(var(--u)*22.5);margin:calc(var(--u)*-11.25) 0 0 calc(var(--u)*-18);transform-style:preserve-3d;will-change:transform;}
.ex-site{position:absolute;inset:0;border-radius:calc(var(--u)*1.1);background:#0D0A1E;overflow:hidden;box-shadow:0 0 calc(var(--u)*7) rgba(150,122,255,.55),0 0 0 1px rgba(255,255,255,.12);}
.ex-nav{position:absolute;left:6%;right:6%;top:9%;display:flex;align-items:center;gap:4%;}
.ex-nav b{width:10%;height:calc(var(--u)*.9);border-radius:9px;background:#C3B5FF;}
.ex-nav i{width:9%;height:calc(var(--u)*.45);border-radius:9px;background:rgba(255,255,255,.3);}
.ex-nav em{margin-left:auto;width:16%;height:calc(var(--u)*1.7);border-radius:99px;background:#fff;}
.ex-hero{position:absolute;left:6%;right:6%;top:26%;height:42%;}
.ex-h{position:absolute;left:0;top:8%;width:54%;display:flex;flex-direction:column;gap:calc(var(--u)*.8);}
.ex-h i{display:block;height:calc(var(--u)*1.9);border-radius:calc(var(--u)*.4);background:#F2EFFF;transform-origin:left;}
.ex-h i:nth-child(2){width:80%;background:#8D73FF;}
.ex-h i:nth-child(3){width:46%;}
.ex .ex-h i{animation:exType 8s cubic-bezier(.7,0,.2,1) infinite!important;}
.ex .ex-h i:nth-child(2){animation-delay:.25s!important;}
.ex .ex-h i:nth-child(3){animation-delay:.5s!important;}
@keyframes exType{0%,6%{transform:scaleX(0)}22%,86%{transform:scaleX(1)}100%{transform:scaleX(0)}}
.ex-orb{position:absolute;right:0;top:-12%;width:38%;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 210deg,#6B4CFF,#C3B5FF,#FF6A3D,#FFC2A8,#6B4CFF);}
.ex-orb::after{content:"";position:absolute;inset:17%;border-radius:50%;background:#0D0A1E;}
.ex .ex-orb{animation:exSpin 10s linear infinite!important;}
@keyframes exSpin{to{transform:rotate(1turn)}}
.ex-cards{position:absolute;left:6%;right:6%;bottom:9%;height:20%;display:flex;gap:3%;}
.ex-cards i{flex:1;border-radius:calc(var(--u)*.7);background:#1B1636;border:1px solid rgba(255,255,255,.07);}
.ex-glass{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.16) 41%,transparent 48%);background-size:260% 100%;background-position:120% 0;}
.ex .ex-glass{animation:exGlass 7s ease-in-out infinite!important;}
@keyframes exGlass{0%,55%{background-position:120% 0}85%,100%{background-position:-20% 0}}
.ex-plinth{position:relative;}
.ex-top{height:calc(var(--u)*2.6);margin:0 calc(var(--u)*-2.5);background:linear-gradient(#FFFFFF,#D9D1FA);border-radius:calc(var(--u)*.3);box-shadow:0 calc(var(--u)*.6) calc(var(--u)*1.2) rgba(10,6,40,.35);}
.ex-front{height:calc(var(--u)*27);margin:0 calc(var(--u)*-1.5);background:linear-gradient(90deg,#9E90DE 0%,#E9E4FF 34%,#F6F3FF 50%,#D6CDFA 70%,#8F80D4 100%);display:flex;justify-content:center;padding-top:calc(var(--u)*7);}
.ex-plate{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*.5);height:max-content;padding:calc(var(--u)*1.3) calc(var(--u)*2.8);border-radius:calc(var(--u)*.4);background:linear-gradient(#2A1F6A,#1A1248);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 calc(var(--u)*.4) calc(var(--u)*1) rgba(20,10,60,.35);}
.ex-plate b{font:italic 500 calc(var(--u)*3.5)/1 "Playfair Display",Georgia,serif;color:#fff;white-space:nowrap;}
.ex-plate i{font:500 calc(var(--u)*1.25)/1 "JetBrains Mono",monospace;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);white-space:nowrap;}
.ex-rope{position:absolute;left:50%;top:calc(var(--u)*58);width:calc(var(--u)*100);height:calc(var(--u)*30);margin-left:calc(var(--u)*-50);pointer-events:none;}
.ex-rope svg{position:absolute;left:calc(var(--u)*1.2);right:calc(var(--u)*1.2);top:calc(var(--u)*1.3);width:calc(100% - var(--u)*2.4);height:calc(var(--u)*13);overflow:visible;}
.ex-rope path{fill:none;stroke:#7A2A8F;stroke-width:calc(var(--u)*1.25);stroke-linecap:round;filter:drop-shadow(0 calc(var(--u)*.4) calc(var(--u)*.6) rgba(0,0,0,.4));}
.ex-post{position:absolute;bottom:0;width:calc(var(--u)*2.2);height:calc(var(--u)*25);margin-left:calc(var(--u)*-1.1);border-radius:calc(var(--u)*.6) calc(var(--u)*.6) calc(var(--u)*.2) calc(var(--u)*.2);background:linear-gradient(90deg,#8C7740,#F3E3AE 45%,#B59A55);}
.ex-post::before{content:"";position:absolute;left:50%;top:calc(var(--u)*-1.8);width:calc(var(--u)*3.2);height:calc(var(--u)*3.2);margin-left:calc(var(--u)*-1.6);border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFF6D2,#C8AA5C 55%,#7A6431);}
.ex-post::after{content:"";position:absolute;left:50%;bottom:calc(var(--u)*-.6);width:calc(var(--u)*7);height:calc(var(--u)*1.4);margin-left:calc(var(--u)*-3.5);border-radius:50%;background:radial-gradient(closest-side,#C8AA5C,#6E5A2A);}
.ex-post-l{left:calc(var(--u)*1.2);}
.ex-post-r{left:calc(100% - var(--u)*1.2);}
.ex-note{position:absolute;display:flex;align-items:flex-start;gap:calc(var(--u)*.6);font:400 calc(var(--u)*4.6)/1.05 "Bad Script",cursive;color:#fff;white-space:nowrap;text-align:left;text-shadow:0 2px 14px rgba(20,10,60,.5);pointer-events:none;}
.ex-note span{display:block;}
.ex-arrow{flex:none;width:calc(var(--u)*17);height:auto;overflow:visible;}
.ex-arrow path{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;}
.ex .ex-arrow path{animation:exDraw 1.2s cubic-bezier(.6,0,.2,1) forwards!important;}
.ex .ex-arrow .ex-head{animation-delay:1.05s!important;animation-duration:.35s!important;}
.ex .ex-n2 .ex-arrow path{animation-delay:.5s!important;}.ex .ex-n2 .ex-arrow .ex-head{animation-delay:1.55s!important;}
.ex .ex-n3 .ex-arrow path{animation-delay:.9s!important;}.ex .ex-n3 .ex-arrow .ex-head{animation-delay:1.95s!important;}
@keyframes exDraw{to{stroke-dashoffset:0}}
.ex-n1{left:calc(50% - var(--u)*60);top:calc(var(--u)*2);font-size:calc(var(--u)*6.4);}
.ex-n1 .ex-arrow{width:calc(var(--u)*20);margin-top:calc(var(--u)*3);}
.ex-n2{left:calc(50% + var(--u)*24.5);top:calc(var(--u)*24);color:#D9D0FF;font-size:calc(var(--u)*3.9);}
.ex-n2 .ex-arrow{width:calc(var(--u)*12);order:-1;margin-top:calc(var(--u)*-1);}
.ex-n3{left:calc(50% + var(--u)*27.5);top:calc(var(--u)*47);color:#D9D0FF;font-size:calc(var(--u)*3.9);}
.ex-n3 .ex-arrow{width:calc(var(--u)*12);order:-1;margin-top:calc(var(--u)*-2.5);}
.ex-stage.is-small .ex-n2,.ex-stage.is-small .ex-n3{display:none;}
.ex-stage.is-small .ex-n1{left:calc(50% - var(--u)*58);font-size:calc(var(--u)*7.4);}
/* узкая колонка на телефоне: витрина и постамент во всю высоту, без каната и пометок */
.ex-stage.is-narrow .ex-note,.ex-stage.is-narrow .ex-rope{display:none;}
.ex-stage.is-narrow .ex-stand{top:calc(var(--u)*5);}
.ex-stage.is-narrow .ex-pool{top:calc(var(--u)*76);width:calc(var(--u)*60);margin-left:calc(var(--u)*-30);}
.ex-stage.is-narrow .ex-beam{width:calc(var(--u)*64);}

/* ---------- вселенная автоматизации ---------- */
.mw{position:absolute;inset:0;overflow:hidden;background:#0A0A0A;color:#fff;}
.mw-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(140,255,0,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(140,255,0,.055) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 55% 35%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse 70% 60% at 55% 35%,#000 30%,transparent 80%);}
.mw-glow{position:absolute;width:70vmax;height:70vmax;left:50%;top:30%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(140,255,0,.13),transparent 60%);pointer-events:none;}
.mw canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}

@media (prefers-reduced-motion:reduce){
  .ex .ex-h i,.ex .ex-orb,.ex .ex-glass{animation:none!important;}
  .ex .ex-arrow path{animation:none!important;stroke-dashoffset:0;}
}

/* ---------- трёхмерный музейный зал ---------- */
.gx-cv{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.2s ease;}
.gx-cv.is-ready{opacity:1;}
.gx-notes{position:absolute;inset:0;pointer-events:none;z-index:2;--gx-fs:26px;}
.gx-arrows{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.gx-arrows path{fill:none;stroke:#fff;stroke-width:calc(var(--gx-fs) * .075);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 6px rgba(10,4,40,.7));}
.gx-note{position:absolute;left:0;top:0;font:400 var(--gx-fs)/1.05 "Bad Script",cursive;color:#fff;white-space:nowrap;text-align:left;text-shadow:0 2px 14px rgba(10,4,40,.95),0 0 3px rgba(10,4,40,.8);will-change:transform;}
.gx-note .gx-b2{display:none;}
.gx-note.is-three .gx-b2{display:inline;}
.gx-note.is-one .gx-b1{display:none;}
