/* Neutrope Project Desk front gateway. */

:root {
	--npd-gateway-blue: #1f66d1;
	--npd-gateway-blue-dark: #124a9e;
	--npd-gateway-green: #1e9d67;
	--npd-gateway-ink: #17304f;
	--npd-gateway-muted: #61758d;
	--npd-gateway-panel: rgba(255, 255, 255, 0.9);
	--npd-gateway-line: rgba(31, 102, 209, 0.18);
	--npd-gateway-shadow: 0 28px 70px rgba(23, 48, 79, 0.18);
        /*
         * DIN 2014 is supplied by Adobe Fonts.
         * Japanese glyphs use the Japanese/system fallback stack.
         */
        --npd-gateway-latin-font: "din-2014", "DIN 2014", "Segoe UI", Arial, sans-serif;
        --npd-gateway-body-font: "din-2014", "DIN 2014", "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", sans-serif;
}

* {
	box-sizing: border-box;
}

html,
body {
	min-height: 100%;
}

body.npd-gateway-body {
	margin: 0;
	color: var(--npd-gateway-ink);
	background:
		radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.95) 0 9rem, transparent 22rem),
		radial-gradient(circle at 83% 84%, rgba(30, 157, 103, 0.16) 0 8rem, transparent 24rem),
		linear-gradient(145deg, #e9f3ff 0%, #f7fbff 48%, #eaf8f1 100%);
	font-family: var(--npd-gateway-body-font);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.npd-gateway {
	display: grid;
	min-height: 100vh;
	min-height: 100svh;
	padding: clamp(24px, 6vw, 72px);
	place-items: center;
}

.npd-gateway-card {
	position: relative;
	width: min(100%, 780px);
	padding: clamp(36px, 7vw, 72px);
	overflow: hidden;
	text-align: center;
	background: var(--npd-gateway-panel);
	border: 1px solid rgba(255, 255, 255, 0.88);
	border-radius: 36px;
	box-shadow: var(--npd-gateway-shadow);
	backdrop-filter: blur(18px);
}

.npd-gateway-card::before,
.npd-gateway-card::after {
	position: absolute;
	z-index: -1;
	width: 190px;
	height: 190px;
	content: "";
	border-radius: 56px;
	transform: rotate(22deg);
}

.npd-gateway-card::before {
	top: -112px;
	right: -72px;
	background: rgba(31, 102, 209, 0.11);
}

.npd-gateway-card::after {
	bottom: -126px;
	left: -66px;
	background: rgba(30, 157, 103, 0.11);
}

.npd-gateway-mark {
	display: grid;
	width: clamp(112px, 20vw, 160px);
	aspect-ratio: 1;
	margin: 0 auto 22px;
	background: #fff;
	border: 1px solid var(--npd-gateway-line);
	border-radius: 50%;
	box-shadow: 0 14px 34px rgba(31, 102, 209, 0.16);
	place-items: center;
}

.npd-gateway-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.npd-gateway-eyebrow {
	margin: 0 0 14px;
	color: var(--npd-gateway-blue);
	font-family: var(--npd-gateway-latin-font);
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.24em;
}

.npd-gateway h1 {
	margin: 0;
	font-family: var(--npd-gateway-latin-font);
	font-size: clamp(2.35rem, 5.15vw, 3.85rem);
	font-weight: 700;
	letter-spacing: -0.038em;
	line-height: 1.04;
}

.npd-gateway-lead {
	max-width: 32rem;
	margin: 22px auto 30px;
	color: var(--npd-gateway-muted);
	font-size: clamp(1rem, 2.2vw, 1.22rem);
	line-height: 1.8;
}

.npd-gateway-actions {
	width: min(100%, 420px);
	margin: 0 auto;
}

.npd-gateway-button {
	display: inline-flex;
	min-height: 58px;
	padding: 0 30px;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: var(--npd-gateway-body-font);
	font-weight: 400;
	letter-spacing: -0.01em;
	text-decoration: none;
	background: linear-gradient(135deg, var(--npd-gateway-blue), var(--npd-gateway-blue-dark));
	border: 0;
	border-radius: 18px;
	box-shadow: 0 15px 30px rgba(31, 102, 209, 0.25);
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.npd-gateway-button:hover,
.npd-gateway-button:focus-visible {
	color: #fff;
	box-shadow: 0 19px 38px rgba(31, 102, 209, 0.32);
	transform: translateY(-2px);
}

.npd-gateway-button:focus-visible {
	outline: 4px solid rgba(30, 157, 103, 0.35);
	outline-offset: 4px;
}

.npd-gateway-social-login {
	margin-top: 18px;
}

.npd-gateway-social-login .nslg-login {
	margin: 0;
}

.npd-gateway-social-login .nslg-divider {
	display: flex;
	margin: 18px 0;
	gap: 14px;
	align-items: center;
	color: var(--npd-gateway-muted);
	font-size: 0.76rem;
}

.npd-gateway-social-login .nslg-divider::before,
.npd-gateway-social-login .nslg-divider::after {
	flex: 1;
	height: 1px;
	content: "";
	background: var(--npd-gateway-line);
}

.npd-gateway-social-login .nslg-button,
.npd-gateway-social-login .nslg-button:visited {
	display: flex;
	width: 100%;
	min-height: 54px;
	margin: 10px 0 0;
	padding: 0 22px;
	gap: 12px;
        align-items: center;
	justify-content: center;
	color: var(--npd-gateway-blue-dark) !important;
	font-family: var(--npd-gateway-body-font);
	font-weight: 400;
	text-decoration: none;
	background: rgba(255, 255, 255, 0.96) !important;
	border: 1px solid rgba(23, 48, 79, 0.16);
	border-radius: 16px;
	box-shadow: 0 9px 22px rgba(23, 48, 79, 0.09);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

/*
 * Google sign-in mark.
 * Loaded from the plugin-owned local brand asset.
 */
.npd-gateway-social-login .nslg-button::before {
        display: block;
        flex: 0 0 20px;
        width: 20px;
        height: 20px;
        content: "";
        background-image: url("../images/brand/google-g.svg");
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
}

.npd-gateway-social-login .nslg-button:hover:not(:disabled):not([aria-disabled="true"]),
.npd-gateway-social-login .nslg-button:focus:not(:disabled):not([aria-disabled="true"]),
.npd-gateway-social-login .nslg-button:focus-visible:not(:disabled):not([aria-disabled="true"]) {
	color: var(--npd-gateway-blue-dark) !important;
	background: #f7fbff !important;
	border-color: rgba(31, 102, 209, 0.45);
	box-shadow: 0 13px 28px rgba(23, 48, 79, 0.14);
	transform: translateY(-1px);
}

.npd-gateway-social-login .nslg-button:focus-visible:not(:disabled):not([aria-disabled="true"]) {
	outline: 4px solid rgba(30, 157, 103, 0.28);
	outline-offset: 3px;
}

.npd-gateway-social-login .nslg-privacy,
.npd-gateway-social-login .nslg-notice {
	margin: 16px 0 0;
	color: var(--npd-gateway-muted);
	font-size: 0.72rem;
	line-height: 1.65;
}

.npd-gateway-social-login .nslg-privacy a {
	color: var(--npd-gateway-blue-dark);
}

.npd-gateway-social-login .nslg-notice {
	padding: 12px 14px;
	text-align: left;
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid var(--npd-gateway-line);
	border-radius: 12px;
}

.npd-gateway-session {
	margin: 20px 0 0;
	color: var(--npd-gateway-muted);
	font-size: 0.88rem;
	line-height: 1.65;
}

.npd-gateway-footer {
	display: flex;
	margin-top: 42px;
	padding-top: 20px;
	gap: 10px 20px;
	align-items: center;
	justify-content: space-between;
	color: var(--npd-gateway-muted);
	font-family: var(--npd-gateway-latin-font);
	font-size: 0.75rem;
	letter-spacing: 0.01em;
	border-top: 1px solid var(--npd-gateway-line);
}

@media (max-width: 560px) {
	.npd-gateway {
		padding: 16px;
	}

	.npd-gateway-card {
		padding: 34px 22px 26px;
		border-radius: 26px;
	}

	.npd-gateway h1 {
		font-size: clamp(2.15rem, 12vw, 3rem);
	}

	.npd-gateway-button {
		width: 100%;
	}

	.npd-gateway-footer {
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.npd-gateway-button,
	.npd-gateway-social-login .nslg-button {
		transition: none;
	}
}
