/* Hero illustrations for the seven Industry pages.
   See inc/hero-illustrations-industries.php. Shared base classes (ih-*) come
   first, then one section per industry (ihb banking, ihf fintech, ihn nbfc,
   ihp payments, ihi financial inclusion, ihc digital commerce, ihs shipping).
   Base styles draw each scene's finished end state; all motion is inside the
   `prefers-reduced-motion: no-preference` query at the bottom. Every scene
   runs one master timeline (10s) with percentages noted per scene. */

.ih-hero {
	position: absolute;
	inset: 0;
}

.ih-hero svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	font-family: var(--font-heading);
}

.ih-tb { transform-box: fill-box; transform-origin: center; }

/* Backdrop */
.ih-glow { fill: var(--cyan-tint); opacity: 0.5; }
.ih-ring { fill: none; stroke: var(--cyan-tint); stroke-width: 12; }
.ih-arc  { fill: none; stroke-width: 12; stroke-linecap: round; transform-box: view-box; }
.ih-arc--navy { stroke: var(--navy); }
.ih-arc--cyan { stroke: var(--cyan); }
.ih-dot--a { fill: #b9e4f7; }
.ih-dot--b { fill: var(--slate-light); opacity: 0.6; }
.ih-dot--c { fill: var(--cyan); }
.ih-dot--d { fill: var(--navy); opacity: 0.4; }
.ih-shadow { fill: var(--navy); opacity: 0.08; }
.ih-shadowed { filter: drop-shadow(0 10px 16px rgba(1, 36, 126, 0.14)); }

/* Fills & strokes */
.ih-card      { fill: var(--paper); stroke: var(--line); stroke-width: 1; }
.ih-card--mist { fill: var(--mist); }
.ih-ink       { fill: var(--navy); opacity: 0.85; }
.ih-ink-soft  { fill: var(--navy); opacity: 0.16; }
.ih-muted     { fill: var(--line); }
.ih-cyan      { fill: var(--cyan); }
.ih-navy      { fill: var(--navy); }
.ih-white     { fill: var(--paper); }
.ih-white--soft { opacity: 0.45; }
.ih-tint      { fill: var(--cyan-tint); }
.ih-mist-dark { fill: var(--mist-dark); }
.ih-rule      { fill: none; stroke: var(--line); stroke-width: 1.2; }
.ih-lane-dash { fill: none; stroke: var(--cyan); stroke-width: 1.6; stroke-dasharray: 2 5; stroke-linecap: round; opacity: 0.7; }

.ih-glyph {
	fill: none;
	stroke: var(--navy);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.ih-glyph--soft { opacity: 0.45; }

.ih-tick {
	fill: none;
	stroke: var(--paper);
	stroke-width: 4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.ih-tick--sm { stroke-width: 2.4; }

/* Tags */
.ih-tag rect { fill: var(--paper); stroke: var(--cyan); stroke-width: 1.2; }
.ih-tag text { fill: var(--navy); font-size: 11.5px; font-weight: 600; text-anchor: middle; }
.ih-tag { filter: drop-shadow(0 8px 12px rgba(1, 36, 126, 0.14)); }
.ih-tag--solid rect { fill: var(--cyan); stroke: none; }
.ih-tag--solid text { fill: var(--paper); }

/* ===== Banking ===== */
.ihb-pediment { fill: var(--cyan-tint); stroke: var(--line); stroke-width: 1; stroke-linejoin: round; }
.ihb-col      { fill: var(--navy); opacity: 0.85; }
.ihb-cap      { fill: var(--cyan); opacity: 0; }
.ihb-ping     { fill: none; stroke: var(--cyan); stroke-width: 2.5; opacity: 0; }
.ihb-frame    { fill: var(--navy); }
.ihb-stud     { fill: var(--paper); opacity: 0.6; }
.ihb-inner    { fill: var(--cyan-tint); }
.ihb-reveal   { opacity: 0; }
.ihb-door     { transform-origin: left center; }
.ihb-door-ring { fill: none; stroke: var(--line); stroke-width: 1.5; }
.ihb-tick-mark { stroke: var(--paper); stroke-width: 2; stroke-linecap: round; opacity: 0.5; }
.ihb-pointer  { stroke: var(--cyan); stroke-width: 3; stroke-linecap: round; }

/* ===== Fintech ===== */
.ihf-line  { fill: none; stroke: var(--cyan); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: 0; }
.ihf-area  { fill: var(--cyan-tint); opacity: 0.8; }
.ihf-pt    { fill: var(--cyan); stroke: var(--paper); stroke-width: 2; }
.ihf-shine { fill: var(--paper); opacity: 0; }
.ihf-fill  { fill: var(--cyan); transform-origin: left center; }
.ihf-knob  { fill: var(--paper); stroke: var(--cyan); stroke-width: 3; }
.ihf-coin-top  { fill: var(--cyan); stroke: var(--navy-dark); stroke-width: 1; }
.ihf-coin-ring { fill: none; stroke: var(--paper); stroke-width: 1.4; opacity: 0.55; }
.ihf-coin .ih-navy { fill: var(--navy); }

/* ===== NBFC ===== */
.ihn-track    { fill: none; stroke: var(--cyan-tint); stroke-width: 10; }
.ihn-progress,
.ihn-donut    { fill: none; stroke: var(--cyan); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; transform: rotate(-90deg); transform-box: view-box; transform-origin: 260px 250px; }
.ihn-progress { stroke-width: 10; }
.ihn-donut    { stroke-width: 12; }
.ihn-donut-track { fill: none; stroke: var(--cyan-tint); stroke-width: 12; }
.ihn-emi      { fill: var(--cyan); stroke: var(--paper); stroke-width: 2; }
.ihn-flash    { fill: none; stroke: var(--cyan); stroke-width: 2.5; opacity: 0; }
.ihn-token    { fill: var(--cyan); opacity: 0; filter: drop-shadow(0 0 8px rgba(0, 159, 226, 0.85)); offset-rotate: 0deg; }

/* ===== Payments ===== */
.ihp-disc  { fill: var(--cyan-tint); opacity: 0.6; stroke: var(--line); stroke-width: 1.2; }
.ihp-par,
.ihp-mer   { fill: none; stroke: var(--line); stroke-width: 1.2; opacity: 0.9; }
.ihp-land  { fill: var(--navy); opacity: 0.25; }
.ihp-arc   { fill: none; stroke: var(--line); stroke-width: 1.6; stroke-dasharray: 3 6; stroke-linecap: round; }
.ihp-arc-lit { fill: none; stroke: var(--cyan); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; }
.ihp-city  { fill: var(--cyan); stroke: var(--paper); stroke-width: 2; }
.ihp-flash { fill: none; stroke: var(--cyan); stroke-width: 2.5; opacity: 0; }
.ihp-packet { fill: var(--cyan); opacity: 0; filter: drop-shadow(0 0 6px rgba(0, 159, 226, 0.8)); offset-rotate: 0deg; }
.ihp-wave  { fill: none; stroke: var(--cyan); stroke-width: 2.4; stroke-linecap: round; opacity: 0; }

/* ===== Financial inclusion ===== */
.ihi-ring   { fill: none; stroke: var(--line); stroke-width: 1.4; stroke-dasharray: 2 7; stroke-linecap: round; }
.ihi-ripple { fill: none; stroke: var(--cyan); stroke-width: 2.5; opacity: 0; vector-effect: non-scaling-stroke; }
.ihi-person circle,
.ihi-person path { fill: none; stroke: var(--paper); stroke-width: 2; stroke-linecap: round; }
.ihi-scan   { fill: var(--cyan); filter: drop-shadow(0 0 4px rgba(0, 159, 226, 0.8)); }
.ihi-conn   { fill: var(--cyan); transform-origin: left center; }

/* ===== Digital commerce ===== */
.ihc-basket { fill: var(--paper); stroke: var(--navy); stroke-width: 2.5; stroke-linejoin: round; }
.ihc-slats  { fill: none; stroke: var(--line); stroke-width: 1.5; }
.ihc-handle { fill: none; stroke: var(--navy); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.ihc-item-a { fill: var(--cyan-tint); stroke: var(--cyan); stroke-width: 1.4; }
.ihc-item-b { fill: var(--navy); opacity: 0.85; }
.ihc-item-c { fill: var(--mist-dark); stroke: var(--line); stroke-width: 1; }
.ihc-count  { fill: var(--paper); font-size: 12px; font-weight: 700; text-anchor: middle; opacity: 0; }
.ihc-count--3 { opacity: 1; }
.ihc-pay    { fill: var(--cyan); opacity: 1; }
.ihc-confirm-bg { fill: var(--paper); }
.ihc-confetti { fill: var(--cyan); opacity: 0; }
.ihc-confetti:nth-of-type(2n) { fill: var(--navy); }
.ihc-pkg-top { fill: var(--cyan-tint); stroke: var(--cyan); stroke-width: 1.2; stroke-linejoin: round; }
.ihc-pkg-l   { fill: var(--navy); }
.ihc-pkg-r   { fill: var(--navy-dark); }
.ihc-tape    { fill: none; stroke: var(--cyan); stroke-width: 3; stroke-linecap: round; }
.ihc-product { offset-rotate: 0deg; }

/* ===== Shipping ===== */
.ihs-route  { fill: none; stroke: var(--cyan); stroke-width: 2; stroke-dasharray: 3 7; stroke-linecap: round; }
.ihs-pin    { fill: var(--paper); stroke: var(--navy); stroke-width: 3; }
.ihs-pin--b { stroke: var(--cyan); }
.ihs-arrive { fill: none; stroke: var(--cyan); stroke-width: 3; opacity: 0; }
.ihs-marker { opacity: 0; offset-rotate: 0deg; }
.ihs-marker-halo { fill: var(--cyan); opacity: 0.25; }
.ihs-marker-core { fill: var(--cyan); filter: drop-shadow(0 0 6px rgba(0, 159, 226, 0.8)); }
.ihs-stamp rect { fill: none; stroke: var(--cyan); stroke-width: 2.5; }
.ihs-stamp text { fill: var(--cyan); font-size: 12px; font-weight: 700; text-anchor: middle; letter-spacing: 0.06em; }
.ihs-crane-post { fill: none; stroke: var(--navy); stroke-width: 2.4; opacity: 0.6; }
.ihs-crane-boom { fill: var(--navy); opacity: 0.85; }
.ihs-crane-stay { fill: none; stroke: var(--navy); stroke-width: 1.6; opacity: 0.5; }
.ihs-beacon { fill: var(--cyan); }
.ihs-hull   { fill: var(--navy); }
.ihs-hull-stripe { fill: none; stroke: var(--cyan); stroke-width: 3; stroke-linecap: round; }
.ihs-c-navy  { fill: var(--navy); opacity: 0.9; }
.ihs-c-cyan  { fill: var(--cyan); }
.ihs-c-tint  { fill: var(--cyan-tint); stroke: var(--cyan); stroke-width: 1; }
.ihs-c-slate { fill: var(--slate-light); }
.ihs-rib     { fill: none; stroke: var(--paper); stroke-width: 1.5; opacity: 0.4; }
.ihs-water   { fill: var(--cyan-tint); }
.ihs-wave    { fill: none; stroke-linecap: round; }
.ihs-wave--back  { stroke: #b9e4f7; stroke-width: 3; }
.ihs-wave--front { stroke: var(--cyan); stroke-width: 2.5; opacity: 0.6; }

@media (prefers-reduced-motion: no-preference) {
	.ih-arc { animation: ihk-spin 80s linear infinite; }
	.ih-dot { animation: ihk-drift 7s ease-in-out infinite; }
	.ih-dot--b { animation-delay: -3s; }
	.ih-dot--c { animation-delay: -5s; }
	.ih-dot--d { animation-delay: -1.5s; }
	.ih-float-a { animation: ihk-float 6s ease-in-out infinite; }
	.ih-float-b { animation: ihk-float 7s ease-in-out -2s infinite; }
	.ih-float-c { animation: ihk-float 6.5s ease-in-out -4s infinite; }
	.ih-lane-dash { animation: ihk-flow 1.6s linear infinite; }
	.ihb-cap--0 { animation: ihb-cap-0 10s ease-in-out infinite; }
	.ihb-cap--1 { animation: ihb-cap-1 10s ease-in-out infinite; }
	.ihb-cap--2 { animation: ihb-cap-2 10s ease-in-out infinite; }
	.ihb-cap--3 { animation: ihb-cap-3 10s ease-in-out infinite; }
	.ihb-cap--4 { animation: ihb-cap-4 10s ease-in-out infinite; }
	.ihb-ping--0 { animation: ihb-ping-0 10s ease-out infinite; }
	.ihb-ping--1 { animation: ihb-ping-1 10s ease-out infinite; }
	.ihb-ping--2 { animation: ihb-ping-2 10s ease-out infinite; }
	.ihb-dial { animation: ihb-dial 10s ease-in-out infinite; }
	.ihb-door { animation: ihb-door 10s ease-in-out infinite; }
	.ihb-reveal { animation: ihb-reveal 10s ease-out infinite; }
	.ihf-pt--0 { animation: ihf-pt-0 10s ease-out infinite; }
	.ihf-pt--1 { animation: ihf-pt-1 10s ease-out infinite; }
	.ihf-pt--2 { animation: ihf-pt-2 10s ease-out infinite; }
	.ihf-pt--3 { animation: ihf-pt-3 10s ease-out infinite; }
	.ihf-pt--4 { animation: ihf-pt-4 10s ease-out infinite; }
	.ihf-pt--5 { animation: ihf-pt-5 10s ease-out infinite; }
	.ihf-pt--6 { animation: ihf-pt-6 10s ease-out infinite; }
	.ihf-coin--0 { animation: ihf-coin-0 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihf-coin--1 { animation: ihf-coin-1 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihf-coin--2 { animation: ihf-coin-2 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihf-coin--3 { animation: ihf-coin-3 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihf-coin--4 { animation: ihf-coin-4 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihf-chart { animation: ihf-chart 10s cubic-bezier(0.2, 0.9, 0.3, 1.05) infinite; }
	.ihf-card { animation: ihf-card 10s cubic-bezier(0.2, 0.9, 0.3, 1.05) infinite; }
	.ihf-slider { animation: ihf-slider 10s cubic-bezier(0.2, 0.9, 0.3, 1.05) infinite; }
	.ihf-line { animation: ihf-line 10s ease-in-out infinite; }
	.ihf-area { animation: ihf-area 10s ease-out infinite; }
	.ihf-badge { animation: ihf-badge 10s ease-out infinite; }
	.ihf-shine { animation: ihf-shine 10s ease-in-out infinite; }
	.ihf-knob { animation: ihf-knob 10s ease-in-out infinite; }
	.ihf-fill { animation: ihf-fill 10s ease-in-out infinite; }
	.ihn-token { animation: ihn-token 10s linear infinite; }
	.ihn-progress { animation: ihn-progress 10s linear infinite; }
	.ihn-donut { animation: ihn-donut 10s linear infinite; }
	.ihn-node--0 { animation: ihn-node-0 10s ease-out infinite; }
	.ihn-flash--0 { animation: ihn-flash-0 10s ease-out infinite; }
	.ihn-node--1 { animation: ihn-node-1 10s ease-out infinite; }
	.ihn-flash--1 { animation: ihn-flash-1 10s ease-out infinite; }
	.ihn-node--2 { animation: ihn-node-2 10s ease-out infinite; }
	.ihn-flash--2 { animation: ihn-flash-2 10s ease-out infinite; }
	.ihn-node--3 { animation: ihn-node-3 10s ease-out infinite; }
	.ihn-flash--3 { animation: ihn-flash-3 10s ease-out infinite; }
	.ihn-emi--0 { animation: ihn-emi-0 10s ease-out infinite; }
	.ihn-emi--1 { animation: ihn-emi-1 10s ease-out infinite; }
	.ihn-emi--2 { animation: ihn-emi-2 10s ease-out infinite; }
	.ihn-emi--3 { animation: ihn-emi-3 10s ease-out infinite; }
	.ihn-done { animation: ihn-done 10s ease-out infinite; }
	.ihp-mer--a { animation: ihp-mer 6s ease-in-out infinite; }
	.ihp-mer--b { animation: ihp-mer 6s ease-in-out -3s infinite; }
	.ihp-tap { animation: ihp-tap 10s cubic-bezier(0.2, 0.9, 0.3, 1.1) infinite; }
	.ihp-wave--1 { animation: ihp-wave-0 10s ease-out infinite; }
	.ihp-wave--2 { animation: ihp-wave-1 10s ease-out infinite; }
	.ihp-wave--3 { animation: ihp-wave-2 10s ease-out infinite; }
	.ihp-ok { animation: ihp-ok 10s ease-out infinite; }
	.ihp-arc-lit--0 { animation: ihp-lit-0 10s ease-in-out infinite; }
	.ihp-packet--0 { animation: ihp-packet-0 10s ease-in-out infinite; }
	.ihp-arc-lit--1 { animation: ihp-lit-1 10s ease-in-out infinite; }
	.ihp-packet--1 { animation: ihp-packet-1 10s ease-in-out infinite; }
	.ihp-arc-lit--2 { animation: ihp-lit-2 10s ease-in-out infinite; }
	.ihp-packet--2 { animation: ihp-packet-2 10s ease-in-out infinite; }
	.ihp-arc-lit--3 { animation: ihp-lit-3 10s ease-in-out infinite; }
	.ihp-packet--3 { animation: ihp-packet-3 10s ease-in-out infinite; }
	.ihp-arc-lit--4 { animation: ihp-lit-4 10s ease-in-out infinite; }
	.ihp-packet--4 { animation: ihp-packet-4 10s ease-in-out infinite; }
	.ihp-arc-lit--5 { animation: ihp-lit-5 10s ease-in-out infinite; }
	.ihp-packet--5 { animation: ihp-packet-5 10s ease-in-out infinite; }
	.ihp-flash--0 { animation: ihp-flash-0 10s ease-out infinite; }
	.ihp-flash--1 { animation: ihp-flash-1 10s ease-out infinite; }
	.ihp-flash--2 { animation: ihp-flash-2 10s ease-out infinite; }
	.ihp-flash--3 { animation: ihp-flash-3 10s ease-out infinite; }
	.ihp-flash--4 { animation: ihp-flash-4 10s ease-out infinite; }
	.ihi-on--0 { animation: ihi-on-0 10s ease-out infinite; }
	.ihi-on--1 { animation: ihi-on-1 10s ease-out infinite; }
	.ihi-on--2 { animation: ihi-on-2 10s ease-out infinite; }
	.ihi-on--3 { animation: ihi-on-3 10s ease-out infinite; }
	.ihi-on--4 { animation: ihi-on-4 10s ease-out infinite; }
	.ihi-on--5 { animation: ihi-on-5 10s ease-out infinite; }
	.ihi-on--6 { animation: ihi-on-6 10s ease-out infinite; }
	.ihi-on--7 { animation: ihi-on-7 10s ease-out infinite; }
	.ihi-on--8 { animation: ihi-on-8 10s ease-out infinite; }
	.ihi-on--9 { animation: ihi-on-9 10s ease-out infinite; }
	.ihi-on--10 { animation: ihi-on-10 10s ease-out infinite; }
	.ihi-on--11 { animation: ihi-on-11 10s ease-out infinite; }
	.ihi-on--12 { animation: ihi-on-12 10s ease-out infinite; }
	.ihi-ripple--1 { animation: ihi-ripple-1 10s linear infinite; }
	.ihi-ripple--2 { animation: ihi-ripple-2 10s linear infinite; }
	.ihi-scan { animation: ihi-scan 2.4s ease-in-out infinite; }
	.ihi-conn { animation: ihi-conn 10s ease-in-out infinite; }
	.ihi-badge { animation: ihi-badge 10s ease-out infinite; }
	.ihc-product--0 { animation: ihc-product-0 10s ease-in-out infinite; }
	.ihc-item--0 { animation: ihc-item-0 10s ease-out infinite; }
	.ihc-product--1 { animation: ihc-product-1 10s ease-in-out infinite; }
	.ihc-item--1 { animation: ihc-item-1 10s ease-out infinite; }
	.ihc-product--2 { animation: ihc-product-2 10s ease-in-out infinite; }
	.ihc-item--2 { animation: ihc-item-2 10s ease-out infinite; }
	.ihc-count--1 { animation: ihc-count-1 10s ease-out infinite; }
	.ihc-count--2 { animation: ihc-count-2 10s ease-out infinite; }
	.ihc-count--3 { animation: ihc-count-3 10s ease-out infinite; }
	.ihc-checkout { animation: ihc-checkout 10s cubic-bezier(0.2, 0.9, 0.3, 1.05) infinite; }
	.ihc-row--0 { animation: ihc-row-0 10s ease-out infinite; }
	.ihc-row--1 { animation: ihc-row-1 10s ease-out infinite; }
	.ihc-row--2 { animation: ihc-row-2 10s ease-out infinite; }
	.ihc-pay { animation: ihc-pay 10s ease-out infinite; }
	.ihc-confirm { animation: ihc-confirm 10s cubic-bezier(0.2, 0.9, 0.3, 1.3) infinite; }
	.ihc-confetti { animation: ihc-confetti 10s ease-out infinite; }
	.ihc-parcel { animation: ihc-parcel 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihc-delivered { animation: ihc-delivered 10s ease-out infinite; }
	.ihs-box--0 { animation: ihs-box-0 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--1 { animation: ihs-box-1 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--2 { animation: ihs-box-2 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--3 { animation: ihs-box-3 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--4 { animation: ihs-box-4 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--5 { animation: ihs-box-5 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--6 { animation: ihs-box-6 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-box--7 { animation: ihs-box-7 10s cubic-bezier(0.3, 0, 0.3, 1) infinite; }
	.ihs-marker { animation: ihs-marker 10s ease-in-out infinite; }
	.ihs-arrive { animation: ihs-arrive 10s ease-out infinite; }
	.ihs-stamp { animation: ihs-stamp 10s ease-out infinite; }
	.ihs-ship { animation: ihs-bob 5s ease-in-out infinite; }
	.ihs-waves-back { animation: ihs-drift-x 4s linear infinite; }
	.ihs-waves-front { animation: ihs-drift-x 2.6s linear infinite; }
	.ihs-beacon { animation: ihs-beacon 1.4s ease-in-out infinite; }
}

@keyframes ihb-cap-0 {
	0%, 8% { opacity: 0; }
	11% { opacity: 0.9; }
	17%, 100% { opacity: 0; }
}

@keyframes ihb-cap-1 {
	0%, 11% { opacity: 0; }
	14% { opacity: 0.9; }
	20%, 100% { opacity: 0; }
}

@keyframes ihb-cap-2 {
	0%, 14% { opacity: 0; }
	17% { opacity: 0.9; }
	23%, 100% { opacity: 0; }
}

@keyframes ihb-cap-3 {
	0%, 17% { opacity: 0; }
	20% { opacity: 0.9; }
	26%, 100% { opacity: 0; }
}

@keyframes ihb-cap-4 {
	0%, 20% { opacity: 0; }
	23% { opacity: 0.9; }
	29%, 100% { opacity: 0; }
}

@keyframes ihb-ping-0 {
	0%, 34% { opacity: 0; transform: scale(1); }
	35.5% { opacity: 0.9; transform: scale(1); }
	40%, 100% { opacity: 0; transform: scale(1.18); }
}

@keyframes ihb-ping-1 {
	0%, 37% { opacity: 0; transform: scale(1); }
	38.5% { opacity: 0.9; transform: scale(1); }
	43%, 100% { opacity: 0; transform: scale(1.18); }
}

@keyframes ihb-ping-2 {
	0%, 40% { opacity: 0; transform: scale(1); }
	41.5% { opacity: 0.9; transform: scale(1); }
	46%, 100% { opacity: 0; transform: scale(1.18); }
}

@keyframes ihb-dial {
	0%, 36% { transform: rotate(0deg); }
	50%, 100% { transform: rotate(720deg); }
}

@keyframes ihb-door {
	0%, 48% { transform: scaleX(1); }
	54%, 74% { transform: scaleX(0.22); }
	82%, 100% { transform: scaleX(1); }
}

@keyframes ihb-reveal {
	0%, 54% { opacity: 0; transform: scale(0.4); }
	57% { opacity: 1; transform: scale(1.25); }
	59%, 74% { opacity: 1; transform: scale(1); }
	79%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-chart {
	0%, 2% { opacity: 0; transform: translateY(18px); }
	8%, 92% { opacity: 1; transform: none; }
	97%, 100% { opacity: 0; transform: translateY(18px); }
}

@keyframes ihf-card {
	0%, 0% { opacity: 0; transform: translateX(-26px); }
	8%, 92% { opacity: 1; transform: none; }
	97%, 100% { opacity: 0; transform: translateX(-26px); }
}

@keyframes ihf-slider {
	0%, 4% { opacity: 0; transform: translateY(18px); }
	10%, 92% { opacity: 1; transform: none; }
	97%, 100% { opacity: 0; transform: translateY(18px); }
}

@keyframes ihf-line {
	0%, 8% { stroke-dashoffset: 100; }
	34%, 92% { stroke-dashoffset: 0; }
	97%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihf-area {
	0%, 28% { opacity: 0; }
	38%, 92% { opacity: 0.8; }
	97%, 100% { opacity: 0; }
}

@keyframes ihf-pt-0 {
	0%, 8% { opacity: 0; transform: scale(0.4); }
	10% { opacity: 1; transform: scale(1.5); }
	12%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-1 {
	0%, 12.3% { opacity: 0; transform: scale(0.4); }
	14.3% { opacity: 1; transform: scale(1.5); }
	16.3%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-2 {
	0%, 16.6% { opacity: 0; transform: scale(0.4); }
	18.6% { opacity: 1; transform: scale(1.5); }
	20.6%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-3 {
	0%, 20.9% { opacity: 0; transform: scale(0.4); }
	22.9% { opacity: 1; transform: scale(1.5); }
	24.9%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-4 {
	0%, 25.2% { opacity: 0; transform: scale(0.4); }
	27.2% { opacity: 1; transform: scale(1.5); }
	29.2%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-5 {
	0%, 29.5% { opacity: 0; transform: scale(0.4); }
	31.5% { opacity: 1; transform: scale(1.5); }
	33.5%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-pt-6 {
	0%, 33.8% { opacity: 0; transform: scale(0.4); }
	35.8% { opacity: 1; transform: scale(1.5); }
	37.8%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-badge {
	0%, 34% { opacity: 0; transform: scale(0.4); }
	37% { opacity: 1; transform: scale(1.25); }
	39%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihf-shine {
	0%, 10% { opacity: 0; transform: skewX(-18deg) translateX(0); }
	12% { opacity: 0.24; }
	20% { opacity: 0.24; transform: skewX(-18deg) translateX(280px); }
	22%, 100% { opacity: 0; transform: skewX(-18deg) translateX(280px); }
}

@keyframes ihf-coin-0 {
	0%, 36% { opacity: 0; transform: translateY(-70px); }
	40% { opacity: 1; transform: translateY(3px); }
	42%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-70px); }
}

@keyframes ihf-coin-1 {
	0%, 41% { opacity: 0; transform: translateY(-70px); }
	45% { opacity: 1; transform: translateY(3px); }
	47%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-70px); }
}

@keyframes ihf-coin-2 {
	0%, 46% { opacity: 0; transform: translateY(-70px); }
	50% { opacity: 1; transform: translateY(3px); }
	52%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-70px); }
}

@keyframes ihf-coin-3 {
	0%, 51% { opacity: 0; transform: translateY(-70px); }
	55% { opacity: 1; transform: translateY(3px); }
	57%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-70px); }
}

@keyframes ihf-coin-4 {
	0%, 56% { opacity: 0; transform: translateY(-70px); }
	60% { opacity: 1; transform: translateY(3px); }
	62%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-70px); }
}

@keyframes ihf-knob {
	0%, 50% { transform: translateX(-46px); }
	70%, 92% { transform: translateX(0); }
	97%, 100% { transform: translateX(-46px); }
}

@keyframes ihf-fill {
	0%, 50% { transform: scaleX(0.28); }
	70%, 92% { transform: scaleX(1); }
	97%, 100% { transform: scaleX(0.28); }
}

@keyframes ihn-token {
	0%, 3% { offset-distance: 0%; opacity: 0; }
	4% { offset-distance: 0%; opacity: 1; }
	80% { offset-distance: 100%; opacity: 1; }
	82%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihn-progress {
	0%, 4% { stroke-dashoffset: 100; }
	80%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihn-donut {
	0%, 6% { stroke-dashoffset: 100; }
	82%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihn-node-0 {
	0%, 3.5% { transform: scale(1); }
	5.5% { transform: scale(1.12); }
	8%, 100% { transform: scale(1); }
}

@keyframes ihn-flash-0 {
	0%, 4% { opacity: 0; }
	5.5%, 92% { opacity: 1; }
	96%, 100% { opacity: 0; }
}

@keyframes ihn-node-1 {
	0%, 22.5% { transform: scale(1); }
	24.5% { transform: scale(1.12); }
	27%, 100% { transform: scale(1); }
}

@keyframes ihn-flash-1 {
	0%, 23% { opacity: 0; }
	24.5%, 92% { opacity: 1; }
	96%, 100% { opacity: 0; }
}

@keyframes ihn-node-2 {
	0%, 41.5% { transform: scale(1); }
	43.5% { transform: scale(1.12); }
	46%, 100% { transform: scale(1); }
}

@keyframes ihn-flash-2 {
	0%, 42% { opacity: 0; }
	43.5%, 92% { opacity: 1; }
	96%, 100% { opacity: 0; }
}

@keyframes ihn-node-3 {
	0%, 60.5% { transform: scale(1); }
	62.5% { transform: scale(1.12); }
	65%, 100% { transform: scale(1); }
}

@keyframes ihn-flash-3 {
	0%, 61% { opacity: 0; }
	62.5%, 92% { opacity: 1; }
	96%, 100% { opacity: 0; }
}

@keyframes ihn-emi-0 {
	0%, 13.5% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
	15% { fill: var(--cyan); stroke: var(--paper); transform: scale(1.5); }
	17.5%, 94% { fill: var(--cyan); stroke: var(--paper); transform: scale(1); }
	98%, 100% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
}

@keyframes ihn-emi-1 {
	0%, 32.5% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
	34% { fill: var(--cyan); stroke: var(--paper); transform: scale(1.5); }
	36.5%, 94% { fill: var(--cyan); stroke: var(--paper); transform: scale(1); }
	98%, 100% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
}

@keyframes ihn-emi-2 {
	0%, 51.5% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
	53% { fill: var(--cyan); stroke: var(--paper); transform: scale(1.5); }
	55.5%, 94% { fill: var(--cyan); stroke: var(--paper); transform: scale(1); }
	98%, 100% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
}

@keyframes ihn-emi-3 {
	0%, 70.5% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
	72% { fill: var(--cyan); stroke: var(--paper); transform: scale(1.5); }
	74.5%, 94% { fill: var(--cyan); stroke: var(--paper); transform: scale(1); }
	98%, 100% { fill: var(--paper); stroke: var(--line); transform: scale(1); }
}

@keyframes ihn-done {
	0%, 84% { opacity: 0; transform: scale(0.4); }
	87% { opacity: 1; transform: scale(1.2); }
	89%, 94% { opacity: 1; transform: scale(1); }
	99%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihp-mer {
	0%, 100% { transform: scaleX(1); }
	50% { transform: scaleX(0.06); }
}

@keyframes ihp-tap {
	0%, 0% { opacity: 0; transform: translate(-56px, -12px); }
	14%, 92% { opacity: 1; transform: none; }
	97%, 100% { opacity: 0; transform: translate(-56px, -12px); }
}

@keyframes ihp-wave-0 {
	0%, 16% { opacity: 0; }
	18% { opacity: 0.9; }
	21%, 100% { opacity: 0; }
}

@keyframes ihp-wave-1 {
	0%, 18% { opacity: 0; }
	20% { opacity: 0.9; }
	23%, 100% { opacity: 0; }
}

@keyframes ihp-wave-2 {
	0%, 20% { opacity: 0; }
	22% { opacity: 0.9; }
	25%, 100% { opacity: 0; }
}

@keyframes ihp-ok {
	0%, 26% { opacity: 0; transform: scale(0.4); }
	29% { opacity: 1; transform: scale(1.25); }
	31%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihp-lit-0 {
	0%, 32% { stroke-dashoffset: 100; }
	42%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-0 {
	0%, 32% { offset-distance: 0%; opacity: 0; }
	32.6% { offset-distance: 0%; opacity: 1; }
	42% { offset-distance: 100%; opacity: 1; }
	42.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-lit-1 {
	0%, 38% { stroke-dashoffset: 100; }
	48%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-1 {
	0%, 38% { offset-distance: 0%; opacity: 0; }
	38.6% { offset-distance: 0%; opacity: 1; }
	48% { offset-distance: 100%; opacity: 1; }
	48.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-lit-2 {
	0%, 44% { stroke-dashoffset: 100; }
	54%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-2 {
	0%, 44% { offset-distance: 0%; opacity: 0; }
	44.6% { offset-distance: 0%; opacity: 1; }
	54% { offset-distance: 100%; opacity: 1; }
	54.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-lit-3 {
	0%, 50% { stroke-dashoffset: 100; }
	60%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-3 {
	0%, 50% { offset-distance: 0%; opacity: 0; }
	50.6% { offset-distance: 0%; opacity: 1; }
	60% { offset-distance: 100%; opacity: 1; }
	60.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-lit-4 {
	0%, 56% { stroke-dashoffset: 100; }
	66%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-4 {
	0%, 56% { offset-distance: 0%; opacity: 0; }
	56.6% { offset-distance: 0%; opacity: 1; }
	66% { offset-distance: 100%; opacity: 1; }
	66.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-lit-5 {
	0%, 62% { stroke-dashoffset: 100; }
	72%, 94% { stroke-dashoffset: 0; }
	98%, 100% { stroke-dashoffset: 100; }
}

@keyframes ihp-packet-5 {
	0%, 62% { offset-distance: 0%; opacity: 0; }
	62.6% { offset-distance: 0%; opacity: 1; }
	72% { offset-distance: 100%; opacity: 1; }
	72.8%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihp-flash-0 {
	0% { opacity: 0; transform: scale(1); }
	30% { opacity: 0; transform: scale(1); }
	31% { opacity: 1; transform: scale(1); }
	36% { opacity: 0; transform: scale(1.7); }
	66% { opacity: 0; transform: scale(1); }
	67% { opacity: 1; transform: scale(1); }
	72% { opacity: 0; transform: scale(1.7); }
	100% { opacity: 0; }
}

@keyframes ihp-flash-1 {
	0% { opacity: 0; transform: scale(1); }
	42% { opacity: 0; transform: scale(1); }
	43% { opacity: 1; transform: scale(1); }
	48% { opacity: 0; transform: scale(1.7); }
	100% { opacity: 0; }
}

@keyframes ihp-flash-2 {
	0% { opacity: 0; transform: scale(1); }
	48% { opacity: 0; transform: scale(1); }
	49% { opacity: 1; transform: scale(1); }
	54% { opacity: 0; transform: scale(1.7); }
	72% { opacity: 0; transform: scale(1); }
	73% { opacity: 1; transform: scale(1); }
	78% { opacity: 0; transform: scale(1.7); }
	100% { opacity: 0; }
}

@keyframes ihp-flash-3 {
	0% { opacity: 0; transform: scale(1); }
	54% { opacity: 0; transform: scale(1); }
	55% { opacity: 1; transform: scale(1); }
	60% { opacity: 0; transform: scale(1.7); }
	100% { opacity: 0; }
}

@keyframes ihp-flash-4 {
	0% { opacity: 0; transform: scale(1); }
	60% { opacity: 0; transform: scale(1); }
	61% { opacity: 1; transform: scale(1); }
	66% { opacity: 0; transform: scale(1.7); }
	100% { opacity: 0; }
}

@keyframes ihi-on-0 {
	0%, 27.48% { opacity: 0; transform: scale(0.4); }
	29.98% { opacity: 1; transform: scale(1.25); }
	31.98%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-1 {
	0%, 28.08% { opacity: 0; transform: scale(0.4); }
	30.58% { opacity: 1; transform: scale(1.25); }
	32.58%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-2 {
	0%, 28.68% { opacity: 0; transform: scale(0.4); }
	31.18% { opacity: 1; transform: scale(1.25); }
	33.18%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-3 {
	0%, 29.28% { opacity: 0; transform: scale(0.4); }
	31.78% { opacity: 1; transform: scale(1.25); }
	33.78%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-4 {
	0%, 45.37% { opacity: 0; transform: scale(0.4); }
	47.87% { opacity: 1; transform: scale(1.25); }
	49.87%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-5 {
	0%, 42.97% { opacity: 0; transform: scale(0.4); }
	45.47% { opacity: 1; transform: scale(1.25); }
	47.47%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-6 {
	0%, 43.57% { opacity: 0; transform: scale(0.4); }
	46.07% { opacity: 1; transform: scale(1.25); }
	48.07%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-7 {
	0%, 44.17% { opacity: 0; transform: scale(0.4); }
	46.67% { opacity: 1; transform: scale(1.25); }
	48.67%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-8 {
	0%, 44.77% { opacity: 0; transform: scale(0.4); }
	47.27% { opacity: 1; transform: scale(1.25); }
	49.27%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-9 {
	0%, 58.27% { opacity: 0; transform: scale(0.4); }
	60.77% { opacity: 1; transform: scale(1.25); }
	62.77%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-10 {
	0%, 55.87% { opacity: 0; transform: scale(0.4); }
	58.37% { opacity: 1; transform: scale(1.25); }
	60.37%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-11 {
	0%, 56.47% { opacity: 0; transform: scale(0.4); }
	58.97% { opacity: 1; transform: scale(1.25); }
	60.97%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-on-12 {
	0%, 57.07% { opacity: 0; transform: scale(0.4); }
	59.57% { opacity: 1; transform: scale(1.25); }
	61.57%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihi-ripple-1 {
	0%, 12% { opacity: 0; transform: scale(1); }
	14% { opacity: 0.85; transform: scale(1.2); }
	60%, 100% { opacity: 0; transform: scale(7.2); }
}

@keyframes ihi-ripple-2 {
	0%, 24% { opacity: 0; transform: scale(1); }
	26% { opacity: 0.6; transform: scale(1.2); }
	72%, 100% { opacity: 0; transform: scale(7.2); }
}

@keyframes ihi-scan {
	0% { transform: translateY(0); opacity: 0; }
	15%, 85% { opacity: 1; }
	100% { transform: translateY(32px); opacity: 0; }
}

@keyframes ihi-conn {
	0%, 12% { transform: scaleX(0.04); }
	60%, 92% { transform: scaleX(1); }
	97%, 100% { transform: scaleX(0.04); }
}

@keyframes ihi-badge {
	0%, 60% { opacity: 0; transform: scale(0.4); }
	63% { opacity: 1; transform: scale(1.25); }
	65%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihc-product-0 {
	0%, 6% { offset-distance: 0%; transform: scale(1); opacity: 1; }
	14% { offset-distance: 100%; transform: scale(0.35); opacity: 1; }
	15%, 61% { offset-distance: 100%; transform: scale(0.35); opacity: 0; }
	62% { offset-distance: 0%; transform: scale(0.9); opacity: 0; }
	67%, 100% { offset-distance: 0%; transform: scale(1); opacity: 1; }
}

@keyframes ihc-item-0 {
	0%, 14% { opacity: 0; transform: scale(0.4); }
	16% { opacity: 1; transform: scale(1.3); }
	18%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihc-product-1 {
	0%, 14% { offset-distance: 0%; transform: scale(1); opacity: 1; }
	22% { offset-distance: 100%; transform: scale(0.35); opacity: 1; }
	23%, 63% { offset-distance: 100%; transform: scale(0.35); opacity: 0; }
	64% { offset-distance: 0%; transform: scale(0.9); opacity: 0; }
	69%, 100% { offset-distance: 0%; transform: scale(1); opacity: 1; }
}

@keyframes ihc-item-1 {
	0%, 22% { opacity: 0; transform: scale(0.4); }
	24% { opacity: 1; transform: scale(1.3); }
	26%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihc-product-2 {
	0%, 22% { offset-distance: 0%; transform: scale(1); opacity: 1; }
	30% { offset-distance: 100%; transform: scale(0.35); opacity: 1; }
	31%, 65% { offset-distance: 100%; transform: scale(0.35); opacity: 0; }
	66% { offset-distance: 0%; transform: scale(0.9); opacity: 0; }
	71%, 100% { offset-distance: 0%; transform: scale(1); opacity: 1; }
}

@keyframes ihc-item-2 {
	0%, 30% { opacity: 0; transform: scale(0.4); }
	32% { opacity: 1; transform: scale(1.3); }
	34%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihc-count-1 {
	0%, 13% { opacity: 0; }
	15% { opacity: 1; }
	21% { opacity: 1; }
	23%, 100% { opacity: 0; }
}

@keyframes ihc-count-2 {
	0%, 21% { opacity: 0; }
	23% { opacity: 1; }
	29% { opacity: 1; }
	31%, 100% { opacity: 0; }
}

@keyframes ihc-count-3 {
	0%, 29% { opacity: 0; }
	31%, 92% { opacity: 1; }
	97%, 100% { opacity: 0; }
}

@keyframes ihc-checkout {
	0%, 34% { opacity: 0; transform: translateX(30px); }
	40%, 92% { opacity: 1; transform: none; }
	97%, 100% { opacity: 0; transform: translateX(30px); }
}

@keyframes ihc-row-0 {
	0%, 40% { opacity: 0; transform: scale(0.9); }
	42% { opacity: 1; transform: scale(1.06); }
	44%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.9); }
}

@keyframes ihc-row-1 {
	0%, 44% { opacity: 0; transform: scale(0.9); }
	46% { opacity: 1; transform: scale(1.06); }
	48%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.9); }
}

@keyframes ihc-row-2 {
	0%, 48% { opacity: 0; transform: scale(0.9); }
	50% { opacity: 1; transform: scale(1.06); }
	52%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.9); }
}

@keyframes ihc-pay {
	0%, 50% { opacity: 0; transform: scale(1); }
	51.5% { opacity: 0; transform: scale(0.94); }
	53%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(1); }
}

@keyframes ihc-confirm {
	0%, 56% { opacity: 0; transform: scale(0.4); }
	61% { opacity: 1; transform: scale(1.15); }
	64%, 92% { opacity: 1; transform: scale(1); }
	97%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihc-confetti {
	0%, 58% { opacity: 0; transform: translate(0, 0) rotate(0deg); }
	60% { opacity: 1; }
	72%, 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(200deg); }
}

@keyframes ihc-parcel {
	0%, 66% { opacity: 0; transform: translate(-14px, -200px) scale(0.5); }
	68% { opacity: 1; }
	78% { opacity: 1; transform: translate(0, 4px) scale(1.05); }
	80%, 94% { opacity: 1; transform: translate(0, 0) scale(1); }
	98%, 100% { opacity: 0; transform: translate(0, 0) scale(1); }
}

@keyframes ihc-delivered {
	0%, 82% { opacity: 0; transform: scale(0.4); }
	85% { opacity: 1; transform: scale(1.1); }
	87%, 94% { opacity: 1; transform: scale(1); }
	99%, 100% { opacity: 0; transform: scale(0.4); }
}

@keyframes ihs-box-0 {
	0%, 6% { opacity: 0; transform: translateY(-90px); }
	11% { opacity: 1; transform: translateY(3px); }
	13%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-1 {
	0%, 11% { opacity: 0; transform: translateY(-90px); }
	16% { opacity: 1; transform: translateY(3px); }
	18%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-2 {
	0%, 16% { opacity: 0; transform: translateY(-90px); }
	21% { opacity: 1; transform: translateY(3px); }
	23%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-3 {
	0%, 21% { opacity: 0; transform: translateY(-90px); }
	26% { opacity: 1; transform: translateY(3px); }
	28%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-4 {
	0%, 28% { opacity: 0; transform: translateY(-90px); }
	33% { opacity: 1; transform: translateY(3px); }
	35%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-5 {
	0%, 33% { opacity: 0; transform: translateY(-90px); }
	38% { opacity: 1; transform: translateY(3px); }
	40%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-6 {
	0%, 38% { opacity: 0; transform: translateY(-90px); }
	43% { opacity: 1; transform: translateY(3px); }
	45%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-box-7 {
	0%, 43% { opacity: 0; transform: translateY(-90px); }
	48% { opacity: 1; transform: translateY(3px); }
	50%, 92% { opacity: 1; transform: translateY(0); }
	97%, 100% { opacity: 0; transform: translateY(-90px); }
}

@keyframes ihs-marker {
	0%, 9% { offset-distance: 0%; opacity: 0; }
	10% { offset-distance: 0%; opacity: 1; }
	66% { offset-distance: 100%; opacity: 1; }
	68%, 100% { offset-distance: 100%; opacity: 0; }
}

@keyframes ihs-arrive {
	0%, 66% { opacity: 0; transform: scale(1); }
	68% { opacity: 0.9; transform: scale(1); }
	80%, 100% { opacity: 0; transform: scale(2.6); }
}

@keyframes ihs-stamp {
	0%, 72% { opacity: 0; transform: rotate(-10deg) scale(1.7); }
	76% { opacity: 1; transform: rotate(-10deg) scale(0.95); }
	78%, 92% { opacity: 1; transform: rotate(-10deg) scale(1); }
	97%, 100% { opacity: 0; transform: rotate(-10deg) scale(1.7); }
}

@keyframes ihs-bob {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-4px) rotate(0.6deg); }
}

@keyframes ihs-drift-x {
	0% { transform: translateX(0); }
	100% { transform: translateX(-60px); }
}

@keyframes ihs-beacon {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.25; }
}

@keyframes ihk-spin {
	to { transform: rotate(360deg); }
}

@keyframes ihk-drift {
	0%, 100% { transform: translate(0, 0); }
	50% { transform: translate(6px, -10px); }
}

@keyframes ihk-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-7px); }
}

@keyframes ihk-flow {
	to { stroke-dashoffset: -7; }
}

@media (max-width: 1024px) {
	.ih-lane-dash { animation: none; }
}
