:root {

	--hm-user-primary: var(--wp--preset--color--primary, #2b6a71);
	--hm-user-primary-hover: var(--wp--preset--color--primary-hover, #1f4f55);
	--hm-user-ink: var(--wp--preset--color--foreground, #14262a);
	--hm-user-text: var(--wp--preset--color--contrast, #2c3c40);
	--hm-user-text-secondary: var(--wp--preset--color--contrast-2, #5a6a6e);
	--hm-user-text-meta: var(--wp--preset--color--contrast-3, #7c8a8d);
	--hm-user-paper: var(--wp--preset--color--base, #fff);
	--hm-user-page-bg: var(--wp--preset--color--base-2, #f5f6f5);
	--hm-user-accent: var(--wp--preset--color--accent, #b4553a);

	--hm-user-danger: var(--hm-user-accent);

	--hm-user-on-primary: #fff;
	--hm-user-on-danger: #fff;

	--hm-user-border-card: rgba(20, 38, 42, 0.08);
	--hm-user-border-hairline: rgba(20, 38, 42, 0.12);
	--hm-user-border-input: rgba(20, 38, 42, 0.16);

	--hm-user-error-bg: #f3e0d7;
	--hm-user-error-text: #8e3a1e;
	--hm-user-success-bg: #d5e6e4;
	--hm-user-success-text: #0f5c63;
	--hm-user-info-bg: #f6e7cc;
	--hm-user-info-text: #8a5f14;
	--hm-user-info-line: #e9a23b;

	--hm-user-radius-sm: var(--wp--custom--radius--sm, 12px);
	--hm-user-radius-md: var(--wp--custom--radius--md, 14px);
	--hm-user-radius-lg: var(--wp--custom--radius--lg, 18px);
	--hm-user-shadow-panel: var(--wp--custom--shadow--panel, 0 24px 60px -30px rgba(20, 38, 42, 0.45), 0 0 0 1px rgba(20, 38, 42, 0.08));

	--hm-user-font-heading: var(--wp--preset--font-family--heading, inherit);
	--hm-user-font-body: var(--wp--preset--font-family--body, inherit);
	--hm-user-font-mono: var(--wp--preset--font-family--mono, ui-monospace, monospace);
}

.hm-user-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.hm-user-btn {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: var(--hm-user-btn-height, 44px);
	padding: var(--hm-user-btn-padding, 0 18px);
	border: 1px solid var(--hm-user-btn-border, transparent);
	border-radius: var(--hm-user-btn-radius, var(--hm-user-radius-sm));
	font-family: var(--hm-user-font-body);
	font-size: var(--hm-user-btn-font-size, 14px);
	font-weight: var(--hm-user-btn-font-weight, 600);
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

@layer hm-user-defaults {
	.hm-user-btn {
		background: var(--hm-user-btn-bg, revert-layer);
		color: var(--hm-user-btn-text, revert-layer);
	}

	.hm-user-btn:hover {
		background: var(--hm-user-btn-hover-bg, var(--hm-user-btn-bg, revert-layer));
		color: var(--hm-user-btn-hover-text, var(--hm-user-btn-text, revert-layer));
	}
}

.hm-user-btn-cta {
	height: var(--hm-user-btn-cta-height, 52px);
	padding: var(--hm-user-btn-cta-padding, 0 26px);
	font-size: var(--hm-user-btn-cta-font-size, 15px);
	font-weight: var(--hm-user-btn-cta-font-weight, 700);
}

a.hm-user-btn:not(.hm-user-btn-primary, .hm-user-btn-outline, .hm-user-btn-accent, .hm-user-btn-danger) {
	color: var(--hm-user-btn-text, var(--hm-user-link, var(--hm-user-primary)));
}

a.hm-user-btn:not(.hm-user-btn-primary, .hm-user-btn-outline, .hm-user-btn-accent, .hm-user-btn-danger):hover {
	color: var(--hm-user-btn-hover-text, var(--hm-user-btn-text, var(--hm-user-link, var(--hm-user-primary))));
}

.hm-user-btn-primary,
a.hm-user-btn-primary {
	background: var(--hm-user-btn-primary-bg, var(--hm-user-primary));
	border-color: var(--hm-user-btn-primary-border, transparent);
	color: var(--hm-user-btn-primary-text, var(--hm-user-on-primary));
}

.hm-user-btn-primary:hover,
a.hm-user-btn-primary:hover {
	background: var(--hm-user-btn-primary-hover-bg, var(--hm-user-primary-hover));
	color: var(--hm-user-btn-primary-hover-text, var(--hm-user-on-primary));
}

.hm-user-btn-accent,
a.hm-user-btn-accent {
	background: var(--hm-user-btn-accent-bg, var(--hm-user-error-bg));
	border-color: var(--hm-user-btn-accent-border, transparent);
	color: var(--hm-user-btn-accent-text, var(--hm-user-danger));
}

.hm-user-btn-accent:hover {
	opacity: var(--hm-user-btn-accent-hover-opacity, 0.85);
}

a.hm-user-btn-accent:hover {
	color: var(--hm-user-btn-accent-text, var(--hm-user-danger));
}

.hm-user-btn-danger,
a.hm-user-btn-danger {
	background: var(--hm-user-btn-danger-bg, var(--hm-user-danger));
	border-color: var(--hm-user-btn-danger-border, transparent);
	color: var(--hm-user-btn-danger-text, var(--hm-user-on-danger));
}

.hm-user-btn-danger:hover,
a.hm-user-btn-danger:hover {
	background: var(--hm-user-btn-danger-hover-bg, var(--hm-user-error-text));
	color: var(--hm-user-btn-danger-hover-text, var(--hm-user-on-danger));
}

.hm-user-btn-outline,
a.hm-user-btn-outline {
	background: var(--hm-user-btn-outline-bg, transparent);
	border-color: var(--hm-user-btn-outline-border, var(--hm-user-border-input));
	color: var(--hm-user-btn-outline-text, var(--hm-user-ink));
}

.hm-user-btn-outline:hover {
	background: var(--hm-user-btn-outline-hover-bg, var(--hm-user-page-bg));
}

a.hm-user-btn-outline:hover {
	color: var(--hm-user-btn-outline-text, var(--hm-user-ink));
}

.hm-user-btn:focus-visible {
	outline: 2px solid var(--hm-user-primary);
	outline-offset: 2px;
}

.hm-user-btn-danger:focus-visible {
	outline-color: var(--hm-user-danger);
}

.hm-user-btn .hm-user-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.hm-user-btn[aria-disabled="true"] {
	opacity: 0.6;
	cursor: not-allowed;
}

.hm-user-btn.is-busy::before {
	content: "";
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: hm-user-spin 0.6s linear infinite;
}

.hm-user-btn.is-checking::before {
	content: "";
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("../icons/key.svg") no-repeat center / contain;
	mask: url("../icons/key.svg") no-repeat center / contain;
	transform-origin: 29% 71%;
	animation: hm-user-key-rock 1.1s ease-in-out infinite;
}

.hm-user-btn.is-busy .hm-user-icon,
.hm-user-btn.is-checking .hm-user-icon {
	display: none;
}

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

@keyframes hm-user-key-rock {
	0%,
	100% {
		transform: rotate(-14deg);
	}

	50% {
		transform: rotate(14deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hm-user-btn.is-busy::before {
		animation-duration: 2s;
	}

	.hm-user-btn.is-checking::before {
		animation-name: hm-user-key-rock-reduced;
		animation-duration: 2.4s;
	}

	@keyframes hm-user-key-rock-reduced {
		0%,
		100% {
			transform: rotate(-5deg);
		}

		50% {
			transform: rotate(5deg);
		}
	}
}

.hm-user-input {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: var(--hm-user-input-height, 50px);
	padding: var(--hm-user-input-padding, 9px 14px);
	border: var(--hm-user-input-border, 1px solid var(--hm-user-border-input));
	border-radius: var(--hm-user-input-radius, var(--hm-user-radius-sm));
	background: var(--hm-user-input-bg, var(--hm-user-paper));
	color: var(--hm-user-input-text, var(--hm-user-text));
	font-family: var(--hm-user-font-body);
	font-size: var(--hm-user-input-font-size, 0.95em);
}

.hm-user-input:focus {
	outline: var(--hm-user-input-focus-ring, 2px solid var(--hm-user-primary));
	outline-offset: var(--hm-user-input-focus-offset, 1px);
	border-color: var(--hm-user-input-focus-border-color, transparent);
}

.hm-user-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 16px;
}

.hm-user-password {
	position: relative;
	display: block;
}

.hm-user-password .hm-user-input {
	padding-right: 48px;
}

.hm-user-password-toggle {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	border-radius: var(--hm-user-radius-sm);
	background: transparent;
	color: var(--hm-user-text-meta);
	cursor: pointer;
}

.hm-user-password-toggle:hover {
	color: var(--hm-user-ink);
}

.hm-user-password-toggle:focus-visible {
	outline: 2px solid var(--hm-user-primary);
	outline-offset: -2px;
}

.hm-user-password-toggle svg {
	width: 20px;
	height: 20px;
}

.hm-user-field label {
	font-weight: var(--hm-user-label-font-weight, 600);
	font-size: var(--hm-user-label-font-size, 0.9em);
	color: var(--hm-user-ink);
}

.hm-user-checkbox-field label {
	display: block;
	position: relative;
	padding-left: 1.75em;
	font-weight: 400;
}

.hm-user-checkbox-field input[type="checkbox"] {
	position: absolute;
	top: 0.2em;
	left: 0;
	margin: 0;
}

@layer hm-user-defaults {
	.hm-user-checkbox-field label {
		line-height: var(--hm-user-checkbox-line-height, revert-layer);
	}
}

.hm-user-pref {
	min-width: 0;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}

.hm-user-pref-legend {
	padding: 0;
	font-weight: var(--hm-user-legend-font-weight, var(--hm-user-label-font-weight, 600));
	font-size: var(--hm-user-legend-font-size, var(--hm-user-label-font-size, 0.9em));
	color: var(--hm-user-ink);
}

.hm-user-pref-choice,
.hm-user-pref-check {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 34px;
	font-weight: 400;
}

.hm-user-field .hm-user-pref-choice,
.hm-user-field .hm-user-pref-check {
	font-weight: 400;
}

.hm-user-pref-choice input[type="radio"],
.hm-user-pref-check input[type="checkbox"] {
	flex-shrink: 0;
	margin: 0;
}

.hm-user-pref-group {
	min-width: 0;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}

.hm-user-pref-group-legend {
	padding: 0 0 8px;
	font-weight: var(--hm-user-legend-font-weight, var(--hm-user-label-font-weight, 600));
	font-size: var(--hm-user-legend-font-size, var(--hm-user-label-font-size, 0.9em));
	color: var(--hm-user-ink);
}

.hm-user-pref-child {
	margin-left: 26px;
}

.hm-user-pref-child.is-suppressed {
	opacity: 0.55;
}

.hm-user-pref-select {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 16px;
}

.hm-user-pref-detected {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	font-size: 0.85em;
	color: var(--hm-user-text-secondary);
}

.hm-user-pref-detected button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--hm-user-primary);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.hm-user-pref-detected button:focus-visible {
	outline: 2px solid var(--hm-user-primary);
	outline-offset: 2px;
}

.hm-user-account-card {
	max-width: var(--hm-user-card-width, 480px);
	padding: var(--hm-user-card-padding, 28px);
	background: var(--hm-user-card-bg, var(--hm-user-paper));
	border: var(--hm-user-card-border, 1px solid var(--hm-user-border-card));
	border-radius: var(--hm-user-card-radius, var(--hm-user-radius-lg));
	box-shadow: var(--hm-user-card-shadow, var(--hm-user-shadow-panel));
}

@layer hm-user-defaults {
	.hm-user-account-card,
	.hm-user-login-notice {
		margin-inline: var(--hm-user-card-margin-inline, revert-layer);
		margin-block: var(--hm-user-card-margin-block, revert-layer);
	}

	.hm-user-login-notice {
		padding: var(--hm-user-login-notice-padding, revert-layer);
		background: var(--hm-user-login-notice-bg, revert-layer);
		border-radius: var(--hm-user-login-notice-radius, revert-layer);
	}
}

.hm-user-login-split {
	max-width: var(--hm-user-card-split-width, 880px);
}

@media (min-width: 782px) {
	.hm-user-login-split {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 32px;
		align-items: start;
	}
}

.hm-user-login-aside {
	margin-bottom: 24px;
}

@media (min-width: 782px) {
	.hm-user-login-aside {
		margin-bottom: 0;
	}
}

.hm-user-login-extra {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--hm-user-border-hairline);
}

.hm-user-account-notice {
	margin: 0 0 20px;
	padding: var(--hm-user-notice-padding, 12px 14px);
	border-radius: var(--hm-user-notice-radius, 0 var(--hm-user-radius-sm) var(--hm-user-radius-sm) 0);
	border-left: var(--hm-user-notice-line-width, 4px) solid;
	font-size: var(--hm-user-notice-font-size, 0.92em);
	font-weight: var(--hm-user-notice-font-weight, 600);
}

.hm-user-account-notice-error {
	background: var(--hm-user-error-bg);
	border-left-color: var(--hm-user-danger);
	color: var(--hm-user-error-text);
}

.hm-user-account-notice-success {
	background: var(--hm-user-success-bg);
	border-left-color: var(--hm-user-primary);
	color: var(--hm-user-success-text);
}

.hm-user-account-notice-info {
	background: var(--hm-user-info-bg);
	border-left-color: var(--hm-user-info-line);
	color: var(--hm-user-info-text);
}

.hm-user-account-form .hm-user-btn-cta {
	width: 100%;
}

.hm-user-account-hint {
	font-size: var(--hm-user-hint-font-size, 0.85em);
	color: var(--hm-user-text-secondary);
	font-weight: var(--hm-user-hint-font-weight, 400);
}

.hm-user-account-separator {
	height: 0;
	margin: 20px 0;
	border: 0;
	border-top: 1px solid var(--hm-user-border-hairline);
}

.hm-user-account-heading {
	margin: 0 0 12px;
	font-family: var(--hm-user-font-heading);
	font-size: var(--hm-user-heading-font-size, 1.25em);
	color: var(--hm-user-ink);
}

@layer hm-user-defaults {
	.hm-user-account-heading,
	.hm-user-subscriptions-heading,
	.hm-user-subscriptions-kind {
		font-weight: var(--hm-user-heading-font-weight, revert-layer);
	}
}

.hm-user-account-links {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 20px;
	font-size: 0.9em;
	font-weight: 600;
}

.hm-user-account-links a {
	color: var(--hm-user-link, var(--hm-user-primary));
	text-decoration: none;
}

.hm-user-account-links a:hover {
	text-decoration: underline;
}

.hm-user-account-resend {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--hm-user-border-hairline);
}

.hm-user-login-notice {
	max-width: var(--hm-user-card-width, 480px);
}

.hm-user-profile-header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
}

.hm-user-profile-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--hm-user-success-bg);
	color: var(--hm-user-success-text);
	font-family: var(--hm-user-font-heading);
	font-size: 17px;
	font-weight: 700;
}

.hm-user-profile-identity {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.hm-user-profile-name {
	font-family: var(--hm-user-font-heading);
	font-weight: var(--hm-user-profile-name-font-weight, 700);
	font-size: var(--hm-user-profile-name-font-size, 16px);
	color: var(--hm-user-ink);
}

.hm-user-profile-email {
	font-family: var(--hm-user-font-mono);
	font-size: var(--hm-user-profile-email-font-size, 11px);
	color: var(--hm-user-text-meta);
	overflow-wrap: anywhere;
}

@layer hm-user-defaults {
	.hm-user-profile-name {
		line-height: var(--hm-user-profile-name-line-height, revert-layer);
	}

	.hm-user-profile-email {
		font-weight: var(--hm-user-profile-email-font-weight, revert-layer);
	}
}

.hm-user-profile-menu {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px;
	margin-bottom: 20px;
	background: var(--hm-user-menu-bg, var(--hm-user-page-bg));
	border-radius: var(--hm-user-menu-radius, var(--hm-user-radius-md));
}

.hm-user-profile-menu-toggle > summary {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 48px;
	padding: 0 10px;
	border-radius: var(--hm-user-menu-item-radius, var(--hm-user-radius-sm));
	font-family: var(--hm-user-font-body);
	font-size: var(--hm-user-menu-item-font-size, 15px);
	font-weight: var(--hm-user-menu-item-font-weight, 600);
	color: var(--hm-user-text);
	cursor: pointer;
	list-style: none;
}

.hm-user-profile-menu-toggle > summary::-webkit-details-marker {
	display: none;
}

.hm-user-profile-menu-toggle > summary:hover {
	background: var(--hm-user-menu-item-hover-bg, var(--hm-user-paper));
}

.hm-user-profile-menu-chevron {
	margin-left: auto;
	color: var(--hm-user-text-meta);
	transition: transform 0.15s ease;
}

.hm-user-profile-menu-toggle[open] > summary .hm-user-profile-menu-chevron {
	transform: rotate(180deg);
}

.hm-user-profile-menu-form,
.hm-user-profile-menu-body {
	padding: 4px 10px 12px;
}

.hm-user-subscriptions {
	padding: 4px 10px 12px;
}

.hm-user-subscriptions-heading,
.hm-user-subscriptions-kind {
	margin: 16px 0 8px;
	font-family: var(--hm-user-font-heading);
	color: var(--hm-user-ink);
}

.hm-user-subscriptions-heading {
	font-size: 1.05em;
}

.hm-user-subscriptions-kind {
	font-size: 0.95em;
}

.hm-user-subscriptions-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hm-user-subscriptions-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	padding: 10px 0;
	border-top: 1px solid var(--hm-user-border-hairline);
}

.hm-user-subscriptions-title {
	flex: 1 1 12em;
	min-width: 0;
	overflow-wrap: anywhere;
	color: var(--hm-user-text);
}

.hm-user-subscriptions-since {
	flex: 1 1 100%;
	order: 3;
	font-size: 0.85em;
	color: var(--hm-user-text-meta);
}

.hm-user-subscriptions-form {
	margin: 0;
}

.hm-user-subscriptions-pages {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: 12px;
	color: var(--hm-user-text-secondary);
}

.hm-user-profile-admin,
.hm-user-profile-logout {
	display: flex;
	width: 100%;
	margin-top: 20px;
}

.hm-user-account-danger {
	margin-top: 20px;
	text-align: center;
	font-size: 0.85em;
}

.hm-user-account-danger a {
	color: var(--hm-user-text-meta);
	text-decoration: underline;
}

.hm-user-account-danger a:hover {
	color: var(--hm-user-danger);
}

.hm-user-account-section {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--hm-user-border-hairline);
}

.hm-user-account-section > summary {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	list-style: none;
	font-family: var(--hm-user-font-heading);
	font-size: var(--hm-user-section-summary-font-size, 1.1em);
	font-weight: var(--hm-user-section-summary-font-weight, 600);
	color: var(--hm-user-ink);
}

.hm-user-account-section > summary::-webkit-details-marker {
	display: none;
}

.hm-user-account-section > summary .hm-user-icon {
	margin-left: auto;
	color: var(--hm-user-text-meta);
	transition: transform 0.15s ease;
}

.hm-user-account-section[open] > summary .hm-user-icon {
	transform: rotate(180deg);
}

.hm-user-account-section > summary + * {
	margin-top: 16px;
}

.hm-user-turnstile {
	margin-bottom: 16px;
}

.hm-user-turnstile-hint[hidden] {
	display: none;
}

.hm-user-turnstile-hint,
.hm-user-noscript-notice {
	margin: 0 0 16px;
	padding: var(--hm-user-notice-padding, 12px 14px);
	border-radius: var(--hm-user-notice-radius, 0 var(--hm-user-radius-sm) var(--hm-user-radius-sm) 0);
	border-left: var(--hm-user-notice-line-width, 4px) solid var(--hm-user-info-line);
	background: var(--hm-user-info-bg);
	color: var(--hm-user-info-text);
	font-size: var(--hm-user-notice-font-size, 0.92em);
}
