.intro-paquetes {
	box-sizing: border-box;
	max-width: 1120px;
	margin: 0 auto;
	padding: 24px 16px;
	color: #17202a;
}

.intro-paquetes *,
.intro-paquetes *::before,
.intro-paquetes *::after {
	box-sizing: inherit;
}

.intro-paquetes__intro {
	max-width: 820px;
	margin: 0 auto 28px;
	text-align: center;
}

.intro-paquetes__intro p {
	margin: 0 0 18px;
	font-size: clamp(1rem, 0.96rem + 0.18vw, 1.12rem);
	line-height: 1.7;
}

.intro-paquetes__intro h1 {
	margin: 0 0 18px;
	font-size: clamp(1.9rem, 1.52rem + 1.4vw, 2.8rem);
	line-height: 1.12;
	letter-spacing: 0;
}

.intro-paquetes__intro h2,
.intro-paquetes__header h2 {
	margin: 0;
	font-size: clamp(1.55rem, 1.32rem + 0.9vw, 2.15rem);
	line-height: 1.2;
	letter-spacing: 0;
}

.intro-paquetes__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	align-items: stretch;
}

.intro-paquetes__card {
	display: grid;
	grid-template-rows: 1fr auto;
	min-height: 220px;
	overflow: hidden;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	background: #ffffff;
	color: #17202a;
	text-decoration: none;
	box-shadow: 0 12px 28px rgba(16, 24, 40, 0.11);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.intro-paquetes__card:hover,
.intro-paquetes__card:focus-visible {
	transform: translateY(-3px);
	border-color: #5c7c89;
	box-shadow: 0 16px 34px rgba(16, 24, 40, 0.16);
}

.intro-paquetes__card img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 180px;
	object-fit: cover;
}

.intro-paquetes__card span {
	display: flex;
	align-items: center;
	min-height: 58px;
	padding: 12px 14px;
	font-weight: 700;
	line-height: 1.25;
}

.intro-paquetes__topnav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 24px;
}

.intro-paquetes__back,
.intro-paquetes__topnav a,
.intro-paquetes__pager a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 14px;
	border: 1px solid #b9c7d2;
	border-radius: 6px;
	background: #ffffff;
	color: #1f3b4d;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.2;
}

.intro-paquetes__back:hover,
.intro-paquetes__topnav a:hover,
.intro-paquetes__pager a:hover {
	border-color: #395f73;
	background: #eef5f7;
}

.intro-paquetes__header {
	margin-bottom: 24px;
}

.intro-paquetes__description {
	margin-top: 12px;
	line-height: 1.7;
}

.intro-paquetes__route {
	display: grid;
	gap: 12px;
	margin-top: 28px;
}

.intro-paquetes__route-header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid #d8e0e8;
}

.intro-paquetes__route-header p {
	margin: 0;
	color: #536977;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.intro-paquetes__route-header h3 {
	margin: 0;
	color: #17202a;
	font-size: clamp(1.25rem, 1.08rem + 0.58vw, 1.62rem);
	line-height: 1.2;
	letter-spacing: 0;
}

