/* ================= GTR Age Gate ================= */

.gtr-age-gate {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: linear-gradient(135deg, #eef3fb 0%, #f6f9f7 55%, #eaf5ef 100%);
	overflow: hidden;
}
.gtr-age-gate.is-visible { animation: gtr-ag-fade .3s ease both; }
@keyframes gtr-ag-fade { from { opacity: 0; } to { opacity: 1; } }

html.gtr-ag-locked, html.gtr-ag-locked body { overflow: hidden !important; }

/* Floating background */
.gtr-ag-bg { position: absolute; inset: 0; pointer-events: none; }

.gtr-ag-vial,
.gtr-ag-blob {
	position: absolute;
	opacity: .5;
	filter: blur(6px);
	animation: gtr-ag-float linear infinite;
	will-change: transform;
}
.gtr-ag-vial {
	width: 120px;
	height: auto;
	opacity: .62;
	filter: blur(5px) drop-shadow(0 0 22px rgba(74, 132, 214, .55));
}
.gtr-ag-blob {
	width: 70px; height: 150px;
	border-radius: 16px;
	background: linear-gradient(180deg, #cdd8ee 0%, #eef2f8 40%, #f6f8fb 100%);
	box-shadow: 0 10px 30px rgba(80, 110, 160, .18);
}
.gtr-ag-blob::before {
	content: ""; position: absolute; top: -10px; left: 18px; right: 18px; height: 22px;
	border-radius: 6px; background: #7f93bf;
}

/* Scatter + timing per item */
/* Blob fallback positions (used only when no vial URLs are set) */
.gtr-ag-blob--0 { left: 4%;  bottom: -20%; animation-duration: 26s; animation-delay: 0s; }
.gtr-ag-blob--1 { left: 20%; bottom: -30%; animation-duration: 32s; animation-delay: 4s; }
.gtr-ag-blob--2 { left: 46%; bottom: -25%; animation-duration: 29s; animation-delay: 8s; }
.gtr-ag-blob--3 { left: 68%; bottom: -35%; animation-duration: 34s; animation-delay: 2s; }
.gtr-ag-blob--4 { left: 82%; bottom: -20%; animation-duration: 28s; animation-delay: 6s; }
.gtr-ag-blob--5 { left: 92%; bottom: -30%; animation-duration: 31s; animation-delay: 10s; }

@keyframes gtr-ag-float {
	0%   { transform: translateY(0) rotate(-2deg); }
	100% { transform: translateY(-160vh) rotate(3deg); }
}

/* Card */
.gtr-ag-card {
	position: relative;
	z-index: 2;
	width: min(560px, 100%);
	background: #fff;
	border-radius: 22px;
	padding: 44px 48px 30px;
	box-shadow: 0 30px 80px rgba(30, 50, 90, .16);
	text-align: center;
}
.gtr-ag-logo { max-height: 60px; width: auto; margin: 0 auto 20px; display: block; }

.gtr-ag-title { margin: 0 0 10px; font-size: 30px; font-weight: 800; color: #0d1b2a; }
.gtr-ag-sub { margin: 0 auto 26px; max-width: 40ch; color: #6a7484; font-size: 16px; line-height: 1.5; }

/* Confirm rows */
.gtr-ag-check {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	width: 100%;
	text-align: left;
	background: #f7f9fb;
	border: 1px solid #eef1f5;
	border-radius: 14px;
	padding: 18px 18px;
	margin-bottom: 16px;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease;
	font: inherit;
	color: #4a5464;
	line-height: 1.45;
}
.gtr-ag-check:hover { border-color: #d5dced; }
.gtr-ag-check strong { color: #0d1b2a; font-weight: 700; }
.gtr-ag-check-text { font-size: 15px; }

.gtr-ag-box {
	flex: 0 0 auto;
	width: 26px; height: 26px;
	border: 2px solid #c6cedd;
	border-radius: 8px;
	background: #fff;
	position: relative;
	transition: border-color .18s ease, background .18s ease;
	margin-top: 1px;
}
.gtr-ag-check.is-checked { border-color: #7fb2e6; background: #f0f7ff; }
.gtr-ag-check.is-checked .gtr-ag-box { background: #3f83d6; border-color: #3f83d6; }
.gtr-ag-check.is-checked .gtr-ag-box::after {
	content: ""; position: absolute; left: 8px; top: 3px;
	width: 6px; height: 12px; border: solid #fff; border-width: 0 3px 3px 0;
	transform: rotate(45deg);
}

/* Enter button */
.gtr-ag-enter {
	width: 100%;
	border: 0;
	border-radius: 14px;
	padding: 18px;
	margin-top: 8px;
	font-size: 18px;
	font-weight: 700;
	color: #8a929e;
	background: linear-gradient(90deg, #b9d3f0 0%, #bfe6dd 100%);
	cursor: not-allowed;
	transition: color .2s ease, box-shadow .2s ease, filter .2s ease;
}
.gtr-ag-enter.is-ready {
	color: #fff;
	cursor: pointer;
	background: linear-gradient(90deg, #3f83d6 0%, #35c39a 100%);
	box-shadow: 0 12px 26px rgba(53, 130, 200, .3);
}
.gtr-ag-enter.is-ready:hover { filter: brightness(1.04); }

.gtr-ag-decline {
	display: inline-block;
	margin: 16px auto 4px;
	color: #6a7484;
	font-size: 15px;
	text-decoration: underline;
}
.gtr-ag-decline:hover { color: #0d1b2a; }

.gtr-ag-foot { margin: 18px 0 0; color: #aab2bd; font-size: 13px; }

@media (max-width: 560px) {
	.gtr-ag-card { padding: 34px 24px 26px; border-radius: 18px; }
	.gtr-ag-title { font-size: 25px; }
}

@media (prefers-reduced-motion: reduce) {
	.gtr-ag-vial, .gtr-ag-blob { animation: none; }
	.gtr-age-gate.is-visible { animation: none; }
}
