/**
 * Единственный файл стилей — премиум.
 */

html{scroll-behavior:smooth;}
:root{
  --bg: #0b1020;
  --bg2:#070a14;
  --card: rgba(255,255,255,.06);
  --card2: rgba(255,255,255,.08);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.70);
  --muted2: rgba(255,255,255,.55);
  --line: rgba(255,255,255,.10);

  --brand: #4f77ff;
  --brand2: #8b5cf6;
  --good: #24d18a;

  --shadow: 0 12px 40px rgba(0,0,0,.35);
  --shadow-soft: 0 4px 24px rgba(0,0,0,.2), 0 1px 3px rgba(0,0,0,.15);
  --shadow-glow: 0 0 40px rgba(79,119,255,.15), 0 20px 50px rgba(0,0,0,.25);
  --radius: 18px;
  --radius2: 26px;
  --radius3: 32px;
  --radius4: 40px;
  --shine: linear-gradient(105deg, transparent 0%, rgba(255,255,255,.06) 45%, rgba(255,255,255,.12) 50%, rgba(255,255,255,.06) 55%, transparent 100%);

  --container: 1120px;
  --pad: 24px;
  --font: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-heading: "Plus Jakarta Sans", var(--font);
  --glass: rgba(255,255,255,.04);
  --glass-border: rgba(255,255,255,.08);
  --gradient-brand: linear-gradient(135deg, var(--brand), var(--brand2));
  --gradient-warm: linear-gradient(135deg, rgba(245,158,11,.15), rgba(236,72,153,.1));
  --accent-warm: #f59e0b;
}

[data-theme="light"]{
  --bg:#f7f8fb;
  --bg2:#eef1f7;
  --card: rgba(0,0,0,.04);
  --card2: rgba(0,0,0,.06);
  --text: rgba(0,0,0,.90);
  --muted: rgba(0,0,0,.68);
  --muted2: rgba(0,0,0,.55);
  --line: rgba(0,0,0,.10);
  --shadow: 0 12px 40px rgba(0,0,0,.10);
  --shadow-soft: 0 4px 24px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);
  --shadow-glow: 0 0 36px rgba(79,119,255,.12), 0 20px 50px rgba(0,0,0,.06);
  --glass: rgba(0,0,0,.02);
  --glass-border: rgba(0,0,0,.08);
  --shine: linear-gradient(105deg, transparent 0%, rgba(255,255,255,.4) 45%, rgba(255,255,255,.6) 50%, rgba(255,255,255,.4) 55%, transparent 100%);
}

/* Premium: smooth theme transition */
html.theme-transition,
html.theme-transition body,
html.theme-transition .header,
html.theme-transition .card,
html.theme-transition .skillgroup,
html.theme-transition .btn,
html.theme-transition .nav__link,
html.theme-transition .contact__card,
html.theme-transition .hero__card,
html.theme-transition .brand__logo {
  transition: background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
html.theme-transition .scrollProgress {
  transition: opacity .25s ease;
}

*{box-sizing:border-box}

/* Фокус для клавиатуры (доступность) */
:focus{ outline: none; }
:focus-visible{
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
[data-theme="light"] :focus-visible{ outline-color: var(--brand); }

/* Плавное появление страницы */
body.page-load{
  opacity: 0;
  transition: opacity .5s cubic-bezier(0.22, 1, 0.36, 1);
}
body.loaded{
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  body.page-load, body.loaded { transition: none; }
  body.page-load { opacity: 1; }
}

::selection{
  background: rgba(79,119,255,.35);
  color: var(--text);
}
[data-theme="light"] ::selection{
  background: rgba(79,119,255,.28);
  color: var(--text);
}
html{
  min-height: 100%;
  background-color: var(--bg);
}
/* Лавандово-голубой градиент на весь лендинг: один слой, без обрыва */
html::before{
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  /* Мягкие пятна на весь экран — лавандовый/голубой как в hero, но на всю страницу */
  background:
    radial-gradient(ellipse 100% 80% at 20% 0%, rgba(79,119,255,.28), transparent 60%),
    radial-gradient(ellipse 90% 70% at 100% 20%, rgba(139,92,246,.24), transparent 55%),
    radial-gradient(ellipse 80% 60% at 0% 80%, rgba(139,92,246,.12), transparent 50%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(36,209,138,.08), transparent 50%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}
[data-theme="light"] html::before {
  background:
    radial-gradient(ellipse 100% 80% at 15% 0%, rgba(79,119,255,.14), transparent 55%),
    radial-gradient(ellipse 90% 70% at 100% 10%, rgba(139,92,246,.12), transparent 50%),
    radial-gradient(ellipse 80% 60% at 0% 70%, rgba(139,92,246,.06), transparent 50%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(36,209,138,.04), transparent 50%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}
/* Сетка точек — тоже фиксированная, единая по всей странице */
html::after{
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.03) 1px, transparent 0);
  background-size: 32px 32px;
}
[data-theme="light"] html::after{
  background-image: radial-gradient(circle at 1px 1px, rgba(0,0,0,.03) 1px, transparent 0);
}
body{
  margin:0;
  min-height: 100%;
  font-family:var(--font);
  color:var(--text);
  background: transparent;
  overflow-x:hidden;
  position: relative;
}
body::before{
  content: none;
}
[data-theme="light"] body::before{
  content: none;
}

a{color:inherit; text-decoration:none}
a:hover{opacity:.92}
/* Иконка внешней ссылки */
a.link--external[target="_blank"]::after{
  content: "";
  display: inline-block;
  width: .9em;
  height: .9em;
  margin-left: .35em;
  vertical-align: -.15em;
  opacity: .8;
  background-color: currentColor;
  -webkit-mask: url("assets/external.svg") no-repeat center;
  mask: url("assets/external.svg") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: opacity .2s ease, transform .2s ease;
}
.contact__link.link--external::after{
  margin-left: .25em;
}
a.link--external:hover::after{
  opacity: 1;
  transform: translate(.08em, -.08em);
}
img{max-width:100%; display:block}
.container{max-width:var(--container); margin:0 auto; padding:0 var(--pad)}
.skip{
  position:absolute; left:-999px; top:10px;
  background:var(--card2); border:1px solid var(--line);
  padding:10px 12px; border-radius:12px; z-index:9999;
}
.skip:focus{left:10px}

/* Focus visible — доступность и аккуратный вид */
a:focus-visible,
button:focus-visible{
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand);
}
[data-theme="light"] a:focus-visible,
[data-theme="light"] button:focus-visible{
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand);
}
.theme-toggle:focus-visible{ box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand); }
.nav__link:focus-visible,
.contact__link:focus-visible,
.mobile__link:focus-visible{ border-radius: 12px; }

.header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  background: rgba(8,10,16,.5);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(255,255,255,.03);
}
.header::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79,119,255,.2), rgba(139,92,246,.15), transparent);
  opacity: .6;
  pointer-events: none;
}
[data-theme="light"] .header{
  background: rgba(255,255,255,.75);
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
[data-theme="light"] .header::after{ opacity: .5; }

.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:14px 0;
}
.brand{
  transition: transform .2s ease, opacity .2s ease;
  margin-left: -10px;
}
.header__actions .btn--primary{
  margin-left: auto;
}
.brand:hover{ opacity: 1; transform: scale(1.02); }
.brand__logo{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--glass-border);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.06);
  font-family: var(--font-heading);
  font-weight: 800;
  letter-spacing: .04em;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.brand:hover .brand__logo{
  box-shadow: 0 4px 16px rgba(79,119,255,.12);
  border-color: rgba(79,119,255,.2);
}

.nav{display:flex; gap:18px; align-items:center}
.nav__link{
  color:var(--muted);
  font-weight:600;
  padding:8px 10px;
  border-radius:12px;
}
.nav__link{
  transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.nav__link:hover{ background: var(--card); color: var(--text); transform: translateY(-1px); }
.nav__link--current{
  color: var(--text);
  background: linear-gradient(180deg, var(--card2), var(--card));
  box-shadow: 0 0 0 1px rgba(79,119,255,.3), inset 0 1px 0 rgba(255,255,255,.05);
  border: 1px solid transparent;
}
.nav__link--current:hover{ background: var(--card2); }

.header__actions{display:flex; align-items:center; gap:10px}

.iconbtn{
  height:42px; width:42px; display:grid; place-items:center;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--card);
  cursor:pointer;
}
.iconbtn:hover{background:var(--card2)}
.iconbtn__text{font-size:18px}

/* Premium theme toggle */
.theme-toggle{
  display: flex;
  align-items: center;
  gap: 0;
  height: 42px;
  padding: 0 6px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--card);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .3s ease;
}
.theme-toggle:hover{
  background: var(--card2);
  transform: scale(1.02);
  box-shadow: 0 4px 20px rgba(79,119,255,.15);
}
[data-theme="light"] .theme-toggle:hover { box-shadow: 0 4px 20px rgba(79,119,255,.2); }
.theme-toggle:active { transform: scale(0.98); }

.lang-toggle{
  height: 42px;
  min-width: 42px;
  padding: 0 10px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--text);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .03em;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.lang-toggle:hover{
  background: var(--card2);
  border-color: rgba(79,119,255,.25);
  box-shadow: 0 4px 16px rgba(79,119,255,.12);
}
.lang-toggle:focus-visible{
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand);
}
[data-theme="light"] .lang-toggle:focus-visible{
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand);
}

.theme-toggle__track{
  width: 64px;
  height: 28px;
  border-radius: 999px;
  background: rgba(0,0,0,.2);
  position: relative;
  flex-shrink: 0;
  transition: background .35s ease;
}
[data-theme="light"] .theme-toggle__track { background: rgba(0,0,0,.08); }
.theme-toggle__thumb{
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(145deg, #f0f0f0, #e0e0e0);
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
  transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .3s ease;
}
.theme-toggle--light .theme-toggle__thumb{
  transform: translateX(36px);
  background: linear-gradient(145deg, #fff8e1, #ffecb3);
  box-shadow: 0 2px 6px rgba(0,0,0,.15), 0 0 0 1px rgba(0,0,0,.06);
}
.theme-toggle__icon{
  position: absolute;
  font-size: 14px;
  opacity: .5;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.theme-toggle__icon--moon{ left: 12px; }
.theme-toggle__icon--sun{ right: 12px; }
.theme-toggle--light .theme-toggle__icon--moon{ opacity: .2; transform: scale(0.85); }
.theme-toggle--light .theme-toggle__icon--sun{ opacity: .55; transform: scale(0.95); }
.theme-toggle:not(.theme-toggle--light) .theme-toggle__icon--sun{ opacity: .2; transform: scale(0.85); }
.theme-toggle:not(.theme-toggle--light) .theme-toggle__icon--moon{ opacity: .55; transform: scale(0.95); }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:42px; padding:0 16px;
  border-radius:14px;
  border:1px solid var(--line);
  font-weight:700;
  gap:10px;
  cursor:pointer;
  user-select:none;
}
.btn--primary{
  position: relative;
  overflow: hidden;
  font-family: var(--font-heading);
  font-weight: 700;
  background: linear-gradient(135deg, rgba(79,119,255,.85), rgba(139,92,246,.8));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.06) inset,
    0 2px 12px rgba(79,119,255,.2),
    0 6px 20px rgba(0,0,0,.15);
  transition: transform .25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .35s ease;
}
.btn--primary::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, transparent 50%);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.btn--primary:hover::after{ opacity: 1; }
.btn--primary:hover{
  transform: translateY(-1px);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1) inset,
    0 4px 16px rgba(79,119,255,.22),
    0 8px 24px rgba(0,0,0,.2);
}
.btn--primary:active { transform: translateY(0); }
[data-theme="light"] .btn--primary{
  box-shadow: 0 2px 12px rgba(79,119,255,.18), 0 6px 20px rgba(0,0,0,.06);
}
[data-theme="light"] .btn--primary:hover{
  box-shadow: 0 4px 20px rgba(79,119,255,.22), 0 8px 28px rgba(0,0,0,.08);
}
.btn--ghost{
  background: var(--card);
  border: 1px solid var(--glass-border);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.btn--ghost:hover{
  background: var(--card2);
  border-color: rgba(79,119,255,.2);
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
}
.btn--full{width:100%}

.burger{
  display:none;
  height:42px; width:42px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--card);
  cursor:pointer;
  position:relative;
  transition: background .2s ease, transform .2s ease;
}
.burger:hover{ background: var(--card2); transform: scale(1.03); }
.burger span{
  position:absolute; left:11px; right:11px;
  height:2px; background:var(--text); opacity:.9; border-radius:2px;
  transition: transform .3s cubic-bezier(0.22, 1, 0.36, 1), opacity .2s ease;
}
.burger span:nth-child(1){ top:14px; transform-origin: center center; }
.burger span:nth-child(2){ top:20px; transform-origin: center center; }
.burger span:nth-child(3){ top:26px; transform-origin: center center; }
.burger.open span:nth-child(1){
  top:20px;
  transform: rotate(45deg);
}
.burger.open span:nth-child(2){
  opacity: 0;
  transform: scaleX(0);
}
.burger.open span:nth-child(3){
  top:20px;
  transform: rotate(-45deg);
}

