.hero h1,
.rail-head h2,
.faq h2 {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 600;
  letter-spacing: -.065em;
}

.hero-orbit { animation: hero-drift 10s ease-in-out infinite alternate; }
.hero-orbit i { transform-origin: center; animation: hero-wave 4.8s ease-out infinite; }
.hero-orbit i:nth-child(2) { animation-delay: -1.2s; }
.hero-orbit i:nth-child(3) { animation-delay: -2.4s; }
.hero-orbit i:nth-child(4) { animation-delay: -3.6s; }
.hero::after { content:''; position:absolute; z-index:1; left:-24vw; top:20%; width:22vw; height:60%; border-radius:50%; background:linear-gradient(90deg,transparent,rgba(213,239,74,.14),transparent); filter:blur(26px); animation:hero-sweep 6s linear infinite; pointer-events:none; }
@keyframes hero-drift { to { transform: translate(-3vw,4vw) rotate(8deg); } }
@keyframes hero-wave { 0% { transform:scale(.7); opacity:0; } 28% { opacity:.75; } 100% { transform:scale(1.34); opacity:0; } }
@keyframes hero-sweep { from { transform:translateX(0) scaleX(.5); opacity:0; } 18% { opacity:1; } to { transform:translateX(150vw) scaleX(1.4); opacity:0; } }

.video-stage {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: #000;
  aspect-ratio: 16/9;
}

.video-stage video { width: 100%; height: 100%; object-fit: contain; }

.video-start {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 158px;
  height: 158px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: var(--acid);
  color: var(--ink);
  cursor: pointer;
  text-transform: uppercase;
  font: 700 12px/1.3 Manrope, Arial, sans-serif;
  letter-spacing: .08em;
  box-shadow: 0 0 0 0 rgba(213,239,74,.55);
  animation: video-pulse 2s infinite;
}

.video-start i {
  position: absolute;
  inset: -14px;
  border: 1px solid rgba(213,239,74,.65);
  border-radius: inherit;
  animation: video-ring 2s infinite;
}

.video-start.is-playing { opacity: 0; pointer-events: none; transform: translate(-50%,-50%) scale(.85); transition: .35s ease; }

@keyframes video-pulse { 50% { box-shadow: 0 0 0 24px rgba(213,239,74,0); } }
@keyframes video-ring { 50% { transform: scale(1.12); opacity: .2; } }

