/* BioMyst Login Gate — v1.0.0 */

/* Theme reset only for the gate page (body has the .biomyst-login-gate-page class) */
body.biomyst-login-gate-page { margin:0; }
body.biomyst-login-gate-page #wpadminbar { display:none !important; }
html.biomyst-login-gate-page,
body.biomyst-login-gate-page { margin-top:0 !important; }

/* Theme containers that might wrap content — let the gate fill the viewport */
.biomyst-login-gate-page .site-header,
.biomyst-login-gate-page .site-footer,
.biomyst-login-gate-page header.site-header,
.biomyst-login-gate-page footer.site-footer { display:none; }
.biomyst-login-gate-page .entry-header,
.biomyst-login-gate-page .page-title,
.biomyst-login-gate-page .entry-title { display:none; }
.biomyst-login-gate-page .entry-content,
.biomyst-login-gate-page .site-main,
.biomyst-login-gate-page .site-content,
.biomyst-login-gate-page main,
.biomyst-login-gate-page #page,
.biomyst-login-gate-page #content { padding:0 !important; margin:0 !important; max-width:none !important; width:100% !important; }

.biomyst-lg-wrap *,
.biomyst-lg-wrap *::before,
.biomyst-lg-wrap *::after { box-sizing:border-box; }

/* The [hidden] attribute must beat display:flex / inline-block below. */
.biomyst-lg-wrap [hidden] { display: none !important; }

.biomyst-lg-wrap {
	font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
	position:relative;
	min-height:100vh;
	width:100%;
	background:#EDF3F6;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	color:#0C2230;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
}

.biomyst-lg-wrap ::selection { background:rgba(18,175,203,0.18); }

/* Background layers */
.biomyst-lg-bg { position:absolute; inset:0; pointer-events:none; }
.biomyst-lg-bg__dots {
	position:absolute; inset:0;
	background-image: radial-gradient(rgba(18,175,203,0.09) 1px, transparent 1.5px);
	background-size: 26px 26px;
}
.biomyst-lg-bg__glow { position:absolute; }
.biomyst-lg-bg__glow--top {
	top:-360px; left:50%; transform:translateX(-50%);
	width:1100px; height:760px;
	background: radial-gradient(ellipse at center, rgba(63,208,230,0.30), rgba(63,208,230,0) 62%);
	filter: blur(8px);
}
.biomyst-lg-bg__glow--bottom {
	bottom:-300px; left:-160px;
	width:620px; height:620px;
	background: radial-gradient(circle at center, rgba(18,175,203,0.14), rgba(18,175,203,0) 64%);
}
.biomyst-lg-bg__hex {
	position:absolute; top:-150px; right:-160px;
	opacity:0.5;
}

/* Top bar */
.biomyst-lg-topbar {
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:12px;
	padding: clamp(18px,4vw,26px) clamp(18px,5vw,40px);
}
.biomyst-lg-brand { display:inline-block; line-height:0; }
.biomyst-lg-brand img { height:34px; width:auto; display:block; }

