/* ===== Страницы направлений ===== */
.dirpage{background:#05040a}
.dir-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.dir-bg i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;animation:drift 18s ease-in-out infinite alternate}
.dir-bg .b1{width:60vw;height:60vw;left:-15vw;top:-20vw;background:radial-gradient(circle,color-mix(in srgb,var(--dc) 70%,transparent),transparent 65%)}
.dir-bg .b2{width:50vw;height:50vw;right:-18vw;top:20vh;background:radial-gradient(circle,rgba(120,70,255,.55),transparent 65%);animation-delay:-6s}
.dir-bg .b3{width:45vw;height:45vw;left:20vw;bottom:-25vw;background:radial-gradient(circle,rgba(40,200,220,.35),transparent 65%);animation-delay:-12s}
@keyframes drift{to{transform:translate(6vw,4vh) scale(1.12)}}
.dir-main{position:relative;z-index:10}
.dir-nav{padding:6px}
.dir-nav a{padding:9px 14px;border-radius:999px;transition:background .3s,color .3s}
.dir-nav a.on{background:rgba(255,255,255,.12);color:#fff}
.dir-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.dir-nav i{display:none}
@media(max-width:700px){.dir-nav .dn-dir{display:none}}

.dir-hero{padding:calc(var(--pad) + 120px) 0 40px}
.back{display:inline-flex;align-items:center;gap:8px;margin-bottom:34px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(10,8,20,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:#fff;transition:border-color .3s,transform .3s}
.back:hover{border-color:var(--dc);transform:translateX(-4px)}
.dir-hero .kick{display:block;color:var(--dc)}
.dir-title{font-size:clamp(30px,6.4vw,92px);margin-top:18px;text-shadow:-3px 0 rgba(255,60,190,.55),3px 0 rgba(60,230,255,.55),0 0 60px color-mix(in srgb,var(--dc) 45%,transparent)}
.dir-sub{margin:18px 0 0;font-size:clamp(22px,2.6vw,38px);font-weight:800;line-height:1.2;letter-spacing:-.01em}
.dir-hero .lead{max-width:760px;font-size:clamp(16px,1.35vw,20px)}
.dir-hero>*{animation:up 1s cubic-bezier(.16,1,.3,1) both}
.dir-hero>*:nth-child(2){animation-delay:.08s}.dir-hero>*:nth-child(3){animation-delay:.16s}.dir-hero>*:nth-child(4){animation-delay:.24s}.dir-hero>*:nth-child(5){animation-delay:.32s}
@keyframes up{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}

/* вкладки */
.dir-services{padding-top:30px}
.tabs{position:sticky;top:calc(var(--pad) + 62px);z-index:20;display:flex;gap:6px;padding:6px;border-radius:18px;overflow-x:auto;scrollbar-width:none;
  background:rgba(10,8,20,.55);border:1px solid var(--line);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);margin-bottom:18px}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;z-index:1;flex:none;padding:14px 18px;border-radius:13px;border:0;background:transparent;cursor:pointer;color:var(--dim);
  font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;transition:color .3s}
.tab[aria-selected=true]{color:#0b0614}
.tab:not([aria-selected=true]):hover{color:#fff}
.tab-ind{position:absolute;z-index:0;top:6px;bottom:6px;left:0;width:0;border-radius:13px;background:linear-gradient(120deg,var(--dc),#b79cff);box-shadow:0 0 24px color-mix(in srgb,var(--dc) 50%,transparent);transition:transform .55s cubic-bezier(.16,1,.3,1),width .55s cubic-bezier(.16,1,.3,1)}
@media(max-width:820px){.tabs{top:calc(var(--pad) + 52px)}}

.svc{display:grid;grid-template-columns:1.05fr 1fr;gap:0;overflow:hidden;min-height:520px}
.svc-media{position:relative;min-height:360px;overflow:hidden}
.svc-media img,.svc-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:mediaIn 1s cubic-bezier(.16,1,.3,1)}
.svc-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(10,8,20,.55)),linear-gradient(0deg,rgba(5,4,10,.55),transparent 40%)}
@keyframes mediaIn{from{opacity:0;transform:scale(1.08);filter:blur(8px) saturate(1.6)}to{opacity:1;transform:none;filter:none}}
.svc-media .scan{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--dc) 35%,transparent),transparent);height:30%;animation:scan 1.1s cubic-bezier(.4,0,.2,1) both}
@keyframes scan{from{transform:translateY(-100%)}to{transform:translateY(400%);opacity:0}}
.svc-media .wv{position:absolute;left:24px;bottom:22px;z-index:3;display:flex;gap:3px;align-items:center;height:30px}
.svc-media .wv i{width:3px;height:100%;border-radius:2px;background:var(--dc);animation:eq 1.1s ease-in-out infinite}
.svc-media .wv i:nth-child(2n){animation-delay:-.4s}.svc-media .wv i:nth-child(3n){animation-delay:-.7s}
.svc-body{padding:clamp(26px,4vw,52px);display:grid;align-content:center;gap:16px}
.svc-body>*{animation:up .8s cubic-bezier(.16,1,.3,1) both}
.svc-body>*:nth-child(2){animation-delay:.06s}.svc-body>*:nth-child(3){animation-delay:.12s}.svc-body>*:nth-child(4){animation-delay:.18s}.svc-body>*:nth-child(5){animation-delay:.24s}.svc-body>*:nth-child(6){animation-delay:.3s}
.svc-tags{display:flex;flex-wrap:wrap;gap:8px}
.chipx{padding:7px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--dc) 60%,transparent);background:color-mix(in srgb,var(--dc) 12%,transparent);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.chipx.g{border-color:var(--line);background:rgba(255,255,255,.05)}
.svc-name{margin:0;font-family:var(--pix);font-weight:400;font-size:clamp(18px,2vw,28px);line-height:1.4;text-transform:uppercase}
.svc-desc{margin:0;font-size:clamp(15px,1.15vw,17px);line-height:1.7;color:rgba(255,255,255,.82)}
.svc-pts{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:10px}
.svc-pts li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:rgba(255,255,255,.88)}
.svc-pts li::before{content:"";flex:none;width:18px;height:10px;margin-top:6px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M1 5q2-4 4 0t4 0 4 0 4 0' fill='none' stroke='%234dffa6' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
.svc-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
@media(max-width:900px){.svc{grid-template-columns:1fr;min-height:0}.svc-media{min-height:260px;aspect-ratio:16/10}.svc-media::after{background:linear-gradient(0deg,rgba(10,8,20,.75),transparent 50%)}.svc-btns .btn{width:100%}}

/* другие направления */
.dir-others{padding:80px 0 10px}
.others{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.oth{position:relative;display:grid;gap:8px;padding:30px;border-radius:24px;overflow:hidden;text-decoration:none;color:#fff;border:1px solid var(--line);min-height:200px;align-content:end;isolation:isolate;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s}
.oth::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--img) center/cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.oth::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,4,10,.2),rgba(5,4,10,.88))}
.oth:hover{transform:translateY(-5px);border-color:var(--oc)}
.oth:hover::before{transform:scale(1.08)}
.oth small{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--oc)}
.oth b{font-family:var(--pix);font-weight:400;font-size:clamp(16px,1.6vw,22px)}
.oth span{color:rgba(255,255,255,.78)}
@media(max-width:760px){.others{grid-template-columns:1fr}}