.fiber-lab {
  isolation: isolate;
  background: linear-gradient(115deg,#111b20 0 23%,#18262c 23% 76%,#111b20 76%);
}

.sound-source {
  position: absolute;
  z-index: 4;
  left: 5%;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  text-align: center;
}

.sound-source b { display: block; margin-bottom: 12px; color: var(--acid); font: 700 10px Manrope; letter-spacing: .16em; text-transform: uppercase; }
.sound-source span { display: block; width: 42px; height: 3px; margin: 7px 0; border-radius: 4px; background: #fff; transform-origin: right; animation: source-wave .9s ease-in-out infinite alternate; }
.sound-source span:nth-child(2) { width: 30px; animation-delay: -.3s; }
.sound-source span:nth-child(3) { width: 50px; animation-delay: -.6s; }
@keyframes source-wave { to { transform: scaleX(.55); opacity: .45; } }

.incoming-waves,
.outgoing-waves { position: absolute; inset: 0; z-index: 2; overflow: hidden; }
.incoming-waves i,
.outgoing-waves i { position: absolute; top: 50%; border: 2px solid rgba(255,255,255,.78); border-left: 0; border-radius: 0 50% 50% 0; transform: translateY(-50%); }
.incoming-waves i { left: 10%; width: 9%; height: 22%; animation: wave-in 2.4s linear infinite; }
.incoming-waves i:nth-child(2) { animation-delay: -.6s; }
.incoming-waves i:nth-child(3) { animation-delay: -1.2s; }
.incoming-waves i:nth-child(4) { animation-delay: -1.8s; }
@keyframes wave-in { from { transform: translate(-20%,-50%) scale(.35); opacity: 0; } 35% { opacity: 1; } to { transform: translate(360%,-50%) scale(1.7); opacity: 0; } }

.fiber-field { position: absolute; z-index: 3; inset: 7% 25%; overflow: hidden; border-radius: 42% 48% 44% 38%; background: rgba(213,239,74,.06); }
.fiber-field i { position: absolute; width: 9%; height: 125%; top: -12%; border-radius: 50%; background: linear-gradient(#ef6354,#d5ef4a 48%,#4057d5); opacity: .88; transform: rotate(var(--r,12deg)); }
.fiber-field i:nth-child(1){left:2%;--r:18deg}.fiber-field i:nth-child(2){left:10%;--r:-14deg}.fiber-field i:nth-child(3){left:19%;--r:9deg}.fiber-field i:nth-child(4){left:27%;--r:-20deg}.fiber-field i:nth-child(5){left:36%;--r:16deg}.fiber-field i:nth-child(6){left:45%;--r:-9deg}.fiber-field i:nth-child(7){left:54%;--r:21deg}.fiber-field i:nth-child(8){left:63%;--r:-17deg}.fiber-field i:nth-child(9){left:72%;--r:12deg}.fiber-field i:nth-child(10){left:80%;--r:-8deg}.fiber-field i:nth-child(11){left:88%;--r:17deg}.fiber-field i:nth-child(12){left:96%;--r:-18deg}

.energy-particles { position: absolute; z-index: 5; inset: 15% 28%; }
.energy-particles i { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 18px var(--acid); animation: particle 2.2s ease-in-out infinite; }
.energy-particles i:nth-child(1){left:10%;top:30%}.energy-particles i:nth-child(2){left:30%;top:60%;animation-delay:-.5s}.energy-particles i:nth-child(3){left:52%;top:24%;animation-delay:-1s}.energy-particles i:nth-child(4){left:68%;top:70%;animation-delay:-1.5s}.energy-particles i:nth-child(5){left:86%;top:43%;animation-delay:-2s}
@keyframes particle { 50% { transform: translate(26px,-18px) scale(.45); opacity: .25; } }

.outgoing-waves i { left: 75%; width: 8%; height: 18%; opacity: .28; animation: wave-out 2.4s linear infinite; }
.outgoing-waves i:nth-child(2){animation-delay:-1.2s}
@keyframes wave-out { from { transform: translate(0,-50%) scale(.4); opacity:.32 } to { transform: translate(170%,-50%) scale(1.25); opacity:0 } }

.mechanism-legend { position: absolute; z-index: 7; left: 5%; right: 5%; bottom: 30px; display: grid; grid-template-columns: repeat(3,1fr); color: #c6d0d4; font-size: 12px; }
.mechanism-legend span { display: flex; align-items: center; gap: 10px; }
.mechanism-legend b { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: var(--acid); font-size: 9px; }

.faq { position:relative; padding:9vw 4vw; grid-template-columns:.8fr 1.2fr; gap:7vw; background:#fff; }
.faq::before { content:''; position:absolute; inset:3vw; border:1px solid var(--line); border-radius:var(--radius); pointer-events:none; }
.faq > * { position:relative; z-index:1; padding:4vw; min-width:0; }
.faq-heading { align-self:start; position:sticky; top:24px; }
.faq .eyebrow { display:inline-flex; padding:8px 12px; border-radius:999px; background:var(--acid); }
.faq-intro { max-width:560px; margin:30px 0 0; color:var(--muted); font-size:17px; }
.formula-card { margin-top:42px; padding:28px; border-radius:18px; background:var(--blue); color:#fff; }
.formula-card span,.formula-card small { display:block; }
.formula-card span { color:#cbd6ff; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.formula-card strong { display:block; margin:18px 0; font:600 clamp(19px,2vw,29px)/1.25 Manrope,Arial,sans-serif; }
.formula-card small { color:#dce2ff; line-height:1.7; }
.faq-category { display:none; }
.faq details { padding:0 10px; }
.faq summary { min-height:72px; display:flex; align-items:center; cursor:pointer; line-height:1.35; }
.faq summary::marker { color:var(--blue); }
.faq .answer { padding:0 0 28px 24px; }
.faq .answer p { margin:0 0 14px; color:var(--muted); font-size:15px; line-height:1.7; }
.faq code { display:block; max-width:100%; margin:14px 0; padding:15px 18px; overflow-wrap:anywhere; border-left:3px solid var(--acid); background:#f0f2ef; color:var(--ink); font:600 clamp(14px,1.5vw,20px)/1.45 Manrope,Arial,sans-serif; }
.faq .answer .faq-simple { margin:22px 0 0; padding:18px 20px; border-radius:14px; background:#f3f6d7; color:var(--ink); }
.faq-simple strong,.faq-simple span { display:block; }
.faq-simple strong { margin-bottom:8px; color:#47530a; font:700 10px/1.2 Manrope,Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.faq-simple span { font:500 15px/1.65 Manrope,Arial,sans-serif; }

.channels { gap: 0; font-family: Manrope,Arial,sans-serif; font-weight: 600; }
.channels a { width: 100%; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.32); font-size: clamp(16px,1.7vw,23px); letter-spacing: -.02em; overflow-wrap: anywhere; }
.cooperation .consent input { flex:0 0 24px; width:24px; min-width:24px; height:24px; min-height:24px; }
.cooperation input::placeholder { color:rgba(255,255,255,.82); opacity:1; }
.cooperation .consent { align-items:center; gap:14px; color:#fff; font-size:12px; line-height:1.45; }
.cooperation .consent span { display:block; }
.cooperation form>.button { width:max-content; min-width:220px; justify-content:center; gap:10px; text-align:center; }

.site-footer { background:#11191e; color:#fff; padding:7vw 4vw 2vw; }
.site-footer .footer-top { grid-template-columns:1.6fr repeat(3,1fr); gap:6vw; }
.footer-brand img { width:210px; }
.footer-top>div:first-child p { margin-top:35px; color:#aab4b8; font:500 22px/1.35 Unbounded; }
.footer-column { display:flex; flex-direction:column; gap:13px; }
.footer-column h3 { margin:0 0 16px; color:var(--acid); font:600 11px Manrope; letter-spacing:.16em; text-transform:uppercase; }
.footer-column a { color:#c3cbce; font-size:14px; }
.footer-column a:hover { color:#fff; }
.footer-contact { display:flex; justify-content:space-between; align-items:end; margin-top:7vw; padding:4vw 0; border-top:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.footer-contact>a:first-child { font:500 clamp(30px,5vw,72px) Unbounded; }
.footer-contact>a:last-child { color:var(--acid); }
.site-footer .footer-bottom { display:grid; grid-template-columns:auto auto auto 1fr; gap:28px; margin-top:0; padding-top:24px; color:#7f8a8f; font-size:10px; }
.site-footer .footer-bottom span:last-child { text-align:right; }

@media (max-width:900px) {
  .video-start { width: 116px; height: 116px; }
  .mechanism-legend { grid-template-columns: 1fr; gap: 7px; bottom: 16px; }
  .mechanism-legend b { width: 24px; height: 24px; }
  .fiber-field { inset: 8% 18%; }
  .outgoing-waves i { left: 82%; }
  .site-footer .footer-top { grid-template-columns: 1fr 1fr; }
  .faq-heading { position:static; }
  .faq > * { padding:5vw; }
  .footer-top>div:first-child { grid-column:1/-1; }
  .footer-contact { display:block; padding:45px 0; margin-top:60px; }
  .footer-contact>a { display:block; }
  .footer-contact>a:last-child { margin-top:25px; }
  .site-footer .footer-bottom { grid-template-columns:1fr 1fr; }
  .site-footer .footer-bottom span:last-child { text-align:left; grid-column:1/-1; }
}

@media (max-width:560px) {
  .site-footer .footer-top { grid-template-columns: 1fr; }
  .faq { padding:70px 12px; }
  .faq::before { inset:10px; }
  .faq > * { padding:28px 18px; }
  .faq h2 { font-size:clamp(38px,12vw,58px); overflow-wrap:anywhere; }
  .formula-card { margin-top:28px; padding:20px; }
  .faq summary { min-height:64px; font-size:15px; }
  .faq .answer { padding-left:10px; }
  .cooperation form>.button { width:100%; }
  .fiber-lab { height: 460px; }
  .sound-source { left: 3%; }
  .fiber-field { inset: 8% 14%; }
  .mechanism-legend { left: 12px; }
}

@media (prefers-reduced-motion:reduce) {
  .hero-orbit,.hero-orbit i,.hero::after,.video-start,.video-start i,.sound-source span,.incoming-waves i,.outgoing-waves i,.energy-particles i { animation: none !important; }
}
@font-face {
  font-family: Unbounded;
  src: url('/assets/fonts/unbounded-latin.woff2') format('woff2');
  font-display: swap;
  unicode-range: U+0000-00FF;
}

@font-face {
  font-family: Manrope;
  src: url('/assets/fonts/manrope-latin.woff2') format('woff2');
  font-display: swap;
  unicode-range: U+0000-00FF;
}
