/* ============================================
   Washi Curtain Page Transition System
   ============================================ */

.curtain-transition {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	visibility: hidden;
}

.curtain-transition.is-active {
	visibility: visible;
	pointer-events: auto;
}

/* Left & Right Curtain Panels */
.curtain-transition__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 50.5%;
	background: var(--color-washi, #f4f1ea);
	box-shadow: inset 0 0 100px rgba(0, 0, 0, .04);
	transition: transform 600ms cubic-bezier(.76, 0, .24, 1);
	will-change: transform;
}

.curtain-transition__panel::before {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	background-image: radial-gradient(rgba(34, 40, 44, .04) 1px, transparent 1px);
	background-size: 24px 24px;
	opacity: .4;
	content: "";
}

.curtain-transition__panel--left {
	left: 0;
	transform: translateX(-100%);
	border-right: 1px solid rgba(188, 174, 145, .4);
}

.curtain-transition__panel--right {
	right: 0;
	transform: translateX(100%);
	border-left: 1px solid rgba(188, 174, 145, .4);
}

/* Closed State (Covering Screen) */
.curtain-transition.is-closed .curtain-transition__panel--left,
.curtain-transition.is-closed .curtain-transition__panel--right {
	transform: translateX(0);
}

/* Center Emblem & Logo Wrapper */
.curtain-transition__center {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	opacity: 0;
	transform: scale(.92);
	transition: opacity 400ms ease, transform 500ms cubic-bezier(.16, 1, .3, 1);
}

.curtain-transition.is-closed .curtain-transition__center {
	opacity: 1;
	transform: scale(1);
}

/* Logo Image & Accent Line */
.curtain-transition__logo {
	width: clamp(160px, 28vw, 240px);
	height: auto;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .05));
}

.curtain-transition__line {
	width: 48px;
	height: 2px;
	background: var(--color-wood, #bcae91);
	transform: scaleX(0);
	transition: transform 500ms cubic-bezier(.16, 1, .3, 1) 150ms;
}

.curtain-transition.is-closed .curtain-transition__line {
	transform: scaleX(1);
}

/* Subtle opening fade animation */
.curtain-transition.is-leaving .curtain-transition__center {
	opacity: 0;
	transform: scale(1.05);
	transition: opacity 300ms ease, transform 400ms ease;
}