.mobile{
  max-height: 0;
  overflow: hidden;
  border-top: 1px solid transparent;
  background: rgba(8,10,16,.72);
  backdrop-filter: blur(12px);
  transition: max-height .4s cubic-bezier(0.22, 1, 0.36, 1), border-color .25s ease;
}
.mobile.open{
  max-height: 90vh;
  border-top-color: var(--line);
}
[data-theme="light"] .mobile{ background: rgba(255,255,255,.86); }
.mobile__inner{
  max-width:var(--container);
  margin:0 auto; padding:12px var(--pad) 16px;
  display:grid; gap:10px;
}
.mobile__link{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--card);
  color:var(--text);
  font-weight:700;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .3s ease, transform .3s ease, background .2s ease;
}
.mobile.open .mobile__link{
  opacity: 1;
  transform: translateY(0);
}
.mobile.open .mobile__link:nth-child(1){ transition-delay: .05s; }
.mobile.open .mobile__link:nth-child(2){ transition-delay: .1s; }
.mobile.open .mobile__link:nth-child(3){ transition-delay: .15s; }
.mobile.open .mobile__link:nth-child(4){ transition-delay: .2s; }
.mobile.open .mobile__link:nth-child(5){ transition-delay: .25s; }
.mobile.open .mobile__cta{ transition-delay: .3s; }
.mobile__link--current{
  background: rgba(79,119,255,.12);
  border-color: rgba(79,119,255,.3);
  color: var(--text);
}
.mobile__cta{padding-top:6px}
@media (min-width: 721px){
  .mobile{ max-height: 0 !important; display: none; }
  .mobile.open{ display: none; }
}

/* Hero entrance animation */
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero .hero__badge { animation: heroFadeUp .7s cubic-bezier(0.22, 1, 0.36, 1) .1s both; }
.hero .hero__title { animation: heroFadeUp .8s cubic-bezier(0.22, 1, 0.36, 1) .2s both; }
.hero .hero__subtitle { animation: heroFadeUp .7s cubic-bezier(0.22, 1, 0.36, 1) .35s both; }
.hero .hero__quick { animation: heroFadeUp .7s cubic-bezier(0.22, 1, 0.36, 1) .45s both; }
.hero .hero__cta { animation: heroFadeUp .6s cubic-bezier(0.22, 1, 0.36, 1) .55s both; }
.hero .avatar { animation: heroFadeUp .8s cubic-bezier(0.22, 1, 0.36, 1) .25s both; }
.hero .hero__card { animation: heroFadeUp .7s cubic-bezier(0.22, 1, 0.36, 1) .4s both; }
@media (prefers-reduced-motion: reduce) {
  .hero .hero__badge, .hero .hero__title, .hero .hero__tagline, .hero .hero__subtitle,
  .hero .hero__quick, .hero .hero__cta, .hero .avatar, .hero .hero__card { animation: none; }
}
.hero{
  position: relative;
  padding: 64px 0 80px;
  overflow: hidden;
}
.hero::before{
  content: none;
}
.hero::after{
  content: none;
}
.hero .hero__grid,
.hero .container{ position: relative; z-index: 1; }
.hero__grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 32px;
  align-items:start;
  min-width: 0;
}
.hero__left{ min-width: 0; }
.hero__right{ min-width: 0; }
.hero__badge{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px}
.pill{
  display:inline-flex; align-items:center;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid var(--glass-border);
  background: var(--glass);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .02em;
  color: var(--text);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.pill:hover{
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
  border-color: rgba(79,119,255,.2);
  background: rgba(255,255,255,.08);
}
[data-theme="light"] .pill{ background: rgba(0,0,0,.04); border-color: var(--line); }
[data-theme="light"] .pill:hover{ box-shadow: 0 4px 16px rgba(79,119,255,.12); border-color: rgba(79,119,255,.25); }
.pill--muted{ color: var(--muted); }
.hero__title{
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(40px, 5.2vw, 60px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.04em;
  background: linear-gradient(180deg, var(--text) 0%, rgba(255,255,255,.88) 50%, rgba(255,255,255,.82) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--text);
  text-shadow: 0 0 80px rgba(79,119,255,.12);
  position: relative;
}
.hero__title::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 80px;
  height: 5px;
  border-radius: 6px;
  background: var(--gradient-brand);
  opacity: .95;
  box-shadow: 0 0 20px rgba(79,119,255,.5);
  animation: titleLinePulse 3s ease-in-out infinite;
}
@keyframes titleLinePulse {
  0%, 100% { opacity: .9; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
}
[data-theme="light"] .hero__title{
  background: linear-gradient(180deg, var(--text) 0%, rgba(0,0,0,.78) 50%, rgba(0,0,0,.72) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
}
[data-theme="light"] .hero__title::after{ box-shadow: 0 0 16px rgba(79,119,255,.35); }
@media (prefers-reduced-motion: reduce) {
  .hero__title::after { animation: none; }
}
.hero__tagline{
  margin: 10px 0 0;
  font-size: 17px;
  line-height: 1.45;
  max-width: 52ch;
  color: var(--brand);
  font-weight: 600;
}
[data-theme="light"] .hero__tagline{ color: #4338ca; }
.hero .hero__tagline { animation: heroFadeUp .7s cubic-bezier(0.22, 1, 0.36, 1) .28s both; }
@media (prefers-reduced-motion: reduce) {
  .hero .hero__tagline { animation: none; }
}
.hero__subtitle{
  margin:14px 0 0;
  color:var(--muted);
  font-size:16.5px;
  line-height:1.55;
  max-width:54ch;
}
.hero__quick{
  margin-top:18px;
  display:grid;
  gap:10px;
}
.quick{
  padding: 14px 16px;
  border-radius: var(--radius);
  border: 1px solid var(--glass-border);
  background: var(--glass);
  backdrop-filter: blur(8px);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.quick:hover{ border-color: rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.03); }
[data-theme="light"] .quick{ background: rgba(0,0,0,.02); }
.quick__k{
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted2);
}
.quick__v{margin-top:6px; color:var(--text); font-weight:600}
.quick__v--contacts{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.quick__icon{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: opacity .2s ease, transform .2s ease;
}
.quick__icon:hover{ opacity: .9; transform: scale(1.08); }
.quick__icon img{
  display: block;
  width: 24px;
  height: 24px;
  filter: brightness(0) invert(1);
}
[data-theme="light"] .quick__icon img{ filter: brightness(0); }
.quick a{color:var(--text); text-decoration:underline; text-decoration-color:rgba(255,255,255,.25)}
[data-theme="light"] .quick a{ text-decoration-color:rgba(0,0,0,.20)}

.hero__cta{display:flex; gap:12px; margin-top:18px; flex-wrap:wrap}
.hero__cv-date{margin:4px 0 0; width:100%; font-size:0.8125rem; color:var(--muted2); font-weight:500}
[data-theme="light"] .hero__cv-date{ color:var(--muted2)}

.hero__right{display:grid; gap:14px}
.avatar{
  position: relative;
  width:min(520px, 42vw); height:clamp(360px, 52vh, 520px);
  border-radius: var(--radius3);
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.06),
    0 24px 60px rgba(0,0,0,.4),
    0 0 80px rgba(79,119,255,.08);
  transition: transform .4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .4s ease;
}
.avatar::before{
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(135deg, rgba(79,119,255,.4), rgba(139,92,246,.3), rgba(79,119,255,.2));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .7;
  pointer-events: none;
  z-index: 1;
}
.avatar:hover{
  transform: scale(1.02);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1),
    0 28px 70px rgba(0,0,0,.5),
    0 0 100px rgba(79,119,255,.15);
}
.avatar:hover::before{ opacity: 1; }
[data-theme="light"] .avatar{
  box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 24px 60px rgba(0,0,0,.12), 0 0 60px rgba(79,119,255,.06);
}
[data-theme="light"] .avatar:hover{ box-shadow: 0 0 0 1px rgba(79,119,255,.2), 0 28px 70px rgba(0,0,0,.1), 0 0 80px rgba(79,119,255,.1); }
.avatar img, .avatar__img{
  width:100%; height:100%; object-fit:cover; object-position:50% 35%; display:block;
  transform: scale(1.02);
  transition: transform .5s cubic-bezier(0.22, 1, 0.36, 1);
}
.avatar:hover .avatar__img{ transform: scale(1.05); }
.hero__card{
  position: relative;
  padding: 20px 20px;
  border-radius: var(--radius3);
  border: 1px solid var(--glass-border);
  background: linear-gradient(160deg, var(--card2) 0%, var(--card) 100%);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.05);
}
.hero__card::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(79,119,255,.25), transparent 40%, transparent 60%, rgba(139,92,246,.2));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.hero__card-title{
  font-family: var(--font-heading);
  font-weight: 800;
  margin-bottom: 12px;
  font-size: 17px;
}
.bullets{
  margin: 0;
  padding-left: 0;
  list-style: none;
  color: var(--muted);
  line-height: 1.65;
}
.bullets li{
  margin: 10px 0;
  padding-left: 22px;
  position: relative;
}
.bullets li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gradient-brand);
  box-shadow: 0 0 10px rgba(79,119,255,.4);
}

.hero__bg{
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .hero__bg { animation: none; }
}

