@font-face {
	font-family: "Inter";
	src: url("../fonts/Inter-Bold.ttf") format("truetype");
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans SC";
	src: url("../fonts/NotoSansSC-Medium-subset.ttf") format("truetype");
	font-style: normal;
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans SC";
	src: url("../fonts/NotoSansSC-Bold-subset.ttf") format("truetype");
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Basel Grotesk";
	src: url("../fonts/Basel-Grotesk-Medium.woff2") format("woff2");
	font-style: normal;
	font-weight: 500;
	font-display: swap;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	min-height: 100%;
	background: #f4f4f2;
	color: #323232;
	font-family: "Basel Grotesk", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	font-weight: 500;
}

button,
input {
	font: inherit;
}

img {
	display: block;
	max-width: 100%;
}

.scan-page {
	width: min(100%, 790px);
	margin: 0 auto;
	background: #ffffff;
	overflow: hidden;
}

.page-content {
	padding: clamp(21px, 5.44vw, 43px) clamp(16px, 4.18vw, 33px) 0;
}

.brand-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.fizo-logo {
	width: clamp(80px, 20.25vw, 160px);
	height: auto;
}

.account-entry {
	width: clamp(25px, 6.33vw, 50px);
	height: clamp(25px, 6.33vw, 50px);
}

.hero-title {
	max-width: 90%;
	margin: clamp(20px, 4.18vw, 33px) 0 0;
	font-family: Inter, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(20px, 5.06vw, 40px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.hero-visual {
	position: relative;
	height: clamp(235px, 59.5vw, 470px);
	margin-top: clamp(30px, 6.33vw, 50px);
}

.hero-image {
	position: absolute;
	top: 0;
	left: 1%;
	width: 62%;
	height: 100%;
	object-fit: contain;
}

.hero-description {
	position: absolute;
	right: 0;
	bottom: 1%;
	width: 55%;
	margin: 0;
	font-size: clamp(9px, 2.28vw, 18px);
	line-height: 1.25;
	text-align: right;
}

.feature-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 10.5vw, 83px);
	margin-top: clamp(59px, 14.94vw, 118px);
}

.feature-card {
	min-width: 0;
}

.feature-title,
.feature-body {
	margin: 0;
	font-size: clamp(9px, 2.28vw, 18px);
	line-height: 1.25;
	text-align: left;
}

.feature-image-shell {
	position: relative;
	display: flex;
	align-items: center;
	height: clamp(80px, 20.13vw, 159px);
	margin-top: clamp(7px, 1.77vw, 14px);
}

.feature-image-shell::after {
	position: absolute;
	top: 8%;
	left: 2%;
	width: 11%;
	height: 24%;
	background: #ffffff;
	content: "";
}

.feature-card:last-child .feature-image-shell {
	height: clamp(71px, 17.97vw, 142px);
	margin-top: clamp(11px, 2.66vw, 21px);
}

.feature-card:last-child .feature-image-shell::after {
	top: 18%;
	height: 31%;
}

.feature-image {
	width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.feature-body {
	margin-top: clamp(7px, 1.77vw, 14px);
}

.scan-section {
	margin-top: clamp(61px, 15.44vw, 122px);
}

.scan-heading {
	margin: 0;
	font-family: Inter, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(18px, 4.05vw, 32px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.scan-button {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	width: 100%;
	height: clamp(50px, 12.53vw, 99px);
	margin-top: clamp(17px, 3.8vw, 30px);
	padding: 0 clamp(14px, 3.42vw, 27px) 0 clamp(10px, 2.53vw, 20px);
	border: 1px solid #111111;
	background: #ffffff;
	color: #111111;
	cursor: pointer;
}

.scan-button:hover {
	background: #f4f4f2;
}

.scan-button:focus-visible {
	outline: 3px solid #e3ff42;
	outline-offset: 3px;
}

.volumental-logotype {
	width: clamp(39px, 9.75vw, 77px);
	height: auto;
	justify-self: start;
}

.scan-button-label {
	font-size: clamp(18px, 4.05vw, 32px);
	line-height: 1;
	white-space: nowrap;
}

.scan-arrow {
	width: clamp(12px, 2.91vw, 23px);
	height: auto;
	justify-self: end;
}

.scan-demo {
	position: relative;
	margin: clamp(18px, 4.56vw, 36px) auto 0;
	width: 100%;
	height: clamp(214px, 54.18vw, 428px);
}

.scan-demo-image {
	width: clamp(214px, 54.18vw, 428px);
	height: 100%;
	margin: 0 auto;
	object-fit: contain;
}

.scan-duration {
	position: absolute;
	right: 0;
	bottom: clamp(5px, 1.27vw, 10px);
	margin: 0;
	font-size: clamp(12px, 3.04vw, 24px);
	line-height: 1.35;
}

.site-footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	height: clamp(67px, 16.84vw, 133px);
	padding: 0 clamp(10px, 2.53vw, 20px) clamp(7px, 1.77vw, 14px);
	background: #323232;
}

.powered-by {
	width: clamp(122px, 30.89vw, 244px);
	height: auto;
}

.copyright {
	margin: 0;
	color: #ffffff;
	font-size: clamp(8px, 1.9vw, 15px);
	line-height: 1.35;
	text-align: right;
}

.volumental-runtime,
.utility-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	op: 0;
	left: 0;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	clip-path: inset(50%);
}

.visual-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.nickname-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(12, 12, 12, 0.52);
	backdrop-filter: blur(4px);
}

.nickname-modal.is-open {
	display: flex;
}

.nickname-modal-panel {
	width: min(100%, 430px);
	overflow: hidden;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 24px 80px rgba(17, 17, 17, 0.2);
}

.nickname-modal-title {
	padding: 24px 28px 0;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
}

.nickname-modal-body {
	padding: 20px 28px 28px;
}

.nickname-modal-body .layui-input {
	height: 52px;
	padding: 0 16px;
	border: 1px solid #d4d4d4;
	border-radius: 14px;
	font-size: 18px;
}

.nickname-modal-tip {
	display: block;
	min-height: 24px;
	padding-top: 12px;
	color: #666666;
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
}

.nickname-modal-actions {
	display: flex;
	justify-content: center;
	padding-top: 10px;
}

.nickname-modal-actions .layui-btn {
	min-width: 120px;
	height: 44px;
	padding: 0 24px;
	border-radius: 999px;
	background: #111111;
	font-size: 16px;
	font-weight: 600;
}

@media (max-width: 480px) {
	.hero-title[lang="en"],
	html[lang="en"] .hero-title {
		max-width: 100%;
		font-size: 19px;
	}

	.nickname-modal-title {
		font-size: 22px;
	}
}
