/*
 * Site-wide refinements for the Tobata child theme.
 */

html,
body {
	--wp--preset--color--base: #fff;
	--wp--preset--color--base-2: #fff;
	--wp--preset--color--base-3: #fff;
	background-color: #fff !important;
	background-image: none !important;
}

body .wp-site-blocks,
body .wp-site-blocks > header,
body .wp-site-blocks > main,
body .wp-site-blocks > footer,
body .wp-site-blocks > .wp-block-template-part,
body .wp-site-blocks :where(
	.wp-block-template-part,
	.wp-block-group,
	.wp-block-columns,
	.wp-block-column,
	.wp-block-media-text,
	.wp-block-cover,
	.wp-block-query,
	.wp-block-post-template,
	.wp-block-post
),
body .entry-content,
body .wp-block-post-content,
body .tobata-photo-wall {
	background-color: #fff !important;
	background-image: none !important;
}

body .wp-site-blocks :where(
	.wp-block-template-part,
	.wp-block-group,
	.wp-block-columns,
	.wp-block-column,
	.wp-block-media-text,
	.wp-block-cover,
	.wp-block-query,
	.wp-block-post-template,
	.wp-block-post
).has-background {
	background-color: #fff !important;
	background-image: none !important;
}

body .tobata-photo-wall {
	color: inherit !important;
}

:where(.entry-content, .wp-block-post-content) {
	line-break: strict;
	line-height: 1.9;
	overflow-wrap: break-word;
	word-break: normal;
}

:where(.entry-content, .wp-block-post-content) p {
	margin-block-end: 1.18em;
}

:where(.entry-content, .wp-block-post-content) h1,
:where(.entry-content, .wp-block-post-content) h2,
:where(.entry-content, .wp-block-post-content) h3 {
	text-wrap: balance;
}

:where(.wp-site-blocks) {
	min-height: 100vh;
}

:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns {
	margin-block-end: clamp(1.5rem, 6vw, 2.25rem);
}

:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-featured-image {
	margin: 0;
}

:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-title {
	margin-block: 0 0.55rem;
	font-size: clamp(1rem, 2.1vw, 1.25rem);
	line-height: 1.35;
}

:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-excerpt {
	margin-block: 0;
	line-height: 1.8;
}

body.tobata-query-loop-paged .entry-content > :not(.wp-block-query) {
	display: none;
}

body.tobata-query-loop-paged .entry-content > .wp-block-query {
	margin-block-start: 0;
}

body.tobata-top2-page .wp-block-post-content {
	margin-block-start: 0;
}

:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part {
	--tobata-header-surface: rgba(255, 255, 255, 0.08);

	background: var(--tobata-header-surface) !important;
	background-image: none !important;
	-webkit-backdrop-filter: saturate(145%) blur(8px);
	backdrop-filter: saturate(145%) blur(8px);
	box-shadow: inset 0 -1px rgba(255, 255, 255, 0.16) !important;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 0;
	transform: translate3d(0, -112%, 0);
	transition:
		transform 720ms cubic-bezier(0.16, 1, 0.3, 1),
		opacity 420ms ease;
	width: 100%;
	will-change: transform, opacity;
	z-index: 1000;
}

:root.tobata-header-reveal-ready body.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part > .wp-block-group,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part > .wp-block-group > .wp-block-group,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part > .wp-block-group > .wp-block-group > .wp-block-group {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	box-shadow: none !important;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part {
		background: rgba(255, 255, 255, 0.72) !important;
	}
}

:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation *,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-group,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.has-background,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.has-base-background-color {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
}