/* Полоска ключевых слов под hero */
.hero-strip{
  position: relative;
  padding: 18px 0;
  background: var(--bg);
}
.hero-strip::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(85%, 640px);
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, rgba(79,119,255,.35), rgba(139,92,246,.3), transparent);
  opacity: .85;
  box-shadow: 0 0 20px rgba(79,119,255,.2);
  pointer-events: none;
}
[data-theme="light"] .hero-strip::before{ opacity: .7; box-shadow: 0 0 16px rgba(79,119,255,.15); }
.hero-strip__inner{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.hero-strip__label{
  font-size: 0.75rem;
  color: var(--muted2);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.hero-strip__text{
  font-size: 0.875rem;
  color: var(--muted2);
  font-weight: 500;
  letter-spacing: 0.02em;
}
[data-theme="light"] .hero-strip__text{ color: var(--muted2); }

.section{
  padding: 56px 0;
  position: relative;
  scroll-margin-top: 5.5rem;
}
/* Разделитель между секциями */
.section + .section::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(85%, 640px);
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, rgba(79,119,255,.35), rgba(139,92,246,.3), transparent);
  opacity: .85;
  box-shadow: 0 0 20px rgba(79,119,255,.2);
  pointer-events: none;
}
[data-theme="light"] .section + .section::before{ opacity: .7; box-shadow: 0 0 16px rgba(79,119,255,.15); }
.section__head{ display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.section__title-wrap{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
.section__title-wrap .section__title{ margin: 0; }
.section__title-icon{
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  object-fit: contain;
  opacity: .95;
  filter: brightness(0) invert(1);
}
[data-theme="light"] .section__title-icon{ filter: brightness(0); }
.section__title{
  margin: 0 0 12px;
  font-family: var(--font-heading);
  font-size: clamp(24px, 2.8vw, 32px);
  font-weight: 800;
  letter-spacing: 0.01em;
  position: relative;
  padding-left: 0;
  transition: padding-left .4s cubic-bezier(0.22, 1, 0.36, 1);
  color: var(--text);
}
.section__title.is-visible{
  padding-left: 16px;
}
.section__title.is-visible::before{
  content: "";
  position: absolute;
  left: 0;
  top: .1em;
  bottom: .1em;
  width: 5px;
  border-radius: 6px;
  background: var(--gradient-brand);
  box-shadow: 0 0 20px rgba(79,119,255,.35);
  animation: sectionAccent .5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes sectionAccent {
  from { transform: scaleY(0); opacity: 0; }
  to { transform: scaleY(1); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .section__title.is-visible::before { animation: none; }
}
.section__lead{margin:0; color:var(--muted); line-height:1.7; max-width:78ch}
.section__hint{margin:0 0 12px; color:var(--muted2); font-weight:600}

.career-timeline{
  margin-top: 20px;
  display: grid;
  gap: 12px;
}
.career-item{
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  align-items: baseline;
  padding: 14px 18px;
  border-radius: var(--radius);
  border: 1px solid var(--glass-border);
  background: var(--glass);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.career-item:hover{
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 4px 20px rgba(0,0,0,.15);
}
[data-theme="light"] .career-item{ background: rgba(0,0,0,.02); }
.career__period{
  font-size: 13px;
  font-weight: 600;
  color: var(--muted2);
  font-variant-numeric: tabular-nums;
}
.career__info{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}
.career__company{
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 17px;
  color: var(--text);
}
.career__role{
  font-size: 14px;
  color: var(--muted);
}
.career-item--intern .career__period{ color: var(--muted2); }
.career-item--intern .career__company{ font-weight: 600; }
@media (max-width: 640px) {
  .career-item{ grid-template-columns: 1fr; gap: 4px; }
  .career__period{ font-size: 12px; }
}

.cards{
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}
.cards--projects{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.card{
  position: relative;
  padding: 24px 24px;
  border-radius: var(--radius3);
  border: 1px solid var(--glass-border);
  background: linear-gradient(165deg, var(--card2) 0%, var(--card) 100%);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-soft), 0 0 0 1px rgba(255,255,255,.02), inset 0 1px 0 rgba(255,255,255,.05);
  transition: transform .3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .35s ease, border-color .25s ease;
}
.card::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(79,119,255,.12), transparent 50%, rgba(139,92,246,.08));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.card::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  border-radius: var(--radius3) var(--radius3) 0 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 1px rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
}
.card:hover::before,
.card:hover::after{ opacity: 1; }
[data-theme="light"] .card:hover{ box-shadow: var(--shadow-glow); }
[data-theme="light"] .card::after{ background: linear-gradient(90deg, transparent, rgba(79,119,255,.25), transparent); }
.card__title{
  margin: 0 0 10px;
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.card__topic{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.card__topic .card__title{ margin: 0; }
.card__topic-icon{
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  object-fit: contain;
  opacity: .95;
  filter: brightness(0) invert(1);
}
[data-theme="light"] .card__topic-icon{
  filter: brightness(0);
}
.card__project-logo{
  margin-bottom: 12px;
}
.card__project-logo-img{
  display: block;
  height: 48px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  border-radius: 8px;
}
.card__text{margin:0; color:var(--muted); line-height:1.7}

.meta{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.meta__item{
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--glass-border);
  background: var(--glass);
  color: var(--muted);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
  text-transform: uppercase;
}
.meta__item:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.08);
  border-color: rgba(79,119,255,.25);
}
[data-theme="light"] .meta__item{ background: rgba(0,0,0,.04); }
[data-theme="light"] .meta__item:hover{ background: rgba(79,119,255,.08); border-color: rgba(79,119,255,.3); }

.card__project-link{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--brand);
  transition: color .2s ease, opacity .2s ease;
}
.card__project-link:hover{ color: var(--brand2); opacity: 1; }
[data-theme="light"] .card__project-link{ color: #4338ca; }
[data-theme="light"] .card__project-link:hover{ color: #6366f1; }

.hero__cta{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.btn--telegram{ background: linear-gradient(135deg, #0088cc, #00a0e3); color: #fff; border: none; }
.btn--telegram:hover{ background: linear-gradient(135deg, #0099d6, #00a8ed); color: #fff; }
[data-theme="light"] .btn--telegram{ background: linear-gradient(135deg, #0088cc, #00a0e3); color: #fff; }
[data-theme="light"] .btn--telegram:hover{ background: linear-gradient(135deg, #0077b5, #0099d6); color: #fff; }

.contact__link--languages .contact__k::before{ display: none; }
.contact__link--languages .contact__k{ padding-left: 0; }

.skillgrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.skillgroup{
  position: relative;
  padding: 18px 18px;
  border-radius: var(--radius3);
  border: 1px solid var(--glass-border);
  background: linear-gradient(165deg, var(--card2) 0%, var(--card) 100%);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform .3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .35s ease;
}
.skillgroup:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.1);
}
[data-theme="light"] .skillgroup:hover { box-shadow: var(--shadow-glow); }
.skillgroup__title{
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .02em;
  margin-bottom: 12px;
  color: var(--text);
}
[data-theme="light"] .logo--text{padding:0 12px}
.logo--text span{font-weight:800; color:var(--muted)}
.tag{
  position:absolute;
  right:8px; top:-9px;
  font-size:11px;
  font-weight:900;
  padding:5px 8px;
  border-radius:999px;
  border:1px solid rgba(36,209,138,.45);
  background: rgba(36,209,138,.14);
  color: var(--good);
}

.contact{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:14px;
  align-items:start;
  margin-top:10px;
}
.contact__looking{
  margin-top: 16px;
  padding: 14px 18px;
  border-radius: var(--radius);
  border-left: 3px solid var(--brand);
  background: var(--glass);
  color: var(--muted);
  font-size: 15px;
  line-height: 1.5;
}
[data-theme="light"] .contact__looking{ background: rgba(79,119,255,.06); border-left-color: var(--brand); }
.contact__links{display:grid; gap:10px; margin-top:16px}
.contact__link{
  padding: 16px 18px;
  border-radius: var(--radius2);
  border: 1px solid var(--glass-border);
  background: linear-gradient(180deg, var(--card2), var(--card));
  backdrop-filter: blur(8px);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  transition: transform .25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .3s ease, border-color .25s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
a.contact__link{ text-decoration: none; color: inherit; }
.contact__link:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0,0,0,.15), 0 0 0 1px rgba(79,119,255,.15);
  border-color: rgba(79,119,255,.25);
}
[data-theme="light"] .contact__link:hover{ box-shadow: 0 16px 40px rgba(0,0,0,.06), 0 0 0 1px rgba(79,119,255,.2); }
.contact__link--email .contact__v{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.contact__link--email .contact__v a{ color: var(--text); text-decoration: none; }
.contact__link.link--external .contact__v{ margin-left: auto; }
.contact__copy{
  flex-shrink: 0;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.contact__copy:hover{
  background: var(--card2);
  color: var(--text);
  border-color: rgba(79,119,255,.25);
}
.contact__k{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 900;
  color: var(--muted2);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
}
.contact__k::before{
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  opacity: .85;
}
.contact__link--email .contact__k::before{
  -webkit-mask-image: url("assets/icon-email.svg");
  mask-image: url("assets/icon-email.svg");
}
.contact__link--telegram .contact__k::before{
  -webkit-mask-image: url("assets/icon-telegram.svg");
  mask-image: url("assets/icon-telegram.svg");
}
.contact__link--city .contact__k::before{
  -webkit-mask-image: url("assets/icon-location.svg");
  mask-image: url("assets/icon-location.svg");
}
.contact__v{font-weight:800}
.contact__card{
  position: relative;
  padding: 24px 24px;
  border-radius: var(--radius3);
  border: 1px solid rgba(79,119,255,.25);
  background: linear-gradient(145deg, rgba(79,119,255,.16) 0%, rgba(139,92,246,.12) 50%, rgba(79,119,255,.08) 100%);
  backdrop-filter: blur(14px);
  box-shadow: 0 0 50px rgba(79,119,255,.15), 0 20px 50px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.1);
}
.contact__card::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(79,119,255,.4), rgba(139,92,246,.25));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.contact__card-title{
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 16px;
  letter-spacing: -0.01em;
}
.contact__card-text{margin:10px 0 14px; color:var(--muted); line-height:1.7}
.contact__cv-date{margin:8px 0 0; font-size:0.8125rem; color:var(--muted2); font-weight:500}
[data-theme="light"] .contact__cv-date{ color:var(--muted2)}

.footer{
  position: relative;
  padding:26px 0 34px;
  margin-top: 12px;
  border-top: 1px solid var(--line);
}
.footer::before{
  content: "";
  position: absolute;
  left: 15%;
  right: 15%;
  top: 0;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, rgba(79,119,255,.4), rgba(139,92,246,.35), transparent);
  opacity: .9;
  box-shadow: 0 0 24px rgba(79,119,255,.25);
  pointer-events: none;
}
[data-theme="light"] .footer::before{ box-shadow: 0 0 20px rgba(79,119,255,.2); }
.footer__inner{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; color:var(--muted2); font-weight:600}
.footer__left, .footer__right{ transition: opacity .2s ease; }
.footer__inner:hover .footer__left,
.footer__inner:hover .footer__right{ opacity: .92; }
.footer__top{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, color .2s ease;
}
.footer__top:hover{ border-bottom-color: currentColor; color: var(--text); }
.footer__counter{
  width: 100%;
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted2);
  font-weight: 600;
}
.footer__counter span:first-of-type{ margin-right: 2px; }

.toast{
  position: fixed;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%) scale(0.92);
  padding: 10px 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.65);
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s cubic-bezier(0.34, 1.56, 0.64, 1);
  max-width: min(560px, calc(100vw - 24px));
  text-align:center;
  z-index: 100;
}
[data-theme="light"] .toast{background: rgba(20,20,20,.75)}
.toast.show{
  opacity: 1;
  transform: translateX(-50%) translateY(-4px) scale(1);
}

/* Кнопка «Наверх» — premium */
.back-to-top{
  position: fixed;
  right: 24px;
  bottom: 28px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid var(--glass-border);
  background: linear-gradient(180deg, var(--card2), var(--card));
  backdrop-filter: blur(14px);
  color: var(--text);
  font-size: 22px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: var(--shadow-soft), 0 0 0 1px rgba(255,255,255,.03), inset 0 1px 0 rgba(255,255,255,.08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease, box-shadow .3s ease, border-color .2s ease;
  z-index: 40;
}
.back-to-top:hover{
  border-color: rgba(79,119,255,.25);
  box-shadow: 0 0 24px rgba(79,119,255,.2), 0 12px 36px rgba(0,0,0,.25);
  color: var(--text);
}
.back-to-top--visible{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .back-to-top { transition: opacity .2s ease, visibility .2s ease; }
}

@media (max-width: 980px){
  .hero__grid{grid-template-columns: 1fr; gap:18px}
  .hero__title{font-size:46px}
  .cards, .cards--projects{grid-template-columns: 1fr}
  .skillgrid{grid-template-columns: 1fr 1fr}
  .contact{grid-template-columns: 1fr}
  .avatar img{aspect-ratio: 16/10}
}

@media (max-width: 720px){
  .nav{display:none}
  .burger{display:inline-grid; place-items:center}
  .header__actions .btn--primary{display:none}
  .header__cta .btn.btn--primary{display:none}
  .brand{ margin-left: 0; }
  .mobile{ display: block; }
  .hero{padding-top:24px}
  .hero__title{font-size:38px}
  .hero__tagline{ font-size: 1rem; max-width: 100%; }
  .hero__subtitle{ max-width: 100%; }
  .hero__quick{ grid-template-columns: 1fr; }
  .hero__cta{ flex-direction: column; align-items: flex-start; }
  .skillgrid{grid-template-columns: 1fr}
  .contact{ grid-template-columns: 1fr; gap: 20px; }
  .footer__inner{ flex-wrap: wrap; gap: 10px; }
}


/* --- Logo captions (skills) --- */
@media (max-width: 520px){
  .container{ padding-left: 16px; padding-right: 16px; }
  .hero__title{ font-size: 28px; line-height: 1.2; }
  .hero__tagline{ font-size: 0.9375rem; }
  .hero__subtitle{ font-size: 0.9375rem; }
  .avatar{ height: clamp(220px, 45vh, 320px); }
  .card{ padding: 18px 16px; }
  .section__lead{ font-size: 0.9375rem; }
  .hero__card{ padding: 16px; }
  .quick{ padding: 12px 14px; }
  .hero-strip__text{ font-size: 0.8125rem; white-space: normal; word-break: break-word; }
  .brand__logo{ padding: 0 12px; height: 38px; font-size: 0.9rem; }
  .header__inner{ padding: 12px 0; gap: 8px; }
  .section__title{ font-size: 1.5rem; }
  .card__title{ font-size: 1rem; }
}

.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}
.logo{
  display:grid;
  grid-template-columns:44px 1fr;
  grid-template-rows:auto auto;
  column-gap:12px;
  row-gap:2px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  align-items:center;
  min-width:0;
}
.logo{
  transition: transform .2s cubic-bezier(0.22, 1, 0.36, 1), background .2s ease, border-color .2s ease, box-shadow .25s ease;
}
.logo:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
[data-theme="light"] .logo:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.logo img{
  grid-row:1 / span 2;
  width:32px;
  height:32px;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  justify-self:center;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));
}
.logoLabel{grid-column:2;font-weight:800;font-size:14px;line-height:1.15;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.logoMeta{grid-column:2;font-size:12px;line-height:1.25;color:rgba(255,255,255,.72);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-width:0;word-break:break-word}



/* ULTRA tweaks */
.logos{ gap: 14px; }
.logo{
  min-height: 56px;
  padding: 14px 14px;
}
.logo img.logoImg{
  width: 34px;
  height: 34px;
}
.logo .logoFallback{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:flex; align-items:center; justify-content:center;
  font-weight: 900;
  font-size: 13px;
  letter-spacing: .3px;
  color: var(--text);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.logoLabel{
  font-weight: 800;
}
.logoMeta{
  margin-top: 2px;
  color: var(--muted2);
  font-weight: 700;
  min-width: 0;
  flex: 1 1 auto;
}
@media (max-width: 640px){
  .logo img.logoImg, .logo .logoFallback{ width: 28px; height: 28px; border-radius: 11px; }
}


/* --- ULTRA tweaks v3 --- */
.logo{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
}
.logoImg{
  width:32px;
  height:32px;
  object-fit:contain;
  flex:0 0 32px;
}
@media (max-width: 520px){
  .logo{ gap:12px; }
  .logoImg{ width:28px; height:28px; flex-basis:28px; }
}
.logoLabel{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  flex-shrink:0;
}
.logo .tag{
  margin-left:auto;
  flex-shrink:0;
}
.tag--learning{
  position:relative;
  border-color: rgba(92, 235, 190, .55) !important;
  color: rgba(218, 255, 244, .95) !important;
  box-shadow: 0 0 0 1px rgba(92,235,190,.25) inset, 0 0 18px rgba(92,235,190,.18);
  animation: learningPulse 1.6s ease-in-out infinite;
}
.logo.is-learning{
  box-shadow:
    0 0 0 1px rgba(92,235,190,.12) inset,
    0 0 26px rgba(92,235,190,.10);
  position:relative;
  overflow:hidden;
}
.logo.is-learning::after{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(closest-side, rgba(92,235,190,.18), transparent 60%);
  opacity:.0;
  animation: learningGlow 1.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes learningPulse{
  0%,100%{ transform: translateZ(0) scale(1); filter:saturate(1); }
  50%{ transform: translateZ(0) scale(1.05); filter:saturate(1.35); }
}
@keyframes learningGlow{
  0%,100%{ opacity: .10; }
  50%{ opacity: .34; }
}

/* Fix stacking so gradients never cover text */
.section, .card, .skillsCard, .projectsCard, .experienceCard{
  position:relative;
  z-index:1;
}
.hero__bg, .bgGrid, .bgGlow{
  z-index:0 !important;
  pointer-events:none;
}

/* Optional: for monochrome icons on dark bg */
.logoImg.mono{ filter: brightness(0) invert(1); opacity:.92; }

/* Scroll reveal — анимация появления блоков при скролле */
.reveal{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s cubic-bezier(0.22, 1, 0.36, 1), transform .6s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal{ opacity: 1; transform: none; transition: none; }
  .reveal.is-visible{ opacity: 1; transform: none; }
}
/* Каскад задержек для карточек */
.cards .card.reveal:nth-child(1){ transition-delay: 0s; }
.cards .card.reveal:nth-child(2){ transition-delay: .08s; }
.cards .card.reveal:nth-child(3){ transition-delay: .16s; }
.cards .card.reveal:nth-child(4){ transition-delay: .24s; }
.skillgrid .skillgroup.reveal:nth-child(1){ transition-delay: 0s; }
.skillgrid .skillgroup.reveal:nth-child(2){ transition-delay: .05s; }
.skillgrid .skillgroup.reveal:nth-child(3){ transition-delay: .1s; }
.skillgrid .skillgroup.reveal:nth-child(4){ transition-delay: .15s; }
.skillgrid .skillgroup.reveal:nth-child(5){ transition-delay: .2s; }
.skillgrid .skillgroup.reveal:nth-child(6){ transition-delay: .25s; }
.skillgrid .skillgroup.reveal:nth-child(7){ transition-delay: .3s; }
.skillgrid .skillgroup.reveal:nth-child(8){ transition-delay: .35s; }
.skillgrid .skillgroup.reveal:nth-child(9){ transition-delay: .4s; }
.skillgrid .skillgroup.reveal:nth-child(n+10){ transition-delay: .45s; }
/* Контакты и футер */
.contact__links.reveal{ transition-delay: .1s; }
.contact__card.reveal{ transition-delay: .2s; }
.footer__inner.reveal{ transition-delay: 0s; }


/* --- ULTRA premium tweaks v4 --- */
:root{
  --logo-size: 28px;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
}
.logoImg{
  width: var(--logo-size);
  height: var(--logo-size);
}
.logoLabel{
  flex: 0 0 auto;
  min-width: max-content;
  white-space: nowrap;
}
.logoMeta{
  flex: 1 1 auto;
  min-width: 0;
}
.tag--learning{
  margin-left: 10px;
  order: 3;
  animation: pulseGlow 1.6s ease-in-out infinite;
  box-shadow: 0 0 0 rgba(49, 224, 170, 0);
}
[data-theme="light"] .tag--learning{
  color: #047857 !important;
  background: rgba(16, 185, 129, .2) !important;
  border-color: rgba(16, 185, 129, .55) !important;
  box-shadow: 0 0 0 1px rgba(16, 185, 129, .25) inset;
  animation: learningPulseLight 1.6s ease-in-out infinite;
}
@keyframes learningPulseLight{
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 0 0 1px rgba(16, 185, 129, .25) inset; opacity: 1; }
  50% { transform: translateY(-2px) scale(1.05); box-shadow: 0 2px 12px rgba(16, 185, 129, .35), 0 0 0 1px rgba(16, 185, 129, .4) inset; opacity: .95; }
}
@keyframes pulseGlow{
  0%, 100% { transform: translateY(0); filter: brightness(1); box-shadow: 0 0 0 rgba(49,224,170,0); }
  50% { transform: translateY(-1px); filter: brightness(1.12); box-shadow: 0 0 22px rgba(49,224,170,.25); }
}

/* Prevent section content from being visually covered by any background layers */
.section{ position: relative; z-index: 1; }

#experience{ padding-bottom: 96px; }

/* Scroll progress */
.scrollProgress{
  position: fixed;
  top: 0;
  left: 0;
  height: 5px;
  width: 0%;
  z-index: 9999;
  background: linear-gradient(90deg, var(--brand), var(--brand2));
  box-shadow: 0 0 28px rgba(79,119,255,.6), 0 0 56px rgba(139,92,246,.3), 0 2px 8px rgba(0,0,0,.15);
  transform-origin: 0 0;
  transition: width .15s ease-out;
  border-radius: 0 4px 4px 0;
}
[data-theme="light"] .scrollProgress{
  box-shadow: 0 0 24px rgba(79,119,255,.5), 0 0 48px rgba(139,92,246,.25);
}
@media (prefers-reduced-motion: reduce){
  .scrollProgress{display:none;}
}

/* Уменьшение движения: отключаем transform при ховере */
@media (prefers-reduced-motion: reduce) {
  .card:hover, .skillgroup:hover, .contact__link:hover,
  .avatar:hover, .back-to-top:hover, .brand:hover,
  .pill:hover, .meta__item:hover, .logo:hover,
  .nav__link:hover, .theme-toggle:hover, .burger:hover {
    transform: none;
  }
  .btn--primary:hover { transform: none; }
  .avatar:hover .avatar__img { transform: scale(1.02); }
  .link--external:hover::after { transform: none; }
}

/* v6 tweaks: keep hero content within viewport */
.hero__card--strengths{padding:16px 18px}
.hero__card--strengths .cardTitle{font-size:16px}
.hero__card--strengths li{font-size:13.5px; line-height:1.35; margin:0}
.hero__card--strengths ul{gap:8px}
@media (max-width: 980px){
  .avatar{width:100%; height:clamp(300px, 48vh, 420px)}
}

/* Печать: чистый вид, без анимаций и лишнего */
@media print {
  body.page-load, body.loaded { opacity: 1; transition: none; }
  body::before { display: none; }
  .scrollProgress, .back-to-top, .theme-toggle, .burger, .toast,
  .skip, .mobile { display: none !important; }
  .header {
    background: #fff;
    border-bottom: 1px solid #ddd;
    box-shadow: none;
  }
  .header::after { display: none; }
  html, body { background: #fff; }
  .hero__title {
    -webkit-text-fill-color: currentColor;
    color: #111;
    background: none;
  }
  .section + .section::before, .footer::before { opacity: .4; }
  .card, .skillgroup, .hero__card, .contact__card {
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
    break-inside: avoid;
  }
  .contact__copy { display: none; }
  .link--external::after { content: ""; }
}

/* Кнопка смены темы — лёгкая моргающая подсветка (приглашение переключить) */
@keyframes theme-toggle-glow {
  0%, 100% { box-shadow: 0 0 0 1px var(--line), 0 0 12px rgba(79, 119, 255, 0.2), 0 0 24px rgba(79, 119, 255, 0.08); }
  50%      { box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.4), 0 0 16px rgba(79, 119, 255, 0.35), 0 0 32px rgba(79, 119, 255, 0.15); }
}
@keyframes theme-toggle-glow-light {
  0%, 100% { box-shadow: 0 0 0 1px var(--line), 0 0 12px rgba(79, 119, 255, 0.15), 0 0 20px rgba(79, 119, 255, 0.06); }
  50%      { box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35), 0 0 18px rgba(79, 119, 255, 0.28), 0 0 28px rgba(79, 119, 255, 0.12); }
}
.page-premium .theme-toggle {
  animation: theme-toggle-glow 2.5s ease-in-out infinite;
}
html[data-theme="light"] .page-premium .theme-toggle {
  animation-name: theme-toggle-glow-light;
}
.page-premium .theme-toggle:hover {
  animation: none;
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.3), 0 4px 20px rgba(79, 119, 255, 0.25), 0 0 28px rgba(79, 119, 255, 0.15);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .theme-toggle {
    animation: none;
    box-shadow: 0 0 0 1px var(--line), 0 0 12px rgba(79, 119, 255, 0.15);
  }
}

/* ========== 1) Hero: визуальная иерархия + контраст в обеих темах ========== */
.page-premium .hero__title {
  /* Тёмная тема: светлый градиент (как в базе), не трогаем fill */
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.9) 50%, rgba(255,255,255,.85) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--text);
}
html[data-theme="light"] .page-premium .hero__title {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 50%, #334155 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #0f172a;
}

.page-premium .hero__subtitle {
  color: rgba(255, 255, 255, 0.9);
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.01em;
  max-width: 54ch;
}
html[data-theme="light"] .page-premium .hero__subtitle {
  color: rgba(0, 0, 0, 0.85);
}

/* Pills и quick в hero — явный контраст */
html[data-theme="light"] .page-premium .hero__badge .pill {
  color: #1e293b;
  background: rgba(0, 0, 0, 0.06);
  border-color: rgba(0, 0, 0, 0.1);
}
html[data-theme="light"] .page-premium .hero__badge .pill--muted {
  color: #475569;
}
html[data-theme="light"] .page-premium .hero__quick .quick__k {
  color: #64748b;
}
html[data-theme="light"] .page-premium .hero__quick .quick__v {
  color: #0f172a;
}
.page-premium .quick__icon {
  gap: 8px;
}
.page-premium .quick__icon-label {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-color: inherit;
}

/* Фокус / Город / Контакты — обводка, свечение, больше воздуха */
.page-premium .hero__quick .quick {
  padding: 20px 22px;
  line-height: 1.55;
  border-radius: 16px;
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.1),
              0 8px 32px rgba(0, 0, 0, 0.25),
              0 0 32px rgba(79, 119, 255, 0.06),
              inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition: box-shadow 0.3s ease, border-color 0.25s ease;
}
.page-premium .hero__quick .quick:hover {
  border-color: rgba(79, 119, 255, 0.3);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 12px 40px rgba(0, 0, 0, 0.3),
              0 0 48px rgba(79, 119, 255, 0.1),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.page-premium .hero__quick .quick__k {
  margin-bottom: 4px;
  font-size: 11.5px;
  transition: color 0.2s ease;
}
.page-premium .hero__quick .quick__v {
  margin-top: 12px;
  line-height: 1.65;
  font-size: 15px;
  transition: color 0.2s ease;
}
[data-theme="light"] .page-premium .hero__quick .quick {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 8px 32px rgba(0, 0, 0, 0.06),
              0 0 24px rgba(79, 119, 255, 0.05),
              inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
[data-theme="light"] .page-premium .hero__quick .quick:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 12px 40px rgba(0, 0, 0, 0.05),
              0 0 32px rgba(79, 119, 255, 0.08);
}

/* ========== 2) CTA «Связаться» — живая реакция ========== */
.page-premium .hero__cta .btn--ghost {
  position: relative;
  overflow: hidden;
}
.page-premium .hero__cta .btn--ghost .btn__text {
  display: inline-block;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.page-premium .hero__cta .btn--ghost .btn__arrow {
  display: inline-block;
  margin-left: 6px;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.page-premium .hero__cta .btn--ghost:hover .btn__text {
  transform: translateX(3px);
}
.page-premium .hero__cta .btn--ghost:hover .btn__arrow {
  opacity: 1;
  transform: translateX(0);
}

/* ========== 3) Фото — премиум без рамки ========== */
/* Аватар — обводка, свечение, лёгкий подъём при hover */
.page-premium .avatar {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow:
    0 0 0 1px rgba(79, 119, 255, 0.2),
    0 0 24px rgba(79, 119, 255, 0.12),
    0 32px 64px rgba(0, 0, 0, 0.45),
    0 0 80px rgba(79, 119, 255, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease, border-color 0.3s ease;
  clip-path: inset(0 round var(--radius3));
}
.page-premium .avatar::before {
  display: none;
}
.page-premium .avatar:hover {
  transform: translateY(-8px);
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow:
    0 0 0 1px rgba(79, 119, 255, 0.3),
    0 0 40px rgba(79, 119, 255, 0.2),
    0 40px 80px rgba(0, 0, 0, 0.5),
    0 0 120px rgba(79, 119, 255, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.page-premium .avatar img,
.page-premium .avatar .avatar__img {
  border-radius: inherit;
}
[data-theme="light"] .page-premium .avatar {
  border-color: rgba(79, 119, 255, 0.2);
  box-shadow:
    0 0 0 1px rgba(79, 119, 255, 0.15),
    0 0 20px rgba(79, 119, 255, 0.08),
    0 28px 56px rgba(0, 0, 0, 0.14),
    0 0 60px rgba(79, 119, 255, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
[data-theme="light"] .page-premium .avatar:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow:
    0 0 0 1px rgba(79, 119, 255, 0.25),
    0 0 32px rgba(79, 119, 255, 0.15),
    0 36px 72px rgba(0, 0, 0, 0.12),
    0 0 80px rgba(79, 119, 255, 0.1);
}

/* ========== 4) Навигация — active underline + sticky shrink ========== */
.page-premium .header {
  transition: padding 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, border-color 0.25s ease;
}
.page-premium .header.header--scrolled .header__inner {
  padding-top: 10px;
  padding-bottom: 10px;
}
.page-premium .nav {
  position: relative;
}
.page-premium .nav__link {
  position: relative;
  padding-bottom: 10px;
}
.page-premium .nav__link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--gradient-brand);
  box-shadow: 0 0 0 rgba(79, 119, 255, 0);
  transition: width 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
  transform: translateX(-50%);
}
.page-premium .nav__link:hover::after {
  width: 100%;
  box-shadow: 0 0 10px rgba(79, 119, 255, 0.5);
}
.page-premium .nav__indicator {
  position: absolute;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--gradient-brand);
  box-shadow: 0 0 12px rgba(79, 119, 255, 0.4);
  transition: left 0.4s cubic-bezier(0.22, 1, 0.36, 1), width 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
  pointer-events: none;
}
.page-premium .nav__indicator.nav__indicator--hidden {
  opacity: 0;
}

/* ========== 5) Карточки — без градиента внутри, только тени и hover ========== */
.page-premium .card::after,
.page-premium .hero__card::after {
  display: none;
}
.page-premium .card > *,
.page-premium .hero__card > * {
  position: relative;
  z-index: 1;
}

/* ========== 6) Hero background — лёгкий drift ========== */
.page-premium .hero__bg {
  display: none;
}

/* ========== 7) Список «Сильные стороны» — reveal-stagger ========== */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger > *:nth-child(1) { transition-delay: 0.05s; }
.reveal-stagger > *:nth-child(2) { transition-delay: 0.12s; }
.reveal-stagger > *:nth-child(3) { transition-delay: 0.19s; }
.reveal-stagger > *:nth-child(4) { transition-delay: 0.26s; }
.reveal-stagger > *:nth-child(5) { transition-delay: 0.33s; }
.reveal-stagger > *:nth-child(n + 6) { transition-delay: 0.4s; }

@media (prefers-reduced-motion: reduce) {
  .reveal-stagger > *,
  .reveal-stagger.is-visible > * { opacity: 1; transform: none; transition: none; }
  .card::before,
  .hero__card::before { animation: none; }
  .hero__bg { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   ВИДНО СРАЗУ — отличия без hover/скролла
   ═══════════════════════════════════════════════════════════════════ */

/* Фон страницы — градиент без fixed (fixed сильно грузит скролл в браузере) */
/* Градиент прокручивается вместе со страницей для плавного скролла */

/* Заголовки секций — градиентный текст (Навыки, Проекты, Опыт и т.д.) */
.page-premium .section__title {
  background: linear-gradient(135deg, #7b9aff 0%, #a78bfa 50%, #c4b5fd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: none;
  font-weight: 800;
}
[data-theme="light"] .page-premium .section__title {
  background: linear-gradient(135deg, #4f77ff 0%, #7c3aed 50%, #8b5cf6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Блоки навыков (skillgroup) — без градиента внутри, плавные тени при смене темы/hover */
.page-premium .skillgroup {
  border: 1px solid var(--glass-border);
  background: var(--card);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition: box-shadow 0.35s ease, border-color 0.25s ease;
}
[data-theme="light"] .page-premium .skillgroup {
  border: 1px solid var(--glass-border);
  background: var(--card);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08),
              inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.page-premium .skillgroup:hover {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.38),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
[data-theme="light"] .page-premium .skillgroup:hover {
  border-color: rgba(79, 119, 255, 0.3);
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.08),
              inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* Отдельный скилл (.logo) — левый акцент по умолчанию */
.page-premium .skillgrid .logo {
  position: relative;
  padding-left: 16px;
  background: rgba(79, 119, 255, 0.04);
  border-color: rgba(79, 119, 255, 0.15);
  box-shadow: inset 3px 0 0 var(--brand), 0 4px 16px rgba(0, 0, 0, 0.15);
  transition: box-shadow 0.3s ease, border-color 0.25s ease, background 0.25s ease;
}
[data-theme="light"] .page-premium .skillgrid .logo {
  background: rgba(79, 119, 255, 0.05);
  border-color: rgba(79, 119, 255, 0.2);
  box-shadow: inset 3px 0 0 var(--brand), 0 4px 16px rgba(0, 0, 0, 0.06);
}

/* Блок «Сильные стороны» в hero — обводка, тени, выделение заголовка */
.page-premium .hero__card {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 16px 48px rgba(0, 0, 0, 0.35),
              0 0 40px rgba(79, 119, 255, 0.08),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: box-shadow 0.35s ease, transform 0.3s ease, border-color 0.3s ease;
}
.page-premium .hero__card:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.25),
              0 20px 56px rgba(0, 0, 0, 0.4),
              0 0 56px rgba(79, 119, 255, 0.12),
              inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.page-premium .hero__card-title {
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.25),
               0 1px 2px rgba(0, 0, 0, 0.2);
  letter-spacing: 0.01em;
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .hero__card {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.15),
              0 16px 48px rgba(0, 0, 0, 0.08),
              0 0 32px rgba(79, 119, 255, 0.06),
              inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
[data-theme="light"] .page-premium .hero__card:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.3),
              0 20px 56px rgba(0, 0, 0, 0.06),
              0 0 40px rgba(79, 119, 255, 0.08);
}
[data-theme="light"] .page-premium .hero__card-title {
  text-shadow: 0 0 24px rgba(79, 119, 255, 0.2),
               0 1px 1px rgba(0, 0, 0, 0.06);
}

/* Карточки секций — тонкая градиентная обводка по умолчанию */
.page-premium .card {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.1),
              0 12px 40px rgba(0, 0, 0, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="light"] .page-premium .card {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 12px 40px rgba(0, 0, 0, 0.06);
}

/* Подзаголовок секции (section__hint) — чуть ярче */
.page-premium .section__hint {
  color: var(--muted);
}

/* ═══════════════════════════════════════════════════════════════════
   ULTRA PREMIUM — топовый лендинг (hover, hero, детали)
   ═══════════════════════════════════════════════════════════════════ */

/* Hero: градиентная вуаль + акцент на подчёркивании имени */
.page-premium .hero {
  position: relative;
}
.page-premium .hero::after {
  content: none;
}
.page-premium .hero .hero__grid,
.page-premium .hero .container { position: relative; z-index: 1; }
.page-premium .hero__title::after {
  box-shadow: 0 0 28px rgba(79, 119, 255, 0.5), 0 0 60px rgba(79, 119, 255, 0.2);
  transition: box-shadow 0.35s ease;
}
html[data-theme="light"] .page-premium .hero__title::after {
  box-shadow: 0 0 16px rgba(79, 119, 255, 0.35);
}

/* Pills — лёгкое свечение при hover */
.page-premium .hero__badge .pill {
  transition: transform 0.25s ease, box-shadow 0.3s ease, border-color 0.25s ease;
}
.page-premium .hero__badge .pill:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.25), 0 6px 24px rgba(79, 119, 255, 0.15);
}

/* Primary CTA — умеренный hover */
.page-premium .hero__cta .btn--primary {
  position: relative;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.35s ease;
}
.page-premium .hero__cta .btn--primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(79, 119, 255, 0.22), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
}
.page-premium .hero__cta .btn--primary::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
  transition: left 0.6s ease;
}
.page-premium .hero__cta .btn--primary:hover::after {
  left: 100%;
}

/* Карточки — лёгкий подъём + глубже тень при hover */
.page-premium .card {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease, border-color 0.3s ease;
}
.page-premium .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.04);
}
[data-theme="light"] .page-premium .card:hover {
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(79, 119, 255, 0.08);
}

/* Раздел «Проекты» — обводка, свечение, акцент на лого и заголовке */
.page-premium .card--project {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 16px 48px rgba(0, 0, 0, 0.35),
              0 0 40px rgba(79, 119, 255, 0.06),
              inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.page-premium .card--project:hover {
  border-color: rgba(79, 119, 255, 0.3);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.22),
              0 24px 56px rgba(0, 0, 0, 0.4),
              0 0 56px rgba(79, 119, 255, 0.12),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.page-premium .card--project .card__title {
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.2),
               0 1px 2px rgba(0, 0, 0, 0.15);
  transition: text-shadow 0.25s ease;
}
.page-premium .card--project .card__project-logo {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(79, 119, 255, 0.12);
  margin-bottom: 12px;
  transition: border-bottom-color 0.25s ease;
}
.page-premium .card--project .card__project-logo-img {
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}
[data-theme="light"] .page-premium .card--project {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.15),
              0 16px 48px rgba(0, 0, 0, 0.08),
              0 0 32px rgba(79, 119, 255, 0.05),
              inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
[data-theme="light"] .page-premium .card--project:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.25),
              0 24px 56px rgba(0, 0, 0, 0.06),
              0 0 48px rgba(79, 119, 255, 0.08);
}
[data-theme="light"] .page-premium .card--project .card__title {
  text-shadow: 0 0 24px rgba(79, 119, 255, 0.15),
               0 1px 1px rgba(0, 0, 0, 0.05);
}
[data-theme="light"] .page-premium .card--project .card__project-logo {
  border-bottom-color: rgba(79, 119, 255, 0.15);
}