/* шторка перехода между страницами */
.wipe{position:fixed;inset:0;z-index:100;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--dc,#b79cff) 35%,#05040a),#05040a 70%);
  clip-path:circle(0% at var(--wx,50%) var(--wy,50%));transition:clip-path .75s cubic-bezier(.7,0,.2,1)}
.wipe b{font-family:var(--pix);font-weight:400;font-size:clamp(22px,5vw,64px);letter-spacing:.04em;text-shadow:-3px 0 rgba(255,60,190,.6),3px 0 rgba(60,230,255,.6);opacity:0;transform:scale(.9);transition:opacity .4s .2s,transform .7s cubic-bezier(.16,1,.3,1) .1s}
.wipe.in{clip-path:circle(150% at var(--wx,50%) var(--wy,50%))}
.wipe.in b{opacity:1;transform:none}
.wipe.out{clip-path:circle(0% at 50% 50%);transition:clip-path .9s cubic-bezier(.7,0,.2,1) .15s}
.wipe.out b{opacity:0;transform:scale(1.15);transition:opacity .3s,transform .5s}

.dir-hero{position:relative}
.dir-vis{position:absolute;right:0;top:calc(var(--pad) + 110px);width:min(380px,30vw);aspect-ratio:1;display:grid;place-items:center;animation:up 1.2s cubic-bezier(.16,1,.3,1) .2s both}
.dir-vis span{width:62%;aspect-ratio:1;border-radius:50%;background:var(--img) center/cover;border:1px solid color-mix(in srgb,var(--dc) 60%,transparent);box-shadow:0 0 80px color-mix(in srgb,var(--dc) 40%,transparent),inset 0 0 60px rgba(5,4,10,.6);filter:saturate(1.1)}
.dir-vis i{position:absolute;inset:0;border-radius:50%;border:1px solid var(--dc);opacity:0;animation:ring 4.2s cubic-bezier(.2,.6,.3,1) infinite}
.dir-vis .r2{animation-delay:1.4s;border-color:#b79cff}.dir-vis .r3{animation-delay:2.8s;border-color:#5ef0ff}
.dir-hero .lead{max-width:min(760px,58vw)}
@media(max-width:900px){.dir-vis{position:relative;right:auto;top:auto;width:200px;margin:0 0 10px auto;order:-1}.dir-hero .lead{max-width:none}}
@media(max-width:600px){.dir-title{font-size:min(6.1vw,40px);letter-spacing:0}}

/* ===== v5: типографика ===== */
.svc-name{font-family:var(--serif);font-weight:500;text-transform:none;font-size:clamp(28px,2.6vw,38px);line-height:1.15}
.oth b{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2vw,28px)}
.wipe b{font-family:var(--serif);font-weight:500;font-size:clamp(34px,6vw,84px);text-shadow:none;letter-spacing:.01em}
.dir-title{font-size:clamp(46px,7.4vw,112px);text-shadow:0 0 60px color-mix(in srgb,var(--c,#b79cff) 45%,transparent);text-transform:none;letter-spacing:-.01em}
/* v7: заголовки направлений — шрифт «Высоких вибраций» */
.dir-title{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.01em}
.svc-name,.oth b,.wipe b{font-family:var(--display);font-weight:400;text-transform:uppercase}

/* v12: шторка перехода — цветная, а не почти чёрная: читается как переход, а не как «пропал экран» */
.wipe{background:radial-gradient(circle at var(--wx,50%) var(--wy,50%),color-mix(in srgb,var(--dc,#b79cff) 60%,#1d1240),color-mix(in srgb,var(--dc,#b79cff) 22%,#140b2c) 45%,#0d0a1f 85%)}

/* v14: пункты «Пространство» и «Мастера» в меню — только на широких экранах */
@media(max-width:1180px){.dir-nav .dn-sec{display:none}}
.others{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}

/* v16: цветные пятна без filter:blur(90px) — размытие огромных анимированных слоёв перегружало видеокарту.
   Мягкость даёт сам радиальный градиент. */
.dir-bg i{filter:none;opacity:.5}
.dir-bg .b1{background:radial-gradient(circle,color-mix(in srgb,var(--dc) 55%,transparent) 0%,color-mix(in srgb,var(--dc) 22%,transparent) 35%,transparent 70%)}
.dir-bg .b2{background:radial-gradient(circle,rgba(120,70,255,.42) 0%,rgba(120,70,255,.16) 35%,transparent 70%)}
.dir-bg .b3{background:radial-gradient(circle,rgba(40,200,220,.28) 0%,rgba(40,200,220,.1) 35%,transparent 70%)}
