:root {
  --experience-navy: #04152b;
  --experience-ink: #0a1930;
  --experience-blue: #00a6e7;
  --experience-cyan: #66dbff;
  --experience-gold: #f3c54b;
  --experience-paper: #f3f6fa;
  --experience-line: rgba(11, 31, 57, .12);
  --gateway-open: 0;
  --gateway-world-scale: 1;
  --gateway-intro-opacity: 1;
  --gateway-intro-y: 0px;
  --gateway-arrival-opacity: 0;
  --gateway-arrival-y: 30px;
  --gateway-cue-opacity: 1;
}

body {
  color: var(--experience-ink);
  background: var(--experience-paper);
  font-feature-settings: "kern" 1, "liga" 1;
}

h1, h2, h3, strong { letter-spacing: -.025em; }

.container { width: min(100% - 40px, 1296px); }

.home-page .site-header {
  position: fixed;
  inset: 0 0 auto;
  border-bottom-color: rgba(255, 255, 255, .14);
  color: #fff;
  background: linear-gradient(180deg, rgba(2, 13, 28, .82), rgba(2, 13, 28, .08));
  backdrop-filter: none;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.home-page.gateway-past .site-header {
  border-bottom-color: var(--experience-line);
  color: var(--experience-ink);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 14px 40px rgba(4, 21, 43, .08);
  backdrop-filter: blur(20px);
}

.home-page:not(.gateway-past) .brand-lockup,
.home-page:not(.gateway-past) .navbar .nav-link { color: #fff; }

.home-page:not(.gateway-past) .brand-lockup small { color: rgba(255,255,255,.66); }
.home-page:not(.gateway-past) .brand-lockup img { filter: drop-shadow(0 8px 18px rgba(0,0,0,.28)); }
.home-page:not(.gateway-past) .navbar .nav-link.active,
.home-page:not(.gateway-past) .navbar .nav-link:hover { color: #fff; background: rgba(255,255,255,.12); }

.site-header .navbar { min-height: 78px; }
.navbar .nav-link { font-size: .85rem; }
.navbar .container { width: min(100% - 32px, 1320px); }
.navbar .btn { border-radius: 999px; }

.language-menu { margin-left: .25rem; }
.language-trigger {
  min-width: 78px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .55rem .72rem;
  border: 1px solid rgba(9, 31, 57, .13);
  border-radius: 999px;
  color: #17324f;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 9px 24px rgba(4, 21, 43, .08);
  font-size: .78rem;
  font-weight: 850;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.language-trigger:hover,.language-trigger:focus-visible,.language-menu.show .language-trigger { border-color:rgba(0,146,210,.42); background:#fff; box-shadow:0 13px 32px rgba(4,21,43,.14); transform:translateY(-1px); }
.language-trigger .bi-globe2 { color:#0787bd; font-size:1rem; }
.language-trigger-chevron { color:#718096; font-size:.67rem; transition:transform .2s ease; }
.language-menu.show .language-trigger-chevron { transform:rotate(180deg); }
.language-dropdown {
  min-width: 224px;
  margin-top: .65rem!important;
  padding: .45rem;
  border: 1px solid rgba(7, 32, 59, .1);
  border-radius: 18px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 24px 60px rgba(4,21,43,.2);
  backdrop-filter: blur(22px);
}
.language-dropdown .dropdown-item { min-height:48px; display:grid; grid-template-columns:38px 1fr 20px; align-items:center; gap:.65rem; padding:.48rem .65rem; border-radius:13px; color:#243d57; font-size:.84rem; }
.language-dropdown .dropdown-item:hover { background:#eef7fc; }
.language-dropdown .dropdown-item.active { color:#08243f; background:#e4f4fb; }
.language-code { width:36px; height:30px; display:grid; place-items:center; border-radius:10px; color:#075c83; background:#e9f6fc; font-size:.7rem; font-weight:900; letter-spacing:.04em; }
.language-name { font-weight:720; }
.language-dropdown .bi-check2 { color:#009d68; font-size:1.05rem; }
.home-page:not(.gateway-past) .language-trigger { border-color:rgba(255,255,255,.2); color:#fff; background:rgba(255,255,255,.09); box-shadow:none; backdrop-filter:blur(12px); }
.home-page:not(.gateway-past) .language-trigger .bi-globe2,.home-page:not(.gateway-past) .language-trigger-chevron { color:rgba(255,255,255,.78); }
.home-page:not(.gateway-past) .language-trigger:hover,.home-page:not(.gateway-past) .language-trigger:focus-visible,.home-page:not(.gateway-past) .language-menu.show .language-trigger { background:rgba(255,255,255,.16); }

.gateway-hero {
  position: relative;
  z-index: 1;
  height: 215svh;
  min-height: 1200px;
  color: #fff;
  background: var(--experience-navy);
}

.gateway-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
  isolation: isolate;
}

.gateway-scene,
.gateway-world,
.gateway-beam,
.gateway-vignette,
.gateway-doors { position: absolute; inset: 0; }

.gateway-world {
  background-image: url("../img/hero/azsport-judo-run-basketball-v6-4k.jpg");
  background-position: 60% center;
  background-size: cover;
  transform: scale(var(--gateway-world-scale));
  transform-origin: 50% 58%;
  will-change: transform;
}

.gateway-world::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(90deg, rgba(2, 13, 28, .42), rgba(2, 13, 28, .14) 45%, rgba(2, 13, 28, .02) 75%, rgba(2, 13, 28, .12)),
    linear-gradient(180deg, rgba(2, 13, 28, .16), transparent 48%, rgba(2, 13, 28, .36));
}

.gateway-beam {
  z-index: 1;
  opacity: calc(.14 + var(--gateway-open) * .5);
  background: radial-gradient(ellipse at 52% 62%, rgba(255, 220, 141, .38), transparent 20%), radial-gradient(ellipse at 52% 54%, rgba(70, 192, 255, .2), transparent 52%);
  mix-blend-mode: screen;
}

.gateway-vignette {
  z-index: 5;
  pointer-events: none;
  box-shadow: inset 0 0 150px 12px rgba(0, 0, 0, .34);
  background: linear-gradient(180deg, rgba(1,9,20,.2), transparent 28%, transparent 74%, rgba(1,9,20,.5));
}

.gateway-doors { z-index: 3; perspective: 1500px; pointer-events: none; }

.gateway-door {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50.25%;
  overflow: hidden;
  border: 1px solid rgba(196, 223, 239, .2);
  border-top-color: rgba(255,255,255,.18);
  background:
    linear-gradient(105deg, rgba(255,255,255,.055), transparent 20%, rgba(0,166,231,.075) 48%, transparent 72%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 42px),
    radial-gradient(ellipse at 50% 42%, #163c5c 0, #08233e 46%, #031326 100%);
  box-shadow: inset 0 0 0 7px rgba(255,255,255,.025), inset 0 0 80px rgba(0,0,0,.62), 0 0 80px rgba(0,0,0,.58);
  will-change: transform, opacity;
}

.gateway-door::before,
.gateway-door::after {
  position: absolute;
  content: "";
  inset: 4.5%;
  border: 1px solid rgba(214, 234, 245, .14);
  border-radius: 18px;
  background:
    linear-gradient(135deg, transparent 24%, rgba(243,197,75,.12) 24.3% 24.7%, transparent 25%) center / 190px 190px,
    linear-gradient(45deg, transparent 24%, rgba(0,166,231,.1) 24.3% 24.7%, transparent 25%) center / 190px 190px;
}

.gateway-door::after { inset:12%; border-color:rgba(243,197,75,.12); border-radius:34% 12px 34% 12px; background:radial-gradient(ellipse at 50% 100%, transparent 56%, rgba(102,219,255,.11) 56.5% 57%, transparent 57.5%) 50% 0 / 100% 34% repeat-y; }
.gateway-door-left { left: 0; transform-origin: left center; transform: translateX(calc(var(--gateway-open) * -15%)) rotateY(calc(var(--gateway-open) * 84deg)); }
.gateway-door-right { right: 0; transform-origin: right center; transform: translateX(calc(var(--gateway-open) * 15%)) rotateY(calc(var(--gateway-open) * -84deg)); }

.gateway-door span {
  position: absolute;
  top: 50%;
  width: 7px;
  height: 96px;
  border: 1px solid rgba(255,237,180,.72);
  border-radius: 999px;
  background:linear-gradient(180deg,#fff0ac,#c38d22 48%,#ffe9a0);
  box-shadow: 0 0 0 6px rgba(0,0,0,.18), 0 0 34px rgba(243,197,75,.3);
  transform:translateY(-50%);
}

.gateway-door-left span { right: 18px; }
.gateway-door-right span { left: 18px; }
.gateway-door i { position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.045),transparent); }

.gateway-copy {
  position: absolute;
  z-index: 7;
  left: max(32px, calc((100vw - 1296px) / 2));
  width: min(700px, calc(100vw - 64px));
}

.gateway-intro {
  top: 52%;
  padding: clamp(1.25rem,2.2vw,2.1rem) clamp(1.15rem,2.4vw,2.3rem);
  border: 0;
  border-radius: 26px;
  background:
    radial-gradient(circle at 8% 8%, rgba(40,155,214,.09), transparent 35%),
    linear-gradient(105deg,rgba(2,13,28,.82),rgba(2,13,28,.48) 64%,rgba(2,13,28,.08) 92%,transparent);
  box-shadow: 0 34px 90px rgba(1,9,20,.14);
  backdrop-filter: blur(3px);
  opacity: var(--gateway-intro-opacity);
  transform: translateY(calc(-44% + var(--gateway-intro-y)));
  will-change: opacity, transform;
}

.gateway-kicker {
  display: inline-flex;
  align-items: center;
  gap: .68rem;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 1.35rem;
  padding: .5rem .72rem .5rem .5rem;
  border: 1px solid rgba(243,197,75,.28);
  border-radius: 12px;
  color: #f6d36e;
  background: rgba(3,20,41,.54);
  box-shadow: 0 12px 28px rgba(1,9,20,.14);
  font-size: clamp(.68rem, .78vw, .78rem);
  font-weight: 760;
  letter-spacing: .035em;
  line-height: 1.35;
  backdrop-filter: blur(12px);
}
.gateway-kicker-mark {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(243,197,75,.3);
  border-radius: 8px;
  color: var(--experience-gold);
  background: rgba(243,197,75,.1);
  font-size: .8rem;
}

.gateway-copy h1,
.gateway-copy h2 {
  max-width: 850px;
  margin: 0;
  color: #fff;
  font-size: clamp(3.2rem, 6.8vw, 6.7rem);
  font-weight: 790;
  letter-spacing: -.065em;
  line-height: .86;
  text-wrap: balance;
}

.gateway-copy h1 em { color:#d8eff8; font-size:.82em; font-style:normal; font-weight:620; letter-spacing:-.045em; text-shadow:0 10px 42px rgba(0,166,231,.18); }

.gateway-copy > p {
  max-width: 640px;
  margin: 1.6rem 0 0;
  color: rgba(255,255,255,.78);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.65;
}

.gateway-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.gateway-trust { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.25rem; }
.gateway-trust span { display:inline-flex; align-items:center; gap:.38rem; padding:.42rem .62rem; border:1px solid rgba(255,255,255,.14); border-radius:999px; color:rgba(255,255,255,.78); background:rgba(255,255,255,.06); font-size:.67rem; font-weight:760; backdrop-filter:blur(10px); }
.gateway-trust i { color:var(--experience-gold); }
.gateway-button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .72rem;
  padding: .8rem 1.25rem;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  color: #fff;
  background: rgba(4,21,43,.28);
  backdrop-filter: blur(14px);
  text-decoration: none;
  font-weight: 780;
  transition: transform .2s ease, background .2s ease;
}
.gateway-button:hover { color: #fff; transform: translateY(-2px); }
.gateway-button-primary { border-color: var(--experience-gold); color: #08172b; background: var(--experience-gold); }
.gateway-button-primary:hover { color: #08172b; background: #ffd96b; }
.gateway-button-account { border-color: rgba(255,255,255,.42); background: rgba(7,27,51,.54); box-shadow: inset 0 1px 0 rgba(255,255,255,.1); }
.gateway-button-account:hover { border-color: rgba(255,255,255,.72); background: rgba(12,43,76,.74); }
.gateway-button-account i { color: var(--experience-gold); }

/* Russian hero copy is materially longer; keep both CTA buttons inside the first viewport. */
html[lang="ru"] .gateway-intro {
  top: 48%;
  transform: translateY(calc(-48% + var(--gateway-intro-y)));
}
html[lang="ru"] .gateway-copy h1 {
  font-size: clamp(3rem, 5.4vw, 5.35rem);
  line-height: .9;
  letter-spacing: -.055em;
  text-wrap: nowrap;
  white-space: nowrap;
}
html[lang="ru"] .gateway-copy > p {
  margin-top: 1.2rem;
  font-size: clamp(.94rem, 1.15vw, 1.08rem);
  line-height: 1.5;
}
html[lang="ru"] .gateway-trust { margin-top: .95rem; }
html[lang="ru"] .gateway-actions { margin-top: 1.3rem; }

.gateway-arrival {
  top: 50%;
  right: auto;
  left: max(32px, calc((100vw - 1296px) / 2));
  width: min(560px, calc(100vw - 64px));
  opacity: var(--gateway-arrival-opacity);
  transform: translateY(calc(-40% + var(--gateway-arrival-y)));
  text-align: left;
  pointer-events: none;
}
.gateway-arrival h2 {
  font-size: clamp(2.8rem, 5.5vw, 6rem);
  text-shadow: 0 8px 34px rgba(1,9,20,.78);
}
.gateway-arrival p {
  max-width: 510px;
  margin-right: auto;
  padding: .75rem .9rem;
  border-left: 2px solid rgba(255,207,79,.78);
  border-radius: 0 14px 14px 0;
  background: linear-gradient(90deg,rgba(2,13,28,.64),rgba(2,13,28,.22));
  box-shadow: 0 14px 36px rgba(1,9,20,.14);
  backdrop-filter: blur(8px);
  text-shadow: 0 2px 12px rgba(1,9,20,.72);
}
.gateway-motto { display:inline-flex; align-items:center; gap:.55rem; width:fit-content; max-width:100%; margin-bottom:1.3rem; padding:.48rem .68rem; border:1px solid rgba(243,197,75,.28); border-radius:999px; color:#f6d36e; background:rgba(2,13,28,.5); font-size:.72rem; font-weight:780; letter-spacing:.075em; line-height:1.35; text-transform:uppercase; backdrop-filter:blur(10px); }
.gateway-motto i { font-size:.86rem; }

.gateway-scroll {
  position: absolute;
  z-index: 8;
  bottom: max(24px, env(safe-area-inset-bottom));
  left: 50%;
  display: grid;
  place-items: center;
  gap: 10px;
  opacity: var(--gateway-cue-opacity);
  transform: translateX(-50%);
  color: rgba(255,255,255,.72);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.gateway-scroll i { width: 1px; height: 38px; background: linear-gradient(var(--experience-gold), transparent); animation: gatewayCue 1.7s ease-in-out infinite; }

.portal-entry { position: relative; z-index: 2; padding: clamp(4.5rem, 8vw, 8rem) 0 4rem; background: var(--experience-paper); }
.portal-entry-heading { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); align-items:end; gap:2rem; margin-bottom:3rem; }
.portal-entry-heading h2 { max-width:900px; margin:0; color:var(--experience-ink); font-size:clamp(2.15rem,3.65vw,3.75rem); font-weight:780; line-height:.98; }
.portal-entry-heading p { margin:0; color:#5f6f83; line-height:1.7; }

.portal-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid var(--experience-line); border-radius:24px; background:var(--experience-line); box-shadow:0 24px 70px rgba(4,21,43,.08); }
.portal-service { position:relative; min-height:250px; display:flex; flex-direction:column; align-items:flex-start; gap:1rem; padding:1.5rem; border:0; color:var(--experience-ink); background:#fff; text-align:left; text-decoration:none; transition:background .25s ease,color .25s ease,transform .25s ease; }
.portal-service:hover { z-index:2; color:#fff; background:var(--experience-navy); }
.portal-service > span { color:#8793a4; font-size:.72rem; font-weight:850; letter-spacing:.12em; }
.portal-service > i { width:58px; height:58px; display:grid; place-items:center; margin-top:auto; border-radius:18px; color:#0279ad; background:#e9f8ff; font-size:1.45rem; }
.portal-service > i img { width:34px; height:34px; transition:transform .25s ease; }
.portal-service:hover > i img { transform:scale(1.08) rotate(-3deg); }
.portal-service div { display:grid; gap:.25rem; }
.portal-service strong { font-size:1.2rem; }
.portal-service small { color:#69798c; line-height:1.4; }
.portal-service > b { position:absolute; top:1.45rem; right:1.45rem; font-size:1.1rem; }
.portal-service:hover small,.portal-service:hover > span { color:rgba(255,255,255,.64); }
.portal-service-featured,.portal-service-ai { color:var(--experience-ink); background:#fff; }
.portal-service-featured small,.portal-service-featured > span,.portal-service-ai small,.portal-service-ai > span { color:#69798c; }
.portal-service-featured:hover,.portal-service-ai:hover { color:#fff; background:linear-gradient(145deg,#061a33,#083c63); }
.portal-service-featured:hover small,.portal-service-featured:hover > span,.portal-service-ai:hover small,.portal-service-ai:hover > span { color:rgba(255,255,255,.66); }

.national-pulse { display:grid; grid-template-columns:repeat(4,1fr); margin-top:1.4rem; overflow:hidden; border:1px solid var(--experience-line); border-radius:20px; background:#fff; }
.national-pulse > div { min-height:112px; display:grid; align-content:center; gap:.1rem; padding:1.25rem 1.6rem; border-right:1px solid var(--experience-line); }
.national-pulse > div:last-child { border-right:0; }
.national-pulse strong { color:var(--experience-ink); font-size:1.8rem; }
.national-pulse span { color:#718095; font-size:.8rem; }
.national-pulse-live { grid-template-columns:auto 1fr; column-gap:.55rem!important; }
.national-pulse-live i { width:9px; height:9px; align-self:center; border-radius:50%; background:#00af66; box-shadow:0 0 0 7px rgba(0,175,102,.12); animation:pulse 1.7s infinite; }
.national-pulse-live span { grid-column:2; }
.portal-entry .live-ticker { margin-top:1.4rem; border-color:transparent; border-radius:16px; color:#dbe8f5; background:#0a213d; box-shadow:none; }
.portal-entry .live-ticker i { color:var(--experience-gold); }

.home-page .content-section { padding-block:clamp(3rem,6vw,6rem); }
.home-page .home-briefing-grid { width:min(100% - 40px,1296px); }
.home-column-heading h2,.section-heading h2 { color:var(--experience-ink); font-weight:780; letter-spacing:-.045em; }
.news-card,.event-card,.result-card,.federation-card,.sport-card,.athlete-card,.media-card { border-radius:18px; border-color:var(--experience-line); box-shadow:0 14px 36px rgba(4,21,43,.06); }
.site-footer { border-radius:34px 34px 0 0; background:linear-gradient(145deg,#031327,#082949); }

.bottom-nav { grid-template-columns:repeat(5,1fr); overflow:visible; padding-bottom:max(8px,env(safe-area-inset-bottom)); border-top:1px solid rgba(6,31,56,.1); background:rgba(255,255,255,.93); backdrop-filter:blur(20px); }
.bottom-nav a,.bottom-nav button { min-width:0; display:grid; place-items:center; gap:.2rem; border:0; color:#68778a; background:transparent; text-decoration:none; font-size:.68rem; font-weight:760; }
.bottom-nav button i,.bottom-nav a i { font-size:1.2rem; }
.bottom-nav-ai { transform:translateY(-17px); }
.bottom-nav-ai > img { width:50px; height:50px; display:block; padding:5px; border:5px solid #fff; border-radius:18px; background:linear-gradient(145deg,#083354,#061b35); box-shadow:0 12px 28px rgba(0,126,190,.32); }
.bottom-nav-ai span { color:#087bac; }

.header-guide-button { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:.48rem; padding:.42rem .66rem; border:1px solid rgba(7,91,130,.2); border-radius:999px; color:#fff; background:linear-gradient(145deg,#083354,#061b35); box-shadow:0 9px 24px rgba(4,21,43,.1); font-size:.76rem; font-weight:800; white-space:nowrap; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.header-guide-button:hover,.header-guide-button:focus-visible { color:#fff; background:linear-gradient(145deg,#0a456f,#072742); box-shadow:0 12px 28px rgba(4,21,43,.17); transform:translateY(-1px); }
.header-guide-button img { width:24px; height:24px; padding:2px; border-radius:8px; background:rgba(255,255,255,.08); }
.home-page:not(.gateway-past) .header-guide-button { border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.1); box-shadow:none; backdrop-filter:blur(12px); }
.home-page:not(.gateway-past) .header-guide-button:hover,.home-page:not(.gateway-past) .header-guide-button:focus-visible { background:rgba(255,255,255,.17); }
.assistant-panel { position:fixed; z-index:500; inset:0; visibility:hidden; opacity:0; transition:opacity .22s ease,visibility .22s ease; }
.assistant-panel.open { visibility:visible; opacity:1; }
.assistant-backdrop { position:absolute; inset:0; background:rgba(2,13,28,.52); backdrop-filter:blur(5px); }
.assistant-dialog { position:absolute; top:16px; right:16px; bottom:16px; width:min(470px,calc(100vw - 32px)); display:grid; grid-template-rows:auto 1fr auto auto auto; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:28px; background:#f7f9fc; box-shadow:0 30px 90px rgba(0,0,0,.34); transform:translateX(110%); transition:transform .32s cubic-bezier(.2,.8,.2,1); }
.assistant-panel.open .assistant-dialog { transform:translateX(0); }
.assistant-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; color:#fff; background:#061c36; }
.assistant-identity { display:flex; align-items:center; gap:.7rem; }
.assistant-identity > span { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; color:#09213d; background:var(--experience-gold); }
.assistant-identity > span img { width:34px; height:34px; }
.assistant-identity div { display:grid; }
.assistant-identity small { display:flex; align-items:center; gap:.4rem; color:rgba(255,255,255,.65); font-size:.72rem; }
.assistant-identity small i { width:7px; height:7px; border-radius:50%; background:#2bd181; }
.assistant-dialog header > button { width:40px; height:40px; border:0; border-radius:50%; color:#fff; background:rgba(255,255,255,.08); }
.assistant-messages { overflow:auto; padding:1.1rem; scroll-behavior:smooth; }
.assistant-message { display:flex; align-items:flex-start; gap:.6rem; margin-bottom:1rem; }
.assistant-message > span { flex:0 0 auto; width:30px; height:30px; display:grid; place-items:center; border-radius:10px; color:#fff; background:#087daf; font-size:.67rem; font-weight:850; }
.assistant-message > span img { width:26px; height:26px; }
.assistant-message > div { max-width:85%; padding:.85rem 1rem; border:1px solid #dde5ee; border-radius:6px 18px 18px 18px; background:#fff; box-shadow:0 8px 24px rgba(4,21,43,.06); }
.assistant-message p { margin:0; line-height:1.55; }
.assistant-message small { display:block; margin-top:.55rem; color:#738195; font-size:.7rem; }
.assistant-message-user { flex-direction:row-reverse; }
.assistant-message-user > span { background:#18324f; }
.assistant-message-user > div { border:0; border-radius:18px 6px 18px 18px; color:#fff; background:#0a3158; }
.assistant-results { display:grid; gap:.45rem; margin-top:.7rem; }
.assistant-results a { display:grid; gap:.05rem; padding:.65rem .7rem; border-radius:10px; color:#0b3157; background:#eef7fb; text-decoration:none; }
.assistant-results a strong { font-size:.82rem; }
.assistant-results a small { margin:0; }
.assistant-suggestions { display:flex; gap:.45rem; overflow:auto; padding:.4rem 1rem .75rem; scrollbar-width:none; }
.assistant-suggestions button { flex:0 0 auto; padding:.55rem .75rem; border:1px solid #ccdae7; border-radius:999px; color:#27415d; background:#fff; font-size:.72rem; }
.assistant-form { display:grid; grid-template-columns:1fr auto; gap:.55rem; margin:0 .9rem .7rem; padding:.45rem; border:1px solid #cfdae6; border-radius:18px; background:#fff; box-shadow:0 8px 25px rgba(4,21,43,.07); }
.assistant-form textarea { max-height:110px; resize:none; padding:.55rem; border:0; outline:0; background:transparent; line-height:1.45; }
.assistant-form button { width:42px; height:42px; align-self:end; border:0; border-radius:13px; color:#fff; background:#078bc5; }
.assistant-send-loader { display:none; align-items:center; justify-content:center; gap:3px; }
.assistant-send-loader b { width:4px; height:4px; border-radius:50%; background:#fff; animation:assistantSendDot .8s ease-in-out infinite; }
.assistant-send-loader b:nth-child(2) { animation-delay:.12s; }
.assistant-send-loader b:nth-child(3) { animation-delay:.24s; }
.assistant-form[aria-busy="true"] button .bi-arrow-up { display:none; }
.assistant-form[aria-busy="true"] .assistant-send-loader { display:flex; }
.assistant-thinking { display:flex; align-items:center; gap:.6rem; min-height:24px; color:#304a64; }
.assistant-thinking-dots { display:inline-flex; gap:3px; }
.assistant-thinking-dots i { width:5px; height:5px; border-radius:50%; background:#0a91c8; animation:assistantThinking 1s ease-in-out infinite; }
.assistant-thinking-dots i:nth-child(2) { animation-delay:.15s; }
.assistant-thinking-dots i:nth-child(3) { animation-delay:.3s; }
.assistant-dialog > footer { padding:.55rem 1rem .75rem; color:#738195; font-size:.68rem; text-align:center; }

@keyframes gatewayCue { 0%,100%{opacity:.35;transform:scaleY(.75);transform-origin:top}50%{opacity:1;transform:scaleY(1)} }
@keyframes assistantSendDot { 0%,100%{transform:translateY(2px);opacity:.45}50%{transform:translateY(-2px);opacity:1} }
@keyframes assistantThinking { 0%,100%{transform:scale(.7);opacity:.35}50%{transform:scale(1);opacity:1} }

@media (max-width: 1199.98px) {
  .gateway-world { background-position:70% center; }
  .portal-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-service { min-height:220px; }
  .header-guide-button { width:100%; justify-content:flex-start; margin:.3rem 0; border-radius:12px; }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .header-guide-button { width:42px; padding:.4rem; }
  .header-guide-button span { display:none; }
}

@media (max-width: 767.98px) {
  .container,.home-page .home-briefing-grid { width:min(100% - 24px,1296px); }
  .gateway-hero { height:190svh; min-height:1050px; }
  .gateway-sticky { min-height:520px; }
  .gateway-world {
    background-color:#062c53;
    background-position:68% center;
    background-repeat:no-repeat;
    background-size:auto 70%;
  }
  .gateway-world::after { background:linear-gradient(180deg,rgba(2,13,28,.55),rgba(2,13,28,.12) 56%,rgba(2,13,28,.58)); }
  .gateway-door { width:50.5%; }
  .gateway-copy { left:18px; width:calc(100vw - 36px); text-align:left; }
  .gateway-intro { top:43%; }
  .gateway-intro { padding:1.15rem 1rem; border-radius:0 20px 20px 0; }
  .gateway-kicker { max-width:340px; margin-bottom:1rem; padding:.42rem .58rem .42rem .42rem; font-size:.64rem; }
  .gateway-kicker-mark { flex-basis:26px; width:26px; height:26px; }
  .gateway-copy h1 { font-size:clamp(3.25rem,16vw,5rem); line-height:.88; }
  .gateway-copy > p { max-width:520px; margin-top:1rem; font-size:.92rem; line-height:1.5; }
  .gateway-trust { display:none; }
  .gateway-actions { margin-top:1.25rem; }
  .gateway-button { min-height:48px; padding:.65rem 1rem; font-size:.82rem; }
  html[lang="ru"] .gateway-intro { top:43%; transform:translateY(calc(-44% + var(--gateway-intro-y))); }
  html[lang="ru"] .gateway-copy h1 { font-size:clamp(2.45rem,11vw,3.65rem); line-height:.92; }
  html[lang="ru"] .gateway-copy > p { margin-top:.85rem; font-size:.82rem; line-height:1.42; }
  html[lang="ru"] .gateway-actions { margin-top:1rem; }
  .gateway-arrival { right:auto; left:18px; top:29%; width:calc(100vw - 36px); text-align:left; }
  .gateway-arrival h2 { max-width:340px; font-size:clamp(2.7rem,13vw,4.2rem); }
  .gateway-arrival p { max-width:340px; font-size:.8rem; line-height:1.45; }
  .gateway-scroll { bottom:82px; width:100%; font-size:.58rem; }
  .portal-entry { padding-top:4.3rem; }
  .portal-entry-heading { grid-template-columns:1fr; gap:1rem; margin-bottom:2rem; }
  .portal-entry-heading h2 { font-size:2.8rem; }
  .portal-service-grid { grid-template-columns:1fr 1fr; border-radius:18px; }
  .portal-service { min-height:190px; padding:1rem; }
  .portal-service > i { width:48px; height:48px; border-radius:15px; }
  .portal-service strong { font-size:1rem; }
  .portal-service small { font-size:.72rem; }
  .national-pulse { grid-template-columns:1fr 1fr; }
  .national-pulse > div { min-height:94px; border-bottom:1px solid var(--experience-line); }
  .national-pulse > div:nth-child(2) { border-right:0; }
  .national-pulse > div:nth-child(n+3) { border-bottom:0; }
  .portal-entry .live-ticker { font-size:.78rem; }
  .assistant-dialog { top:auto; right:0; bottom:0; left:0; width:100%; height:min(88svh,760px); border-radius:26px 26px 0 0; transform:translateY(105%); }
  .assistant-panel.open .assistant-dialog { transform:translateY(0); }
  .site-footer { border-radius:24px 24px 0 0; }
}

@media (min-width: 992px) {
  .portal-entry-heading h2 { white-space:nowrap; }
}

@media (max-width: 420px) {
  .gateway-arrival { top:31%; }
  .gateway-arrival p { display:none; }
}

@media (max-width: 420px) {
  .gateway-copy h1 { font-size:3.35rem; }
  .gateway-copy > p { font-size:.84rem; }
  .gateway-button { width:100%; }
  .gateway-actions { display:grid; grid-template-columns:1fr; }
  .portal-entry-heading h2 { font-size:2.35rem; }
  .portal-service { min-height:176px; }
  .portal-service > b { top:.9rem; right:.9rem; }
  .national-pulse > div { padding:1rem; }
  .national-pulse strong { font-size:1.45rem; }
}

@media (prefers-reduced-motion: reduce) {
  :root { --gateway-open:1; --gateway-world-scale:1.04; --gateway-intro-opacity:1; --gateway-arrival-opacity:0; --gateway-cue-opacity:0; }
  .gateway-hero { height:100svh; min-height:620px; }
  .gateway-door { display:none; }
}