/* Раздел «Опыт и подход» — обводка, свечение, акцент на блоке иконка+заголовок */
.page-premium #experience .card {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 16px 48px rgba(0, 0, 0, 0.35),
              0 0 40px rgba(79, 119, 255, 0.06),
              inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.page-premium #experience .card:hover {
  border-color: rgba(79, 119, 255, 0.3);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.22),
              0 24px 56px rgba(0, 0, 0, 0.4),
              0 0 56px rgba(79, 119, 255, 0.12),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.page-premium #experience .card__topic {
  padding-bottom: 12px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(79, 119, 255, 0.15);
  transition: border-bottom-color 0.25s ease;
}
.page-premium #experience .card__topic .card__title {
  text-shadow: 0 0 18px rgba(79, 119, 255, 0.22),
               0 1px 2px rgba(0, 0, 0, 0.12);
  transition: text-shadow 0.25s ease;
}
.page-premium #experience .card__topic-icon {
  filter: brightness(0) invert(1) drop-shadow(0 0 8px rgba(79, 119, 255, 0.35));
}
[data-theme="light"] .page-premium #experience .card {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.15),
              0 16px 48px rgba(0, 0, 0, 0.08),
              0 0 32px rgba(79, 119, 255, 0.05),
              inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
[data-theme="light"] .page-premium #experience .card:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.25),
              0 24px 56px rgba(0, 0, 0, 0.06),
              0 0 48px rgba(79, 119, 255, 0.08);
}
[data-theme="light"] .page-premium #experience .card__topic {
  border-bottom-color: rgba(79, 119, 255, 0.18);
}
[data-theme="light"] .page-premium #experience .card__topic .card__title {
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.12),
               0 1px 1px rgba(0, 0, 0, 0.05);
}
[data-theme="light"] .page-premium #experience .card__topic-icon {
  filter: brightness(0) drop-shadow(0 0 6px rgba(79, 119, 255, 0.25));
}