:root.tobata-header-reveal-ready.tobata-header-is-visible .wp-site-blocks > header.wp-block-template-part,
:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part:focus-within {
	opacity: 1;
	pointer-events: auto;
	transform: translate3d(0, 0, 0);
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part {
	transform: none;
	will-change: auto;
}

:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.has-background,
:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.has-base-background-color {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open,
:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container.has-modal-open {
	box-sizing: border-box;
	height: 100dvh;
	inset: 0;
	max-height: 100dvh;
	min-height: 100dvh;
	padding-inline: clamp(1.25rem, 7vw, 2rem);
	width: 100vw;
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-close {
	box-sizing: border-box;
	max-width: 100%;
	width: 100%;
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-dialog {
	box-sizing: border-box;
	min-height: 100dvh;
	max-width: 100%;
	width: 100%;
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container-content {
	align-items: flex-end;
	box-sizing: border-box;
	min-height: calc(100dvh - 72px);
	padding-block-start: clamp(5.5rem, 18svh, 9rem);
	width: 100%;
}

:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__container {
	align-items: flex-end;
	box-sizing: border-box;
	max-width: 100%;
	width: 100%;
}

@media (max-width: 782px) {
	:root.tobata-header-reveal-ready body.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}

	.wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container-open,
	.wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container-close {
		transition:
			opacity 180ms ease,
			visibility 180ms ease;
	}

	:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container-open {
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
	}

	:root.tobata-header-reveal-ready.tobata-header-menu-open .wp-site-blocks > header.wp-block-template-part .wp-block-navigation__responsive-container-close {
		align-items: center;
		display: inline-flex;
		justify-content: center;
		min-height: 44px;
		min-width: 44px;
		position: fixed;
		right: max(1.1rem, env(safe-area-inset-right));
		top: max(1.1rem, env(safe-area-inset-top));
		z-index: 1002;
	}
}

:root.tobata-opening-ready,
:root.tobata-opening-ready body.tobata-top2-page {
	overflow: hidden;
}

.tobata-opening-loader {
	color: #fff;
	inset: 0;
	overflow: hidden;
	pointer-events: auto;
	position: fixed;
	z-index: 20000;
}

.tobata-opening-loader[hidden] {
	display: none;
}

.tobata-opening-loader__bars {
	inset: 0;
	position: absolute;
	z-index: 0;
}

.tobata-opening-loader__bar {
	background: var(--tobata-opening-bar-color, #1e1e28);
	display: block;
	height: calc(var(--tobata-opening-bar-height, 8.333333%) + 1px);
	left: 0;
	position: absolute;
	top: var(--tobata-opening-bar-top, 0);
	transform: translate3d(0, 0, 0);
	width: 100%;
	will-change: transform;
}

.tobata-opening-loader__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	inset: 0;
	justify-content: center;
	pointer-events: none;
	position: absolute;
	transition: opacity 400ms ease;
	z-index: 1;
}

.tobata-opening-loader.is-content-hidden .tobata-opening-loader__content {
	opacity: 0;
}

.tobata-opening-loader__logo-wrap {
	margin-inline: auto;
	max-width: var(--tobata-top2-intro-width, min(88vw, var(--tobata-top2-intro-max-width, 600px)));
	width: var(--tobata-top2-intro-width, min(88vw, var(--tobata-top2-intro-max-width, 600px)));
}

.tobata-opening-loader__intro-stack {
	position: relative;
	transform: scale(var(--tobata-top2-opening-logo-scale, 0.5));
	transform-origin: center center;
	width: 100%;
	will-change: transform;
}

.tobata-opening-loader__title {
	bottom: calc(100% + var(--tobata-top2-title-gap, 16px));
	color: #fff;
	font-family: var(--tobata-top2-title-font, var(--wp--preset--font-family--manrope), "Helvetica Neue", Arial, sans-serif);
	font-size: min(var(--tobata-top2-title-size, 90px), var(--tobata-top2-title-fit-size, 90px));
	font-weight: var(--tobata-top2-title-weight, 600);
	left: 50%;
	letter-spacing: 0;
	line-height: 0.92;
	position: absolute;
	text-align: center;
	text-wrap: balance;
	transform: translateX(-50%);
	width: 100%;
}

.tobata-opening-loader__logo {
	filter: blur(18px);
	opacity: 0.24;
	transition:
		filter 680ms cubic-bezier(0.16, 1, 0.3, 1),
		opacity 520ms ease;
	width: 100%;
	will-change: filter, opacity;
}

.tobata-opening-loader__logo.is-focused {
	filter: blur(0);
	opacity: 1;
}

.tobata-opening-loader__logo img {
	display: block;
	height: auto;
	width: 100%;
}

.tobata-opening-loader__counter {
	bottom: 4rem;
	font-size: 1rem;
	left: 50%;
	line-height: 1;
	position: absolute;
	text-align: center;
	transform: translateX(-50%);
}

.tobata-opening-loader__counter .num {
	display: inline-block;
	font-size: 2em;
	margin-right: 0.1em;
	min-width: 3ch;
}

.tobata-opening-loader__timeline {
	align-items: center;
	display: grid;
	gap: clamp(0.8rem, 2.2vw, 1.8rem);
	grid-template-columns: max-content minmax(4rem, 1fr) max-content;
	left: 50%;
	position: absolute;
	top: 8rem;
	transform: translateX(-50%);
	width: min(90%, 98rem);
}

.tobata-opening-loader__year {
	color: rgba(255, 255, 255, 0.78);
	font-family: var(--wp--preset--font-family--manrope), "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(0.78rem, 1.1vw, 1rem);
	font-variant-numeric: tabular-nums;
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1;
	min-width: 4ch;
	text-align: center;
	text-shadow: 0 0 18px rgba(255, 255, 255, 0.22);
}

.tobata-opening-loader__track {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.28));
	height: 1px;
	overflow: visible;
	position: relative;
}

.tobata-opening-loader__fill {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.46), #fff);
	display: block;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	transition: width 80ms linear;
	width: 0%;
}

.tobata-opening-loader__fill::after {
	background: #fff;
	border-radius: 999px;
	box-shadow:
		0 0 14px rgba(255, 255, 255, 0.86),
		0 0 34px rgba(255, 255, 255, 0.34);
	content: "";
	height: 5px;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translate3d(50%, -50%, 0);
	width: 5px;
}

@media (max-width: 781px) {
	.tobata-opening-loader__logo-wrap {
		max-width: var(--tobata-top2-intro-width, min(88vw, var(--tobata-top2-intro-max-width, 430px)));
		width: var(--tobata-top2-intro-width, min(88vw, var(--tobata-top2-intro-max-width, 430px)));
	}

	.tobata-opening-loader__counter {
		bottom: 3rem;
	}

	.tobata-opening-loader__counter .num {
		font-size: 1.5em;
	}

	.tobata-opening-loader__timeline {
		gap: 0.8rem;
		top: 4rem;
		width: 90.67%;
	}

	.tobata-opening-loader__year {
		font-size: 0.78rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tobata-opening-loader__logo {
		filter: none;
		opacity: 1;
		transition: none;
	}
}

body.tobata-top2-page {
	color: #111;
	overflow-x: hidden;
}

body.tobata-top2-page .wp-site-blocks > main {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

body.tobata-top2-page .tobata-top2-hero {
	--tobata-top2-hero-veil-center: 0.96;
	--tobata-top2-hero-veil-inner: 0.9;
	--tobata-top2-hero-veil-soft: 0.68;
	--tobata-top2-hero-veil-outer: 0.88;
	--tobata-top2-header-offset: clamp(88px, 7.4vw, 112px);
	--tobata-top2-intro-y: 38svh;
	--tobata-top2-intro-start-scale: 0.5;
	--tobata-top2-intro-progress: 0;
	--tobata-top2-intro-scale: var(--tobata-top2-intro-start-scale);
	--tobata-top2-intro-smoothness: 70;
	--tobata-top2-intro-scroll: clamp(180px, 31svh, 340px);
	--tobata-top2-intro-min-width: 320px;
	--tobata-top2-intro-max-width: 600px;
	--tobata-top2-intro-space-top: 0px;
	--tobata-top2-intro-space-bottom: 0px;
	--tobata-top2-intro-width: min(88vw, var(--tobata-top2-intro-max-width));
	--tobata-top2-title-fit-ratio: 0.15;
	--tobata-top2-title-fit-size: calc(var(--tobata-top2-intro-width) * var(--tobata-top2-title-fit-ratio));
	--tobata-top2-title-font: var(--wp--preset--font-family--manrope), "Helvetica Neue", Arial, sans-serif;
	--tobata-top2-title-gap: 16px;
	--tobata-top2-title-size: 90px;
	--tobata-top2-title-weight: 600;
	--tobata-top2-gallery-pad-top: 1.2svh;
	--tobata-top2-gallery-pad-bottom: 2svh;
	--tobata-top2-hero-veil-reveal-start: 0;
	--tobata-top2-hero-veil-reveal-end: 1;
	--tobata-top2-hero-veil-reveal: var(--tobata-top2-hero-veil-reveal-end);
	--tobata-top2-hero-veil-reveal-duration: 900ms;
	--tobata-top2-intro-reveal-blur-max: 28px;
	--tobata-top2-intro-hop-main: -40px;
	--tobata-top2-intro-hop-soft: -10px;
	--tobata-top2-intro-hop-second: -24px;
	background: #fff !important;
	color: #111;
	isolation: isolate;
	margin-top: 0;
	overflow: hidden;
	overflow: clip;
	padding-block: 0 clamp(1.7rem, 4.6vw, 4rem);
	position: relative;
}

body.tobata-top2-page .tobata-top2-hero::before {
	background:
		radial-gradient(
			circle at 50% 32%,
			rgba(255, 255, 255, var(--tobata-top2-hero-veil-center)) 0%,
			rgba(255, 255, 255, var(--tobata-top2-hero-veil-inner)) 24%,
			rgba(255, 255, 255, var(--tobata-top2-hero-veil-soft)) 55%,
			rgba(255, 255, 255, var(--tobata-top2-hero-veil-outer)) 82%,
			#fff 100%
		);
	content: "";
	inset: 0;
	opacity: var(--tobata-top2-hero-veil-reveal, 1);
	pointer-events: none;
	position: absolute;
	transition: opacity var(--tobata-top2-hero-veil-reveal-duration, 900ms) cubic-bezier(0.16, 1, 0.3, 1);
	z-index: 1;
}

body.tobata-top2-page .tobata-top2-hero::after {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 92%),
		radial-gradient(circle at 15% 12%, rgba(0, 0, 0, 0.05), transparent 22%),
		radial-gradient(circle at 88% 20%, rgba(0, 0, 0, 0.04), transparent 26%);
	content: "";
	inset: 0;
	opacity: var(--tobata-top2-hero-veil-reveal, 1);
	pointer-events: none;
	position: absolute;
	transition: opacity var(--tobata-top2-hero-veil-reveal-duration, 900ms) cubic-bezier(0.16, 1, 0.3, 1);
	z-index: 3;
}

:root.tobata-opening-ready body.tobata-top2-page .tobata-top2-hero,
:root.tobata-opening-wiping body.tobata-top2-page .tobata-top2-hero,
:root.tobata-opening-veil-clear body.tobata-top2-page .tobata-top2-hero {
	--tobata-top2-hero-veil-reveal: var(--tobata-top2-hero-veil-reveal-start);
}

:root.tobata-opening-veil-visible body.tobata-top2-page .tobata-top2-hero {
	--tobata-top2-hero-veil-reveal: var(--tobata-top2-hero-veil-reveal-end);
}

body.tobata-top2-page .tobata-top2-hero > :not(.tobata-top2-hero-photos):not(.tobata-top2-scroll-cue) {
	position: relative;
	z-index: 4;
}

.tobata-top2-scroll-cue {
	--tobata-scroll-cue-opacity: 1;
	--tobata-scroll-cue-progress: 0;

	align-items: center;
	bottom: calc(max(1.75rem, env(safe-area-inset-bottom)) + clamp(1.15rem, 3svh, 2.25rem));
	color: rgba(17, 17, 17, 0.88);
	display: flex;
	flex-direction: column;
	font-family: var(--wp--preset--font-family--manrope), "Helvetica Neue", Arial, sans-serif;
	gap: 0.62rem;
	left: 50%;
	opacity: calc(var(--tobata-scroll-cue-opacity, 1) * 0.92);
	pointer-events: none;
	position: fixed;
	transform: translate3d(-50%, calc(var(--tobata-scroll-cue-progress, 0) * 10px), 0);
	transition:
		opacity 180ms ease,
		visibility 180ms ease;
	visibility: visible;
	z-index: 6;
}

:root.tobata-opening-ready .tobata-top2-scroll-cue,
.tobata-top2-scroll-cue.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.tobata-top2-scroll-cue__text {
	font-size: 0.84rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	opacity: 0.94;
	text-shadow: 0 0 16px rgba(255, 255, 255, 0.72);
	text-transform: lowercase;
}

.tobata-top2-scroll-cue__line {
	background: rgba(17, 17, 17, 0.22);
	display: block;
	height: clamp(68px, 10.5svh, 112px);
	overflow: hidden;
	position: relative;
	width: 1px;
}

.tobata-top2-scroll-cue__line::before {
	animation: tobata-scroll-line-rotation 2.2s cubic-bezier(0.45, 0, 0.18, 1) infinite;
	background: currentColor;
	content: "";
	display: block;
	height: 40%;
	left: 0;
	opacity: 0.88;
	position: absolute;
	top: 0;
	width: 1px;
}

@keyframes tobata-scroll-line-rotation {
	0% {
		height: 0;
		opacity: 0;
		top: 0;
	}

	28% {
		height: 100%;
		opacity: 0.88;
		top: 0;
	}

	100% {
		height: 100%;
		opacity: 0;
		top: 100%;
	}
}

body.tobata-top2-page .tobata-top2-hero,
body.tobata-top2-page .tobata-top2-hero :where(p, a, strong, time) {
	color: #111 !important;
}

body.tobata-top2-page .tobata-top2-hero :where(.wp-block-group, .wp-block-columns, .wp-block-column, .wp-block-cover) {
	background: transparent !important;
}

body.tobata-top2-page .tobata-top2-hero .has-background {
	background: rgba(255, 255, 255, 0.42) !important;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

body.tobata-top2-page .tobata-top2-hero .wp-block-image {
	display: block;
	margin-block: var(--tobata-top2-intro-space-top) var(--tobata-top2-intro-space-bottom);
	min-height: calc(100svh - var(--tobata-top2-header-offset) + var(--tobata-top2-intro-scroll) + var(--tobata-top2-intro-space-top) + var(--tobata-top2-intro-space-bottom));
	padding-block-start: 1px;
	position: relative;
}

	body.tobata-top2-page .tobata-top2-hero .wp-block-image img {
		display: block;
		filter: contrast(1.02);
		height: auto !important;
		margin-inline: auto;
		max-width: min(88vw, var(--tobata-top2-intro-max-width)) !important;
		position: sticky;
		top: clamp(calc(var(--tobata-top2-header-offset) + 96px), var(--tobata-top2-intro-y), 62svh);
		transform: translateY(-50%) scale(var(--tobata-top2-intro-scale));
		transform-origin: center center;
		will-change: transform;
		width: var(--tobata-top2-intro-width) !important;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-stack {
		display: block;
		margin-inline: auto;
		max-width: min(88vw, var(--tobata-top2-intro-max-width));
		position: sticky;
		top: clamp(calc(var(--tobata-top2-header-offset) + 96px), var(--tobata-top2-intro-y), 62svh);
		transform: translateY(-50%) scale(var(--tobata-top2-intro-scale));
		transform-origin: center center;
		width: var(--tobata-top2-intro-width);
		will-change: transform;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint {
		display: block;
		filter: blur(0);
		opacity: 1;
		pointer-events: auto;
		position: relative;
		transform: translate3d(0, 0, 0);
		transform-origin: center center;
		transition:
			filter var(--tobata-top2-hero-veil-reveal-duration, 900ms) cubic-bezier(0.16, 1, 0.3, 1),
			opacity var(--tobata-top2-hero-veil-reveal-duration, 900ms) ease;
		width: 100%;
		will-change: transform, filter, opacity;
	}

	:root.tobata-opening-ready body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	:root.tobata-opening-wiping body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	:root.tobata-opening-veil-clear body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint {
		filter: blur(var(--tobata-top2-intro-reveal-blur-max, 28px));
		opacity: 0;
		pointer-events: none;
	}

	:root.tobata-opening-veil-visible body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint {
		filter: blur(0);
		opacity: 1;
		pointer-events: auto;
	}

	:root.tobata-opening-veil-visible body.tobata-top2-page .tobata-top2-hero:not(.has-scroll-started) .tobata-top2-intro-scroll-hint {
		animation: tobata-top2-intro-scroll-hop 3s both infinite;
		animation-delay: var(--tobata-top2-hero-veil-reveal-duration, 900ms);
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-stack img {
		margin-inline: auto;
		max-width: 100% !important;
		position: static;
		transform: none;
		width: 100% !important;
		will-change: auto;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-title {
		font-family: var(--tobata-top2-title-font);
		font-size: min(var(--tobata-top2-title-size), var(--tobata-top2-title-fit-size));
		font-weight: var(--tobata-top2-title-weight);
		letter-spacing: 0;
		line-height: 0.92;
		margin: 0 !important;
		max-width: 100%;
		position: absolute;
		bottom: calc(100% + var(--tobata-top2-title-gap));
		left: 50%;
		text-align: center;
		text-wrap: balance;
		transform: translateX(-50%);
		width: 100%;
		z-index: 1;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-title strong {
		font-weight: inherit;
	}

@keyframes tobata-top2-intro-scroll-hop {
	0% {
		transform: translate3d(0, 0, 0);
		animation-timing-function: cubic-bezier(0.2, 0.85, 0.26, 1);
	}

	7% {
		transform: translate3d(0, var(--tobata-top2-intro-hop-main), 0);
		animation-timing-function: cubic-bezier(0.34, 0, 0.2, 1);
	}

	13% {
		transform: translate3d(0, var(--tobata-top2-intro-hop-soft), 0);
		animation-timing-function: cubic-bezier(0.18, 0.72, 0.24, 1);
	}

	19% {
		transform: translate3d(0, var(--tobata-top2-intro-hop-second), 0);
		animation-timing-function: cubic-bezier(0.28, 0, 0.24, 1);
	}

	29% {
		transform: translate3d(0, calc(var(--tobata-top2-intro-hop-soft) * 0.28), 0);
		animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
	}

	38%,
	100% {
		transform: translate3d(0, 0, 0);
	}
}

body.tobata-top2-page .tobata-top2-hero .wp-block-image + .wp-block-spacer {
	display: none;
}

body.tobata-top2-page .tobata-top2-hero .wp-block-image ~ :not(.tobata-top2-hero-photos):not(.tobata-top2-scroll-cue) {
	margin-block-start: clamp(0.65rem, 2vw, 1.5rem);
}

body.tobata-top2-page .tobata-top2-hero .wp-block-image + .wp-block-spacer + .wp-block-group {
	margin-block-start: calc(clamp(-13rem, -22svh, -8rem) + var(--tobata-top2-intro-space-bottom)) !important;
}

body.tobata-top2-page .tobata-top2-hero .tobata-timer {
	margin-block-end: 0;
}

.tobata-top2-hero-photos {
	background-color: #e6e2d8;
	height: 100vh;
	height: 100svh;
	margin-block-end: -100vh;
	margin-block-end: -100svh;
	margin-left: calc(var(--wp--style--root--padding-left, 0px) * -1) !important;
	margin-right: calc(var(--wp--style--root--padding-right, 0px) * -1) !important;
	max-width: none !important;
	min-height: 560px;
	overflow: hidden;
	pointer-events: none;
	position: sticky;
	top: 0;
	width: auto !important;
	z-index: 0;
}

.tobata-top2-hero-photos__stage {
	box-sizing: border-box;
	display: grid;
	gap: clamp(6px, 0.72vw, 12px);
	grid-auto-flow: dense;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-areas:
		"a a a a b b b c c c c c"
		"a a a a b b b c c c c c"
		"a a a a b b b c c c c c"
		"d d d d e e e c c c c c"
		"d d d d e e e c c c c c"
		"d d d d e e e g g h h h"
		"i i j j j k k g g h h h"
		"i i j j j k k l l m m n"
		"i i j j j k k l l m m n";
	grid-template-rows: repeat(9, minmax(0, 1fr));
	height: 100%;
	align-content: stretch;
	padding: var(--tobata-top2-gallery-pad-top, 0) clamp(12px, 2.7vw, 48px) var(--tobata-top2-gallery-pad-bottom, 0);
	width: 100%;
}

.tobata-top2-hero-photo {
	--tobata-top2-tile-opacity: 0.34;
	--tobata-top2-tile-wash: 0.16;
	background-color: rgba(28, 31, 36, 0.18);
	background-image: var(--tobata-top2-photo-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 2px;
	box-shadow: 0 28px 88px rgba(22, 24, 28, 0.12);
	contain: paint;
	filter: grayscale(0.08) saturate(0.86) contrast(1.02);
	grid-column: span 2;
	grid-row: span 3;
	height: 100%;
	isolation: isolate;
	margin: 0;
	min-height: 0;
	opacity: var(--tobata-top2-tile-opacity);
	overflow: hidden;
	position: relative;
	transform: translateZ(0) scale(1);
	transform-origin: center center;
	transition:
		opacity var(--tobata-top2-tile-duration, 640ms) ease,
		filter var(--tobata-top2-tile-duration, 640ms) ease,
		transform var(--tobata-top2-tile-duration, 640ms) cubic-bezier(0.16, 1, 0.3, 1);
	width: 100%;
	will-change: transform, opacity;
}

.tobata-top2-hero-photo::after {
	background: rgba(255, 255, 255, var(--tobata-top2-tile-wash));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.tobata-top2-hero-photo img {
	display: block;
	height: 100%;
	object-fit: cover;
	opacity: 1;
	transform: scale(1.02);
	transition:
		opacity var(--tobata-top2-tile-duration, 640ms) ease,
		transform var(--tobata-top2-tile-duration, 640ms) cubic-bezier(0.16, 1, 0.3, 1);
	width: 100%;
}

.tobata-top2-hero-photo.is-tile-small {
	grid-column: span 1;
	grid-row: span 2;
}

.tobata-top2-hero-photo.is-tile-wide {
	grid-column: span 3;
	grid-row: span 3;
}

.tobata-top2-hero-photo.is-tile-tall {
	grid-column: span 2;
	grid-row: span 4;
}

.tobata-top2-hero-photo.is-tile-large {
	grid-column: span 3;
	grid-row: span 4;
}

.tobata-top2-hero-photo.is-tile-panorama {
	grid-column: span 4;
	grid-row: span 4;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(1) {
	grid-area: a;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(2) {
	grid-area: b;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(3) {
	grid-area: c;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(4) {
	grid-area: d;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(5) {
	grid-area: e;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(6) {
	grid-area: g;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(7) {
	grid-area: h;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(8) {
	grid-area: i;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(9) {
	grid-area: j;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(10) {
	grid-area: k;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(11) {
	grid-area: l;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(12) {
	grid-area: m;
}

.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(13) {
	grid-area: n;
}

.tobata-top2-hero-photo:nth-child(4n+1),
.tobata-top2-hero-photo:nth-child(5n+3) {
	--tobata-top2-tile-opacity: 0.42;
}

.tobata-top2-hero-photo:nth-child(3n) {
	--tobata-top2-tile-opacity: 0.28;
}

:root.tobata-opening-wiping body.tobata-top2-page .tobata-top2-hero-photo,
:root.tobata-opening-veil-clear body.tobata-top2-page .tobata-top2-hero-photo {
	--tobata-top2-tile-opacity: 0.94;
	--tobata-top2-tile-wash: 0;
	filter: grayscale(0) saturate(0.98) contrast(1.03);
}

.tobata-top2-hero-photo.is-changing {
	filter: grayscale(0) saturate(0.92) contrast(1.04);
	opacity: 0.5;
	transform: translateZ(0);
	z-index: 2;
}

.tobata-top2-hero-photo.is-changing img {
	opacity: 0;
	transform: scale(1.07);
}

:where(.entry-content, .wp-block-post-content) .tobata-map-embed {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 645px);
	margin-inline: auto;
	overflow: hidden;
	border-radius: 8px;
}

:where(.entry-content, .wp-block-post-content) .tobata-map-embed iframe,
:where(.entry-content, .wp-block-post-content) iframe[src*="google.com/maps"],
:where(.entry-content, .wp-block-post-content) iframe[src*="maps.google."] {
	display: block;
	width: 100%;
	max-width: 100%;
	height: clamp(260px, 52vw, 460px);
	border: 0;
}

@media (max-width: 781px) {
	:where(.entry-content, .wp-block-post-content) :where(p, li) {
		text-wrap: pretty;
	}

	@supports (word-break: auto-phrase) {
		:where(.entry-content, .wp-block-post-content) :where(p, li) {
			word-break: auto-phrase;
		}
	}

	body.tobata-top2-page .tobata-top2-hero {
		--tobata-top2-header-offset: 102px;
		--tobata-top2-intro-hop-main: -30px;
		--tobata-top2-intro-hop-soft: -5px;
		--tobata-top2-intro-hop-second: -20px;
		--tobata-top2-intro-scroll: 29svh;
		padding-block: 0 clamp(1.4rem, 7vw, 3rem);
	}

	body.tobata-top2-page .tobata-top2-hero::before {
		background:
			radial-gradient(
				circle at 50% 28%,
				rgba(255, 255, 255, var(--tobata-top2-hero-veil-center)) 0%,
				rgba(255, 255, 255, var(--tobata-top2-hero-veil-outer)) 30%,
				rgba(255, 255, 255, var(--tobata-top2-hero-veil-soft)) 62%,
				#fff 100%
			);
	}

	.tobata-top2-scroll-cue {
		bottom: calc(max(1.25rem, env(safe-area-inset-bottom)) + 1.85rem);
		gap: 0.54rem;
	}

	.tobata-top2-scroll-cue__text {
		font-size: 0.78rem;
	}

	.tobata-top2-scroll-cue__line {
		height: clamp(58px, 8.4svh, 86px);
	}

	.tobata-top2-hero-photos {
		min-height: 560px;
	}

	.tobata-top2-hero-photos__stage {
		gap: 7px;
		grid-auto-flow: dense;
		grid-auto-rows: minmax(54px, 1fr);
		grid-template-areas: none;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-template-rows: none;
		padding: var(--tobata-top2-gallery-pad-top, 0) 10px var(--tobata-top2-gallery-pad-bottom, 0);
	}

	.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(n) {
		grid-area: auto;
		grid-column: span 2;
		grid-row: span 2;
	}

	.tobata-top2-hero-photo.is-tile-small {
		grid-column: span 2;
		grid-row: span 2;
	}

	.tobata-top2-hero-photo.is-tile-wide {
		grid-column: span 2;
		grid-row: span 3;
	}

	.tobata-top2-hero-photo.is-tile-panorama {
		grid-column: span 3;
		grid-row: span 4;
	}

	.tobata-top2-hero-photo.is-tile-tall {
		grid-column: span 2;
		grid-row: span 4;
	}

	.tobata-top2-hero-photo.is-tile-large {
		grid-column: span 4;
		grid-row: span 4;
	}

	.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(3n) {
		grid-row: span 3;
	}

	.tobata-top2-hero-photos__stage .tobata-top2-hero-photo:nth-child(5n) {
		grid-column: span 4;
	}

	body.tobata-top2-page .tobata-top2-hero .wp-block-image {
		min-height: calc(100svh - var(--tobata-top2-header-offset) + var(--tobata-top2-intro-scroll));
	}

	body.tobata-top2-page .tobata-top2-hero .wp-block-image + .wp-block-spacer + .wp-block-group {
		margin-block-start: calc(clamp(-6rem, -12svh, -4.5rem) + var(--tobata-top2-intro-space-bottom)) !important;
	}

	body.tobata-top2-page .tobata-top2-hero .has-background > .wp-block-group {
		padding-left: clamp(1rem, 5.4vw, 1.5rem) !important;
		padding-right: clamp(1rem, 5.4vw, 1.5rem) !important;
	}

	body.tobata-top2-page .tobata-top2-hero .has-background {
		box-sizing: border-box;
		margin-left: calc(50% - 50vw + 0.75rem) !important;
		margin-right: calc(50% - 50vw + 0.75rem) !important;
		max-width: calc(100vw - 1.5rem) !important;
		width: calc(100vw - 1.5rem);
	}

	body.tobata-top2-page .tobata-top2-hero .has-background :where(p, li) {
		line-height: 1.95;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-jp-phrase {
		white-space: nowrap;
	}

		body.tobata-top2-page .tobata-top2-hero .wp-block-image img {
			max-width: min(88vw, var(--tobata-top2-intro-max-width)) !important;
			width: var(--tobata-top2-intro-width) !important;
		}

		body.tobata-top2-page .tobata-top2-hero {
			--tobata-top2-intro-width: min(88vw, var(--tobata-top2-intro-max-width));
		}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns {
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		gap: clamp(0.875rem, 4vw, 1.125rem);
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns > .wp-block-column {
		align-self: flex-start;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns > .wp-block-column:first-child {
		flex-basis: 110px !important;
		flex-grow: 0;
		flex-shrink: 0;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns > .wp-block-column:nth-child(2) {
		flex-basis: auto !important;
		flex-grow: 1;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-featured-image img {
		display: block;
		width: 100%;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-title {
		margin-block-end: 0.35rem;
		font-size: clamp(0.95rem, 4vw, 1.1rem);
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-excerpt {
		font-size: 0.78rem;
		line-height: 1.65;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-excerpt__excerpt {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post-excerpt__more-text {
		margin-block-start: 0.45rem;
	}
}

@media (max-width: 380px) {
	:is(.home, .tobata-top2-page) .wp-block-query .wp-block-post > .wp-block-columns > .wp-block-column:first-child {
		flex-basis: 110px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	:root.tobata-header-reveal-ready .wp-site-blocks > header.wp-block-template-part {
		transition: none;
	}

	.tobata-opening-loader__bar,
	.tobata-opening-loader__content,
	.tobata-opening-loader__fill {
		transition: none;
	}

	body.tobata-top2-page .tobata-top2-hero {
		--tobata-top2-intro-scale: 1;
		--tobata-top2-intro-scroll: 0px;
	}

	body.tobata-top2-page .tobata-top2-hero::before,
	body.tobata-top2-page .tobata-top2-hero::after {
		transition: none;
	}

	body.tobata-top2-page .tobata-top2-hero .wp-block-image img {
		position: static;
		transform: none;
	}

	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-stack {
		animation: none;
		position: static;
		transform: none;
	}

	:root.tobata-opening-ready body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	:root.tobata-opening-wiping body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	:root.tobata-opening-veil-clear body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	:root.tobata-opening-veil-visible body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint,
	body.tobata-top2-page .tobata-top2-hero .tobata-top2-intro-scroll-hint {
		animation: none;
		filter: none;
		opacity: 1;
		pointer-events: auto;
		transition: none;
		transform: none;
		will-change: auto;
	}

	.tobata-top2-scroll-cue {
		transition: none;
		transform: translate3d(-50%, 0, 0);
	}

	.tobata-top2-scroll-cue__line::before {
		animation: none;
		height: 100%;
		opacity: 0.62;
		top: 0;
	}

	.tobata-top2-hero-photo {
		transition: none;
	}
}
