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

html {
	scroll-behavior: smooth;
}

body.krs-body {
	margin: 0;
	background: var(--krs-bg);
	color: var(--krs-ink);
	font-family: var(--krs-font);
	font-size: 1.05rem;
	font-weight: 400;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

html[lang="ja"] body.krs-body,
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4,
html[lang="ja"] .krs-display {
	font-family: "Noto Sans JP", var(--krs-font);
	letter-spacing: 0;
}

html[lang="zh-CN"] body.krs-body,
html[lang="zh-CN"] h1,
html[lang="zh-CN"] h2,
html[lang="zh-CN"] h3,
html[lang="zh-CN"] h4,
html[lang="zh-CN"] .krs-display {
	font-family: "Noto Sans SC", var(--krs-font);
	letter-spacing: 0;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--krs-green);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--krs-green-dark);
}

:focus-visible {
	outline: 2px solid var(--krs-green);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
.krs-display {
	margin: 0 0 0.5em;
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.035em;
	color: var(--krs-ink);
}

h1,
.krs-display {
	font-size: clamp(2.35rem, 5.2vw, 4.1rem);
	font-weight: 500;
	max-width: 16ch;
}

h2 {
	font-size: clamp(2rem, 4vw, 3.15rem);
	font-weight: 500;
	max-width: 20ch;
}

h3 {
	font-size: 1.15rem;
	font-weight: 600;
	letter-spacing: -0.02em;
}

p {
	margin: 0 0 1em;
}

p:last-child {
	margin-bottom: 0;
}

.krs-skip {
	position: absolute;
	left: 1rem;
	top: -4rem;
	z-index: 200;
	background: var(--krs-ink);
	color: var(--krs-white);
	padding: 0.6rem 0.9rem;
}

.krs-skip:focus {
	top: 1rem;
	color: var(--krs-white);
}

.krs-wrap,
.krs-article__inner,
.krs-section .krs-wrap,
.entry-content > .wp-block-group > .wp-block-group.krs-wrap {
	width: min(var(--krs-wrap), calc(100% - (var(--krs-gutter) * 2)));
	max-width: none;
	margin-inline: auto;
}

.krs-main > .entry-content,
.krs-main > .entry-content.is-layout-constrained {
	width: 100%;
	max-width: none;
}

.entry-content > .wp-block-group.alignfull.krs-hero > *,
.entry-content > .wp-block-group.alignfull.krs-section > *,
.krs-hero > .wp-block-html,
.krs-section > .wp-block-html,
.krs-hero > .wp-block-group,
.krs-section > .wp-block-group,
.krs-hero.wp-block-group-is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.krs-section.wp-block-group-is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.krs-main > .entry-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)) {
	width: min(var(--krs-wrap), calc(100% - (var(--krs-gutter) * 2)));
	max-width: none;
	margin-inline: auto;
}

.krs-main {
	min-height: 50vh;
}

.krs-crumbs {
	padding: 0.85rem 0 0;
}

.krs-crumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--krs-muted);
	font-size: 0.78rem;
	letter-spacing: 0.02em;
}

.krs-crumbs__list li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.krs-crumbs__list li:not(:last-child)::after {
	content: "/";
	color: var(--krs-line);
}

.krs-crumbs a {
	color: inherit;
	text-decoration: none;
}

.krs-crumbs a:hover {
	color: var(--krs-green);
}

.krs-crumbs [aria-current="page"] {
	color: var(--krs-ink);
}

.krs-section {
	padding: 5.5rem 0;
}

.krs-section--tight {
	padding: 4.5rem 0 3.5rem;
}

.krs-section--mint {
	background: var(--krs-mint);
}

.krs-section--sand {
	background: var(--kurasa-sand);
}

.krs-section--ink,
.krs-hero {
	background-color: var(--krs-ink);
	background-image: radial-gradient(rgba(252, 250, 245, 0.06) 0.8px, transparent 0.8px);
	background-size: 16px 16px;
	color: #d7e2dc;
}

.krs-section--ink h1,
.krs-section--ink h2,
.krs-section--ink h3,
.krs-hero h1,
.krs-hero h2,
.krs-hero h3 {
	color: var(--krs-white);
}

.krs-section--ink .krs-kicker,
.krs-hero .krs-kicker {
	color: var(--krs-green-soft);
}

.krs-section--ink .krs-lead,
.krs-hero .krs-lead,
.krs-section--ink p,
.krs-hero p {
	color: #b7c6bf;
}

.krs-section--border {
	border-top: 1px solid var(--krs-line);
}

.krs-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: 1.1rem;
	color: var(--kurasa-evergreen);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.krs-kicker::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--kurasa-evergreen);
	flex: 0 0 6px;
}

.krs-kicker::after {
	display: none;
}

.krs-accent {
	color: var(--kurasa-evergreen);
	font-style: normal;
}

.krs-pull {
	font-family: var(--font-display);
	font-size: clamp(1.55rem, 2.8vw, 2.05rem);
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--kurasa-ink);
	max-width: 22ch;
}

.krs-cite {
	display: block;
	margin-top: 0.85rem;
	color: var(--krs-muted);
	font-size: 0.88rem;
	font-style: normal;
	max-width: 28rem;
}

.krs-lead {
	color: var(--krs-muted);
	font-size: 1.05rem;
	line-height: 1.7;
	max-width: 34rem;
}

.krs-muted {
	color: var(--krs-muted);
}

.krs-note {
	margin: 1.15rem 0 0;
	color: var(--krs-muted);
	font-size: 0.88rem;
	line-height: 1.55;
	max-width: 36rem;
}

.krs-hero .krs-note,
.krs-section--ink .krs-note {
	color: #8fa199;
}

.krs-note a {
	color: inherit;
}

.krs-hero {
	min-height: min(88vh, 46rem);
	display: flex;
	align-items: center;
	padding: 5.5rem 0 6rem;
}

.krs-hero--compact {
	min-height: 0;
	padding: 5rem 0 4.5rem;
}

#documentary {
	scroll-margin-top: calc(var(--krs-header) + 0.75rem);
}

.krs-hero h1 {
	max-width: 15ch;
}

.krs-hero .krs-split {
	width: min(var(--krs-wrap), calc(100% - (var(--krs-gutter) * 2)));
}

.krs-vista {
	height: min(48vw, 380px);
	background:
		radial-gradient(ellipse at 22% 40%, rgba(18, 107, 87, 0.55) 0%, transparent 52%),
		radial-gradient(ellipse at 78% 70%, rgba(246, 185, 22, 0.12) 0%, transparent 40%),
		var(--krs-ink);
}

.screen-reader-text,
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.alignfull {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.entry-content > * {
	margin-top: 0;
}

.entry-content > .wp-block-group.alignfull,
.entry-content > .krs-section {
	margin-left: 0;
	margin-right: 0;
}