/* Плашка «изучаю» у скиллов — аккуратнее и с лёгким свечением */
.page-premium .skillgrid .tag--learning {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(92, 235, 190, 0.35) inset,
              0 2px 10px rgba(92, 235, 190, 0.25),
              0 0 20px rgba(92, 235, 190, 0.15);
  transition: box-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .skillgrid .tag--learning {
  box-shadow: 0 0 0 1px rgba(16, 185, 129, 0.4) inset,
              0 2px 10px rgba(16, 185, 129, 0.2),
              0 0 16px rgba(16, 185, 129, 0.12);
}

/* Разделитель между секциями — ярче градиент */
.page-premium .section + .section::before {
  height: 3px;
  opacity: 1;
  box-shadow: 0 0 24px rgba(79, 119, 255, 0.3);
  transition: box-shadow 0.3s ease;
}

/* Scroll progress — градиент, толще и заметнее */
.page-premium .scrollProgress {
  height: 6px;
  background: linear-gradient(90deg, var(--brand), var(--brand2));
  box-shadow: 0 0 20px rgba(79, 119, 255, 0.5);
}

/* Кнопка «Наверх» — плавнее появление + лёгкий pulse */
.page-premium .back-to-top {
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, text-shadow 0.25s ease;
}
.page-premium .back-to-top:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 6px 24px rgba(79, 119, 255, 0.3);
}

