/*
Theme Name: Stannis Portfolio
Theme URI: https://stannis.ru/
Author: Stas Lukyanov
Description: Одностраничная тема-портфолио Стаса Лукьянова.
Version: 1.1.0
Text Domain: stannis
*/
body.admin-bar .nav { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar .nav { top: 46px; } }
:root{--blue:#0066cc;--blue-dark:#2997ff;--ink:#1d1d1f;--paper:#000;--dark:#000;--dark-2:#000;--dark-3:#000;--line:rgba(0,0,0,.1);--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:"SF Pro Text",-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif;font-size:17px;line-height:1.47;letter-spacing:-.022em}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}button{font:inherit;cursor:pointer}.nav{position:fixed;z-index:20;inset:0 0 auto;height:48px;color:var(--ink);background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}.nav__inner{max-width:980px;height:100%;padding:0 24px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center}.brand__logo{display:block;height:22px;width:auto}.nav__links,.nav__list{display:flex;align-items:center;gap:23px;margin:0;padding:0;list-style:none;font-size:12px;letter-spacing:-.01em;color:var(--ink)}.nav__links a{opacity:.82;transition:opacity .2s}.nav__links a:hover{opacity:1}.nav__menu{display:none;border:0;background:none;color:var(--ink);padding:0;line-height:0}.nav__menu-icon{display:block;width:18px;height:18px}.hero{min-height:100svh;color:#fff;display:grid;align-items:end;position:relative;overflow:hidden;background:#171719 url('https://stannis.ru/temp/image/photo.webp') center/cover no-repeat}.hero:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.38)}.hero__content{position:relative;z-index:1;width:min(var(--max),100%);margin:0 auto;padding:120px 32px 82px}.eyebrow{margin:0 0 16px;font-size:17px;font-weight:600;letter-spacing:-.022em}h1,h2,h3{font-family:"SF Pro Display",-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif;margin:0;font-weight:600;letter-spacing:-.035em}h1{max-width:760px;font-size:clamp(44px,7vw,82px);line-height:1.03}h2{font-size:clamp(36px,4vw,52px);line-height:1.09}h3{font-size:28px;line-height:1.15}.hero__lead{margin:20px 0 28px;font-size:clamp(22px,3vw,30px);line-height:1.2}.skills-line{display:flex;flex-wrap:wrap;gap:7px 15px;margin:0 0 34px;font-weight:600}.skills-line span:not(:last-child):after{content:"·";margin-left:15px;opacity:.7}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border:1px solid transparent;border-radius:999px;background:var(--blue);color:#fff;font-size:17px;line-height:1;transition:transform .18s,background .18s}.btn:active{transform:scale(.95)}.btn:focus-visible{outline:2px solid #0071e3;outline-offset:3px}.btn--hh{background:#ff0002}.tile{padding:96px 32px}.tile--paper{background:var(--paper)}.tile--dark{background:var(--dark);color:#fff}.tile--dark-2{background:var(--dark-2);color:#fff}.tile--dark-3{background:var(--dark-3);color:#fff}.container{width:min(var(--max),100%);margin:auto}.kicker{margin:0 0 12px;color:#7a7a7a;font-size:14px;font-weight:600;letter-spacing:-.01em}.tile--dark-2 .kicker{color:#ccc}.about{display:grid;grid-template-columns:3fr 1fr;gap:64px;align-items:center}.about__text p{max-width:735px;margin:0 0 24px;font-size:20px;line-height:1.48}.about__media{aspect-ratio:16/9;overflow:hidden;background:#000}.about__media video{width:100%;height:100%;object-fit:cover}.section-head{max-width:830px;margin-bottom:56px}.section-head h2{margin-bottom:18px}.section-head p{margin:0;color:#6e6e73;font-size:20px;line-height:1.42}.project{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(300px,.87fr);gap:48px;align-items:center;min-height:620px;padding:82px 0;border-top:1px solid rgba(255,255,255,.14)}.project:first-of-type{border-top:0;padding-top:0}.project:nth-of-type(even){grid-template-columns:minmax(300px,.87fr) minmax(0,1.13fr)}.project:nth-of-type(even) .project__image{order:2}.project__image{aspect-ratio:3/2;overflow:hidden;background:#000}.project__image img{width:100%;height:100%;object-fit:cover}.project__type{color:#ccc;margin:13px 0 18px;font-size:17px}.project__meta{margin:0 0 17px;font-size:14px;color:#ccc;font-weight:600}.project__text{margin:0 0 18px;color:#eee}.project ul{margin:0 0 24px;padding-left:20px;color:#ddd}.project li+li{margin-top:8px}.project a:not(.btn){color:var(--blue-dark)}.tags,.chips{display:flex;flex-wrap:wrap;gap:8px}.tags{margin-top:22px}.tag{padding:7px 12px;border-radius:999px;color:#ddd;border:1px solid rgba(255,255,255,.28);font-size:14px;letter-spacing:-.01em}.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tool-card{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff}.tool-card h3{margin:0 0 17px;font-size:20px}.chip{border:1px solid #e0e0e0;border-radius:999px;padding:8px 12px;font-size:14px;line-height:1.25}.limits{display:grid;grid-template-columns:auto 1fr;gap:25px;align-items:start;margin-top:24px;padding:25px 0 0;border-top:1px solid #d2d2d7}.limits h3{font-size:20px}.limits p{margin:3px 0 0;color:#555}.gallery-section+.gallery-section{margin-top:72px}.gallery-title{margin:0 0 23px;font-size:28px}.square-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.square-grid a,.flip{aspect-ratio:1;background:#ddd;overflow:hidden}.square-grid img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.square-grid a:hover img{transform:scale(1.035)}.pride-copy{margin:0 0 22px;max-width:700px;color:#333;font-size:20px}.flip{perspective:1000px;cursor:pointer}.flip__inner{position:relative;width:100%;height:100%;transition:transform .7s;transform-style:preserve-3d}.flip.is-flipped .flip__inner{transform:rotateY(180deg)}.flip__face{position:absolute;inset:0;backface-visibility:hidden}.flip__face img{width:100%;height:100%;object-fit:cover}.flip__back{transform:rotateY(180deg)}.music-list{display:grid;gap:10px}.track{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.17)}.track__cover{width:60px;aspect-ratio:1;background:#404044}.track__name{margin:0;font-size:17px;font-weight:600}.track audio{width:min(260px,28vw);height:34px}.carousel-wrap{min-height:470px;display:grid;place-items:center;overflow:hidden;perspective:1000px}.carousel{position:relative;width:180px;height:245px;transform-style:preserve-3d;animation:spin 40s linear infinite}.carousel:hover{animation-play-state:paused}.carousel__item{position:absolute;inset:0;overflow:hidden;background:#111;backface-visibility:hidden}.carousel__item img{width:100%;height:100%;object-fit:cover}@keyframes spin{to{transform:rotateY(360deg)}}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.video-card{position:relative;aspect-ratio:9/16;background:#000;overflow:hidden}.video-card video{width:100%;height:100%;object-fit:cover}.sound{position:absolute;z-index:2;right:12px;bottom:12px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(210,210,215,.72);color:var(--ink)}.books{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:72px}.books h3{font-size:22px;margin-bottom:18px}.books ol{margin:0;padding-left:22px}.books li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.16);color:#ccc}.contact{padding-top:112px;padding-bottom:112px}.contact__grid{display:grid;grid-template-columns:1.35fr .65fr;gap:64px;align-items:end}.contact h2{max-width:680px;font-size:clamp(42px,5.5vw,68px)}.contact__text{margin:22px 0 32px;max-width:610px;font-size:22px;line-height:1.4}.contact__actions{display:flex;flex-wrap:wrap;gap:12px}.contact__details{border-top:1px solid rgba(255,255,255,.35);padding-top:20px}.contact__details a{display:block;margin:0 0 11px;color:#fff}.contact__details span{display:block;color:#ccc;font-size:14px;margin-bottom:2px}footer{padding:58px 32px;background:var(--paper);color:#333}.footer__inner{width:min(var(--max),100%);margin:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:32px}footer p{margin:0;font-size:12px;line-height:1.45}.ai-note{max-width:420px}.footer-nav .menu{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;font-size:12px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:833px){.nav__links{display:none}.nav__links.open{display:block;position:absolute;top:48px;left:0;right:0;padding:8px 24px 16px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}.nav__links.open .nav__list{display:flex;flex-direction:column;align-items:flex-start;gap:0}.nav__links.open a{display:block;padding:13px 0;font-size:17px}.nav__menu{display:block}.about,.project,.project:nth-of-type(even),.contact__grid{grid-template-columns:1fr;gap:32px}.project{min-height:0;padding:56px 0}.project:nth-of-type(even) .project__image{order:0}.tools-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.nav__inner,.hero__content,.tile,footer{padding-left:20px;padding-right:20px}.hero__content{padding-bottom:48px}.hero{min-height:720px}.tile{padding-top:56px;padding-bottom:56px}.about__text p,.section-head p,.pride-copy{font-size:17px}.section-head{margin-bottom:36px}.tools-grid,.books{grid-template-columns:1fr}.square-grid{grid-template-columns:repeat(2,1fr)}.square-grid a:last-child:nth-child(odd){grid-column:1/-1;aspect-ratio:2/1}.limits{grid-template-columns:1fr;gap:8px}.track{grid-template-columns:52px 1fr;gap:12px}.track__cover{width:52px}.track audio{grid-column:1/-1;width:100%}.video-grid{grid-template-columns:1fr}.video-card{aspect-ratio:16/9}.carousel-wrap{min-height:400px}.contact{padding-top:72px;padding-bottom:72px}.contact__text{font-size:19px}.footer__inner{flex-direction:column;gap:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* ===== Batch 1 ===== */

/* Скругления медиа: базовое и 2 мобильных значения */
:root {
  --media-border-radius: 28px;
  --media-border-radius-tablet: 20px;
  --media-border-radius-mobile: 16px;
  --dark: #000; /* .tile--dark теперь чёрный; .tile--dark-2 и .tile--dark-3 не трогаем */
}

/* Обложки треков */
.track__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Видео в «Обо мне» — портрет 9:16 */
.about__media { aspect-ratio: 9 / 16; }

/* Проекты: выравнивание картинки и текста по верху на desktop */
.project { align-items: start; }

/* ===== Batch 2: скругления всех медиа, фон, Swiper, карусель ===== */

/* Единое скругление ВСЕХ медиа-элементов проекта */
.about__media,
.project__image,
.square-grid a,
.flip,
.video-card,
.track__cover,
.carousel__item,
.swiper,
.swiper-slide {
  border-radius: var(--media-border-radius);
}
.about__media,
.project__image,
.square-grid a,
.flip,
.video-card,
.track__cover,
.carousel__item,
.swiper-slide {
  overflow: hidden;
}
/* Тулкарты — тоже скругление в системе */
.tool-card { border-radius: var(--media-border-radius); }
/* FLIP-карточки: скругляем грани, а не контейнер (иначе ломается 3D) */
.flip__face {
  border-radius: var(--media-border-radius);
  overflow: hidden;
}
.carousel__item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Серые фоны заменяем на чёрный #000000 */
.tile--paper { background: #000; }
footer { background: #000; color: #ccc; border-top: 1px solid rgba(255,255,255,.1); }
.square-grid a,
.flip,
.track__cover { background: #000; }
.carousel__item { background: #000; }

/* Секция «Инструменты»: фон-градиент перекрывает чёрный */
#tools.tile--paper {
  background: linear-gradient(180deg, #BBE2F0 25%, rgba(187, 226, 240, 0.9736842105) 26.9736842105%, rgba(187, 226, 240, 0.9473684211) 28.9473684211%, rgba(187, 226, 240, 0.9210526316) 30.9210526316%, rgba(187, 226, 240, 0.8947368421) 32.8947368421%, rgba(187, 226, 240, 0.8684210526) 34.8684210526%, rgba(187, 226, 240, 0.8421052632) 36.8421052632%, rgba(187, 226, 240, 0.8157894737) 38.8157894737%, rgba(187, 226, 240, 0.7894736842) 40.7894736842%, rgba(187, 226, 240, 0.7631578947) 42.7631578947%, rgba(187, 226, 240, 0.7368421053) 44.7368421053%, rgba(187, 226, 240, 0.7105263158) 46.7105263158%, rgba(187, 226, 240, 0.6842105263) 48.6842105263%, rgba(187, 226, 240, 0.6578947368) 50.6578947368%, rgba(187, 226, 240, 0.6315789474) 52.6315789474%, rgba(187, 226, 240, 0.6052631579) 54.6052631579%, rgba(187, 226, 240, 0.5789473684) 56.5789473684%, rgba(187, 226, 240, 0.5526315789) 58.5526315789%, rgba(187, 226, 240, 0.5263157895) 60.5263157895%, rgba(187, 226, 240, 0.5) 62.5%, rgba(187, 226, 240, 0.4736842105) 64.4736842105%, rgba(187, 226, 240, 0.4473684211) 66.4473684211%, rgba(187, 226, 240, 0.4210526316) 68.4210526316%, rgba(187, 226, 240, 0.3947368421) 70.3947368421%, rgba(187, 226, 240, 0.3684210526) 72.3684210526%, rgba(187, 226, 240, 0.3421052632) 74.3421052632%, rgba(187, 226, 240, 0.3157894737) 76.3157894737%, rgba(187, 226, 240, 0.2894736842) 78.2894736842%, rgba(187, 226, 240, 0.2631578947) 80.2631578947%, rgba(187, 226, 240, 0.2368421053) 82.2368421053%, rgba(187, 226, 240, 0.2105263158) 84.2105263158%, rgba(187, 226, 240, 0.1842105263) 86.1842105263%, rgba(187, 226, 240, 0.1578947368) 88.1578947368%, rgba(187, 226, 240, 0.1315789474) 90.1315789474%, rgba(187, 226, 240, 0.1052631579) 92.1052631579%, rgba(187, 226, 240, 0.0789473684) 94.0789473684%, rgba(187, 226, 240, 0.0526315789) 96.0526315789%, rgba(187, 226, 240, 0.0263157895) 98.0263157895%, rgba(187, 226, 240, 0) 100%);
}

/* Акценты для AI-чипов */
.chip--seedance { background: #6a4cff; border-color: #6a4cff; color: #fff; }
.chip--suno     { background: #00b46a; border-color: #00b46a; color: #fff; }

/* Разделители между чёрными секциями, чтобы не сливались */
.tile--dark-2 { border-top: 1px solid rgba(255,255,255,.1); }
.tile--dark-3 { border-top: 1px solid rgba(255,255,255,.1); }

/* AI-карточка: убираем заголовки-группы, оставляем только чипы */
.tool-card--ai .chips { margin-top: 0; }

/* ===== Swiper: базовые стили контейнера ===== */
.swiper { overflow: hidden; }
.swiper-slide { height: auto; }
.swiper-button-next,
.swiper-button-prev {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.85);
  color: var(--ink);
  box-shadow: 0 2px 12px rgba(0,0,0,.14);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  backdrop-filter: saturate(180%) blur(12px);
}
.swiper-button-next:after,
.swiper-button-prev:after { font-size: 14px; font-weight: 700; }
.swiper-pagination-bullet { background: rgba(255,255,255,.6); }
.swiper-pagination-bullet-active { background: #fff; }
/* Подглядывающий следующий слайд — подсказка о прокрутке (в стиле Apple) */
.swiper.swiper--peek { overflow: visible; }

/* ===== 3D-карусель: крупнее на desktop ===== */
.carousel-wrap { min-height: 560px; perspective: 1400px; }
.carousel { width: 230px; height: 310px; }

/* ===== Галереи работ (Swiper на мобильной версии) ===== */
.gallery-swiper { margin: 0 -20px; padding: 0 20px 40px; }
.gallery-slide { width: auto; }
.gallery-slide a { display: block; aspect-ratio: 1; border-radius: var(--media-border-radius); overflow: hidden; background: #000; }
.gallery-slide img { width: 100%; height: 100%; object-fit: cover; }
.gallery-swiper .swiper-pagination { bottom: 0; }
/* На desktop Swiper-галереи скрыты, показывается сетка */
.square-grid--desktop { display: grid; }
@media (max-width: 833px) {
  .gallery-slide a { aspect-ratio: 1; }
}
/* Мобильные радиусы */
@media (max-width: 833px) {
  :root { --media-border-radius: var(--media-border-radius-tablet); }
  .carousel-wrap { min-height: 420px; perspective: 1000px; }
  .carousel { width: 170px; height: 232px; }
}
@media (max-width: 640px) {
  :root { --media-border-radius: var(--media-border-radius-mobile); }
}