@charset "UTF-8";
/* CSS Document */

/* base
------------------------------------------------------------ */
html {
	margin: 0;
	padding: 0;

	background: #fbfaf6;

	overscroll-behavior: none;
}

body {
	margin: 0;

	background: #fbfaf6;
	color: #171714;

	font-family: "Cutive Mono", monospace;
	font-weight: 100;
	font-style: normal;

	overscroll-behavior: none;
}

body.index-page {
	min-height: 100vh;
}

.mb20 {
	margin-bottom: 20px;
}


/* common layout
------------------------------------------------------------ */
.index-wrap {
	width: min(760px, calc(100% - 40px));
	min-height: 100vh;

	margin: 0 auto;
	padding: 40px;

	box-sizing: border-box;
}


/* header
------------------------------------------------------------ */
.index-title {
	display: flex;
	align-items: center;
	gap: 30px;
}

.index-logo {
	display: block;
	width: 80px;
	height: 80px;
	flex: 0 0 80px;
	object-fit: contain;
}

.index-title-text {
	min-width: 0;
}

.index-title h1 {
	margin: 0;

	color: #171714;

	font-size: clamp(16px, 3vw, 32px);
	font-weight: 300;

	white-space: nowrap;
}

.index-title h1 a,
.index-title > a {
	color: inherit;

	text-decoration: none;
}

.index-title .lead {
	margin: 4px 0 0;

	color: #34342f;
}


/* footer
------------------------------------------------------------ */
.index-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 30px;

	margin-top: 64px;
	padding: 0;
}

.footer-nav {
	display: flex;
	flex-wrap: wrap;

	gap: 12px 30px;
}

.footer-nav a {
	color: #66645d;

	font-size: 12px;
	letter-spacing: 0.08em;

	text-decoration: none;

	transition: color 0.2s ease;
}

.footer-nav a:hover {
	color: #79951c;
}

.footer-copy {
	margin: 0;

	color: #8c897f;

	font-size: 10px;
	letter-spacing: 0.08em;

	white-space: nowrap;
}


/* pages
------------------------------------------------------------ */
.about-content {
	width: min(680px, 100%);

	margin-top: 40px;
}

.page-section {
	margin: 0 0 40px;

	color: #79951c;

	font-size: 12px;
}

.about-block {
	padding: 32px 0;

	border-top: 1px solid #aaa69a;
}

.about-block:last-child {
	border-bottom: 1px solid #aaa69a;
}

.about-block h2 {
	margin: 0 0 24px;

	color: #171714;

	font-family: "Cutive Mono", monospace;
	font-size: 16px;
	font-weight: 300;
	letter-spacing: 0.08em;
}

.about-block p {
	margin: 0 0 14px;

	color: #56544e;

	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Helvetica Neue",
		"Yu Gothic",
		"YuGothic",
		"Meiryo",
		sans-serif;

	font-size: 14px;
	font-weight: 400;
	line-height: 2;
}

.about-block p:last-child {
	margin-bottom: 0;
}


/* smartphone
------------------------------------------------------------ */
@media (max-width: 768px) {

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

		background: #fbfaf6;
	}

	body.index-page {
		overflow-x: hidden;
		overflow-y: auto;
	}
}


/* title smartphone
------------------------------------------------------------ */
@media (max-width: 600px) {

	.index-title {
		gap: 14px;

		padding-right: 0;
	}

	.index-logo {
		width: 58px;
		height: 58px;

		flex-basis: 58px;
	}

	.index-title h1 {
		font-size: 18px;
	}

	.index-title .lead {
		margin-top: 2px;

		font-size: 11px;
	}
}


/* very small smartphone
------------------------------------------------------------ */
@media (max-width: 480px) {

	.index-wrap {
		width: 100%;

		padding: 32px 24px;
	}

	.index-footer {
		margin-top: 48px;

		gap: 16px;
	}

	.footer-nav {
		gap: 10px 16px;
	}

	.footer-nav a {
		font-size: 9px;
	}

	.footer-copy {
		font-size: 8px;
	}

	.about-content {
		margin-top: 64px;
	}

	.page-section {
		margin-bottom: 24px;
	}

	.about-block {
		padding: 26px 0;
	}

	.about-block h2 {
		margin-bottom: 18px;

		font-size: 14px;
	}

	.about-block p {
		font-size: 13px;
		line-height: 1.9;
	}
}