/* Contact card — мягкое свечение */
.page-premium .contact__card {
  transition: box-shadow 0.4s ease, transform 0.3s ease;
}
.page-premium .contact__card:hover {
  box-shadow: 0 0 60px rgba(79, 119, 255, 0.2), 0 20px 50px rgba(0, 0, 0, 0.2);
  transform: translateY(-2px);
}

/* Footer — верхняя граница с градиентом + лёгкое свечение текста */
.page-premium .footer {
  position: relative;
}
.page-premium .footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79, 119, 255, 0.4), rgba(139, 92, 246, 0.3), transparent);
  opacity: 0.8;
  transition: opacity 0.25s ease;
}
.page-premium .footer:hover::before {
  opacity: 1;
}
.page-premium .footer__inner {
  text-shadow: 0 0 30px rgba(79, 119, 255, 0.12),
               0 1px 2px rgba(0, 0, 0, 0.1);
  transition: text-shadow 0.25s ease;
}
.page-premium .footer__top:hover {
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.25);
}
[data-theme="light"] .page-premium .footer__inner {
  text-shadow: 0 0 24px rgba(79, 119, 255, 0.08),
               0 1px 1px rgba(0, 0, 0, 0.04);
}

/* Контакты — левая акцентная полоска (как у скиллов) */
.page-premium .contact__links .contact__link {
  position: relative;
  padding-left: 20px;
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.35),
              0 4px 20px rgba(0, 0, 0, 0.12);
  border-color: rgba(79, 119, 255, 0.15);
}
.page-premium .contact__links .contact__link:hover {
  box-shadow: inset 3px 0 0 var(--brand),
              0 16px 40px rgba(0, 0, 0, 0.15),
              0 0 0 1px rgba(79, 119, 255, 0.15);
}
[data-theme="light"] .page-premium .contact__links .contact__link {
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.25),
              0 4px 20px rgba(0, 0, 0, 0.05);
}
[data-theme="light"] .page-premium .contact__links .contact__link:hover {
  box-shadow: inset 3px 0 0 var(--brand),
              0 16px 40px rgba(0, 0, 0, 0.06),
              0 0 0 1px rgba(79, 119, 255, 0.2);
}

/* Pills в hero — обводка и тень в покое */
.page-premium .hero__badge .pill {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.12),
              0 2px 10px rgba(0, 0, 0, 0.2);
}
[data-theme="light"] .page-premium .hero__badge .pill {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.1),
              0 2px 8px rgba(0, 0, 0, 0.06);
}

/* Кнопка «Наверх» — мягкое свечение в покое */
.page-premium .back-to-top.back-to-top--visible {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.15),
              0 4px 20px rgba(0, 0, 0, 0.25),
              0 0 24px rgba(79, 119, 255, 0.12);
}
[data-theme="light"] .page-premium .back-to-top.back-to-top--visible {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 4px 20px rgba(0, 0, 0, 0.08),
              0 0 20px rgba(79, 119, 255, 0.1);
}

/* Навигация — активный пункт с пилюлей и подсветкой */
.page-premium .nav__link--current {
  border-radius: 999px;
  padding-left: 14px;
  padding-right: 14px;
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35),
              0 0 20px rgba(79, 119, 255, 0.2),
              inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: box-shadow 0.25s ease, background 0.2s ease, color 0.2s ease;
}
[data-theme="light"] .page-premium .nav__link--current {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.3),
              0 0 16px rgba(79, 119, 255, 0.15);
}

/* Фокус для клавиатуры (Tab) — аккуратное кольцо */
.page-premium .btn:focus-visible,
.page-premium .nav__link:focus-visible,
.page-premium .contact__link:focus-visible,
.page-premium .theme-toggle:focus-visible,
.page-premium .back-to-top:focus-visible,
.page-premium a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 20px rgba(79, 119, 255, 0.3);
}
[data-theme="light"] .page-premium .btn:focus-visible,
[data-theme="light"] .page-premium .nav__link:focus-visible,
[data-theme="light"] .page-premium .contact__link:focus-visible,
[data-theme="light"] .page-premium .theme-toggle:focus-visible,
[data-theme="light"] .page-premium .back-to-top:focus-visible,
[data-theme="light"] .page-premium a:focus-visible {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand), 0 0 16px rgba(79, 119, 255, 0.25);
}

/* Мета-теги в карточках проектов — фон и рамка */
.page-premium .card .meta__item {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12),
              inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.page-premium .card .meta__item:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15),
              0 0 12px rgba(79, 119, 255, 0.1);
}
[data-theme="light"] .page-premium .card .meta__item {
  border-color: rgba(79, 119, 255, 0.18);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .page-premium .card .meta__item:hover {
  border-color: rgba(79, 119, 255, 0.4);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06),
              0 0 12px rgba(79, 119, 255, 0.12);
}

/* Полоса прогресса скролла — скруглённые концы и свечение */
.page-premium .scrollProgress {
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 20px rgba(79, 119, 255, 0.5),
              0 0 40px rgba(79, 119, 255, 0.2);
}
[data-theme="light"] .page-premium .scrollProgress {
  box-shadow: 0 0 16px rgba(79, 119, 255, 0.4),
              0 0 32px rgba(139, 92, 246, 0.15);
}

/* ═══════════════════════════════════════════════════════════════════
   Дополнительные улучшения
   ═══════════════════════════════════════════════════════════════════ */

/* Логотип в шапке — лёгкий акцент при hover */
.page-premium .brand__logo {
  transition: box-shadow 0.3s ease, border-color 0.25s ease;
}
.page-premium .brand:hover .brand__logo {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 4px 16px rgba(79, 119, 255, 0.12);
}

/* Ссылка «Перейти к контенту» — при фокусе премиум-вид */
.page-premium .skip:focus {
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand),
              0 4px 20px rgba(79, 119, 255, 0.2);
  border-color: rgba(79, 119, 255, 0.4);
}

/* Подсказки секций — левая полоска и лёгкое свечение текста */
.page-premium .section__hint {
  position: relative;
  padding-left: 14px;
  border-left: 3px solid rgba(79, 119, 255, 0.35);
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.08);
  transition: border-left-color 0.25s ease;
}
.page-premium .section__hint:hover {
  border-left-color: rgba(79, 119, 255, 0.5);
}
[data-theme="light"] .page-premium .section__hint {
  border-left-color: rgba(79, 119, 255, 0.4);
}
[data-theme="light"] .page-premium .section__hint:hover {
  border-left-color: rgba(79, 119, 255, 0.55);
}

/* Кнопка «Копировать» в контактах */
.page-premium .contact__copy {
  border: 1px solid rgba(79, 119, 255, 0.2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12),
              inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: box-shadow 0.25s ease, border-color 0.2s ease;
}
.page-premium .contact__copy:hover {
  border-color: rgba(79, 119, 255, 0.35);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15),
              0 0 16px rgba(79, 119, 255, 0.12);
}
[data-theme="light"] .page-premium .contact__copy {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .page-premium .contact__copy:hover {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08),
              0 0 12px rgba(79, 119, 255, 0.15);
}

/* Выделение текста — чуть ярче в премиуме */
.page-premium ::selection {
  background: rgba(79, 119, 255, 0.4);
  color: var(--text);
}
[data-theme="light"] .page-premium ::selection {
  background: rgba(79, 119, 255, 0.32);
}

/* Маркеры списка «Сильные стороны» — усиленное свечение */
.page-premium .hero__card .bullets li::before {
  box-shadow: 0 0 12px rgba(79, 119, 255, 0.5),
              0 0 24px rgba(79, 119, 255, 0.2);
}
[data-theme="light"] .page-premium .hero__card .bullets li::before {
  box-shadow: 0 0 10px rgba(79, 119, 255, 0.4),
              0 0 20px rgba(79, 119, 255, 0.15);
}