.intro-paquetes__route-card {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	min-height: 92px;
	padding: 16px;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	background:
		linear-gradient(180deg, #ffffff, #f8fbfc);
	color: #17202a;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(16, 24, 40, 0.07);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.intro-paquetes__route-card::before {
	content: "";
	position: absolute;
	left: 34px;
	top: -13px;
	width: 2px;
	height: 13px;
	background: #d8e0e8;
}

.intro-paquetes__route-header + .intro-paquetes__route-card::before {
	display: none;
}

.intro-paquetes__route-card:hover,
.intro-paquetes__route-card:focus-visible {
	transform: translateY(-2px);
	border-color: #5c7c89;
	background: #ffffff;
	box-shadow: 0 14px 30px rgba(16, 24, 40, 0.12);
}

.intro-paquetes__route-number {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #1f3b4d;
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 900;
}

.intro-paquetes__route-copy {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.intro-paquetes__route-copy strong {
	color: #17202a;
	font-size: 1.02rem;
	line-height: 1.25;
}

.intro-paquetes__route-copy em {
	color: #536977;
	font-style: normal;
	line-height: 1.5;
}

.intro-paquetes__route-arrow {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #eef5f7;
	color: #1f3b4d;
	font-size: 1.55rem;
	line-height: 1;
}

.intro-paquetes__scenario-return {
	display: flex;
	justify-content: center;
	margin-top: 28px;
}

.intro-paquetes__scenario-return a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 13px 22px;
	border: 1px solid rgba(31, 59, 77, 0.22);
	border-radius: 12px;
	background:
		linear-gradient(180deg, #ffffff 0%, #eaf3f7 100%);
	color: #173246;
	text-decoration: none;
	font-weight: 900;
	line-height: 1.2;
	box-shadow:
		0 14px 26px rgba(16, 24, 40, 0.16),
		inset 0 1px 0 rgba(255, 255, 255, 0.92),
		inset 0 -4px 0 rgba(31, 59, 77, 0.12);
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.intro-paquetes__scenario-return a:hover,
.intro-paquetes__scenario-return a:focus-visible {
	transform: translateY(-2px);
	border-color: rgba(31, 59, 77, 0.42);
	box-shadow:
		0 18px 32px rgba(16, 24, 40, 0.2),
		inset 0 1px 0 rgba(255, 255, 255, 0.96),
		inset 0 -4px 0 rgba(31, 59, 77, 0.16);
}

.intro-paquetes__eyebrow {
	margin: 0 0 8px;
	color: #536977;
	font-size: 0.9rem;
	font-weight: 800;
	text-transform: uppercase;
}

.intro-paquetes__content {
	margin-top: 20px;
	line-height: 1.7;
}

.ip-animation-help {
	max-width: 1180px;
	margin: 22px auto 12px;
	border: 1px solid rgba(88,112,128,.2);
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(16,32,44,.07);
	color: #17202a;
}

.ip-animation-help summary {
	min-height: 44px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 16px;
	color: #1f3b4d;
	font-weight: 900;
	cursor: pointer;
	list-style: none;
}

.ip-animation-help summary::-webkit-details-marker {
	display: none;
}

.ip-animation-help summary::before {
	content: "?";
	display: inline-grid;
	place-items: center;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #e7f6fc;
	color: #1f78d1;
	font-size: .9rem;
	font-weight: 950;
}

.ip-animation-help summary::after {
	content: "+";
	margin-left: auto;
	color: #587080;
	font-size: 1.2rem;
	line-height: 1;
}

.ip-animation-help[open] summary::after {
	content: "-";
}

.ip-animation-help__content {
	display: grid;
	gap: 8px;
	padding: 0 16px 16px 50px;
	color: #355162;
}

.ip-animation-help__content p {
	margin: 0;
	line-height: 1.55;
}

.ip-animation-help__content strong {
	color: #10202c;
}

.intro-paquetes__pager {
	position: sticky;
	bottom: 12px;
	z-index: 20;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 32px;
	padding: 10px;
	border: 1px solid rgba(185, 199, 210, 0.72);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 12px 30px rgba(16, 24, 40, 0.12);
	backdrop-filter: blur(10px);
}

.intro-paquetes__pager a:last-child {
	justify-self: end;
}

.intro-paquetes__pager a {
	width: 100%;
}

.intro-paquetes__empty,
.intro-paquetes__notice {
	padding: 16px;
	border: 1px solid #d8e0e8;
	border-radius: 8px;
	background: #f6fafb;
}

@media (max-width: 820px) {
	.intro-paquetes__grid {
		grid-template-columns: 1fr;
	}

	.intro-paquetes__card {
		min-height: 0;
	}

	.intro-paquetes__card img {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
}

@media (max-width: 520px) {
	.intro-paquetes {
		padding: 18px 10px;
	}

	.intro-paquetes__pager {
		grid-template-columns: 1fr;
	}

	.intro-paquetes__pager a,
	.intro-paquetes__pager a:last-child {
		justify-self: stretch;
	}

	.intro-paquetes__route-header {
		display: grid;
	}

	.intro-paquetes__route-card {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.intro-paquetes__route-arrow {
		display: none;
	}

	.intro-paquetes__scenario-return a {
		width: 100%;
	}
}

.ip-lung-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #68d4e8;
	--ip-red: #e34b58;
	--ip-violet: #6f73d9;
	max-width: 1180px;
	margin: 28px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(242, 249, 252, 0.95)),
		radial-gradient(circle at 20% 20%, rgba(104, 212, 232, 0.18), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-lung-lab__header {
	max-width: 780px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-lung-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-lung-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-lung-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-lung-lab__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 22px 0;
}

.ip-lung-card {
	appearance: none;
	display: grid;
	grid-template-rows: 170px auto auto;
	gap: 8px;
	width: 100%;
	min-height: 260px;
	padding: 14px;
	border: 1px solid rgba(88, 112, 128, 0.2);
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff, #f7fbfd);
	color: var(--ip-ink);
	text-align: left;
	cursor: pointer;
	box-shadow: 0 12px 26px rgba(16, 32, 44, 0.09);
	transform: perspective(900px) rotateX(0) rotateY(0) translateY(0);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.ip-lung-card:hover,
.ip-lung-card:focus-visible {
	border-color: rgba(54, 167, 224, 0.75);
	box-shadow: 0 20px 38px rgba(16, 32, 44, 0.16);
	transform: perspective(900px) rotateX(2deg) rotateY(-2deg) translateY(-4px);
}

.ip-lung-card.is-active {
	border-color: var(--ip-blue);
	box-shadow: 0 20px 44px rgba(54, 167, 224, 0.2);
}

.ip-lung-card__scene {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: 8px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.6), rgba(214, 239, 247, 0.82)),
		linear-gradient(45deg, rgba(54, 167, 224, 0.14), rgba(227, 75, 88, 0.08));
	box-shadow: inset 0 0 28px rgba(54, 167, 224, 0.16);
	transform-style: preserve-3d;
}

.ip-lung-card__scene::before {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 8px;
	transform: translateZ(22px);
}

.ip-lung-card__title {
	color: var(--ip-ink) !important;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.2;
}

.ip-lung-card__subtitle {
	color: var(--ip-muted) !important;
	font-size: 0.9rem;
	line-height: 1.35;
}

.ip-lung-card.is-active .ip-lung-card__title {
	color: #0f3447 !important;
}

.ip-lung-card.is-active .ip-lung-card__subtitle {
	color: #496575 !important;
}

.ip-alveolus {
	position: relative;
	width: 96px;
	height: 96px;
	border: 5px solid rgba(54, 167, 224, 0.95);
	border-radius: 999px;
	background:
		radial-gradient(circle at 32% 26%, rgba(255, 255, 255, 0.95) 0 12%, transparent 13%),
		radial-gradient(circle at 58% 60%, rgba(104, 212, 232, 0.78), rgba(255, 255, 255, 0.88) 58%, rgba(186, 229, 240, 0.82));
	box-shadow:
		0 18px 28px rgba(16, 32, 44, 0.18),
		inset -12px -12px 22px rgba(54, 167, 224, 0.16),
		inset 10px 10px 22px rgba(255, 255, 255, 0.88);
	transform: translateZ(42px);
}

.ip-alveolus--closed {
	border-color: rgba(111, 126, 140, 0.9);
	background:
		radial-gradient(circle at 34% 26%, rgba(255,255,255,.72) 0 10%, transparent 11%),
		linear-gradient(145deg, #d7dde2, #8b98a3);
	animation: none;
	transform: translateZ(42px) scale(0.64);
	filter: saturate(0.2);
}

.ip-vessel {
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: 28px;
	height: 28px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(138, 27, 38, 0.9), rgba(227, 75, 88, 0.95), rgba(138, 27, 38, 0.9));
	box-shadow: inset 0 5px 9px rgba(255, 255, 255, 0.22), 0 10px 18px rgba(138, 27, 38, 0.23);
	transform: translateZ(24px);
}

.ip-vessel--close {
	left: 12%;
	right: 12%;
	bottom: 40px;
	height: 30px;
}

.ip-rbc {
	position: absolute;
	top: 6px;
	width: 18px;
	height: 14px;
	border-radius: 999px;
	background: radial-gradient(circle at 35% 35%, #ff9aa2, #c92332);
	animation: ip-rbc-flow 2.6s linear infinite;
}

.ip-rbc--one { animation-delay: 0s; }
.ip-rbc--two { animation-delay: -0.85s; }
.ip-rbc--three { animation-delay: -1.7s; }

.ip-bronchiole {
	position: absolute;
	width: 132px;
	height: 18px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(92, 124, 137, 0.24), rgba(54, 167, 224, 0.55));
	transform: translate3d(0, 52px, 18px) rotateX(58deg);
}

.ip-alveolus--collapsed {
	width: 76px;
	height: 42px;
	border-color: rgba(54, 167, 224, 0.9);
	border-radius: 999px;
	background:
		radial-gradient(circle at 38% 24%, rgba(255,255,255,.82) 0 10%, transparent 11%),
		linear-gradient(145deg, rgba(193, 231, 240, 0.96), rgba(112, 177, 198, 0.86));
	animation: none;
	transform: translate3d(0, 16px, 46px);
}

.ip-lung-card__scene--collapse .ip-alveolus--breathing {
	width: 76px;
	height: 42px;
	border-color: rgba(54, 167, 224, 0.9);
	border-radius: 999px;
	background:
		radial-gradient(circle at 38% 24%, rgba(255,255,255,.82) 0 10%, transparent 11%),
		linear-gradient(145deg, rgba(193, 231, 240, 0.96), rgba(112, 177, 198, 0.86));
	animation: none;
	transform: translate3d(0, 16px, 46px);
}

.ip-lung-card__scene--collapse::after {
	content: "";
	position: absolute;
	left: 12%;
	right: 12%;
	bottom: 40px;
	height: 30px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(138, 27, 38, 0.9), rgba(227, 75, 88, 0.95), rgba(138, 27, 38, 0.9));
	box-shadow: inset 0 5px 9px rgba(255,255,255,.22), 0 10px 18px rgba(138,27,38,.23);
	transform: translateZ(24px);
}

.ip-alveolus--fluid {
	overflow: hidden;
}

.ip-alveolus--fluid::after {
	content: "";
	position: absolute;
	left: -12px;
	right: -12px;
	bottom: -8px;
	height: 46%;
	background: linear-gradient(180deg, rgba(87, 168, 232, 0.55), rgba(40, 113, 196, 0.78));
	animation: ip-fluid-rise 3.6s ease-in-out infinite;
}

.ip-fluid-wave {
	position: absolute;
	bottom: 42px;
	width: 90px;
	height: 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.5);
	animation: ip-wave 3.6s ease-in-out infinite;
	transform: translateZ(48px);
}

.ip-atelectasis-lung {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 124px;
	height: 136px;
	border: 4px solid rgba(54, 167, 224, 0.92);
	border-radius: 62% 38% 48% 52%;
	background:
		radial-gradient(circle at 38% 28%, rgba(255,255,255,.88), transparent 18%),
		linear-gradient(145deg, rgba(207,241,248,.94), rgba(90,188,218,.72));
	box-shadow: inset -16px -18px 26px rgba(16,32,44,.12), 0 16px 24px rgba(16,32,44,.14);
	transform: translate(-50%, -50%) translateZ(42px);
}

.ip-atelectasis-airway {
	position: absolute;
	left: 50%;
	top: 20px;
	width: 14px;
	height: 84px;
	border-radius: 999px;
	background: linear-gradient(180deg, #8fd4e8, #2e94bd);
	transform: translateX(-50%) translateZ(62px);
}

.ip-atelectasis-plug {
	position: absolute;
	left: 50%;
	top: 74px;
	width: 26px;
	height: 20px;
	border-radius: 999px;
	background: #c98b2f;
	box-shadow: 0 0 0 6px rgba(201,139,47,.18);
	transform: translateX(-50%) translateZ(72px);
}

.ip-atelectasis-zone {
	position: absolute;
	left: 50%;
	bottom: 34px;
	width: 112px;
	height: 44px;
	border-radius: 12px 12px 48px 48px;
	background:
		repeating-linear-gradient(135deg, rgba(255,255,255,.22) 0 5px, transparent 5px 10px),
		linear-gradient(180deg, #65727d, #33414d);
	box-shadow: 0 12px 20px rgba(16,32,44,.18);
	transform: translateX(-50%) translateZ(82px);
}

.ip-atelectasis-label {
	position: absolute;
	left: 50%;
	bottom: 12px;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(16,32,44,.86);
	color: #fff;
	font-size: .68rem;
	font-weight: 900;
	text-transform: uppercase;
	transform: translateX(-50%) translateZ(90px);
}

.ip-lung-model {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	width: 126px;
	height: 138px;
	transform: translateZ(38px) rotateX(8deg);
}

.ip-lung-model span {
	display: block;
	border: 4px solid rgba(54,167,224,.84);
	border-radius: 58% 42% 54% 46%;
	background:
		radial-gradient(circle at 36% 28%, rgba(255,255,255,.84), transparent 18%),
		linear-gradient(145deg, rgba(207,241,248,.94), rgba(90,188,218,.72));
	box-shadow: inset -12px -14px 20px rgba(16,32,44,.12), 0 12px 20px rgba(16,32,44,.14);
	animation: none;
}

.ip-lung-model span:last-child {
	align-self: end;
	height: 46%;
	border-color: rgba(84,96,108,.9);
	border-radius: 18px 18px 58px 58px;
	background:
		repeating-linear-gradient(135deg, rgba(255,255,255,.22) 0 5px, transparent 5px 10px),
		linear-gradient(180deg, #65727d, #33414d);
}

.ip-compression-plane {
	position: absolute;
	left: 50%;
	bottom: 12px;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(16,32,44,.86);
	color: #fff;
	font-size: .68rem;
	font-weight: 900;
	text-transform: uppercase;
	transform: translateX(-50%) translateZ(90px);
}

.ip-compression-plane::before {
	content: "zona sin volumen";
}

.ip-lung-lab__panel {
	min-height: 270px;
	padding: 24px;
	border: 1px solid rgba(88, 112, 128, 0.16);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ip-concept {
	display: none;
	animation: ip-fade-up 180ms ease both;
}

.ip-concept.is-active {
	display: block;
}

.ip-concept h3 {
	margin: 0 0 12px;
	font-size: clamp(1.25rem, 1.12rem + 0.5vw, 1.6rem);
	letter-spacing: 0;
}

.ip-concept p,
.ip-concept li {
	line-height: 1.65;
}

.ip-concept__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}

.ip-concept__chips span {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 7px 11px;
	border: 1px solid #dbeaf0;
	border-radius: 999px;
	background: #f7fbfd;
	color: #214557;
	font-size: 0.9rem;
	font-weight: 800;
}

@keyframes ip-closed-pulse {
	0%, 100% { transform: translateZ(42px) scale(0.62); opacity: 0.78; }
	50% { transform: translateZ(42px) scale(0.5); opacity: 0.58; }
}

@keyframes ip-rbc-flow {
	0% { left: 0; transform: translateX(-24px) scale(0.9); }
	100% { left: 100%; transform: translateX(16px) scale(1.06); }
}

@keyframes ip-collapse {
	0%, 100% { transform: translateZ(42px) scale(1); }
	50% { transform: translateZ(42px) scale(0.42, 0.3); }
}

@keyframes ip-fluid-rise {
	0%, 100% { height: 42%; }
	50% { height: 70%; }
}

@keyframes ip-wave {
	0%, 100% { transform: translateZ(48px) translateY(0) scaleX(0.95); opacity: 0.65; }
	50% { transform: translateZ(48px) translateY(-16px) scaleX(1.1); opacity: 0.9; }
}

@keyframes ip-fade-up {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 980px) {
	.ip-lung-lab__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-lung-lab {
		padding: 16px;
	}

	.ip-lung-lab__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.ip-lung-card {
		grid-template-rows: 96px auto;
		min-height: 176px;
		padding: 10px;
	}

	.ip-lung-card__subtitle {
		display: none;
	}

	.ip-lung-card__title {
		font-size: .9rem;
	}

	.ip-alveolus {
		width: 68px;
		height: 68px;
	}

	.ip-alveolus--collapsed {
		width: 58px;
		height: 32px;
	}

	.ip-vessel {
		bottom: 18px;
		height: 22px;
	}

	.ip-lung-card__scene::before {
		inset: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-lung-lab *,
	.ip-lung-lab *::before,
	.ip-lung-lab *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-peep-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #68d4e8;
	--ip-green: #16a085;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 252, 0.96)),
		radial-gradient(circle at 80% 12%, rgba(22, 160, 133, 0.14), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-peep-lab__header {
	max-width: 820px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-peep-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-peep-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-peep-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-peep-lab__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.ip-peep-card {
	display: grid;
	grid-template-rows: auto minmax(280px, 1fr) auto;
	gap: 18px;
	min-height: 520px;
	padding: 18px;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16, 32, 44, 0.09);
}

.ip-peep-card__top h4 {
	margin: 0 0 12px;
	color: #1f3b4d;
	font-size: 1.18rem;
	letter-spacing: 0;
}

.ip-monitor {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ip-monitor span {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 7px 10px;
	border: 1px solid #dbeaf0;
	border-radius: 999px;
	background: #f7fbfd;
	color: #214557;
	font-size: 0.88rem;
	font-weight: 800;
}

.ip-monitor strong {
	font-weight: 900;
}

.ip-monitor .is-bad {
	color: var(--ip-red);
}

.ip-monitor .is-good {
	color: var(--ip-green);
}

.ip-peep-card p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-peep-scene {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	min-height: 280px;
	border-radius: 8px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(215, 238, 246, 0.84)),
		linear-gradient(45deg, rgba(54, 167, 224, 0.12), rgba(22, 160, 133, 0.1));
	box-shadow: inset 0 0 34px rgba(54, 167, 224, 0.15);
	perspective: 900px;
	transform-style: preserve-3d;
}

.ip-peep-scene::before {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid rgba(255, 255, 255, 0.76);
	border-radius: 8px;
	transform: translateZ(24px);
}

.ip-pressure-floor {
	position: absolute;
	left: 16%;
	right: 16%;
	bottom: 48px;
	height: 14px;
	border-radius: 999px;
	background: rgba(88, 112, 128, 0.28);
	box-shadow: 0 14px 20px rgba(16, 32, 44, 0.12);
	transform: translateZ(28px) rotateX(58deg);
}

.ip-pressure-floor--active {
	background: linear-gradient(90deg, rgba(22, 160, 133, 0.64), rgba(104, 212, 232, 0.82));
	animation: ip-peep-floor 3s ease-in-out infinite;
}

.ip-alveoli-cluster {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, 54px);
	gap: 9px;
	align-items: end;
	transform: translateZ(52px) rotateX(8deg);
}

.ip-alveoli-cluster span {
	display: block;
	width: 54px;
	height: 54px;
	border: 4px solid rgba(54, 167, 224, 0.95);
	border-radius: 999px;
	background:
		radial-gradient(circle at 32% 26%, rgba(255, 255, 255, 0.95) 0 13%, transparent 14%),
		radial-gradient(circle at 58% 60%, rgba(104, 212, 232, 0.82), rgba(255, 255, 255, 0.9) 58%, rgba(186, 229, 240, 0.84));
	box-shadow:
		0 16px 22px rgba(16, 32, 44, 0.16),
		inset -8px -8px 16px rgba(54, 167, 224, 0.15),
		inset 8px 8px 16px rgba(255, 255, 255, 0.88);
}

.ip-peep-scene--collapsed .ip-alveoli-cluster span {
	animation: ip-alveoli-collapse 4s ease-in-out infinite;
}

.ip-peep-scene--collapsed .ip-alveoli-cluster span:nth-child(2) { animation-delay: -0.5s; }
.ip-peep-scene--collapsed .ip-alveoli-cluster span:nth-child(3) { animation-delay: -1s; }
.ip-peep-scene--collapsed .ip-alveoli-cluster span:nth-child(4) { animation-delay: -1.5s; }
.ip-peep-scene--collapsed .ip-alveoli-cluster span:nth-child(5) { animation-delay: -2s; }

.ip-peep-scene--recruited .ip-alveoli-cluster span {
	animation: ip-alveoli-recruit 3.2s ease-in-out infinite;
}

.ip-peep-scene--recruited .ip-alveoli-cluster span:nth-child(2) { animation-delay: -0.35s; }
.ip-peep-scene--recruited .ip-alveoli-cluster span:nth-child(3) { animation-delay: -0.7s; }
.ip-peep-scene--recruited .ip-alveoli-cluster span:nth-child(4) { animation-delay: -1.05s; }
.ip-peep-scene--recruited .ip-alveoli-cluster span:nth-child(5) { animation-delay: -1.4s; }

.ip-air-column {
	position: absolute;
	top: 30px;
	width: 84px;
	height: 160px;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(54, 167, 224, 0.24));
	filter: blur(0.2px);
	transform: translateZ(36px);
}

.ip-air-column--weak {
	opacity: 0.28;
	animation: ip-air-weak 3s ease-in-out infinite;
}

.ip-air-column--active {
	opacity: 0.68;
	animation: ip-air-active 2.6s ease-in-out infinite;
}

.ip-pressure-curve {
	position: absolute;
	left: 8%;
	right: 8%;
	bottom: 8px;
	width: 84%;
	height: 70px;
	transform: translateZ(62px);
}

.ip-pressure-curve path {
	fill: none;
	stroke: #1f5fbf;
	stroke-width: 5;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 620;
	stroke-dashoffset: 620;
	animation: ip-pressure-draw 4s linear infinite;
	filter: drop-shadow(0 5px 8px rgba(31, 95, 191, 0.18));
}

@keyframes ip-alveoli-collapse {
	0%, 100% { transform: scale(1); opacity: 1; filter: saturate(1); }
	50% { transform: scale(0.34, 0.22); opacity: 0.48; filter: saturate(0.45); }
}

@keyframes ip-alveoli-recruit {
	0%, 100% { transform: scale(0.74); }
	50% { transform: scale(1.12); }
}

@keyframes ip-peep-floor {
	0%, 100% { transform: translateZ(28px) rotateX(58deg) scaleX(0.92); }
	50% { transform: translateZ(28px) rotateX(58deg) scaleX(1.04); }
}

@keyframes ip-air-weak {
	0%, 100% { transform: translateZ(36px) translateY(8px) scaleY(0.75); }
	50% { transform: translateZ(36px) translateY(20px) scaleY(0.46); }
}

@keyframes ip-air-active {
	0%, 100% { transform: translateZ(36px) translateY(8px) scaleY(0.92); }
	50% { transform: translateZ(36px) translateY(-8px) scaleY(1.12); }
}

@keyframes ip-pressure-draw {
	to { stroke-dashoffset: 0; }
}

@media (max-width: 860px) {
	.ip-peep-lab__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.ip-peep-lab {
		padding: 16px;
	}

	.ip-peep-card {
		min-height: 0;
	}

	.ip-peep-scene {
		min-height: 230px;
	}

	.ip-alveoli-cluster {
		grid-template-columns: repeat(5, 42px);
		gap: 6px;
	}

	.ip-alveoli-cluster span {
		width: 42px;
		height: 42px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-peep-lab *,
	.ip-peep-lab *::before,
	.ip-peep-lab *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-oxygen-paths {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-violet: #6f73d9;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 252, 0.96)),
		radial-gradient(circle at 12% 18%, rgba(54, 167, 224, 0.14), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-oxygen-paths__header {
	max-width: 820px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-oxygen-paths__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-oxygen-paths__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-oxygen-paths__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-oxygen-paths__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ip-oxygen-card {
	display: grid;
	grid-template-rows: 180px auto auto 1fr;
	gap: 12px;
	min-height: 560px;
	padding: 16px;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16, 32, 44, 0.09);
}

.ip-oxygen-card__visual {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: 8px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(215, 238, 246, 0.84)),
		linear-gradient(45deg, rgba(54, 167, 224, 0.12), rgba(111, 115, 217, 0.1));
	box-shadow: inset 0 0 34px rgba(54, 167, 224, 0.14);
	perspective: 900px;
}

.ip-oxygen-card__visual::before {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid rgba(255, 255, 255, 0.76);
	border-radius: 8px;
	transform: translateZ(24px);
}

.ip-oxygen-card h4 {
	margin: 0;
	color: #1f3b4d;
	font-size: 1.14rem;
	letter-spacing: 0;
}

.ip-oxygen-card p,
.ip-oxygen-card li {
	color: #355162;
	line-height: 1.58;
}

.ip-oxygen-card p {
	margin: 0;
}

.ip-oxygen-card ul {
	margin: 0;
	padding-left: 1.15rem;
}

.ip-flow-tube {
	position: absolute;
	left: 18%;
	width: 32px;
	height: 116px;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(54, 167, 224, 0.32));
	box-shadow: inset 0 0 16px rgba(54, 167, 224, 0.2), 0 14px 24px rgba(16, 32, 44, 0.14);
	transform: translateZ(42px) rotate(-8deg);
}

.ip-flow-stream {
	position: absolute;
	left: 34%;
	width: 122px;
	height: 16px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(54, 167, 224, 0.12), rgba(54, 167, 224, 0.68), rgba(255, 255, 255, 0));
	transform: translateZ(50px);
	animation: ip-flow-stream 2.2s ease-in-out infinite;
}

.ip-flow-stream--one { top: 58px; animation-delay: 0s; }
.ip-flow-stream--two { top: 82px; animation-delay: -0.65s; }
.ip-flow-stream--three { top: 106px; animation-delay: -1.3s; }

.ip-fio2-orb {
	position: relative;
	width: 118px;
	height: 118px;
	border-radius: 999px;
	background:
		radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.98) 0 13%, transparent 14%),
		radial-gradient(circle at 56% 58%, rgba(104, 212, 232, 0.88), rgba(255, 255, 255, 0.9) 54%, rgba(54, 167, 224, 0.5));
	box-shadow:
		0 18px 28px rgba(16, 32, 44, 0.17),
		inset -14px -14px 24px rgba(54, 167, 224, 0.16),
		inset 12px 12px 22px rgba(255, 255, 255, 0.88);
	transform: translateZ(46px);
	animation: ip-fio2-pulse 3.2s ease-in-out infinite;
}

.ip-fio2-orb span {
	position: absolute;
	width: 18px;
	height: 18px;
	border-radius: 999px;
	background: rgba(22, 160, 133, 0.72);
	box-shadow: 0 0 18px rgba(22, 160, 133, 0.28);
	animation: ip-fio2-dot 2.8s ease-in-out infinite;
}

.ip-fio2-orb span:nth-child(1) { left: 18px; top: 48px; }
.ip-fio2-orb span:nth-child(2) { right: 22px; top: 30px; animation-delay: -0.9s; }
.ip-fio2-orb span:nth-child(3) { right: 34px; bottom: 22px; animation-delay: -1.8s; }

.ip-pressure-dome {
	position: absolute;
	width: 164px;
	height: 70px;
	bottom: 42px;
	border-radius: 999px 999px 22px 22px;
	background: linear-gradient(180deg, rgba(111, 115, 217, 0.2), rgba(54, 167, 224, 0.5));
	box-shadow: inset 0 12px 20px rgba(255, 255, 255, 0.38), 0 16px 28px rgba(16, 32, 44, 0.14);
	transform: translateZ(34px);
	animation: ip-pressure-dome 3.2s ease-in-out infinite;
}

.ip-pressure-lung {
	position: relative;
	width: 90px;
	height: 104px;
	border-radius: 999px;
	background:
		radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.9) 0 12%, transparent 13%),
		linear-gradient(145deg, rgba(104, 212, 232, 0.92), rgba(54, 167, 224, 0.78));
	box-shadow: inset -12px -12px 20px rgba(16, 32, 44, 0.1), 0 16px 24px rgba(16, 32, 44, 0.16);
	transform: translateZ(54px);
	animation: ip-pressure-lung 3.2s ease-in-out infinite;
}

@keyframes ip-flow-stream {
	0%, 100% { opacity: 0.3; transform: translateZ(50px) translateX(-16px) scaleX(0.78); }
	50% { opacity: 0.95; transform: translateZ(50px) translateX(18px) scaleX(1.1); }
}

@keyframes ip-fio2-pulse {
	0%, 100% { transform: translateZ(46px) scale(0.96); }
	50% { transform: translateZ(46px) scale(1.04); }
}

@keyframes ip-fio2-dot {
	0%, 100% { transform: scale(0.82); opacity: 0.58; }
	50% { transform: scale(1.18); opacity: 1; }
}

@keyframes ip-pressure-dome {
	0%, 100% { transform: translateZ(34px) translateY(4px) scaleX(0.94); opacity: 0.68; }
	50% { transform: translateZ(34px) translateY(-8px) scaleX(1.04); opacity: 0.96; }
}

@keyframes ip-pressure-lung {
	0%, 100% { transform: translateZ(54px) scale(0.84); }
	50% { transform: translateZ(54px) scale(1.05); }
}

@media (max-width: 980px) {
	.ip-oxygen-paths__grid {
		grid-template-columns: 1fr;
	}

	.ip-oxygen-card {
		min-height: 0;
	}
}

@media (max-width: 520px) {
	.ip-oxygen-paths {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-oxygen-paths *,
	.ip-oxygen-paths *::before,
	.ip-oxygen-paths *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-peep-sim {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-red: #e34b58;
	--ip-pressure: 0.35;
	--ip-recruit: 0.62;
	--ip-vessel: 1;
	--ip-heart: 1;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 252, 0.96)),
		radial-gradient(circle at 78% 14%, rgba(227, 75, 88, 0.12), transparent 32%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-peep-sim__header {
	max-width: 830px;
	margin: 0 auto 22px;
	text-align: center;
}

.ip-peep-sim__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-peep-sim__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-peep-sim__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-peep-sim__controls {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin: 0;
}

.ip-peep-sim__controls button {
	display: none;
}

.ip-peep-sim__controls label {
	display: grid;
	gap: 6px;
	color: #355162;
	font-size: 0.88rem;
	font-weight: 800;
}

.ip-peep-sim__controls input[type="range"] {
	width: 100%;
	accent-color: var(--ip-blue);
}

.ip-peep-sim__monitor {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.ip-peep-sim__monitor span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 34px;
	padding: 7px 10px;
	border: 1px solid #dbeaf0;
	border-radius: 999px;
	background: #f7fbfd;
	color: #214557;
	font-size: 0.88rem;
	font-weight: 800;
}

.ip-peep-sim .is-good { color: var(--ip-green); }
.ip-peep-sim .is-bad { color: var(--ip-red); }
.ip-peep-sim .is-warn { color: #b7791f; }

.ip-peep-sim__body {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
	gap: 18px;
	align-items: stretch;
}

.ip-peep-sim__panel {
	display: grid;
	align-content: start;
	gap: 14px;
}

.ip-peep-sim__thorax {
	position: relative;
	min-height: 420px;
	overflow: hidden;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(225, 246, 251, 0.94), rgba(247, 251, 253, 0.92)),
		radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.7), transparent 26%);
	box-shadow: inset 0 0 42px rgba(54, 167, 224, 0.14);
	perspective: 1000px;
}

.ip-peep-sim__thorax::before {
	content: "";
	position: absolute;
	inset: 20px 11%;
	border: 6px solid rgba(16, 32, 44, 0.58);
	border-radius: 34px 34px 140px 140px;
	box-shadow: inset 0 0 32px rgba(255, 255, 255, 0.55);
}

.ip-sim-pressure-field {
	position: absolute;
	inset: 20px 11%;
	border-radius: 34px 34px 140px 140px;
	background: radial-gradient(circle at 50% 50%, rgba(227, 75, 88, calc(var(--ip-pressure) * 0.34)), transparent 58%);
	opacity: var(--ip-pressure);
	transform: translateZ(20px) scale(calc(0.95 + var(--ip-pressure) * 0.08));
	transition: opacity 220ms ease, transform 220ms ease;
}

.ip-sim-lung {
	position: absolute;
	top: 24%;
	width: 26%;
	height: 48%;
	border-radius: 50% 50% 42% 42%;
	background:
		radial-gradient(circle at 34% 26%, rgba(255, 255, 255, 0.86), transparent 19%),
		linear-gradient(145deg, rgba(104, 212, 232, 0.84), rgba(54, 167, 224, 0.66));
	box-shadow:
		inset -18px -22px 34px rgba(16, 32, 44, 0.1),
		0 18px 30px rgba(16, 32, 44, 0.12);
	opacity: 0.72;
	transform-origin: center bottom;
	animation: ip-sim-breathe 3.4s ease-in-out infinite;
}

.ip-sim-lung--left {
	left: 18%;
	transform: translateZ(48px) scale(calc(0.74 + var(--ip-recruit) * 0.28));
}

.ip-sim-lung--right {
	right: 18%;
	transform: translateZ(48px) scale(calc(0.74 + var(--ip-recruit) * 0.28));
}

.ip-sim-alveoli {
	position: absolute;
	inset: 12%;
	background-image:
		radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 13%, rgba(54, 167, 224, 0.82) 14% 25%, transparent 27%),
		radial-gradient(circle, rgba(255, 255, 255, 0.88) 0 12%, rgba(54, 167, 224, 0.62) 13% 24%, transparent 26%);
	background-position: 0 0, 18px 22px;
	background-size: calc(38px + var(--ip-recruit) * 18px) calc(38px + var(--ip-recruit) * 18px);
	opacity: calc(0.38 + var(--ip-recruit) * 0.55);
	animation: ip-sim-alveoli 3.4s ease-in-out infinite;
}

.ip-sim-vessel {
	position: absolute;
	top: 13%;
	bottom: 11%;
	width: calc(18px + var(--ip-vessel) * 34px);
	border-radius: 999px;
	transition: width 220ms ease, opacity 220ms ease;
	z-index: 3;
}

.ip-sim-vessel--venous {
	left: 44%;
	background: linear-gradient(180deg, #1f5fbf, #36a7e0);
	box-shadow: inset 0 8px 12px rgba(255, 255, 255, 0.24), 0 14px 26px rgba(31, 95, 191, 0.16);
}

.ip-sim-vessel--arterial {
	left: 54%;
	background: linear-gradient(180deg, #ff747d, #d92332);
	box-shadow: inset 0 8px 12px rgba(255, 255, 255, 0.24), 0 14px 26px rgba(217, 35, 50, 0.16);
}

.ip-sim-heart {
	position: absolute;
	left: 50%;
	top: 51%;
	width: 132px;
	height: 116px;
	border-radius: 34% 34% 44% 44%;
	background:
		radial-gradient(circle at 34% 26%, rgba(255, 255, 255, 0.54), transparent 18%),
		linear-gradient(145deg, #ff747d, #d92332);
	box-shadow: inset -14px -16px 28px rgba(138, 27, 38, 0.2), 0 18px 30px rgba(138, 27, 38, 0.2);
	transform: translate(-50%, -50%) translateZ(72px) scale(var(--ip-heart));
	animation: ip-sim-heartbeat 1.1s ease-in-out infinite;
	z-index: 5;
}

.ip-sim-heart::before,
.ip-sim-heart::after {
	content: "";
	position: absolute;
	top: -34px;
	width: 76px;
	height: 76px;
	border-radius: 999px;
	background: inherit;
}

.ip-sim-heart::before { left: 2px; }
.ip-sim-heart::after { right: 2px; }

.ip-sim-alert {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(138, 27, 38, 0.72);
	color: #ffffff;
	font-size: clamp(2.4rem, 7vw, 5.2rem);
	font-weight: 900;
	letter-spacing: 0;
	opacity: 0;
	transform: translateZ(120px);
	transition: opacity 180ms ease;
	z-index: 9;
}

.ip-peep-sim.is-shock .ip-sim-alert {
	opacity: 1;
}

.ip-peep-sim.is-rapid-rise .ip-peep-sim__thorax {
	box-shadow:
		inset 0 0 42px rgba(227, 75, 88, 0.22),
		0 0 0 3px rgba(227, 75, 88, 0.16);
}

.ip-peep-sim__legend {
	padding: 22px;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ip-peep-sim__legend h4 {
	margin: 0 0 10px;
	font-size: 1.18rem;
	letter-spacing: 0;
}

.ip-peep-sim__legend p,
.ip-peep-sim__legend li {
	color: #355162;
	line-height: 1.65;
}

.ip-peep-sim__legend p {
	margin: 0 0 14px;
}

@keyframes ip-sim-breathe {
	0%, 100% { scale: 0.96 0.96; }
	50% { scale: 1.04 1.08; }
}

@keyframes ip-sim-alveoli {
	0%, 100% { transform: scale(calc(0.78 + var(--ip-recruit) * 0.16)); }
	50% { transform: scale(calc(0.9 + var(--ip-recruit) * 0.18)); }
}

@keyframes ip-sim-heartbeat {
	0%, 100% { scale: 1; }
	45% { scale: 1.06; }
}

@media (max-width: 920px) {
	.ip-peep-sim__body {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.ip-peep-sim {
		padding: 16px;
	}

	.ip-peep-sim__thorax {
		min-height: 300px;
	}

	.ip-peep-sim__monitor {
		grid-template-columns: 1fr 1fr;
	}

	.ip-peep-sim__monitor span {
		display: grid;
		gap: 2px;
		align-items: center;
		min-height: 54px;
		border-radius: 8px;
	}

	.ip-sim-heart {
		width: 78px;
		height: 70px;
	}

	.ip-sim-heart::before,
	.ip-sim-heart::after {
		top: -20px;
		width: 45px;
		height: 45px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-peep-sim *,
	.ip-peep-sim *::before,
	.ip-peep-sim *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-error-board {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-red: #e34b58;
	--ip-amber: #d89b27;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 252, 0.96)),
		radial-gradient(circle at 16% 18%, rgba(216, 155, 39, 0.13), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-error-board__header {
	max-width: 820px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-error-board__kicker {
	margin: 0 0 8px;
	color: #9b6b17;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-error-board__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-error-board__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-error-board__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ip-error-card {
	display: grid;
	grid-template-rows: 150px auto auto auto;
	gap: 10px;
	min-height: 430px;
	padding: 15px;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16, 32, 44, 0.09);
}

.ip-error-card__visual {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: 8px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(215, 238, 246, 0.84)),
		linear-gradient(45deg, rgba(216, 155, 39, 0.1), rgba(54, 167, 224, 0.11));
	box-shadow: inset 0 0 30px rgba(54, 167, 224, 0.12);
	perspective: 900px;
}

.ip-error-card__visual::before {
	content: "";
	position: absolute;
	inset: 16px;
	border: 1px solid rgba(255, 255, 255, 0.78);
	border-radius: 8px;
	transform: translateZ(24px);
}

.ip-error-card h4 {
	margin: 0;
	color: #1f3b4d;
	font-size: 1.05rem;
	letter-spacing: 0;
}

.ip-error-card p {
	margin: 0;
	color: #355162;
	line-height: 1.56;
}

.ip-error-gauge {
	position: relative;
	width: 118px;
	height: 68px;
	border: 10px solid rgba(227, 75, 88, 0.72);
	border-bottom: 0;
	border-radius: 120px 120px 0 0;
	transform: translateZ(48px);
	box-shadow: 0 16px 24px rgba(16, 32, 44, 0.14);
}

.ip-error-gauge span {
	position: absolute;
	left: 50%;
	bottom: -3px;
	width: 48px;
	height: 5px;
	border-radius: 999px;
	background: #10202c;
	transform-origin: left center;
	animation: ip-error-needle 2.8s ease-in-out infinite;
}

.ip-error-slider {
	position: relative;
	width: 132px;
	height: 16px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--ip-blue), var(--ip-green), var(--ip-red));
	transform: translateZ(48px);
	box-shadow: 0 16px 24px rgba(16, 32, 44, 0.14);
}

.ip-error-slider span {
	position: absolute;
	left: 46%;
	top: 50%;
	width: 34px;
	height: 34px;
	border: 5px solid #ffffff;
	border-radius: 999px;
	background: #1f3b4d;
	box-shadow: 0 10px 18px rgba(16, 32, 44, 0.2);
	transform: translate(-50%, -50%);
	animation: ip-error-fixed 2.8s ease-in-out infinite;
}

.ip-error-balance {
	position: relative;
	width: 136px;
	height: 92px;
	transform: translateZ(48px);
}

.ip-error-balance::before {
	content: "";
	position: absolute;
	left: 16px;
	right: 16px;
	top: 40px;
	height: 8px;
	border-radius: 999px;
	background: #1f3b4d;
	transform: rotate(-8deg);
	box-shadow: 0 12px 18px rgba(16, 32, 44, 0.16);
}

.ip-error-balance::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 42px;
	width: 10px;
	height: 48px;
	border-radius: 999px;
	background: #1f3b4d;
	transform: translateX(-50%);
}

.ip-error-balance span {
	position: absolute;
	top: 54px;
	width: 44px;
	height: 28px;
	border-radius: 0 0 999px 999px;
	background: rgba(54, 167, 224, 0.76);
	box-shadow: inset 0 8px 12px rgba(255, 255, 255, 0.26), 0 10px 16px rgba(16, 32, 44, 0.13);
}

.ip-error-balance span:first-child { left: 4px; }
.ip-error-balance span:last-child { right: 4px; background: rgba(227, 75, 88, 0.72); }

.ip-error-monitor {
	position: relative;
	width: 136px;
	height: 92px;
	border: 8px solid #1f3b4d;
	border-radius: 8px;
	background: linear-gradient(180deg, #0f2433, #173a4d);
	transform: translateZ(48px);
	box-shadow: 0 16px 24px rgba(16, 32, 44, 0.14);
}

.ip-error-monitor::after {
	content: "";
	position: absolute;
	left: 42px;
	right: 42px;
	bottom: -18px;
	height: 10px;
	border-radius: 999px;
	background: #1f3b4d;
}

.ip-error-monitor span {
	position: absolute;
	left: 18px;
	right: 18px;
	height: 4px;
	border-radius: 999px;
	background: #68d4e8;
	animation: ip-monitor-line 2.4s ease-in-out infinite;
}

.ip-error-monitor span:nth-child(1) { top: 24px; }
.ip-error-monitor span:nth-child(2) { top: 42px; animation-delay: -0.7s; }
.ip-error-monitor span:nth-child(3) { top: 60px; animation-delay: -1.4s; }

@keyframes ip-error-needle {
	0%, 100% { transform: rotate(-24deg); }
	50% { transform: rotate(44deg); }
}

@keyframes ip-error-fixed {
	0%, 100% { transform: translate(-50%, -50%) scale(1); }
	50% { transform: translate(-50%, -50%) scale(1.12); }
}

@keyframes ip-monitor-line {
	0%, 100% { transform: scaleX(0.78); opacity: 0.58; }
	50% { transform: scaleX(1); opacity: 1; }
}

@media (max-width: 1060px) {
	.ip-error-board__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-error-board {
		padding: 16px;
	}

	.ip-error-board__grid {
		grid-template-columns: 1fr;
	}

	.ip-error-card {
		min-height: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-error-board *,
	.ip-error-board *::before,
	.ip-error-board *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-contra-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-red: #e34b58;
	--ip-green: #16a085;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 252, 0.96)),
		radial-gradient(circle at 82% 14%, rgba(227, 75, 88, 0.12), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16, 32, 44, 0.1);
}

.ip-contra-lab__header {
	max-width: 840px;
	margin: 0 auto 20px;
	text-align: center;
}

.ip-contra-lab__kicker {
	margin: 0 0 8px;
	color: #9b2c2c;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-contra-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-contra-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-contra-lab__pledge {
	max-width: 880px;
	margin: 0 auto 22px;
	padding: 14px 16px;
	border: 1px solid rgba(227, 75, 88, 0.28);
	border-left: 5px solid var(--ip-red);
	border-radius: 8px;
	background: #fff7f7;
	color: #4f1f24;
	line-height: 1.55;
}

.ip-contra-lab__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ip-contra-card {
	display: grid;
	grid-template-rows: auto 240px auto;
	gap: 14px;
	min-height: 460px;
	padding: 16px;
	border: 1px solid rgba(88, 112, 128, 0.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #ffffff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16, 32, 44, 0.09);
}

.ip-contra-card header {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
}

.ip-contra-card h4 {
	margin: 0;
	color: #1f3b4d;
	font-size: 1.05rem;
	letter-spacing: 0;
}

.ip-contra-card p {
	margin: 0;
	color: #355162;
	line-height: 1.6;
}

.ip-contra-switch {
	display: inline-grid;
	grid-template-columns: auto 58px;
	gap: 8px;
	align-items: center;
	color: #355162;
	font-size: 0.82rem;
	font-weight: 900;
	cursor: pointer;
}

.ip-contra-switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ip-contra-switch i {
	position: relative;
	display: block;
	width: 58px;
	height: 30px;
	border-radius: 999px;
	background: #9fb2bf;
	box-shadow: inset 0 2px 5px rgba(16, 32, 44, 0.18);
	transition: background 160ms ease;
}

.ip-contra-switch i::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 4px;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #ffffff;
	box-shadow: 0 4px 8px rgba(16, 32, 44, 0.18);
	transition: transform 160ms ease;
}

.ip-contra-switch input:checked + i {
	background: var(--ip-red);
}

.ip-contra-switch input:checked + i::before {
	transform: translateX(28px);
}

.ip-contra-scene {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	border-radius: 8px;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(215, 238, 246, 0.84)),
		linear-gradient(45deg, rgba(227, 75, 88, 0.1), rgba(54, 167, 224, 0.1));
	box-shadow: inset 0 0 34px rgba(54, 167, 224, 0.13);
	perspective: 900px;
}

.ip-contra-thorax {
	position: absolute;
	inset: 22px 18%;
	border: 5px solid rgba(16, 32, 44, 0.5);
	border-radius: 26px 26px 96px 96px;
	box-shadow: inset 0 0 24px rgba(255, 255, 255, 0.6);
}

.ip-contra-lung {
	position: absolute;
	left: 24%;
	top: 29%;
	width: 34%;
	height: 42%;
	border-radius: 50% 50% 42% 42%;
	background:
		radial-gradient(circle at 34% 25%, rgba(255, 255, 255, 0.9), transparent 18%),
		linear-gradient(145deg, rgba(104, 212, 232, 0.9), rgba(54, 167, 224, 0.72));
	box-shadow: inset -12px -16px 24px rgba(16, 32, 44, 0.1), 0 14px 22px rgba(16, 32, 44, 0.14);
	transform: translateZ(46px);
	animation: ip-contra-breathe 3s ease-in-out infinite;
}

.ip-contra-pleura {
	position: absolute;
	right: 21%;
	top: 28%;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: rgba(54, 167, 224, 0.34);
	box-shadow: 0 0 0 rgba(54, 167, 224, 0.14);
	transform: translateZ(58px);
	transition: width 220ms ease, height 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

.ip-contra-heart {
	position: absolute;
	left: 52%;
	top: 60%;
	width: 70px;
	height: 60px;
	border-radius: 34% 34% 44% 44%;
	background: linear-gradient(145deg, #ff747d, #d92332);
	box-shadow: inset -10px -12px 20px rgba(138, 27, 38, 0.18), 0 12px 18px rgba(138, 27, 38, 0.18);
	transform: translate(-50%, -50%) translateZ(70px);
	animation: ip-contra-heart 1.1s ease-in-out infinite;
	transition: transform 220ms ease;
	z-index: 4;
}

.ip-contra-heart::before,
.ip-contra-heart::after {
	content: "";
	position: absolute;
	top: -20px;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: inherit;
}

.ip-contra-heart::before { left: 2px; }
.ip-contra-heart::after { right: 2px; }

.ip-contra-vessel {
	position: absolute;
	top: 22%;
	bottom: 18%;
	width: 30px;
	border-radius: 999px;
	transform: translateZ(44px);
	transition: width 220ms ease, opacity 220ms ease;
}

.ip-contra-vessel--blue {
	left: 39%;
	background: linear-gradient(180deg, #1f5fbf, #36a7e0);
}

.ip-contra-vessel--red {
	right: 39%;
	background: linear-gradient(180deg, #ff747d, #d92332);
}

.ip-contra-pressure {
	position: absolute;
	inset: 22px 18%;
	border-radius: 26px 26px 96px 96px;
	background: radial-gradient(circle at 50% 50%, rgba(227, 75, 88, 0.28), transparent 60%);
	opacity: 0.25;
	transform: translateZ(28px);
	transition: opacity 220ms ease, transform 220ms ease;
}

.ip-contra-rv-heart {
	position: absolute;
	left: 50%;
	top: 58%;
	width: 116px;
	height: 88px;
	transform: translate(-50%, -50%) translateZ(70px);
}

.ip-contra-rv-heart span {
	position: absolute;
	top: 16px;
	width: 62px;
	height: 62px;
	border-radius: 999px 999px 42px 42px;
	background: linear-gradient(145deg, #ff747d, #d92332);
	box-shadow: inset -10px -12px 20px rgba(138, 27, 38, 0.18), 0 12px 18px rgba(138, 27, 38, 0.16);
	animation: ip-contra-heart 1.35s ease-in-out infinite;
	transition: transform 220ms ease, opacity 220ms ease;
}

.ip-contra-rv-heart span:first-child {
	left: 4px;
}

.ip-contra-rv-heart span:last-child {
	right: 4px;
	background: linear-gradient(145deg, #ff9aa1, #e34b58);
}

.ip-contra-alert {
	position: absolute;
	left: 50%;
	bottom: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(227, 75, 88, 0.92);
	color: #ffffff;
	font-size: 0.84rem;
	font-weight: 900;
	opacity: 0;
	transform: translateX(-50%) translateY(8px) translateZ(90px);
	transition: opacity 180ms ease, transform 180ms ease;
	z-index: 8;
}

.ip-contra-card.is-active .ip-contra-alert {
	opacity: 1;
	transform: translateX(-50%) translateY(0) translateZ(90px);
}

.ip-contra-card.is-active .ip-contra-pleura {
	width: 96px;
	height: 96px;
	background: rgba(54, 167, 224, 0.72);
	box-shadow: 0 0 34px rgba(54, 167, 224, 0.3);
}

.ip-contra-card.is-active .ip-contra-scene--pneumo .ip-contra-heart {
	transform: translate(-35%, -50%) translateZ(70px) scale(0.72, 0.86);
}

.ip-contra-card.is-active .ip-contra-vessel {
	width: 12px;
	opacity: 0.58;
}

.ip-contra-card.is-active .ip-contra-scene--rv .ip-contra-vessel--blue {
	width: 46px;
	opacity: 0.92;
	box-shadow:
		inset 0 8px 12px rgba(255, 255, 255, 0.26),
		0 0 24px rgba(54, 167, 224, 0.26);
}

.ip-contra-card.is-active .ip-contra-pressure {
	opacity: 0.9;
	transform: translateZ(28px) scale(1.04);
}

.ip-contra-card.is-active .ip-contra-scene--rv .ip-contra-rv-heart span:first-child {
	transform: scale(0.68, 0.82);
	opacity: 0.72;
}

.ip-contra-card.is-active .ip-contra-scene--rv .ip-contra-rv-heart span:last-child {
	transform: scale(1.04, 1.02);
	opacity: 1;
}

@keyframes ip-contra-breathe {
	0%, 100% { scale: 0.95 0.96; }
	50% { scale: 1.04 1.06; }
}

@keyframes ip-contra-heart {
	0%, 100% { scale: 1; }
	45% { scale: 1.05; }
}

@media (max-width: 980px) {
	.ip-contra-lab__grid {
		grid-template-columns: 1fr;
	}

	.ip-contra-card {
		min-height: 0;
	}
}

@media (max-width: 520px) {
	.ip-contra-lab {
		padding: 16px;
	}

	.ip-contra-card {
		grid-template-rows: auto 220px auto;
	}

	.ip-contra-card header {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-contra-lab *,
	.ip-contra-lab *::before,
	.ip-contra-lab *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

.ip-work-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-red: #e34b58;
	--ip-green: #16a085;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255,255,255,.96), rgba(242,249,252,.96)),
		radial-gradient(circle at 16% 14%, rgba(54,167,224,.14), transparent 34%),
		radial-gradient(circle at 88% 18%, rgba(227,75,88,.1), transparent 32%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16,32,44,.1);
}

.ip-work-hero,
.ip-work-hero .wp-block-cover__inner-container,
.ip-work-hero .wp-block-heading,
.ip-work-hero p {
	color: #10202c !important;
}

.intro-paquetes--container .wp-block-cover.is-light,
.intro-paquetes--container .wp-block-cover.is-light .wp-block-cover__inner-container,
.intro-paquetes--container .wp-block-cover.is-light .wp-block-heading,
.intro-paquetes--container .wp-block-cover.is-light p {
	color: #10202c !important;
}

.ip-work-hero .wp-block-cover__inner-container {
	text-shadow: 0 1px 0 rgba(255,255,255,.55);
}

.ip-work-lab__header {
	max-width: 860px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-work-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-work-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-work-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-work-lab__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.ip-work-card {
	display: grid;
	grid-template-rows: auto 400px auto;
	gap: 16px;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16,32,44,.09);
}

.ip-work-card header {
	padding: 16px;
	border-radius: 8px;
	color: #fff;
}

.ip-work-card--spontaneous header {
	background: linear-gradient(135deg, #1f5fbf, #36a7e0);
}

.ip-work-card--mechanical header {
	background: linear-gradient(135deg, #b73342, #e34b58);
}

.ip-work-card h4 {
	margin: 0 0 8px;
	font-size: 1.2rem;
	letter-spacing: 0;
}

.ip-work-card header p {
	margin: 0;
	line-height: 1.55;
}

.ip-work-card ol {
	margin: 0;
	padding-left: 1.25rem;
	color: #355162;
	line-height: 1.65;
}

.ip-work-scene {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(248,251,253,.98), rgba(226,241,247,.9));
	box-shadow: inset 0 0 34px rgba(54,167,224,.12);
	perspective: 900px;
}

.ip-work-thorax {
	position: absolute;
	left: 50%;
	top: 35%;
	width: 210px;
	height: 230px;
	border: 6px solid rgba(16,32,44,.45);
	border-radius: 78px 78px 104px 104px;
	transform: translateX(-50%) translateZ(40px);
}

.ip-work-lungs {
	position: absolute;
	inset: 30px 28px 58px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	align-items: end;
}

.ip-work-lungs span {
	display: block;
	height: 132px;
	border-radius: 54px 54px 72px 72px;
	background:
		radial-gradient(circle at 34% 26%, rgba(255,255,255,.86), transparent 18%),
		linear-gradient(145deg, rgba(104,212,232,.9), rgba(54,167,224,.72));
	box-shadow: inset -12px -16px 24px rgba(16,32,44,.1), 0 12px 20px rgba(16,32,44,.12);
	animation: ip-work-breathe-cycle 4.8s ease-in-out infinite;
}

.ip-work-card--mechanical .ip-work-lungs span {
	animation: none;
	transform: scale(.94, .94);
}

.ip-work-card--mechanical.is-active .ip-work-lungs span {
	animation: ip-work-breathe-push 1.8s ease-in-out infinite;
}

.ip-work-diaphragm {
	position: absolute;
	left: 50%;
	bottom: 22px;
	width: 150px;
	height: 30px;
	border-radius: 0 0 80px 80px;
	background: #8b3e2f;
	transform: translateX(-50%);
	animation: ip-work-diaphragm-cycle 4.8s ease-in-out infinite;
}

.ip-work-card--mechanical .ip-work-diaphragm {
	animation: none;
	transform: translateX(-50%);
}

.ip-work-card--mechanical.is-active .ip-work-diaphragm {
	animation: ip-work-diaphragm-push 1.8s ease-in-out infinite;
}

.ip-work-pressure {
	position: absolute;
	left: 18px;
	top: 70px;
	display: grid;
	place-items: end center;
	width: 44px;
	height: 170px;
	padding-bottom: 12px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #dbeafe;
	overflow: hidden;
	font-weight: 900;
	color: #fff;
}

.ip-work-pressure::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 75%;
	background: linear-gradient(180deg, #10202c, #1f5fbf, #36a7e0);
}

.ip-work-pressure--negative::before {
	animation: ip-work-negative-pressure 4.8s ease-in-out infinite;
}

.ip-work-pressure--positive::before {
	height: 28%;
	background: linear-gradient(180deg, #ffb4b4, #e34b58, #b73342);
	transition: height 180ms ease;
}

.ip-work-card--mechanical.is-active .ip-work-pressure--positive::before {
	animation: ip-work-positive-pressure 1.8s ease-in-out infinite;
}

.ip-work-pressure span {
	position: relative;
	z-index: 1;
	font-size: .86rem;
}

.ip-work-brain {
	position: absolute;
	left: 50%;
	top: 26px;
	width: 86px;
	height: 62px;
	border: 3px solid #6b7280;
	border-radius: 999px;
	background:
		radial-gradient(circle at 30% 30%, rgba(255,255,255,.78), transparent 18%),
		linear-gradient(145deg, #d1d5db, #6b7280);
	transform: translateX(-50%) translateZ(58px);
	animation: ip-work-brain-cycle 4.8s ease-in-out infinite;
}

.ip-work-nerve {
	position: absolute;
	top: 90px;
	left: 50%;
	width: 5px;
	height: 106px;
	border-radius: 999px;
	background: #facc15;
	box-shadow: 0 0 16px rgba(250,204,21,.45);
	transform-origin: top;
	opacity: 0;
	animation: ip-work-nerve-cycle 4.8s ease-in-out infinite;
}

.ip-work-nerve--left { transform: rotate(24deg); }
.ip-work-nerve--right { transform: rotate(-24deg); }

.ip-work-nerve--left {
	animation-name: ip-work-nerve-cycle-left;
}

.ip-work-nerve--right {
	animation-name: ip-work-nerve-cycle-right;
}

.ip-work-flow {
	position: absolute;
	left: 50%;
	top: 118px;
	color: var(--ip-blue);
	font-size: 1.9rem;
	font-weight: 900;
	letter-spacing: .12em;
	transform: translateX(-50%) translateZ(70px);
	opacity: 0;
	animation: ip-work-flow-cycle 4.8s ease-in-out infinite;
}

.ip-work-flow--push {
	color: var(--ip-red);
	opacity: 0;
}

.ip-work-card--mechanical.is-active .ip-work-flow--push {
	opacity: 1;
	animation: ip-work-flow-push 1.8s ease-in-out infinite;
}

.ip-work-ventilator {
	position: absolute;
	right: 22px;
	top: 104px;
	display: grid;
	gap: 10px;
	width: 112px;
	padding: 12px;
	border-radius: 8px;
	background: #10202c;
	box-shadow: 0 14px 24px rgba(16,32,44,.22);
}

.ip-work-ventilator span {
	display: block;
	height: 48px;
	border: 2px solid #374151;
	border-radius: 6px;
	background:
		linear-gradient(90deg, transparent, rgba(104,212,232,.35), transparent),
		#111827;
}

.ip-work-ventilator button {
	min-height: 38px;
	border: 0;
	border-radius: 6px;
	background: #e34b58;
	color: #fff;
	font-size: .78rem;
	font-weight: 900;
	text-transform: uppercase;
	cursor: pointer;
}

.ip-work-lab__note {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid #d7e5ec;
	border-radius: 8px;
	background: rgba(255,255,255,.82);
}

.ip-work-lab__note h4 {
	margin: 0 0 8px;
	letter-spacing: 0;
}

.ip-work-lab__note p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

@keyframes ip-work-breathe {
	0%, 100% { transform: scale(.92, .92); }
	50% { transform: scale(1.12, 1.16); }
}

@keyframes ip-work-breathe-cycle {
	0%, 28%, 100% { transform: scale(.92, .92); }
	58%, 76% { transform: scale(1.12, 1.16); }
}

@keyframes ip-work-breathe-push {
	0%, 100% { transform: scale(.94, .94); }
	45% { transform: scale(1.12, 1.12); }
}

@keyframes ip-work-diaphragm {
	0%, 100% { transform: translateX(-50%) translateY(0); border-radius: 0 0 80px 80px; }
	50% { transform: translateX(-50%) translateY(24px); border-radius: 80px 80px 0 0; }
}

@keyframes ip-work-diaphragm-cycle {
	0%, 38%, 100% { transform: translateX(-50%) translateY(0); border-radius: 0 0 80px 80px; }
	52%, 76% { transform: translateX(-50%) translateY(24px); border-radius: 80px 80px 0 0; }
}

@keyframes ip-work-diaphragm-push {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50% { transform: translateX(-50%) translateY(18px); }
}

@keyframes ip-work-brain {
	0%, 100% { box-shadow: 0 0 0 rgba(250,204,21,0); }
	50% { box-shadow: 0 0 28px rgba(250,204,21,.6); }
}

@keyframes ip-work-brain-cycle {
	0%, 100% { box-shadow: 0 0 0 rgba(250,204,21,0); filter: brightness(1); }
	8%, 20% { box-shadow: 0 0 30px rgba(250,204,21,.72); filter: brightness(1.2); }
}

@keyframes ip-work-nerve {
	0%, 100% { opacity: .3; }
	50% { opacity: 1; }
}

@keyframes ip-work-nerve-cycle {
	0%, 16%, 100% { opacity: 0; transform: translateY(-18px) scaleY(.55); }
	28%, 44% { opacity: 1; transform: translateY(22px) scaleY(1.08); }
	58% { opacity: .15; transform: translateY(44px) scaleY(.82); }
}

@keyframes ip-work-nerve-cycle-left {
	0%, 16%, 100% { opacity: 0; transform: rotate(24deg) translateY(-18px) scaleY(.55); }
	28%, 44% { opacity: 1; transform: rotate(24deg) translateY(22px) scaleY(1.08); }
	58% { opacity: .15; transform: rotate(24deg) translateY(44px) scaleY(.82); }
}

@keyframes ip-work-nerve-cycle-right {
	0%, 16%, 100% { opacity: 0; transform: rotate(-24deg) translateY(-18px) scaleY(.55); }
	28%, 44% { opacity: 1; transform: rotate(-24deg) translateY(22px) scaleY(1.08); }
	58% { opacity: .15; transform: rotate(-24deg) translateY(44px) scaleY(.82); }
}

@keyframes ip-work-flow {
	0%, 100% { opacity: .35; transform: translateX(-50%) translateY(-10px) translateZ(70px); }
	50% { opacity: 1; transform: translateX(-50%) translateY(10px) translateZ(70px); }
}

@keyframes ip-work-flow-cycle {
	0%, 52%, 100% { opacity: 0; transform: translateX(-50%) translateY(-18px) translateZ(70px); }
	62%, 82% { opacity: 1; transform: translateX(-50%) translateY(12px) translateZ(70px); }
}

@keyframes ip-work-flow-push {
	0%, 100% { opacity: .45; transform: translateX(-50%) translateY(-8px) translateZ(70px); }
	50% { opacity: 1; transform: translateX(-50%) translateY(12px) translateZ(70px); }
}

@keyframes ip-work-negative-pressure {
	0%, 34%, 100% { height: 26%; }
	54%, 76% { height: 78%; }
}

@keyframes ip-work-positive-pressure {
	0%, 100% { height: 48%; }
	50% { height: 84%; }
}

@media (max-width: 960px) {
	.ip-work-lab__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 540px) {
	.ip-work-lab {
		padding: 16px;
	}

	.ip-work-card {
		grid-template-rows: auto 430px auto;
	}

	.ip-work-thorax {
		top: 56px;
		width: 178px;
		height: 206px;
	}

	.ip-work-ventilator {
		left: 50%;
		right: auto;
		top: auto;
		bottom: 16px;
		width: min(190px, calc(100% - 32px));
		transform: translateX(-50%);
		grid-template-columns: 1fr auto;
		align-items: center;
	}

	.ip-work-ventilator span {
		height: 42px;
	}

	.ip-work-ventilator button {
		min-width: 92px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-work-lab *,
	.ip-work-lab *::before,
	.ip-work-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-work-chain {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-amber: #d89b27;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255,255,255,.96), rgba(242,249,252,.96)),
		radial-gradient(circle at 18% 14%, rgba(54,167,224,.14), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16,32,44,.1);
}

.intro-paquetes .ip-work-chain {
	display: none;
}

.ip-work-chain__header {
	max-width: 820px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-work-chain__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-work-chain__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-work-chain__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-work-chain__visual {
	display: grid;
	grid-template-columns: repeat(5, minmax(110px, 1fr));
	gap: 14px;
	align-items: center;
	margin: 22px 0;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.16);
	border-radius: 8px;
	background: rgba(255,255,255,.82);
	overflow: hidden;
}

.ip-chain-node {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 86px;
	padding: 12px;
	border: 1px solid rgba(54,167,224,.28);
	border-radius: 8px;
	background:
		radial-gradient(circle at 30% 24%, rgba(255,255,255,.92), transparent 20%),
		linear-gradient(145deg, rgba(104,212,232,.86), rgba(54,167,224,.64));
	color: #123042;
	font-weight: 900;
	text-align: center;
	box-shadow: 0 12px 22px rgba(16,32,44,.1), inset -10px -12px 22px rgba(16,32,44,.08);
	animation: ip-chain-pulse 4s ease-in-out infinite;
}

.ip-chain-node--brain { animation-delay: 0s; }
.ip-chain-node--muscle { animation-delay: .4s; }
.ip-chain-node--pleura { animation-delay: .8s; }
.ip-chain-node--alveolus { animation-delay: 1.2s; }
.ip-chain-node--flow { animation-delay: 1.6s; }

.ip-chain-line {
	display: none;
}

.ip-work-chain__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ip-work-chain__grid article {
	padding: 16px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
	box-shadow: 0 10px 24px rgba(16,32,44,.08);
}

.ip-work-chain__grid h4 {
	margin: 0 0 8px;
	font-size: 1rem;
	letter-spacing: 0;
	color: #1f3b4d;
}

.ip-work-chain__grid p {
	margin: 0;
	color: #355162;
	line-height: 1.6;
}

.ip-work-chain__warning {
	margin-top: 16px;
	padding: 14px 16px;
	border: 1px solid rgba(216,155,39,.34);
	border-left: 5px solid var(--ip-amber);
	border-radius: 8px;
	background: #fffaf0;
	color: #4b3512;
	line-height: 1.55;
}

@keyframes ip-chain-pulse {
	0%, 100% { transform: translateY(0) scale(1); filter: saturate(.95); }
	50% { transform: translateY(-4px) scale(1.03); filter: saturate(1.12); }
}

@media (max-width: 980px) {
	.ip-work-chain__visual,
	.ip-work-chain__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.ip-work-chain {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-work-chain *,
	.ip-work-chain *::before,
	.ip-work-chain *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-wob-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-red: #e34b58;
	--ip-amber: #d89b27;
	--ip-drive: .18;
	--ip-o2: 12%;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255,255,255,.96), rgba(242,249,252,.96)),
		radial-gradient(circle at 15% 18%, rgba(250,204,21,.13), transparent 34%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16,32,44,.1);
}

.ip-wob-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-wob-lab__kicker {
	margin: 0 0 8px;
	color: #9b6b17;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-wob-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-wob-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-wob-concepts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}

.ip-wob-concepts article {
	padding: 16px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
	box-shadow: 0 10px 24px rgba(16,32,44,.08);
}

.ip-wob-concepts h4,
.ip-wob-monitor h4 {
	margin: 0 0 8px;
	letter-spacing: 0;
	color: #1f3b4d;
}

.ip-wob-concepts p {
	margin: 0;
	color: #355162;
	line-height: 1.6;
}

.ip-wob-sim {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
	gap: 18px;
	align-items: stretch;
}

.ip-wob-scene {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #eef6ff, #f8fbff);
	box-shadow: inset 0 0 34px rgba(54,167,224,.12);
	perspective: 900px;
}

.ip-wob-o2 {
	position: absolute;
	left: 20px;
	top: 54px;
	display: grid;
	gap: 10px;
	width: 96px;
	text-align: center;
	color: #355162;
	font-size: .82rem;
	font-weight: 800;
	z-index: 3;
}

.ip-wob-o2 i {
	position: relative;
	display: block;
	width: 44px;
	height: 330px;
	margin: 0 auto;
	overflow: hidden;
	border: 4px solid #cbd5e1;
	border-radius: 999px;
	background: #dbeafe;
}

.ip-wob-o2 b {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--ip-o2);
	background: linear-gradient(180deg, #7dd3fc, #38bdf8);
	transition: height 180ms ease, background 180ms ease;
}

.ip-wob-lab.is-wob-high .ip-wob-o2 b {
	background: linear-gradient(180deg, #ef4444, #7f1d1d);
}

.ip-wob-lab.is-wob-mid .ip-wob-o2 b {
	background: linear-gradient(180deg, #fde047, #f59e0b);
}

.ip-wob-brain {
	position: absolute;
	left: 50%;
	top: 44px;
	width: 172px;
	height: 118px;
	border-radius: 58% 58% 48% 48%;
	background:
		radial-gradient(circle at 30% 30%, rgba(255,255,255,.84), transparent 18%),
		radial-gradient(circle at 52% 58%, #cbd5e1, #8c98a8);
	box-shadow: inset 0 0 28px rgba(255,255,255,.42), 0 16px 30px rgba(16,32,44,.14);
	transform: translateX(-50%) translateZ(54px);
}

.ip-wob-brain button {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 76px;
	height: 76px;
	border: 3px solid #d1d5db;
	border-radius: 999px;
	background: linear-gradient(145deg, #546170, #263241);
	color: #fff;
	font-weight: 900;
	text-transform: uppercase;
	cursor: pointer;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 24px rgba(255,255,255,.25);
}

.ip-wob-brain button:active {
	transform: translate(-50%, -50%) scale(.96);
}

.ip-wob-neural {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.ip-wob-neural path {
	fill: none;
	stroke: #facc15;
	stroke-width: calc(3px + var(--ip-drive) * 9px);
	stroke-linecap: round;
	opacity: calc(.18 + var(--ip-drive) * .78);
	filter: drop-shadow(0 0 10px rgba(250,204,21,.7));
	transition: stroke-width 160ms ease, opacity 160ms ease;
}

.ip-wob-signal {
	position: absolute;
	left: 50%;
	top: 156px;
	width: 10px;
	height: calc(40px + var(--ip-drive) * 250px);
	border-radius: 999px;
	background: linear-gradient(180deg, #fde047, #facc15);
	opacity: calc(.12 + var(--ip-drive) * .88);
	transform: translateX(-50%) translateZ(60px);
	transition: height 160ms ease, opacity 160ms ease;
}

.ip-wob-thorax {
	position: absolute;
	left: 50%;
	bottom: 34px;
	width: 430px;
	height: 340px;
	border: 8px solid rgba(203,213,225,.72);
	border-radius: 44%;
	transform: translateX(-50%) translateZ(34px);
}

.ip-wob-rib {
	position: absolute;
	inset: 24px;
	border: 6px solid rgba(203,213,225,.52);
	border-radius: 44%;
}

.ip-wob-muscle {
	position: absolute;
	inset: 18px;
	border: 12px dashed #7f1d1d;
	border-radius: 44%;
	background: radial-gradient(circle at center, rgba(127,29,29,.1), rgba(127,29,29,.02));
	opacity: calc(.45 + var(--ip-drive) * .5);
	transform: scale(calc(1 + var(--ip-drive) * .14));
	transition: opacity 160ms ease, transform 160ms ease;
}

.ip-wob-lungs {
	position: absolute;
	inset: 58px 74px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
	align-items: center;
}

.ip-wob-lungs span {
	display: block;
	height: 198px;
	border: 5px solid #1f5fbf;
	border-radius: 80px;
	background:
		radial-gradient(circle at 32% 28%, rgba(255,255,255,.86), transparent 18%),
		linear-gradient(145deg, #d9f5ff, #36a7e0);
	box-shadow: inset -12px -16px 26px rgba(16,32,44,.1), 0 12px 20px rgba(16,32,44,.12);
	transform: scale(calc(1 + var(--ip-drive) * .22));
	transition: transform 160ms ease;
}

.ip-wob-air {
	position: absolute;
	left: 50%;
	top: 232px;
	color: #38bdf8;
	font-size: 2rem;
	font-weight: 900;
	letter-spacing: .12em;
	opacity: calc(.15 + var(--ip-drive) * .85);
	transform: translateX(-50%) translateY(calc(var(--ip-drive) * 28px)) translateZ(72px);
	transition: opacity 160ms ease, transform 160ms ease;
}

.ip-wob-monitor {
	padding: 20px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.84);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.ip-wob-monitor p {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
	color: #355162;
	font-weight: 800;
}

.ip-wob-monitor strong {
	color: var(--ip-green);
	text-align: right;
}

.ip-wob-monitor strong.is-warn {
	color: #b7791f;
}

.ip-wob-monitor strong.is-high {
	color: var(--ip-red);
}

.ip-wob-hint {
	margin-top: 18px;
	padding: 12px;
	border: 1px solid #d7e5ec;
	border-radius: 8px;
	background: #f7fbfd;
	color: #355162;
	line-height: 1.55;
}

.ip-wob-bedside {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid var(--ip-line);
}

.ip-wob-bedside__text {
	max-width: 850px;
	margin: 0 auto 18px;
	text-align: center;
}

.ip-wob-bedside__text h3 {
	margin: 0 0 10px;
	font-size: clamp(1.35rem, 1.15rem + .65vw, 1.85rem);
	letter-spacing: 0;
}

.ip-wob-bedside__text p {
	margin: 0 0 10px;
	color: #355162;
	line-height: 1.65;
}

.ip-wob-checklist {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0;
}

.ip-wob-checklist span {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 54px;
	padding: 11px 12px 11px 42px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
	color: #1f3b4d;
	font-weight: 850;
	line-height: 1.25;
	box-shadow: 0 8px 20px rgba(16,32,44,.07);
}

.ip-wob-checklist span::before {
	content: "";
	position: absolute;
	left: 13px;
	top: 50%;
	width: 18px;
	height: 18px;
	border: 2px solid var(--ip-blue);
	border-radius: 999px;
	transform: translateY(-50%);
}

.ip-wob-checklist span::after {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 9px;
	height: 5px;
	border-left: 3px solid var(--ip-green);
	border-bottom: 3px solid var(--ip-green);
	transform: translateY(-62%) rotate(-45deg);
}

.ip-wob-photo {
	margin: 20px 0 0;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(16,32,44,.09);
}

.ip-wob-photo img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-wob-bedside__warning {
	margin-top: 16px;
	padding: 14px 16px;
	border: 1px solid rgba(216,155,39,.34);
	border-left: 5px solid var(--ip-amber);
	border-radius: 8px;
	background: #fffaf0;
	color: #4b3512;
	line-height: 1.55;
}

.ip-wob-summary-image {
	margin: 20px 0 0;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 14px 32px rgba(16,32,44,.1);
}

.ip-wob-summary-image img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-wob-lab:not(:has(.ip-wob-summary-image)) .ip-wob-bedside__warning::after {
	content: "";
	display: block;
	aspect-ratio: 1024 / 1536;
	margin-top: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff url("drive-esfuerzo-trabajo-respiratorio.png") center / contain no-repeat;
	box-shadow: 0 14px 32px rgba(16,32,44,.1);
}

@media (max-width: 980px) {
	.ip-wob-concepts,
	.ip-wob-sim {
		grid-template-columns: 1fr;
	}

	.ip-wob-checklist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-wob-lab {
		padding: 16px;
	}

	.ip-wob-scene {
		min-height: 470px;
	}

	.ip-wob-o2 {
		position: relative;
		left: auto;
		top: auto;
		width: auto;
		margin: 0 auto;
		padding-top: 14px;
	}

	.ip-wob-o2 i {
		width: 76%;
		height: 28px;
	}

	.ip-wob-o2 b {
		top: 0;
		right: auto;
		width: var(--ip-o2);
		height: 100%;
	}

	.ip-wob-brain {
		top: 84px;
	}

	.ip-wob-thorax {
		width: 300px;
		height: 258px;
	}

	.ip-wob-lungs {
		inset: 48px 48px;
		gap: 26px;
	}

	.ip-wob-lungs span {
		height: 150px;
	}

	.ip-wob-checklist {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-wob-lab *,
	.ip-wob-lab *::before,
	.ip-wob-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-modes-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #8067d8;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 26px;
	border: 1px solid var(--ip-line);
	border-radius: 8px;
	background:
		linear-gradient(135deg, rgba(255,255,255,.96), rgba(242,249,252,.96)),
		radial-gradient(circle at 16% 18%, rgba(54,167,224,.12), transparent 32%);
	color: var(--ip-ink);
	box-shadow: 0 18px 48px rgba(16,32,44,.1);
}

.ip-modes-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-modes-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-modes-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-modes-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-modes-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ip-mode-card {
	display: grid;
	grid-template-rows: auto minmax(300px, 1fr) auto;
	gap: 14px;
	padding: 16px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
	box-shadow: 0 12px 28px rgba(16,32,44,.09);
}

.ip-mode-card header {
	padding: 14px;
	border-radius: 8px;
	color: #fff;
}

.ip-mode-card--control header { background: linear-gradient(135deg, #1f5fbf, #36a7e0); }
.ip-mode-card--semi header { background: linear-gradient(135deg, #6a4ec7, #9b7be8); }
.ip-mode-card--support header { background: linear-gradient(135deg, #138a77, #16a085); }

.ip-mode-card h4 {
	margin: 0 0 8px;
	font-size: 1.12rem;
	letter-spacing: 0;
}

.ip-mode-card header p,
.ip-mode-card > p {
	margin: 0;
	line-height: 1.55;
}

.ip-mode-card > p {
	color: #355162;
}

.ip-mode-scene {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	background: linear-gradient(180deg, #eef6ff, #f8fbff);
	box-shadow: inset 0 0 34px rgba(54,167,224,.12);
	perspective: 900px;
}

.ip-mode-monitor {
	position: absolute;
	left: 14px;
	right: 14px;
	top: 14px;
	height: 58px;
	overflow: hidden;
	border-radius: 8px;
	background: #081427;
	box-shadow: inset 0 0 18px rgba(0,0,0,.28);
}

.ip-mode-monitor svg {
	display: block;
	width: 100%;
	height: 100%;
}

.ip-mode-monitor path {
	fill: none;
	stroke: #00ff9d;
	stroke-width: 4;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 5px rgba(0,255,157,.45));
	transition: d 180ms ease;
}

.ip-mode-card--control.is-active .ip-mode-monitor path {
	animation: ip-mode-wave-glow 1.5s ease-in-out infinite;
}

.ip-mode-patient {
	position: absolute;
	left: 50%;
	bottom: 56px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	width: 128px;
	height: 156px;
	padding: 36px 14px 18px;
	border: 5px solid rgba(203,213,225,.9);
	border-radius: 58px 58px 70px 70px;
	background: rgba(255,255,255,.34);
	transform: translateX(-50%) translateZ(42px);
}

.ip-mode-patient::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -52px;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: #d6d6d6;
	transform: translateX(-50%);
}

.ip-mode-patient span {
	display: block;
	border: 4px solid #1f5fbf;
	border-radius: 999px;
	background:
		radial-gradient(circle at 32% 28%, rgba(255,255,255,.86), transparent 18%),
		linear-gradient(145deg, #e0f7ff, #36a7e0);
	box-shadow: inset -8px -10px 16px rgba(16,32,44,.1), 0 10px 18px rgba(16,32,44,.1);
	transform: scale(.92);
	transition: transform 180ms ease;
}

.ip-mode-card.is-active .ip-mode-patient span {
	animation: ip-mode-breath 2.4s ease-in-out infinite;
}

.ip-mode-card--support.is-active .ip-mode-patient span {
	animation-duration: 1.65s;
}

.ip-mode-circuit {
	position: absolute;
	right: 42px;
	bottom: 138px;
	width: 78px;
	height: 14px;
	border-radius: 999px;
	background: repeating-linear-gradient(90deg, #d1d5db, #d1d5db 7px, #9ca3af 7px, #9ca3af 14px);
	transform: translateZ(50px);
}

.ip-mode-card.is-active .ip-mode-circuit {
	background: repeating-linear-gradient(90deg, #8fd4e8, #8fd4e8 7px, #2563eb 7px, #2563eb 14px);
	box-shadow: 0 0 18px rgba(54,167,224,.28);
}

.ip-mode-scene button {
	position: absolute;
	right: 18px;
	bottom: 18px;
	min-height: 42px;
	padding: 9px 14px;
	border: 0;
	border-radius: 6px;
	background: #1f3b4d;
	color: #fff;
	font-weight: 900;
	text-transform: uppercase;
	cursor: pointer;
}

.ip-mode-card--control .ip-mode-scene button { background: #2563eb; }
.ip-mode-card--semi .ip-mode-scene button { background: var(--ip-purple); }
.ip-mode-card--support .ip-mode-scene button { background: var(--ip-green); }

.ip-mode-alert {
	position: absolute;
	left: 50%;
	top: 88px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(227,75,88,.92);
	color: #fff;
	font-size: .84rem;
	font-weight: 900;
	transform: translateX(-50%);
	box-shadow: 0 10px 22px rgba(227,75,88,.2);
}

.ip-mode-card.is-active .ip-mode-alert {
	background: rgba(22,160,133,.92);
}

.ip-mode-card--control.is-active .ip-mode-alert {
	opacity: 0;
	transform: translateX(-50%) translateY(-8px);
}

@keyframes ip-mode-breath {
	0%, 100% { transform: scale(.88); }
	45% { transform: scale(1.18); }
}

@keyframes ip-mode-wave-glow {
	0%, 100% { filter: drop-shadow(0 0 4px rgba(0,255,157,.42)); }
	50% { filter: drop-shadow(0 0 12px rgba(0,255,157,.72)); }
}

@media (max-width: 1040px) {
	.ip-modes-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.ip-modes-lab {
		padding: 16px;
	}

	.ip-mode-card {
		grid-template-rows: auto 260px auto;
		padding: 12px;
	}

	.ip-mode-monitor {
		left: 10px;
		right: 10px;
		top: 10px;
		height: 48px;
	}

	.ip-mode-patient {
		bottom: 64px;
		width: 104px;
		height: 130px;
		padding: 30px 12px 16px;
	}

	.ip-mode-patient::before {
		top: -42px;
		width: 40px;
		height: 40px;
	}

	.ip-mode-circuit {
		right: 28px;
		bottom: 126px;
		width: 56px;
	}

	.ip-mode-scene button {
		left: 12px;
		right: 12px;
		bottom: 12px;
		width: auto;
	}

	.ip-mode-alert {
		top: 66px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-modes-lab *,
	.ip-modes-lab *::before,
	.ip-modes-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-controlled-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 12% 10%, rgba(54,167,224,.16), transparent 28%),
		radial-gradient(circle at 88% 0%, rgba(216,155,39,.13), transparent 25%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-controlled-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-controlled-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-controlled-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-controlled-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-controlled-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
	gap: 18px;
	align-items: stretch;
}

.ip-controlled-scene {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.82), rgba(239,248,251,.78)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
	perspective: 900px;
}

.ip-controlled-monitor {
	position: absolute;
	left: 18px;
	top: 18px;
	z-index: 3;
	width: min(250px, calc(100% - 36px));
	padding: 14px;
	border: 1px solid rgba(16,32,44,.16);
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-controlled-monitor strong {
	display: block;
	margin-bottom: 10px;
	color: var(--ip-cyan);
	font-size: .8rem;
	text-transform: uppercase;
}

.ip-controlled-monitor span {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 7px 0;
	font-size: .88rem;
}

.ip-controlled-monitor em {
	color: #fff;
	font-style: normal;
	font-weight: 900;
}

.ip-controlled-vent {
	position: absolute;
	left: 30px;
	bottom: 48px;
	z-index: 2;
	width: 174px;
	height: 230px;
	border: 1px solid rgba(16,32,44,.18);
	border-radius: 8px;
	background: linear-gradient(145deg, #eef6f9, #cbdde5);
	box-shadow: 0 24px 42px rgba(16,32,44,.2);
	transform: rotateY(-10deg);
}

.ip-controlled-vent::before {
	content: "VENT";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 96px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: 6px;
	background:
		linear-gradient(90deg, transparent 0 12%, rgba(110,231,249,.8) 12% 14%, transparent 14% 30%, rgba(110,231,249,.8) 30% 32%, transparent 32%),
		#10202c;
	color: #bff6ff;
	font-size: .78rem;
	font-weight: 900;
	letter-spacing: .08em;
}

.ip-controlled-vent::after {
	content: "";
	position: absolute;
	left: 36px;
	bottom: 26px;
	width: 102px;
	height: 102px;
	border: 14px solid #9fb5bf;
	border-top-color: var(--ip-blue);
	border-radius: 50%;
	animation: ip-controlled-dial 2.4s linear infinite;
}

.ip-controlled-circuit {
	position: absolute;
	left: 176px;
	bottom: 188px;
	z-index: 1;
	width: 45%;
	height: 86px;
	border-top: 16px solid rgba(54,167,224,.42);
	border-right: 16px solid rgba(54,167,224,.42);
	border-radius: 0 76px 0 0;
}

.ip-controlled-circuit::before,
.ip-controlled-circuit::after {
	content: "";
	position: absolute;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: rgba(54,167,224,.82);
	box-shadow: 0 0 18px rgba(54,167,224,.35);
	animation: ip-controlled-flow 2.2s ease-in-out infinite;
}

.ip-controlled-circuit::before {
	left: 18%;
	top: -20px;
}

.ip-controlled-circuit::after {
	right: 8px;
	top: 48px;
	animation-delay: .7s;
}

.ip-controlled-patient {
	position: absolute;
	right: 34px;
	bottom: 42px;
	width: min(360px, 50%);
	height: 390px;
	transform-style: preserve-3d;
	transform: rotateY(7deg);
}

.ip-controlled-brain {
	position: absolute;
	left: 50%;
	top: 0;
	z-index: 2;
	width: 138px;
	min-height: 62px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(216,155,39,.28);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff7e8, #ffe7b7);
	color: #7a4b08;
	font-size: .86rem;
	font-weight: 900;
	transform: translateX(-50%);
	box-shadow: 0 14px 28px rgba(216,155,39,.18);
}

.ip-controlled-brain::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -62px;
	width: 2px;
	height: 54px;
	background: repeating-linear-gradient(180deg, rgba(216,155,39,.52), rgba(216,155,39,.52) 6px, transparent 6px, transparent 12px);
	transform: translateX(-50%);
}

.ip-controlled-lungs {
	position: absolute;
	left: 50%;
	top: 104px;
	width: 292px;
	height: 238px;
	padding: 38px 48px 28px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 46% 46% 42% 42%;
	background:
		radial-gradient(circle at 50% 24%, rgba(255,255,255,.9), transparent 28%),
		linear-gradient(180deg, rgba(231,246,252,.94), rgba(201,231,242,.78));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
	transform: translateX(-50%) translateZ(28px);
}

.ip-controlled-lungs::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 16px;
	height: 118px;
	border-radius: 999px;
	background: #8fb7c7;
	transform: translateX(-50%);
}

.ip-controlled-lungs span {
	position: absolute;
	top: 66px;
	width: 92px;
	height: 138px;
	border: 4px solid #2578a8;
	background:
		radial-gradient(circle at 50% 54%, rgba(110,231,249,.62), transparent 42%),
		linear-gradient(180deg, rgba(255,255,255,.95), rgba(177,226,241,.82));
	box-shadow: inset 0 -16px 24px rgba(37,120,168,.12);
	animation: ip-controlled-lung 2.8s ease-in-out infinite;
}

.ip-controlled-lungs span:first-child {
	left: 50px;
	border-radius: 70px 42px 62px 74px;
	transform-origin: right center;
}

.ip-controlled-lungs span:last-child {
	right: 50px;
	border-radius: 42px 70px 74px 62px;
	transform-origin: left center;
	animation-delay: .08s;
}

.ip-controlled-wave {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 230px;
	height: 48px;
	overflow: hidden;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	transform: translateX(-50%);
}

.ip-controlled-wave::before {
	content: "";
	position: absolute;
	inset: 10px -80px;
	background:
		linear-gradient(90deg, transparent 0 8%, var(--ip-cyan) 8% 10%, transparent 10% 20%, var(--ip-cyan) 20% 22%, transparent 22% 34%, var(--ip-cyan) 34% 36%, transparent 36%);
	animation: ip-controlled-wave 2.6s linear infinite;
}

.ip-controlled-panel {
	display: grid;
	gap: 16px;
}

.ip-controlled-panel article,
.ip-controlled-panel figure,
.ip-controlled-warning {
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-controlled-panel article {
	padding: 18px;
}

.ip-controlled-panel h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-controlled-panel ul {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ip-controlled-panel li {
	position: relative;
	min-height: 42px;
	padding: 10px 12px 10px 42px;
	border-radius: 8px;
	background: #f7fbfd;
	color: #355162;
	line-height: 1.35;
}

.ip-controlled-panel li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	width: 16px;
	height: 16px;
	border: 2px solid var(--ip-red);
	border-radius: 50%;
	transform: translateY(-50%);
}

.ip-controlled-panel li::after {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 10px;
	height: 2px;
	border-radius: 999px;
	background: var(--ip-red);
	transform: translateY(-50%);
}

.ip-controlled-panel figure {
	margin: 0;
	overflow: hidden;
}

.ip-controlled-panel figure img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-controlled-warning {
	margin-top: 18px;
	padding: 16px 18px;
	border-color: rgba(216,155,39,.34);
	border-left: 5px solid var(--ip-amber);
	color: #4d3820;
	line-height: 1.65;
}

.ip-controlled-warning strong {
	color: #7a4b08;
}

@keyframes ip-controlled-dial {
	to { transform: rotate(360deg); }
}

@keyframes ip-controlled-flow {
	0%, 100% {
		opacity: .25;
		transform: scale(.72);
	}
	50% {
		opacity: 1;
		transform: scale(1.08);
	}
}

@keyframes ip-controlled-lung {
	0%, 100% { transform: scale(.92); }
	42% { transform: scale(1.13); }
}

@keyframes ip-controlled-wave {
	to { transform: translateX(72px); }
}

@media (max-width: 980px) {
	.ip-controlled-grid {
		grid-template-columns: 1fr;
	}

	.ip-controlled-scene {
		min-height: 520px;
	}
}

@media (max-width: 620px) {
	.ip-controlled-lab {
		padding: 16px;
	}

	.ip-controlled-scene {
		min-height: 640px;
	}

	.ip-controlled-monitor,
	.ip-controlled-vent,
	.ip-controlled-circuit,
	.ip-controlled-patient {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
	}

	.ip-controlled-monitor {
		margin: 0 auto 18px;
	}

	.ip-controlled-vent {
		margin: 0 auto;
	}

	.ip-controlled-circuit {
		width: 58%;
		height: 80px;
		margin: -8px auto 0;
		border-right: 0;
		border-radius: 54px 54px 0 0;
	}

	.ip-controlled-patient {
		width: 100%;
		height: 342px;
		margin-top: -4px;
		transform: none;
	}

	.ip-controlled-lungs {
		width: 270px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-controlled-lab *,
	.ip-controlled-lab *::before,
	.ip-controlled-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-support-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 12% 0%, rgba(22,160,133,.16), transparent 28%),
		radial-gradient(circle at 92% 16%, rgba(124,92,255,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-support-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-support-lab__kicker {
	margin: 0 0 8px;
	color: #0f766e;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-support-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-support-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-support-lab__note {
	max-width: 920px;
	margin: 12px auto 0 !important;
	padding: 12px 14px;
	border: 1px solid rgba(54,167,224,.2);
	border-radius: 8px;
	background: rgba(255,255,255,.72);
	color: #355162 !important;
	font-size: .94rem;
	line-height: 1.55 !important;
}

.ip-support-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
	gap: 18px;
	align-items: stretch;
}

.ip-support-scene {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.86), rgba(238,248,246,.8)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
	perspective: 900px;
}

.ip-support-monitor {
	position: absolute;
	left: 18px;
	top: 18px;
	z-index: 4;
	width: min(258px, calc(100% - 36px));
	padding: 14px;
	border: 1px solid rgba(16,32,44,.16);
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-support-monitor strong {
	display: block;
	margin-bottom: 10px;
	color: var(--ip-cyan);
	font-size: .8rem;
	text-transform: uppercase;
}

.ip-support-monitor span {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 7px 0;
	font-size: .88rem;
}

.ip-support-monitor em {
	color: #fff;
	font-style: normal;
	font-weight: 900;
}

.ip-support-brain {
	position: absolute;
	left: 54%;
	top: 38px;
	z-index: 3;
	width: 120px;
	height: 58px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(22,160,133,.26);
	border-radius: 8px;
	background: linear-gradient(180deg, #f0fffb, #d4f7ef);
	color: #0f766e;
	font-weight: 900;
	box-shadow: 0 14px 28px rgba(22,160,133,.15);
	animation: ip-support-drive 2.8s ease-in-out infinite;
}

.ip-support-effort {
	position: absolute;
	left: calc(54% + 58px);
	top: 98px;
	z-index: 2;
	width: 3px;
	height: 98px;
	background: linear-gradient(180deg, var(--ip-green), transparent);
}

.ip-support-effort::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -6px;
	width: 16px;
	height: 16px;
	border-right: 3px solid var(--ip-green);
	border-bottom: 3px solid var(--ip-green);
	transform: translateX(-50%) rotate(45deg);
}

.ip-support-thorax {
	position: absolute;
	left: 50%;
	top: 175px;
	z-index: 2;
	width: 330px;
	height: 250px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 46% 46% 42% 42%;
	background:
		radial-gradient(circle at 50% 18%, rgba(255,255,255,.9), transparent 25%),
		linear-gradient(180deg, rgba(231,246,252,.92), rgba(205,235,229,.74));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
	transform: translateX(-50%) translateZ(24px);
}

.ip-support-lungs {
	position: absolute;
	inset: 54px 50px 30px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
}

.ip-support-lungs span {
	display: block;
	border: 4px solid #188b9f;
	background:
		radial-gradient(circle at 50% 54%, rgba(110,231,249,.56), transparent 42%),
		linear-gradient(180deg, rgba(255,255,255,.95), rgba(184,234,226,.84));
	box-shadow: inset 0 -16px 24px rgba(24,139,159,.12);
	animation: ip-support-lung 2.8s ease-in-out infinite;
}

.ip-support-lungs span:first-child {
	border-radius: 72px 42px 62px 74px;
	transform-origin: right center;
}

.ip-support-lungs span:last-child {
	border-radius: 42px 72px 74px 62px;
	transform-origin: left center;
	animation-delay: .08s;
}

.ip-support-vent {
	position: absolute;
	left: 42px;
	bottom: 56px;
	z-index: 2;
	width: 160px;
	height: 190px;
	display: grid;
	place-items: start center;
	padding-top: 24px;
	border: 1px solid rgba(16,32,44,.18);
	border-radius: 8px;
	background: linear-gradient(145deg, #eef6f9, #cbdde5);
	color: #1f3b4d;
	font-weight: 900;
	box-shadow: 0 24px 42px rgba(16,32,44,.2);
	transform: rotateY(-9deg);
}

.ip-support-vent::before {
	content: "";
	position: absolute;
	left: 30px;
	bottom: 30px;
	width: 96px;
	height: 96px;
	border: 13px solid #9fb5bf;
	border-top-color: var(--ip-green);
	border-radius: 50%;
	animation: ip-support-dial 2.8s linear infinite;
}

.ip-support-flow {
	position: absolute;
	left: 190px;
	bottom: 204px;
	z-index: 1;
	width: 35%;
	height: 70px;
	border-top: 14px solid rgba(22,160,133,.36);
	border-right: 14px solid rgba(22,160,133,.36);
	border-radius: 0 68px 0 0;
}

.ip-support-flow::before,
.ip-support-flow::after {
	content: "";
	position: absolute;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(22,160,133,.78);
	box-shadow: 0 0 18px rgba(22,160,133,.34);
	animation: ip-support-bolus 2.8s ease-in-out infinite;
}

.ip-support-flow::before {
	left: 18%;
	top: -18px;
}

.ip-support-flow::after {
	right: 4px;
	top: 36px;
	animation-delay: .75s;
}

.ip-support-wave {
	position: absolute;
	left: 50%;
	bottom: 18px;
	width: min(420px, calc(100% - 36px));
	height: 58px;
	overflow: hidden;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	transform: translateX(-50%);
}

.ip-support-wave::before {
	content: "";
	position: absolute;
	inset: 12px -120px;
	background:
		linear-gradient(90deg, transparent 0 7%, var(--ip-cyan) 7% 9%, transparent 9% 18%, var(--ip-green) 18% 20%, transparent 20% 31%, var(--ip-cyan) 31% 33%, transparent 33%);
	animation: ip-support-wave 3.1s linear infinite;
}

.ip-support-panel {
	display: grid;
	gap: 16px;
}

.ip-support-panel article,
.ip-support-rule {
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-support-panel article {
	padding: 18px;
}

.ip-support-panel h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-support-panel ul {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ip-support-panel li {
	position: relative;
	min-height: 42px;
	padding: 10px 12px 10px 42px;
	border-radius: 8px;
	background: #f7fbfd;
	color: #355162;
	line-height: 1.35;
}

.ip-support-panel li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ip-green);
	transform: translateY(-50%);
}

.ip-support-panel li::after {
	content: "";
	position: absolute;
	left: 19px;
	top: 50%;
	width: 8px;
	height: 5px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: translateY(-62%) rotate(-45deg);
}

.ip-support-panel__safety {
	border-color: rgba(216,155,39,.34) !important;
	background: linear-gradient(180deg, #fffaf0, #fff) !important;
}

.ip-support-panel p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-support-rule {
	margin-top: 18px;
	padding: 16px 18px;
	border-color: rgba(22,160,133,.28);
	border-left: 5px solid var(--ip-green);
	color: #234b44;
	line-height: 1.65;
}

.ip-support-rule strong {
	color: #0f766e;
}

.ip-support-lab[data-support-lab] .ip-support-scene {
	display: grid;
	gap: 16px;
	min-height: 0;
	padding: 18px;
	overflow: visible;
	background:
		linear-gradient(180deg, rgba(255,255,255,.92), rgba(238,248,246,.86));
	perspective: none;
}

.ip-support-lab[data-support-lab] .ip-support-monitor {
	position: static;
	width: auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.ip-support-lab[data-support-lab] .ip-support-monitor strong,
.ip-support-lab[data-support-lab] .ip-support-monitor span {
	margin: 0;
}

.ip-support-lab[data-support-lab] .ip-support-monitor span {
	display: grid;
	gap: 4px;
}

.ip-support-lab[data-support-lab] .ip-support-brain,
.ip-support-lab[data-support-lab] .ip-support-effort,
.ip-support-lab[data-support-lab] .ip-support-thorax,
.ip-support-lab[data-support-lab] .ip-support-vent,
.ip-support-lab[data-support-lab] .ip-support-flow,
.ip-support-lab[data-support-lab] .ip-support-wave {
	display: none;
}

.ip-support-trigger-chart {
	display: grid;
	gap: 16px;
}

.ip-support-bars {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: end;
	gap: 26px;
	min-height: 340px;
	padding: 34px 26px 24px 54px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,253,.9)),
		repeating-linear-gradient(0deg, rgba(88,112,128,.1) 0 1px, transparent 1px 52px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.ip-support-scale {
	position: absolute;
	left: 14px;
	top: 22px;
	color: var(--ip-muted);
	font-size: .76rem;
	font-weight: 900;
}

.ip-support-scale--mid {
	top: auto;
	bottom: 48%;
}

.ip-support-scale--zero {
	top: auto;
	bottom: 18px;
}

.ip-support-threshold {
	position: absolute;
	left: 46px;
	right: 16px;
	height: 3px;
	border-radius: 999px;
	background: #e34b58;
	box-shadow: 0 0 14px rgba(227,75,88,.28);
	transition: bottom 260ms ease;
}

.ip-support-threshold::after {
	content: "trigger";
	position: absolute;
	right: 0;
	bottom: 8px;
	padding: 3px 8px;
	border-radius: 999px;
	background: rgba(227,75,88,.95);
	color: #fff;
	font-size: .72rem;
	font-weight: 900;
	text-transform: uppercase;
}

.ip-support-bar {
	position: relative;
	display: grid;
	align-items: end;
	justify-items: center;
	min-height: 6%;
	border-radius: 10px 10px 4px 4px;
	transition: height 420ms cubic-bezier(.2,.8,.2,1), opacity 220ms ease, filter 220ms ease;
}

.ip-support-bar em {
	position: absolute;
	left: 50%;
	bottom: -28px;
	color: #1f3b4d;
	font-size: .82rem;
	font-style: normal;
	font-weight: 900;
	white-space: nowrap;
	transform: translateX(-50%);
}

.ip-support-bar--patient {
	background: linear-gradient(180deg, #6ee7f9, #1f5fbf);
	box-shadow: 0 12px 24px rgba(31,95,191,.18);
}

.ip-support-bar--assist {
	height: 4%;
	background: linear-gradient(180deg, #7ee6b8, #16a085);
	box-shadow: 0 12px 24px rgba(22,160,133,.18);
	opacity: .34;
}

.ip-support-lab.is-assisted .ip-support-bar--assist {
	opacity: 1;
	filter: drop-shadow(0 0 12px rgba(22,160,133,.34));
}

.ip-support-trigger-control {
	display: grid;
	gap: 8px;
	color: #1f3b4d;
	font-weight: 900;
}

.ip-support-trigger-control input {
	width: 100%;
	accent-color: var(--ip-red);
}

.ip-support-status {
	margin: 0;
	padding: 14px 16px;
	border: 1px solid rgba(227,75,88,.24);
	border-radius: 8px;
	background: #fff5f5;
	color: #7f1d1d;
	font-weight: 850;
	line-height: 1.45;
}

.ip-support-status.is-assisted {
	border-color: rgba(22,160,133,.28);
	background: #f0fdf8;
	color: #0f766e;
}

@keyframes ip-support-drive {
	0%, 100% { transform: translateY(0) scale(.96); }
	38% { transform: translateY(4px) scale(1.03); }
}

@keyframes ip-support-lung {
	0%, 100% { transform: scale(.9); }
	44% { transform: scale(1.12); }
}

@keyframes ip-support-dial {
	to { transform: rotate(360deg); }
}

@keyframes ip-support-bolus {
	0%, 100% {
		opacity: .22;
		transform: scale(.72);
	}
	48% {
		opacity: 1;
		transform: scale(1.08);
	}
}

@keyframes ip-support-wave {
	to { transform: translateX(86px); }
}

@media (max-width: 980px) {
	.ip-support-grid {
		grid-template-columns: 1fr;
	}

	.ip-support-scene {
		min-height: 540px;
	}
}

@media (max-width: 620px) {
	.ip-support-lab {
		padding: 16px;
	}

	.ip-support-scene {
		min-height: 660px;
	}

	.ip-support-monitor,
	.ip-support-brain,
	.ip-support-effort,
	.ip-support-thorax,
	.ip-support-vent,
	.ip-support-flow {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
	}

	.ip-support-monitor,
	.ip-support-brain,
	.ip-support-vent {
		margin: 0 auto 16px;
	}

	.ip-support-effort {
		width: 3px;
		height: 56px;
		margin: -6px auto 0;
	}

	.ip-support-thorax {
		width: min(310px, 100%);
		height: 245px;
		margin: 0 auto;
		transform: none;
	}

	.ip-support-flow {
		width: 56%;
		height: 74px;
		margin: -10px auto 0;
		border-right: 0;
		border-radius: 54px 54px 0 0;
	}
}

@media (max-width: 720px) {
	.ip-support-lab[data-support-lab] .ip-support-scene {
		gap: 14px;
		padding: 14px;
		min-height: 0;
	}

	.ip-support-lab[data-support-lab] .ip-support-monitor {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ip-support-bars {
		min-height: 270px;
		gap: 18px;
		padding: 28px 18px 24px 42px;
	}

	.ip-support-threshold {
		left: 38px;
		right: 10px;
	}

	.ip-support-bar em {
		font-size: .76rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-support-lab *,
	.ip-support-lab *::before,
	.ip-support-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-trigger-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 8% 6%, rgba(54,167,224,.16), transparent 28%),
		radial-gradient(circle at 90% 16%, rgba(124,92,255,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-trigger-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-trigger-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-trigger-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-trigger-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-trigger-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
	gap: 18px;
	align-items: stretch;
}

.ip-trigger-scene {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.86), rgba(238,248,251,.82)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
	perspective: 900px;
}

.ip-trigger-monitor {
	position: absolute;
	left: 18px;
	right: 18px;
	top: 18px;
	z-index: 4;
	min-height: 150px;
	padding: 14px;
	border: 1px solid rgba(16,32,44,.16);
	border-radius: 8px;
	background: rgba(16,32,44,.94);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-trigger-monitor strong {
	display: block;
	margin-bottom: 8px;
	color: var(--ip-cyan);
	font-size: .82rem;
	text-transform: uppercase;
}

.ip-trigger-monitor svg {
	display: block;
	width: 100%;
	height: 112px;
}

.ip-trigger-monitor line {
	stroke: var(--ip-red);
	stroke-width: 3;
	stroke-dasharray: 9 7;
	transition: y1 .2s ease, y2 .2s ease;
}

.ip-trigger-wave {
	fill: none;
	stroke-linecap: round;
}

.ip-trigger-wave--artifact {
	stroke: var(--ip-amber);
	stroke-width: 3;
	opacity: .75;
}

.ip-trigger-wave--effort {
	stroke: #22c55e;
	stroke-width: 4;
}

.ip-trigger-wave--assist {
	stroke: var(--ip-blue);
	stroke-width: 5;
	opacity: 1;
	transition: opacity .25s ease;
}

.ip-trigger-status {
	position: absolute;
	left: 18px;
	top: 188px;
	z-index: 3;
	width: min(260px, calc(100% - 36px));
	padding: 14px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.88);
	box-shadow: 0 12px 26px rgba(16,32,44,.1);
}

.ip-trigger-status span {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 7px 0;
	color: #355162;
	font-size: .9rem;
}

.ip-trigger-status strong {
	color: var(--ip-green);
	text-align: right;
}

.ip-trigger-lab.is-trigger-auto .ip-trigger-status strong {
	color: var(--ip-purple);
}

.ip-trigger-lab.is-trigger-miss .ip-trigger-status strong {
	color: var(--ip-red);
}

.ip-trigger-patient {
	position: absolute;
	left: 53%;
	bottom: 70px;
	z-index: 2;
	width: 330px;
	height: 320px;
	transform: translateX(-50%) rotateY(7deg);
}

.ip-trigger-brain {
	position: absolute;
	left: 50%;
	top: 0;
	width: 126px;
	min-height: 56px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(22,160,133,.26);
	border-radius: 8px;
	background: linear-gradient(180deg, #f0fffb, #d4f7ef);
	color: #0f766e;
	font-weight: 900;
	transform: translateX(-50%);
	box-shadow: 0 14px 28px rgba(22,160,133,.15);
	animation: ip-trigger-effort 2.7s ease-in-out infinite;
}

.ip-trigger-lungs {
	position: absolute;
	left: 50%;
	top: 86px;
	width: 286px;
	height: 218px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 42px;
	padding: 44px 48px 28px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 46% 46% 42% 42%;
	background:
		radial-gradient(circle at 50% 22%, rgba(255,255,255,.9), transparent 26%),
		linear-gradient(180deg, rgba(231,246,252,.94), rgba(201,231,242,.78));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
	transform: translateX(-50%);
}

.ip-trigger-lungs span {
	display: block;
	border: 4px solid #2578a8;
	background:
		radial-gradient(circle at 50% 54%, rgba(110,231,249,.58), transparent 42%),
		linear-gradient(180deg, rgba(255,255,255,.95), rgba(177,226,241,.82));
	box-shadow: inset 0 -16px 24px rgba(37,120,168,.12);
	animation: ip-trigger-lung 2.7s ease-in-out infinite;
}

.ip-trigger-lungs span:first-child {
	border-radius: 70px 42px 62px 74px;
	transform-origin: right center;
}

.ip-trigger-lungs span:last-child {
	border-radius: 42px 70px 74px 62px;
	transform-origin: left center;
	animation-delay: .08s;
}

.ip-trigger-vent {
	position: absolute;
	right: 34px;
	bottom: 56px;
	z-index: 2;
	width: 150px;
	height: 190px;
	display: grid;
	place-items: start center;
	padding-top: 24px;
	border: 1px solid rgba(16,32,44,.18);
	border-radius: 8px;
	background: linear-gradient(145deg, #eef6f9, #cbdde5);
	color: #1f3b4d;
	font-weight: 900;
	box-shadow: 0 24px 42px rgba(16,32,44,.2);
	transform: rotateY(-8deg);
}

.ip-trigger-vent::before {
	content: "";
	position: absolute;
	left: 28px;
	bottom: 30px;
	width: 90px;
	height: 90px;
	border: 13px solid #9fb5bf;
	border-top-color: var(--ip-blue);
	border-radius: 50%;
	animation: ip-trigger-dial 2.7s linear infinite;
}

.ip-trigger-flow {
	position: absolute;
	right: 174px;
	bottom: 206px;
	z-index: 1;
	width: 24%;
	height: 70px;
	border-top: 14px solid rgba(54,167,224,.36);
	border-left: 14px solid rgba(54,167,224,.36);
	border-radius: 68px 0 0 0;
}

.ip-trigger-flow::before {
	content: "";
	position: absolute;
	left: 22px;
	top: -18px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(54,167,224,.78);
	box-shadow: 0 0 18px rgba(54,167,224,.34);
	animation: ip-trigger-bolus 2.7s ease-in-out infinite;
}

.ip-trigger-panel {
	display: grid;
	align-content: start;
	gap: 14px;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-trigger-panel label {
	color: #1f3b4d;
	font-weight: 900;
}

.ip-trigger-panel input[type="range"] {
	width: 100%;
	accent-color: var(--ip-blue);
}

.ip-trigger-scale {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	color: var(--ip-muted);
	font-size: .82rem;
	font-weight: 800;
}

.ip-trigger-scale span:nth-child(2) {
	text-align: center;
}

.ip-trigger-scale span:nth-child(3) {
	text-align: right;
}

.ip-trigger-panel article {
	margin-top: 6px;
	padding: 16px;
	border-radius: 8px;
	background: #f7fbfd;
}

.ip-trigger-panel h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-trigger-panel p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-trigger-results {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 18px;
}

.ip-trigger-results span {
	position: relative;
	min-height: 48px;
	padding: 12px 12px 12px 42px;
	border: 1px solid rgba(22,160,133,.22);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	color: #234b44;
	font-weight: 800;
}

.ip-trigger-results span::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ip-green);
	transform: translateY(-50%);
}

.ip-trigger-warning {
	margin-top: 14px;
	padding: 16px 18px;
	border: 1px solid rgba(216,155,39,.34);
	border-left: 5px solid var(--ip-amber);
	border-radius: 8px;
	background: #fffaf0;
	color: #4d3820;
	line-height: 1.65;
}

.ip-trigger-lab.is-trigger-auto .ip-trigger-wave--assist {
	opacity: .88;
	stroke: var(--ip-purple);
}

.ip-trigger-lab.is-trigger-miss .ip-trigger-wave--assist {
	opacity: 0;
}

.ip-trigger-lab.is-trigger-miss .ip-trigger-lungs span {
	animation-name: ip-trigger-weak-lung;
	border-color: #8b9bab;
	filter: grayscale(.35);
}

@keyframes ip-trigger-effort {
	0%, 100% { transform: translateX(-50%) translateY(0) scale(.96); }
	42% { transform: translateX(-50%) translateY(4px) scale(1.03); }
}

@keyframes ip-trigger-lung {
	0%, 100% { transform: scale(.92); }
	44% { transform: scale(1.16); }
}

@keyframes ip-trigger-weak-lung {
	0%, 100% { transform: scale(.88); }
	44% { transform: scale(.98); }
}

@keyframes ip-trigger-dial {
	to { transform: rotate(360deg); }
}

@keyframes ip-trigger-bolus {
	0%, 100% {
		opacity: .22;
		transform: scale(.72);
	}
	48% {
		opacity: 1;
		transform: scale(1.08);
	}
}

@media (max-width: 980px) {
	.ip-trigger-grid,
	.ip-trigger-results {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-trigger-lab {
		padding: 16px;
	}

	.ip-trigger-scene {
		min-height: 690px;
	}

	.ip-trigger-monitor,
	.ip-trigger-status,
	.ip-trigger-patient,
	.ip-trigger-vent,
	.ip-trigger-flow {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
	}

	.ip-trigger-monitor,
	.ip-trigger-status,
	.ip-trigger-vent {
		width: auto;
		margin: 0 14px 16px;
	}

	.ip-trigger-patient {
		width: 100%;
		margin: 0 auto;
		transform: none;
	}

	.ip-trigger-flow {
		width: 52%;
		height: 66px;
		margin: -12px auto 0;
		border-left: 0;
		border-radius: 54px 54px 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-trigger-lab *,
	.ip-trigger-lab *::before,
	.ip-trigger-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

@media (max-width: 620px) {
	.ip-trigger-lab {
		padding: 14px;
	}

	.ip-trigger-lab__header {
		margin-bottom: 14px;
	}

	.ip-trigger-grid {
		gap: 12px;
	}

	.ip-trigger-scene {
		display: grid;
		gap: 10px;
		min-height: 0;
		padding: 12px;
		overflow: visible;
	}

	.ip-trigger-monitor,
	.ip-trigger-status {
		position: static;
		width: 100%;
		margin: 0;
	}

	.ip-trigger-monitor {
		min-height: 0;
		padding: 10px;
	}

	.ip-trigger-monitor svg {
		height: 86px;
	}

	.ip-trigger-status {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
		padding: 10px;
	}

	.ip-trigger-status span {
		display: grid;
		gap: 3px;
		margin: 0;
		font-size: .76rem;
	}

	.ip-trigger-status strong {
		text-align: left;
	}

	.ip-trigger-patient,
	.ip-trigger-vent,
	.ip-trigger-flow {
		display: none;
	}

	.ip-trigger-panel {
		gap: 10px;
		padding: 12px;
	}

	.ip-trigger-panel article {
		padding: 12px;
	}
}

.ip-ps-lab,
.ip-async-lab,
.ip-work-error-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 2%, rgba(54,167,224,.14), transparent 28%),
		radial-gradient(circle at 92% 14%, rgba(22,160,133,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-ps-lab__header,
.ip-async-lab__header,
.ip-work-error-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-ps-lab__kicker,
.ip-async-lab__kicker,
.ip-work-error-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-ps-lab__header h3,
.ip-async-lab__header h3,
.ip-work-error-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-ps-lab__header p:last-child,
.ip-async-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-ps-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
	gap: 18px;
	align-items: stretch;
}

.ip-ps-scene,
.ip-async-visual {
	position: relative;
	min-height: 500px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.86), rgba(238,248,251,.82)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.ip-ps-monitor {
	position: absolute;
	left: 18px;
	top: 18px;
	z-index: 3;
	width: min(260px, calc(100% - 36px));
	padding: 14px;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-ps-monitor strong {
	display: block;
	margin-bottom: 10px;
	color: var(--ip-cyan);
	font-size: .8rem;
	text-transform: uppercase;
}

.ip-ps-monitor span {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 7px 0;
	font-size: .88rem;
}

.ip-ps-monitor em {
	color: #fff;
	font-style: normal;
	font-weight: 900;
}

.ip-ps-patient {
	position: absolute;
	left: 52%;
	bottom: 72px;
	width: 310px;
	height: 286px;
	transform: translateX(-50%);
}

.ip-ps-effort {
	position: absolute;
	left: 50%;
	top: 0;
	width: 108px;
	height: 48px;
	display: grid;
	place-items: center;
	border-radius: 8px;
	background: #fff7e8;
	box-shadow: 0 12px 24px rgba(216,155,39,.14);
	transform: translateX(-50%);
}

.ip-ps-effort::before {
	content: "Esfuerzo";
	color: #7a4b08;
	font-weight: 900;
	font-size: .82rem;
}

.ip-ps-lungs {
	position: absolute;
	left: 50%;
	top: 70px;
	width: 282px;
	height: 206px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 42px;
	padding: 44px 48px 28px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 46% 46% 42% 42%;
	background: linear-gradient(180deg, rgba(231,246,252,.94), rgba(201,231,242,.78));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
	transform: translateX(-50%);
}

.ip-ps-lungs span {
	display: block;
	border: 4px solid #2578a8;
	border-radius: 70px;
	background: radial-gradient(circle at 50% 54%, rgba(110,231,249,.58), transparent 42%), linear-gradient(180deg, #fff, #b1e2f1);
	animation: ip-ps-lung 2.6s ease-in-out infinite;
}

.ip-ps-vent {
	position: absolute;
	right: 34px;
	bottom: 58px;
	width: 148px;
	height: 178px;
	display: grid;
	place-items: start center;
	padding-top: 22px;
	border-radius: 8px;
	background: linear-gradient(145deg, #eef6f9, #cbdde5);
	color: #1f3b4d;
	font-weight: 900;
	box-shadow: 0 24px 42px rgba(16,32,44,.2);
}

.ip-ps-flow {
	position: absolute;
	right: 170px;
	bottom: 202px;
	width: 26%;
	height: 70px;
	border-top: 14px solid rgba(54,167,224,.36);
	border-left: 14px solid rgba(54,167,224,.36);
	border-radius: 68px 0 0 0;
}

.ip-ps-wave {
	position: absolute;
	left: 50%;
	bottom: 16px;
	width: min(410px, calc(100% - 34px));
	height: 56px;
	overflow: hidden;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	transform: translateX(-50%);
}

.ip-ps-wave::before {
	content: "";
	position: absolute;
	inset: var(--ip-ps-wave, 52px) -100px 10px;
	background: linear-gradient(90deg, transparent 0 8%, var(--ip-cyan) 8% 10%, transparent 10% 20%, var(--ip-blue) 20% 22%, transparent 22% 34%);
	animation: ip-ps-wave 2.8s linear infinite;
}

.ip-ps-panel,
.ip-async-panel article,
.ip-work-error-grid article,
.ip-ps-warning,
.ip-work-error-banner {
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-ps-panel {
	display: grid;
	align-content: start;
	gap: 14px;
	padding: 18px;
}

.ip-ps-panel label {
	font-weight: 900;
	color: #1f3b4d;
}

.ip-ps-panel input[type="range"] {
	width: 100%;
	accent-color: var(--ip-blue);
}

.ip-ps-scale {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	color: var(--ip-muted);
	font-size: .82rem;
	font-weight: 800;
}

.ip-ps-scale span:nth-child(2) { text-align: center; }
.ip-ps-scale span:nth-child(3) { text-align: right; }

.ip-ps-panel article,
.ip-async-panel article {
	padding: 16px;
}

.ip-ps-panel h4,
.ip-async-panel h4,
.ip-work-error-grid h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-ps-panel p,
.ip-async-panel p,
.ip-work-error-grid p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-ps-warning,
.ip-work-error-banner {
	margin-top: 18px;
	padding: 16px 18px;
	border-left: 5px solid var(--ip-amber);
	color: #4d3820;
	line-height: 1.65;
}

.ip-ps-lab.is-ps-low .ip-ps-monitor em,
.ip-ps-lab.is-ps-high .ip-ps-monitor em {
	color: #ffd166;
}

.ip-ps-lab.is-ps-low .ip-ps-lungs span {
	animation-name: ip-ps-weak-lung;
}

.ip-ps-lab.is-ps-high .ip-ps-lungs span {
	border-color: var(--ip-purple);
	animation-name: ip-ps-big-lung;
}

.ip-async-tabs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}

.ip-async-tabs button {
	min-height: 48px;
	border: 1px solid rgba(88,112,128,.2);
	border-radius: 8px;
	background: #fff;
	color: #1f3b4d;
	font-weight: 900;
	cursor: pointer;
}

.ip-async-tabs button.is-active {
	background: #1f3b4d;
	color: #fff;
}

.ip-async-panel {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(280px, 1.05fr);
	gap: 18px;
}

.ip-async-visual {
	min-height: 350px;
}

.ip-async-patient,
.ip-async-vent {
	position: absolute;
	top: 118px;
	width: 130px;
	height: 150px;
	border-radius: 8px;
}

.ip-async-patient {
	left: 46px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 42px 22px 22px;
	background: linear-gradient(180deg, #fff, #e7f6fc);
	box-shadow: 0 18px 34px rgba(16,32,44,.12);
}

.ip-async-patient span {
	border: 4px solid #2578a8;
	border-radius: 70px;
	background: #b1e2f1;
	animation: ip-async-patient 2s ease-in-out infinite;
}

.ip-async-vent {
	right: 46px;
	display: grid;
	place-items: center;
	background: #1f3b4d;
	color: #fff;
	font-weight: 900;
	box-shadow: 0 18px 34px rgba(16,32,44,.18);
	animation: ip-async-vent 2s ease-in-out infinite;
}

.ip-async-spark {
	position: absolute;
	left: 50%;
	top: 178px;
	width: 70px;
	height: 4px;
	border-radius: 999px;
	background: var(--ip-red);
	transform: translateX(-50%);
	box-shadow: 0 0 20px rgba(227,75,88,.35);
}

.ip-async-wave {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 24px;
	height: 58px;
	overflow: hidden;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
}

.ip-async-wave span {
	position: absolute;
	inset: 12px -90px;
	background: linear-gradient(90deg, transparent 0 7%, var(--ip-cyan) 7% 9%, transparent 9% 18%, var(--ip-red) 18% 20%, transparent 20% 30%);
	animation: ip-ps-wave 2.3s linear infinite;
}

.ip-async-tag {
	display: inline-block;
	margin: 0 0 10px !important;
	padding: 6px 10px;
	border-radius: 999px;
	background: #e0ecff;
	color: #1e4cbc !important;
	font-size: .82rem;
	font-weight: 900;
}

.ip-async-warning {
	margin-top: 14px;
	padding: 12px 14px;
	border-left: 5px solid var(--ip-red);
	border-radius: 8px;
	background: #fff1f2;
	color: #7f1d1d;
	font-weight: 800;
	line-height: 1.55;
}

.ip-async-bedside,
.ip-work-error-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 18px;
}

.ip-async-bedside article {
	padding: 16px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
}

.ip-async-bedside h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
}

.ip-async-bedside p {
	margin: 0;
	color: #355162;
	line-height: 1.55;
}

.ip-async-photo {
	margin: 18px 0 0;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
}

.ip-async-photo img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-work-error-grid article {
	padding: 18px;
}

.ip-work-error-grid span {
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: #1f3b4d;
	color: #fff;
	font-weight: 900;
}

@keyframes ip-ps-lung {
	0%, 100% { transform: scale(.9); }
	45% { transform: scale(var(--ip-ps-scale, 1.08)); }
}

@keyframes ip-ps-weak-lung {
	0%, 100% { transform: scale(.84); }
	45% { transform: scale(.96); }
}

@keyframes ip-ps-big-lung {
	0%, 100% { transform: scale(1.02); }
	45% { transform: scale(1.32); }
}

@keyframes ip-ps-wave {
	to { transform: translateX(82px); }
}

@keyframes ip-async-patient {
	0%, 100% { transform: scale(.92); }
	45% { transform: scale(1.12); }
}

@keyframes ip-async-vent {
	0%, 100% { transform: translateY(0); }
	45% { transform: translateY(8px); }
}

.ip-async-lab[data-async-state="ineffective"] .ip-async-vent { animation-delay: .9s; }
.ip-async-lab[data-async-state="double"] .ip-async-vent { animation-duration: 1.05s; }
.ip-async-lab[data-async-state="early"] .ip-async-vent { animation-duration: 1.25s; }
.ip-async-lab[data-async-state="late"] .ip-async-vent { animation-duration: 2.8s; }

@media (max-width: 980px) {
	.ip-ps-grid,
	.ip-async-panel,
	.ip-async-bedside,
	.ip-work-error-grid {
		grid-template-columns: 1fr;
	}

	.ip-async-tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-ps-lab,
	.ip-async-lab,
	.ip-work-error-lab {
		padding: 16px;
	}

	.ip-ps-scene {
		min-height: 620px;
	}

	.ip-ps-monitor,
	.ip-ps-patient,
	.ip-ps-vent,
	.ip-ps-flow {
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
	}

	.ip-ps-monitor,
	.ip-ps-vent {
		margin: 0 auto 16px;
	}

	.ip-ps-patient {
		width: 100%;
		margin: 0 auto;
		transform: none;
	}

	.ip-ps-flow {
		width: 54%;
		height: 66px;
		margin: -12px auto 0;
		border-left: 0;
		border-radius: 54px 54px 0 0;
	}

	.ip-async-tabs {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-ps-lab *,
	.ip-ps-lab *::before,
	.ip-ps-lab *::after,
	.ip-async-lab *,
	.ip-async-lab *::before,
	.ip-async-lab *::after,
	.ip-work-error-lab *,
	.ip-work-error-lab *::before,
	.ip-work-error-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-async-lab[data-async-ready="1"] {
	padding: 24px;
}

.ip-async-lab[data-async-ready="1"] .ip-async-topbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: start;
	margin-bottom: 14px;
}

.ip-async-lab[data-async-ready="1"] .ip-async-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.ip-async-lab[data-async-ready="1"] .ip-async-controls button,
.ip-async-lab[data-async-ready="1"] .ip-async-controls select {
	min-height: 38px;
	border: 1px solid rgba(88,112,128,.22);
	border-radius: 8px;
	background: #fff;
	color: #10202c;
	font: inherit;
	font-weight: 850;
	cursor: pointer;
}

.ip-async-stage {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.16);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f8fbfd);
}

.ip-async-stage svg {
	display: block;
	width: 100%;
	height: auto;
}

.ip-async-label {
	fill: #587080;
	font-size: 15px;
	font-weight: 850;
}

.ip-async-axis {
	stroke: #d8e3ea;
	stroke-width: 2;
}

.ip-async-cursor {
	stroke: #253849;
	stroke-width: 2;
	stroke-dasharray: 5 7;
	opacity: .45;
}

.ip-async-curve {
	fill: none;
	stroke-width: 5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ip-async-curve--patient {
	stroke: #f59e0b;
}

.ip-async-curve--vent {
	stroke: #1f78d1;
}

.ip-async-error-mark {
	fill: rgba(227,52,79,.12);
	stroke: #e3344f;
	stroke-width: 2;
}

.ip-async-error-line {
	stroke: #e3344f;
	stroke-width: 4;
	stroke-linecap: round;
}

.ip-async-caption {
	position: absolute;
	top: 18px;
	right: 18px;
	max-width: 360px;
	padding: 12px 14px;
	border: 1px solid rgba(227,52,79,.24);
	border-left: 5px solid #e3344f;
	border-radius: 8px;
	background: #fff7f8;
	color: #7f1d1d;
	font-weight: 850;
	line-height: 1.35;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity .25s ease, transform .25s ease;
}

.ip-async-caption.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.ip-async-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 12px;
	color: #587080;
	font-size: .92rem;
	font-weight: 800;
}

.ip-async-dot {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 6px;
	border-radius: 50%;
	vertical-align: -1px;
}

.ip-async-dot--patient { background: #f59e0b; }
.ip-async-dot--vent { background: #1f78d1; }
.ip-async-dot--error { background: #e3344f; }

@media (max-width: 820px) {
	.ip-async-lab[data-async-ready="1"] .ip-async-topbar {
		grid-template-columns: 1fr;
	}

	.ip-async-lab[data-async-ready="1"] .ip-async-controls {
		justify-content: flex-start;
	}
}

@media (max-width: 620px) {
	.ip-async-lab[data-async-ready="1"] {
		padding: 14px;
	}

	.ip-async-lab[data-async-ready="1"] .ip-async-tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 7px;
		margin-bottom: 0;
	}

	.ip-async-lab[data-async-ready="1"] .ip-async-tabs button {
		min-height: 40px;
		font-size: .78rem;
	}

	.ip-async-label {
		font-size: 20px;
	}

	.ip-async-caption {
		position: static;
		max-width: none;
		margin: 10px;
	}

	.ip-async-legend {
		gap: 10px;
		font-size: .82rem;
	}
}

@media (max-width: 980px) {
	.ip-ps-lab {
		padding: 18px;
	}

	.ip-ps-lab__header {
		margin-bottom: 16px;
	}

	.ip-ps-grid {
		gap: 14px;
	}

	.ip-ps-scene {
		min-height: 420px;
	}

	.ip-ps-monitor {
		width: min(360px, calc(100% - 32px));
	}

	.ip-ps-patient {
		left: 48%;
		bottom: 74px;
		width: 286px;
		height: 252px;
	}

	.ip-ps-lungs {
		width: 252px;
		height: 184px;
		gap: 34px;
		padding: 40px 42px 24px;
	}

	.ip-ps-vent {
		right: 24px;
		bottom: 54px;
		width: 126px;
		height: 150px;
	}

	.ip-ps-flow {
		right: 140px;
		bottom: 180px;
		width: 22%;
	}
}

@media (max-width: 620px) {
	.ip-ps-lab {
		padding: 14px;
	}

	.ip-ps-lab__header {
		margin-bottom: 12px;
	}

	.ip-ps-lab__header h3 {
		font-size: 1.35rem;
	}

	.ip-ps-grid {
		gap: 12px;
	}

	.ip-ps-scene {
		display: grid;
		gap: 10px;
		min-height: 0;
		padding: 12px;
		overflow: visible;
	}

	.ip-ps-monitor {
		position: static;
		width: 100%;
		margin: 0;
		padding: 10px;
	}

	.ip-ps-monitor strong {
		margin-bottom: 6px;
	}

	.ip-ps-monitor span {
		margin: 4px 0;
		font-size: .82rem;
	}

	.ip-ps-patient {
		position: relative;
		left: auto;
		bottom: auto;
		width: min(250px, 100%);
		height: 216px;
		margin: 0 auto;
		transform: none;
	}

	.ip-ps-effort {
		width: 92px;
		height: 38px;
	}

	.ip-ps-effort::before {
		font-size: .74rem;
	}

	.ip-ps-lungs {
		top: 56px;
		width: 224px;
		height: 156px;
		gap: 28px;
		padding: 32px 36px 20px;
	}

	.ip-ps-lungs span {
		border-width: 3px;
	}

	.ip-ps-vent,
	.ip-ps-flow {
		display: none;
	}

	.ip-ps-wave {
		position: relative;
		left: auto;
		bottom: auto;
		width: 100%;
		height: 42px;
		transform: none;
	}

	.ip-ps-panel {
		gap: 10px;
		padding: 12px;
	}

	.ip-ps-panel article {
		padding: 12px;
	}

	.ip-ps-scale {
		font-size: .74rem;
	}

	.ip-ps-warning {
		margin-top: 12px;
		padding: 13px 14px;
	}
}

.ip-carbon-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 8%, rgba(124,92,255,.14), transparent 28%),
		radial-gradient(circle at 88% 10%, rgba(54,167,224,.15), transparent 28%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-carbon-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-carbon-lab__kicker {
	margin: 0 0 8px;
	color: #5b4bc4;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-carbon-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-carbon-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-carbon-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
	gap: 18px;
	align-items: stretch;
}

.ip-carbon-scene {
	position: relative;
	min-height: 0;
	overflow: hidden;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.94), rgba(238,248,251,.9));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.ip-carbon-status {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	padding: 16px;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-carbon-status span {
	display: grid;
	gap: 4px;
	color: rgba(234,249,255,.74);
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-carbon-status strong {
	color: #fff;
	font-size: 1.28rem;
	text-transform: none;
}

.ip-carbon-scene--dashboard {
	display: grid;
	gap: 18px;
}

.ip-carbon-balance {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.ip-carbon-balance div {
	display: grid;
	gap: 8px;
	min-height: 118px;
	padding: 16px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(16,32,44,.07);
}

.ip-carbon-balance span {
	color: var(--ip-muted);
	font-size: .8rem;
	font-weight: 900;
	text-transform: uppercase;
}

.ip-carbon-balance strong {
	align-self: end;
	color: #1f3b4d;
	font-size: clamp(2rem, 1.55rem + 1.3vw, 2.8rem);
	line-height: 1;
}

.ip-carbon-body {
	display: none;
	position: absolute;
	left: 50%;
	top: 122px;
	width: min(520px, calc(100% - 42px));
	height: 350px;
	transform: translateX(-50%);
}

.ip-carbon-cell {
	position: absolute;
	display: grid;
	place-items: center;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: linear-gradient(145deg, #475569, #1e293b);
	color: #fff;
	font-size: .85rem;
	font-weight: 900;
	box-shadow: 0 14px 28px rgba(16,32,44,.2);
	animation: ip-carbon-produce var(--ip-carbon-produce-duration, 3s) ease-in-out infinite;
}

.ip-carbon-cell--one { left: 10%; top: 54%; }
.ip-carbon-cell--two { left: 20%; top: 28%; animation-delay: .5s; }
.ip-carbon-cell--three { left: 8%; top: 6%; animation-delay: 1s; }

.ip-carbon-blood {
	position: absolute;
	left: 23%;
	top: 42%;
	width: 42%;
	height: 18px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(227,75,88,.78), rgba(124,92,255,.5), rgba(54,167,224,.5));
	box-shadow: 0 0 24px rgba(227,75,88,.14);
}

.ip-carbon-lungs {
	position: absolute;
	right: 6%;
	top: 20%;
	width: 230px;
	height: 210px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 34px;
	padding: 42px 38px 28px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 46% 46% 42% 42%;
	background: linear-gradient(180deg, rgba(231,246,252,.94), rgba(201,231,242,.78));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
}

.ip-carbon-lungs span {
	display: block;
	border: 4px solid #2578a8;
	border-radius: 70px;
	background: radial-gradient(circle at 50% 54%, rgba(110,231,249,.58), transparent 42%), linear-gradient(180deg, #fff, #b1e2f1);
	animation: ip-carbon-breathe var(--ip-carbon-vent-duration, 2.2s) ease-in-out infinite;
}

.ip-carbon-flow {
	position: absolute;
	right: 15%;
	top: 10%;
	width: 86px;
	height: 86px;
	border-top: 12px solid rgba(54,167,224,.5);
	border-right: 12px solid rgba(54,167,224,.5);
	border-radius: 0 70px 0 0;
	animation: ip-carbon-flow var(--ip-carbon-vent-duration, 2.2s) ease-in-out infinite;
}

.ip-carbon-phbar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 12px;
	color: var(--ip-muted);
	font-size: .82rem;
	font-weight: 900;
}

.ip-carbon-phbar i {
	position: relative;
	display: block;
	height: 16px;
	border-radius: 999px;
	background: linear-gradient(90deg, #9bef80, #e9f8ff 50%, #c6a8ff);
	box-shadow: inset 0 0 0 1px rgba(16,32,44,.12);
}

.ip-carbon-phbar b {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 22px;
	height: 22px;
	border: 3px solid #10202c;
	border-radius: 50%;
	background: #fff;
	transform: translate(-50%, -50%);
	transition: left .25s ease;
}

.ip-carbon-panel {
	display: grid;
	align-content: start;
	gap: 14px;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.86);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-carbon-panel label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	color: #1f3b4d;
	font-weight: 900;
}

.ip-carbon-panel label strong {
	display: inline-grid;
	place-items: center;
	min-width: 34px;
	height: 28px;
	border-radius: 999px;
	background: #1f3b4d;
	color: #fff;
	font-size: .88rem;
}

.ip-carbon-panel input[type="range"] {
	width: 100%;
	accent-color: var(--ip-purple);
}

.ip-carbon-panel article {
	margin-top: 6px;
	padding: 16px;
	border-radius: 8px;
	background: #f7fbfd;
}

.ip-carbon-panel h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-carbon-panel p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-carbon-packages {
	display: none;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin-top: 18px;
}

.ip-carbon-packages article {
	min-height: 92px;
	padding: 14px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 24px rgba(16,32,44,.07);
}

.ip-carbon-packages span {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: #1f3b4d;
	color: #fff;
	font-size: .82rem;
	font-weight: 900;
}

.ip-carbon-packages strong {
	display: block;
	color: #1f3b4d;
	line-height: 1.25;
}

.ip-carbon-lab.is-carbon-acid .ip-carbon-status strong,
.ip-carbon-lab.is-carbon-mild-acid .ip-carbon-status strong {
	color: #b7f58a;
}

.ip-carbon-lab.is-carbon-alk .ip-carbon-status strong,
.ip-carbon-lab.is-carbon-mild-alk .ip-carbon-status strong {
	color: #d8c4ff;
}

@keyframes ip-carbon-produce {
	0%, 100% { transform: translateY(0) scale(.96); opacity: .82; }
	45% { transform: translateY(-10px) scale(1.06); opacity: 1; }
}

@keyframes ip-carbon-breathe {
	0%, 100% { transform: scale(.9); }
	45% { transform: scale(1.14); }
}

@keyframes ip-carbon-flow {
	0%, 100% { opacity: .25; transform: scale(.86); }
	45% { opacity: 1; transform: scale(1.06); }
}

@media (max-width: 980px) {
	.ip-carbon-grid,
	.ip-carbon-packages {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-carbon-lab {
		padding: 16px;
	}

	.ip-carbon-scene {
		min-height: 0;
	}

	.ip-carbon-status,
	.ip-carbon-balance {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-carbon-lab *,
	.ip-carbon-lab *::before,
	.ip-carbon-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-acid-map {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 0%, rgba(227,75,88,.11), transparent 28%),
		radial-gradient(circle at 90% 12%, rgba(124,92,255,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-acid-map__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-acid-map__kicker {
	margin: 0 0 8px;
	color: #5b4bc4;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-acid-map__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-acid-map__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-acid-map__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ip-acid-card {
	position: relative;
	overflow: hidden;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-acid-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 5px;
	background: var(--ip-blue);
}

.ip-acid-card--resp-acid::before { background: var(--ip-red); }
.ip-acid-card--met-acid::before { background: var(--ip-amber); }
.ip-acid-card--met-alk::before { background: var(--ip-green); }
.ip-acid-card--resp-alk::before { background: var(--ip-purple); }

.ip-acid-card__tag {
	display: inline-block;
	margin-bottom: 10px;
	padding: 6px 10px;
	border-radius: 999px;
	background: #eef5fb;
	color: #1f3b4d;
	font-size: .78rem;
	font-weight: 900;
	text-transform: uppercase;
}

.ip-acid-card h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	font-size: 1.08rem;
	line-height: 1.25;
	letter-spacing: 0;
}

.ip-acid-card__cause {
	margin: 0 0 14px;
	color: #355162;
	line-height: 1.55;
}

.ip-acid-card ul {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ip-acid-card li {
	padding: 10px;
	border-radius: 8px;
	background: #f7fbfd;
	color: #355162;
	line-height: 1.45;
}

.ip-acid-card strong {
	color: #1f3b4d;
}

.ip-acid-map__rule {
	margin-top: 18px;
	padding: 16px 18px;
	border: 1px solid rgba(54,167,224,.25);
	border-left: 5px solid var(--ip-blue);
	border-radius: 8px;
	background: #f1f9fc;
	color: #234b5a;
	line-height: 1.65;
}

@media (max-width: 1080px) {
	.ip-acid-map__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-acid-map {
		padding: 16px;
	}

	.ip-acid-map__grid {
		grid-template-columns: 1fr;
	}
}

.ip-ventilation-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 8% 4%, rgba(54,167,224,.13), transparent 28%),
		radial-gradient(circle at 92% 10%, rgba(22,160,133,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-ventilation-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-ventilation-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-ventilation-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-ventilation-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-ventilation-scenarios {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.ip-vent-card {
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-vent-card__icon {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	width: 92px;
	height: 66px;
	margin-bottom: 14px;
}

.ip-vent-card__icon i {
	display: block;
	border: 4px solid #2578a8;
	border-radius: 44px;
	background: radial-gradient(circle at 50% 54%, rgba(110,231,249,.58), transparent 42%), linear-gradient(180deg, #fff, #b1e2f1);
	animation: ip-vent-breathe 2.2s ease-in-out infinite;
}

.ip-vent-card--low .ip-vent-card__icon i {
	border-color: #8b9bab;
	animation-name: ip-vent-weak;
}

.ip-vent-card--high .ip-vent-card__icon i {
	border-color: var(--ip-purple);
	animation-duration: .9s;
}

.ip-vent-card h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-vent-card p {
	margin: 0 0 12px;
	color: #355162;
	line-height: 1.6;
}

.ip-vent-card strong {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	background: #f7fbfd;
	color: #1f3b4d;
}

.ip-vent-card--low strong { color: var(--ip-red); }
.ip-vent-card--ok strong { color: var(--ip-green); }
.ip-vent-card--high strong { color: var(--ip-purple); }

.ip-ventilation-image {
	margin: 18px 0 0;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-ventilation-image img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-ventilation-formula {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-ventilation-formula h4 {
	margin: 0 0 12px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-ventilation-factors {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 14px;
}

.ip-ventilation-factors article {
	min-height: 168px;
	padding: 10px 12px;
	border: 1px solid rgba(88,112,128,.16);
	border-radius: 8px;
	background: #eef7fa;
}

.ip-ventilation-factors span {
	display: block;
	margin-bottom: 8px;
	color: #234b5a;
	font-weight: 900;
	text-align: center;
}

.ip-ventilation-factors p {
	margin: 0;
	color: #355162;
	font-size: .92rem;
	line-height: 1.45;
}

.ip-ventilation-formula p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

@keyframes ip-vent-breathe {
	0%, 100% { transform: scale(.92); }
	45% { transform: scale(1.12); }
}

@keyframes ip-vent-weak {
	0%, 100% { transform: scale(.82); }
	45% { transform: scale(.92); }
}

@media (max-width: 980px) {
	.ip-ventilation-scenarios,
	.ip-ventilation-factors {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-ventilation-lab {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-ventilation-lab *,
	.ip-ventilation-lab *::before,
	.ip-ventilation-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-acid-co2-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-acid-co2-lab__header {
	max-width: 880px;
	margin: 0 auto 18px;
	text-align: center;
}

.ip-acid-co2-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 900;
	text-transform: uppercase;
}

.ip-acid-co2-lab__header h3 {
	margin: 0 0 8px;
	font-size: clamp(1.45rem, 1.2rem + .9vw, 2.2rem);
	letter-spacing: 0;
}

.ip-acid-co2-lab__header p {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.55;
}

.ip-acid-co2-controls {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 16px;
	overflow-x: auto;
	padding-bottom: 4px;
	-webkit-overflow-scrolling: touch;
}

.ip-acid-co2-controls button {
	flex: 0 0 auto;
	min-height: 38px;
	border: 1px solid rgba(88,112,128,.22);
	border-radius: 8px;
	background: #fff;
	color: var(--ip-ink);
	font-weight: 850;
	cursor: pointer;
}

.ip-acid-co2-stage {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.ip-acid-co2-card {
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.ip-acid-co2-card h4 {
	margin: 0 0 12px;
	color: #1f3b4d;
	font-size: 1.1rem;
	letter-spacing: 0;
}

.ip-acid-co2-body {
	position: relative;
	min-height: 210px;
	display: grid;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.14);
	border-radius: 8px;
	background: linear-gradient(180deg, #fff, #f7fbfd);
}

.ip-acid-co2-lung {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	width: 150px;
	height: 118px;
	padding: 24px;
	border-radius: 42% 42% 38% 38%;
	background: #e7f6fc;
	box-shadow: inset 0 12px 28px rgba(255,255,255,.7);
}

.ip-acid-co2-lung i {
	border: 4px solid #2578a8;
	border-radius: 70px;
	background: #b1e2f1;
	animation: ip-acid-lung 2.2s ease-in-out infinite;
}

.ip-acid-co2-cloud,
.ip-acid-co2-acid {
	position: absolute;
	left: 18px;
	bottom: 18px;
	display: grid;
	place-items: center;
	width: 78px;
	height: 78px;
	border-radius: 50%;
	background: rgba(227,75,88,.14);
	color: #9f1239;
	font-weight: 950;
	transform: scale(.8);
	transition: transform .35s ease, background .35s ease;
}

.ip-acid-co2-arrows::before,
.ip-acid-co2-arrows::after {
	content: "";
	position: absolute;
	right: 28px;
	top: 82px;
	width: 68px;
	height: 6px;
	border-radius: 999px;
	background: var(--ip-blue);
	opacity: .45;
	box-shadow: 0 0 14px rgba(54,167,224,.2);
	transition: width .25s ease, opacity .25s ease;
}

.ip-acid-co2-arrows::after {
	top: 112px;
	width: 48px;
}

.ip-acid-co2-readouts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.ip-acid-co2-readouts span {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 12px;
	border-radius: 8px;
	background: #10202c;
	color: #dff6ff;
	font-weight: 850;
}

.ip-acid-co2-readouts strong {
	color: #fff;
	font-size: 1.16rem;
}

.ip-acid-co2-flow,
.ip-acid-co2-note {
	margin: 12px 0 0;
	padding: 11px 12px;
	border-radius: 8px;
	background: #f7fbfd;
	color: #355162;
	font-weight: 850;
	line-height: 1.4;
}

.ip-acid-co2-note {
	border-left: 5px solid var(--ip-green);
}

.ip-acid-co2-summary {
	display: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
	padding: 14px;
	border: 1px solid rgba(22,160,133,.22);
	border-radius: 8px;
	background: #f0fdf8;
}

.ip-acid-co2-summary.is-visible {
	display: grid;
}

.ip-acid-co2-summary p,
.ip-acid-co2-summary h4 {
	margin: 0;
	line-height: 1.45;
}

.ip-acid-co2-summary h4 {
	grid-column: 1 / -1;
	padding-top: 8px;
	color: #0f766e;
	text-align: center;
}

.ip-acid-co2-lab.is-respiratory .ip-acid-co2-card--resp,
.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met,
.ip-acid-co2-lab.is-final .ip-acid-co2-card {
	border-color: rgba(227,75,88,.35);
	box-shadow: 0 14px 32px rgba(227,75,88,.1);
	transform: translateY(-2px);
}

.ip-acid-co2-lab.is-respiratory .ip-acid-co2-card--resp .ip-acid-co2-lung i {
	animation-duration: 3.2s;
	transform: scale(.9);
}

.ip-acid-co2-lab.is-respiratory .ip-acid-co2-card--resp .ip-acid-co2-cloud,
.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-acid,
.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-acid {
	background: rgba(227,75,88,.24);
	transform: scale(1.18);
}

.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-lung i,
.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-lung i {
	animation-duration: .9s;
}

.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-arrows::before,
.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-arrows::after,
.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-arrows::before,
.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-arrows::after {
	opacity: 1;
	width: 92px;
}

.ip-acid-co2-lab.is-common-acid .ip-acid-co2-readouts strong,
.ip-acid-co2-lab.is-respiratory .ip-acid-co2-card--resp .ip-acid-co2-readouts strong,
.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-readouts strong,
.ip-acid-co2-lab.is-final .ip-acid-co2-readouts strong {
	color: #ffd166;
}

@keyframes ip-acid-lung {
	0%, 100% { transform: scale(.9); }
	45% { transform: scale(1.12); }
}

@media (max-width: 820px) {
	.ip-acid-co2-stage {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.ip-acid-co2-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.ip-acid-co2-lab {
		padding: 12px;
	}

	.ip-acid-co2-lab__header {
		margin-bottom: 12px;
	}

	.ip-acid-co2-lab__header h3 {
		font-size: 1.2rem;
	}

	.ip-acid-co2-lab__header p {
		font-size: .9rem;
	}

	.ip-acid-co2-lab__header::after {
		content: "Para verlo más grande, gira el móvil en horizontal.";
		display: block;
		margin-top: 8px;
		color: #587080;
		font-size: .78rem;
		font-weight: 800;
	}

	.ip-acid-co2-controls {
		justify-content: flex-start;
		margin-right: -12px;
		margin-left: -12px;
		padding: 0 12px 6px;
	}

	.ip-acid-co2-controls button {
		min-height: 34px;
		padding: 6px 9px;
		font-size: .76rem;
		white-space: nowrap;
	}

	.ip-acid-co2-stage {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.ip-acid-co2-card {
		padding: 9px;
	}

	.ip-acid-co2-card h4 {
		margin-bottom: 7px;
		font-size: .86rem;
		line-height: 1.15;
	}

	.ip-acid-co2-body {
		min-height: 128px;
	}

	.ip-acid-co2-lung {
		width: 86px;
		height: 72px;
		gap: 8px;
		padding: 15px;
	}

	.ip-acid-co2-lung i {
		border-width: 3px;
	}

	.ip-acid-co2-cloud,
	.ip-acid-co2-acid {
		left: 8px;
		bottom: 8px;
		width: 45px;
		height: 45px;
		font-size: .72rem;
	}

	.ip-acid-co2-readouts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		margin-top: 8px;
	}

	.ip-acid-co2-readouts span {
		display: grid;
		gap: 2px;
		padding: 8px 6px;
		font-size: .68rem;
	}

	.ip-acid-co2-readouts strong {
		font-size: .9rem;
	}

	.ip-acid-co2-flow,
	.ip-acid-co2-note {
		margin-top: 7px;
		padding: 8px;
		font-size: .72rem;
		line-height: 1.25;
	}

	.ip-acid-co2-arrows::before,
	.ip-acid-co2-arrows::after {
		right: 10px;
		top: 48px;
		width: 34px;
		height: 5px;
	}

	.ip-acid-co2-arrows::after {
		top: 70px;
		width: 24px;
	}

	.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-arrows::before,
	.ip-acid-co2-lab.is-metabolic .ip-acid-co2-card--met .ip-acid-co2-arrows::after,
	.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-arrows::before,
	.ip-acid-co2-lab.is-final .ip-acid-co2-card--met .ip-acid-co2-arrows::after {
		width: 44px;
	}

	.ip-acid-co2-summary {
		grid-template-columns: 1fr;
		padding: 10px;
		font-size: .82rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-acid-co2-lab *,
	.ip-acid-co2-lab *::before,
	.ip-acid-co2-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-autopeep-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 12% 8%, rgba(216,155,39,.14), transparent 28%),
		radial-gradient(circle at 88% 12%, rgba(227,75,88,.11), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-autopeep-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-autopeep-lab__kicker {
	margin: 0 0 8px;
	color: #9b6b17;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-autopeep-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-autopeep-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-autopeep-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
	gap: 18px;
	align-items: stretch;
}

.ip-autopeep-scene {
	position: relative;
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 50% 72%, rgba(227,75,88,.08), transparent 34%),
		linear-gradient(180deg, rgba(255,255,255,.9), rgba(238,248,251,.82)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.ip-autopeep-status {
	position: absolute;
	left: 18px;
	right: 18px;
	top: 18px;
	z-index: 4;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	padding: 14px;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
	box-shadow: 0 18px 32px rgba(16,32,44,.18);
}

.ip-autopeep-status span {
	display: grid;
	gap: 4px;
	color: rgba(234,249,255,.74);
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-autopeep-status strong {
	color: #fff;
	font-size: 1.08rem;
	text-transform: none;
}

.ip-autopeep-bronchus {
	position: absolute;
	left: 50%;
	top: 116px;
	z-index: 2;
	width: 96px;
	height: 260px;
	border: 6px solid #b7836d;
	border-radius: 999px;
	background: linear-gradient(90deg, #d8a78e, #efc9b7, #d8a78e);
	transform: translateX(-50%) scaleX(calc(1 - var(--ip-autopeep-level, .25) * .18));
	transition: transform .25s ease;
}

.ip-autopeep-bronchus i {
	position: absolute;
	left: 50%;
	top: 0;
	width: var(--ip-autopeep-lumen, 52%);
	height: 100%;
	border-radius: 999px;
	background: rgba(255,255,255,.42);
	transform: translateX(-50%);
	transition: width .25s ease;
}

.ip-autopeep-bronchus b,
.ip-autopeep-bronchus::before,
.ip-autopeep-bronchus::after {
	content: "";
	position: absolute;
	left: 50%;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(54,167,224,.62);
	filter: blur(.5px);
	transform: translateX(-50%);
	animation: ip-autopeep-flow var(--ip-autopeep-flow-duration, 2.7s) linear infinite;
}

.ip-autopeep-bronchus b { bottom: 18px; }
.ip-autopeep-bronchus::before { bottom: 72px; animation-delay: .6s; }
.ip-autopeep-bronchus::after { bottom: 128px; animation-delay: 1.2s; }

.ip-autopeep-alveolus {
	position: absolute;
	left: 50%;
	bottom: 54px;
	width: 250px;
	height: 250px;
	border: 7px solid #c58f77;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 35%, #f8d9ca, #e8bca7 70%);
	box-shadow: inset 0 -12px 28px rgba(0,0,0,.08), 0 18px 34px rgba(16,32,44,.12);
	transform: translateX(-50%) scale(var(--ip-autopeep-scale, 1.08));
	transition: transform .25s ease;
}

.ip-autopeep-alveolus i {
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(124,92,255,.5);
	box-shadow: 0 0 16px rgba(124,92,255,.22);
}

.ip-autopeep-alveolus i:nth-child(1) { left: 30%; top: 34%; }
.ip-autopeep-alveolus i:nth-child(2) { left: 54%; top: 48%; }
.ip-autopeep-alveolus i:nth-child(3) { left: 42%; top: 64%; }

.ip-autopeep-trapped {
	position: absolute;
	left: calc(50% + 128px);
	bottom: 220px;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(124,92,255,.88);
	color: #fff;
	font-weight: 900;
	box-shadow: 0 16px 28px rgba(124,92,255,.22);
	animation: ip-autopeep-trapped 2s ease-in-out infinite;
}

.ip-autopeep-panel {
	display: grid;
	align-content: start;
	gap: 14px;
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-autopeep-panel label {
	color: #1f3b4d;
	font-weight: 900;
}

.ip-autopeep-panel input[type="range"] {
	width: 100%;
	accent-color: var(--ip-amber);
}

.ip-autopeep-panel article {
	padding: 16px;
	border-radius: 8px;
	background: #f7fbfd;
}

.ip-autopeep-panel h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-autopeep-panel p {
	margin: 0;
	color: #355162;
	line-height: 1.65;
}

.ip-autopeep-steps {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin-top: 18px;
}

.ip-autopeep-steps article,
.ip-autopeep-images figure {
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 24px rgba(16,32,44,.07);
}

.ip-autopeep-steps article {
	padding: 14px;
}

.ip-autopeep-steps span {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: #1f3b4d;
	color: #fff;
	font-size: .82rem;
	font-weight: 900;
}

.ip-autopeep-steps strong {
	display: block;
	margin-bottom: 8px;
	color: #1f3b4d;
	line-height: 1.25;
}

.ip-autopeep-steps p {
	margin: 0;
	color: #355162;
	line-height: 1.45;
}

.ip-autopeep-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 18px;
}

.ip-autopeep-images figure {
	margin: 0;
	overflow: hidden;
}

.ip-autopeep-images img {
	display: block;
	width: 100%;
	height: auto;
}

.ip-autopeep-lab.is-autopeep-severe .ip-autopeep-status strong {
	color: #ffd166;
}

@keyframes ip-autopeep-flow {
	0% { bottom: 18px; opacity: 0; transform: translateX(-50%) scale(.72); }
	22% { opacity: .8; }
	100% { bottom: 92%; opacity: 0; transform: translateX(-50%) scale(1.06); }
}

@keyframes ip-autopeep-trapped {
	0%, 100% { transform: translateY(0) scale(.95); }
	50% { transform: translateY(-8px) scale(1.06); }
}

@media (max-width: 980px) {
	.ip-autopeep-grid,
	.ip-autopeep-steps,
	.ip-autopeep-images {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-autopeep-lab {
		padding: 16px;
	}

	.ip-autopeep-scene {
		min-height: 640px;
	}

	.ip-autopeep-status {
		grid-template-columns: 1fr;
	}

	.ip-autopeep-bronchus {
		top: 190px;
	}

	.ip-autopeep-alveolus {
		width: 220px;
		height: 220px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-autopeep-lab *,
	.ip-autopeep-lab *::before,
	.ip-autopeep-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-vtfr-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 4%, rgba(54,167,224,.13), transparent 28%),
		radial-gradient(circle at 92% 12%, rgba(124,92,255,.11), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-vtfr-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-vtfr-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-vtfr-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-vtfr-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-vtfr-curve {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	padding-top: 28px;
}

.ip-vtfr-curve::before {
	content: "";
	position: absolute;
	left: 8%;
	right: 8%;
	top: 18px;
	height: 88px;
	border-top: 6px solid rgba(54,167,224,.44);
	border-radius: 50% 50% 0 0;
	pointer-events: none;
}

.ip-vtfr-point {
	position: relative;
	padding: 62px 18px 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-vtfr-point span {
	position: absolute;
	left: 50%;
	top: 0;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border: 5px solid #fff;
	border-radius: 50%;
	background: var(--ip-blue);
	box-shadow: 0 12px 24px rgba(16,32,44,.14);
	transform: translate(-50%, -15%);
}

.ip-vtfr-point span::before,
.ip-vtfr-point span::after {
	content: "";
	position: absolute;
	width: 11px;
	height: 24px;
	border: 3px solid #fff;
	border-radius: 999px;
}

.ip-vtfr-point span::before { left: 11px; }
.ip-vtfr-point span::after { right: 11px; }

.ip-vtfr-point--slow span { background: var(--ip-amber); animation: ip-vtfr-slow 2.9s ease-in-out infinite; }
.ip-vtfr-point--sweet span { background: var(--ip-green); animation: ip-vtfr-good 1.8s ease-in-out infinite; }
.ip-vtfr-point--fast span { background: var(--ip-purple); animation: ip-vtfr-fast .7s ease-in-out infinite; }

.ip-vtfr-point h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	letter-spacing: 0;
	text-align: center;
}

.ip-vtfr-point p {
	margin: 0;
	color: #355162;
	line-height: 1.6;
	text-align: center;
}

.ip-vtfr-rule {
	margin-top: 18px;
	padding: 16px 18px;
	border: 1px solid rgba(22,160,133,.28);
	border-left: 5px solid var(--ip-green);
	border-radius: 8px;
	background: #f0fffb;
	color: #234b44;
	line-height: 1.65;
}

.ip-vtfr-rule p {
	margin: 0 0 10px;
}

.ip-vtfr-rule p:last-child {
	margin-bottom: 0;
}

.ip-vtfr-image {
	margin: 18px 0 0;
	overflow: hidden;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-vtfr-image img {
	display: block;
	width: 100%;
	height: auto;
}

@keyframes ip-vtfr-slow {
	0%, 100% { transform: translate(-50%, -15%) scale(.88); }
	50% { transform: translate(-50%, -15%) scale(1.02); }
}

@keyframes ip-vtfr-good {
	0%, 100% { transform: translate(-50%, -15%) scale(.92); }
	50% { transform: translate(-50%, -15%) scale(1.14); }
}

@keyframes ip-vtfr-fast {
	0%, 100% { transform: translate(-50%, -15%) scale(.94); }
	50% { transform: translate(-50%, -15%) scale(1.08); }
}

@media (max-width: 980px) {
	.ip-vtfr-curve {
		grid-template-columns: 1fr;
		padding-top: 0;
	}

	.ip-vtfr-curve::before {
		display: none;
	}

	.ip-vtfr-point {
		padding-top: 18px;
		padding-left: 84px;
	}

	.ip-vtfr-point span {
		left: 24px;
		top: 50%;
		transform: translateY(-50%);
	}

	.ip-vtfr-point h4,
	.ip-vtfr-point p {
		text-align: left;
	}
}

@media (max-width: 620px) {
	.ip-vtfr-lab {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-vtfr-lab *,
	.ip-vtfr-lab *::before,
	.ip-vtfr-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-permissive-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	--ip-red: #e34b58;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 4%, rgba(124,92,255,.12), transparent 28%),
		radial-gradient(circle at 90% 12%, rgba(216,155,39,.13), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-permissive-lab__header {
	max-width: 850px;
	margin: 0 auto 24px;
	text-align: center;
}

.ip-permissive-lab__kicker {
	margin: 0 0 8px;
	color: #5b4bc4;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-permissive-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
	letter-spacing: 0;
}

.ip-permissive-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-permissive-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.ip-permissive-card {
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-permissive-card span {
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: #1f3b4d;
	color: #fff;
	font-weight: 900;
}

.ip-permissive-card--baseline span { background: var(--ip-blue); }
.ip-permissive-card--protect span { background: var(--ip-purple); }
.ip-permissive-card--watch span { background: var(--ip-green); }

.ip-permissive-card h4 {
	margin: 0 0 10px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-permissive-card p {
	margin: 0;
	color: #355162;
	line-height: 1.6;
}

.ip-permissive-context {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 18px;
}

.ip-permissive-context article {
	padding: 16px 18px;
	border: 1px solid rgba(22,160,133,.24);
	border-left: 5px solid var(--ip-green);
	border-radius: 8px;
	background: #f0fffb;
	box-shadow: 0 12px 28px rgba(16,32,44,.06);
}

.ip-permissive-context__danger {
	border-color: rgba(227,75,88,.26) !important;
	border-left-color: var(--ip-red) !important;
	background: #fff5f5 !important;
}

.ip-permissive-context h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
	letter-spacing: 0;
}

.ip-permissive-context p {
	margin: 0;
	color: #355162;
	line-height: 1.58;
}

.ip-permissive-spectrum {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid rgba(227,75,88,.24);
	border-left: 5px solid var(--ip-red);
	border-radius: 8px;
	background: #fff5f5;
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-permissive-spectrum p {
	margin: 0 0 8px;
	color: #355162;
	line-height: 1.65;
}

.ip-permissive-spectrum p:last-child {
	margin-bottom: 0;
}

.ip-permissive-spectrum strong {
	color: #7f1d1d;
}

.ip-permissive-warning {
	margin-top: 18px;
	padding: 16px 18px;
	border: 1px solid rgba(216,155,39,.34);
	border-left: 5px solid var(--ip-amber);
	border-radius: 8px;
	background: #fffaf0;
	color: #4d3820;
	line-height: 1.65;
}

@media (max-width: 980px) {
	.ip-permissive-grid,
	.ip-permissive-context {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-permissive-lab {
		padding: 16px;
	}
}

.ip-pressure-lab {
	--ip-ink: #10202c;
	--ip-muted: #587080;
	--ip-line: #d7e5ec;
	--ip-blue: #36a7e0;
	--ip-cyan: #6ee7f9;
	--ip-green: #16a085;
	--ip-purple: #7c5cff;
	--ip-amber: #d89b27;
	max-width: 1180px;
	margin: 30px auto;
	padding: 24px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background:
		radial-gradient(circle at 10% 0%, rgba(54,167,224,.16), transparent 28%),
		radial-gradient(circle at 90% 12%, rgba(124,92,255,.12), transparent 26%),
		linear-gradient(180deg, #f7fbfd 0%, #fff 58%, #f4f9fb 100%);
	box-shadow: 0 18px 46px rgba(16,32,44,.1);
	color: var(--ip-ink);
}

.ip-pressure-lab__header {
	max-width: 850px;
	margin: 0 auto 22px;
	text-align: center;
}

.ip-pressure-lab__kicker {
	margin: 0 0 8px;
	color: #2d6f86;
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ip-pressure-lab__header h3 {
	margin: 0 0 10px;
	font-size: clamp(1.45rem, 1.2rem + .8vw, 2.05rem);
	line-height: 1.18;
}

.ip-pressure-lab__header p:last-child {
	margin: 0;
	color: var(--ip-muted);
	line-height: 1.65;
}

.ip-pressure-steps,
.ip-pressure-toolbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 12px;
}

.ip-pressure-steps button,
.ip-pressure-toolbar button {
	min-height: 38px;
	border: 1px solid rgba(88,112,128,.2);
	border-radius: 8px;
	background: #fff;
	color: #1f3b4d;
	font-weight: 900;
	cursor: pointer;
}

.ip-pressure-steps button {
	padding: 8px 12px;
}

.ip-pressure-toolbar button {
	padding: 8px 14px;
	background: #f7fbfd;
}

.ip-pressure-steps button.is-active {
	background: #1f3b4d;
	color: #fff;
}

.ip-pressure-stage {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
	gap: 18px;
	align-items: stretch;
}

.ip-pressure-scene,
.ip-pressure-panel,
.ip-pressure-summary article,
.ip-pressure-footer {
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.9);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-pressure-scene {
	overflow: hidden;
	padding: 16px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.9), rgba(238,248,251,.82)),
		repeating-linear-gradient(90deg, rgba(88,112,128,.06), rgba(88,112,128,.06) 1px, transparent 1px, transparent 46px);
}

.ip-pressure-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	min-height: 330px;
}

.ip-pressure-side {
	position: relative;
	overflow: hidden;
	padding: 14px;
	border: 1px solid rgba(88,112,128,.16);
	border-radius: 8px;
	background: rgba(255,255,255,.74);
	perspective: 800px;
}

.ip-pressure-side h4 {
	margin: 0 0 6px;
	color: #1f3b4d;
}

.ip-pressure-side p {
	margin: 0;
	color: #355162;
	line-height: 1.4;
	font-size: .9rem;
}

.ip-pressure-lung {
	position: absolute;
	left: 50%;
	bottom: 54px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 26px;
	width: 190px;
	height: 170px;
	padding: 36px 34px 24px;
	border-radius: 46% 46% 42% 42%;
	background: linear-gradient(180deg, rgba(231,246,252,.94), rgba(201,231,242,.78));
	box-shadow: inset 0 18px 38px rgba(255,255,255,.68), 0 22px 38px rgba(16,32,44,.14);
	transform: translateX(-50%) rotateX(5deg);
}

.ip-pressure-lung span {
	border: 4px solid #2578a8;
	border-radius: 70px;
	background: radial-gradient(circle at 50% 54%, rgba(110,231,249,.58), transparent 42%), linear-gradient(180deg, #fff, #b1e2f1);
	animation: ip-pressure-breathe var(--ip-pressure-ti, 1s) ease-in-out infinite;
}

.ip-pressure-side--pinsp .ip-pressure-lung span {
	border-color: var(--ip-purple);
}

.ip-pressure-vent {
	position: absolute;
	right: 12px;
	bottom: 18px;
	display: grid;
	place-items: center;
	width: 78px;
	height: 104px;
	border-radius: 8px;
	background: #1f3b4d;
	color: #fff;
	font-weight: 900;
	box-shadow: 0 16px 28px rgba(16,32,44,.18);
}

.ip-pressure-circuit {
	position: absolute;
	right: 82px;
	bottom: 112px;
	width: 32%;
	height: 50px;
	border-top: 10px solid rgba(54,167,224,.36);
	border-left: 10px solid rgba(54,167,224,.36);
	border-radius: 48px 0 0 0;
}

.ip-pressure-side--pinsp .ip-pressure-circuit {
	border-color: rgba(124,92,255,.34);
}

.ip-pressure-curves {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 14px;
}

.ip-pressure-curves div {
	padding: 12px;
	border-radius: 8px;
	background: rgba(16,32,44,.92);
	color: #eaf9ff;
}

.ip-pressure-curves strong {
	display: block;
	margin-bottom: 6px;
	font-size: .82rem;
	text-transform: uppercase;
}

.ip-pressure-curves svg {
	width: 100%;
	height: 110px;
}

.ip-pressure-curves line {
	stroke: rgba(234,249,255,.25);
	stroke-width: 2;
}

.ip-pressure-curves path {
	fill: none;
	stroke: var(--ip-cyan);
	stroke-width: 5;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: d .25s ease;
}

.ip-pressure-panel {
	padding: 18px;
}

.ip-pressure-panel h4 {
	margin: 0 0 8px;
	color: #1f3b4d;
}

.ip-pressure-panel p {
	margin: 0 0 14px;
	color: #355162;
	line-height: 1.6;
}

.ip-pressure-readouts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 14px;
}

.ip-pressure-readouts span {
	padding: 10px;
	border-radius: 8px;
	background: #f7fbfd;
	color: var(--ip-muted);
	font-size: .78rem;
	font-weight: 900;
}

.ip-pressure-readouts strong {
	display: block;
	margin-top: 4px;
	color: #1f3b4d;
	font-size: 1.2rem;
}

.ip-pressure-controls {
	display: grid;
	gap: 10px;
}

.ip-pressure-controls label,
.ip-pressure-brand label {
	display: grid;
	gap: 5px;
	color: #1f3b4d;
	font-size: .86rem;
	font-weight: 900;
}

.ip-pressure-controls input,
.ip-pressure-controls select {
	width: 100%;
	accent-color: var(--ip-blue);
}

.ip-pressure-controls select {
	min-height: 36px;
	border: 1px solid rgba(88,112,128,.28);
	border-radius: 8px;
	background: #fff;
}

.ip-pressure-brand {
	display: grid;
	gap: 8px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--ip-line);
}

.ip-pressure-brand label {
	display: flex;
	align-items: center;
}

.ip-pressure-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 18px;
}

.ip-pressure-summary article {
	padding: 16px;
}

.ip-pressure-summary strong {
	display: block;
	margin-bottom: 6px;
	color: #1f3b4d;
}

.ip-pressure-summary span {
	color: #355162;
	line-height: 1.5;
}

.ip-pressure-footer {
	margin-top: 18px;
	padding: 16px;
	text-align: center;
}

.ip-pressure-footer p {
	margin: 0 0 8px;
	color: #1f3b4d;
	font-weight: 900;
}

.ip-pressure-footer small {
	color: var(--ip-muted);
}

.ip-pressure-lab[data-pressure-mode="pinsp"] .ip-pressure-curves path {
	stroke: #b5a7ff;
}

.ip-pressure-lab.is-paused .ip-pressure-lung span {
	animation-play-state: paused;
}

@keyframes ip-pressure-breathe {
	0%, 100% { transform: scale(.88); }
	45% { transform: scale(1.14); }
}

@media (max-width: 980px) {
	.ip-pressure-stage,
	.ip-pressure-split,
	.ip-pressure-curves,
	.ip-pressure-summary {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.ip-pressure-lab {
		padding: 16px;
	}

	.ip-pressure-readouts {
		grid-template-columns: 1fr;
	}

	.ip-pressure-side {
		min-height: 320px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ip-pressure-lab *,
	.ip-pressure-lab *::before,
	.ip-pressure-lab *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

.ip-pressure-lab[data-pressure-ready="1"] {
	padding: 24px;
}

.ip-pressure-lab[data-pressure-ready="1"] .ip-pressure-layout {
	display: grid;
	gap: 18px;
}

.ip-pressure-card {
	padding: 18px;
	border: 1px solid rgba(88,112,128,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.88);
	box-shadow: 0 12px 28px rgba(16,32,44,.08);
}

.ip-pressure-card--main {
	background:
		radial-gradient(circle at 8% 8%, rgba(54,167,224,.13), transparent 28%),
		linear-gradient(180deg, rgba(255,255,255,.94), rgba(247,251,253,.9));
}

.ip-pressure-card__head {
	max-width: 860px;
	margin-bottom: 14px;
}

.ip-pressure-card__head h4 {
	margin: 0 0 6px;
	color: #10202c;
	font-size: clamp(1.08rem, 1rem + .45vw, 1.45rem);
	letter-spacing: 0;
}

.ip-pressure-card__head p {
	margin: 0;
	color: #587080;
	line-height: 1.55;
}

.ip-pressure-wave,
.ip-pressure-mini {
	border: 1px solid rgba(88,112,128,.16);
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,247,250,.88));
}

.ip-pressure-wave {
	padding: 10px;
}

.ip-pressure-wave svg,
.ip-pressure-mini svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.ip-pressure-wave text,
.ip-pressure-mini text {
	fill: #355162;
	font-size: 18px;
	font-weight: 850;
}

.ip-pressure-axis {
	fill: none;
	stroke: rgba(16,32,44,.24);
	stroke-width: 3;
	stroke-linecap: round;
}

.ip-pressure-gridline {
	fill: none;
	stroke: rgba(54,167,224,.34);
	stroke-width: 2;
	stroke-dasharray: 8 7;
}

.ip-pressure-gridline--epap {
	stroke: rgba(22,160,133,.45);
}

.ip-pressure-main-curve {
	fill: none;
	stroke: #1f5fbf;
	stroke-width: 8;
	stroke-linejoin: round;
	stroke-linecap: round;
	filter: drop-shadow(0 8px 12px rgba(31,95,191,.18));
	transition: d 220ms ease;
}

[data-pressure-support-fill] {
	fill: url("#ip-pressure-support-fill");
	stroke: rgba(22,160,133,.2);
	stroke-width: 2;
	transition: y 220ms ease, height 220ms ease;
}

.ip-pressure-metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.ip-pressure-metrics span {
	display: grid;
	gap: 4px;
	min-height: 58px;
	padding: 12px;
	border: 1px solid rgba(54,167,224,.18);
	border-radius: 8px;
	background: #fff;
	color: #587080;
	font-weight: 850;
}

.ip-pressure-metrics strong {
	color: #10202c;
	font-size: 1.25rem;
}

.ip-pressure-controls {
	display: grid;
	gap: 12px;
	margin-top: 14px;
}

.ip-pressure-controls--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ip-pressure-controls label {
	display: grid;
	gap: 7px;
	color: #1f3b4d;
	font-weight: 900;
}

.ip-pressure-controls input[type="range"] {
	width: 100%;
	accent-color: #36a7e0;
}

.ip-pressure-translation {
	margin: 14px 0 0;
	padding: 13px 14px;
	border: 1px solid rgba(216,155,39,.3);
	border-left: 5px solid #d89b27;
	border-radius: 8px;
	background: #fffaf0;
	color: #4d3820;
	font-weight: 780;
	line-height: 1.5;
}

.ip-pressure-mini-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ip-pressure-mini {
	padding: 12px;
}

.ip-pressure-mini strong {
	display: block;
	margin-bottom: 6px;
	color: #10202c;
	font-size: .95rem;
	text-transform: uppercase;
}

.ip-pressure-exp-flow {
	fill: none;
	stroke: rgba(54,167,224,.55);
	stroke-width: 10;
	stroke-linecap: round;
}

.ip-pressure-mini-pressure {
	fill: none;
	stroke-width: 8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: d 220ms ease;
}

.ip-pressure-mini-pressure--epap {
	stroke: #16a085;
}

.ip-pressure-mini-pressure--peep {
	stroke: #e34b58;
}

.ip-pressure-lab[data-pressure-ready="1"] .ip-pressure-footer {
	margin-top: 16px;
}

@media (max-width: 720px) {
	.ip-pressure-lab[data-pressure-ready="1"] {
		padding: 14px;
	}

	.ip-pressure-card {
		padding: 14px;
	}

	.ip-pressure-wave {
		padding: 6px;
	}

	.ip-pressure-metrics,
	.ip-pressure-controls--two,
	.ip-pressure-mini-grid {
		grid-template-columns: 1fr;
	}

	.ip-pressure-metrics {
		gap: 8px;
	}

	.ip-pressure-metrics span {
		min-height: 0;
		padding: 10px;
	}

	.ip-pressure-wave text,
	.ip-pressure-mini text {
		font-size: 15px;
	}
}