/* Logo lives above the hero copy on desktop, and in the top bar on mobile (where the aside is hidden). */
.biomyst-lg-brand--aside  { display:inline-block; margin-bottom:22px; }
.biomyst-lg-brand--aside img { height:42px; }
.biomyst-lg-brand--mobile { display:none; }
@media (max-width:920px) {
	.biomyst-lg-brand--aside  { display:none; }
	.biomyst-lg-brand--mobile { display:inline-block; }
}
.biomyst-lg-back {
	display:inline-flex; align-items:center; gap:7px;
	text-decoration:none; font-size:13px; color:#5A6671; font-weight:500;
	transition:color .15s;
}
.biomyst-lg-back:hover { color:#0C2230; }
.biomyst-lg-back span { font-family:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace; }

/* Main / two-column */
.biomyst-lg-main {
	position:relative;
	flex:1;
	display:flex;
	align-items:center;
	justify-content:center;
	gap: clamp(36px,6vw,76px);
	flex-wrap:wrap;
	padding: 20px clamp(16px,4vw,24px) 40px;
}

/* Aside (hero copy) */
.biomyst-lg-aside { width:432px; max-width:100%; }
.biomyst-lg-eyebrow {
	font-family:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size:11px; letter-spacing:.18em; text-transform:uppercase;
	color:#12AFCB; margin-bottom:18px;
}
.biomyst-lg-headline {
	font-size: clamp(30px, 3.4vw, 40px);
	font-weight:600; color:#0C2230;
	letter-spacing:-.022em; line-height:1.1;
	margin:0 0 18px; text-wrap:balance;
}
.biomyst-lg-lede {
	font-size:15px; line-height:1.6; color:#5A6671;
	max-width:384px; margin:0 0 36px;
}
.biomyst-lg-features { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:20px; max-width:404px; }
.biomyst-lg-features li { display:flex; gap:14px; align-items:flex-start; }
.biomyst-lg-features__icon {
	width:38px; height:38px; border-radius:10px;
	background: rgba(18,175,203,0.10);
	display:flex; align-items:center; justify-content:center;
	flex:none;
}
.biomyst-lg-features__title { font-size:14.5px; font-weight:600; color:#16323F; margin-bottom:3px; }
.biomyst-lg-features__sub { font-size:13px; line-height:1.5; color:#6A7780; }

@media (max-width:920px) { .biomyst-lg-aside { display:none; } }

/* Card */
.biomyst-lg-cardwrap { width:min(424px,100%); }
.biomyst-lg-card {
	background:#fff;
	border:1px solid #E7EEF1;
	border-radius:22px;
	box-shadow: 0 32px 70px -34px rgba(12,34,48,0.34), 0 2px 6px rgba(12,34,48,0.04);
	overflow:hidden;
}
.biomyst-lg-card--centered { margin:0 auto; }
.biomyst-lg-card__bar { height:3px; background: linear-gradient(90deg,#12AFCB,#3FD0E6); }
.biomyst-lg-card__body { padding: clamp(26px,6vw,38px) clamp(22px,6vw,40px) 30px; }
.biomyst-lg-card__body--center { text-align:center; }

.biomyst-lg-view { animation: biomyst-lg-rise .35s cubic-bezier(.2,.7,.2,1); }
.biomyst-lg-center { text-align:center; }

.biomyst-lg-title {
	font-size:24px; font-weight:600; color:#0C2230;
	letter-spacing:-.015em; margin:0 0 6px;
}
.biomyst-lg-sub {
	font-size:13.5px; color:#6A7780; line-height:1.5;
	margin:0 0 26px;
}
.biomyst-lg-sub strong { color:#0C2230; font-weight:600; }

/* Social */
.biomyst-lg-social { display:flex; gap:10px; margin-bottom:22px; }
.biomyst-lg-social__btn {
	flex:1; height:46px;
	border:1px solid #E2E9ED; border-radius:11px; background:#fff;
	display:inline-flex; align-items:center; justify-content:center; gap:9px;
	font-size:13.5px; color:#243743; font-weight:500;
	font-family:inherit; cursor:pointer;
	transition:background .15s, border-color .15s, opacity .15s;
}
.biomyst-lg-social__btn:hover:not(:disabled) { background:#F7FAFB; border-color:#D2DBE0; }
.biomyst-lg-social__btn:disabled { cursor:not-allowed; opacity:.55; }

/* Divider */
.biomyst-lg-divider { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
.biomyst-lg-divider::before, .biomyst-lg-divider::after {
	content:""; flex:1; height:1px; background:#EAF0F3;
}
.biomyst-lg-divider span {
	font-family:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size:10px; letter-spacing:.1em; color:#A7B3BA;
}

/* Form */
.biomyst-lg-form { display:flex; flex-direction:column; gap:16px; }
.biomyst-lg-field { display:flex; flex-direction:column; }
.biomyst-lg-label-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:7px; }
.biomyst-lg-label {
	font-family:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size:10px; letter-spacing:.12em; text-transform:uppercase;
	color:#7C8A93; margin-bottom:7px;
	display:block;
}
.biomyst-lg-label-row .biomyst-lg-label { margin:0; }

.biomyst-lg-field input[type="email"],
.biomyst-lg-field input[type="password"],
.biomyst-lg-field input[type="text"] {
	width:100%; height:47px;
	border:1px solid #E2E9ED; border-radius:11px;
	padding:0 14px; font-size:14px; color:#0C2230;
	background:#fff; outline:none;
	font-family:inherit;
	transition:border-color .15s, box-shadow .15s;
}
.biomyst-lg-field input::placeholder { color:#AEBBC2; }
.biomyst-lg-field input:focus {
	border-color:#12AFCB;
	box-shadow:0 0 0 3px rgba(18,175,203,0.14);
}
.biomyst-lg-field.is-error input { border-color:#E5484D; }
.biomyst-lg-field.is-error input:focus { box-shadow:0 0 0 3px rgba(229,72,77,0.14); }

.biomyst-lg-toggle-pw {
	font-family:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size:10px; letter-spacing:.06em; text-transform:uppercase;
	color:#12AFCB; cursor:pointer;
	background:none; border:0; padding:0;
}
.biomyst-lg-toggle-pw:hover { color:#0E93AB; }

.biomyst-lg-error {
	font-size:11.5px; color:#E5484D;
	margin-top:6px;
	display:flex; align-items:center; gap:5px;
}
.biomyst-lg-error::before { content:"!"; font-weight:700; }
.biomyst-lg-error--form {
	background: rgba(229,72,77,0.08);
	border:1px solid rgba(229,72,77,0.18);
	border-radius:9px;
	padding:9px 12px;
	margin-top:0;
}

.biomyst-lg-caps {
	font-size:11.5px; color:#C68A12; margin-top:6px;
	display:flex; align-items:center; gap:5px;
}
.biomyst-lg-caps span { font-family:'IBM Plex Mono', ui-monospace, monospace; }

/* Row helpers */
.biomyst-lg-row { display:flex; align-items:center; gap:12px; }
.biomyst-lg-row--between { justify-content:space-between; }

.biomyst-lg-check { display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:12.5px; color:#5A6671; }
.biomyst-lg-check--top { align-items:flex-start; }
.biomyst-lg-check input { width:16px; height:16px; accent-color:#12AFCB; margin:0; flex:none; }
.biomyst-lg-check--top input { margin-top:2px; }
.biomyst-lg-check span { line-height:1.5; }

.biomyst-lg-link {
	background:none; border:0; padding:0;
	font: inherit; font-size:12.5px; color:#12AFCB; cursor:pointer; font-weight:500;
}
.biomyst-lg-link:hover { color:#0E93AB; text-decoration:underline; }
.biomyst-lg-link--strong { color:#12AFCB; font-weight:600; }

.biomyst-lg-back-link {
	display:inline-flex; align-items:center; gap:7px;
	background:none; border:0; padding:0; cursor:pointer;
	font-size:12.5px; color:#5A6671; font-weight:500;
	margin-bottom:18px;
}
.biomyst-lg-back-link:hover { color:#0C2230; }
.biomyst-lg-back-link span { font-family:'IBM Plex Mono', ui-monospace, monospace; }

.biomyst-lg-fineprint {
	font-size:11.5px; line-height:1.55; color:#7C8A93;
	margin:0;
}
.biomyst-lg-fineprint a { color:#12AFCB; text-decoration:none; }
.biomyst-lg-fineprint a:hover { text-decoration:underline; }

/* Buttons */
.biomyst-lg-btn {
	display:inline-flex; align-items:center; justify-content:center; gap:9px;
	height:49px; width:100%;
	border:0; border-radius:11px;
	font-weight:600; font-size:14px; font-family:inherit;
	letter-spacing:.01em;
	cursor:pointer;
	transition: background .15s, transform .05s;
	text-decoration:none;
}
.biomyst-lg-btn:active { transform: translateY(1px); }
.biomyst-lg-btn--primary { background:#12AFCB; color:#fff; }
.biomyst-lg-btn--primary:hover { background:#0E93AB; }
.biomyst-lg-btn--dark { background:#0C2230; color:#fff; height:44px; font-size:13.5px; }
.biomyst-lg-btn--dark:hover { background:#12AFCB; }
.biomyst-lg-btn--ghost {
	background:#fff; color:#0C2230;
	border:1px solid #E2E9ED;
	height:44px; font-size:13.5px;
}
.biomyst-lg-btn--ghost:hover { background:#F7FAFB; border-color:#D2DBE0; }
.biomyst-lg-btn[disabled] { opacity:.7; cursor:wait; }

.biomyst-lg-spinner {
	width:16px; height:16px;
	border:2px solid rgba(255,255,255,0.4);
	border-top-color:#fff;
	border-radius:50%;
	display:inline-block;
	animation: biomyst-lg-spin .7s linear infinite;
}

.biomyst-lg-foot {
	text-align:center; margin:22px 0 0;
	font-size:13px; color:#6A7780;
}

/* Strength meter */
.biomyst-lg-strength { margin-top:8px; display:flex; align-items:center; gap:10px; }
.biomyst-lg-strength__bar {
	flex:1; height:5px; border-radius:3px; background:#EAF0F3; overflow:hidden;
}
.biomyst-lg-strength__bar span {
	display:block; height:100%; width:0%;
	background:#E5484D;
	transition: width .25s, background .25s;
}
.biomyst-lg-strength__label {
	font-family:'IBM Plex Mono', ui-monospace, monospace;
	font-size:10px; letter-spacing:.08em; text-transform:uppercase;
	color:#7C8A93;
	min-width:48px; text-align:right;
}
.biomyst-lg-strength.is-1 .biomyst-lg-strength__bar span { width:25%;  background:#E5484D; }
.biomyst-lg-strength.is-2 .biomyst-lg-strength__bar span { width:50%;  background:#E29A2A; }
.biomyst-lg-strength.is-3 .biomyst-lg-strength__bar span { width:75%;  background:#3FB783; }
.biomyst-lg-strength.is-4 .biomyst-lg-strength__bar span { width:100%; background:#12AFCB; }

/* Pop / Trust */
.biomyst-lg-pop {
	width:60px; height:60px; border-radius:50%;
	background:rgba(18,175,203,0.12);
	display:flex; align-items:center; justify-content:center;
	margin:14px auto 20px;
	animation: biomyst-lg-pop .45s cubic-bezier(.2,.7,.2,1) both;
}
.biomyst-lg-pop--mail { margin-top:4px; }

.biomyst-lg-trust {
	display:flex; border-top:1px solid #EEF3F5; background:#FAFCFD;
}
.biomyst-lg-trust__item {
	flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
	padding:13px 6px;
	border-right:1px solid #EEF3F5;
}
.biomyst-lg-trust__item:last-child { border-right:0; }
.biomyst-lg-trust__item span {
	font-family:'IBM Plex Mono', ui-monospace, monospace;
	font-size:10px; letter-spacing:.04em; color:#5E6E77;
}

.biomyst-lg-disclaimer {
	margin: 18px 0 0;
	text-align:center;
	font-family:'IBM Plex Mono', ui-monospace, monospace;
	font-size:10px; line-height:1.6; letter-spacing:.02em; color:#92A0A8;
}

/* Footer */
.biomyst-lg-footer {
	position:relative;
	display:flex; align-items:center; justify-content:space-between;
	flex-wrap:wrap; gap:12px;
	padding:20px clamp(18px,5vw,40px);
	font-size:12px; color:#8A969C;
}
.biomyst-lg-copy { font-family:'IBM Plex Mono', ui-monospace, monospace; letter-spacing:.03em; }
.biomyst-lg-footer__nav { display:flex; gap:22px; }
.biomyst-lg-footer__nav a { color:#8A969C; text-decoration:none; }
.biomyst-lg-footer__nav a:hover { color:#0C2230; }

/* Logged-in state */
.biomyst-lg-loggedin__actions { display:flex; flex-direction:column; gap:10px; max-width:300px; margin:0 auto; }

/* Animations */
@keyframes biomyst-lg-spin { to { transform: rotate(360deg); } }
@keyframes biomyst-lg-rise { from { opacity:0; transform: translateY(14px); } to { opacity:1; transform: translateY(0); } }
@keyframes biomyst-lg-pop  { 0% { transform:scale(.6); opacity:0; } 60% { transform:scale(1.15); } 100% { transform:scale(1); opacity:1; } }

@media (prefers-reduced-motion: reduce) {
	.biomyst-lg-view, .biomyst-lg-pop, .biomyst-lg-spinner { animation:none !important; }
}

/* ------------------------------------------------------------------ *
 * Passwordless: researcher fields, the prominent log-in switch,
 * and the one-time code view.
 * ------------------------------------------------------------------ */

.biomyst-lg-select {
	width: 100%;
	height: 48px;
	padding: 0 38px 0 14px;
	border: 1px solid #E2E9ED;
	border-radius: 10px;
	background-color: #FBFCFD;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A969C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 13px center;
	background-size: 14px 14px;
	font: inherit;
	font-size: 14px;
	color: #0C2230;
	appearance: none;
	-webkit-appearance: none;
	outline: none;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}

.biomyst-lg-select:focus {
	border-color: #12AFCB;
	background-color: #fff;
	box-shadow: 0 0 0 3px rgba(18, 175, 203, .14);
}

.biomyst-lg-hint {
	margin: 12px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: #6A7780;
	text-align: center;
}

/* Secondary actions: a real button for the log-in switch, a quiet one for "code instead". */
.biomyst-lg-btn--outline {
	background: #fff;
	color: #0C2230;
	border: 1.5px solid #DCE4E8;
}

.biomyst-lg-btn--outline:hover {
	border-color: #12AFCB;
	color: #0E93AB;
}

.biomyst-lg-btn--ghost {
	background: transparent;
	color: #0E93AB;
	border: 1px dashed rgba(18, 175, 203, .55);
	margin-top: 10px;
	font-weight: 600;
}

.biomyst-lg-btn--ghost:hover {
	background: rgba(18, 175, 203, .06);
	border-style: solid;
}

.biomyst-lg-btn--compact {
	height: 44px;
	padding: 0 20px;
	width: auto;
	flex: none;
}

.biomyst-lg-altcta {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid #EEF3F5;
}

.biomyst-lg-altcta__text {
	font-size: 13.5px;
	color: #5A6671;
}

/* The code box: wide tracking so six digits read as six digits. */
.biomyst-lg-otp-input {
	width: 100%;
	height: 60px;
	text-align: center;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: .38em;
	text-indent: .38em;
	color: #0C2230;
}

.biomyst-lg-otp-input::placeholder {
	color: #C4CFD5;
	letter-spacing: .38em;
}

.biomyst-lg-otp-cooldown {
	margin-left: 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	color: #8A969C;
}

[data-otp-resend][disabled] {
	opacity: .5;
	cursor: not-allowed;
}

/* Belt and braces: an error slot with no message must never render its "!" marker. */
.biomyst-lg-error:empty { display: none; }

/* The compliance confirmations read as one block rather than loose checkboxes. */
.biomyst-lg-consent {
	display: flex;
	flex-direction: column;
	gap: 11px;
	padding: 14px 15px;
	background: #FAFCFD;
	border: 1px solid #E7EEF1;
	border-radius: 12px;
}

.biomyst-lg-consent__head {
	font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #7C8A93;
}

.biomyst-lg-consent .biomyst-lg-check { font-size: 12.5px; color: #3A4A54; }
.biomyst-lg-consent .biomyst-lg-error { margin-top: -4px; }

/* A ticked confirmation should feel acknowledged. */
.biomyst-lg-consent .biomyst-lg-check:has(input:checked) span { color: #0C2230; }

/* The marketing opt-in is optional, so it sits outside the block and reads lighter. */
.biomyst-lg-form > .biomyst-lg-check { color: #6A7780; }