/* Шапка при скролле — чуть глубже тень */
.page-premium .header.header--scrolled {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2),
              0 1px 0 rgba(255, 255, 255, 0.03);
}
[data-theme="light"] .page-premium .header.header--scrolled {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08),
              0 1px 0 rgba(0, 0, 0, 0.04);
}

/* Скроллбар — тонкая полоса в стиле бренда (WebKit) */
.page-premium::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
.page-premium::-webkit-scrollbar-track {
  background: var(--bg2);
}
.page-premium::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(79, 119, 255, 0.5), rgba(139, 92, 246, 0.4));
  border-radius: 5px;
  transition: background 0.2s ease;
}
.page-premium::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(79, 119, 255, 0.7), rgba(139, 92, 246, 0.6));
}
html[data-theme="light"] .page-premium::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(79, 119, 255, 0.45), rgba(139, 92, 246, 0.35));
}
html[data-theme="light"] .page-premium::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(79, 119, 255, 0.65), rgba(139, 92, 246, 0.5));
}

/* ═══════════════════════════════════════════════════════════════════
   Ещё улучшения: лид, бургер, мобильное меню, тост, типографика
   ═══════════════════════════════════════════════════════════════════ */

/* Лид-абзацы секций — левая полоска и читаемость */
.page-premium .section__lead {
  position: relative;
  padding-left: 16px;
  border-left: 3px solid rgba(79, 119, 255, 0.25);
  text-shadow: 0 0 24px rgba(79, 119, 255, 0.06),
               0 1px 2px rgba(0, 0, 0, 0.08);
  transition: border-left-color 0.3s ease, text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .section__lead {
  border-left-color: rgba(79, 119, 255, 0.3);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.03);
}

/* Иконка рядом с заголовком секции — лёгкое свечение */
.page-premium .section__title-icon {
  filter: brightness(0) invert(1) drop-shadow(0 0 8px rgba(79, 119, 255, 0.3));
  transition: filter 0.3s ease;
}
.page-premium .section__title-wrap:hover .section__title-icon {
  filter: brightness(0) invert(1) drop-shadow(0 0 12px rgba(79, 119, 255, 0.5)) drop-shadow(0 0 24px rgba(79, 119, 255, 0.2));
}
[data-theme="light"] .page-premium .section__title-icon {
  filter: brightness(0) drop-shadow(0 0 6px rgba(79, 119, 255, 0.25));
}
[data-theme="light"] .page-premium .section__title-wrap:hover .section__title-icon {
  filter: brightness(0) drop-shadow(0 0 10px rgba(79, 119, 255, 0.4)) drop-shadow(0 0 20px rgba(79, 119, 255, 0.15));
}

/* Кнопка бургер-меню — обводка и свечение при hover/focus */
.page-premium .burger {
  border-radius: 12px;
  transition: box-shadow 0.25s ease, border-color 0.2s ease;
}
.page-premium .burger:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 4px 16px rgba(79, 119, 255, 0.12);
}
.page-premium .burger.open {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.25),
              0 4px 20px rgba(79, 119, 255, 0.15);
}

/* Мобильное меню — ссылки с акцентом при открытии */
.page-premium .mobile.open .mobile__link {
  border-radius: 12px;
  transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
.page-premium .mobile.open .mobile__link:hover,
.page-premium .mobile.open .mobile__link--current {
  background: rgba(79, 119, 255, 0.12);
  box-shadow: inset 3px 0 0 var(--brand);
}
[data-theme="light"] .page-premium .mobile.open .mobile__link:hover,
[data-theme="light"] .page-premium .mobile.open .mobile__link--current {
  background: rgba(79, 119, 255, 0.08);
  box-shadow: inset 3px 0 0 var(--brand);
}

/* Ссылка «Наверх» в футере — плавное подчёркивание */
.page-premium .footer__top {
  transition: border-bottom-color 0.25s ease, color 0.2s ease, text-shadow 0.2s ease;
}

/* Toast (уведомление) — премиум-обводка и свечение */
.page-premium .toast {
  border: 1px solid rgba(79, 119, 255, 0.3);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05),
              0 8px 32px rgba(0, 0, 0, 0.4),
              0 0 40px rgba(79, 119, 255, 0.15);
}
.page-premium .toast.show {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35),
              0 8px 32px rgba(0, 0, 0, 0.4),
              0 0 48px rgba(79, 119, 255, 0.2);
}
[data-theme="light"] .page-premium .toast {
  border-color: rgba(79, 119, 255, 0.25);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5),
              0 8px 32px rgba(0, 0, 0, 0.15),
              0 0 32px rgba(79, 119, 255, 0.1);
}

/* Текст в карточках — лёгкая тень для читаемости */
.page-premium .card__text {
  text-shadow: 0 0 20px rgba(0, 0, 0, 0.05),
               0 1px 1px rgba(0, 0, 0, 0.04);
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .card__text {
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.02);
}

/* Заголовки групп навыков — лёгкое свечение */
.page-premium .skillgroup__title {
  text-shadow: 0 0 16px rgba(79, 119, 255, 0.15),
               0 1px 2px rgba(0, 0, 0, 0.1);
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .skillgroup__title {
  text-shadow: 0 0 12px rgba(79, 119, 255, 0.1),
               0 1px 1px rgba(0, 0, 0, 0.04);
}

/* Внешние ссылки — иконка с плавным появлением */
.page-premium a.link--external::after {
  transition: opacity 0.25s ease, transform 0.2s ease;
}
.page-premium a.link--external:hover::after {
  opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════════
   Ещё: кнопка в шапке, контакт-карточка, CTA hero, reduced motion
   ═══════════════════════════════════════════════════════════════════ */

/* Кнопка «Скачать резюме» в шапке — спокойный вид */
.page-premium .header .btn--primary {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08),
              0 2px 12px rgba(79, 119, 255, 0.2),
              0 4px 16px rgba(0, 0, 0, 0.12);
  transition: box-shadow 0.3s ease, transform 0.25s ease;
}
.page-premium .header .btn--primary:hover {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1),
              0 4px 20px rgba(79, 119, 255, 0.25),
              0 8px 24px rgba(0, 0, 0, 0.15);
}
[data-theme="light"] .page-premium .header .btn--primary {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.2),
              0 2px 12px rgba(79, 119, 255, 0.18),
              0 4px 16px rgba(0, 0, 0, 0.04);
}

/* Контакт-карточка (блок справа в Контактах) — левая акцентная полоска */
.page-premium .contact__card {
  padding-left: 20px;
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.3),
              0 12px 40px rgba(0, 0, 0, 0.25),
              0 0 0 1px rgba(79, 119, 255, 0.08);
}
[data-theme="light"] .page-premium .contact__card {
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.25),
              0 12px 40px rgba(0, 0, 0, 0.08),
              0 0 0 1px rgba(79, 119, 255, 0.1);
}
/* Секция Контакты: при наведении на блок — карточка «Быстрое действие» чуть подсвечивается */
.page-premium #contacts .contact:hover .contact__card {
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.4),
              0 0 36px rgba(79, 119, 255, 0.1),
              0 14px 44px rgba(0, 0, 0, 0.28),
              0 0 0 1px rgba(79, 119, 255, 0.12);
}
[data-theme="light"] .page-premium #contacts .contact:hover .contact__card {
  box-shadow: inset 3px 0 0 rgba(79, 119, 255, 0.35),
              0 0 28px rgba(79, 119, 255, 0.08),
              0 14px 44px rgba(0, 0, 0, 0.06),
              0 0 0 1px rgba(79, 119, 255, 0.15);
}

/* Блок CTA в hero (Смотреть проекты + Связаться) — акцент снизу */
.page-premium .hero__cta {
  position: relative;
  padding-bottom: 8px;
}
.page-premium .hero__cta::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79, 119, 255, 0.25), rgba(139, 92, 246, 0.2), transparent);
  opacity: 0.8;
  transition: opacity 0.3s ease;
}
.page-premium .hero__cta:hover::after {
  opacity: 1;
}

/* Заголовки карточек (все) — единое лёгкое свечение */
.page-premium .card .card__title {
  text-shadow: 0 0 18px rgba(79, 119, 255, 0.12),
               0 1px 2px rgba(0, 0, 0, 0.08);
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .card .card__title {
  text-shadow: 0 0 14px rgba(79, 119, 255, 0.08),
               0 1px 1px rgba(0, 0, 0, 0.03);
}

/* Кнопка «Наверх» — стрелка чётче */
.page-premium .back-to-top {
  text-shadow: 0 0 12px rgba(79, 119, 255, 0.3),
               0 1px 2px rgba(0, 0, 0, 0.2);
}
[data-theme="light"] .page-premium .back-to-top {
  text-shadow: 0 0 10px rgba(79, 119, 255, 0.2),
               0 1px 1px rgba(0, 0, 0, 0.06);
}

/* Шапка секции (строка с заголовком и подсказкой) — тонкая нижняя граница */
.page-premium .section__head {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(79, 119, 255, 0.08);
  margin-bottom: 16px;
  transition: border-bottom-color 0.25s ease;
}
[data-theme="light"] .page-premium .section__head {
  border-bottom-color: rgba(79, 119, 255, 0.1);
}

/* Фокус для пунктов мобильного меню */
.page-premium .mobile__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 16px rgba(79, 119, 255, 0.25);
}

/* Уважение к «Уменьшить движение» — отключаем моргание кнопки темы */
@media (prefers-reduced-motion: reduce) {
  .page-premium .theme-toggle {
    animation: none;
    box-shadow: 0 0 0 1px var(--line), 0 0 12px rgba(79, 119, 255, 0.15);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Плавная смена темы, иконки контактов, активные кнопки, печать
   ═══════════════════════════════════════════════════════════════════ */

/* Плавное переключение темы для премиум-элементов */
html.theme-transition .page-premium .card,
html.theme-transition .page-premium .skillgroup,
html.theme-transition .page-premium .hero__card,
html.theme-transition .page-premium .contact__card,
html.theme-transition .page-premium .contact__link,
html.theme-transition .page-premium .quick,
html.theme-transition .page-premium .nav__link,
html.theme-transition .page-premium .btn,
html.theme-transition .page-premium .avatar,
html.theme-transition .page-premium .back-to-top,
html.theme-transition .page-premium .meta__item,
html.theme-transition .page-premium .pill {
  transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease,
              box-shadow 0.35s ease, background 0.35s ease;
}

/* Иконки в контактах (Email, Telegram, Город) — лёгкое свечение */
.page-premium .contact__link .contact__k::before {
  filter: drop-shadow(0 0 4px rgba(79, 119, 255, 0.25));
  transition: filter 0.25s ease;
}
[data-theme="light"] .page-premium .contact__link .contact__k::before {
  filter: drop-shadow(0 0 3px rgba(79, 119, 255, 0.2));
}

/* Кнопки — отзывчивое нажатие (:active) */
.page-premium .btn:active {
  transform: scale(0.98);
}
.page-premium .btn--primary:active {
  transform: translateY(0) scale(0.99);
}

/* Текст в футере — лёгкий акцент, при hover футера чуть ярче */
.page-premium .footer__left,
.page-premium .footer__right {
  transition: opacity 0.25s ease;
  opacity: 0.92;
}
.page-premium .footer__right {
  letter-spacing: 0.02em;
}
.page-premium .footer__inner:hover .footer__left,
.page-premium .footer__inner:hover .footer__right {
  opacity: 1;
}

/* Ссылки внутри контента — плавная смена цвета */
.page-premium .section__lead a,
.page-premium .card__text a,
.page-premium .contact__card a {
  transition: color 0.2s ease, opacity 0.2s ease;
}

/* Печать — упрощённые тени, без свечения */
@media print {
  .page-premium .card,
  .page-premium .skillgroup,
  .page-premium .hero__card,
  .page-premium .contact__card,
  .page-premium .contact__link,
  .page-premium .quick,
  .page-premium .card--project {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  }
  .page-premium .section__title,
  .page-premium .card__title,
  .page-premium .hero__card-title {
    text-shadow: none;
  }
  .page-premium .footer__inner {
    text-shadow: none;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Ещё: бургер фокус, заголовок контакта, strong, разделитель с точкой
   ═══════════════════════════════════════════════════════════════════ */

/* Фокус для кнопки бургер-меню */
.page-premium .burger:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 20px rgba(79, 119, 255, 0.3);
}

/* Заголовок контакт-карточки — лёгкое свечение */
.page-premium .contact__card-title {
  text-shadow: 0 0 20px rgba(79, 119, 255, 0.2),
               0 1px 2px rgba(0, 0, 0, 0.1);
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .contact__card-title {
  text-shadow: 0 0 16px rgba(79, 119, 255, 0.12),
               0 1px 1px rgba(0, 0, 0, 0.04);
}

/* Выделенный текст (strong, b) — лёгкий акцент */
.page-premium strong,
.page-premium b {
  font-weight: 800;
  color: var(--text);
  text-shadow: 0 0 12px rgba(79, 119, 255, 0.08);
  transition: text-shadow 0.25s ease, color 0.2s ease;
}
[data-theme="light"] .page-premium strong,
[data-theme="light"] .page-premium b {
  text-shadow: 0 0 10px rgba(79, 119, 255, 0.06);
}

/* Разделитель секций — точка по центру линии */
.page-premium .section + .section::before {
  background: linear-gradient(90deg, transparent 0%, rgba(79, 119, 255, 0.35) 45%, rgba(139, 92, 246, 0.3) 55%, transparent 100%),
              radial-gradient(circle at 50% 50%, rgba(79, 119, 255, 0.7) 0%, transparent 5px);
  background-size: 100% 100%, 100% 100%;
  background-repeat: no-repeat;
}

/* ═══════════════════════════════════════════════════════════════════
   Ещё: фокус бренда/копировать, logoMeta, skip transition
   ═══════════════════════════════════════════════════════════════════ */

/* Логотип «Наверх» — фокус для клавиатурной навигации */
.page-premium .brand:focus-visible {
  outline: none;
  border-radius: 8px;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 20px rgba(79, 119, 255, 0.25);
}

/* Кнопка «Копировать» — фокус */
.page-premium .contact__copy:focus-visible {
  outline: none;
  border-color: rgba(79, 119, 255, 0.5);
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 4px 14px rgba(0, 0, 0, 0.15);
}
[data-theme="light"] .page-premium .contact__copy:focus-visible {
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 4px 14px rgba(0, 0, 0, 0.08);
}

/* Мета-подпись у лого (AWS: EC2/ECS/…) — читаемость и акцент */
.page-premium .logoMeta {
  letter-spacing: 0.02em;
  text-shadow: 0 0 12px rgba(79, 119, 255, 0.06);
  transition: text-shadow 0.25s ease, color 0.2s ease;
}
[data-theme="light"] .page-premium .logoMeta {
  text-shadow: 0 0 10px rgba(79, 119, 255, 0.05);
}

/* Skip-ссылка — плавное появление кольца при фокусе */
.page-premium .skip {
  transition: box-shadow 0.25s ease, border-color 0.2s ease;
}

/* Текст в контакт-карточке «Быстрое действие» — в тон остальному контенту */
.page-premium .contact__card-text {
  text-shadow: 0 0 14px rgba(79, 119, 255, 0.06);
  transition: text-shadow 0.25s ease;
}
[data-theme="light"] .page-premium .contact__card-text {
  text-shadow: 0 0 10px rgba(79, 119, 255, 0.04);
}

/* ═══════════════════════════════════════════════════════════════════
   Микровзаимодействия: pills, логотипы скиллов, карточки проектов, футер
   ═══════════════════════════════════════════════════════════════════ */

/* Pills в hero — лёгкое увеличение при наведении */
.page-premium .hero__badge .pill {
  transform: scale(1);
  transition: transform 0.25s ease, box-shadow 0.3s ease, border-color 0.25s ease;
}
.page-premium .hero__badge .pill:hover {
  transform: scale(1.02);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .hero__badge .pill:hover {
    transform: none;
  }
}

/* Скиллы (логотипы) — при наведении иконка чуть выделяется */
.page-premium .skillgrid .logo .logoImg {
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), filter 0.25s ease;
}
.page-premium .skillgrid .logo:hover .logoImg {
  transform: scale(1.06);
  filter: drop-shadow(0 0 8px rgba(79, 119, 255, 0.35));
}
[data-theme="light"] .page-premium .skillgrid .logo:hover .logoImg {
  filter: drop-shadow(0 0 6px rgba(79, 119, 255, 0.3));
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .skillgrid .logo:hover .logoImg {
    transform: none;
  }
}

/* Карточка проекта — логотип компании чуть «оживает» при hover карточки */
.page-premium .card--project .card__project-logo-img {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.page-premium .card--project:hover .card__project-logo-img {
  transform: scale(1.04);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .card--project:hover .card__project-logo-img {
    transform: none;
  }
}

/* Блоки Фокус/Город/Контакты — лёгкий подъём при наведении */
.page-premium .hero__quick .quick {
  transition: box-shadow 0.3s ease, border-color 0.25s ease, transform 0.25s ease;
}
.page-premium .hero__quick .quick:hover {
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .hero__quick .quick:hover {
    transform: none;
  }
}

/* Ссылка «Наверх» в футере — фокус для клавиатуры */
.page-premium .footer__top:focus-visible {
  outline: none;
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 14px rgba(79, 119, 255, 0.2);
}
[data-theme="light"] .page-premium .footer__top:focus-visible {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand), 0 0 12px rgba(79, 119, 255, 0.25);
}

/* ═══════════════════════════════════════════════════════════════════
   Ещё: секция Опыт, подпись скиллов, лид, пункты списка, кнопки, карточки
   ═══════════════════════════════════════════════════════════════════ */

/* Секция «Опыт и подход» — у заголовка нижняя граница как у section__head */
.page-premium #experience .section__title {
  padding-bottom: 12px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(79, 119, 255, 0.12);
  transition: border-bottom-color 0.25s ease;
}
[data-theme="light"] .page-premium #experience .section__title {
  border-bottom-color: rgba(79, 119, 255, 0.15);
}

/* Подпись под иконкой скилла — при hover блока чуть ярче */
.page-premium .skillgrid .logo .logoLabel {
  transition: color 0.25s ease, text-shadow 0.25s ease;
}
.page-premium .skillgrid .logo:hover .logoLabel {
  color: var(--text);
  text-shadow: 0 0 12px rgba(79, 119, 255, 0.15);
}
[data-theme="light"] .page-premium .skillgrid .logo:hover .logoLabel {
  text-shadow: 0 0 10px rgba(79, 119, 255, 0.12);
}

/* Лид-абзац — при наведении полоска ярче */
.page-premium .section__lead {
  transition: border-left-color 0.3s ease, text-shadow 0.25s ease;
}
.page-premium .section__lead:hover {
  border-left-color: rgba(79, 119, 255, 0.45);
}
[data-theme="light"] .page-premium .section__lead:hover {
  border-left-color: rgba(79, 119, 255, 0.5);
}

/* Пункты списка «Сильные стороны» — отступ от точки, без выделения при наведении */
.page-premium .hero__card .bullets li {
  padding-left: 32px;
  user-select: none;
}
.page-premium .hero__card .bullets li::before {
  left: 0;
}

/* Primary-кнопки — лёгкое увеличение при наведении */
.page-premium .btn--primary {
  transition: transform 0.25s ease, box-shadow 0.3s ease;
}
.page-premium .btn--primary:hover {
  transform: scale(1.02);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .btn--primary:hover {
    transform: none;
  }
}

/* Карточки — при фокусе внутри (клавиатура) видимое кольцо */
.page-premium .card:focus-within {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35),
              0 16px 48px rgba(0, 0, 0, 0.35),
              0 0 48px rgba(79, 119, 255, 0.12);
  outline: none;
}
.page-premium .card--project:focus-within {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35),
              0 20px 56px rgba(0, 0, 0, 0.3),
              0 0 56px rgba(79, 119, 255, 0.1);
}
[data-theme="light"] .page-premium .card:focus-within,
[data-theme="light"] .page-premium .card--project:focus-within {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.4),
              0 20px 56px rgba(0, 0, 0, 0.08),
              0 0 40px rgba(79, 119, 255, 0.1);
}

/* ═══════════════════════════════════════════════════════════════════
   Плавный тост, полоса прокрутки, мобильная CTA, подзаголовок hero
   ═══════════════════════════════════════════════════════════════════ */

/* Toast — плавное появление тени и обводки при .show */
.page-premium .toast {
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.3s ease, border-color 0.25s ease;
}

/* Полоса прокрутки — плавное изменение ширины */
.page-premium .scrollProgress {
  transition: width 0.15s ease-out, box-shadow 0.25s ease;
}

/* Кнопка «Скачать резюме» в мобильном меню — в тон шапке */
.page-premium .mobile__cta .btn--primary {
  transition: transform 0.25s ease, box-shadow 0.3s ease;
}
.page-premium .mobile__cta .btn--primary:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.35),
              0 8px 28px rgba(79, 119, 255, 0.3),
              0 0 32px rgba(79, 119, 255, 0.15);
  transform: scale(1.02);
}
.page-premium .mobile__cta .btn--primary:active {
  transform: scale(0.98);
}
[data-theme="light"] .page-premium .mobile__cta .btn--primary:hover {
  box-shadow: 0 0 0 1px rgba(79, 119, 255, 0.3),
              0 8px 28px rgba(79, 119, 255, 0.25),
              0 0 28px rgba(79, 119, 255, 0.12);
}
@media (prefers-reduced-motion: reduce) {
  .page-premium .mobile__cta .btn--primary:hover {
    transform: none;
  }
}

/* Подзаголовок hero — чуть свободнее по строкам */
.page-premium .hero__subtitle {
  line-height: 1.65;
}

/* ═══════════════════════════════════════════════════════════════════
   Фокус кнопки в контакт-карточке, иконки в карточках, CTA hero
   ═══════════════════════════════════════════════════════════════════ */

/* Кнопка «Скачать резюме» внутри контакт-карточки — фокус для клавиатуры */
.page-premium .contact__card .btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 0 20px rgba(79, 119, 255, 0.25);
}
[data-theme="light"] .page-premium .contact__card .btn:focus-visible {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand), 0 0 16px rgba(79, 119, 255, 0.3);
}

/* Иконки в заголовках карточек — плавное изменение при hover/теме */
.page-premium .card .card__topic-icon,
.page-premium #experience .card__topic-icon {
  transition: filter 0.25s ease;
}

/* Блок CTA в hero — плавный отступ и контраст ссылок */
.page-premium .hero__cta {
  transition: gap 0.2s ease;
}
.page-premium .hero__cta .btn {
  transition: transform 0.25s ease, box-shadow 0.3s ease, opacity 0.2s ease;
}

/* Ссылки в блоке Фокус/Город/Контакты — плавная смена цвета */
.page-premium .hero__quick a {
  transition: color 0.2s ease, opacity 0.2s ease;
}

/* Секции — отступ при скролле к якорю (фиксированная шапка) */
.page-premium .section {
  scroll-margin-top: 5.5rem;
}

/* Кнопка в шапке — фокус для клавиатуры */
.page-premium .header .btn--primary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--brand), 0 4px 20px rgba(79, 119, 255, 0.22);
}
[data-theme="light"] .page-premium .header .btn--primary:focus-visible {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px var(--brand), 0 4px 20px rgba(79, 119, 255, 0.2);
}

/* Уменьшение движения — без подъёма/сдвига при hover */
@media (prefers-reduced-motion: reduce) {
  .page-premium .contact__card:hover {
    transform: none;
  }
  .page-premium .card:hover {
    transform: none;
  }
  .page-premium .hero__cta .btn--primary:hover {
    transform: none;
  }
  .page-premium .back-to-top:hover {
    transform: none;
  }
  .page-premium .brand:hover {
    transform: none;
  }
}

/* Печать: только контент, без шапки/футера/кнопок */
@media print {
  .header, .footer, .back-to-top, .hero__cta, .btn, .theme-toggle, .lang-toggle, .burger, .mobile, .toast, .scrollProgress, .hero__bg { display: none !important; }
  .hero { padding-top: 0; }
  body { background: #fff; color: #000; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; opacity: 0.8; }
}
